============================================================================================================================================== OFFSET 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F ---------------------------------------------------------------------------------------------------------------------------------------------- 00000000 DC A5 68 00 57 E0 09 04 00 00 00 00 65 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 F3 74 00 00 ▄Ñh.Wα○♦....e............♥..≤t.. 00000020 24 8E 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 F3 71 00 00 00 00 00 00 00 00 00 00 $Ä..................≤q.......... 00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 B8 01 00 00 .........................Ç..╕☺.. 00000060 00 80 00 00 B8 01 00 00 B8 81 00 00 00 00 00 00 B8 81 00 00 00 00 00 00 B8 81 00 00 00 00 00 00 .Ç..╕☺..╕ü......╕ü......╕ü...... 00000080 B8 81 00 00 00 00 00 00 B8 81 00 00 14 00 00 00 92 82 00 00 54 02 00 00 92 82 00 00 00 00 00 00 ╕ü......╕ü..¶...Æé..T☻..Æé...... 000000A0 E6 84 00 00 00 00 00 00 E6 84 00 00 00 00 00 00 E6 84 00 00 00 00 00 00 E6 84 00 00 0A 00 00 00 µä......µä......µä......µä..◙... 000000C0 F0 84 00 00 1C 00 00 00 92 82 00 00 00 00 00 00 4C 8D 00 00 44 00 00 00 0C 85 00 00 16 00 00 00 ≡ä..∟...Æé......Lì..D...♀à..▬... 000000E0 22 85 00 00 00 00 00 00 22 85 00 00 00 00 00 00 22 85 00 00 00 00 00 00 22 85 00 00 00 00 00 00 "à......"à......"à......"à...... 00000100 22 85 00 00 24 02 00 00 46 87 00 00 3C 01 00 00 82 88 00 00 A0 00 00 00 33 8B 00 00 02 00 00 00 "à..$☻..Fç..<☺..éê..á...3ï..☻... 00000120 35 8B 00 00 00 00 00 00 35 8B 00 00 00 00 00 00 35 8B 00 00 51 00 00 00 86 8B 00 00 D4 00 00 00 5ï......5ï......5ï..Q...åï..╘... 00000140 5A 8C 00 00 D4 00 00 00 2E 8D 00 00 1E 00 00 00 90 8D 00 00 58 00 00 00 E8 8D 00 00 3C 00 00 00 Zî..╘....ì..▲...Éì..X...Φì..<... 00000160 4C 8D 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 B8 81 00 00 00 00 00 00 Lì......................╕ü...... 00000180 22 89 00 00 00 00 00 00 00 00 3B 00 3C 00 01 00 04 00 22 85 00 00 00 00 00 00 22 85 00 00 00 00 "ë........;.<.☺.♦."à......"à.... 000001A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 22 89 00 00 00 00 00 00 22 89 00 00 00 00 .................."ë......"ë.... 000001C0 00 00 4C 8D 00 00 00 00 00 00 F4 8A 00 00 00 00 00 00 B8 81 00 00 00 00 00 00 B8 81 00 00 00 00 ..Lì......⌠è......╕ü......╕ü.... 000001E0 00 00 22 85 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0C 85 00 00 00 00 .."à......................♀à.... 00000200 00 00 F4 8A 00 00 00 00 00 00 F4 8A 00 00 00 00 00 00 F4 8A 00 00 00 00 00 00 22 89 00 00 D2 01 ..⌠è......⌠è......⌠è......"ë..╥☺ 00000220 00 00 B8 81 00 00 00 00 00 00 22 85 00 00 00 00 00 00 B8 81 00 00 00 00 00 00 22 85 00 00 00 00 ..╕ü......"à......╕ü......"à.... 00000240 00 00 33 8B 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 C7 2F 76 3B CC BB 01 CC 81 00 00 4A 00 ..3ï...............╟/v;╠╗☺╠ü..J. 00000260 00 00 16 82 00 00 7C 00 00 00 B8 81 00 00 00 00 00 00 B8 81 00 00 00 00 00 00 B8 81 00 00 00 00 ..▬é..|...╕ü......╕ü......╕ü.... 00000280 00 00 B8 81 00 00 00 00 00 00 22 89 00 00 00 00 00 00 33 8B 00 00 00 00 00 00 F4 8A 00 00 3F 00 ..╕ü......"ë......3ï......⌠è..?. 000002A0 00 00 F4 8A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ..⌠è............................ 000002C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................ 000002E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................ 00000300 55 73 69 6E 67 20 74 68 65 20 53 75 70 65 72 56 47 41 20 4B 69 74 0D 54 68 69 73 20 73 65 63 74 Using the SuperVGA Kit♪This sect 00000320 69 6F 6E 20 70 72 6F 76 69 64 65 73 20 61 6E 20 6F 76 65 72 76 69 65 77 20 6F 66 20 74 68 65 20 ion provides an overview of the 00000340 53 75 70 65 72 56 47 41 20 4B 69 74 2C 20 61 6E 64 20 70 72 6F 76 69 64 65 73 20 62 61 63 6B 67 SuperVGA Kit, and provides backg 00000360 72 6F 75 6E 64 20 64 65 74 61 69 6C 73 20 6F 6E 20 74 68 65 20 53 75 70 65 72 56 47 41 20 4B 69 round details on the SuperVGA Ki 00000380 74 20 66 75 6E 63 74 69 6F 6E 61 6C 69 74 79 20 61 6E 64 20 68 6F 77 20 74 6F 20 75 74 69 6C 69 t functionality and how to utili 000003A0 7A 65 20 74 68 69 73 20 66 75 6E 63 74 69 6F 6E 61 6C 69 74 79 20 69 6E 20 79 6F 75 72 20 6F 77 ze this functionality in your ow 000003C0 6E 20 61 70 70 6C 69 63 61 74 69 6F 6E 73 2E 0D 4E 6F 74 65 20 74 68 61 74 20 74 68 65 20 53 75 n applications.♪Note that the Su 000003E0 70 65 72 56 47 41 20 4B 69 74 20 69 73 20 6E 6F 20 6C 6F 6E 67 65 72 20 61 20 73 75 70 70 6F 72 perVGA Kit is no longer a suppor 00000400 74 65 64 20 53 63 69 54 65 63 68 20 53 6F 66 74 77 61 72 65 20 70 72 6F 64 75 63 74 2C 20 61 6E ted SciTech Software product, an 00000420 64 20 66 6F 72 20 6D 61 78 69 6D 75 6D 20 70 6F 72 74 61 62 69 6C 69 74 79 20 79 6F 75 20 73 68 d for maximum portability you sh 00000440 6F 75 6C 64 20 61 74 74 65 6D 70 74 20 74 6F 20 6D 6F 76 65 20 61 6C 6C 20 79 6F 75 72 20 53 75 ould attempt to move all your Su 00000460 70 65 72 56 47 41 20 4B 69 74 20 63 6F 64 65 20 61 63 72 6F 73 73 20 74 6F 20 75 73 65 20 74 68 perVGA Kit code across to use th 00000480 65 20 72 65 61 6C 20 4D 47 4C 20 41 50 49 2E 20 48 6F 77 65 76 65 72 20 74 68 65 20 53 75 70 65 e real MGL API. However the Supe 000004A0 72 56 47 41 20 4B 69 74 20 69 73 20 73 74 69 6C 6C 20 70 72 6F 76 69 64 65 64 2C 20 61 6E 64 20 rVGA Kit is still provided, and 000004C0 74 68 69 73 20 64 6F 63 75 6D 65 6E 74 61 74 69 6F 6E 20 69 73 20 70 72 6F 76 69 64 65 64 20 66 this documentation is provided f 000004E0 6F 72 20 64 65 76 65 6C 6F 70 65 72 73 20 77 68 6F 20 61 72 65 20 63 6F 6E 74 65 6E 74 20 74 6F or developers who are content to 00000500 20 75 73 65 20 74 68 69 73 20 41 50 49 2E 0D 57 68 61 74 20 69 73 20 74 68 65 20 53 63 69 54 65 use this API.♪What is the SciTe 00000520 63 68 20 53 75 70 65 72 56 47 41 20 4B 69 74 3F 0D 54 68 65 20 53 63 69 54 65 63 68 20 53 75 70 ch SuperVGA Kit?♪The SciTech Sup 00000540 65 72 56 47 41 20 4B 69 74 20 69 73 20 61 20 53 6F 66 74 77 61 72 65 20 44 65 76 65 6C 6F 70 6D erVGA Kit is a Software Developm 00000560 65 6E 74 20 4B 69 74 20 66 6F 72 20 77 6F 72 6B 69 6E 67 20 77 69 74 68 20 56 45 53 41 20 56 42 ent Kit for working with VESA VB 00000580 45 20 63 6F 6D 70 6C 69 61 6E 74 20 53 75 70 65 72 56 47 41 20 67 72 61 70 68 69 63 73 20 63 61 E compliant SuperVGA graphics ca 000005A0 72 64 73 20 75 6E 64 65 72 20 62 6F 74 68 20 44 4F 53 20 61 6E 64 20 57 69 6E 64 6F 77 73 2E 20 rds under both DOS and Windows. 000005C0 54 68 69 73 20 53 44 4B 20 69 6E 63 6C 75 64 65 73 20 66 75 6C 6C 20 73 75 70 70 6F 72 74 20 66 This SDK includes full support f 000005E0 6F 72 20 61 6C 6C 20 73 74 61 6E 64 61 72 64 20 56 42 45 20 64 65 76 69 63 65 73 2C 20 61 73 20 or all standard VBE devices, as 00000600 77 65 6C 6C 20 61 73 20 64 65 76 69 63 65 73 20 74 68 61 74 20 73 75 70 70 6F 72 74 20 74 68 65 well as devices that support the 00000620 20 6E 65 77 20 56 42 45 2F 41 46 20 41 63 63 65 6C 65 72 61 74 6F 72 20 46 75 6E 63 74 69 6F 6E new VBE/AF Accelerator Function 00000640 73 20 73 70 65 63 69 66 69 63 61 74 69 6F 6E 2E 20 41 6C 74 68 6F 75 67 68 20 56 42 45 20 32 2E s specification. Although VBE 2. 00000660 30 20 6F 72 20 56 42 45 2F 41 46 20 31 2E 30 20 69 73 20 72 65 71 75 69 72 65 64 20 74 6F 20 67 0 or VBE/AF 1.0 is required to g 00000680 65 74 20 74 68 65 20 6D 61 78 69 6D 75 6D 20 70 65 72 66 6F 72 6D 61 6E 63 65 20 6F 75 74 20 6F et the maximum performance out o 000006A0 66 20 74 68 69 73 20 6C 69 62 72 61 72 79 2C 20 69 74 20 64 6F 65 73 20 70 72 6F 76 69 64 65 20 f this library, it does provide 000006C0 66 75 6C 6C 20 73 75 70 70 6F 72 74 20 66 6F 72 20 65 78 69 73 74 69 6E 67 20 63 6F 6E 74 72 6F full support for existing contro 000006E0 6C 6C 65 72 73 20 74 68 61 74 20 73 75 70 70 6F 72 74 20 74 68 65 20 56 42 45 20 31 2E 32 20 61 llers that support the VBE 1.2 a 00000700 6E 64 20 6C 6F 77 65 72 20 73 70 65 63 69 66 69 63 61 74 69 6F 6E 73 2E 0D 54 68 65 20 53 63 69 nd lower specifications.♪The Sci 00000720 54 65 63 68 20 53 75 70 65 72 56 47 41 20 4B 69 74 20 70 72 6F 76 69 64 65 73 20 73 75 70 70 6F Tech SuperVGA Kit provides suppo 00000740 72 74 20 66 6F 72 20 62 6F 74 68 20 31 36 20 62 69 74 20 72 65 61 6C 20 6D 6F 64 65 20 61 6E 64 rt for both 16 bit real mode and 00000760 20 33 32 20 62 69 74 20 70 72 6F 74 65 63 74 65 64 20 6D 6F 64 65 20 64 65 76 65 6C 6F 70 6D 65 32 bit protected mode developme 00000780 6E 74 20 75 6E 64 65 72 20 4D 53 2D 44 4F 53 2C 20 61 6E 64 20 62 6F 74 68 20 31 36 20 61 6E 64 nt under MS-DOS, and both 16 and 000007A0 20 33 32 20 62 69 74 20 70 72 6F 74 65 63 74 65 64 20 6D 6F 64 65 20 75 6E 64 65 72 20 57 69 6E 32 bit protected mode under Win 000007C0 64 6F 77 73 20 33 2E 31 20 61 6E 64 20 57 69 6E 64 6F 77 73 20 39 35 2E 20 55 6E 64 65 72 20 57 dows 3.1 and Windows 95. Under W 000007E0 69 6E 64 6F 77 73 20 33 2E 31 20 61 6E 64 20 57 69 6E 64 6F 77 73 20 39 35 20 74 68 65 20 53 75 indows 3.1 and Windows 95 the Su 00000800 70 65 72 56 47 41 20 4B 69 74 20 69 73 20 70 72 6F 76 69 64 65 64 20 61 73 20 62 6F 74 68 20 31 perVGA Kit is provided as both 1 00000820 36 20 61 6E 64 20 33 32 20 62 69 74 20 44 4C 4C 92 73 2C 20 61 6E 64 20 61 73 20 73 74 61 74 69 6 and 32 bit DLLÆs, and as stati 00000840 63 61 6C 6C 79 20 6C 69 6E 6B 61 62 6C 65 20 6C 69 62 72 61 72 69 65 73 2E 20 49 66 20 79 6F 75 cally linkable libraries. If you 00000860 20 77 69 73 68 20 74 6F 20 75 73 65 20 74 68 65 20 73 74 61 74 69 63 20 6C 69 6E 6B 20 6C 69 62 wish to use the static link lib 00000880 72 61 72 69 65 73 20 75 6E 64 65 72 20 31 36 20 62 69 74 20 57 69 6E 64 6F 77 73 2C 20 70 6C 65 raries under 16 bit Windows, ple 000008A0 61 73 65 20 72 65 61 64 20 74 68 65 20 73 70 65 63 69 61 6C 20 73 65 63 74 69 6F 6E 20 72 65 6C ase read the special section rel 000008C0 61 74 65 64 20 74 6F 20 74 68 69 73 20 62 65 6C 6F 77 2E 0D 53 75 70 65 72 56 47 41 20 4B 69 74 ated to this below.♪SuperVGA Kit 000008E0 20 63 6F 6D 70 6F 6E 65 6E 74 73 0D 54 68 65 20 53 75 70 65 72 56 47 41 20 4B 69 74 20 63 6F 6E components♪The SuperVGA Kit con 00000900 73 69 73 74 73 20 6F 66 20 61 20 6E 75 6D 62 65 72 20 6F 66 20 68 65 61 64 65 72 20 66 69 6C 65 sists of a number of header file 00000920 73 20 61 6E 64 20 73 74 61 74 69 63 20 6C 69 6E 6B 20 6C 69 62 72 61 72 69 65 73 20 66 6F 72 20 s and static link libraries for 00000940 44 4F 53 20 61 6E 64 20 57 69 6E 64 6F 77 73 20 61 70 70 6C 69 63 61 74 69 6F 6E 73 2C 20 6F 72 DOS and Windows applications, or 00000960 20 61 73 20 31 36 20 6F 72 20 33 32 20 62 69 74 20 44 4C 4C 92 73 20 66 6F 72 20 57 69 6E 64 6F as 16 or 32 bit DLLÆs for Windo 00000980 77 73 20 61 70 70 6C 69 63 61 74 69 6F 6E 73 2E 20 54 61 62 6C 65 20 31 20 6C 69 73 74 73 20 74 ws applications. Table 1 lists t 000009A0 68 65 20 66 69 6C 65 73 20 74 68 61 74 20 63 6F 6D 70 72 69 73 65 20 74 68 65 20 73 74 61 6E 64 he files that comprise the stand 000009C0 61 72 64 20 53 75 70 65 72 56 47 41 20 4B 69 74 20 6C 69 62 72 61 72 79 20 70 61 63 6B 61 67 65 ard SuperVGA Kit library package 000009E0 20 28 73 65 65 20 69 6E 73 74 61 6C 6C 61 74 69 6F 6E 20 73 65 63 74 69 6F 6E 20 66 6F 72 20 64 (see installation section for d 00000A00 65 74 61 69 6C 73 20 6F 6E 20 77 68 65 72 65 20 74 68 65 20 66 69 6C 65 73 20 77 69 6C 6C 20 62 etails on where the files will b 00000A20 65 20 6C 6F 63 61 74 65 64 29 2E 0D 46 69 6C 65 07 50 75 72 70 6F 73 65 07 07 53 56 47 41 2E 48 e located).♪File•Purpose••SVGA.H 00000A40 07 4D 61 69 6E 20 53 75 70 65 72 56 47 41 20 4B 69 74 20 68 65 61 64 65 72 20 66 69 6C 65 07 07 •Main SuperVGA Kit header file•• 00000A60 53 56 47 41 4D 47 4C 2E 48 07 53 75 70 65 72 56 47 41 20 4B 69 74 20 43 6F 6D 70 61 74 69 62 69 SVGAMGL.H•SuperVGA Kit Compatibi 00000A80 6C 69 74 79 20 4C 69 62 72 61 72 79 20 68 65 61 64 65 72 20 66 69 6C 65 07 07 56 45 53 41 56 42 lity Library header file••VESAVB 00000AA0 45 2E 48 07 48 65 61 64 65 72 20 66 69 6C 65 20 66 6F 72 20 56 45 53 41 20 56 42 45 20 31 2E 32 E.H•Header file for VESA VBE 1.2 00000AC0 2F 32 2E 30 20 69 6E 74 65 72 66 61 63 65 20 6D 6F 64 75 6C 65 07 07 56 42 45 41 46 2E 48 07 48 /2.0 interface module••VBEAF.H•H 00000AE0 65 61 64 65 72 20 66 69 6C 65 20 66 6F 72 20 56 42 45 2F 41 46 20 31 2E 30 20 69 6E 74 65 72 66 eader file for VBE/AF 1.0 interf 00000B00 61 63 65 20 6D 6F 64 75 6C 65 07 07 53 56 47 41 2E 4C 49 42 07 53 74 61 74 69 63 20 6C 69 6E 6B ace module••SVGA.LIB•Static link 00000B20 20 6C 69 62 72 61 72 69 65 73 20 66 6F 72 20 64 65 66 61 75 6C 74 20 63 61 6C 6C 69 6E 67 20 63 libraries for default calling c 00000B40 6F 6E 76 65 6E 74 69 6F 6E 73 07 07 53 56 47 41 4D 47 4C 2E 4C 49 42 07 53 75 70 65 72 56 47 41 onventions••SVGAMGL.LIB•SuperVGA 00000B60 20 4B 69 74 20 43 6F 6D 70 61 74 69 62 69 6C 69 74 79 20 4C 69 62 72 61 72 79 07 07 53 53 56 47 Kit Compatibility Library••SSVG 00000B80 41 2E 4C 49 42 07 57 61 74 63 6F 6D 20 43 2B 2B 20 73 74 61 74 69 63 20 6C 69 6E 6B 20 6C 69 62 A.LIB•Watcom C++ static link lib 00000BA0 72 61 72 69 65 73 20 66 6F 72 20 73 74 61 63 6B 20 63 61 6C 6C 69 6E 67 20 63 6F 6E 76 65 6E 74 raries for stack calling convent 00000BC0 69 6F 6E 73 07 07 53 53 56 47 41 4D 47 4C 2E 4C 49 42 07 57 61 74 63 6F 6D 20 43 2B 2B 20 53 75 ions••SSVGAMGL.LIB•Watcom C++ Su 00000BE0 70 65 72 56 47 41 20 4B 69 74 20 43 6F 6D 70 61 74 69 62 69 6C 69 74 79 20 4C 69 62 72 61 72 79 perVGA Kit Compatibility Library 00000C00 20 66 6F 72 20 73 74 61 63 6B 20 63 61 6C 6C 69 6E 67 20 63 6F 6E 76 65 6E 74 69 6F 6E 73 07 07 for stack calling conventions•• 00000C20 53 56 47 41 36 32 2E 4C 49 42 07 31 36 20 62 69 74 20 53 75 70 65 72 56 47 41 20 4B 69 74 20 66 SVGA62.LIB•16 bit SuperVGA Kit f 00000C40 6F 72 20 57 69 6E 64 6F 77 73 20 69 6D 70 6F 72 74 20 6C 69 62 72 61 72 79 07 07 53 56 47 41 36 or Windows import library••SVGA6 00000C60 32 46 2E 4C 49 42 07 33 32 20 62 69 74 20 53 75 70 65 72 56 47 41 20 4B 69 74 20 66 6F 72 20 57 2F.LIB•32 bit SuperVGA Kit for W 00000C80 69 6E 64 6F 77 73 20 69 6D 70 6F 72 74 20 6C 69 62 72 61 72 79 07 07 53 56 47 41 36 32 2E 44 4C indows import library••SVGA62.DL 00000CA0 4C 07 31 36 20 62 69 74 20 53 75 70 65 72 56 47 41 20 4B 69 74 20 66 6F 72 20 57 69 6E 64 6F 77 L•16 bit SuperVGA Kit for Window 00000CC0 73 20 44 4C 4C 07 07 53 56 47 41 36 32 46 2E 44 4C 4C 07 33 32 20 62 69 74 20 53 75 70 65 72 56 s DLL••SVGA62F.DLL•32 bit SuperV 00000CE0 47 41 20 4B 69 74 20 66 6F 72 20 57 69 6E 64 6F 77 73 20 44 4C 4C 07 07 54 61 62 6C 65 20 13 20 GA Kit for Windows DLL••Table ‼ 00000D00 53 45 51 20 54 61 62 6C 65 5F 41 2D 20 5C 2A 20 41 52 41 42 49 43 20 14 31 15 0D 4E 6F 74 65 20 SEQ Table_A- \* ARABIC ¶1§♪Note 00000D20 74 68 61 74 20 69 6E 20 6F 72 64 65 72 20 74 6F 20 75 73 65 20 74 68 65 20 53 75 70 65 72 56 47 that in order to use the SuperVG 00000D40 41 20 4B 69 74 20 66 6F 72 20 57 69 6E 64 6F 77 73 2C 20 79 6F 75 20 77 69 6C 6C 20 61 6C 73 6F A Kit for Windows, you will also 00000D60 20 6E 65 65 64 20 74 68 65 20 57 69 6E 44 69 72 65 63 74 20 70 61 63 6B 61 67 65 20 28 64 65 73 need the WinDirect package (des 00000D80 63 72 69 62 65 64 20 62 65 6C 6F 77 29 20 74 6F 20 73 68 75 74 20 64 6F 77 6E 20 61 6E 64 20 72 cribed below) to shut down and r 00000DA0 65 73 74 6F 72 65 20 47 44 49 2E 0D 55 73 69 6E 67 20 57 69 6E 64 6F 77 73 20 31 36 20 62 69 74 estore GDI.♪Using Windows 16 bit 00000DC0 20 73 74 61 74 69 63 20 6C 69 6E 6B 20 6C 69 62 72 61 72 69 65 73 0D 49 6E 20 6F 72 64 65 72 20 static link libraries♪In order 00000DE0 74 6F 20 73 75 70 70 6F 72 74 20 33 32 20 62 69 74 20 6C 69 6E 65 61 72 20 66 72 61 6D 65 62 75 to support 32 bit linear framebu 00000E00 66 66 65 72 20 61 63 63 65 73 73 20 66 72 6F 6D 20 31 36 20 62 69 74 20 57 69 6E 64 6F 77 73 20 ffer access from 16 bit Windows 00000E20 63 6F 64 65 2C 20 74 68 65 20 53 75 70 65 72 56 47 41 20 4B 69 74 20 69 6E 63 6C 75 64 65 73 20 code, the SuperVGA Kit includes 00000E40 73 70 65 63 69 61 6C 20 33 32 20 62 69 74 20 6C 69 6E 65 61 72 20 66 72 61 6D 65 62 75 66 66 65 special 32 bit linear framebuffe 00000E60 72 20 61 73 73 65 6D 62 6C 65 72 20 66 75 6E 63 74 69 6F 6E 73 2E 20 54 68 65 73 65 20 66 75 6E r assembler functions. These fun 00000E80 63 74 69 6F 6E 73 20 61 72 65 20 33 32 20 62 69 74 20 61 73 73 65 6D 62 6C 65 72 20 63 6F 64 65 ctions are 32 bit assembler code 00000EA0 20 74 68 61 74 20 72 65 73 69 64 65 20 69 6E 20 61 20 63 6F 6D 70 6C 65 74 65 6C 79 20 73 65 70 that reside in a completely sep 00000EC0 61 72 61 74 65 20 33 32 20 62 69 74 20 63 6F 64 65 20 73 65 67 6D 65 6E 74 2E 20 42 65 66 6F 72 arate 32 bit code segment. Befor 00000EE0 65 20 61 6E 79 20 6F 66 20 74 68 65 20 33 32 20 62 69 74 20 63 6F 64 65 20 63 61 6E 20 62 65 20 e any of the 32 bit code can be 00000F00 72 75 6E 2C 20 74 68 65 20 53 75 70 65 72 56 47 41 20 4B 69 74 20 63 6F 64 65 20 63 61 6C 6C 73 run, the SuperVGA Kit code calls 00000F20 20 61 20 73 70 65 63 69 61 6C 20 66 75 6E 63 74 69 6F 6E 20 69 6E 20 74 68 65 20 33 32 20 62 69 a special function in the 32 bi 00000F40 74 20 63 6F 64 65 20 73 65 67 6D 65 6E 74 20 74 68 61 74 20 77 69 6C 6C 20 63 6F 6E 76 65 72 74 t code segment that will convert 00000F60 20 74 68 65 20 73 65 6C 65 63 74 6F 72 20 66 6F 72 20 74 68 61 74 20 73 65 67 6D 65 6E 74 20 74 the selector for that segment t 00000F80 6F 20 61 20 33 32 20 62 69 74 20 63 6F 64 65 20 73 65 67 6D 65 6E 74 20 73 65 6C 65 63 74 6F 72 o a 32 bit code segment selector 00000FA0 2E 20 0D 48 6F 77 65 76 65 72 20 63 75 72 72 65 6E 74 20 31 36 20 62 69 74 20 43 20 63 6F 6D 70 . ♪However current 16 bit C comp 00000FC0 69 6C 65 72 73 20 64 6F 6E 92 74 20 6B 6E 6F 77 20 61 62 6F 75 74 20 33 32 20 62 69 74 20 63 6F ilers donÆt know about 32 bit co 00000FE0 64 65 20 73 65 67 6D 65 6E 74 73 2C 20 61 6E 64 20 62 79 20 64 65 66 61 75 6C 74 20 77 69 6C 6C de segments, and by default will 00001000 20 61 75 74 6F 6D 61 74 69 63 61 6C 6C 79 20 6D 65 72 67 65 20 74 68 65 20 33 32 20 62 69 74 20 automatically merge the 32 bit 00001020 63 6F 64 65 20 73 65 67 6D 65 6E 74 20 77 69 74 68 20 79 6F 75 72 20 61 70 70 6C 69 63 61 74 69 code segment with your applicati 00001040 6F 6E 73 20 6E 6F 72 6D 61 6C 20 31 36 20 62 69 74 20 63 6F 64 65 20 73 65 67 6D 65 6E 74 73 2E ons normal 16 bit code segments. 00001060 20 57 68 65 6E 20 74 68 69 73 20 68 61 70 70 65 6E 73 2C 20 74 68 65 20 73 61 6D 65 20 73 65 6C When this happens, the same sel 00001080 65 63 74 6F 72 20 77 69 6C 6C 20 62 65 20 75 73 65 64 20 66 6F 72 20 74 68 65 20 33 32 20 62 69 ector will be used for the 32 bi 000010A0 74 20 63 6F 64 65 20 73 65 67 6D 65 6E 74 20 61 6E 64 20 61 6E 79 20 6F 66 20 74 68 65 20 6D 65 t code segment and any of the me 000010C0 72 67 65 64 20 31 36 20 62 69 74 20 63 6F 64 65 20 73 65 67 6D 65 6E 74 73 21 20 4E 61 74 75 72 rged 16 bit code segments! Natur 000010E0 61 6C 6C 79 20 74 68 65 20 63 6F 64 65 20 77 69 6C 6C 20 6E 6F 74 20 72 75 6E 20 63 6F 72 72 65 ally the code will not run corre 00001100 63 74 6C 79 2C 20 61 6E 64 20 79 6F 75 72 20 70 72 6F 67 72 61 6D 20 77 69 6C 6C 20 63 72 61 73 ctly, and your program will cras 00001120 68 2E 0D 54 68 65 20 73 6F 6C 75 74 69 6F 6E 20 69 73 20 74 6F 20 65 6E 73 75 72 65 20 74 68 61 h.♪The solution is to ensure tha 00001140 74 20 77 68 65 6E 20 79 6F 75 20 6C 69 6E 6B 20 79 6F 75 72 20 61 70 70 6C 69 63 61 74 69 6F 6E t when you link your application 00001160 20 74 68 61 74 20 79 6F 75 20 74 65 6C 6C 20 79 6F 75 72 20 6C 69 6E 6B 65 72 20 74 6F 20 74 75 that you tell your linker to tu 00001180 72 6E 20 6F 66 66 20 74 68 65 20 63 6F 64 65 20 73 65 67 6D 65 6E 74 20 70 61 63 6B 69 6E 67 20 rn off the code segment packing 000011A0 6F 70 74 69 6F 6E 20 64 75 72 69 6E 67 20 74 68 65 20 6C 69 6E 6B 2C 20 77 68 69 63 68 20 77 69 option during the link, which wi 000011C0 6C 6C 20 73 6F 6C 76 65 20 74 68 65 20 70 72 6F 62 6C 65 6D 2E 20 41 6E 20 61 6C 74 65 72 6E 61 ll solve the problem. An alterna 000011E0 74 69 76 65 20 73 6F 6C 75 74 69 6F 6E 20 69 73 20 74 6F 20 61 6C 77 61 79 73 20 75 73 65 20 74 tive solution is to always use t 00001200 68 65 20 70 72 6F 76 69 64 65 64 20 31 36 20 62 69 74 20 44 4C 4C 20 72 61 74 68 65 72 20 74 68 he provided 16 bit DLL rather th 00001220 61 6E 20 6C 69 6E 6B 69 6E 67 20 77 69 74 68 20 74 68 65 20 73 74 61 74 69 63 20 6C 69 6E 6B 20 an linking with the static link 00001240 6C 69 62 72 61 72 79 20 66 6F 72 20 31 36 20 62 69 74 20 57 69 6E 64 6F 77 73 20 63 6F 64 65 2E library for 16 bit Windows code. 00001260 0D 42 75 69 6C 64 69 6E 67 20 61 70 70 6C 69 63 61 74 69 6F 6E 73 20 77 69 74 68 20 74 68 65 20 ♪Building applications with the 00001280 53 75 70 65 72 56 47 41 20 4B 69 74 0D 54 6F 20 62 75 69 6C 64 20 61 6E 20 61 70 70 6C 69 63 61 SuperVGA Kit♪To build an applica 000012A0 74 69 6F 6E 20 75 73 69 6E 67 20 74 68 65 20 53 75 70 65 72 56 47 41 20 4B 69 74 2C 20 79 6F 75 tion using the SuperVGA Kit, you 000012C0 20 77 69 6C 6C 20 6E 65 65 64 20 74 6F 20 69 6E 63 6C 75 64 65 20 74 68 65 20 53 56 47 41 2E 48 will need to include the SVGA.H 000012E0 20 68 65 61 64 65 72 20 66 69 6C 65 20 69 6E 20 79 6F 75 72 20 63 6F 64 65 2C 20 61 6E 64 20 6C header file in your code, and l 00001300 69 6E 6B 20 79 6F 75 72 20 61 70 70 6C 69 63 61 74 69 6F 6E 20 77 69 74 68 20 62 6F 74 68 20 74 ink your application with both t 00001320 68 65 20 53 56 47 41 2E 4C 49 42 20 61 6E 64 20 50 4D 4F 44 45 2E 4C 49 42 20 6C 69 62 72 61 72 he SVGA.LIB and PMODE.LIB librar 00001340 69 65 73 20 66 6F 72 20 79 6F 75 72 20 44 4F 53 20 45 78 74 65 6E 64 65 72 20 28 73 65 65 20 73 ies for your DOS Extender (see s 00001360 65 63 74 69 6F 6E 20 6F 66 20 50 4D 2F 50 72 6F 20 6C 69 62 72 61 72 79 20 66 6F 72 20 6D 6F 72 ection of PM/Pro library for mor 00001380 65 20 64 65 74 61 69 6C 73 29 2E 20 59 6F 75 20 77 69 6C 6C 20 6E 65 65 64 20 74 6F 20 65 6E 73 e details). You will need to ens 000013A0 75 72 65 20 74 68 61 74 20 79 6F 75 20 73 65 6C 65 63 74 20 74 68 65 20 63 6F 72 72 65 63 74 20 ure that you select the correct 000013C0 6C 69 62 72 61 72 69 65 73 20 66 6F 72 20 74 68 65 20 73 70 65 63 69 66 69 63 20 63 6F 6D 70 69 libraries for the specific compi 000013E0 6C 65 72 20 61 6E 64 20 63 61 6C 6C 69 6E 67 20 63 6F 6E 76 65 6E 74 69 6F 6E 73 20 74 68 61 74 ler and calling conventions that 00001400 20 79 6F 75 20 61 72 65 20 75 73 69 6E 67 2E 20 46 6F 72 20 57 69 6E 64 6F 77 73 20 63 6F 64 65 you are using. For Windows code 00001420 20 79 6F 75 20 77 69 6C 6C 20 6E 65 65 64 20 74 6F 20 6C 69 6E 6B 20 77 69 74 68 20 74 68 65 20 you will need to link with the 00001440 50 4D 2F 50 72 6F 20 44 4C 4C 20 69 6D 70 6F 72 74 20 6C 69 62 72 61 72 69 65 73 20 62 65 63 61 PM/Pro DLL import libraries beca 00001460 75 73 65 20 74 68 65 20 50 4D 2F 50 72 6F 20 6C 69 62 72 61 72 79 20 69 73 20 6F 6E 6C 79 20 70 use the PM/Pro library is only p 00001480 72 6F 76 69 64 65 64 20 61 73 20 44 4C 4C 92 73 20 66 6F 72 20 57 69 6E 64 6F 77 73 2E 0D 49 66 rovided as DLLÆs for Windows.♪If 000014A0 20 79 6F 75 20 61 72 65 20 63 6F 6D 70 69 6C 69 6E 67 20 57 69 6E 64 6F 77 73 20 63 6F 64 65 20 you are compiling Windows code 000014C0 61 6E 64 20 77 69 73 68 20 74 6F 20 75 73 65 20 74 68 65 20 44 4C 4C 20 76 65 72 73 69 6F 6E 20 and wish to use the DLL version 000014E0 6F 66 20 74 68 65 20 53 75 70 65 72 56 47 41 20 4B 69 74 2C 20 79 6F 75 20 77 69 6C 6C 20 6E 65 of the SuperVGA Kit, you will ne 00001500 65 64 20 74 6F 20 23 64 65 66 69 6E 65 20 53 56 47 41 5F 44 4C 4C 20 20 77 68 65 6E 20 79 6F 75 ed to #define SVGA_DLL when you 00001520 20 63 6F 6D 70 69 6C 65 20 61 6C 6C 20 73 6F 75 72 63 65 20 6D 6F 64 75 6C 65 73 20 74 68 61 74 compile all source modules that 00001540 20 69 6E 63 6C 75 64 65 20 74 68 65 20 53 56 47 41 2E 48 20 68 65 61 64 65 72 20 66 69 6C 65 2C include the SVGA.H header file, 00001560 20 61 6E 64 20 6C 69 6E 6B 20 77 69 74 68 20 74 68 65 20 53 75 70 65 72 56 47 41 20 4B 69 74 20 and link with the SuperVGA Kit 00001580 44 4C 4C 20 69 6D 70 6F 72 74 20 6C 69 62 72 61 72 69 65 73 20 66 6F 72 20 79 6F 75 72 20 63 6F DLL import libraries for your co 000015A0 6D 70 69 6C 65 72 2E 20 54 68 65 20 44 4C 4C 20 69 6D 70 6F 72 74 20 6C 69 62 72 61 72 69 65 73 mpiler. The DLL import libraries 000015C0 20 68 61 76 65 20 74 68 65 20 73 61 6D 65 20 6E 61 6D 65 20 61 73 20 74 68 65 20 44 4C 4C 20 66 have the same name as the DLL f 000015E0 69 6C 65 73 20 66 6F 72 20 74 68 69 73 20 72 65 6C 65 61 73 65 20 6F 66 20 74 68 65 20 53 75 70 iles for this release of the Sup 00001600 65 72 56 47 41 20 4B 69 74 20 77 69 74 68 20 74 68 65 20 2E 4C 49 42 20 66 69 6C 65 20 65 78 74 erVGA Kit with the .LIB file ext 00001620 65 6E 73 69 6F 6E 20 28 69 2E 65 2E 20 53 56 47 41 36 30 2E 4C 49 42 20 6F 72 20 53 56 47 41 36 ension (i.e. SVGA60.LIB or SVGA6 00001640 30 46 2E 4C 49 42 20 66 6F 72 20 74 68 65 20 36 2E 30 20 72 65 6C 65 61 73 65 29 2E 20 4E 6F 74 0F.LIB for the 6.0 release). Not 00001660 65 20 74 68 61 74 20 66 6F 72 20 57 69 6E 64 6F 77 73 20 63 6F 64 65 20 75 73 69 6E 67 20 74 68 e that for Windows code using th 00001680 65 20 44 4C 4C 20 6C 69 62 72 61 72 69 65 73 20 79 6F 75 20 77 69 6C 6C 20 6E 6F 74 20 6E 65 65 e DLL libraries you will not nee 000016A0 64 20 74 6F 20 6C 69 6E 6B 20 74 6F 20 74 68 65 20 50 4D 2F 50 72 6F 20 6C 69 62 72 61 72 79 20 d to link to the PM/Pro library 000016C0 66 69 6C 65 73 20 75 6E 6C 65 73 73 20 79 6F 75 20 6D 61 6B 65 20 65 78 70 6C 69 63 69 74 20 63 files unless you make explicit c 000016E0 61 6C 6C 73 20 74 6F 20 74 68 65 73 65 20 6C 69 62 72 61 72 79 20 66 75 6E 63 74 69 6F 6E 73 2C alls to these library functions, 00001700 20 61 73 20 74 68 65 20 53 75 70 65 72 56 47 41 20 4B 69 74 20 44 4C 4C 92 73 20 61 72 65 20 61 as the SuperVGA Kit DLLÆs are a 00001720 6C 72 65 61 64 79 20 6C 69 6E 6B 65 64 20 74 6F 20 74 68 65 20 50 4D 2F 50 72 6F 20 6C 69 62 72 lready linked to the PM/Pro libr 00001740 61 72 79 20 44 4C 4C 92 73 2E 0D 54 68 65 20 53 63 69 54 65 63 68 20 53 75 70 65 72 56 47 41 20 ary DLLÆs.♪The SciTech SuperVGA 00001760 4B 69 74 20 63 6F 6D 65 73 20 77 69 74 68 20 66 75 6C 6C 20 73 6F 75 72 63 65 20 63 6F 64 65 2C Kit comes with full source code, 00001780 20 73 6F 20 79 6F 75 20 63 61 6E 20 61 6C 73 6F 20 64 69 72 65 63 74 6C 79 20 69 6E 63 6C 75 64 so you can also directly includ 000017A0 65 20 74 68 65 20 73 6F 75 72 63 65 20 63 6F 64 65 20 66 6F 72 20 74 68 65 20 53 75 70 65 72 56 e the source code for the SuperV 000017C0 47 41 20 4B 69 74 20 69 6E 20 79 6F 75 72 20 6F 77 6E 20 70 72 6F 67 72 61 6D 73 20 72 61 74 68 GA Kit in your own programs rath 000017E0 65 72 20 74 68 61 6E 20 6C 69 6E 6B 69 6E 67 20 77 69 74 68 20 74 68 65 20 70 72 65 2D 63 6F 6D er than linking with the pre-com 00001800 70 69 6C 65 64 20 6C 69 62 72 61 72 69 65 73 2E 20 48 6F 77 65 76 65 72 20 79 6F 75 20 77 69 6C piled libraries. However you wil 00001820 6C 20 6E 65 65 64 20 54 75 72 62 6F 20 41 73 73 65 6D 62 6C 65 72 20 34 2E 30 20 6F 72 20 6C 61 l need Turbo Assembler 4.0 or la 00001840 74 65 72 20 69 6E 20 6F 72 64 65 72 20 74 6F 20 61 73 73 65 6D 62 6C 65 20 74 68 65 20 70 72 6F ter in order to assemble the pro 00001860 76 69 64 65 64 20 61 73 73 65 6D 62 6C 65 72 20 73 6F 75 72 63 65 20 63 6F 64 65 20 28 65 78 74 vided assembler source code (ext 00001880 72 61 63 74 20 74 68 65 20 6F 62 6A 65 63 74 20 66 69 6C 65 73 20 66 72 6F 6D 20 74 68 65 20 70 ract the object files from the p 000018A0 72 6F 76 69 64 65 64 20 6C 69 62 72 61 72 69 65 73 20 77 69 74 68 20 79 6F 75 72 20 63 6F 6D 70 rovided libraries with your comp 000018C0 69 6C 65 72 92 73 20 6C 69 62 72 61 72 69 61 6E 20 69 66 20 79 6F 75 20 64 6F 6E 92 74 20 68 61 ilerÆs librarian if you donÆt ha 000018E0 76 65 20 54 75 72 62 6F 20 41 73 73 65 6D 62 6C 65 72 29 2E 0D 49 66 20 79 6F 75 20 64 6F 6E 92 ve Turbo Assembler).♪If you donÆ 00001900 74 20 77 69 73 68 20 74 6F 20 75 73 65 20 74 68 65 20 65 6E 74 69 72 65 20 53 75 70 65 72 56 47 t wish to use the entire SuperVG 00001920 41 20 4B 69 74 20 6C 69 62 72 61 72 69 65 73 20 69 6E 20 79 6F 75 72 20 61 70 70 6C 69 63 61 74 A Kit libraries in your applicat 00001940 69 6F 6E 20 62 75 74 20 77 69 73 68 20 74 6F 20 73 75 70 70 6F 72 74 20 56 42 45 20 32 2E 30 20 ion but wish to support VBE 2.0 00001960 69 6E 20 79 6F 75 72 20 61 70 70 6C 69 63 61 74 69 6F 6E 73 2C 20 77 65 20 68 69 67 68 6C 79 20 in your applications, we highly 00001980 72 65 63 6F 6D 6D 65 6E 64 20 79 6F 75 20 6C 69 6E 6B 20 69 6E 20 61 6E 64 20 75 73 65 20 74 68 recommend you link in and use th 000019A0 65 20 56 45 53 41 56 42 45 2E 43 20 6D 6F 64 75 6C 65 20 61 73 20 79 6F 75 72 20 6D 61 69 6E 20 e VESAVBE.C module as your main 000019C0 69 6E 74 65 72 66 61 63 65 20 74 6F 20 56 42 45 20 32 2E 30 2E 20 4E 6F 6E 65 20 6F 66 20 74 68 interface to VBE 2.0. None of th 000019E0 65 20 63 6F 64 65 20 69 6E 20 56 45 53 41 56 42 45 2E 43 20 69 73 20 73 70 65 65 64 20 63 72 69 e code in VESAVBE.C is speed cri 00001A00 74 69 63 61 6C 2C 20 61 6E 64 20 74 68 69 73 20 6D 6F 64 75 6C 65 20 74 61 6B 65 73 20 63 61 72 tical, and this module takes car 00001A20 65 20 6F 66 20 66 69 78 69 6E 67 20 6D 69 6E 6F 72 20 62 75 67 73 20 69 6E 20 73 6C 69 67 68 74 e of fixing minor bugs in slight 00001A40 6C 79 20 76 61 72 79 69 6E 67 20 56 42 45 20 69 6D 70 6C 65 6D 65 6E 74 61 74 69 6F 6E 73 20 74 ly varying VBE implementations t 00001A60 6F 20 6D 61 6B 65 20 74 68 65 20 68 69 67 68 20 6C 65 76 65 6C 20 69 6E 74 65 72 66 61 63 65 20 o make the high level interface 00001A80 63 6F 6E 73 69 73 74 65 6E 74 2E 20 54 68 69 73 20 6D 6F 64 75 6C 65 20 61 6C 73 6F 20 74 61 6B consistent. This module also tak 00001AA0 65 73 20 63 61 72 65 20 6F 66 20 69 73 6F 6C 61 74 69 6E 67 20 70 72 6F 74 65 63 74 65 64 20 6D es care of isolating protected m 00001AC0 6F 64 65 20 61 70 70 6C 69 63 61 74 69 6F 6E 73 20 66 72 6F 6D 20 74 68 65 20 6E 65 65 64 20 74 ode applications from the need t 00001AE0 6F 20 64 65 61 6C 20 77 69 74 68 20 70 6F 69 6E 74 65 72 73 20 74 6F 20 72 65 61 6C 20 6D 6F 64 o deal with pointers to real mod 00001B00 65 20 6D 65 6D 6F 72 79 20 6C 6F 63 61 74 69 6F 6E 73 20 62 79 20 6D 61 70 70 69 6E 67 20 61 6C e memory locations by mapping al 00001B20 6C 20 73 75 63 68 20 64 61 74 61 20 69 6E 74 6F 20 74 68 65 20 64 65 66 61 75 6C 74 20 64 61 74 l such data into the default dat 00001B40 61 20 73 65 67 6D 65 6E 74 20 61 75 74 6F 6D 61 74 69 63 61 6C 6C 79 2E 0D 53 75 70 65 72 56 47 a segment automatically.♪SuperVG 00001B60 41 20 4B 69 74 20 63 6F 6D 70 61 74 69 62 69 6C 69 74 79 20 6C 69 62 72 61 72 79 0D 49 66 20 79 A Kit compatibility library♪If y 00001B80 6F 75 20 68 61 76 65 20 64 65 76 65 6C 6F 70 65 64 20 61 6E 20 61 70 70 6C 69 63 61 74 69 6F 6E ou have developed an application 00001BA0 20 75 73 69 6E 67 20 74 68 65 20 53 75 70 65 72 56 47 41 20 4B 69 74 20 61 6E 64 20 79 6F 75 20 using the SuperVGA Kit and you 00001BC0 77 6F 75 6C 64 20 6C 69 6B 65 20 74 6F 20 6D 6F 76 65 20 75 70 20 74 6F 20 74 68 65 20 66 75 6C would like to move up to the ful 00001BE0 6C 20 4D 47 4C 20 41 50 49 2C 20 79 6F 75 20 63 61 6E 20 67 65 74 20 73 74 61 72 74 65 64 20 71 l MGL API, you can get started q 00001C00 75 69 63 6B 6C 79 20 77 69 74 68 20 74 68 65 20 53 75 70 65 72 56 47 41 20 4B 69 74 20 63 6F 6D uickly with the SuperVGA Kit com 00001C20 70 61 74 62 69 6C 69 74 79 20 6C 69 62 72 61 72 79 2E 20 54 68 69 73 20 69 73 20 61 20 73 6D 61 patbility library. This is a sma 00001C40 6C 6C 20 6C 69 62 72 61 72 79 20 74 68 61 74 20 65 78 70 6F 72 74 73 20 61 6E 20 69 64 65 6E 74 ll library that exports an ident 00001C60 69 63 61 6C 20 41 50 49 20 74 6F 20 74 68 65 20 6F 72 69 67 69 6E 61 6C 20 53 75 70 65 72 56 47 ical API to the original SuperVG 00001C80 41 20 4B 69 74 2C 20 62 75 74 20 79 6F 75 20 6C 69 6E 6B 20 79 6F 75 72 20 63 6F 64 65 20 77 69 A Kit, but you link your code wi 00001CA0 74 68 20 74 68 65 20 4D 47 4C 20 6C 69 62 72 61 72 69 65 73 20 72 61 74 68 65 72 20 74 68 61 6E th the MGL libraries rather than 00001CC0 20 74 68 65 20 53 75 70 65 72 56 47 41 20 4B 69 74 20 6C 69 62 72 61 72 69 65 73 2E 20 0D 49 66 the SuperVGA Kit libraries. ♪If 00001CE0 20 79 6F 75 20 64 6F 20 75 73 65 20 74 68 65 20 63 6F 6D 70 61 74 69 62 69 6C 69 74 79 20 6C 69 you do use the compatibility li 00001D00 62 72 61 72 79 2C 20 77 65 20 72 65 63 6F 6D 6D 65 6E 64 20 74 68 61 74 20 79 6F 75 20 65 76 65 brary, we recommend that you eve 00001D20 6E 74 75 61 6C 6C 79 20 70 6F 72 74 20 79 6F 75 72 20 63 6F 64 65 20 6F 76 65 72 20 74 6F 20 74 ntually port your code over to t 00001D40 68 65 20 66 75 6C 6C 20 4D 47 4C 20 41 50 49 2C 20 61 73 20 74 68 65 20 53 75 70 65 72 56 47 41 he full MGL API, as the SuperVGA 00001D60 20 4B 69 74 20 63 6F 6D 70 61 74 69 62 69 6C 69 74 79 20 6C 69 62 72 61 72 79 20 69 73 20 6E 6F Kit compatibility library is no 00001D80 74 20 70 6F 72 74 61 62 6C 65 20 74 6F 20 57 69 6E 64 6F 77 73 20 61 6E 64 20 77 69 6C 6C 20 6E t portable to Windows and will n 00001DA0 6F 74 20 77 6F 72 6B 20 77 69 74 68 20 74 68 65 20 44 69 72 65 63 74 58 20 6C 69 62 72 61 72 69 ot work with the DirectX librari 00001DC0 65 73 2E 20 54 68 65 20 66 75 6C 6C 20 73 6F 75 72 63 65 20 63 6F 64 65 20 74 6F 20 74 68 65 20 es. The full source code to the 00001DE0 63 6F 6D 70 61 74 69 62 69 6C 69 74 79 20 6C 69 62 72 61 72 79 20 69 73 20 70 72 6F 76 69 64 65 compatibility library is provide 00001E00 64 20 61 73 20 70 61 72 74 20 6F 66 20 74 68 65 20 73 74 61 6E 64 61 72 64 20 4D 47 4C 20 64 69 d as part of the standard MGL di 00001E20 73 74 72 69 62 75 74 69 6F 6E 2C 20 73 6F 20 79 6F 75 20 63 61 6E 20 75 73 65 20 74 68 61 74 20 stribution, so you can use that 00001E40 73 6F 75 72 63 65 20 63 6F 64 65 20 61 73 20 61 20 67 75 69 64 65 20 74 6F 20 68 65 6C 70 69 6E source code as a guide to helpin 00001E60 67 20 79 6F 75 20 70 6F 72 74 20 79 6F 75 72 20 63 6F 64 65 20 66 72 6F 6D 20 74 68 65 20 53 75 g you port your code from the Su 00001E80 70 65 72 56 47 41 20 4B 69 74 20 41 50 49 20 74 6F 20 74 68 65 20 66 75 6C 6C 20 4D 47 4C 20 41 perVGA Kit API to the full MGL A 00001EA0 50 49 2E 0D 55 73 69 6E 67 20 74 68 65 20 53 75 70 65 72 56 47 41 20 4B 69 74 20 43 6F 6D 70 61 PI.♪Using the SuperVGA Kit Compa 00001EC0 74 69 62 69 6C 69 74 79 20 4C 69 62 72 61 72 79 0D 49 6E 20 6F 72 64 65 72 20 74 6F 20 65 61 73 tibility Library♪In order to eas 00001EE0 65 20 74 68 65 20 70 6F 72 74 69 6E 67 20 65 66 66 6F 72 74 20 72 65 71 75 69 72 65 64 20 74 6F e the porting effort required to 00001F00 20 6D 6F 76 65 20 79 6F 75 72 20 63 6F 64 65 20 66 72 6F 6D 20 74 68 65 20 53 75 70 65 72 56 47 move your code from the SuperVG 00001F20 41 20 4B 69 74 20 41 50 49 20 6F 76 65 72 20 74 6F 20 74 68 65 20 53 63 69 54 65 63 68 20 4D 47 A Kit API over to the SciTech MG 00001F40 4C 20 41 50 49 2C 20 77 65 20 68 61 76 65 20 70 72 6F 76 69 64 65 64 20 61 20 73 6D 61 6C 6C 20 L API, we have provided a small 00001F60 53 75 70 65 72 56 47 41 20 4B 69 74 20 43 6F 6D 70 61 74 69 62 69 6C 69 74 79 20 4C 69 62 72 61 SuperVGA Kit Compatibility Libra 00001F80 72 79 20 28 77 69 74 68 20 73 6F 75 72 63 65 20 63 6F 64 65 29 2E 20 54 68 69 73 20 6C 69 62 72 ry (with source code). This libr 00001FA0 61 72 79 20 69 6D 70 6C 65 6D 65 6E 74 73 20 74 68 65 20 65 6E 74 69 72 65 20 53 75 70 65 72 56 ary implements the entire SuperV 00001FC0 47 41 20 4B 69 74 20 41 50 49 20 62 75 74 20 69 6D 70 6C 65 6D 65 6E 74 73 20 61 6C 6C 20 74 68 GA Kit API but implements all th 00001FE0 65 20 6D 6F 64 65 20 69 6E 69 74 69 61 6C 69 7A 61 74 69 6F 6E 20 61 6E 64 20 67 72 61 70 68 69 e mode initialization and graphi 00002000 63 73 20 6F 75 74 70 75 74 20 66 75 6E 63 74 69 6F 6E 73 20 75 73 69 6E 67 20 53 63 69 54 65 63 cs output functions using SciTec 00002020 68 20 4D 47 4C 2E 20 54 6F 20 75 73 65 20 74 68 69 73 20 6C 69 62 72 61 72 79 2C 20 61 6C 6C 20 h MGL. To use this library, all 00002040 79 6F 75 20 6E 65 65 64 20 74 6F 20 64 6F 20 69 73 20 63 6F 6D 70 69 6C 65 20 79 6F 75 72 20 63 you need to do is compile your c 00002060 6F 64 65 20 61 73 20 6E 6F 72 6D 61 6C 2C 20 61 6E 64 20 74 68 65 6E 20 73 69 6D 70 6C 79 20 72 ode as normal, and then simply r 00002080 65 6C 69 6E 6B 20 77 69 74 68 20 62 6F 74 68 20 74 68 65 20 53 56 47 41 4D 47 4C 2E 4C 49 42 20 elink with both the SVGAMGL.LIB 000020A0 61 6E 64 20 74 68 65 20 61 70 70 72 6F 70 72 69 61 74 65 20 4D 47 4C 20 6C 69 62 72 61 72 69 65 and the appropriate MGL librarie 000020C0 73 20 28 69 2E 65 2E 20 4D 47 4C 4C 54 2E 4C 49 42 20 66 6F 72 20 74 68 65 20 4D 47 4C 2F 4C 69 s (i.e. MGLLT.LIB for the MGL/Li 000020E0 74 65 20 6C 69 62 72 61 72 69 65 73 29 2E 0D 49 66 20 68 6F 77 65 76 65 72 20 79 6F 75 20 61 72 te libraries).♪If however you ar 00002100 65 20 75 73 69 6E 67 20 74 68 65 20 57 69 6E 44 69 72 65 63 74 20 63 6F 6D 70 61 74 69 62 69 6C e using the WinDirect compatibil 00002120 69 74 79 20 6C 69 62 72 61 72 69 65 73 20 66 6F 72 20 65 76 65 6E 74 20 68 61 6E 64 6C 69 6E 67 ity libraries for event handling 00002140 20 75 6E 64 65 72 20 44 4F 53 2C 20 79 6F 75 20 77 69 6C 6C 20 6E 65 65 64 20 74 6F 20 69 6E 63 under DOS, you will need to inc 00002160 6C 75 64 65 20 74 68 65 20 53 56 47 41 4D 47 4C 2E 48 20 68 65 61 64 65 72 20 66 69 6C 65 20 69 lude the SVGAMGL.H header file i 00002180 6E 73 74 65 61 64 20 6F 66 20 74 68 65 20 73 74 61 6E 64 61 72 64 20 53 56 47 41 2E 48 20 68 65 nstead of the standard SVGA.H he 000021A0 61 64 65 72 20 66 69 6C 65 2E 20 54 68 69 73 20 66 69 6C 65 20 63 6F 6E 74 61 69 6E 73 20 73 6F ader file. This file contains so 000021C0 6D 65 20 74 72 61 6E 73 6C 61 74 69 6F 6E 20 6D 61 63 72 6F 73 20 61 6E 64 20 66 75 6E 63 74 69 me translation macros and functi 000021E0 6F 6E 73 20 74 6F 20 74 72 61 6E 73 6C 61 74 65 20 74 68 65 20 65 76 65 6E 74 20 68 61 6E 64 6C ons to translate the event handl 00002200 69 6E 67 20 66 75 6E 63 74 69 6F 6E 73 20 66 72 6F 6D 20 74 68 65 20 57 69 6E 44 69 72 65 63 74 ing functions from the WinDirect 00002220 20 41 50 49 20 74 6F 20 74 68 65 20 53 63 69 54 65 63 68 20 4D 47 4C 20 41 50 49 2E 0D 49 6E 69 API to the SciTech MGL API.♪Ini 00002240 74 69 61 6C 69 7A 69 6E 67 20 74 68 65 20 53 75 70 65 72 56 47 41 20 4B 69 74 0D 42 65 66 6F 72 tializing the SuperVGA Kit♪Befor 00002260 65 20 79 6F 75 20 63 61 6E 20 75 73 65 20 74 68 65 20 53 75 70 65 72 56 47 41 20 4B 69 74 2C 20 e you can use the SuperVGA Kit, 00002280 79 6F 75 20 6E 65 65 64 20 74 6F 20 63 61 6C 6C 20 74 68 65 20 53 56 5F 69 6E 69 74 20 69 6E 69 you need to call the SV_init ini 000022A0 74 69 61 6C 69 7A 61 74 69 6F 6E 20 66 75 6E 63 74 69 6F 6E 2E 20 54 68 69 73 20 66 75 6E 63 74 tialization function. This funct 000022C0 69 6F 6E 20 74 61 6B 65 73 20 61 20 66 6C 61 67 20 74 68 61 74 20 69 6E 64 69 63 61 74 65 73 20 ion takes a flag that indicates 000022E0 77 68 65 74 68 65 72 20 79 6F 75 20 77 69 73 68 20 74 6F 20 73 65 61 72 63 68 20 66 6F 72 20 61 whether you wish to search for a 00002300 6E 64 20 75 73 65 20 56 42 45 2F 41 46 20 73 65 72 76 69 63 65 73 20 77 68 65 72 65 20 61 76 61 nd use VBE/AF services where ava 00002320 69 6C 61 62 6C 65 2C 20 61 6E 64 20 77 69 6C 6C 20 72 65 74 75 72 6E 20 61 20 70 6F 69 6E 74 65 ilable, and will return a pointe 00002340 72 20 74 6F 20 74 68 65 20 53 75 70 65 72 56 47 41 20 4B 69 74 92 73 20 67 6C 6F 62 61 6C 20 64 r to the SuperVGA KitÆs global d 00002360 65 76 69 63 65 20 63 6F 6E 74 65 78 74 20 62 6C 6F 63 6B 2E 20 54 68 69 73 20 67 6C 6F 62 61 6C evice context block. This global 00002380 20 64 65 76 69 63 65 20 63 6F 6E 74 65 78 74 20 62 6C 6F 63 6B 20 6D 61 69 6E 74 61 69 6E 73 20 device context block maintains 000023A0 61 6C 6C 20 74 68 65 20 73 74 61 74 65 20 69 6E 66 6F 72 6D 61 74 69 6F 6E 20 66 6F 72 20 74 68 all the state information for th 000023C0 65 20 53 75 70 65 72 56 47 41 20 4B 69 74 2C 20 61 6E 64 20 63 61 6E 20 62 65 20 75 73 65 64 20 e SuperVGA Kit, and can be used 000023E0 74 6F 20 64 69 72 65 63 74 6C 79 20 61 63 63 65 73 73 20 6D 61 6E 79 20 6F 66 20 74 68 65 20 53 to directly access many of the S 00002400 75 70 65 72 56 47 41 20 4B 69 74 92 73 20 69 6E 74 65 72 6E 61 6C 20 76 61 72 69 61 62 6C 65 73 uperVGA KitÆs internal variables 00002420 20 66 6F 72 20 6D 61 78 69 6D 75 6D 20 70 65 72 66 6F 72 6D 61 6E 63 65 2E 0D 4E 6F 74 65 20 74 for maximum performance.♪Note t 00002440 68 61 74 20 74 68 69 73 20 69 73 20 73 6C 69 67 68 74 6C 79 20 64 69 66 66 65 72 65 6E 74 20 74 hat this is slightly different t 00002460 6F 20 74 68 65 20 70 72 65 76 69 6F 75 73 20 35 2E 78 20 72 65 6C 65 61 73 65 73 20 6F 66 20 74 o the previous 5.x releases of t 00002480 68 65 20 53 75 70 65 72 56 47 41 20 4B 69 74 20 77 68 65 72 65 20 61 6C 6C 20 67 6C 6F 62 61 6C he SuperVGA Kit where all global 000024A0 20 76 61 72 69 61 62 6C 65 73 20 77 65 72 65 20 61 76 61 69 6C 61 62 6C 65 20 64 69 72 65 63 74 variables were available direct 000024C0 6C 79 2E 20 53 69 6E 63 65 20 74 68 65 20 53 75 70 65 72 56 47 41 20 4B 69 74 20 68 61 73 20 62 ly. Since the SuperVGA Kit has b 000024E0 65 65 6E 20 75 70 64 61 74 65 64 20 74 6F 20 73 75 70 70 6F 72 74 20 62 6F 74 68 20 31 36 20 61 een updated to support both 16 a 00002500 6E 64 20 33 32 20 62 69 74 20 44 4C 4C 92 73 20 75 6E 64 65 72 20 57 69 6E 64 6F 77 73 2C 20 74 nd 32 bit DLLÆs under Windows, t 00002520 68 65 20 69 6E 74 65 72 66 61 63 65 20 77 61 73 20 63 68 61 6E 67 65 64 20 74 6F 20 69 6E 63 6C he interface was changed to incl 00002540 75 64 65 20 61 20 67 6C 6F 62 61 6C 20 64 65 76 69 63 65 20 63 6F 6E 74 65 78 74 20 62 6C 6F 63 ude a global device context bloc 00002560 6B 20 70 6F 69 6E 74 65 72 20 72 65 74 75 72 6E 65 64 20 74 6F 20 74 68 65 20 61 70 70 6C 69 63 k pointer returned to the applic 00002580 61 74 69 6F 6E 2E 20 54 68 65 20 72 65 61 73 6F 6E 20 66 6F 72 20 74 68 69 73 20 69 73 20 74 68 ation. The reason for this is th 000025A0 61 74 20 79 6F 75 20 63 61 6E 6E 6F 74 20 73 68 61 72 65 20 67 6C 6F 62 61 6C 20 76 61 72 69 61 at you cannot share global varia 000025C0 62 6C 65 73 20 64 69 72 65 63 74 6C 79 20 69 6E 20 31 36 20 62 69 74 20 44 4C 4C 92 73 20 28 79 bles directly in 16 bit DLLÆs (y 000025E0 6F 75 20 63 61 6E 20 66 6F 72 20 33 32 20 62 69 74 20 44 4C 4C 92 73 2C 20 62 75 74 20 6D 61 6E ou can for 32 bit DLLÆs, but man 00002600 79 20 63 6F 6D 70 69 6C 65 72 73 20 64 6F 20 6E 6F 74 20 63 75 72 72 65 6E 74 6C 79 20 73 75 70 y compilers do not currently sup 00002620 70 6F 72 74 20 74 68 69 73 29 2E 20 54 68 65 20 61 64 76 61 6E 74 61 67 65 20 74 6F 20 74 68 65 port this). The advantage to the 00002640 20 6E 65 77 20 69 6E 74 65 72 66 61 63 65 20 69 73 20 74 68 61 74 20 79 6F 75 20 63 61 6E 20 63 new interface is that you can c 00002660 68 61 6E 67 65 20 66 72 6F 6D 20 74 68 65 20 73 74 61 74 69 63 20 6C 69 6E 6B 20 6C 69 62 72 61 hange from the static link libra 00002680 72 69 65 73 20 74 6F 20 74 68 65 20 44 4C 4C 20 76 65 72 73 69 6F 6E 20 6F 66 20 74 68 65 20 53 ries to the DLL version of the S 000026A0 75 70 65 72 56 47 41 20 4B 69 74 20 73 69 6D 70 6C 79 20 62 79 20 61 64 64 69 6E 67 20 74 68 65 uperVGA Kit simply by adding the 000026C0 20 23 64 65 66 69 6E 65 20 53 56 47 41 5F 44 4C 4C 20 61 6E 64 20 72 65 63 6F 6D 70 69 6C 69 6E #define SVGA_DLL and recompilin 000026E0 67 20 61 6E 64 20 6C 69 6E 6B 69 6E 67 20 79 6F 75 72 20 63 6F 64 65 2E 0D 53 74 61 72 74 69 6E g and linking your code.♪Startin 00002700 67 20 61 20 67 72 61 70 68 69 63 73 20 6D 6F 64 65 0D 42 65 66 6F 72 65 20 79 6F 75 20 63 61 6E g a graphics mode♪Before you can 00002720 20 73 74 61 72 74 20 61 6E 79 20 67 72 61 70 68 69 63 73 20 6D 6F 64 65 2C 20 79 6F 75 20 6D 75 start any graphics mode, you mu 00002740 73 74 20 66 69 72 73 74 20 66 69 6E 64 20 74 68 65 20 6D 6F 64 65 20 6E 75 6D 62 65 72 20 6F 66 st first find the mode number of 00002760 20 74 68 65 20 67 72 61 70 68 69 63 73 20 6D 6F 64 65 20 74 68 61 74 20 79 6F 75 20 77 69 73 68 the graphics mode that you wish 00002780 20 74 6F 20 73 74 61 72 74 2E 20 54 68 65 20 53 75 70 65 72 56 47 41 20 4B 69 74 20 64 6F 65 73 to start. The SuperVGA Kit does 000027A0 20 6E 6F 74 20 64 65 66 69 6E 65 20 61 6E 79 20 73 74 61 6E 64 61 72 64 20 6D 6F 64 65 20 6E 75 not define any standard mode nu 000027C0 6D 62 65 72 73 2C 20 61 6E 64 20 69 74 20 69 73 20 75 70 20 74 6F 20 79 6F 75 72 20 61 70 70 6C mbers, and it is up to your appl 000027E0 69 63 61 74 69 6F 6E 20 63 6F 64 65 20 74 6F 20 72 65 61 64 20 74 68 72 6F 75 67 68 20 74 68 65 ication code to read through the 00002800 20 6C 69 73 74 20 6F 66 20 61 76 61 69 6C 61 62 6C 65 20 67 72 61 70 68 69 63 73 20 6D 6F 64 65 list of available graphics mode 00002820 73 20 61 6E 64 20 74 6F 20 73 65 61 72 63 68 20 66 6F 72 20 61 20 67 72 61 70 68 69 63 73 20 6D s and to search for a graphics m 00002840 6F 64 65 20 77 69 74 68 20 74 68 65 20 64 65 73 69 72 65 64 20 72 65 73 6F 6C 75 74 69 6F 6E 20 ode with the desired resolution 00002860 61 6E 64 20 63 6F 6C 6F 72 20 64 65 70 74 68 20 75 73 69 6E 67 20 74 68 65 20 56 42 45 5F 67 65 and color depth using the VBE_ge 00002880 74 4D 6F 64 65 49 6E 66 6F 20 66 75 6E 63 74 69 6F 6E 2E 0D 54 68 65 20 53 75 70 65 72 56 47 41 tModeInfo function.♪The SuperVGA 000028A0 20 4B 69 74 20 61 6C 6C 6F 77 73 20 79 6F 75 20 74 6F 20 73 74 61 72 74 20 61 20 67 72 61 70 68 Kit allows you to start a graph 000028C0 69 63 73 20 6D 6F 64 65 20 75 73 69 6E 67 20 65 69 74 68 65 72 20 74 68 65 20 62 61 6E 6B 65 64 ics mode using either the banked 000028E0 20 66 72 61 6D 65 62 75 66 66 65 72 2C 20 61 20 76 69 72 74 75 61 6C 20 6C 69 6E 65 61 72 20 66 framebuffer, a virtual linear f 00002900 72 61 6D 65 62 75 66 66 65 72 20 6F 72 20 61 20 68 61 72 64 77 61 72 65 20 6C 69 6E 65 61 72 20 ramebuffer or a hardware linear 00002920 66 72 61 6D 65 62 75 66 66 65 72 20 6F 6E 20 74 68 65 20 67 72 61 70 68 69 63 73 20 63 61 72 64 framebuffer on the graphics card 00002940 20 28 64 65 70 65 6E 64 69 6E 67 20 6F 6E 20 74 68 65 20 75 6E 64 65 72 6C 79 69 6E 67 20 56 42 (depending on the underlying VB 00002960 45 20 64 72 69 76 65 72 92 73 20 63 61 70 61 62 69 6C 69 74 69 65 73 29 2E 20 57 68 65 6E 20 74 E driverÆs capabilities). When t 00002980 68 65 20 53 75 70 65 72 56 47 41 20 4B 69 74 20 69 73 20 69 6E 69 74 69 61 6C 69 7A 65 64 2C 20 he SuperVGA Kit is initialized, 000029A0 69 74 20 77 69 6C 6C 20 69 6E 74 65 72 72 6F 67 61 74 65 20 74 68 65 20 67 72 61 70 68 69 63 73 it will interrogate the graphics 000029C0 20 63 61 72 64 20 61 6E 64 20 64 65 74 65 72 6D 69 6E 65 20 69 66 20 69 74 20 73 75 70 70 6F 72 card and determine if it suppor 000029E0 74 73 20 61 20 68 61 72 64 77 61 72 65 20 6C 69 6E 65 61 72 20 66 72 61 6D 65 62 75 66 66 65 72 ts a hardware linear framebuffer 00002A00 2E 20 49 66 20 69 74 20 64 6F 65 73 20 73 75 70 70 6F 72 74 20 6F 6E 65 2C 20 74 68 65 20 6C 69 . If it does support one, the li 00002A20 6E 65 61 72 41 64 64 72 20 76 61 72 69 61 62 6C 65 20 69 6E 20 74 68 65 20 67 6C 6F 62 61 6C 20 nearAddr variable in the global 00002A40 64 65 76 69 63 65 20 63 6F 6E 74 65 78 74 20 62 6C 6F 63 6B 20 77 69 6C 6C 20 62 65 20 73 65 74 device context block will be set 00002A60 20 74 6F 20 74 68 65 20 76 61 6C 75 65 20 6F 66 20 74 68 65 20 70 68 79 73 69 63 61 6C 20 61 64 to the value of the physical ad 00002A80 64 72 65 73 73 20 6F 66 20 74 68 65 20 6C 69 6E 65 61 72 20 66 72 61 6D 65 62 75 66 66 65 72 20 dress of the linear framebuffer 00002AA0 28 74 68 69 73 20 69 73 20 6E 6F 74 20 61 20 43 50 55 20 61 64 64 72 65 73 73 2C 20 73 6F 20 64 (this is not a CPU address, so d 00002AC0 6F 6E 92 74 20 74 72 79 20 74 6F 20 77 72 69 74 65 20 74 6F 20 69 74 21 21 29 2E 20 49 74 20 69 onÆt try to write to it!!). It i 00002AE0 73 20 74 68 65 6E 20 75 70 20 74 6F 20 79 6F 75 72 20 61 70 70 6C 69 63 61 74 69 6F 6E 20 74 6F s then up to your application to 00002B00 20 70 61 73 73 20 74 68 65 20 73 76 4C 69 6E 65 61 72 42 75 66 66 65 72 20 66 6C 61 67 20 74 6F pass the svLinearBuffer flag to 00002B20 20 74 68 65 20 53 56 5F 73 65 74 4D 6F 64 65 20 66 75 6E 63 74 69 6F 6E 20 77 68 65 6E 20 79 6F the SV_setMode function when yo 00002B40 75 20 73 74 61 72 74 20 74 68 65 20 67 72 61 70 68 69 63 73 20 6D 6F 64 65 2C 20 61 6E 64 20 69 u start the graphics mode, and i 00002B60 74 20 77 69 6C 6C 20 65 6E 61 62 6C 65 20 74 68 65 20 68 61 72 64 77 61 72 65 20 6C 69 6E 65 61 t will enable the hardware linea 00002B80 72 20 66 72 61 6D 65 62 75 66 66 65 72 20 6D 6F 64 65 2E 0D 49 66 20 61 20 68 61 72 64 77 61 72 r framebuffer mode.♪If a hardwar 00002BA0 65 20 6C 69 6E 65 61 72 20 66 72 61 6D 65 62 75 66 66 65 72 20 6D 6F 64 65 20 69 73 20 6E 6F 74 e linear framebuffer mode is not 00002BC0 20 61 76 61 69 6C 61 62 6C 65 2C 20 74 68 65 20 53 75 70 65 72 56 47 41 20 4B 69 74 20 63 68 65 available, the SuperVGA Kit che 00002BE0 63 6B 73 20 74 6F 20 73 65 65 20 69 66 20 69 74 20 69 73 20 70 6F 73 73 69 62 6C 65 20 74 6F 20 cks to see if it is possible to 00002C00 69 6E 69 74 69 61 6C 69 7A 65 20 61 20 76 69 72 74 75 61 6C 20 6C 69 6E 65 61 72 20 66 72 61 6D initialize a virtual linear fram 00002C20 65 62 75 66 66 65 72 20 75 73 69 6E 67 20 74 68 65 20 33 38 36 20 76 69 72 74 75 61 6C 20 6D 65 ebuffer using the 386 virtual me 00002C40 6D 6F 72 79 20 6D 61 6E 61 67 65 72 20 28 6E 6F 74 20 70 6F 73 73 69 62 6C 65 20 75 6E 64 65 72 mory manager (not possible under 00002C60 20 44 4F 53 20 62 6F 78 65 73 20 61 6E 64 20 73 6F 6D 65 20 44 4F 53 20 65 78 74 65 6E 64 65 72 DOS boxes and some DOS extender 00002C80 73 29 2E 20 49 66 20 74 68 69 73 20 69 73 20 70 6F 73 73 69 62 6C 65 2C 20 69 74 20 73 65 74 73 s). If this is possible, it sets 00002CA0 20 74 68 65 20 68 61 76 65 56 69 72 74 75 61 6C 42 75 66 66 65 72 20 66 6C 61 67 20 69 6E 20 74 the haveVirtualBuffer flag in t 00002CC0 68 65 20 67 6C 6F 62 61 6C 20 64 65 76 69 63 65 20 63 6F 6E 74 65 78 74 20 62 6C 6F 63 6B 20 74 he global device context block t 00002CE0 6F 20 74 72 75 65 2C 20 69 6E 64 69 63 61 74 69 6E 67 20 74 68 61 74 20 74 68 65 20 76 69 72 74 o true, indicating that the virt 00002D00 75 61 6C 20 6C 69 6E 65 61 72 20 62 75 66 66 65 72 20 69 73 20 61 76 61 69 6C 61 62 6C 65 2E 20 ual linear buffer is available. 00002D20 57 68 65 6E 20 79 6F 75 20 69 6E 69 74 69 61 6C 69 7A 65 20 61 20 67 72 61 70 68 69 63 73 20 6D When you initialize a graphics m 00002D40 6F 64 65 2C 20 74 68 65 20 53 75 70 65 72 56 47 41 20 4B 69 74 20 77 69 6C 6C 20 63 68 65 63 6B ode, the SuperVGA Kit will check 00002D60 20 74 68 65 20 75 73 65 56 69 72 74 75 61 6C 42 75 66 66 65 72 20 66 6C 61 67 20 79 6F 75 20 70 the useVirtualBuffer flag you p 00002D80 61 73 73 20 74 6F 20 74 68 65 20 73 65 74 20 6D 6F 64 65 20 66 75 6E 63 74 69 6F 6E 73 20 74 6F ass to the set mode functions to 00002DA0 20 64 65 74 65 72 6D 69 6E 65 20 69 66 20 74 68 65 20 76 69 72 74 75 61 6C 20 6C 69 6E 65 61 72 determine if the virtual linear 00002DC0 20 66 72 61 6D 65 62 75 66 66 65 72 20 73 68 6F 75 6C 64 20 62 65 20 75 73 65 64 2E 20 49 66 20 framebuffer should be used. If 00002DE0 74 68 69 73 20 66 6C 61 67 20 69 73 20 73 65 74 20 74 6F 20 74 72 75 65 20 74 68 65 20 76 69 72 this flag is set to true the vir 00002E00 74 75 61 6C 20 6C 69 6E 65 61 72 20 66 72 61 6D 65 62 75 66 66 65 72 20 6D 6F 64 65 20 77 69 6C tual linear framebuffer mode wil 00002E20 6C 20 62 65 20 69 6E 69 74 69 61 6C 69 7A 65 64 20 61 6E 64 20 74 68 65 20 76 69 72 74 75 61 6C l be initialized and the virtual 00002E40 42 75 66 66 65 72 20 66 6C 61 67 20 69 6E 20 74 68 65 20 67 6C 6F 62 61 6C 20 64 65 76 69 63 65 Buffer flag in the global device 00002E60 20 63 6F 6E 74 65 78 74 20 77 69 6C 6C 20 62 65 20 73 65 74 20 74 6F 20 74 72 75 65 20 74 6F 20 context will be set to true to 00002E80 69 6E 64 69 63 61 74 65 20 74 68 61 74 20 74 68 65 20 76 69 72 74 75 61 6C 20 62 75 66 66 65 72 indicate that the virtual buffer 00002EA0 69 6E 67 20 6D 6F 64 65 20 69 73 20 63 75 72 72 65 6E 74 6C 79 20 61 63 74 69 76 65 2E 0D 4F 6E ing mode is currently active.♪On 00002EC0 63 65 20 74 68 65 20 67 72 61 70 68 69 63 73 20 6D 6F 64 65 20 69 73 20 69 6E 69 74 69 61 6C 69 ce the graphics mode is initiali 00002EE0 7A 65 64 2C 20 79 6F 75 20 63 61 6E 20 64 72 61 77 20 74 6F 20 69 74 20 75 73 69 6E 67 20 74 68 zed, you can draw to it using th 00002F00 65 20 73 75 70 70 6C 69 65 64 20 53 75 70 65 72 56 47 41 20 4B 69 74 20 67 72 61 70 68 69 63 73 e supplied SuperVGA Kit graphics 00002F20 20 6F 75 74 70 75 74 20 66 75 6E 63 74 69 6F 6E 73 20 28 6E 6F 74 20 76 65 72 79 20 73 70 65 63 output functions (not very spec 00002F40 74 61 63 75 6C 61 72 29 20 6F 72 20 79 6F 75 20 63 61 6E 20 77 72 69 74 65 20 79 6F 75 72 20 6F tacular) or you can write your o 00002F60 77 6E 20 68 69 67 68 20 73 70 65 65 64 20 72 65 6E 64 65 72 69 6E 67 20 63 6F 64 65 20 74 6F 20 wn high speed rendering code to 00002F80 72 65 6E 64 65 72 20 64 69 72 65 63 74 6C 79 20 74 6F 20 74 68 65 20 6C 69 6E 65 61 72 20 66 72 render directly to the linear fr 00002FA0 61 6D 65 62 75 66 66 65 72 20 72 65 67 69 6F 6E 73 2E 0D 4E 6F 74 65 20 74 68 61 74 20 69 66 20 amebuffer regions.♪Note that if 00002FC0 79 6F 75 20 61 72 65 20 75 73 69 6E 67 20 74 68 65 20 53 75 70 65 72 56 47 41 20 4B 69 74 20 75 you are using the SuperVGA Kit u 00002FE0 6E 64 65 72 20 57 69 6E 64 6F 77 73 2C 20 79 6F 75 20 6D 75 73 74 20 63 61 6C 6C 20 74 68 65 20 nder Windows, you must call the 00003000 57 69 6E 44 69 72 65 63 74 20 57 44 5F 73 74 61 72 74 46 75 6C 6C 73 63 72 65 65 6E 20 66 75 6E WinDirect WD_startFullscreen fun 00003020 63 74 69 6F 6E 20 62 65 66 6F 72 65 20 79 6F 75 20 69 6E 69 74 69 61 6C 69 7A 65 20 61 20 67 72 ction before you initialize a gr 00003040 61 70 68 69 63 73 20 6D 6F 64 65 2C 20 61 6E 64 20 79 6F 75 20 6D 75 73 74 20 63 61 6C 6C 20 57 aphics mode, and you must call W 00003060 44 5F 72 65 73 74 6F 72 65 47 44 49 20 74 6F 20 72 65 74 75 72 6E 20 62 61 63 6B 20 74 6F 20 6E D_restoreGDI to return back to n 00003080 6F 72 6D 61 6C 20 57 69 6E 64 6F 77 73 20 6D 6F 64 65 2E 20 46 61 69 6C 69 6E 67 20 74 6F 20 64 ormal Windows mode. Failing to d 000030A0 6F 20 73 6F 20 77 69 6C 6C 20 63 61 75 73 65 20 74 68 65 20 53 75 70 65 72 56 47 41 20 4B 69 74 o so will cause the SuperVGA Kit 000030C0 20 74 6F 20 77 72 69 74 65 20 74 6F 20 74 68 65 20 64 69 73 70 6C 61 79 20 63 6F 6E 63 75 72 72 to write to the display concurr 000030E0 65 6E 74 6C 79 20 77 69 74 68 20 47 44 49 20 61 6E 64 20 77 69 6C 6C 20 63 61 75 73 65 20 47 44 ently with GDI and will cause GD 00003100 49 20 74 6F 20 65 76 65 6E 74 75 61 6C 6C 79 20 6C 6F 63 6B 20 75 70 2E 0D 53 74 61 72 74 69 6E I to eventually lock up.♪Startin 00003120 67 20 61 20 76 69 72 74 75 61 6C 20 73 63 72 6F 6C 6C 69 6E 67 20 67 72 61 70 68 69 63 73 20 6D g a virtual scrolling graphics m 00003140 6F 64 65 0D 49 66 20 79 6F 75 20 77 69 73 68 20 74 6F 20 75 73 65 20 68 61 72 64 77 61 72 65 20 ode♪If you wish to use hardware 00003160 76 69 72 74 75 61 6C 20 73 63 72 6F 6C 6C 69 6E 67 20 77 69 74 68 20 74 68 65 20 53 75 70 65 72 virtual scrolling with the Super 00003180 56 47 41 20 4B 69 74 2C 20 79 6F 75 20 6D 75 73 74 20 69 6E 69 74 69 61 6C 69 7A 65 20 74 68 65 VGA Kit, you must initialize the 000031A0 20 67 72 61 70 68 69 63 73 20 6D 6F 64 65 20 75 73 69 6E 67 20 74 68 65 20 53 56 5F 73 65 74 56 graphics mode using the SV_setV 000031C0 69 72 74 75 61 6C 4D 6F 64 65 20 66 75 6E 63 74 69 6F 6E 20 72 61 74 68 65 72 20 74 68 61 6E 20 irtualMode function rather than 000031E0 74 68 65 20 75 73 75 61 6C 20 53 56 5F 73 65 74 4D 6F 64 65 20 66 75 6E 63 74 69 6F 6E 2E 20 54 the usual SV_setMode function. T 00003200 68 65 20 76 69 72 74 75 61 6C 20 73 63 72 6F 6C 6C 69 6E 67 20 76 65 72 73 69 6F 6E 20 6F 66 20 he virtual scrolling version of 00003220 74 68 69 73 20 66 75 6E 63 74 69 6F 6E 20 74 61 6B 65 73 20 74 77 6F 20 65 78 74 72 61 20 70 61 this function takes two extra pa 00003240 72 61 6D 65 74 65 72 73 20 74 68 61 74 20 64 65 66 69 6E 65 20 74 68 65 20 76 69 72 74 75 61 6C rameters that define the virtual 00003260 20 68 65 69 67 68 74 20 61 6E 64 20 76 69 72 74 75 61 6C 20 77 69 64 74 68 20 6F 66 20 74 68 65 height and virtual width of the 00003280 20 67 72 61 70 68 69 63 73 20 6D 6F 64 65 20 74 68 61 74 20 79 6F 75 20 77 69 73 68 20 74 6F 20 graphics mode that you wish to 000032A0 69 6E 69 74 69 61 6C 69 7A 65 2C 20 61 6E 64 20 77 69 6C 6C 20 61 74 74 65 6D 70 74 20 74 6F 20 initialize, and will attempt to 000032C0 73 74 61 72 74 20 74 68 65 20 67 72 61 70 68 69 63 73 20 6D 6F 64 65 20 77 69 74 68 20 74 68 65 start the graphics mode with the 000032E0 20 73 70 65 63 69 66 69 65 64 20 76 69 72 74 75 61 6C 20 64 69 6D 65 6E 73 69 6F 6E 73 2E 20 49 specified virtual dimensions. I 00003300 66 20 74 68 65 20 67 72 61 70 68 69 63 73 20 68 61 72 64 77 61 72 65 20 63 61 6E 6E 6F 74 20 68 f the graphics hardware cannot h 00003320 61 6E 64 6C 65 20 61 20 76 69 72 74 75 61 6C 20 6D 6F 64 65 20 6F 66 20 74 68 65 73 65 20 64 69 andle a virtual mode of these di 00003340 6D 65 6E 73 69 6F 6E 73 2C 20 74 68 69 73 20 66 75 6E 63 74 69 6F 6E 20 77 69 6C 6C 20 66 61 69 mensions, this function will fai 00003360 6C 2E 0D 4F 6E 63 65 20 74 68 65 20 76 69 72 74 75 61 6C 20 73 63 72 6F 6C 6C 69 6E 67 20 6D 6F l.♪Once the virtual scrolling mo 00003380 64 65 20 68 61 73 20 62 65 65 6E 20 69 6E 69 74 69 61 6C 69 7A 65 64 2C 20 79 6F 75 20 63 61 6E de has been initialized, you can 000033A0 20 75 73 65 20 74 68 65 20 53 56 5F 73 65 74 44 69 73 70 6C 61 79 53 74 61 72 74 20 66 75 6E 63 use the SV_setDisplayStart func 000033C0 74 69 6F 6E 20 74 6F 20 73 65 74 20 74 68 65 20 64 69 73 70 6C 61 79 20 73 74 61 72 74 20 61 64 tion to set the display start ad 000033E0 64 72 65 73 73 20 66 6F 72 20 74 68 65 20 6D 6F 64 65 2C 20 61 6C 6C 6F 77 69 6E 67 20 79 6F 75 dress for the mode, allowing you 00003400 20 74 6F 20 73 63 72 6F 6C 6C 20 74 68 65 20 76 69 73 69 62 6C 65 20 77 69 6E 64 6F 77 20 69 6E to scroll the visible window in 00003420 74 6F 20 74 68 65 20 66 72 61 6D 65 62 75 66 66 65 72 20 6D 65 6D 6F 72 79 20 75 73 69 6E 67 20 to the framebuffer memory using 00003440 74 68 65 20 68 61 72 64 77 61 72 65 20 70 61 6E 6E 69 6E 67 20 72 65 67 69 73 74 65 72 73 2E 0D the hardware panning registers.♪ 00003460 43 68 61 6E 67 69 6E 67 20 74 68 65 20 63 6F 6C 6F 72 20 70 61 6C 65 74 74 65 0D 49 6E 20 6F 72 Changing the color palette♪In or 00003480 64 65 72 20 74 6F 20 63 68 61 6E 67 65 20 74 68 65 20 63 6F 6C 6F 72 20 70 61 6C 65 74 74 65 20 der to change the color palette 000034A0 66 6F 72 20 74 68 65 20 63 75 72 72 65 6E 74 20 67 72 61 70 68 69 63 73 20 6D 6F 64 65 2C 20 79 for the current graphics mode, y 000034C0 6F 75 20 77 69 6C 6C 20 6E 65 65 64 20 74 6F 20 63 61 6C 6C 20 74 68 65 20 53 56 5F 73 65 74 50 ou will need to call the SV_setP 000034E0 61 6C 65 74 74 65 20 66 75 6E 63 74 69 6F 6E 2E 20 49 74 20 69 73 20 69 6D 70 6F 72 74 61 6E 74 alette function. It is important 00003500 20 74 68 61 74 20 79 6F 75 20 75 73 65 20 74 68 69 73 20 66 75 6E 63 74 69 6F 6E 20 74 6F 20 73 that you use this function to s 00003520 65 74 20 74 68 65 20 68 61 72 64 77 61 72 65 20 70 61 6C 65 74 74 65 2C 20 61 73 20 56 42 45 20 et the hardware palette, as VBE 00003540 32 2E 30 20 61 6E 64 20 56 42 45 2F 41 46 20 64 65 76 69 63 65 73 20 6D 61 79 20 62 65 20 72 75 2.0 and VBE/AF devices may be ru 00003560 6E 6E 69 6E 67 20 69 6E 20 61 20 4E 6F 6E 56 47 41 20 67 72 61 70 68 69 63 73 20 6D 6F 64 65 20 nning in a NonVGA graphics mode 00003580 69 6E 20 77 68 69 63 68 20 63 61 73 65 20 64 69 72 65 63 74 6C 79 20 70 72 6F 67 72 61 6D 6D 69 in which case directly programmi 000035A0 6E 67 20 74 68 65 20 73 74 61 6E 64 61 72 64 20 56 47 41 20 72 65 67 69 73 74 65 72 73 20 69 73 ng the standard VGA registers is 000035C0 20 6E 6F 74 20 70 6F 73 73 69 62 6C 65 2E 0D 50 65 72 66 6F 72 6D 69 6E 67 20 64 6F 75 62 6C 65 not possible.♪Performing double 000035E0 20 62 75 66 66 65 72 69 6E 67 0D 49 6E 20 6F 72 64 65 72 20 74 6F 20 70 65 72 66 6F 72 6D 20 64 buffering♪In order to perform d 00003600 6F 75 62 6C 65 20 62 75 66 66 65 72 69 6E 67 20 77 69 74 68 20 74 68 65 20 53 75 70 65 72 56 47 ouble buffering with the SuperVG 00003620 41 20 4B 69 74 2C 20 79 6F 75 20 6D 75 73 74 20 70 61 73 73 20 74 68 65 20 73 76 44 6F 75 62 6C A Kit, you must pass the svDoubl 00003640 65 42 75 66 66 65 72 20 66 6C 61 67 20 63 6F 6D 62 69 6E 65 64 20 77 69 74 68 20 74 68 65 20 6E eBuffer flag combined with the n 00003660 75 6D 62 65 72 20 6F 66 20 74 68 65 20 67 72 61 70 68 69 63 73 20 6D 6F 64 65 20 79 6F 75 20 77 umber of the graphics mode you w 00003680 69 73 68 20 74 6F 20 69 6E 69 74 69 61 6C 69 7A 65 20 77 68 65 6E 20 79 6F 75 20 63 61 6C 6C 20 ish to initialize when you call 000036A0 53 56 5F 73 65 74 4D 6F 64 65 20 6F 72 20 53 56 5F 73 65 74 56 69 72 74 75 61 6C 4D 6F 64 65 2E SV_setMode or SV_setVirtualMode. 000036C0 20 54 68 69 73 20 66 6C 61 67 20 69 73 20 6E 65 63 65 73 73 61 72 79 20 74 6F 20 63 6F 72 72 65 This flag is necessary to corre 000036E0 63 74 6C 79 20 69 6E 66 6F 72 6D 20 74 68 65 20 56 42 45 2F 41 46 20 64 72 69 76 65 72 73 20 74 ctly inform the VBE/AF drivers t 00003700 68 61 74 20 79 6F 75 20 77 69 73 68 20 74 6F 20 70 65 72 66 6F 72 6D 20 64 6F 75 62 6C 65 20 62 hat you wish to perform double b 00003720 75 66 66 65 72 69 6E 67 2C 20 73 6F 20 74 68 61 74 20 74 68 65 20 64 72 69 76 65 72 73 20 77 69 uffering, so that the drivers wi 00003740 6C 6C 20 63 6F 72 72 65 63 74 6C 79 20 73 65 74 20 61 73 69 64 65 20 65 6E 6F 75 67 68 20 66 72 ll correctly set aside enough fr 00003760 61 6D 65 62 75 66 66 65 72 20 6D 65 6D 6F 72 79 20 74 6F 20 68 6F 6C 64 20 74 68 65 20 64 6F 75 amebuffer memory to hold the dou 00003780 62 6C 65 20 62 75 66 66 65 72 73 20 61 6E 64 20 64 65 63 72 65 61 73 65 20 74 68 65 20 73 69 7A ble buffers and decrease the siz 000037A0 65 20 6F 66 20 74 68 65 20 61 76 61 69 6C 61 62 6C 65 20 6F 66 66 73 63 72 65 65 6E 20 66 72 61 e of the available offscreen fra 000037C0 6D 65 62 75 66 66 65 72 20 6D 65 6D 6F 72 79 20 75 73 65 64 20 66 6F 72 20 73 74 6F 72 69 6E 67 mebuffer memory used for storing 000037E0 20 62 69 74 6D 61 70 73 20 65 74 63 2E 20 49 66 20 74 68 65 20 6D 6F 64 65 20 69 73 20 69 6E 63 bitmaps etc. If the mode is inc 00003800 61 70 61 62 6C 65 20 6F 66 20 64 6F 75 62 6C 65 20 62 75 66 66 65 72 69 6E 67 20 74 68 65 20 6D apable of double buffering the m 00003820 6F 64 65 20 73 65 74 20 77 69 6C 6C 20 73 74 69 6C 6C 20 77 6F 72 6B 20 63 6F 72 72 65 63 74 6C ode set will still work correctl 00003840 79 2C 20 68 6F 77 65 76 65 72 20 74 68 65 20 6D 6F 64 65 20 77 69 6C 6C 20 62 65 20 73 65 74 20 y, however the mode will be set 00003860 75 70 20 66 6F 72 20 73 69 6E 67 6C 65 20 62 75 66 66 65 72 65 64 20 6F 70 65 72 61 74 69 6F 6E up for single buffered operation 00003880 2E 0D 4F 6E 63 65 20 61 20 64 6F 75 62 6C 65 20 62 75 66 66 65 72 65 64 20 67 72 61 70 68 69 63 .♪Once a double buffered graphic 000038A0 73 20 6D 6F 64 65 20 68 61 73 20 62 65 65 6E 20 73 74 61 72 74 65 64 2C 20 74 68 65 20 6D 6F 64 s mode has been started, the mod 000038C0 65 20 77 69 6C 6C 20 62 65 20 73 65 74 20 75 70 20 77 69 74 68 20 74 68 65 20 61 63 74 69 76 65 e will be set up with the active 000038E0 20 61 6E 64 20 76 69 73 69 62 6C 65 20 62 75 66 66 65 72 73 20 62 6F 74 68 20 73 65 74 20 74 6F and visible buffers both set to 00003900 20 74 68 65 20 66 69 72 73 74 20 62 75 66 66 65 72 20 69 6E 20 66 72 61 6D 65 62 75 66 66 65 72 the first buffer in framebuffer 00003920 20 6D 65 6D 6F 72 79 20 61 6E 64 20 74 68 65 20 73 79 73 74 65 6D 20 69 73 20 65 73 73 65 6E 74 memory and the system is essent 00003940 69 61 6C 6C 79 20 69 6E 20 6E 6F 72 6D 61 6C 20 73 69 6E 67 6C 65 20 62 75 66 66 65 72 65 64 20 ially in normal single buffered 00003960 6D 6F 64 65 2E 20 54 6F 20 70 65 72 66 6F 72 6D 20 64 6F 75 62 6C 65 20 62 75 66 66 65 72 69 6E mode. To perform double bufferin 00003980 67 20 79 6F 75 20 73 69 6D 70 6C 79 20 6D 61 6B 65 20 63 61 6C 6C 73 20 74 6F 20 74 68 65 20 53 g you simply make calls to the S 000039A0 56 5F 73 65 74 41 63 74 69 76 65 42 75 66 66 65 72 20 61 6E 64 20 53 56 5F 73 65 74 56 69 73 69 V_setActiveBuffer and SV_setVisi 000039C0 62 6C 65 42 75 66 66 65 72 20 66 75 6E 63 74 69 6F 6E 73 20 74 6F 20 63 68 61 6E 67 65 20 74 68 bleBuffer functions to change th 000039E0 65 20 61 63 74 69 76 65 20 61 6E 64 20 76 69 73 69 62 6C 65 20 62 75 66 66 65 72 73 2E 20 54 68 e active and visible buffers. Th 00003A00 65 20 61 63 74 69 76 65 20 62 75 66 66 65 72 20 69 73 20 74 68 65 20 62 75 66 66 65 72 20 77 68 e active buffer is the buffer wh 00003A20 65 72 65 20 61 6C 6C 20 6F 75 74 70 75 74 20 77 69 6C 6C 20 63 75 72 72 65 6E 74 6C 79 20 62 65 ere all output will currently be 00003A40 20 64 72 61 77 6E 2C 20 61 6E 64 20 74 68 65 20 76 69 73 69 62 6C 65 20 62 75 66 66 65 72 20 69 drawn, and the visible buffer i 00003A60 73 20 74 68 65 20 6F 6E 65 20 74 68 61 74 20 74 68 65 20 67 72 61 70 68 69 63 73 20 63 61 72 64 s the one that the graphics card 00003A80 20 69 73 20 63 75 72 72 65 6E 74 6C 79 20 64 69 73 70 6C 61 79 69 6E 67 2E 20 46 6F 72 20 64 6F is currently displaying. For do 00003AA0 75 62 6C 65 20 62 75 66 66 65 72 65 64 20 61 6E 69 6D 61 74 69 6F 6E 20 79 6F 75 20 73 65 74 20 uble buffered animation you set 00003AC0 74 68 65 20 61 63 74 69 76 65 20 62 75 66 66 65 72 20 74 6F 20 61 20 68 69 64 64 65 6E 20 62 75 the active buffer to a hidden bu 00003AE0 66 66 65 72 20 73 6F 20 74 68 61 74 20 79 6F 75 20 63 61 6E 20 64 72 61 77 20 74 6F 20 69 74 20 ffer so that you can draw to it 00003B00 77 69 74 68 6F 75 74 20 74 68 65 20 75 73 65 72 20 73 65 65 69 6E 67 20 74 68 65 20 64 72 61 77 without the user seeing the draw 00003B20 20 6F 63 63 75 72 20 6F 6E 20 74 68 65 20 64 69 73 70 6C 61 79 2C 20 61 6E 64 20 74 68 65 6E 20 occur on the display, and then 00003B40 73 77 69 74 63 68 20 74 68 65 20 76 69 73 69 62 6C 65 20 62 75 66 66 65 72 20 74 6F 20 74 68 65 switch the visible buffer to the 00003B60 20 68 69 64 64 65 6E 20 62 75 66 66 65 72 20 74 6F 20 69 6E 73 74 61 6E 74 6C 79 20 64 69 73 70 hidden buffer to instantly disp 00003B80 6C 61 79 20 74 68 65 20 6E 65 77 20 66 72 61 6D 65 2E 0D 49 66 20 79 6F 75 20 61 72 65 20 64 6F lay the new frame.♪If you are do 00003BA0 69 6E 67 20 64 6F 75 62 6C 65 20 62 75 66 66 65 72 69 6E 67 20 61 6E 64 20 79 6F 75 20 77 69 73 ing double buffering and you wis 00003BC0 68 20 74 6F 20 72 65 6E 64 65 72 20 64 69 72 65 63 74 6C 79 20 74 6F 20 74 68 65 20 66 72 61 6D h to render directly to the fram 00003BE0 65 62 75 66 66 65 72 2C 20 79 6F 75 20 77 69 6C 6C 20 6E 65 65 64 20 74 6F 20 75 73 65 20 74 68 ebuffer, you will need to use th 00003C00 65 20 6F 72 69 67 69 6E 4F 66 66 73 65 74 20 61 6E 64 20 62 61 6E 6B 4F 66 66 73 65 74 20 76 61 e originOffset and bankOffset va 00003C20 72 69 61 62 6C 65 20 69 6E 20 74 68 65 20 67 6C 6F 62 61 6C 20 64 65 76 69 63 65 20 63 6F 6E 74 riable in the global device cont 00003C40 65 78 74 20 62 6C 6F 63 6B 20 74 6F 20 64 65 74 65 72 6D 69 6E 65 20 77 68 65 72 65 20 74 68 65 ext block to determine where the 00003C60 20 63 75 72 72 65 6E 74 6C 79 20 61 63 74 69 76 65 20 62 75 66 66 65 72 20 73 74 61 72 74 73 2E currently active buffer starts. 00003C80 20 49 6E 20 62 61 6E 6B 65 64 20 6D 6F 64 65 73 20 74 68 65 73 65 20 64 65 66 69 6E 65 20 74 68 In banked modes these define th 00003CA0 65 20 73 74 61 72 74 69 6E 67 20 36 34 4B 62 20 62 61 6E 6B 20 61 6E 64 20 6F 66 66 73 65 74 20 e starting 64Kb bank and offset 00003CC0 77 69 74 68 20 74 68 61 74 20 36 34 4B 62 20 62 61 6E 6B 20 66 6F 72 20 74 68 65 20 63 75 72 72 with that 64Kb bank for the curr 00003CE0 65 6E 74 6C 79 20 61 63 74 69 76 65 20 62 75 66 66 65 72 2C 20 77 68 69 6C 65 20 69 6E 20 6C 69 ently active buffer, while in li 00003D00 6E 65 61 72 20 66 72 61 6D 65 62 75 66 66 65 72 20 6D 6F 64 65 73 20 74 68 65 20 6F 72 69 67 69 near framebuffer modes the origi 00003D20 6E 4F 66 66 73 65 74 20 76 61 72 69 61 62 6C 65 20 70 6F 69 6E 74 73 20 64 69 72 65 63 74 6C 79 nOffset variable points directly 00003D40 20 74 6F 20 74 68 65 20 73 74 61 72 74 20 6F 66 20 74 68 65 20 61 63 74 69 76 65 20 62 75 66 66 to the start of the active buff 00003D60 65 72 20 69 6E 20 74 68 65 20 33 32 20 62 69 74 20 6C 69 6E 65 61 72 20 61 64 64 72 65 73 73 20 er in the 32 bit linear address 00003D80 73 70 61 63 65 2E 0D 44 72 61 77 69 6E 67 20 70 69 78 65 6C 73 2C 20 6C 69 6E 65 73 20 61 6E 64 space.♪Drawing pixels, lines and 00003DA0 20 74 65 78 74 0D 54 68 65 20 53 75 70 65 72 56 47 41 20 4B 69 74 20 70 72 6F 76 69 64 65 73 20 text♪The SuperVGA Kit provides 00003DC0 61 20 66 65 77 20 6C 69 6D 69 74 65 64 20 66 75 6E 63 74 69 6F 6E 73 20 66 6F 72 20 64 72 61 77 a few limited functions for draw 00003DE0 69 6E 67 20 67 72 61 70 68 69 63 73 20 6F 75 74 70 75 74 2C 20 73 75 63 68 20 61 73 20 70 69 78 ing graphics output, such as pix 00003E00 65 6C 73 2C 20 6C 69 6E 65 73 20 61 6E 64 20 74 65 78 74 2E 20 54 68 65 73 65 20 70 69 78 65 6C els, lines and text. These pixel 00003E20 20 6F 75 74 70 75 74 20 61 6E 64 20 6C 69 6E 65 20 64 72 61 77 69 6E 67 20 66 75 6E 63 74 69 6F output and line drawing functio 00003E40 6E 73 20 61 72 65 20 77 72 69 74 74 65 6E 20 69 6E 20 68 69 67 68 6C 79 20 6F 70 74 69 6D 69 7A ns are written in highly optimiz 00003E60 65 64 20 61 73 73 65 6D 62 6C 65 72 20 63 6F 64 65 20 73 6F 20 74 68 65 79 20 61 72 65 20 76 65 ed assembler code so they are ve 00003E80 72 79 20 66 61 73 74 2E 20 48 6F 77 65 76 65 72 20 74 68 65 20 70 72 69 6D 61 72 79 20 70 75 72 ry fast. However the primary pur 00003EA0 70 6F 73 65 20 6F 66 20 74 68 65 20 53 75 70 65 72 56 47 41 20 4B 69 74 20 69 73 20 6E 6F 74 20 pose of the SuperVGA Kit is not 00003EC0 74 6F 20 70 72 6F 76 69 64 65 20 61 20 72 69 63 68 20 73 65 74 20 6F 66 20 67 72 61 70 68 69 63 to provide a rich set of graphic 00003EE0 73 20 70 72 69 6D 69 74 69 76 65 73 2C 20 73 6F 20 6F 6E 6C 79 20 73 6F 6C 69 64 2C 20 73 69 6E s primitives, so only solid, sin 00003F00 67 6C 65 20 70 69 78 65 6C 20 6C 69 6E 65 73 20 61 72 65 20 73 75 70 70 6F 72 74 65 64 2E 20 54 gle pixel lines are supported. T 00003F20 68 65 20 74 65 78 74 20 6F 75 74 70 75 74 20 66 75 6E 63 74 69 6F 6E 20 69 73 20 77 72 69 74 74 he text output function is writt 00003F40 65 6E 20 69 6E 20 43 20 61 6E 64 20 63 61 6C 6C 73 20 75 70 6F 6E 20 74 68 65 20 70 69 78 65 6C en in C and calls upon the pixel 00003F60 20 6F 75 74 70 75 74 20 66 75 6E 63 74 69 6F 6E 73 20 74 6F 20 64 72 61 77 20 74 68 65 20 74 65 output functions to draw the te 00003F80 78 74 2C 20 73 6F 20 69 74 20 69 73 20 6E 6F 74 20 70 61 72 74 69 63 75 6C 61 72 6C 79 20 66 61 xt, so it is not particularly fa 00003FA0 73 74 2E 0D 4E 6F 74 65 20 74 68 61 74 20 74 68 65 20 53 75 70 65 72 56 47 41 20 4B 69 74 20 70 st.♪Note that the SuperVGA Kit p 00003FC0 72 6F 76 69 64 65 73 20 74 77 6F 20 6D 65 74 68 6F 64 73 20 6F 66 20 64 72 61 77 69 6E 67 20 70 rovides two methods of drawing p 00003FE0 69 78 65 6C 73 20 61 6E 64 20 6C 69 6E 65 73 2E 20 54 68 65 20 66 69 72 73 74 20 6D 65 74 68 6F ixels and lines. The first metho 00004000 64 20 69 73 20 76 69 61 20 74 68 65 20 73 74 61 6E 64 61 72 64 20 66 75 6E 63 74 69 6F 6E 73 20 d is via the standard functions 00004020 61 6E 64 20 63 61 6E 20 62 65 20 75 73 65 64 20 74 6F 20 64 72 61 77 20 70 69 78 65 6C 73 20 61 and can be used to draw pixels a 00004040 6E 64 20 6C 69 6E 65 73 20 61 74 20 61 6E 79 20 74 69 6D 65 20 77 69 74 68 69 6E 20 79 6F 75 72 nd lines at any time within your 00004060 20 63 6F 64 65 2E 20 54 68 65 20 73 65 63 6F 6E 64 20 73 65 74 20 6F 66 20 66 75 6E 63 74 69 6F code. The second set of functio 00004080 6E 73 20 61 72 65 20 70 72 6F 76 69 64 65 64 20 66 6F 72 20 64 72 61 77 69 6E 67 20 66 61 73 74 ns are provided for drawing fast 000040A0 20 62 61 74 63 68 65 64 20 70 69 78 65 6C 73 20 61 6E 64 20 6C 69 6E 65 73 2C 20 61 6E 64 20 70 batched pixels and lines, and p 000040C0 72 6F 76 69 64 65 20 72 6F 75 74 69 6E 65 73 20 74 68 61 74 20 77 69 6C 6C 20 64 72 61 77 20 70 rovide routines that will draw p 000040E0 69 78 65 6C 73 20 61 6E 64 20 6C 69 6E 65 73 20 61 73 20 66 61 73 74 20 61 73 20 70 6F 73 73 69 ixels and lines as fast as possi 00004100 62 6C 65 20 77 68 65 6E 20 79 6F 75 20 6E 65 65 64 20 74 6F 20 64 72 61 77 20 6D 75 6C 74 69 70 ble when you need to draw multip 00004120 6C 65 20 6C 6F 74 73 20 6F 66 20 65 61 63 68 20 64 69 66 66 65 72 65 6E 74 20 70 72 69 6D 69 74 le lots of each different primit 00004140 69 76 65 2E 20 54 6F 20 75 73 65 20 74 68 65 20 62 61 74 63 68 65 64 20 64 72 61 77 69 6E 67 20 ive. To use the batched drawing 00004160 66 75 6E 63 74 69 6F 6E 73 2C 20 79 6F 75 20 6D 75 73 74 20 63 61 6C 6C 20 74 68 65 20 53 56 5F functions, you must call the SV_ 00004180 62 65 67 69 6E 50 69 78 65 6C 20 6F 72 20 53 56 5F 62 65 67 69 6E 4C 69 6E 65 20 66 75 6E 63 74 beginPixel or SV_beginLine funct 000041A0 69 6F 6E 73 20 66 69 72 73 74 2C 20 61 6E 64 20 74 68 65 6E 20 63 61 6C 6C 20 74 68 65 20 66 61 ions first, and then call the fa 000041C0 73 74 20 76 61 72 69 61 6E 74 73 20 6F 66 20 74 68 65 20 6E 6F 72 6D 61 6C 20 64 72 61 77 69 6E st variants of the normal drawin 000041E0 67 20 66 75 6E 63 74 69 6F 6E 73 2E 20 57 68 65 6E 20 79 6F 75 20 61 72 65 20 66 69 6E 69 73 68 g functions. When you are finish 00004200 65 64 20 72 65 6E 64 65 72 69 6E 67 20 79 6F 75 20 6D 75 73 74 20 63 61 6C 6C 20 53 56 5F 65 6E ed rendering you must call SV_en 00004220 64 50 69 78 65 6C 20 6F 72 20 53 56 5F 65 6E 64 4C 69 6E 65 20 74 6F 20 72 65 74 75 72 6E 20 74 dPixel or SV_endLine to return t 00004240 6F 20 74 68 65 20 6E 6F 72 6D 61 6C 20 6D 6F 64 65 20 6F 66 20 6F 70 65 72 61 74 69 6F 6E 2E 0D o the normal mode of operation.♪ 00004260 54 68 65 20 62 61 74 63 68 65 64 20 66 75 6E 63 74 69 6F 6E 73 20 61 72 65 20 69 6D 70 6F 72 74 The batched functions are import 00004280 61 6E 74 20 66 6F 72 20 6F 62 74 61 69 6E 69 6E 67 20 74 68 65 20 6D 61 78 69 6D 75 6D 20 70 65 ant for obtaining the maximum pe 000042A0 72 66 6F 72 6D 61 6E 63 65 20 77 68 65 6E 20 64 72 61 77 69 6E 67 20 6C 69 6E 65 73 20 61 6E 64 rformance when drawing lines and 000042C0 20 70 69 78 65 6C 73 20 6F 6E 20 56 42 45 2F 41 46 20 64 65 76 69 63 65 73 2C 20 65 73 70 65 63 pixels on VBE/AF devices, espec 000042E0 69 61 6C 6C 79 20 77 68 65 6E 20 74 68 65 20 6C 69 6E 65 20 64 72 61 77 69 6E 67 20 69 73 20 62 ially when the line drawing is b 00004300 65 69 6E 67 20 70 65 72 66 6F 72 6D 65 64 20 69 6E 20 73 6F 66 74 77 61 72 65 20 28 66 6F 72 20 eing performed in software (for 00004320 56 42 45 2F 41 46 20 64 65 76 69 63 65 73 20 79 6F 75 20 6E 65 65 64 20 74 6F 20 61 72 62 69 74 VBE/AF devices you need to arbit 00004340 72 61 74 65 20 64 69 72 65 63 74 20 61 63 63 65 73 73 20 74 6F 20 74 68 65 20 66 72 61 6D 65 62 rate direct access to the frameb 00004360 75 66 66 65 72 20 77 69 74 68 20 74 68 65 20 47 55 49 20 65 6E 67 69 6E 65 29 2E 0D 44 69 72 65 uffer with the GUI engine).♪Dire 00004380 63 74 20 66 72 61 6D 65 62 75 66 66 65 72 20 61 63 63 65 73 73 0D 4F 6E 65 20 6F 66 20 74 68 65 ct framebuffer access♪One of the 000043A0 20 70 6F 77 65 72 66 75 6C 20 66 65 61 74 75 72 65 73 20 6F 66 20 74 68 65 20 53 75 70 65 72 56 powerful features of the SuperV 000043C0 47 41 20 4B 69 74 20 69 73 20 74 68 61 74 20 69 74 20 70 72 6F 76 69 64 65 73 20 79 6F 75 72 20 GA Kit is that it provides your 000043E0 61 70 70 6C 69 63 61 74 69 6F 6E 73 20 77 69 74 68 20 64 69 72 65 63 74 20 61 63 63 65 73 73 20 applications with direct access 00004400 74 6F 20 74 68 65 20 68 61 72 64 77 61 72 65 20 76 69 64 65 6F 20 6D 65 6D 6F 72 79 20 66 72 61 to the hardware video memory fra 00004420 6D 65 62 75 66 66 65 72 20 72 65 67 69 6F 6E 73 2E 20 41 63 63 65 73 73 20 69 73 20 70 72 6F 76 mebuffer regions. Access is prov 00004440 69 64 65 64 20 65 69 74 68 65 72 20 76 69 61 20 61 20 62 61 6E 6B 65 64 20 66 72 61 6D 65 62 75 ided either via a banked framebu 00004460 66 66 65 72 20 61 72 63 68 69 74 65 63 74 75 72 65 20 6F 72 20 76 69 61 20 61 20 68 69 67 68 20 ffer architecture or via a high 00004480 70 65 72 66 6F 72 6D 61 6E 63 65 20 6C 69 6E 65 61 72 20 66 72 61 6D 65 62 75 66 66 65 72 20 61 performance linear framebuffer a 000044A0 72 63 68 69 74 65 63 74 75 72 65 20 6F 6E 20 67 72 61 70 68 69 63 73 20 68 61 72 64 77 61 72 65 rchitecture on graphics hardware 000044C0 20 74 68 61 74 20 73 75 70 70 6F 72 74 73 20 69 74 2E 20 54 68 69 73 20 6D 65 61 6E 73 20 74 68 that supports it. This means th 000044E0 61 74 20 79 6F 75 20 63 61 6E 20 75 73 65 20 74 68 65 20 53 75 70 65 72 56 47 41 20 4B 69 74 20 at you can use the SuperVGA Kit 00004500 74 6F 20 70 65 72 66 6F 72 6D 20 61 6C 6C 20 74 68 65 20 6C 6F 77 20 6C 65 76 65 6C 20 68 6F 75 to perform all the low level hou 00004520 73 65 6B 65 65 70 69 6E 67 20 61 6E 64 20 6D 6F 64 65 20 69 6E 69 74 69 61 6C 69 7A 61 74 69 6F sekeeping and mode initializatio 00004540 6E 20 66 75 6E 63 74 69 6F 6E 73 20 72 65 71 75 69 72 65 64 20 74 6F 20 67 65 74 20 75 70 20 61 n functions required to get up a 00004560 6E 64 20 72 75 6E 6E 69 6E 67 20 69 6E 20 53 75 70 65 72 56 47 41 20 6D 6F 64 65 73 2C 20 61 6E nd running in SuperVGA modes, an 00004580 64 20 74 68 65 6E 20 75 73 65 20 79 6F 75 72 20 6F 77 6E 20 68 69 67 68 20 70 65 72 66 6F 72 6D d then use your own high perform 000045A0 61 6E 63 65 20 72 65 6E 64 65 72 69 6E 67 20 63 6F 64 65 20 74 6F 20 72 65 6E 64 65 72 20 64 69 ance rendering code to render di 000045C0 72 65 63 74 6C 79 20 74 6F 20 74 68 65 20 68 61 72 64 77 61 72 65 20 66 72 61 6D 65 62 75 66 66 rectly to the hardware framebuff 000045E0 65 72 73 2E 0D 41 20 62 61 6E 6B 65 64 20 66 72 61 6D 65 62 75 66 66 65 72 20 69 73 20 70 72 6F ers.♪A banked framebuffer is pro 00004600 76 69 64 65 64 20 62 79 20 56 42 45 20 31 2E 32 20 61 6E 64 20 65 61 72 6C 69 65 72 20 63 6F 6D vided by VBE 1.2 and earlier com 00004620 70 6C 69 61 6E 74 20 64 65 76 69 63 65 73 20 61 6E 64 20 61 6C 73 6F 20 62 79 20 56 42 45 20 32 pliant devices and also by VBE 2 00004640 2E 30 20 61 6E 64 20 56 42 45 2F 41 46 20 64 65 76 69 63 65 73 20 74 68 61 74 20 64 6F 6E 92 74 .0 and VBE/AF devices that donÆt 00004660 20 73 75 70 70 6F 72 74 20 61 20 68 61 72 64 77 61 72 65 20 6C 69 6E 65 61 72 20 66 72 61 6D 65 support a hardware linear frame 00004680 62 75 66 66 65 72 2E 20 49 6E 20 6F 72 64 65 72 20 74 6F 20 61 63 63 65 73 73 20 74 68 65 20 68 buffer. In order to access the h 000046A0 75 67 65 20 61 6D 6F 75 6E 74 20 6F 66 20 76 69 64 65 6F 20 6D 65 6D 6F 72 79 20 6F 6E 20 74 68 uge amount of video memory on th 000046C0 65 20 67 72 61 70 68 69 63 73 20 63 61 72 64 20 64 69 72 65 63 74 6C 79 2C 20 77 65 20 6E 65 65 e graphics card directly, we nee 000046E0 64 20 74 6F 20 6D 61 70 20 65 61 63 68 20 73 65 63 74 69 6F 6E 20 6F 66 20 76 69 64 65 6F 20 6D d to map each section of video m 00004700 65 6D 6F 72 79 20 69 6E 74 6F 20 61 20 36 34 4B 62 20 62 61 6E 6B 20 6C 6F 63 61 74 65 64 20 69 emory into a 64Kb bank located i 00004720 6E 20 74 68 65 20 66 69 72 73 74 20 31 4D 62 20 6F 66 20 6D 65 6D 6F 72 79 2E 20 49 6E 20 6F 72 n the first 1Mb of memory. In or 00004740 64 65 72 20 74 6F 20 63 68 61 6E 67 65 20 74 68 65 20 61 63 74 69 76 65 20 62 61 6E 6B 2C 20 79 der to change the active bank, y 00004760 6F 75 20 6E 65 65 64 20 74 6F 20 63 61 6C 6C 20 70 72 6F 76 69 64 65 64 20 53 56 5F 73 65 74 42 ou need to call provided SV_setB 00004780 61 6E 6B 20 66 75 6E 63 74 69 6F 6E 20 77 69 74 68 20 74 68 65 20 69 6E 64 65 78 20 6F 66 20 74 ank function with the index of t 000047A0 68 65 20 62 61 6E 6B 20 74 68 61 74 20 79 6F 75 20 77 69 73 68 20 74 6F 20 6D 61 6B 65 20 61 63 he bank that you wish to make ac 000047C0 74 69 76 65 2E 20 49 66 20 79 6F 75 20 61 72 65 20 77 72 69 74 69 6E 67 20 68 69 67 68 20 70 65 tive. If you are writing high pe 000047E0 72 66 6F 72 6D 61 6E 63 65 20 61 73 73 65 6D 62 6C 65 72 20 63 6F 64 65 2C 20 79 6F 75 20 73 68 rformance assembler code, you sh 00004800 6F 75 6C 64 20 63 61 6C 6C 20 74 68 65 20 61 73 73 65 6D 62 6C 65 72 20 53 56 5F 73 65 74 42 61 ould call the assembler SV_setBa 00004820 6E 6B 41 53 4D 20 76 65 72 73 69 6F 6E 20 6F 66 20 74 68 65 20 62 61 6E 6B 20 73 77 69 74 63 68 nkASM version of the bank switch 00004840 69 6E 67 20 66 75 6E 63 74 69 6F 6E 20 77 68 69 63 68 20 74 61 6B 65 73 20 69 74 92 73 20 70 61 ing function which takes itÆs pa 00004860 72 61 6D 65 74 65 72 73 20 69 6E 20 43 50 55 20 72 65 67 69 73 74 65 72 73 20 72 61 74 68 65 72 rameters in CPU registers rather 00004880 20 74 68 61 6E 20 6F 6E 20 74 68 65 20 73 74 61 63 6B 2E 20 4F 6E 63 65 20 79 6F 75 20 68 61 76 than on the stack. Once you hav 000048A0 65 20 63 68 61 6E 67 65 64 20 74 68 65 20 61 63 74 69 76 65 20 62 61 6E 6B 20 74 6F 20 74 68 65 e changed the active bank to the 000048C0 20 6C 6F 63 61 74 69 6F 6E 20 77 68 65 72 65 20 79 6F 75 20 77 69 73 68 20 74 6F 20 70 65 72 66 location where you wish to perf 000048E0 6F 72 6D 20 79 6F 75 72 20 64 72 61 77 69 6E 67 2C 20 79 6F 75 20 63 61 6E 20 74 68 65 6E 20 64 orm your drawing, you can then d 00004900 72 61 77 20 64 69 72 65 63 74 6C 79 20 69 6E 74 6F 20 74 68 65 20 66 72 61 6D 65 62 75 66 66 65 raw directly into the framebuffe 00004920 72 20 76 69 61 20 76 69 64 65 6F 4D 65 6D 20 70 6F 69 6E 74 65 72 20 70 72 6F 76 69 64 65 64 20 r via videoMem pointer provided 00004940 69 6E 20 74 68 65 20 53 75 70 65 72 56 47 41 20 4B 69 74 20 64 65 76 69 63 65 20 63 6F 6E 74 65 in the SuperVGA Kit device conte 00004960 78 74 20 62 6C 6F 63 6B 2E 20 4E 6F 74 65 20 74 68 61 74 20 69 66 20 79 6F 75 20 61 72 65 20 70 xt block. Note that if you are p 00004980 65 72 66 6F 72 6D 69 6E 67 20 64 6F 75 62 6C 65 20 62 75 66 66 65 72 69 6E 67 2C 20 74 68 65 20 erforming double buffering, the 000049A0 6F 72 69 67 69 6E 4F 66 66 73 65 74 20 61 6E 64 20 62 61 6E 6B 4F 66 66 73 65 74 20 76 61 72 69 originOffset and bankOffset vari 000049C0 61 62 6C 65 73 20 69 6E 20 74 68 65 20 64 65 76 69 63 65 20 63 6F 6E 74 65 78 74 20 62 6C 6F 63 ables in the device context bloc 000049E0 6B 20 61 72 65 20 75 73 65 64 20 74 6F 20 69 6E 64 69 63 61 74 65 20 77 68 65 72 65 20 69 6E 20 k are used to indicate where in 00004A00 76 69 64 65 6F 20 6D 65 6D 6F 72 79 20 74 68 65 20 63 75 72 72 65 6E 74 6C 79 20 61 63 74 69 76 video memory the currently activ 00004A20 65 20 62 75 66 66 65 72 20 62 65 67 69 6E 73 2C 20 61 6E 64 20 79 6F 75 20 77 69 6C 6C 20 6E 65 e buffer begins, and you will ne 00004A40 65 64 20 74 6F 20 6F 66 66 73 65 74 20 61 6C 6C 20 79 6F 75 72 20 64 72 61 77 69 6E 67 20 63 6F ed to offset all your drawing co 00004A60 64 65 20 69 6E 74 6F 20 74 68 65 20 66 72 61 6D 65 62 75 66 66 65 72 20 75 73 69 6E 67 20 74 68 de into the framebuffer using th 00004A80 65 73 65 20 76 61 72 69 61 62 6C 65 73 20 28 63 68 65 63 6B 20 74 68 65 20 5F 53 56 47 41 53 44 ese variables (check the _SVGASD 00004AA0 4B 2E 41 53 4D 20 6D 6F 64 75 6C 65 20 66 6F 72 20 64 65 74 61 69 6C 73 20 6F 6E 20 68 6F 77 20 K.ASM module for details on how 00004AC0 74 68 69 73 20 69 73 20 64 6F 6E 65 20 69 6E 20 61 73 73 65 6D 62 6C 65 72 20 63 6F 64 65 29 2E this is done in assembler code). 00004AE0 0D 49 66 20 74 68 65 20 61 70 70 6C 69 63 61 74 69 6F 6E 20 69 73 20 72 75 6E 6E 69 6E 67 20 69 ♪If the application is running i 00004B00 6E 20 61 20 33 32 20 62 69 74 20 70 72 6F 74 65 63 74 65 64 20 6D 6F 64 65 20 65 6E 76 69 72 6F n a 32 bit protected mode enviro 00004B20 6E 6D 65 6E 74 2C 20 77 65 20 63 61 6E 20 73 69 6D 70 6C 69 66 79 20 61 63 63 65 73 73 20 74 6F nment, we can simplify access to 00004B40 20 74 68 65 20 76 69 64 65 6F 20 6D 65 6D 6F 72 79 20 6F 6E 20 74 68 65 20 67 72 61 70 68 69 63 the video memory on the graphic 00004B60 73 20 63 61 72 64 20 62 79 20 75 73 69 6E 67 20 65 69 74 68 65 72 20 61 20 68 61 72 64 77 61 72 s card by using either a hardwar 00004B80 65 20 6F 72 20 76 69 72 74 75 61 6C 20 6C 69 6E 65 61 72 20 66 72 61 6D 65 62 75 66 66 65 72 2E e or virtual linear framebuffer. 00004BA0 20 41 20 68 61 72 64 77 61 72 65 20 6C 69 6E 65 61 72 20 66 72 61 6D 65 62 75 66 66 65 72 20 61 A hardware linear framebuffer a 00004BC0 6C 6C 6F 77 73 20 74 68 65 20 61 70 70 6C 69 63 61 74 69 6F 6E 20 74 6F 20 64 69 72 65 63 74 6C llows the application to directl 00004BE0 79 20 61 63 63 65 73 73 20 61 6C 6C 20 6F 66 20 74 68 65 20 6D 65 6D 6F 72 79 20 6F 6E 20 74 68 y access all of the memory on th 00004C00 65 20 67 72 61 70 68 69 63 73 20 63 61 72 64 20 69 6E 20 6F 6E 65 20 63 6F 6E 74 69 67 75 6F 75 e graphics card in one contiguou 00004C20 73 20 63 68 75 6E 6B 2C 20 72 61 74 68 65 72 20 74 68 61 6E 20 68 61 76 69 6E 67 20 74 6F 20 64 s chunk, rather than having to d 00004C40 65 61 6C 20 77 69 74 68 20 6D 6F 76 69 6E 67 20 61 20 73 6C 69 64 69 6E 67 20 36 34 4B 62 20 77 eal with moving a sliding 64Kb w 00004C60 69 6E 64 6F 77 20 69 6E 74 6F 20 74 68 65 20 66 72 61 6D 65 62 75 66 66 65 72 2E 20 41 20 76 69 indow into the framebuffer. A vi 00004C80 72 74 75 61 6C 20 6C 69 6E 65 61 72 20 66 72 61 6D 65 62 75 66 66 65 72 20 69 73 20 65 6E 61 62 rtual linear framebuffer is enab 00004CA0 6C 65 64 20 62 79 20 75 73 69 6E 67 20 74 68 65 20 33 38 36 2B 20 43 50 55 92 73 20 76 69 72 74 led by using the 386+ CPUÆs virt 00004CC0 75 61 6C 20 6D 65 6D 6F 72 79 20 66 65 61 74 75 72 65 73 20 74 6F 20 63 72 65 61 74 65 20 77 68 ual memory features to create wh 00004CE0 61 74 20 61 70 70 65 61 72 73 20 74 6F 20 62 65 20 61 20 6C 69 6E 65 61 72 20 66 72 61 6D 65 62 at appears to be a linear frameb 00004D00 75 66 66 65 72 2C 20 62 75 74 20 69 73 20 61 63 74 75 61 6C 6C 79 20 61 20 72 65 67 69 6F 6E 20 uffer, but is actually a region 00004D20 6F 66 20 76 69 72 74 75 61 6C 20 6D 65 6D 6F 72 79 20 74 68 61 74 20 61 75 74 6F 6D 61 74 69 63 of virtual memory that automatic 00004D40 61 6C 6C 79 20 6D 61 70 73 20 74 68 65 20 63 6F 6E 74 72 6F 6C 6C 65 72 73 20 36 34 4B 62 20 62 ally maps the controllers 64Kb b 00004D60 61 6E 6B 65 64 20 61 70 65 72 74 75 72 65 20 77 68 65 6E 20 74 68 65 20 61 70 70 6C 69 63 61 74 anked aperture when the applicat 00004D80 69 6F 6E 20 64 69 72 65 63 74 6C 79 20 61 63 63 65 73 73 65 73 20 70 6F 72 74 69 6F 6E 73 20 6F ion directly accesses portions o 00004DA0 66 20 74 68 65 20 76 69 72 74 75 61 6C 20 66 72 61 6D 65 62 75 66 66 65 72 2E 20 49 66 20 61 20 f the virtual framebuffer. If a 00004DC0 6C 69 6E 65 61 72 20 66 72 61 6D 65 62 75 66 66 65 72 20 6D 6F 64 65 20 69 73 20 73 74 61 72 74 linear framebuffer mode is start 00004DE0 65 64 20 77 69 74 68 20 74 68 65 20 53 56 5F 73 65 74 4D 6F 64 65 20 66 75 6E 63 74 69 6F 6E 2C ed with the SV_setMode function, 00004E00 20 74 68 65 20 76 69 64 65 6F 4D 65 6D 20 76 61 72 69 61 62 6C 65 20 6F 66 20 74 68 65 20 67 6C the videoMem variable of the gl 00004E20 6F 62 61 6C 20 64 65 76 69 63 65 20 63 6F 6E 74 65 78 74 20 62 6C 6F 63 6B 20 77 69 6C 6C 20 70 obal device context block will p 00004E40 6F 69 6E 74 20 74 6F 20 74 68 65 20 73 74 61 72 74 20 6F 66 20 74 68 65 20 6C 69 6E 65 61 72 20 oint to the start of the linear 00004E60 66 72 61 6D 65 62 75 66 66 65 72 20 72 65 67 69 6F 6E 2C 20 61 6E 64 20 79 6F 75 20 63 61 6E 20 framebuffer region, and you can 00004E80 75 73 65 20 74 68 69 73 20 76 61 72 69 61 62 6C 65 20 74 6F 20 72 65 6E 64 65 72 20 64 69 72 65 use this variable to render dire 00004EA0 63 74 6C 79 20 69 6E 74 6F 20 69 74 2E 20 4E 6F 74 65 20 74 68 61 74 20 69 66 20 79 6F 75 20 61 ctly into it. Note that if you a 00004EC0 72 65 20 64 6F 69 6E 67 20 64 6F 75 62 6C 65 20 62 75 66 66 65 72 69 6E 67 20 74 68 65 20 6F 72 re doing double buffering the or 00004EE0 69 67 69 6E 4F 66 66 73 65 74 20 76 61 72 69 61 62 6C 65 20 69 73 20 73 65 74 20 74 6F 20 70 6F iginOffset variable is set to po 00004F00 69 6E 74 20 64 69 72 65 63 74 6C 79 20 74 6F 20 74 68 65 20 73 74 61 72 74 20 6F 66 20 74 68 65 int directly to the start of the 00004F20 20 63 75 72 72 65 6E 74 6C 79 20 61 63 74 69 76 65 20 62 75 66 66 65 72 20 69 6E 20 6C 69 6E 65 currently active buffer in line 00004F40 61 72 20 66 72 61 6D 65 62 75 66 66 65 72 20 6D 65 6D 6F 72 79 2C 20 61 6E 64 20 74 68 65 20 76 ar framebuffer memory, and the v 00004F60 69 64 65 6F 4D 65 6D 20 61 6E 64 20 62 61 6E 6B 4F 66 66 73 65 74 20 76 61 72 69 61 62 6C 65 73 ideoMem and bankOffset variables 00004F80 20 61 72 65 20 6E 6F 20 6C 6F 6E 67 65 72 20 75 73 65 64 2E 0D 56 69 72 74 75 61 6C 20 6C 69 6E are no longer used.♪Virtual lin 00004FA0 65 61 72 20 66 72 61 6D 65 62 75 66 66 65 72 20 61 63 63 65 73 73 0D 49 74 20 69 73 20 70 6F 73 ear framebuffer access♪It is pos 00004FC0 73 69 62 6C 65 20 74 68 61 74 20 77 68 65 6E 20 74 68 65 20 67 72 61 70 68 69 63 73 20 6D 6F 64 sible that when the graphics mod 00004FE0 65 20 68 61 73 20 62 65 65 6E 20 69 6E 69 74 69 61 6C 69 7A 65 64 2C 20 69 74 20 68 61 73 20 62 e has been initialized, it has b 00005000 65 65 6E 20 69 6E 69 74 69 61 6C 69 7A 65 64 20 77 69 74 68 20 61 20 6C 69 6E 65 61 72 20 66 72 een initialized with a linear fr 00005020 61 6D 65 62 75 66 66 65 72 20 76 69 72 74 75 61 6C 69 7A 65 64 20 69 6E 20 73 6F 66 74 77 61 72 amebuffer virtualized in softwar 00005040 65 20 28 69 66 20 79 6F 75 20 70 61 73 73 65 64 20 74 68 65 20 75 73 65 56 69 72 74 75 61 6C 42 e (if you passed the useVirtualB 00005060 75 66 66 65 72 20 66 6C 61 67 20 74 6F 20 74 72 75 65 20 66 6F 72 20 74 68 65 20 6D 6F 64 65 20 uffer flag to true for the mode 00005080 73 65 74 29 2E 20 49 66 20 79 6F 75 20 69 6E 74 65 6E 64 20 74 6F 20 64 69 72 65 63 74 6C 79 20 set). If you intend to directly 000050A0 72 65 6E 64 65 72 20 74 6F 20 61 20 76 69 72 74 75 61 6C 20 6C 69 6E 65 61 72 20 66 72 61 6D 65 render to a virtual linear frame 000050C0 62 75 66 66 65 72 2C 20 74 68 65 72 65 20 61 72 65 20 61 20 66 65 77 20 63 61 76 65 61 74 73 20 buffer, there are a few caveats 000050E0 74 68 61 74 20 6D 75 73 74 20 62 65 20 75 6E 64 65 72 73 74 6F 6F 64 2E 0D 46 69 72 73 74 2C 20 that must be understood.♪First, 00005100 74 68 65 72 65 20 69 73 20 61 6E 20 6F 76 65 72 68 65 61 64 20 69 6E 76 6F 6C 76 65 64 20 69 6E there is an overhead involved in 00005120 20 74 68 65 20 70 61 67 65 20 66 61 75 6C 74 69 6E 67 20 6D 65 63 68 61 6E 69 73 6D 20 74 68 61 the page faulting mechanism tha 00005140 74 20 69 73 20 75 73 65 64 20 74 6F 20 61 75 74 6F 6D 61 74 69 63 61 6C 6C 79 20 6D 61 70 20 74 t is used to automatically map t 00005160 68 65 20 67 72 61 70 68 69 63 73 20 6D 65 6D 6F 72 79 2C 20 73 6F 20 69 74 20 77 6F 6E 92 74 20 he graphics memory, so it wonÆt 00005180 62 65 20 61 73 20 66 61 73 74 20 61 73 20 68 69 67 68 6C 79 20 6F 70 74 69 6D 69 7A 65 64 20 62 be as fast as highly optimized b 000051A0 61 6E 6B 20 73 77 69 74 63 68 65 64 20 63 6F 64 65 20 28 62 75 74 20 69 74 20 63 6F 6D 65 73 20 ank switched code (but it comes 000051C0 76 65 72 79 20 63 6C 6F 73 65 29 2E 20 49 66 20 79 6F 75 20 61 72 65 20 73 69 6D 70 6C 79 20 63 very close). If you are simply c 000051E0 6F 70 79 69 6E 67 20 62 6C 6F 63 6B 73 20 6F 66 20 64 61 74 61 20 74 6F 20 74 68 65 20 66 72 61 opying blocks of data to the fra 00005200 6D 65 62 75 66 66 65 72 20 69 6E 20 61 20 6C 65 66 74 20 74 6F 20 72 69 67 68 74 20 61 6E 64 20 mebuffer in a left to right and 00005220 74 6F 70 20 64 6F 77 6E 20 66 61 73 68 69 6F 6E 2C 20 74 68 65 20 63 6F 70 79 69 6E 67 20 77 69 top down fashion, the copying wi 00005240 6C 6C 20 6E 6F 74 20 63 61 75 73 65 20 76 65 72 79 20 6D 61 6E 79 20 70 61 67 65 20 66 61 75 6C ll not cause very many page faul 00005260 74 73 20 61 6E 64 20 68 65 6E 63 65 20 74 68 65 20 6F 76 65 72 68 65 61 64 73 20 77 69 6C 6C 20 ts and hence the overheads will 00005280 62 65 20 73 6D 61 6C 6C 20 69 66 20 6E 6F 74 20 6E 65 67 6C 69 67 69 62 6C 65 2E 20 49 66 20 68 be small if not negligible. If h 000052A0 6F 77 65 76 65 72 20 79 6F 75 20 61 72 65 20 64 72 61 77 69 6E 67 20 72 61 6E 64 6F 6D 20 6C 69 owever you are drawing random li 000052C0 6E 65 73 20 6F 6E 20 74 68 65 20 73 63 72 65 65 6E 2C 20 79 6F 75 20 77 69 6C 6C 20 66 69 6E 64 nes on the screen, you will find 000052E0 20 74 68 61 74 20 74 68 65 20 6F 76 65 72 68 65 61 64 20 69 6E 76 6F 6C 76 65 64 20 69 6E 20 74 that the overhead involved in t 00005300 68 65 20 70 61 67 65 20 66 61 75 6C 74 69 6E 67 20 61 6E 64 20 62 61 6E 6B 20 73 77 69 74 63 68 he page faulting and bank switch 00005320 69 6E 67 20 77 69 6C 6C 20 73 6C 6F 77 20 64 6F 77 6E 20 70 65 72 66 6F 72 6D 61 6E 63 65 20 28 ing will slow down performance ( 00005340 62 75 74 20 69 74 20 69 73 20 6E 6F 74 20 74 68 61 74 20 6D 75 63 68 20 73 6C 6F 77 65 72 20 74 but it is not that much slower t 00005360 68 61 6E 20 68 69 67 68 20 73 70 65 65 64 20 62 61 6E 6B 20 73 77 69 74 63 68 65 64 20 61 73 73 han high speed bank switched ass 00005380 65 6D 62 6C 65 72 20 63 6F 64 65 3B 20 70 65 72 68 61 70 73 20 35 2D 31 30 25 29 2E 0D 53 65 63 embler code; perhaps 5-10%).♪Sec 000053A0 6F 6E 64 2C 20 79 6F 75 20 73 69 6D 70 6C 79 20 63 61 6E 6E 6F 74 20 70 65 72 66 6F 72 6D 20 61 ond, you simply cannot perform a 000053C0 20 57 4F 52 44 20 6F 72 20 44 57 4F 52 44 20 6D 65 6D 6F 72 79 20 61 63 63 65 73 73 20 74 68 61 WORD or DWORD memory access tha 000053E0 74 20 63 72 6F 73 73 65 73 20 61 20 36 34 4B 62 20 62 61 6E 6B 20 62 6F 75 6E 64 61 72 79 2E 20 t crosses a 64Kb bank boundary. 00005400 44 6F 69 6E 67 20 73 6F 20 63 61 75 73 65 73 20 61 6E 20 69 6E 66 69 6E 69 74 65 20 70 61 67 65 Doing so causes an infinite page 00005420 20 66 61 75 6C 74 20 6C 6F 6F 70 20 74 68 61 74 20 77 69 6C 6C 20 68 61 6E 67 20 74 68 65 20 6D fault loop that will hang the m 00005440 61 63 68 69 6E 65 2E 20 54 68 65 20 69 6E 66 69 6E 69 74 65 20 6C 6F 6F 70 20 6F 63 63 75 72 73 achine. The infinite loop occurs 00005460 20 62 65 63 61 75 73 65 20 74 68 65 20 43 50 55 20 70 61 67 65 20 66 61 75 6C 74 73 20 6F 6E 20 because the CPU page faults on 00005480 74 68 65 20 73 65 63 6F 6E 64 20 68 61 6C 66 20 6F 66 20 74 68 65 20 6D 65 6D 6F 72 79 20 61 63 the second half of the memory ac 000054A0 63 65 73 73 2C 20 77 68 69 63 68 20 63 61 75 73 65 73 20 61 20 62 61 6E 6B 20 73 77 69 74 63 68 cess, which causes a bank switch 000054C0 20 74 6F 20 6F 63 63 75 72 2E 20 54 68 65 6E 20 74 68 65 20 65 6E 74 69 72 65 20 69 6E 73 74 72 to occur. Then the entire instr 000054E0 75 63 74 69 6F 6E 20 69 73 20 72 65 2D 73 74 61 72 74 65 64 20 61 6E 64 20 63 61 75 73 65 73 20 uction is re-started and causes 00005500 61 20 6D 65 6D 6F 72 79 20 61 63 63 65 73 73 20 74 6F 20 74 68 65 20 70 72 65 76 69 6F 75 73 20 a memory access to the previous 00005520 36 34 4B 62 20 62 61 6E 6B 20 77 68 69 63 68 20 68 61 73 20 6E 6F 77 20 62 65 65 6E 20 6D 61 70 64Kb bank which has now been map 00005540 70 65 64 20 6F 75 74 2E 20 41 6E 6F 74 68 65 72 20 70 61 67 65 20 66 61 75 6C 74 20 6F 63 63 75 ped out. Another page fault occu 00005560 72 73 20 61 6E 64 20 74 68 65 20 69 6E 73 74 72 75 63 74 69 6F 6E 20 69 73 20 72 65 2D 73 74 61 rs and the instruction is re-sta 00005580 72 74 65 64 20 61 67 61 69 6E 20 61 6E 64 20 77 65 20 61 72 65 20 62 61 63 6B 20 77 68 65 72 65 rted again and we are back where 000055A0 20 77 65 20 73 74 61 72 74 65 64 2E 20 0D 48 65 6E 63 65 20 69 74 20 69 73 20 76 69 74 61 6C 6C we started. ♪Hence it is vitall 000055C0 79 20 69 6D 70 6F 72 74 61 6E 74 20 74 68 61 74 20 61 6E 79 20 76 69 72 74 75 61 6C 20 6C 69 6E y important that any virtual lin 000055E0 65 61 72 20 66 72 61 6D 65 62 75 66 66 65 72 20 72 65 6E 64 65 72 69 6E 67 20 63 6F 64 65 20 65 ear framebuffer rendering code e 00005600 6E 73 75 72 65 20 74 68 61 74 20 61 6C 6C 20 6D 65 6D 6F 72 79 20 61 63 63 65 73 73 65 73 20 61 nsure that all memory accesses a 00005620 72 65 20 61 6C 69 67 6E 65 64 20 74 6F 20 65 69 74 68 65 72 20 61 20 42 59 54 45 2C 20 57 4F 52 re aligned to either a BYTE, WOR 00005640 44 20 6F 72 20 44 57 4F 52 44 20 62 6F 75 6E 64 61 72 79 20 74 6F 20 61 76 6F 69 64 20 74 68 65 D or DWORD boundary to avoid the 00005660 20 69 6E 66 69 6E 69 74 65 20 70 61 67 65 20 66 61 75 6C 74 20 6C 6F 6F 70 2E 0D 55 73 69 6E 67 infinite page fault loop.♪Using 00005680 20 74 68 65 20 56 42 45 2F 41 46 20 41 63 63 65 6C 65 72 61 74 6F 72 20 46 75 6E 63 74 69 6F 6E the VBE/AF Accelerator Function 000056A0 73 0D 54 68 65 20 53 75 70 65 72 56 47 41 20 4B 69 74 20 70 72 6F 76 69 64 65 73 20 74 72 61 6E s♪The SuperVGA Kit provides tran 000056C0 73 70 61 72 65 6E 74 20 73 75 70 70 6F 72 74 20 66 6F 72 20 62 6F 74 68 20 56 42 45 20 32 2E 30 sparent support for both VBE 2.0 000056E0 20 61 6E 64 20 62 65 6C 6F 77 20 64 65 76 69 63 65 73 2C 20 61 6E 64 20 56 42 45 2F 41 46 20 41 and below devices, and VBE/AF A 00005700 63 63 65 6C 65 72 61 74 6F 72 20 46 75 6E 63 74 69 6F 6E 73 2E 20 49 74 20 77 69 6C 6C 20 61 75 ccelerator Functions. It will au 00005720 74 6F 6D 61 74 69 63 61 6C 6C 79 20 75 73 65 20 74 68 65 20 56 42 45 2F 41 46 20 67 72 61 70 68 tomatically use the VBE/AF graph 00005740 69 63 73 20 61 63 63 65 6C 65 72 61 74 6F 72 20 66 6F 72 20 63 6C 65 61 72 69 6E 67 20 74 68 65 ics accelerator for clearing the 00005760 20 66 72 61 6D 65 62 75 66 66 65 72 20 61 6E 64 20 64 72 61 77 69 6E 67 20 6C 69 6E 65 73 20 69 framebuffer and drawing lines i 00005780 66 20 74 68 65 20 68 61 72 64 77 61 72 65 20 73 75 70 70 6F 72 74 73 20 74 68 61 74 20 66 75 6E f the hardware supports that fun 000057A0 63 74 69 6F 6E 61 6C 69 74 79 20 69 6E 20 74 68 65 20 63 75 72 72 65 6E 74 20 67 72 61 70 68 69 ctionality in the current graphi 000057C0 63 73 20 6D 6F 64 65 20 28 61 6E 64 20 79 6F 75 20 73 65 74 20 74 68 65 20 75 73 65 56 42 45 41 cs mode (and you set the useVBEA 000057E0 46 20 66 6C 61 67 20 74 6F 20 74 72 75 65 20 77 68 65 6E 20 74 68 65 20 67 72 61 70 68 69 63 73 F flag to true when the graphics 00005800 20 6D 6F 64 65 20 77 61 73 20 73 74 61 72 74 65 64 29 2E 20 48 6F 77 65 76 65 72 20 74 68 65 20 mode was started). However the 00005820 56 42 45 2F 41 46 20 73 70 65 63 69 66 69 63 61 74 69 6F 6E 20 61 6C 73 6F 20 70 72 6F 76 69 64 VBE/AF specification also provid 00005840 65 73 20 73 75 70 70 6F 72 74 20 66 6F 72 20 61 20 6D 75 63 68 20 6C 61 72 67 65 72 20 61 72 72 es support for a much larger arr 00005860 61 79 20 6F 66 20 70 72 69 6D 69 74 69 76 65 73 20 74 68 61 6E 20 6A 75 73 74 20 74 68 65 73 65 ay of primitives than just these 00005880 20 74 77 6F 20 66 75 6E 63 74 69 6F 6E 73 2C 20 73 75 63 68 20 61 73 20 70 61 74 74 65 72 6E 65 two functions, such as patterne 000058A0 64 20 72 65 63 74 61 6E 67 6C 65 20 66 69 6C 6C 73 2C 20 70 6F 6C 79 67 6F 6E 20 66 69 6C 6C 73 d rectangle fills, polygon fills 000058C0 20 61 6E 64 20 74 72 61 6E 73 70 61 72 65 6E 74 20 42 69 74 42 6C 74 20 66 75 6E 63 74 69 6F 6E and transparent BitBlt function 000058E0 73 2E 0D 49 66 20 61 20 56 42 45 2F 41 46 20 64 65 76 69 63 65 20 68 61 73 20 62 65 65 6E 20 64 s.♪If a VBE/AF device has been d 00005900 65 74 65 63 74 65 64 20 61 6E 64 20 69 73 20 63 75 72 72 65 6E 74 6C 79 20 62 65 69 6E 67 20 75 etected and is currently being u 00005920 73 65 64 20 62 79 20 74 68 65 20 6C 69 62 72 61 72 79 2C 20 74 68 65 20 67 6C 6F 62 61 6C 20 76 sed by the library, the global v 00005940 61 72 69 61 62 6C 65 20 41 46 44 43 20 77 69 6C 6C 20 62 65 20 73 65 74 20 74 6F 20 61 20 70 6F ariable AFDC will be set to a po 00005960 69 6E 74 65 72 20 74 6F 20 74 68 65 20 56 42 45 2F 41 46 20 64 65 76 69 63 65 20 63 6F 6E 74 65 inter to the VBE/AF device conte 00005980 78 74 20 62 6C 6F 63 6B 20 66 6F 72 20 74 68 65 20 63 75 72 72 65 6E 74 6C 79 20 6C 6F 61 64 65 xt block for the currently loade 000059A0 64 20 64 72 69 76 65 72 2E 20 59 6F 75 20 63 61 6E 20 74 68 65 6E 20 75 73 65 20 74 68 65 20 73 d driver. You can then use the s 000059C0 75 70 70 6C 69 65 64 20 56 42 45 2F 41 46 20 43 20 62 61 73 65 64 20 41 50 49 20 69 6E 20 74 68 upplied VBE/AF C based API in th 000059E0 65 20 56 42 45 41 46 2E 48 20 68 65 61 64 65 72 20 66 69 6C 65 20 74 6F 20 64 69 72 65 63 74 6C e VBEAF.H header file to directl 00005A00 79 20 63 61 6C 6C 20 74 68 65 73 65 20 66 75 6E 63 74 69 6F 6E 73 2C 20 6F 72 20 79 6F 75 20 63 y call these functions, or you c 00005A20 61 6E 20 75 73 65 20 74 68 65 20 73 61 6D 70 6C 65 20 61 73 73 65 6D 62 6C 65 72 20 63 6F 64 65 an use the sample assembler code 00005A40 20 69 6E 20 74 68 65 20 5F 56 42 45 41 46 2E 41 53 4D 20 6D 6F 64 75 6C 65 20 74 6F 20 77 72 69 in the _VBEAF.ASM module to wri 00005A60 74 65 20 79 6F 75 72 20 6F 77 6E 20 68 69 67 68 20 70 65 72 66 6F 72 6D 61 6E 63 65 20 61 63 63 te your own high performance acc 00005A80 65 6C 65 72 61 74 65 64 20 67 72 61 70 68 69 63 73 20 66 75 6E 63 74 69 6F 6E 73 2E 0D 4E 6F 74 elerated graphics functions.♪Not 00005AA0 65 20 74 68 61 74 20 61 6C 74 68 6F 75 67 68 20 77 65 20 70 72 6F 76 69 64 65 20 61 20 43 20 62 e that although we provide a C b 00005AC0 61 73 65 64 20 41 50 49 20 66 6F 72 20 56 42 45 2F 41 46 20 61 63 63 65 6C 65 72 61 74 69 6F 6E ased API for VBE/AF acceleration 00005AE0 20 69 6E 20 74 68 65 20 53 75 70 65 72 56 47 41 20 4B 69 74 2C 20 74 68 65 20 73 70 65 63 69 66 in the SuperVGA Kit, the specif 00005B00 69 63 61 74 69 6F 6E 20 70 61 73 73 65 73 20 76 61 6C 75 65 73 20 74 6F 20 74 68 65 20 64 72 69 ication passes values to the dri 00005B20 76 65 72 20 69 6E 20 61 20 63 6F 6D 62 69 6E 61 74 69 6F 6E 20 6F 66 20 72 65 67 69 73 74 65 72 ver in a combination of register 00005B40 73 20 61 6E 64 20 70 61 72 61 6D 65 74 65 72 20 62 6C 6F 63 6B 73 20 74 68 61 74 20 69 73 20 68 s and parameter blocks that is h 00005B60 69 67 68 6C 79 20 74 75 6E 65 64 20 74 6F 77 61 72 64 73 20 63 61 6C 6C 73 20 66 72 6F 6D 20 74 ighly tuned towards calls from t 00005B80 69 67 68 74 20 61 73 73 65 6D 62 6C 79 20 6C 61 6E 67 75 61 67 65 20 6C 6F 6F 70 73 2E 20 46 6F ight assembly language loops. Fo 00005BA0 72 20 61 62 73 6F 6C 75 74 65 20 6D 61 78 69 6D 75 6D 20 70 65 72 66 6F 72 6D 61 6E 63 65 20 69 r absolute maximum performance i 00005BC0 6E 20 79 6F 75 72 20 63 6F 64 65 2C 20 70 6C 65 61 73 65 20 72 65 61 64 20 74 68 65 20 56 42 45 n your code, please read the VBE 00005BE0 2F 41 46 20 73 70 65 63 69 66 69 63 61 74 69 6F 6E 73 20 61 6E 64 20 77 72 69 74 65 20 79 6F 75 /AF specifications and write you 00005C00 72 20 6F 77 6E 20 61 73 73 65 6D 62 6C 65 72 20 66 75 6E 63 74 69 6F 6E 73 20 74 6F 20 69 6E 74 r own assembler functions to int 00005C20 65 72 66 61 63 65 20 64 69 72 65 63 74 6C 79 20 77 69 74 68 20 74 68 65 20 56 42 45 2F 41 46 20 erface directly with the VBE/AF 00005C40 64 65 76 69 63 65 20 64 72 69 76 65 72 20 66 75 6E 63 74 69 6F 6E 73 2E 0D 49 6E 20 6F 72 64 65 device driver functions.♪In orde 00005C60 72 20 74 6F 20 61 6C 6C 6F 77 20 79 6F 75 72 20 61 63 63 65 6C 65 72 61 74 69 6F 6E 20 63 6F 64 r to allow your acceleration cod 00005C80 65 20 74 6F 20 72 75 6E 20 63 6F 72 72 65 63 74 6C 79 2C 20 79 6F 75 20 6D 75 73 74 20 61 6C 73 e to run correctly, you must als 00005CA0 6F 20 6F 62 73 65 72 76 65 20 61 20 66 65 77 20 72 75 6C 65 73 20 74 6F 20 65 6E 73 75 72 65 20 o observe a few rules to ensure 00005CC0 63 6F 72 72 65 63 74 20 61 72 62 69 74 72 61 74 69 6F 6E 20 62 65 74 77 65 65 6E 20 74 68 65 20 correct arbitration between the 00005CE0 67 72 61 70 68 69 63 73 20 61 63 63 65 6C 65 72 61 74 6F 72 20 68 61 72 64 77 61 72 65 20 61 6E graphics accelerator hardware an 00005D00 64 20 61 6E 79 20 63 6F 64 65 20 74 68 61 74 20 72 65 6E 64 65 72 73 20 64 69 72 65 63 74 6C 79 d any code that renders directly 00005D20 20 74 6F 20 74 68 65 20 66 72 61 6D 65 62 75 66 66 65 72 2E 20 42 79 20 64 65 66 61 75 6C 74 20 to the framebuffer. By default 00005D40 77 68 65 6E 20 61 20 6D 6F 64 65 20 69 73 20 69 6E 69 74 69 61 6C 69 7A 65 64 2C 20 69 74 20 69 when a mode is initialized, it i 00005D60 73 20 73 65 74 20 75 70 20 66 6F 72 20 68 61 72 64 77 61 72 65 20 61 63 63 65 6C 65 72 61 74 65 s set up for hardware accelerate 00005D80 64 20 72 65 6E 64 65 72 69 6E 67 20 61 6E 64 20 79 6F 75 20 63 61 6E 6E 6F 74 20 64 69 72 65 63 d rendering and you cannot direc 00005DA0 74 6C 79 20 61 63 63 65 73 73 20 74 68 65 20 66 72 61 6D 65 62 75 66 66 65 72 2E 20 42 65 66 6F tly access the framebuffer. Befo 00005DC0 72 65 20 79 6F 75 20 64 6F 20 61 6E 79 20 64 69 72 65 63 74 20 66 72 61 6D 65 62 75 66 66 65 72 re you do any direct framebuffer 00005DE0 20 61 63 63 65 73 73 2C 20 79 6F 75 20 6D 75 73 74 20 63 61 6C 6C 20 74 68 65 20 53 56 5F 62 65 access, you must call the SV_be 00005E00 67 69 6E 44 69 72 65 63 74 41 63 63 65 73 73 20 66 75 6E 63 74 69 6F 6E 20 74 6F 20 65 6E 73 75 ginDirectAccess function to ensu 00005E20 72 65 20 6D 75 74 75 61 6C 20 65 78 63 6C 75 73 69 6F 6E 20 74 6F 20 74 68 65 20 66 72 61 6D 65 re mutual exclusion to the frame 00005E40 62 75 66 66 65 72 2C 20 61 6E 64 20 77 68 65 6E 20 79 6F 75 20 61 72 65 20 64 6F 6E 65 20 63 61 buffer, and when you are done ca 00005E60 6C 6C 20 53 56 5F 65 6E 64 44 69 72 65 63 74 41 63 63 65 73 73 20 61 67 61 69 6E 20 74 6F 20 72 ll SV_endDirectAccess again to r 00005E80 65 74 75 72 6E 20 74 6F 20 6E 6F 72 6D 61 6C 20 68 61 72 64 77 61 72 65 20 61 63 63 65 6C 65 72 eturn to normal hardware acceler 00005EA0 61 74 69 6F 6E 20 6D 6F 64 65 2E 20 49 66 20 79 6F 75 20 64 6F 20 6E 6F 74 20 64 6F 20 74 68 69 ation mode. If you do not do thi 00005EC0 73 2C 20 74 68 65 72 65 20 69 73 20 61 20 63 68 61 6E 63 65 20 74 68 61 74 20 74 68 65 20 64 61 s, there is a chance that the da 00005EE0 74 61 20 73 74 6F 72 65 64 20 69 6E 20 74 68 65 20 66 72 61 6D 65 62 75 66 66 65 72 20 77 69 6C ta stored in the framebuffer wil 00005F00 6C 20 67 65 74 20 63 6F 72 72 75 70 74 65 64 2C 20 6F 72 20 65 76 65 6E 20 77 6F 72 73 65 20 69 l get corrupted, or even worse i 00005F20 74 20 69 73 20 71 75 69 74 65 20 70 6F 73 73 69 62 6C 65 20 74 6F 20 6C 6F 63 6B 20 75 70 20 74 t is quite possible to lock up t 00005F40 68 65 20 67 72 61 70 68 69 63 73 20 63 6F 6E 74 72 6F 6C 6C 65 72 20 68 61 72 64 77 61 72 65 20 he graphics controller hardware 00005F60 72 65 71 75 69 72 69 6E 67 20 61 20 68 61 72 64 20 72 65 62 6F 6F 74 2E 0D 0D 0C 44 65 76 65 6C requiring a hard reboot.♪♪♀Devel 00005F80 6F 70 69 6E 67 20 66 6F 72 20 4D 61 78 69 6D 75 6D 20 43 6F 6D 70 61 74 69 62 69 6C 69 74 79 0D oping for Maximum Compatibility♪ 00005FA0 54 68 69 73 20 73 65 63 74 69 6F 6E 20 63 6F 6E 74 61 69 6E 73 20 69 6E 66 6F 72 6D 61 74 69 6F This section contains informatio 00005FC0 6E 20 72 65 6C 61 74 69 6E 67 20 74 6F 20 64 65 76 65 6C 6F 70 69 6E 67 20 61 70 70 6C 69 63 61 n relating to developing applica 00005FE0 74 69 6F 6E 20 73 6F 66 74 77 61 72 65 20 77 69 74 68 20 6D 61 78 69 6D 75 6D 20 63 6F 6D 70 61 tion software with maximum compa 00006000 74 69 62 69 6C 69 74 79 20 69 6E 20 6D 69 6E 64 2C 20 77 69 74 68 6F 75 74 20 73 61 63 72 69 66 tibility in mind, without sacrif 00006020 69 63 69 6E 67 20 70 65 72 66 6F 72 6D 61 6E 63 65 20 6F 72 20 66 65 61 74 75 72 65 73 2E 20 41 icing performance or features. A 00006040 6C 74 68 6F 75 67 68 20 74 68 65 20 56 42 45 20 73 74 61 6E 64 61 72 64 20 64 65 66 69 6E 65 73 lthough the VBE standard defines 00006060 20 68 6F 77 20 74 68 65 20 73 70 65 63 69 66 69 63 61 74 69 6F 6E 20 73 68 6F 75 6C 64 20 77 6F how the specification should wo 00006080 72 6B 2C 20 74 68 65 72 65 20 61 72 65 20 6D 61 6E 79 20 64 69 66 66 65 72 65 6E 74 20 66 6C 61 rk, there are many different fla 000060A0 76 6F 72 73 20 6F 66 20 68 61 72 64 77 61 72 65 20 6F 75 74 20 69 6E 20 74 68 65 20 66 69 65 6C vors of hardware out in the fiel 000060C0 64 2E 20 49 74 20 69 73 20 76 65 72 79 20 69 6D 70 6F 72 74 61 6E 74 20 74 68 61 74 20 79 6F 75 d. It is very important that you 000060E0 20 64 65 73 69 67 6E 20 79 6F 75 72 20 61 70 70 6C 69 63 61 74 69 6F 6E 20 77 69 74 68 20 74 68 design your application with th 00006100 65 20 66 6F 6C 6C 6F 77 69 6E 67 20 73 70 65 63 69 61 6C 20 63 61 73 65 73 20 69 6E 20 6D 69 6E e following special cases in min 00006120 64 20 73 6F 20 74 68 61 74 20 79 6F 75 20 61 70 70 6C 69 63 61 74 69 6F 6E 20 77 69 6C 6C 20 72 d so that you application will r 00006140 75 6E 20 6F 6E 20 74 68 65 20 77 69 64 65 73 74 20 76 61 72 69 65 74 79 20 6F 66 20 68 61 72 64 un on the widest variety of hard 00006160 77 61 72 65 20 70 6F 73 73 69 62 6C 65 2E 0D 4E 6F 74 65 20 74 68 61 74 20 6D 61 6E 79 20 6F 66 ware possible.♪Note that many of 00006180 20 74 68 65 20 69 73 73 75 65 73 20 69 6E 20 74 68 69 73 20 73 65 63 74 69 6F 6E 20 61 72 65 20 the issues in this section are 000061A0 6F 6E 6C 79 20 72 65 6C 61 74 65 64 20 74 6F 20 64 69 72 65 63 74 6C 79 20 70 72 6F 67 72 61 6D only related to directly program 000061C0 6D 69 6E 67 20 66 6F 72 20 74 68 65 20 56 42 45 20 31 2E 32 2F 32 2E 30 20 69 6E 74 65 72 66 61 ming for the VBE 1.2/2.0 interfa 000061E0 63 65 73 2E 20 49 66 20 79 6F 75 20 61 72 65 20 64 6F 69 6E 67 20 61 6C 6C 20 79 6F 75 72 20 64 ces. If you are doing all your d 00006200 65 76 65 6C 6F 70 6D 65 6E 74 20 77 69 74 68 20 74 68 65 20 6E 61 74 69 76 65 20 4D 47 4C 20 41 evelopment with the native MGL A 00006220 50 49 2C 20 53 63 69 54 65 63 68 20 4D 47 4C 20 69 6E 73 75 6C 61 74 65 73 20 79 6F 75 20 66 72 PI, SciTech MGL insulates you fr 00006240 6F 6D 20 6D 61 6E 79 20 6F 66 20 74 68 65 73 65 20 69 73 73 75 65 73 2E 20 48 6F 77 65 76 65 72 om many of these issues. However 00006260 20 73 6F 6D 65 20 69 73 73 75 65 73 20 73 75 63 68 20 61 73 20 62 65 69 6E 67 20 61 77 61 72 65 some issues such as being aware 00006280 20 6F 66 20 74 68 65 20 64 69 66 66 65 72 65 6E 74 20 74 79 70 65 73 20 6F 66 20 68 61 72 64 77 of the different types of hardw 000062A0 61 72 65 20 63 6F 6E 66 69 67 75 72 61 74 69 6F 6E 73 20 74 68 61 74 20 77 69 6C 6C 20 62 65 20 are configurations that will be 000062C0 6F 75 74 20 74 68 65 72 65 20 28 73 75 63 68 20 61 73 20 68 61 72 64 77 61 72 65 20 74 68 61 74 out there (such as hardware that 000062E0 20 63 61 6E 6E 6F 74 20 64 6F 20 70 61 67 65 20 66 6C 69 70 70 69 6E 67 29 20 61 66 66 65 63 74 cannot do page flipping) affect 00006300 20 4D 47 4C 20 61 70 70 6C 69 63 61 74 69 6F 6E 73 20 61 73 20 77 65 6C 6C 2E 0D 43 68 65 63 6B MGL applications as well.♪Check 00006320 20 69 66 20 56 47 41 20 43 6F 6D 70 61 74 69 62 6C 65 20 42 65 66 6F 72 65 20 54 6F 75 63 68 69 if VGA Compatible Before Touchi 00006340 6E 67 20 41 6E 79 20 56 47 41 20 52 65 67 69 73 74 65 72 73 0D 43 61 72 64 73 20 41 66 66 65 63 ng Any VGA Registers♪Cards Affec 00006360 74 65 64 3A 0D 41 54 49 20 4D 61 63 68 33 32 20 61 6E 64 20 4D 61 63 68 36 34 0D 44 69 61 6D 6F ted:♪ATI Mach32 and Mach64♪Diamo 00006380 6E 64 20 56 69 70 65 72 20 73 65 72 69 65 73 20 28 57 65 69 74 65 6B 20 50 39 30 30 30 20 61 6E nd Viper series (Weitek P9000 an 000063A0 64 20 50 39 31 30 30 29 0D 44 69 61 6D 6F 6E 64 20 45 64 67 65 20 33 44 20 28 4E 56 69 64 69 61 d P9100)♪Diamond Edge 3D (NVidia 000063C0 20 4E 56 31 29 0D 49 42 4D 20 58 47 41 0D 49 49 54 20 41 47 58 0D 4D 61 74 72 6F 78 20 4D 69 6C NV1)♪IBM XGA♪IIT AGX♪Matrox Mil 000063E0 6C 65 6E 69 75 6D 20 0D 4E 75 6D 62 65 72 20 4E 69 6E 65 20 49 6D 61 67 69 6E 65 20 31 32 38 0D lenium ♪Number Nine Imagine 128♪ 00006400 4D 6F 73 74 20 6E 65 77 65 72 20 63 61 72 64 73 0D 0D 4D 61 6E 79 20 64 65 76 65 6C 6F 70 65 72 Most newer cards♪♪Many developer 00006420 73 20 66 69 6E 64 20 74 68 61 74 20 74 68 65 72 65 20 69 73 20 61 6E 20 69 72 72 65 73 69 73 74 s find that there is an irresist 00006440 69 62 6C 65 20 75 72 67 65 20 74 6F 20 70 75 73 68 20 74 68 65 20 62 6F 75 6E 64 61 72 69 65 73 ible urge to push the boundaries 00006460 20 6F 66 20 70 65 72 66 6F 72 6D 61 6E 63 65 2C 20 61 6E 64 20 74 68 65 79 20 77 69 6C 6C 20 74 of performance, and they will t 00006480 72 79 20 61 6E 79 74 68 69 6E 67 20 61 6E 64 20 65 76 65 72 79 74 68 69 6E 67 20 74 68 65 79 20 ry anything and everything they 000064A0 63 61 6E 20 74 6F 20 61 74 74 61 69 6E 20 74 68 65 73 65 20 67 6F 61 6C 73 2E 20 4F 6E 65 20 6F can to attain these goals. One o 000064C0 66 20 74 68 65 20 74 68 69 6E 67 73 20 74 68 61 74 20 69 73 20 63 6F 6D 6D 6F 6E 6C 79 20 64 6F f the things that is commonly do 000064E0 6E 65 20 69 73 20 74 6F 20 70 65 72 66 6F 72 6D 20 77 65 69 72 64 20 61 6E 64 20 77 6F 6E 64 65 ne is to perform weird and wonde 00006500 72 66 75 6C 20 66 65 61 74 73 20 6F 66 20 6D 61 67 69 63 20 75 73 69 6E 67 20 73 6F 6D 65 20 6F rful feats of magic using some o 00006520 66 20 74 68 65 20 73 74 61 6E 64 61 72 64 20 56 47 41 20 72 65 67 69 73 74 65 72 73 2E 20 54 68 f the standard VGA registers. Th 00006540 69 73 20 64 6F 65 73 20 77 6F 72 6B 2C 20 61 6E 64 20 77 6F 72 6B 20 77 65 6C 6C 20 6F 6E 20 73 is does work, and work well on s 00006560 6F 6D 65 20 67 72 61 70 68 69 63 73 20 63 61 72 64 73 2C 20 62 75 74 20 6E 6F 74 20 6F 6E 20 61 ome graphics cards, but not on a 00006580 6C 6C 20 63 61 72 64 73 21 20 20 0D 49 66 20 74 68 65 20 67 72 61 70 68 69 63 73 20 63 6F 6E 74 ll cards! ♪If the graphics cont 000065A0 72 6F 6C 6C 65 72 20 69 73 20 62 61 73 65 64 20 6F 6E 20 61 20 4E 6F 6E 56 47 41 20 67 72 61 70 roller is based on a NonVGA grap 000065C0 68 69 63 73 20 68 61 72 64 77 61 72 65 20 74 65 63 68 6E 6F 6C 6F 67 79 20 28 61 6E 64 20 6D 61 hics hardware technology (and ma 000065E0 6E 79 20 70 6F 70 75 6C 61 72 20 6F 6E 65 73 20 61 72 65 29 2C 20 69 6E 20 74 68 65 20 53 75 70 ny popular ones are), in the Sup 00006600 65 72 56 47 41 20 67 72 61 70 68 69 63 73 20 6D 6F 64 65 73 20 74 68 65 20 56 47 41 20 72 65 67 erVGA graphics modes the VGA reg 00006620 69 73 74 65 72 73 20 73 69 6D 70 6C 79 20 64 6F 20 6E 6F 74 20 65 78 69 73 74 20 61 6E 79 6D 6F isters simply do not exist anymo 00006640 72 65 2C 20 61 6E 64 20 61 74 74 65 6D 70 74 69 6E 67 20 74 6F 20 73 79 6E 63 68 20 74 6F 20 74 re, and attempting to synch to t 00006660 68 65 73 65 20 72 65 67 69 73 74 65 72 73 20 77 69 6C 6C 20 70 75 74 20 79 6F 75 72 20 63 6F 64 hese registers will put your cod 00006680 65 20 69 6E 74 6F 20 61 6E 20 69 6E 66 69 6E 69 74 65 20 6C 6F 6F 70 2E 20 53 6F 20 62 65 20 66 e into an infinite loop. So be f 000066A0 6F 72 65 77 61 72 6E 65 64 20 74 68 61 74 20 64 6F 69 6E 67 20 61 6E 79 20 66 69 64 64 6C 69 6E orewarned that doing any fiddlin 000066C0 67 20 77 69 74 68 20 74 68 65 20 73 74 61 6E 64 61 72 64 20 56 47 41 20 72 65 67 69 73 74 65 72 g with the standard VGA register 000066E0 73 20 69 73 20 61 73 6B 69 6E 67 20 66 6F 72 20 74 72 6F 75 62 6C 65 20 6F 6E 20 63 65 72 74 61 s is asking for trouble on certa 00006700 69 6E 20 67 72 61 70 68 69 63 73 20 63 61 72 64 20 74 68 61 74 20 75 73 65 20 4E 6F 6E 56 47 41 in graphics card that use NonVGA 00006720 20 63 6F 6E 74 72 6F 6C 6C 65 72 73 20 74 6F 20 70 72 6F 67 72 61 6D 20 74 68 65 20 53 75 70 65 controllers to program the Supe 00006740 72 56 47 41 20 67 72 61 70 68 69 63 73 20 6D 6F 64 65 73 20 28 61 6E 64 20 6C 6F 74 73 20 6D 6F rVGA graphics modes (and lots mo 00006760 72 65 20 6F 66 20 74 68 65 73 65 20 61 72 65 20 63 6F 6D 69 6E 67 20 6F 75 74 29 2E 0D 54 68 65 re of these are coming out).♪The 00006780 72 65 20 69 73 20 68 6F 77 65 76 65 72 20 61 20 73 6F 6C 75 74 69 6F 6E 20 66 6F 72 20 56 42 45 re is however a solution for VBE 000067A0 20 32 2E 30 20 61 6E 64 20 56 42 45 2F 41 46 20 63 6F 6E 74 72 6F 6C 6C 65 72 73 2E 20 54 68 65 2.0 and VBE/AF controllers. The 000067C0 72 65 20 69 73 20 61 20 62 69 74 20 69 6E 20 74 68 65 20 56 42 45 20 6D 6F 64 65 49 6E 66 6F 42 re is a bit in the VBE modeInfoB 000067E0 6C 6F 63 6B 20 66 6F 72 20 65 76 65 72 79 20 67 72 61 70 68 69 63 73 20 6D 6F 64 65 20 74 68 61 lock for every graphics mode tha 00006800 74 20 69 6E 64 69 63 61 74 65 73 20 77 68 65 74 68 65 72 20 74 68 61 74 20 6D 6F 64 65 20 69 73 t indicates whether that mode is 00006820 20 61 20 4E 6F 6E 56 47 41 20 6D 6F 64 65 20 6F 72 20 56 47 41 20 63 6F 6D 70 61 74 69 62 6C 65 a NonVGA mode or VGA compatible 00006840 20 6D 6F 64 65 2E 20 49 66 20 74 68 69 73 20 62 69 74 20 69 73 20 73 65 74 20 69 6E 64 69 63 61 mode. If this bit is set indica 00006860 74 69 6E 67 20 74 68 61 74 20 61 20 4E 6F 6E 56 47 41 20 63 6F 6E 74 72 6F 6C 6C 65 72 20 69 73 ting that a NonVGA controller is 00006880 20 62 65 69 6E 67 20 75 73 65 64 20 74 6F 20 70 72 6F 67 72 61 6D 20 74 68 65 20 64 65 73 69 72 being used to program the desir 000068A0 65 64 20 67 72 61 70 68 69 63 73 20 6D 6F 64 65 2C 20 79 6F 75 20 6D 75 73 74 20 6E 6F 74 20 64 ed graphics mode, you must not d 000068C0 6F 20 61 6E 79 74 68 69 6E 67 20 72 65 6C 61 74 65 64 20 74 6F 20 72 65 2D 70 72 6F 67 72 61 6D o anything related to re-program 000068E0 6D 69 6E 67 20 61 6E 79 20 6F 66 20 74 68 65 20 73 74 61 6E 64 61 72 64 20 56 47 41 20 72 65 67 ming any of the standard VGA reg 00006900 69 73 74 65 72 73 2E 20 49 6E 20 74 68 65 73 65 20 63 61 73 65 73 20 79 6F 75 20 6D 75 73 74 20 isters. In these cases you must 00006920 66 61 6C 6C 62 61 63 6B 20 6F 6E 74 6F 20 67 65 6E 65 72 69 63 20 63 6F 64 65 20 74 68 61 74 20 fallback onto generic code that 00006940 77 69 6C 6C 20 70 65 72 66 6F 72 6D 20 61 6C 6C 20 69 74 92 73 20 67 72 61 70 68 69 63 73 20 63 will perform all itÆs graphics c 00006960 61 72 64 20 69 6E 74 65 72 61 63 74 69 6F 6E 20 74 68 72 6F 75 67 68 20 74 68 65 20 73 74 61 6E ard interaction through the stan 00006980 64 61 72 64 20 56 42 45 20 32 2E 30 20 73 65 72 76 69 63 65 73 2E 0D 4E 4F 54 45 3A 20 54 68 65 dard VBE 2.0 services.♪NOTE: The 000069A0 20 53 63 69 54 65 63 68 20 4D 47 4C 20 41 50 49 20 69 6E 73 75 6C 61 74 65 73 20 64 65 76 65 6C SciTech MGL API insulates devel 000069C0 6F 70 65 72 73 20 66 72 6F 6D 20 74 68 69 73 20 69 73 73 75 65 2E 0D 43 68 65 63 6B 20 69 66 20 opers from this issue.♪Check if 000069E0 56 47 41 20 43 6F 6D 70 61 74 69 62 6C 65 20 42 65 66 6F 72 65 20 44 69 72 65 63 74 6C 79 20 50 VGA Compatible Before Directly P 00006A00 72 6F 67 72 61 6D 6D 69 6E 67 20 74 68 65 20 44 41 43 0D 43 61 72 64 73 20 41 66 66 65 63 74 65 rogramming the DAC♪Cards Affecte 00006A20 64 3A 0D 41 54 49 20 4D 61 63 68 33 32 20 61 6E 64 20 4D 61 63 68 36 34 0D 44 69 61 6D 6F 6E 64 d:♪ATI Mach32 and Mach64♪Diamond 00006A40 20 56 69 70 65 72 20 73 65 72 69 65 73 20 28 57 65 69 74 65 6B 20 50 39 30 30 30 20 61 6E 64 20 Viper series (Weitek P9000 and 00006A60 50 39 31 30 30 29 0D 44 69 61 6D 6F 6E 64 20 45 64 67 65 20 33 44 20 28 4E 56 69 64 69 61 20 4E P9100)♪Diamond Edge 3D (NVidia N 00006A80 56 31 29 0D 49 42 4D 20 58 47 41 0D 49 49 54 20 41 47 58 0D 4D 61 74 72 6F 78 20 4D 69 6C 6C 65 V1)♪IBM XGA♪IIT AGX♪Matrox Mille 00006AA0 6E 69 75 6D 20 0D 4E 75 6D 62 65 72 20 4E 69 6E 65 20 49 6D 61 67 69 6E 65 20 31 32 38 0D 4D 6F nium ♪Number Nine Imagine 128♪Mo 00006AC0 73 74 20 6E 65 77 65 72 20 63 61 72 64 73 0D 0D 41 6E 6F 74 68 65 72 20 61 72 65 61 20 6F 66 20 st newer cards♪♪Another area of 00006AE0 63 6F 6E 63 65 72 6E 20 69 73 20 70 72 6F 67 72 61 6D 6D 69 6E 67 20 74 68 65 20 63 6F 6C 6F 72 concern is programming the color 00006B00 20 70 61 6C 65 74 74 65 2E 20 4F 6E 63 65 20 61 67 61 69 6E 20 74 68 65 20 73 61 6D 65 20 70 72 palette. Once again the same pr 00006B20 6F 62 6C 65 6D 20 6F 63 63 75 72 73 20 77 68 65 6E 20 70 72 6F 67 72 61 6D 6D 69 6E 67 20 74 68 oblem occurs when programming th 00006B40 65 20 70 61 6C 65 74 74 65 20 66 6F 72 20 4E 6F 6E 56 47 41 20 63 6F 6E 74 72 6F 6C 6C 65 72 73 e palette for NonVGA controllers 00006B60 3B 20 74 68 65 20 56 47 41 20 70 61 6C 65 74 74 65 20 72 65 67 69 73 74 65 72 73 20 6E 6F 20 6C ; the VGA palette registers no l 00006B80 6F 6E 67 65 72 20 65 78 69 73 74 20 61 6E 64 20 61 74 74 65 6D 70 74 69 6E 67 20 74 6F 20 70 72 onger exist and attempting to pr 00006BA0 6F 67 72 61 6D 20 74 68 65 20 70 61 6C 65 74 74 65 20 76 69 61 20 74 68 65 73 65 20 72 65 67 69 ogram the palette via these regi 00006BC0 73 74 65 72 73 20 77 69 6C 6C 20 73 69 6D 70 6C 79 20 64 6F 20 6E 6F 74 68 69 6E 67 2E 20 45 76 sters will simply do nothing. Ev 00006BE0 65 6E 20 77 6F 72 73 65 20 61 74 74 65 6D 70 74 69 6E 67 20 74 6F 20 73 79 6E 63 68 20 74 6F 20 en worse attempting to synch to 00006C00 74 68 65 20 76 65 72 74 69 63 61 6C 20 6F 72 20 68 6F 72 69 7A 6F 6E 74 61 6C 20 72 65 74 72 61 the vertical or horizontal retra 00006C20 63 65 20 77 69 6C 6C 20 61 6C 73 6F 20 63 61 75 73 65 20 74 68 65 20 73 79 73 74 65 6D 20 74 6F ce will also cause the system to 00006C40 20 67 65 74 20 69 6E 74 6F 20 61 6E 20 69 6E 66 69 6E 69 74 65 20 6C 6F 6F 70 2E 0D 48 65 6E 63 get into an infinite loop.♪Henc 00006C60 65 20 69 66 20 79 6F 75 20 6E 65 65 64 20 74 6F 20 70 72 6F 67 72 61 6D 20 74 68 65 20 63 6F 6C e if you need to program the col 00006C80 6F 72 20 70 61 6C 65 74 74 65 2C 20 79 6F 75 20 73 68 6F 75 6C 64 20 61 6C 77 61 79 73 20 74 72 or palette, you should always tr 00006CA0 79 20 74 6F 20 75 73 65 20 74 68 65 20 73 75 70 70 6C 69 65 64 20 56 42 45 20 32 2E 30 20 61 6E y to use the supplied VBE 2.0 an 00006CC0 64 20 56 42 45 2F 41 46 20 70 61 6C 65 74 74 65 20 70 72 6F 67 72 61 6D 6D 69 6E 67 20 72 6F 75 d VBE/AF palette programming rou 00006CE0 74 69 6E 65 73 20 72 61 74 68 65 72 20 74 68 61 6E 20 70 72 6F 67 72 61 6D 6D 69 6E 67 20 74 68 tines rather than programming th 00006D00 65 20 70 61 6C 65 74 74 65 20 64 69 72 65 63 74 6C 79 2E 20 49 66 20 79 6F 75 20 6D 75 73 74 20 e palette directly. If you must 00006D20 68 61 76 65 20 79 6F 75 72 20 6F 77 6E 20 70 61 6C 65 74 74 65 20 70 72 6F 67 72 61 6D 6D 69 6E have your own palette programmin 00006D40 67 20 63 6F 64 65 2C 20 6D 61 6B 65 20 73 75 72 65 20 79 6F 75 20 63 68 65 63 6B 20 74 68 65 20 g code, make sure you check the 00006D60 4E 6F 6E 56 47 41 20 61 74 74 72 69 62 75 74 65 20 62 69 74 20 61 73 20 64 69 73 63 75 73 73 65 NonVGA attribute bit as discusse 00006D80 64 20 61 62 6F 76 65 2C 20 61 6E 64 20 69 66 20 61 20 4E 6F 6E 56 47 41 20 6D 6F 64 65 20 69 73 d above, and if a NonVGA mode is 00006DA0 20 64 65 74 65 63 74 65 64 20 79 6F 75 20 77 69 6C 6C 20 68 61 76 65 20 74 6F 20 70 72 6F 67 72 detected you will have to progr 00006DC0 61 6D 20 74 68 65 20 70 61 6C 65 74 74 65 20 76 69 61 20 74 68 65 20 73 74 61 6E 64 61 72 64 20 am the palette via the standard 00006DE0 56 42 45 20 32 2E 30 20 6F 72 20 56 42 45 2F 41 46 20 73 65 72 76 69 63 65 73 2E 0D 4E 4F 54 45 VBE 2.0 or VBE/AF services.♪NOTE 00006E00 3A 20 54 68 65 20 53 63 69 54 65 63 68 20 4D 47 4C 20 41 50 49 20 69 6E 73 75 6C 61 74 65 73 20 : The SciTech MGL API insulates 00006E20 64 65 76 65 6C 6F 70 65 72 73 20 66 72 6F 6D 20 74 68 69 73 20 69 73 73 75 65 2E 0D 48 61 6E 64 developers from this issue.♪Hand 00006E40 6C 69 6E 67 20 47 72 61 70 68 69 63 73 20 43 61 72 64 73 20 77 69 74 68 20 4F 6E 6C 79 20 4D 65 ling Graphics Cards with Only Me 00006E60 6D 6F 72 79 20 4D 61 70 70 65 64 20 52 65 67 69 73 74 65 72 73 0D 43 61 72 64 73 20 41 66 66 65 mory Mapped Registers♪Cards Affe 00006E80 63 74 65 64 3A 0D 41 6C 6C 69 61 6E 63 65 20 50 72 6F 4D 6F 74 69 6F 6E 20 33 32 31 30 2F 36 34 cted:♪Alliance ProMotion 3210/64 00006EA0 31 30 0D 4E 75 6D 62 65 72 20 4E 69 6E 65 20 49 6D 61 67 69 6E 65 20 31 32 38 0D 53 6F 6D 65 20 10♪Number Nine Imagine 128♪Some 00006EC0 6E 65 77 65 72 20 63 61 72 64 73 0D 0D 4F 6E 65 20 61 72 65 61 20 74 68 61 74 20 69 73 20 6E 6F newer cards♪♪One area that is no 00006EE0 74 20 76 65 72 79 20 77 65 6C 6C 20 63 6F 76 65 72 65 64 20 69 6E 20 74 68 65 20 56 42 45 20 32 t very well covered in the VBE 2 00006F00 2E 30 20 73 70 65 63 73 20 69 73 20 73 75 70 70 6F 72 74 20 66 6F 72 20 63 6F 6E 74 72 6F 6C 6C .0 specs is support for controll 00006F20 65 72 73 20 74 68 61 74 20 6F 6E 6C 79 20 68 61 76 65 20 6D 65 6D 6F 72 79 20 6D 61 70 70 65 64 ers that only have memory mapped 00006F40 20 72 65 67 69 73 74 65 72 73 20 72 61 74 68 65 72 20 74 68 61 6E 20 49 4F 20 6D 61 70 70 65 64 registers rather than IO mapped 00006F60 20 72 65 67 69 73 74 65 72 73 2E 20 46 6F 72 20 74 68 65 73 65 20 63 6F 6E 74 72 6F 6C 6C 65 72 registers. For these controller 00006F80 73 20 74 68 65 72 65 20 61 72 65 20 61 20 6E 75 6D 62 65 72 20 6F 66 20 73 6D 61 6C 6C 20 69 73 s there are a number of small is 00006FA0 73 75 65 73 20 74 68 61 74 20 6E 65 65 64 20 74 6F 20 62 65 20 68 61 6E 64 6C 65 64 20 69 6E 20 sues that need to be handled in 00006FC0 6F 72 64 65 72 20 74 6F 20 6D 61 6B 65 20 73 75 72 65 20 74 68 61 74 20 74 68 65 20 33 32 20 62 order to make sure that the 32 b 00006FE0 69 74 20 56 42 45 20 32 2E 30 20 72 65 6C 6F 63 61 74 65 61 62 6C 65 20 66 75 6E 63 74 69 6F 6E it VBE 2.0 relocateable function 00007000 73 20 77 6F 72 6B 20 63 6F 72 72 65 63 74 6C 79 2E 20 49 66 20 6F 72 64 65 72 20 66 6F 72 20 74 s work correctly. If order for t 00007020 68 65 73 65 20 66 75 6E 63 74 69 6F 6E 73 20 74 6F 20 77 6F 72 6B 2C 20 61 20 73 65 6C 65 63 74 hese functions to work, a select 00007040 6F 72 20 74 6F 20 74 68 65 20 6D 65 6D 6F 72 79 20 6D 61 70 70 65 64 20 72 65 67 69 73 74 65 72 or to the memory mapped register 00007060 73 20 6D 75 73 74 20 62 65 20 70 61 73 73 65 64 20 69 6E 20 74 68 65 20 45 53 20 72 65 67 69 73 s must be passed in the ES regis 00007080 74 65 72 20 74 6F 20 74 68 65 20 62 61 6E 6B 20 73 77 69 74 63 68 69 6E 67 20 61 6E 64 20 64 69 ter to the bank switching and di 000070A0 73 70 6C 61 79 20 73 74 61 72 74 20 61 64 64 72 65 73 73 20 70 72 6F 67 72 61 6D 6D 69 6E 67 20 splay start address programming 000070C0 72 6F 75 74 69 6E 65 73 2C 20 61 6E 64 20 69 6E 20 74 68 65 20 44 53 20 72 65 67 69 73 74 65 72 routines, and in the DS register 000070E0 20 66 6F 72 20 74 68 65 20 70 61 6C 65 74 74 65 20 70 72 6F 67 72 61 6D 6D 69 6E 67 20 72 6F 75 for the palette programming rou 00007100 74 69 6E 65 2E 20 49 66 20 74 68 69 73 20 73 65 6C 65 63 74 6F 72 20 69 73 20 6E 6F 74 20 70 61 tine. If this selector is not pa 00007120 73 73 65 64 2C 20 74 68 65 20 63 6F 64 65 20 77 69 6C 6C 20 6E 6F 74 20 62 65 20 61 62 6C 65 20 ssed, the code will not be able 00007140 74 6F 20 63 6F 72 72 65 63 74 6C 79 20 61 63 63 65 73 73 20 74 68 65 20 6E 65 63 65 73 73 61 72 to correctly access the necessar 00007160 79 20 6D 65 6D 6F 72 79 20 6D 61 70 70 65 64 20 72 65 67 69 73 74 65 72 73 20 61 6E 64 20 79 6F y memory mapped registers and yo 00007180 75 72 20 61 70 70 6C 69 63 61 74 69 6F 6E 20 77 69 6C 6C 20 70 72 6F 62 61 62 6C 79 20 63 72 61 ur application will probably cra 000071A0 73 68 2E 0D 4E 6F 74 65 20 74 68 61 74 20 74 68 65 20 55 6E 69 56 42 45 20 61 6E 64 20 6F 75 72 sh.♪Note that the UniVBE and our 000071C0 20 55 56 42 45 4C 69 62 20 64 65 76 69 63 65 20 73 75 70 70 6F 72 74 20 6C 69 62 72 61 72 69 65 UVBELib device support librarie 000071E0 73 20 68 61 76 65 20 73 6F 6D 65 20 73 70 65 63 69 61 6C 20 63 61 73 65 20 63 6F 64 65 20 74 68 s have some special case code th 00007200 61 74 20 77 69 6C 6C 20 77 6F 72 6B 20 63 6F 72 72 65 63 74 6C 79 20 69 66 20 44 4F 53 34 47 57 at will work correctly if DOS4GW 00007220 20 69 73 20 75 73 65 64 2C 20 62 75 74 20 6E 6F 74 20 77 69 74 68 20 61 6E 79 20 6F 74 68 65 72 is used, but not with any other 00007240 20 44 4F 53 20 65 78 74 65 6E 64 65 72 2E 20 48 6F 77 65 76 65 72 20 79 6F 75 20 73 68 6F 75 6C DOS extender. However you shoul 00007260 64 20 6D 61 6B 65 20 73 75 72 65 20 79 6F 75 20 63 6F 64 65 20 63 6F 72 72 65 63 74 6C 79 20 68 d make sure you code correctly h 00007280 61 6E 64 6C 65 73 20 74 68 65 73 65 20 73 69 74 75 61 74 69 6F 6E 73 2C 20 61 73 20 69 74 20 6D andles these situations, as it m 000072A0 61 79 20 65 6E 64 20 75 70 20 72 75 6E 6E 69 6E 67 20 6F 6E 20 61 20 64 69 66 66 65 72 65 6E 74 ay end up running on a different 000072C0 20 56 42 45 20 69 6D 70 6C 65 6D 65 6E 74 61 74 69 6F 6E 20 74 68 61 74 20 64 6F 65 73 20 6E 6F VBE implementation that does no 000072E0 74 20 68 61 76 65 20 73 70 65 63 69 61 6C 20 63 61 73 65 20 63 6F 64 65 20 66 6F 72 20 44 4F 53 t have special case code for DOS 00007300 34 47 57 2E 0D 50 6C 65 61 73 65 20 6C 6F 6F 6B 20 61 74 20 74 68 65 20 63 6F 64 65 20 69 6E 20 4GW.♪Please look at the code in 00007320 74 68 65 20 53 56 47 41 53 44 4B 2E 43 20 61 6E 64 20 5F 53 56 47 41 53 44 4B 2E 41 53 4D 20 73 the SVGASDK.C and _SVGASDK.ASM s 00007340 6F 75 72 63 65 20 66 69 6C 65 73 20 69 6E 20 74 68 65 20 53 75 70 65 72 56 47 41 20 4B 69 74 20 ource files in the SuperVGA Kit 00007360 74 68 61 74 20 70 65 72 66 6F 72 6D 20 74 68 69 73 20 66 75 6E 63 74 69 6F 6E 20 28 56 42 45 32 that perform this function (VBE2 00007380 30 5F 73 65 74 42 61 6E 6B 41 45 53 20 65 74 63 2E 29 2E 20 49 74 20 69 73 20 70 6F 73 73 69 62 0_setBankAES etc.). It is possib 000073A0 6C 65 20 74 6F 20 68 61 6E 64 6C 65 20 74 68 65 73 65 20 73 69 74 75 61 74 69 6F 6E 73 20 63 6F le to handle these situations co 000073C0 72 72 65 63 74 6C 79 20 77 69 74 68 6F 75 74 20 69 6D 70 61 63 74 69 6E 67 20 74 68 65 20 70 65 rrectly without impacting the pe 000073E0 72 66 6F 72 6D 61 6E 63 65 20 6F 6E 20 63 6F 6E 74 72 6F 6C 6C 65 72 73 20 77 68 65 72 65 20 74 rformance on controllers where t 00007400 68 69 73 20 69 73 20 6E 6F 74 20 61 6E 20 69 73 73 75 65 2E 20 54 68 69 73 20 69 73 20 61 6C 73 his is not an issue. This is als 00007420 6F 20 61 6E 20 69 73 73 75 65 20 74 68 61 74 20 6E 65 65 64 73 20 74 6F 20 62 65 20 73 6F 6C 76 o an issue that needs to be solv 00007440 65 64 20 6E 6F 77 2C 20 62 65 63 61 75 73 65 20 74 68 65 72 65 20 61 72 65 20 61 20 6E 75 6D 62 ed now, because there are a numb 00007460 65 72 20 6F 66 20 6E 65 77 20 67 72 61 70 68 69 63 73 20 63 6F 6E 74 72 6F 6C 6C 65 72 73 20 63 er of new graphics controllers c 00007480 6F 6D 69 6E 67 20 6F 75 74 20 74 68 61 74 20 68 61 76 65 20 6F 6E 6C 79 20 6D 65 6D 6F 72 79 20 oming out that have only memory 000074A0 6D 61 70 70 65 64 20 72 65 67 69 73 74 65 72 73 2E 0D 4E 4F 54 45 3A 20 54 68 65 20 53 63 69 54 mapped registers.♪NOTE: The SciT 000074C0 65 63 68 20 4D 47 4C 20 41 50 49 20 69 6E 73 75 6C 61 74 65 73 20 64 65 76 65 6C 6F 70 65 72 73 ech MGL API insulates developers 000074E0 20 66 72 6F 6D 20 74 68 69 73 20 69 73 73 75 65 2E 0D 0D 18 00 A4 D0 2F A5 E0 3D A6 A0 05 A7 A0 from this issue.♪♪↑.ñ╨/Ñα=ªá♣ºá 00007500 05 A8 A0 05 A9 A0 05 AA 00 00 AB 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ♣¿á♣⌐á♣¬..½☺.................... 00007520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................ 00007540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................ 00007560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................ 00007580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................ 000075A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................ 000075C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................ 000075E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................ 00007600 00 03 00 00 FE 0C 00 00 FF 0C 00 00 17 0D 00 00 18 0D 00 00 19 0D 00 00 1A 0D 00 00 79 19 00 00 .♥..■♀.. ♀..↨♪..↑♪..↓♪..→♪..y↓.. 00007620 7F 19 00 00 1E 2A 00 00 29 2A 00 00 54 2A 00 00 55 2A 00 00 75 2A 00 00 7D 2A 00 00 0A 2B 00 00 ⌂↓..▲*..)*..T*..U*..u*..}*..◙+.. 00007640 18 2B 00 00 A5 2C 00 00 B6 2C 00 00 65 2D 00 00 76 2D 00 00 39 2E 00 00 46 2E 00 00 F2 2F 00 00 ↑+..Ñ,..╢,..e-..v-..9...F...≥/.. 00007660 F6 2F 00 00 55 30 00 00 59 30 00 00 39 36 00 00 47 36 00 00 02 3C 00 00 0E 3C 00 00 13 3C 00 00 ÷/..U0..Y0..96..G6..☻<..♫<..‼<.. 00007680 1D 3C 00 00 1B 3D 00 00 28 3D 00 00 A1 40 00 00 A8 40 00 00 BE 41 00 00 C2 41 00 00 12 47 00 00 ↔<..←=..(=..í@..¿@..╛A..┬A..↕G.. 000076A0 16 47 00 00 79 47 00 00 84 47 00 00 18 48 00 00 25 48 00 00 26 49 00 00 2E 49 00 00 A0 49 00 00 ▬G..yG..äG..↑H..%H..&I...I..áI.. 000076C0 AC 49 00 00 B1 49 00 00 BB 49 00 00 05 4E 00 00 0D 4E 00 00 DE 4E 00 00 EA 4E 00 00 5F 4F 00 00 ¼I..▒I..╗I..♣N..♪N..▐N..ΩN.._O.. 000076E0 67 4F 00 00 6C 4F 00 00 76 4F 00 00 55 50 00 00 65 50 00 00 B0 53 00 00 B6 53 00 00 D4 54 00 00 gO..lO..vO..UP..eP..░S..╢S..╘T.. 00007700 DA 54 00 00 D9 57 00 00 E1 57 00 00 48 59 00 00 4C 59 00 00 97 69 00 00 9C 69 00 00 FC 6D 00 00 ┌T..┘W..ßW..HY..LY..ùi..£i..ⁿm.. 00007720 01 6E 00 00 B2 74 00 00 B7 74 00 00 F3 74 00 00 0D 75 00 00 00 FB 00 FB F9 FB 00 F7 00 F7 00 F7 ☺n..▓t..╖t..≤t..♪u...√.√∙√.≈.≈.≈ 00007740 00 F7 00 F7 00 F7 00 F7 00 F7 00 F7 00 F7 00 F7 00 F7 00 F7 00 F7 00 F7 00 F7 00 F7 00 F7 00 F7 .≈.≈.≈.≈.≈.≈.≈.≈.≈.≈.≈.≈.≈.≈.≈.≈ 00007760 00 F7 00 F7 00 F7 00 F7 00 F7 00 F7 00 F7 00 F7 00 F7 00 F7 00 F7 00 F7 00 F4 00 F4 00 F4 00 F2 .≈.≈.≈.≈.≈.≈.≈.≈.≈.≈.≈.≈.⌠.⌠.⌠.≥ 00007780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................ 000077A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................ 000077C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................ 000077E0 00 00 00 00 02 75 01 00 04 55 81 56 81 00 02 56 81 00 03 61 00 04 08 75 01 44 04 00 00 00 00 4C ....☻u☺.♦UüVü.☻Vü.♥a.♦◘u☺D♦....L 00007800 00 03 00 00 17 03 00 00 D0 03 00 00 0F 05 00 00 31 05 00 00 19 07 00 00 D4 08 00 00 EC 08 00 00 .♥..↨♥..╨♥..☼♣..1♣..↓•..╘◘..∞◘.. 00007820 2C 0A 00 00 31 0A 00 00 39 0A 00 00 3A 0A 00 00 41 0A 00 00 5F 0A 00 00 60 0A 00 00 6A 0A 00 00 ,◙..1◙..9◙..:◙..A◙.._◙..`◙..j◙.. 00007840 99 0A 00 00 9A 0A 00 00 A4 0A 00 00 D6 0A 00 00 D7 0A 00 00 DF 0A 00 00 0B 0B 00 00 0C 0B 00 00 Ö◙..Ü◙..ñ◙..╓◙..╫◙..▀◙..♂♂..♀♂.. 00007860 15 0B 00 00 4B 0B 00 00 4C 0B 00 00 58 0B 00 00 7B 0B 00 00 7C 0B 00 00 86 0B 00 00 C5 0B 00 00 §♂..K♂..L♂..X♂..{♂..|♂..å♂..┼♂.. 00007880 C6 0B 00 00 D3 0B 00 00 1F 0C 00 00 20 0C 00 00 2B 0C 00 00 5A 0C 00 00 5B 0C 00 00 67 0C 00 00 ╞♂..╙♂..▼♀.. ♀..+♀..Z♀..[♀..g♀.. 000078A0 96 0C 00 00 FE 00 01 90 24 7E 02 FC 00 03 90 24 12 01 FC 00 04 90 24 12 01 FA 00 01 90 24 50 01 û♀..■.☺É$~☻ⁿ.♥É$↕☺ⁿ.♦É$↕☺·.☺É$P☺ 000078C0 FC 00 06 90 24 12 01 FC 00 06 90 24 12 01 FA 00 01 90 24 50 01 FC 00 04 90 24 12 01 F6 00 01 04 ⁿ.♠É$↕☺ⁿ.♠É$↕☺·.☺É$P☺ⁿ.♦É$↕☺÷.☺♦ 000078E0 08 0D 01 F6 00 01 85 13 0D 01 E2 00 01 85 13 0D 01 DE 00 01 04 08 12 01 DE 00 01 85 13 12 01 E2 ◘♪☺÷.☺à‼♪☺Γ.☺à‼♪☺▐.☺♦◘↕☺▐.☺à‼↕☺Γ 00007900 00 01 85 13 12 01 DE 00 01 04 08 12 01 DE 00 01 85 13 12 01 E2 00 01 85 13 12 01 DE 00 01 04 08 .☺à‼↕☺▐.☺♦◘↕☺▐.☺à‼↕☺Γ.☺à‼↕☺▐.☺♦◘ 00007920 12 01 DE 00 01 85 13 12 01 E2 00 01 85 13 12 01 DE 00 01 04 08 12 01 DE 00 01 85 13 12 01 E2 00 ↕☺▐.☺à‼↕☺Γ.☺à‼↕☺▐.☺♦◘↕☺▐.☺à‼↕☺Γ. 00007940 01 85 13 12 01 DE 00 01 04 08 12 01 DE 00 01 85 13 12 01 E2 00 01 85 13 12 01 DE 00 01 04 08 12 ☺à‼↕☺▐.☺♦◘↕☺▐.☺à‼↕☺Γ.☺à‼↕☺▐.☺♦◘↕ 00007960 01 DE 00 01 85 13 12 01 E2 00 01 85 13 12 01 DE 00 01 04 08 12 01 DE 00 02 85 13 12 01 E2 00 02 ☺▐.☺à‼↕☺Γ.☺à‼↕☺▐.☺♦◘↕☺▐.☻à‼↕☺Γ.☻ 00007980 85 13 12 01 DE 00 01 04 08 12 01 DE 00 02 85 13 12 01 E2 00 02 85 13 12 01 DE 00 01 04 08 12 01 à‼↕☺▐.☺♦◘↕☺▐.☻à‼↕☺Γ.☻à‼↕☺▐.☺♦◘↕☺ 000079A0 DE 00 01 85 13 12 01 E2 00 01 85 13 12 01 DE 00 01 04 08 12 01 DE 00 01 85 13 12 01 03 0F 00 08 ▐.☺à‼↕☺Γ.☺à‼↕☺▐.☺♦◘↕☺▐.☺à‼↕☺♥☼.◘ 000079C0 01 18 01 00 13 00 00 18 01 19 01 B8 6C 00 C0 01 00 A7 00 BB 0A 00 0A 00 0A 00 0A 00 09 00 09 00 ☺↑☺.‼..↑☺↓☺╕l.└☺.º.╗◙.◙.◙.◙.○.○. 000079E0 BE 08 00 02 C5 02 A1 0B FE 1F 00 00 03 10 00 08 01 18 01 00 01 02 00 00 01 11 00 00 01 01 00 28 ╛◘.☻┼☻í♂■▼..♥►.◘☺↑☺.☺☻..☺◄..☺☺.( 00007A00 96 0C 00 00 97 0C 00 00 A2 0C 00 00 C6 0C 00 00 C7 0C 00 00 D3 0C 00 00 F7 0C 00 00 F8 0C 00 00 û♀..ù♀..ó♀..╞♀..╟♀..╙♀..≈♀..°♀.. 00007A20 1B 0D 00 00 AC 0D 00 00 D7 0D 00 00 A3 0F 00 00 23 11 00 00 61 12 00 00 8D 12 00 00 9E 14 00 00 ←♪..¼♪..╫♪..ú☼..#◄..a↕..ì↕..₧¶.. 00007A40 4B 17 00 00 F5 18 00 00 59 1B 00 00 7C 1B 00 00 DE 1C 00 00 A4 1E 00 00 D1 1E 00 00 EF 20 00 00 K↨..⌡↑..Y←..|←..▐∟..ñ▲..╤▲..∩ .. 00007A60 3D 22 00 00 5B 22 00 00 3A 24 00 00 F9 26 00 00 12 27 00 00 94 28 00 00 94 2B 00 00 BE 2E 00 00 ="..["..:$..∙&..↕'..ö(..ö+..╛... 00007A80 B3 2F 00 00 19 31 00 00 44 31 00 00 63 33 00 00 60 34 00 00 7B 34 00 00 CF 35 00 00 EB 35 00 00 │/..↓1..D1..c3..`4..{4..╧5..δ5.. 00007AA0 82 38 00 00 EC 00 01 85 13 12 01 E8 00 01 04 08 12 01 E8 00 01 85 13 12 01 EC 00 01 85 13 12 01 é8..∞.☺à‼↕☺Φ.☺♦◘↕☺Φ.☺à‼↕☺∞.☺à‼↕☺ 00007AC0 E8 00 01 04 08 12 01 E8 00 01 85 13 12 01 EC 00 01 85 13 12 01 E6 00 01 90 24 D8 00 E4 00 02 90 Φ.☺♦◘↕☺Φ.☺à‼↕☺∞.☺à‼↕☺µ.☺É$╪.Σ.☻É 00007AE0 24 12 01 E2 00 01 90 24 50 01 E4 00 06 90 24 12 01 E4 00 05 90 24 12 01 E4 00 04 90 24 12 01 E2 $↕☺Γ.☺É$P☺Σ.♠É$↕☺Σ.♣É$↕☺Σ.♦É$↕☺Γ 00007B00 00 01 90 24 50 01 E4 00 07 90 24 12 01 E4 00 09 90 24 12 01 E4 00 05 90 24 12 01 E4 00 08 90 24 .☺É$P☺Σ.•É$↕☺Σ.○É$↕☺Σ.♣É$↕☺Σ.◘É$ 00007B20 12 01 E2 00 01 90 24 50 01 E4 00 05 90 24 12 01 E4 00 06 90 24 12 01 E2 00 01 90 24 50 01 E4 00 ↕☺Γ.☺É$P☺Σ.♣É$↕☺Σ.♠É$↕☺Γ.☺É$P☺Σ. 00007B40 07 90 24 12 01 E4 00 04 90 24 12 01 E2 00 01 90 24 50 01 E4 00 06 90 24 12 01 E4 00 09 90 24 12 •É$↕☺Σ.♦É$↕☺Γ.☺É$P☺Σ.♠É$↕☺Σ.○É$↕ 00007B60 01 E2 00 01 90 24 50 01 E4 00 05 90 24 12 01 E4 00 09 90 24 12 01 E4 00 0A 90 24 12 01 E4 00 03 ☺Γ.☺É$P☺Σ.♣É$↕☺Σ.○É$↕☺Σ.◙É$↕☺Σ.♥ 00007B80 90 24 12 01 E4 00 05 90 24 12 01 E2 00 01 90 24 50 01 E4 00 07 90 24 12 01 E4 00 03 90 24 12 01 É$↕☺Σ.♣É$↕☺Γ.☺É$P☺Σ.•É$↕☺Σ.♥É$↕☺ 00007BA0 E2 00 01 90 24 50 01 E4 00 04 90 24 12 01 E2 00 01 90 24 50 01 E4 00 08 90 24 12 01 00 00 00 00 Γ.☺É$P☺Σ.♦É$↕☺Γ.☺É$P☺Σ.◘É$↕☺.... 00007BC0 00 00 00 00 01 02 00 00 01 11 00 00 01 12 00 00 03 0F 00 08 01 18 01 00 13 00 00 18 01 19 01 B8 ....☺☻..☺◄..☺↕..♥☼.◘☺↑☺.‼..↑☺↓☺╕ 00007BE0 6C 00 C0 01 00 A7 00 BB 0A 00 0A 00 0A 00 0A 00 09 00 09 00 BE 08 00 02 C5 02 A1 0B FE 1F 00 28 l.└☺.º.╗◙.◙.◙.◙.○.○.╛◘.☻┼☻í♂■▼.( 00007C00 82 38 00 00 93 3B 00 00 87 3D 00 00 A6 3D 00 00 A4 3F 00 00 60 42 00 00 7C 43 00 00 96 43 00 00 é8..ô;..ç=..ª=..ñ?..`B..|C..ûC.. 00007C20 E5 45 00 00 E1 4A 00 00 95 4F 00 00 B7 4F 00 00 F9 50 00 00 9D 53 00 00 AE 55 00 00 7B 56 00 00 σE..ßJ..òO..╖O..∙P..¥S..«U..{V.. 00007C40 A2 56 00 00 E3 58 00 00 9D 5A 00 00 59 5C 00 00 79 5F 00 00 7A 5F 00 00 A0 5F 00 00 6F 61 00 00 óV..πX..¥Z..Y\..y_..z_..á_..oa.. 00007C60 1B 63 00 00 55 63 00 00 65 63 00 00 7B 63 00 00 A9 63 00 00 C6 63 00 00 CE 63 00 00 D6 63 00 00 ←c..Uc..ec..{c..⌐c..╞c..╬c..╓c.. 00007C80 E8 63 00 00 00 64 00 00 11 64 00 00 12 64 00 00 8C 65 00 00 7D 67 00 00 97 69 00 00 D7 69 00 00 Φc...d..◄d..↕d..îe..}g..ùi..╫i.. 00007CA0 13 6A 00 00 23 6A 00 00 39 6A 00 00 67 6A 00 00 84 6A 00 00 FE 00 0A 90 24 12 01 FE 00 06 90 24 ‼j..#j..9j..gj..äj..■.◙É$↕☺■.♠É$ 00007CC0 12 01 FC 00 01 90 24 50 01 FE 00 06 90 24 12 01 FE 00 09 90 24 12 01 FE 00 04 90 24 12 01 FC 00 ↕☺ⁿ.☺É$P☺■.♠É$↕☺■.○É$↕☺■.♦É$↕☺ⁿ. 00007CE0 01 90 24 50 01 FE 00 07 90 24 12 01 FE 00 0F 90 24 12 01 FE 00 0E 90 24 12 01 FC 00 01 90 24 50 ☺É$P☺■.•É$↕☺■.☼É$↕☺■.♫É$↕☺ⁿ.☺É$P 00007D00 01 FE 00 04 90 24 12 01 FE 00 08 90 24 12 01 FE 00 07 90 24 12 01 FE 00 03 90 24 12 01 FC 00 01 ☺■.♦É$↕☺■.◘É$↕☺■.•É$↕☺■.♥É$↕☺ⁿ.☺ 00007D20 90 24 50 01 FE 00 07 90 24 12 01 FE 00 06 90 24 12 01 FE 00 06 90 24 12 01 FE 00 0A 90 24 12 01 É$P☺■.•É$↕☺■.♠É$↕☺■.♠É$↕☺■.◙É$↕☺ 00007D40 FE 00 01 90 24 12 01 FA 00 00 00 00 00 00 FE 00 06 90 24 12 01 FE 00 05 90 24 12 01 FC 00 01 90 ■.☺É$↕☺·......■.♠É$↕☺■.♣É$↕☺ⁿ.☺É 00007D60 24 50 01 F8 00 01 90 24 0A 01 F6 00 01 90 24 12 01 F6 00 01 90 24 12 01 F6 00 01 90 24 12 01 F6 $P☺°.☺É$◙☺÷.☺É$↕☺÷.☺É$↕☺÷.☺É$↕☺÷ 00007D80 00 01 90 24 12 01 F6 00 01 90 24 12 01 F6 00 01 90 24 12 01 F6 00 01 90 24 12 01 F6 00 01 90 24 .☺É$↕☺÷.☺É$↕☺÷.☺É$↕☺÷.☺É$↕☺÷.☺É$ 00007DA0 12 01 F6 00 01 90 24 12 01 FE 00 05 90 24 12 01 FE 00 06 90 24 12 01 FE 00 07 90 24 12 01 FE 00 ↕☺÷.☺É$↕☺■.♣É$↕☺■.♠É$↕☺■.•É$↕☺■. 00007DC0 01 90 24 12 01 FC 00 01 90 24 50 01 F8 00 01 90 24 0A 01 F6 00 01 90 24 12 01 F6 00 01 90 24 12 ☺É$↕☺ⁿ.☺É$P☺°.☺É$◙☺÷.☺É$↕☺÷.☺É$↕ 00007DE0 01 F6 00 01 90 24 12 01 00 00 00 00 01 14 00 00 01 13 00 00 01 01 00 00 01 02 00 00 01 11 00 2C ☺÷.☺É$↕☺....☺¶..☺‼..☺☺..☺☻..☺◄., 00007E00 84 6A 00 00 8C 6A 00 00 94 6A 00 00 A6 6A 00 00 BE 6A 00 00 CF 6A 00 00 D0 6A 00 00 5C 6C 00 00 äj..îj..öj..ªj..╛j..╧j..╨j..\l.. 00007E20 FC 6D 00 00 3C 6E 00 00 76 6E 00 00 86 6E 00 00 A3 6E 00 00 BB 6E 00 00 CC 6E 00 00 CD 6E 00 00 ⁿm..<n..vn..ån..ún..╗n..╠n..═n.. 00007E40 A4 71 00 00 05 73 00 00 B2 74 00 00 F2 74 00 00 F3 74 00 00 FE 00 01 90 24 12 01 FE 00 01 90 24 ñq..♣s..▓t..≥t..≤t..■.☺É$↕☺■.☺É$ 00007E60 12 01 FE 00 01 90 24 12 01 FE 00 01 90 24 12 01 FE 00 01 90 24 12 01 FE 00 01 90 24 12 01 FC 00 ↕☺■.☺É$↕☺■.☺É$↕☺■.☺É$↕☺■.☺É$↕☺ⁿ. 00007E80 05 90 24 12 01 FC 00 06 90 24 12 01 FC 00 01 90 24 12 01 FA 00 01 90 24 50 01 F8 00 01 90 24 0A ♣É$↕☺ⁿ.♠É$↕☺ⁿ.☺É$↕☺·.☺É$P☺°.☺É$◙ 00007EA0 01 FE 00 01 90 24 12 01 FE 00 01 90 24 12 01 FE 00 01 90 24 12 01 FE 00 01 90 24 12 01 FC 00 09 ☺■.☺É$↕☺■.☺É$↕☺■.☺É$↕☺■.☺É$↕☺ⁿ.○ 00007EC0 90 24 12 01 FC 00 05 90 24 12 01 FC 00 06 90 24 12 01 FC 00 01 90 24 12 01 FC 00 01 90 24 12 01 É$↕☺ⁿ.♣É$↕☺ⁿ.♠É$↕☺ⁿ.☺É$↕☺ⁿ.☺É$↕☺ 00007EE0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................ 00007F00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................ 00007F20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................ 00007F40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................ 00007F60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................ 00007F80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................ 00007FA0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................ 00007FC0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................ 00007FE0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 13 00 00 01 02 00 00 01 11 00 00 01 14 00 14 ................☺‼..☺☻..☺◄..☺¶.¶ 00008000 0E 00 15 00 08 00 01 00 4B 00 0F 00 00 00 00 00 1A 00 00 40 F1 FF 02 00 1A 00 06 4E 6F 72 6D 61 ♫.§.◘.☺.K.☼.....→..@± ☻.→.♠Norma 00008020 6C 00 02 00 00 00 03 00 61 09 04 00 34 00 01 40 01 00 12 01 34 00 09 48 65 61 64 69 6E 67 20 31 l.☻...♥.a○♦.4.☺@☺.↕☺4.○Heading 1 00008040 00 00 0F 00 01 00 05 02 08 01 15 E0 01 16 E0 01 28 19 08 00 0B 00 56 81 5D 02 00 63 30 00 6B 1C ..☼.☺.♣☻◘☺§α☺▬α☺(↓◘.♂.Vü]☻.c0.k∟ 00008060 00 00 28 00 02 40 01 00 12 01 28 00 09 48 65 61 64 69 6E 67 20 32 00 00 0A 00 02 00 08 01 15 78 ..(.☻@☺.↕☺(.○Heading 2..◙.☻.◘☺§x 00008080 00 16 F0 00 06 00 5D 02 00 63 1C 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 22 00 41 40 F2 FF .▬≡.♠.]☻.c∟...............".A@≥ 000080A0 A1 00 22 00 16 44 65 66 61 75 6C 74 20 50 61 72 61 67 72 61 70 68 20 46 6F 6E 74 00 00 00 00 00 í.".▬Default Paragraph Font..... 000080C0 00 00 00 00 00 00 20 00 FE 4F 01 00 F2 00 20 00 09 54 61 62 6C 65 54 65 78 74 00 00 02 00 0F 00 ...... .■O☺.≥. .○TableText..☻.☼. 000080E0 06 00 5D 03 00 63 16 00 2A 00 FE 4F 01 00 02 01 2A 00 11 53 74 72 75 63 54 61 62 6C 65 48 65 61 ♠.]♥.c▬.*.■O☺.☻☺*.◄StrucTableHea 00008100 64 69 6E 67 00 00 02 00 10 00 08 00 55 81 5D 03 00 63 16 00 24 00 FE 4F 01 00 12 01 24 00 08 41 ding..☻.►.◘.Uü]♥.c▬.$.■O☺.↕☺$.◘A 00008120 62 4E 6F 72 6D 61 6C 00 08 00 11 00 11 D0 02 16 DC 00 06 00 5D 03 00 63 16 00 2A 00 22 40 01 00 bNormal.◘.◄.◄╨☻▬▄.♠.]♥.c▬.*."@☺. 00008140 02 00 2A 00 07 43 61 70 74 69 6F 6E 00 00 0B 00 12 00 11 D0 02 15 78 00 16 78 00 00 08 00 55 81 ☻.*.•Caption..♂.↕.◄╨☻§x.▬x..◘.Uü 00008160 5D 03 00 63 12 00 22 00 FE 4F 11 01 32 01 22 00 09 4C 69 73 74 54 69 74 6C 65 00 00 05 00 13 00 ]♥.c↕.".■O◄☺2☺".○ListTitle..♣.‼. 00008180 16 00 00 00 04 00 55 81 56 81 2C 00 FE 4F 01 00 42 01 2C 00 11 53 69 6E 67 6C 65 53 70 61 63 65 ▬...♦.UüVü,.■O☺.B☺,.◄SingleSpace 000081A0 49 6E 64 65 6E 74 00 00 05 00 14 00 11 38 04 00 06 00 5D 03 00 63 16 00 00 00 00 00 F3 71 00 00 Indent..♣.¶.◄8♦.♠.]♥.c▬.....≤q.. 000081C0 04 00 F3 74 00 00 00 00 FF FF FF FF 0C 00 04 21 FF FF 01 00 00 21 FF FF 02 00 04 20 FF FF 03 00 ♦.≤t.... ♀.♦! ☺..! ☻.♦ ♥. 000081E0 00 21 FF FF 04 00 04 20 FF FF 05 00 00 20 FF FF 06 00 04 20 FF FF 07 00 00 20 FF FF 08 00 04 20 .! ♦.♦ ♣.. ♠.♦ •.. ◘.♦ 00008200 FF FF 09 00 00 21 FF FF 0A 00 04 20 FF FF 0B 00 00 20 FF FF 0C 00 00 00 00 00 2C 07 00 00 DB 10 ○..! ◙.♦ ♂.. ♀.....,•..█► 00008220 00 00 A4 1B 00 00 35 27 00 00 CF 32 00 00 60 3F 00 00 95 4C 00 00 42 58 00 00 7B 5C 00 00 73 65 ..ñ←..5'..╧2..`?..òL..BX..{\..se 00008240 00 00 D1 6D 00 00 F3 71 00 00 00 00 99 01 00 00 01 00 C3 00 00 00 02 00 4B 02 00 00 03 00 5F 01 ..╤m..≤q....Ö☺..☺.├...☻.K☻..♥._☺ 00008260 00 00 04 00 1C 00 00 00 05 00 1C 01 00 00 06 00 22 00 00 00 07 00 17 01 00 00 08 00 25 00 00 00 ..♦.∟...♣.∟☺..♠."...•.↨☺..◘.%... 00008280 09 00 24 01 00 00 0A 00 D3 00 00 00 0B 00 00 00 00 00 00 00 00 00 17 00 00 00 D0 00 00 00 0F 02 ○.$☺..◙.╙...♂.........↨...╨...☼☻ 000082A0 00 00 31 02 00 00 19 04 00 00 D4 05 00 00 EC 05 00 00 2C 07 00 00 3A 07 00 00 60 07 00 00 9A 07 ..1☻..↓♦..╘♣..∞♣..,•..:•..`•..Ü• 000082C0 00 00 D7 07 00 00 0C 08 00 00 4C 08 00 00 7C 08 00 00 C6 08 00 00 20 09 00 00 5B 09 00 00 97 09 ..╫•..♀◘..L◘..|◘..╞◘.. ○..[○..ù○ 000082E0 00 00 C7 09 00 00 F8 09 00 00 1B 0A 00 00 AC 0A 00 00 D7 0A 00 00 A3 0C 00 00 23 0E 00 00 61 0F ..╟○..°○..←◙..¼◙..╫◙..ú♀..#♫..a☼ 00008300 00 00 8D 0F 00 00 9E 11 00 00 4B 14 00 00 F5 15 00 00 59 18 00 00 7C 18 00 00 DE 19 00 00 A4 1B ..ì☼..₧◄..K¶..⌡§..Y↑..|↑..▐↓..ñ← 00008320 00 00 D1 1B 00 00 EF 1D 00 00 3D 1F 00 00 5B 1F 00 00 3A 21 00 00 F9 23 00 00 12 24 00 00 94 25 ..╤←..∩↔..=▼..[▼..:!..∙#..↕$..ö% 00008340 00 00 94 28 00 00 BE 2B 00 00 B3 2C 00 00 19 2E 00 00 44 2E 00 00 63 30 00 00 60 31 00 00 7B 31 ..ö(..╛+..│,..↓...D...c0..`1..{1 00008360 00 00 CF 32 00 00 EB 32 00 00 82 35 00 00 93 38 00 00 87 3A 00 00 A6 3A 00 00 A4 3C 00 00 60 3F ..╧2..δ2..é5..ô8..ç:..ª:..ñ<..`? 00008380 00 00 7C 40 00 00 96 40 00 00 E5 42 00 00 E1 47 00 00 95 4C 00 00 B7 4C 00 00 F9 4D 00 00 9D 50 ..|@..û@..σB..ßG..òL..╖L..∙M..¥P 000083A0 00 00 AE 52 00 00 7B 53 00 00 A2 53 00 00 E3 55 00 00 9D 57 00 00 59 59 00 00 F3 71 00 00 06 00 ..«R..{S..óS..πU..¥W..YY..≤q..♠. 000083C0 01 00 9E 00 40 00 9E 00 40 00 16 00 02 00 9E 00 40 00 9E 00 40 00 16 00 02 00 9E 00 40 00 9F 00 ☺.₧.@.₧.@.▬.☻.₧.@.₧.@.▬.☻.₧.@.ƒ. 000083E0 27 00 9F 00 24 00 9F 00 24 00 9F 00 24 00 9F 00 24 00 9F 00 24 00 9F 00 24 00 9F 00 24 00 9F 00 '.ƒ.$.ƒ.$.ƒ.$.ƒ.$.ƒ.$.ƒ.$.ƒ.$.ƒ. 00008400 24 00 9F 00 24 00 9F 00 24 00 9F 00 24 00 9F 00 24 00 9E 00 4E 00 9E 00 40 00 16 00 02 00 9E 00 $.ƒ.$.ƒ.$.ƒ.$.ƒ.$.₧.N.₧.@.▬.☻.₧. 00008420 40 00 9E 00 40 00 9E 00 40 00 16 00 02 00 9E 00 40 00 9E 00 40 00 9E 00 40 00 9E 00 40 00 16 00 @.₧.@.₧.@.▬.☻.₧.@.₧.@.₧.@.₧.@.▬. 00008440 02 00 9E 00 40 00 9E 00 40 00 16 00 02 00 9E 00 40 00 9E 00 40 00 16 00 02 00 9E 00 40 00 9E 00 ☻.₧.@.₧.@.▬.☻.₧.@.₧.@.▬.☻.₧.@.₧. 00008460 40 00 16 00 02 00 9E 00 40 00 9E 00 40 00 9E 00 40 00 9E 00 40 00 9E 00 40 00 16 00 02 00 9E 00 @.▬.☻.₧.@.₧.@.₧.@.₧.@.₧.@.▬.☻.₧. 00008480 40 00 9E 00 40 00 16 00 02 00 9E 00 40 00 16 00 02 00 9E 00 40 00 9E 00 40 00 9E 00 40 00 16 00 @.₧.@.▬.☻.₧.@.▬.☻.₧.@.₧.@.₧.@.▬. 000084A0 02 00 9E 00 40 00 9E 00 40 00 9E 00 40 00 16 00 02 00 9E 00 40 00 9E 00 40 00 9E 00 40 00 16 00 ☻.₧.@.₧.@.₧.@.▬.☻.₧.@.₧.@.₧.@.▬. 000084C0 02 00 9E 00 40 00 9E 00 40 00 9E 00 40 00 9E 00 40 00 16 00 02 00 9E 00 40 00 9E 00 40 00 9E 00 ☻.₧.@.₧.@.₧.@.₧.@.▬.☻.₧.@.₧.@.₧. 000084E0 40 00 06 00 00 00 00 03 00 00 0D 75 00 00 3B 00 00 03 00 00 96 0C 00 00 82 38 00 00 84 6A 00 00 @.♠....♥..♪u..;..♥..û♀..é8..äj.. 00008500 F3 74 00 00 3C 00 3D 00 3E 00 3F 00 FE 09 00 00 17 0A 00 00 19 0A 00 00 F3 71 00 00 13 0C 14 FF ≤t..<.=.>.?.■○..↨◙..↓◙..≤q..‼♀¶ 00008520 95 80 24 02 0D 5F 54 6F 63 33 34 38 38 38 30 35 35 39 0D 5F 54 6F 63 33 35 35 38 39 31 31 37 34 òÇ$☻♪_Toc348880559♪_Toc355891174 00008540 0D 5F 54 6F 63 33 37 30 37 32 30 32 35 39 0D 5F 54 6F 63 33 35 35 38 39 31 31 37 35 0D 5F 54 6F ♪_Toc370720259♪_Toc355891175♪_To 00008560 63 33 37 30 37 32 30 32 36 30 0D 5F 54 6F 63 33 35 35 38 39 31 31 37 36 0D 5F 54 6F 63 33 37 30 c370720260♪_Toc355891176♪_Toc370 00008580 37 32 30 32 36 31 0D 5F 54 6F 63 33 35 35 38 39 31 31 37 37 0D 5F 54 6F 63 33 37 30 37 32 30 32 720261♪_Toc355891177♪_Toc3707202 000085A0 36 32 0D 5F 54 6F 63 33 35 35 38 39 31 31 37 38 0D 5F 54 6F 63 33 37 30 37 32 30 32 36 33 0D 5F 62♪_Toc355891178♪_Toc370720263♪_ 000085C0 54 6F 63 33 37 30 37 32 30 32 36 34 0D 5F 54 6F 63 33 37 30 37 32 30 32 36 35 0D 5F 54 6F 63 33 Toc370720264♪_Toc370720265♪_Toc3 000085E0 35 35 38 39 31 31 37 39 0D 5F 54 6F 63 33 37 30 37 32 30 32 36 36 0D 5F 54 6F 63 33 35 35 38 39 55891179♪_Toc370720266♪_Toc35589 00008600 31 31 38 30 0D 5F 54 6F 63 33 37 30 37 32 30 32 36 37 0D 5F 54 6F 63 33 35 35 38 39 31 31 38 31 1180♪_Toc370720267♪_Toc355891181 00008620 0D 5F 54 6F 63 33 37 30 37 32 30 32 36 38 0D 5F 54 6F 63 33 35 35 38 39 31 31 38 32 0D 5F 54 6F ♪_Toc370720268♪_Toc355891182♪_To 00008640 63 33 37 30 37 32 30 32 36 39 0D 5F 54 6F 63 33 35 35 38 39 31 31 38 33 0D 5F 54 6F 63 33 37 30 c370720269♪_Toc355891183♪_Toc370 00008660 37 32 30 32 37 30 0D 5F 54 6F 63 33 35 35 38 39 31 31 38 34 0D 5F 54 6F 63 33 37 30 37 32 30 32 720270♪_Toc355891184♪_Toc3707202 00008680 37 31 0D 5F 54 6F 63 33 35 35 38 39 31 31 38 35 0D 5F 54 6F 63 33 37 30 37 32 30 32 37 32 0D 5F 71♪_Toc355891185♪_Toc370720272♪_ 000086A0 54 6F 63 33 34 38 38 38 30 35 36 30 0D 5F 54 6F 63 33 35 35 38 39 31 31 38 36 0D 5F 54 6F 63 33 Toc348880560♪_Toc355891186♪_Toc3 000086C0 37 30 37 32 30 32 37 33 0D 5F 54 6F 63 33 34 38 39 30 31 37 35 30 0D 5F 54 6F 63 33 35 35 38 39 70720273♪_Toc348901750♪_Toc35589 000086E0 31 32 31 39 0D 5F 54 6F 63 33 37 31 33 39 31 30 38 34 0D 5F 54 6F 63 33 34 38 39 30 31 37 35 31 1219♪_Toc371391084♪_Toc348901751 00008700 0D 5F 54 6F 63 33 35 35 38 39 31 32 32 30 0D 5F 54 6F 63 33 37 31 33 39 31 30 38 35 0D 5F 54 6F ♪_Toc355891220♪_Toc371391085♪_To 00008720 63 33 34 38 39 30 31 37 35 32 0D 5F 54 6F 63 33 35 35 38 39 31 32 32 31 0D 5F 54 6F 63 33 37 31 c348901752♪_Toc355891221♪_Toc371 00008740 33 39 31 30 38 36 17 00 00 00 0F 02 00 00 0F 02 00 00 D4 05 00 00 D4 05 00 00 AC 0A 00 00 AC 0A 391086↨...☼☻..☼☻..╘♣..╘♣..¼◙..¼◙ 00008760 00 00 61 0F 00 00 61 0F 00 00 59 18 00 00 59 18 00 00 A4 1B 00 00 3D 1F 00 00 F9 23 00 00 F9 23 ..a☼..a☼..Y↑..Y↑..ñ←..=▼..∙#..∙# 00008780 00 00 19 2E 00 00 19 2E 00 00 60 31 00 00 60 31 00 00 CF 32 00 00 CF 32 00 00 87 3A 00 00 87 3A ..↓...↓...`1..`1..╧2..╧2..ç:..ç: 000087A0 00 00 7C 40 00 00 7C 40 00 00 95 4C 00 00 95 4C 00 00 7B 53 00 00 7B 53 00 00 7B 53 00 00 1B 60 ..|@..|@..òL..òL..{S..{S..{S..←` 000087C0 00 00 1B 60 00 00 1B 60 00 00 D7 66 00 00 D7 66 00 00 D7 66 00 00 FC 6A 00 00 FC 6A 00 00 3C 6B ..←`..←`..╫f..╫f..╫f..ⁿj..ⁿj..<k 000087E0 00 00 F5 71 00 00 08 00 00 00 00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00 04 00 00 00 05 00 ..⌡q..◘.......☺...☻...♥...♦...♣. 00008800 00 00 06 00 00 00 07 00 00 00 0B 00 00 00 09 00 00 00 0A 00 00 00 0C 00 00 00 0D 00 00 00 0E 00 ..♠...•...♂...○...◙...♀...♪...♫. 00008820 00 00 0F 00 00 00 10 00 00 00 11 00 00 00 12 00 00 00 13 00 00 00 14 00 00 00 15 00 00 00 16 00 ..☼...►...◄...↕...‼...¶...§...▬. 00008840 00 00 17 00 00 00 18 00 00 00 19 00 00 00 1A 00 00 00 1B 00 00 00 1C 00 00 00 1D 00 00 00 1E 00 ..↨...↑...↓...→...←...∟...↔...▲. 00008860 00 00 1F 00 00 00 20 00 00 00 21 00 00 00 22 00 00 00 23 00 00 00 24 00 00 00 25 00 00 00 26 00 ..▼... ...!..."...#...$...%...&. 00008880 00 00 30 02 00 00 30 02 00 00 EB 05 00 00 EB 05 00 00 D6 0A 00 00 D6 0A 00 00 8C 0F 00 00 8C 0F ..0☻..0☻..δ♣..δ♣..╓◙..╓◙..î☼..î☼ 000088A0 00 00 59 18 00 00 7B 18 00 00 D0 1B 00 00 5A 1F 00 00 5A 1F 00 00 11 24 00 00 11 24 00 00 43 2E ..Y↑..{↑..╨←..Z▼..Z▼..◄$..◄$..C. 000088C0 00 00 43 2E 00 00 7A 31 00 00 7A 31 00 00 EA 32 00 00 EA 32 00 00 A5 3A 00 00 A5 3A 00 00 95 40 ..C...z1..z1..Ω2..Ω2..Ñ:..Ñ:..ò@ 000088E0 00 00 95 40 00 00 B6 4C 00 00 B6 4C 00 00 A1 53 00 00 A1 53 00 00 A1 53 00 00 54 60 00 00 54 60 ..ò@..╢L..╢L..íS..íS..íS..T`..T` 00008900 00 00 54 60 00 00 12 67 00 00 12 67 00 00 12 67 00 00 75 6B 00 00 75 6B 00 00 75 6B 00 00 F5 71 ..T`..↕g..↕g..↕g..uk..uk..uk..⌡q 00008920 00 00 00 00 00 00 46 05 00 00 4E 05 00 00 FE 09 00 00 1A 0A 00 00 1D 19 00 00 29 19 00 00 7F 1D ......F♣..N♣..■○..→◙..↔↓..)↓..⌂↔ 00008940 00 00 85 1D 00 00 7A 25 00 00 89 25 00 00 1E 27 00 00 28 27 00 00 A5 29 00 00 B6 29 00 00 65 2A ..à↔..z%..ë%..▲'..('..Ñ)..╢)..e* 00008960 00 00 75 2A 00 00 39 2B 00 00 46 2B 00 00 0A 2D 00 00 1C 2D 00 00 39 33 00 00 47 33 00 00 B3 34 ..u*..9+..F+..◙-..∟-..93..G3..│4 00008980 00 00 BC 34 00 00 9F 36 00 00 B1 36 00 00 B6 36 00 00 C9 36 00 00 02 39 00 00 0E 39 00 00 13 39 ..╝4..ƒ6..▒6..╢6..╔6..☻9..♫9..‼9 000089A0 00 00 1D 39 00 00 1B 3A 00 00 27 3A 00 00 26 46 00 00 2E 46 00 00 A0 46 00 00 AC 46 00 00 B1 46 ..↔9..←:..':..&F...F..áF..¼F..▒F 000089C0 00 00 BB 46 00 00 9A 47 00 00 A5 47 00 00 05 4B 00 00 0D 4B 00 00 DE 4B 00 00 EA 4B 00 00 5F 4C ..╗F..ÜG..ÑG..♣K..♪K..▐K..ΩK.._L 000089E0 00 00 67 4C 00 00 6C 4C 00 00 76 4C 00 00 55 4D 00 00 65 4D 00 00 D9 54 00 00 E1 54 00 00 BA 60 ..gL..lL..vL..UM..eM..┘T..ßT..║` 00008A00 00 00 C0 60 00 00 D6 60 00 00 DC 60 00 00 DD 60 00 00 E6 60 00 00 D7 64 00 00 E4 64 00 00 78 67 ..└`..╓`..▄`..▌`..µ`..╫d..Σd..xg 00008A20 00 00 7E 67 00 00 94 67 00 00 9A 67 00 00 9B 67 00 00 A4 67 00 00 8F 6B 00 00 98 6B 00 00 EB 6C ..~g..ög..Üg..¢g..ñg..Åk..ÿk..δl 00008A40 00 00 F7 6C 00 00 C1 6E 00 00 C8 6E 00 00 33 70 00 00 3E 70 00 00 F5 71 00 00 07 00 1C 00 07 00 ..≈l..┴n..╚n..3p..>p..⌡q..•.∟.•. 00008A60 07 00 07 00 1C 00 07 00 1C 00 07 00 1C 00 07 00 1C 00 07 00 1C 00 07 00 1C 00 07 00 1C 00 07 00 •.•.∟.•.∟.•.∟.•.∟.•.∟.•.∟.•.∟.•. 00008A80 1C 00 07 00 1C 00 07 00 1C 00 07 00 1C 00 07 00 1C 00 07 00 1C 00 07 00 1C 00 07 00 1C 00 07 00 ∟.•.∟.•.∟.•.∟.•.∟.•.∟.•.∟.•.∟.•. 00008AA0 1C 00 07 00 1C 00 07 00 1C 00 07 00 1C 00 07 00 1C 00 07 00 1C 00 07 00 1C 00 07 00 1C 00 07 00 ∟.•.∟.•.∟.•.∟.•.∟.•.∟.•.∟.•.∟.•. 00008AC0 1C 00 07 00 1C 00 07 00 1C 00 07 00 1C 00 07 00 1C 00 07 00 1C 00 07 00 1C 00 07 00 1C 00 07 00 ∟.•.∟.•.∟.•.∟.•.∟.•.∟.•.∟.•.∟.•. 00008AE0 1C 00 07 00 1C 00 07 00 1C 00 07 00 1C 00 07 00 1C 00 07 00 3F 00 09 52 6F 62 20 42 61 68 61 6D ∟.•.∟.•.∟.•.∟.•.∟.•.?.○Rob Baham 00008B00 32 5C 5C 53 45 52 56 45 52 5C 41 44 4D 49 4E 5C 64 6F 63 73 5C 4D 47 4C 5C 55 73 69 6E 67 20 74 2\\SERVER\ADMIN\docs\MGL\Using t 00008B20 68 65 20 53 75 70 65 72 56 47 41 20 4B 69 74 2E 64 6F 63 FF 40 48 50 20 4C 61 73 65 72 4A 65 74 he SuperVGA Kit.doc @HP LaserJet 00008B40 20 34 4D 20 50 6C 75 73 00 5C 5C 48 50 5F 4E 65 74 77 6F 72 6B 5F 50 72 69 6E 74 65 72 73 5C 48 4M Plus.\\HP_Network_Printers\H 00008B60 50 4C 41 53 45 52 34 4D 00 48 50 50 43 4C 35 4D 53 00 48 50 20 4C 61 73 65 72 4A 65 74 20 34 4D PLASER4M.HPPCL5MS.HP LaserJet 4M 00008B80 20 50 6C 75 73 00 48 50 20 4C 61 73 65 72 4A 65 74 20 34 4D 20 50 6C 75 73 00 00 00 00 00 00 00 Plus.HP LaserJet 4M Plus....... 00008BA0 00 00 00 00 00 00 00 04 01 04 94 00 40 00 03 67 00 06 01 00 01 00 00 00 00 00 00 00 01 00 09 01 .......♦☺♦ö.@.♥g.♠☺.☺.......☺.○☺ 00008BC0 58 02 01 00 01 00 58 02 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 X☻☺.☺.X☻♦....................... 00008BE0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................ 00008C00 00 00 00 00 00 00 00 00 00 00 06 01 00 00 02 00 00 00 00 00 00 00 00 00 00 00 01 00 40 00 4D 53 ..........♠☺..☻...........☺.@.MS 00008C20 55 44 4E 03 48 50 20 4C 61 73 65 72 4A 65 74 20 34 4D 20 50 6C 75 73 00 00 00 00 00 00 00 00 00 UDN♥HP LaserJet 4M Plus......... 00008C40 00 00 00 00 E4 01 00 00 00 00 00 00 3B 01 00 00 00 00 04 00 64 00 0A 00 00 00 48 50 20 4C 61 73 ....Σ☺......;☺....♦.d.◙...HP Las 00008C60 65 72 4A 65 74 20 34 4D 20 50 6C 75 73 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 01 04 94 00 erJet 4M Plus..............♦☺♦ö. 00008C80 40 00 03 67 00 06 01 00 01 00 00 00 00 00 00 00 01 00 09 01 58 02 01 00 01 00 58 02 04 00 00 00 @.♥g.♠☺.☺.......☺.○☺X☻☺.☺.X☻♦... 00008CA0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................ 00008CC0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 06 01 ..............................♠☺ 00008CE0 00 00 02 00 00 00 00 00 00 00 00 00 00 00 01 00 40 00 4D 53 55 44 4E 03 48 50 20 4C 61 73 65 72 ..☻...........☺.@.MSUDN♥HP Laser 00008D00 4A 65 74 20 34 4D 20 50 6C 75 73 00 00 00 00 00 00 00 00 00 00 00 00 00 E4 01 00 00 00 00 00 00 Jet 4M Plus.............Σ☺...... 00008D20 3B 01 00 00 00 00 04 00 64 00 0A 00 00 00 03 80 01 00 00 00 00 00 00 00 00 00 07 00 01 00 7D 01 ;☺....♦.d.◙...♥Ç☺.........•.☺.}☺ 00008D40 00 00 00 00 00 00 00 00 00 00 00 00 44 00 15 16 90 01 00 00 54 69 6D 65 73 20 4E 65 77 20 52 6F ............D.§▬É☺..Times New Ro 00008D60 6D 61 6E 00 0C 16 90 01 02 00 53 79 6D 62 6F 6C 00 0B 26 90 01 00 00 41 72 69 61 6C 00 12 16 90 man.♀▬É☺☻.Symbol.♂&É☺..Arial.↕▬É 00008D80 01 00 00 42 6F 6F 6B 20 41 6E 74 69 71 75 61 00 22 00 04 00 31 08 80 18 00 00 D0 02 00 00 68 01 ☺..Book Antiqua.".♦.1◘Ç↑..╨☻..h☺ 00008DA0 00 00 00 00 8A FA 0A 86 E5 33 0B 66 00 00 00 00 04 00 02 00 00 00 7B 10 00 00 F5 5D 00 00 0C 00 ....è·◙åσ3♂f....♦.☻...{►..⌡]..♀. 00008DC0 30 00 00 00 04 00 83 10 C8 00 00 00 00 00 00 00 00 00 00 00 0C 00 01 00 00 00 01 00 00 00 00 00 0...♦.â►╚...........♀.☺...☺..... 00008DE0 00 00 21 03 00 00 00 00 3C 00 00 00 16 55 73 69 6E 67 20 74 68 65 20 53 75 70 65 72 56 47 41 20 ..!♥....<...▬Using the SuperVGA 00008E00 4B 69 74 00 00 00 09 52 6F 62 20 42 61 68 61 6D 09 52 6F 62 20 42 61 68 61 6D 00 00 00 00 00 00 Kit...○Rob Baham○Rob Baham...... 00008E20 00 00 00 00 ....