1 ;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
\r
3 ;=- Tauron VGA Utilities Version 3.0 -=
\r
4 ;=- Released September 20, 1998 -=
\r
6 ;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
\r
7 ;=- Copyright (c) 1997, 1998 by Jeff Morgan =-= This code is FREE provided -=
\r
8 ;=- All Rights Reserved. =-= that you put my name some- -=
\r
9 ;=- =-= where in your credits. -=
\r
10 ;=- DISCLAIMER: =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
\r
11 ;=- I assume no responsibility whatsoever for any effect that this package, -=
\r
12 ;=- the information contained therein or the use thereof has on you, your -=
\r
13 ;=- sanity, computer, spouse, children, pets or anything else related to -=
\r
14 ;=- you or your existance. No warranty is provided nor implied with this -=
\r
16 ;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
\r
22 MOV AX,word ptr [BP+4]
\r
23 MOV Mode.videomode, AX
\r
81 MOV SI,OFFSET MODE00H
\r
84 PUSH 16 ; Bytes per character
\r
85 PUSH 0 ; Offset of font in Video Memory
\r
87 PUSH FONT_8x14_OFF ; Offset of Font in BIOS
\r
91 MOV Mode.mode_width,40;
\r
92 MOV Mode.mode_height,25;
\r
93 MOV Mode.width_bytes,1000;
\r
95 MOV Mode.attrib,TVU_TEXT;
\r
99 MOV SI,OFFSET MODE03H
\r
102 PUSH 16 ; Bytes per character
\r
103 PUSH 0 ; Offset of font in Video Memory
\r
105 PUSH FONT_8x14_OFF ; Offset of Font in BIOS
\r
108 ; CALL SETPALETTE16
\r
109 MOV Mode.mode_width,80;
\r
110 MOV Mode.mode_height,25;
\r
111 MOV Mode.width_bytes,2000;
\r
112 MOV Mode.colors,16;
\r
113 MOV Mode.attrib,TVU_TEXT;
\r
117 MOV SI,OFFSET MODE04H
\r
120 MOV Mode.mode_width,320;
\r
121 MOV Mode.mode_height,200;
\r
122 MOV Mode.width_bytes,65535;
\r
124 MOV Mode.attrib,TVU_GRAPHICS;
\r
125 OR Mode.attrib,TVU_B8000_ADDR
\r
129 MOV SI,OFFSET MODE06H
\r
132 MOV Mode.mode_width,640;
\r
133 MOV Mode.mode_height,200;
\r
134 MOV Mode.width_bytes,16384;
\r
136 MOV Mode.attrib,TVU_GRAPHICS;
\r
137 OR Mode.attrib,TVU_B8000_ADDR
\r
138 OR Mode.attrib,TVU_PLANAR
\r
142 MOV SI,OFFSET MODE07H
\r
145 PUSH 16 ; Bytes per character
\r
146 PUSH 0 ; Offset of font in Video Memory
\r
148 PUSH FONT_8x14_OFF ; Offset of Font in BIOS
\r
151 MOV Mode.mode_width,80;
\r
152 MOV Mode.mode_height,25;
\r
153 MOV Mode.width_bytes,2000;
\r
155 MOV Mode.attrib,TVU_TEXT
\r
156 OR Mode.attrib,TVU_MONOCHROME
\r
160 MOV SI,OFFSET MODE0DH
\r
163 MOV Mode.mode_width,320;
\r
164 MOV Mode.mode_height,200;
\r
165 MOV Mode.width_bytes,8000;
\r
166 MOV Mode.colors,16;
\r
167 MOV Mode.attrib,TVU_GRAPHICS;
\r
168 OR Mode.attrib,TVU_PLANAR
\r
172 MOV SI,OFFSET MODE0EH
\r
175 MOV Mode.mode_width,640;
\r
176 MOV Mode.mode_height,200;
\r
177 MOV Mode.width_bytes,16000;
\r
178 MOV Mode.colors,16;
\r
179 MOV Mode.attrib,TVU_GRAPHICS;
\r
180 OR Mode.attrib,TVU_PLANAR
\r
184 MOV SI,OFFSET MODE0FH
\r
186 MOV Mode.mode_width,640;
\r
187 MOV Mode.mode_height,350;
\r
188 MOV Mode.width_bytes,28000;
\r
190 MOV Mode.attrib,TVU_GRAPHICS
\r
191 OR Mode.attrib,TVU_MONOCHROME
\r
195 MOV SI,OFFSET MODE10H
\r
198 MOV Mode.mode_width,640;
\r
199 MOV Mode.mode_height,350;
\r
200 MOV Mode.width_bytes,28000;
\r
201 MOV Mode.colors,16;
\r
202 MOV Mode.attrib,TVU_GRAPHICS;
\r
203 OR Mode.attrib,TVU_PLANAR
\r
207 MOV SI,OFFSET MODE11H
\r
210 MOV Mode.mode_width,640;
\r
211 MOV Mode.mode_height,480;
\r
212 MOV Mode.width_bytes,38400;
\r
214 MOV Mode.attrib,TVU_GRAPHICS;
\r
215 OR Mode.attrib,TVU_PLANAR
\r
219 MOV SI,OFFSET MODE12H
\r
222 MOV Mode.mode_width,640
\r
223 MOV Mode.mode_height,480
\r
224 MOV Mode.width_bytes,38400
\r
226 MOV Mode.attrib,TVU_GRAPHICS
\r
227 OR Mode.attrib,TVU_PLANAR
\r
231 MOV SI,OFFSET MODE13H
\r
234 MOV Mode.mode_width,320;
\r
235 MOV Mode.mode_height,200;
\r
236 MOV Mode.width_bytes,64000;
\r
237 MOV Mode.colors,256;
\r
238 MOV Mode.attrib,TVU_GRAPHICS;
\r
242 MOV SI,OFFSET CHAIN4
\r
245 MOV Mode.mode_width,320;
\r
246 MOV Mode.mode_height,200;
\r
247 MOV Mode.width_bytes,16000;
\r
248 MOV Mode.colors,256;
\r
249 MOV Mode.attrib,TVU_GRAPHICS;
\r
250 OR Mode.attrib,TVU_UNCHAINED
\r
254 MOV SI,OFFSET CHAIN4
\r
263 ; turn off write protect
\r
269 ; overflow register
\r
272 ; vertical retrace start
\r
275 ; vertical retrace end AND wr.prot
\r
278 ; vertical display enable end
\r
281 ; start vertical blanking
\r
284 ; end vertical blanking
\r
289 MOV Mode.mode_width,320;
\r
290 MOV Mode.mode_height,240;
\r
291 MOV Mode.width_bytes,19200;
\r
292 MOV Mode.colors,256;
\r
293 MOV Mode.attrib,TVU_GRAPHICS
\r
294 OR Mode.attrib,TVU_UNCHAINED
\r
298 MOV SI,OFFSET CHAIN4
\r
301 ; turn off double scanning mode
\r
310 ; change the vertical resolution flags to 350
\r
319 ; turn off write protect
\r
325 ; overflow register
\r
328 ; vertical retrace start
\r
331 ; vertical retrace end AND wr.prot
\r
334 ; vertical display enable end
\r
337 ; start vertical blanking
\r
340 ; end vertical blanking
\r
346 MOV Mode.mode_width,320;
\r
347 MOV Mode.mode_height,350;
\r
348 MOV Mode.width_bytes,28000;
\r
349 MOV Mode.colors,256;
\r
350 MOV Mode.attrib,TVU_GRAPHICS
\r
351 OR Mode.attrib,TVU_UNCHAINED
\r
355 MOV SI,OFFSET CHAIN4
\r
358 ; turn off double scanning mode
\r
367 ; change the vertical resolution flags to 400
\r
377 MOV Mode.mode_width,320;
\r
378 MOV Mode.mode_height,400;
\r
379 MOV Mode.width_bytes,32000;
\r
380 MOV Mode.colors,256;
\r
381 MOV Mode.attrib,TVU_GRAPHICS
\r
382 OR Mode.attrib,TVU_UNCHAINED
\r
386 MOV SI,OFFSET CHAIN4
\r
389 ; turn off double scanning mode
\r
398 ; change the vertical resolution flags to 480
\r
407 ; turn off write protect
\r
413 ; overflow register
\r
416 ; vertical retrace start
\r
419 ; vertical retrace end AND wr.prot
\r
422 ; vertical display enable end
\r
425 ; start vertical blanking
\r
428 ; end vertical blanking
\r
434 MOV Mode.mode_width,320;
\r
435 MOV Mode.mode_height,480;
\r
436 MOV Mode.width_bytes,38400;
\r
437 MOV Mode.colors,256;
\r
438 MOV Mode.attrib,TVU_GRAPHICS
\r
439 OR Mode.attrib,TVU_UNCHAINED
\r
443 MOV SI,OFFSET MODE13H
\r
450 ; Activate a synchronous reset
\r
453 ; Select 28 mhz pixel clock
\r
457 ; Release synchronous reset
\r
462 ; change the vertical resolution flags to 400
\r
472 ; turn off write protect
\r
517 MOV Mode.mode_width,360;
\r
518 MOV Mode.mode_height,200;
\r
519 MOV Mode.width_bytes,18000;
\r
520 MOV Mode.colors,256;
\r
521 MOV Mode.attrib,TVU_GRAPHICS
\r
522 OR Mode.attrib,TVU_UNCHAINED
\r
527 MOV SI,OFFSET MODE13H
\r
534 ; Activate a synchronous reset
\r
537 ; Select 28 mhz pixel clock
\r
541 ; Release synchronous reset
\r
546 ; change the vertical resolution flags to 480
\r
556 ; turn off write protect
\r
613 MOV Mode.mode_width,360;
\r
614 MOV Mode.mode_height,240;
\r
615 MOV Mode.width_bytes,21600;
\r
616 MOV Mode.colors,256;
\r
617 MOV Mode.attrib,TVU_GRAPHICS
\r
618 OR Mode.attrib,TVU_UNCHAINED
\r
622 MOV SI,OFFSET MODE13H
\r
629 ; Activate a synchronous reset
\r
632 ; Select 28 mhz pixel clock
\r
636 ; Release synchronous reset
\r
641 ; change the vertical resolution flags to 350
\r
651 ; turn off write protect
\r
708 MOV Mode.mode_width,360;
\r
709 MOV Mode.mode_height,350;
\r
710 MOV Mode.width_bytes,31500;
\r
711 MOV Mode.colors,256;
\r
712 MOV Mode.attrib,TVU_GRAPHICS
\r
713 OR Mode.attrib,TVU_UNCHAINED
\r
717 MOV SI,OFFSET MODE13H
\r
724 ; Activate a synchronous reset
\r
727 ; Select 28 mhz pixel clock
\r
731 ; Release synchronous reset
\r
736 ; change the vertical resolution flags to 400
\r
745 ; turn off write protect
\r
790 MOV Mode.mode_width,360;
\r
791 MOV Mode.mode_height,400;
\r
792 MOV Mode.width_bytes,36000;
\r
793 MOV Mode.colors,256;
\r
794 MOV Mode.attrib,TVU_GRAPHICS
\r
795 OR Mode.attrib,TVU_UNCHAINED
\r
800 MOV SI,OFFSET MODE13H
\r
808 ; Activate a synchronous reset
\r
812 ; Select 28 mhz pixel clock
\r
817 ; Release synchronous reset
\r
822 ; change the vertical resolution flags to 480
\r
832 ; turn off write protect
\r
889 MOV Mode.mode_width,360;
\r
890 MOV Mode.mode_height,480;
\r
891 MOV Mode.width_bytes,43200;
\r
892 MOV Mode.colors,256;
\r
893 MOV Mode.attrib,TVU_GRAPHICS
\r
894 OR Mode.attrib,TVU_UNCHAINED
\r
898 MOV SI,OFFSET MODE10H
\r
931 MOV Mode.mode_width,640;
\r
932 MOV Mode.mode_height,400;
\r
933 MOV Mode.width_bytes,32000;
\r
934 MOV Mode.colors,16;
\r
935 MOV Mode.attrib,TVU_GRAPHICS
\r
936 OR Mode.attrib,TVU_PLANAR
\r
940 MOV SI,OFFSET MODEJ
\r
944 PUSH 8 ; Bytes per character
\r
945 PUSH 0 ; Offset of font in Video Memory
\r
947 PUSH FONT_8x8_OFF ; Offset of Font in BIOS
\r
951 MOV Mode.mode_width,80;
\r
952 MOV Mode.mode_height,43;
\r
953 MOV Mode.width_bytes,3440;
\r
954 MOV Mode.colors,16;
\r
955 MOV Mode.attrib,TVU_TEXT
\r
959 MOV SI,OFFSET MODEK
\r
963 PUSH 8 ; Bytes per character
\r
964 PUSH 0 ; Offset of font in Video Memory
\r
966 PUSH FONT_8x8_OFF ; Offset of Font in BIOS
\r
970 MOV Mode.mode_width,80;
\r
971 MOV Mode.mode_height,50;
\r
972 MOV Mode.width_bytes,4000;
\r
973 MOV Mode.colors,16;
\r
974 MOV Mode.attrib,TVU_TEXT
\r
978 MOV SI,OFFSET MODE_L
\r
982 PUSH 8 ; Bytes per character
\r
983 PUSH 0 ; Offset of font in Video Memory
\r
985 PUSH FONT_8x8_OFF ; Offset of Font in BIOS
\r
989 MOV Mode.mode_width,40;
\r
990 MOV Mode.mode_height,43;
\r
991 MOV Mode.width_bytes,3440;
\r
992 MOV Mode.colors,16;
\r
993 MOV Mode.attrib,TVU_TEXT
\r
997 MOV SI,OFFSET MODEM
\r
1001 PUSH 8 ; Bytes per character
\r
1002 PUSH 0 ; Offset of font in Video Memory
\r
1004 PUSH FONT_8x8_OFF ; Offset of Font in BIOS
\r
1008 MOV Mode.mode_width,40;
\r
1009 MOV Mode.mode_height,50;
\r
1010 MOV Mode.width_bytes,4000;
\r
1011 MOV Mode.colors,16;
\r
1012 MOV Mode.attrib,TVU_TEXT
\r
1020 ;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
\r
1032 MOV DX,STATUS_ADDR
\r
1056 ; Clear Protection bits
\r
1083 ; Send GRAPHICS regs
\r
1086 MOV DX,GRACON_ADDR
\r
1091 MOV DX,GRACON_ADDR
\r
1102 MOV DX,STATUS_ADDR
\r
1106 ; Send ATTRCON regs
\r
1109 MOV DX,ATTRCON_ADDR
\r
1132 ;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
\r
1133 ; Assumes [bp+4] = color
\r
1134 ; Assumes [bp+6] = r value
\r
1135 ; Assumes [bp+8] = g value
\r
1136 ; Assumes [bp+10] = b value
\r
1143 MOV AX,WORD PTR [BP+4]
\r
1150 MOV AL,BYTE PTR [BP+6]
\r
1155 MOV AL,BYTE PTR [BP+8]
\r
1160 MOV AL,BYTE PTR [BP+10]
\r
1168 ;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
\r
1198 ;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
\r
1202 MOV SI,OFFSET PALETTE
\r
1206 PUSH WORD PTR [SI+2]
\r
1207 PUSH WORD PTR [SI+1]
\r
1208 PUSH WORD PTR [SI]
\r
1219 ;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
\r
1221 SETPALETTE256 PROC
\r
1223 MOV SI,OFFSET PALETTE
\r
1227 PUSH WORD PTR [SI+2]
\r
1228 PUSH WORD PTR [SI+1]
\r
1229 PUSH WORD PTR [SI]
\r
1238 SETPALETTE256 ENDP
\r
1240 ;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
\r