I am to draw some shapes under Intel 8086 without using interrupts but rather by directly accessing the graphics card. The problem is, I don't know how performing such operations is called so I can't even google anything on it. All I know is that this "mode" works on 80x25 resolution and is located on b800h in the memory. I tried googling "8086 graphics mode", "8086 text mode", "drawing without interrupts" and such but no hits whatsoever. Could you please tell me how such drawing is called so that I can read on it?
Asked
Active
Viewed 2,631 times
2
-
Do want to completely avoid using interrupts also in changing the video mode (create a custom video mode only by tweaking the video card registers directly), or only do the drawing by writing directly to the video memory? The former is more difficult, the latter may be simple depending on the video mode, see http://stackoverflow.com/questions/14081088/dot-2-pixels-together/14081142 . BIOS VGA video mode 0x13 (320x200x8bits) is the easiest. There is no such thing as "8086 graphics mode" or "8086 text mode". 8086 is a **processor**, not a **video card**. Video modes depend on the **video card**. – nrz Dec 20 '13 at 00:26
2 Answers
1
A reference for accessing the VGA video cards can be found here.
If you can't find more detailed information, you can always use an interrupt call and then debug and see what it is doing.

Devolus
- 21,661
- 13
- 66
- 113
0
With assembly is possible to write directly in the video memory card.
In text mode, which you are referring to, memory graphic starts from location b800h
, and each couple of bytes refer to the character to display, and the color.
Here is some sample code; it runs on dosbox or on a real dos box.
org 100h
;frame buffer location
push 0xb800
pop es
;access the 79 character position on the 80 chars wide mode
mov di, 158
mov al, 40h ; the '@' character
mov [es:di], al
inc di
mov al, 79h ; blue on gray color
mov [es:di], al

Zac
- 4,510
- 3
- 36
- 44