]> 4ch.mooo.com Git - 16.git/blob - 16/tauron/ASM_SRC/CLEAR.ASM
added another library ^^
[16.git] / 16 / tauron / ASM_SRC / CLEAR.ASM
1 ;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\r
2 ;=-                                                                         -=\r
3 ;=-                   Tauron VGA Utilities Version 3.0                      -=\r
4 ;=-                      Released September 20, 1998                        -=\r
5 ;=-                                                                         -=\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
15 ;=- source code.                                                            -=\r
16 ;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\r
17 \r
18 TEXTCLEAR PROC\r
19    PUSH BP\r
20    MOV BP,SP\r
21 \r
22    MOV AX,0B800H\r
23    MOV ES,AX\r
24    XOR DI,DI\r
25 \r
26    MOV AH,byte ptr [bp+4]\r
27    MOV AL,' '\r
28    MOV CX,Mode.width_bytes\r
29    CLD\r
30    REP STOSW\r
31 \r
32    POP BP\r
33    RET 2\r
34 TEXTCLEAR ENDP\r
35 \r
36 ;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\r
37 \r
38 CLEAR_B8000H PROC\r
39    PUSH BP\r
40    MOV BP,SP\r
41    PUSHA\r
42 \r
43    MOV AX,0B800H\r
44    MOV ES,AX\r
45    XOR DI,DI\r
46 \r
47    MOV AX,WORD PTR [BP+4]\r
48    CLD\r
49    MOV CX,Mode.width_bytes\r
50    REP STOSW\r
51 \r
52    POPA\r
53    POP BP\r
54    RET 2\r
55 CLEAR_B8000H ENDP\r
56 \r
57 ;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\r
58 ; Mode 0Dh clear screen\r
59 CLEAR0DH PROC\r
60    PUSH BP\r
61    MOV BP,SP\r
62 \r
63    MOV AX,0A000H\r
64    MOV ES,AX\r
65    XOR DI,DI\r
66 \r
67    MOV CX,2000H\r
68 CLEAR_LOOP:\r
69    MOV DX,03CEH\r
70    MOV AX,0FF08H\r
71    OUT DX,AX\r
72 \r
73    MOV EAX,0\r
74    XCHG DWORD PTR ES:[DI],EAX\r
75 \r
76    MOV DX,03C4H\r
77    MOV AH,BYTE PTR [BP+4]\r
78    MOV AL,2\r
79    OUT DX,AX\r
80 \r
81    MOV DWORD PTR ES:[DI],0FFFFFFFFH\r
82 \r
83    MOV AX,0F02H\r
84    OUT DX,AX\r
85 \r
86    MOV DX,03CEH\r
87    MOV AX,0FF08h\r
88    OUT DX,AX\r
89 \r
90    ADD DI,4\r
91    LOOP CLEAR_LOOP\r
92 \r
93    POP BP\r
94    RET 2\r
95 CLEAR0DH ENDP\r
96 \r
97 ;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\r
98 ; Mode 0Eh clear screen\r
99 CLEAR0EH PROC\r
100    PUSH BP\r
101    MOV BP,SP\r
102 \r
103    MOV AX,0A000H\r
104    MOV ES,AX\r
105    XOR DI,DI\r
106 \r
107    MOV CX,4000H\r
108 CLEAR_LOOP2:\r
109    MOV DX,03CEH\r
110    MOV AX,0FF08H\r
111    OUT DX,AX\r
112 \r
113    MOV EAX,0\r
114    XCHG DWORD PTR ES:[DI],EAX\r
115 \r
116    MOV DX,03C4H\r
117    MOV AH,BYTE PTR [BP+4]\r
118    MOV AL,2\r
119    OUT DX,AX\r
120 \r
121    MOV DWORD PTR ES:[DI],0FFFFFFFFH\r
122 \r
123    MOV AX,0F02H\r
124    OUT DX,AX\r
125 \r
126    MOV DX,03CEH\r
127    MOV AX,0FF08h\r
128    OUT DX,AX\r
129 \r
130    ADD DI,4\r
131    LOOP CLEAR_LOOP2\r
132 \r
133    POP BP\r
134    RET 2\r
135 CLEAR0EH ENDP\r
136 \r
137 ;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\r
138 \r
139 CLEAR11H PROC\r
140    MOV AX,0A000H\r
141    MOV ES,AX\r
142    XOR DI,DI\r
143 \r
144    MOV AX,0FFFFH\r
145    CLD\r
146    MOV CX,4B00H\r
147    REP STOSW\r
148    RET\r
149 CLEAR11H ENDP\r
150 \r
151 ; 0d 0e 11 have bytes /2\r
152 ;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\r
153 \r
154 PLANARCLEAR PROC\r
155    PUSH BP\r
156    MOV BP,SP\r
157 \r
158    MOV AX,0A000H\r
159    MOV ES,AX\r
160    XOR DI,DI\r
161 \r
162    MOV CX,Mode.width_bytes\r
163    SHR CX,1\r
164 CLEAR_LOOP3:\r
165 \r
166    MOV DX,03CEH\r
167    MOV AX,0FF08H\r
168    OUT DX,AX\r
169 \r
170    MOV AX,0\r
171    XCHG WORD PTR ES:[DI],AX\r
172 \r
173    MOV DX,03C4H\r
174    MOV AH,byte ptr [bp+4]\r
175    MOV AL,2\r
176    OUT DX,AX\r
177 \r
178    MOV WORD PTR ES:[DI],0FFFFH\r
179 \r
180    MOV AX,0F02H\r
181    OUT DX,AX\r
182 \r
183    MOV DX,03CEH\r
184    MOV AX,0FF08h\r
185    OUT DX,AX\r
186 \r
187    ADD DI,2\r
188    LOOP CLEAR_LOOP3\r
189 \r
190    POP BP\r
191    RET 2\r
192 PLANARCLEAR ENDP\r
193 \r
194 ;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\r
195 \r
196 CLEAR13H PROC\r
197    PUSH BP\r
198    MOV BP,SP\r
199 \r
200    MOV AX,0A000H\r
201    MOV ES,AX\r
202    XOR DI,DI\r
203 \r
204    MOV AL,byte ptr [bp+4]\r
205    MOV AH,AL\r
206    CLD\r
207    MOV CX,8000H\r
208    REP STOSW\r
209 \r
210    POP BP\r
211    RET 2\r
212 CLEAR13H ENDP\r
213 \r
214 ;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\r
215 \r
216 UNCHAINEDCLEAR PROC\r
217    PUSH BP\r
218    MOV BP,SP\r
219 \r
220    mov   dx, 03C4h         ; 03c4h\r
221    mov   al, 2             ; Map Mask Register\r
222    out   dx, al\r
223    inc   dx\r
224    mov   al,00001111B      ; Select all planes to write to\r
225    out   dx, al            ; Doing this to clear all planes at once\r
226 \r
227    mov   ax,0A000H\r
228    mov   es, ax\r
229    XOR DI,DI               ; set es:di = Screen Mem\r
230    mov ah,byte ptr [bp+4]  ; move the color into ah\r
231    mov al,ah               ; copy the value to al\r
232    mov cx,Mode.width_bytes ; Number of words\r
233    SHR CX,1\r
234    cld\r
235    rep   stosw             ; clear it\r
236 \r
237    POP BP\r
238    RET 2\r
239 UNCHAINEDCLEAR ENDP\r
240 \r
241 ;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\r