Raw File
1 ; _____________________________________________
2 ; | |
3 ; | Project: APPLER |
4 ; | File: DATA.ASM |
5 ; | Compiler: 16-bit TASM (2.5) |
6 ; | |
7 ; | Subject: Global Data |
8 ; | |
9 ; | Author: Alexander Patalenski |
10 ; |_____________________________________________|
11
12 include GLOBALS.INC
13 include INTERFAC.INC
14
15 Startup segment
16 assume CS:Startup,DS:Data,ES:Data,SS:Data
17
18 InitData Proc near
19 push ss
20 pop ds
21 push ss
22 pop es
23 cld
24 call InitTEXTadr
25 call InitHGRadr
26 call InitHGRcol_mask
27 call InitHgrTextAdr
28 call InitHGRchars
29 ret
30 InitData Endp
31
32
33 NotShownAdr = 8000h-4
34
35 InitTEXTadr Proc near
36 mov di,offset TEXTadr
37 xor ax,ax
38
39 mov dh,8
40 InitTEXTadr1: mov dl,3
41 InitTEXTadr2: mov cx,40
42 InitTEXTadr3: stosw
43 add ax,2
44 loop InitTEXTadr3
45
46 add ax,-40*2 + 8*40*2
47 dec dl
48 jnz InitTEXTadr2
49
50 Save ax
51 mov ax,NotShownAdr
52 mov cx,8
53 rep stosw
54 Restore ax
55 add ax,-3*8*40*2 + 40*2
56 dec dh
57 jnz InitTEXTadr1
58
59 ret
60 InitTEXTadr Endp
61
62
63 InitHGRadr Proc near
64 mov di,offset HGRadr
65 mov ax,5
66
67 mov bl,8
68 InitHGRadr1: mov dh,8
69 InitHGRadr2: mov dl,3
70 InitHGRadr3: mov cx,10
71 InitHGRadr4: stosw
72 inc ax
73 stosw
74 add ax,2
75 stosw
76 add ax,2
77 stosw
78 add ax,2
79 loop InitHGRadr4
80
81 add ax,-35*2 + 8*8*40*2
82 dec dl
83 jnz InitHGRadr3
84
85 Save ax
86 mov ax,NotShownAdr
87 mov cx,8
88 rep stosw
89 Restore ax
90 add ax,-3*8*8*40*2 + 8*40*2
91 dec dh
92 jnz InitHGRadr2
93
94 add ax,-8*8*40*2 + 40*2
95 dec bl
96 jnz InitHGRadr1
97
98 ret
99 InitHGRadr Endp
100
101
102 InitHGRmasks dw 0000000000000011b
103 dw 1000000000000001b
104 dw 1111110000000000b
105 dw 1111111000000000b
106 dw 1111000000000000b
107 dw 1111100000000000b
108 dw 1100000000000000b
109 dw 1110000000000000b
110
111 InitHGRcol_mask Proc near
112 mov di,offset HGRcolors
113 mov ax,0000000000000000b
114 InitHGRc_m1: mov dx,1100000000000000b
115 stosw
116 InitHGRc_m2: xor ax,dx
117 test ax,dx
118 jnz InitHGRc_m1
119 shr dx,2
120 test dx,0000000000000011b
121 jz InitHGRc_m2
122
123 mov si,offset HGRcolors
124 mov cx,80h
125 InitHGRc_m3: lodsw
126 shr ax,1
127 stosw
128 loop InitHGRc_m3
129
130 mov si,offset HGRcolors
131 mov cx,2*80h
132 InitHGRc_m4: lodsw
133 rol ax,2
134 xchg al,ah
135 stosw
136 loop InitHGRc_m4
137
138 mov cx,2*2*80h
139 InitHGRc_m5: lodsw
140 rol ax,2
141 stosw
142 loop InitHGRc_m5
143
144 mov si,offset InitHGRmasks
145 mov di,offset HGRmasks
146 mov bl,8
147 InitHGRc_m6: lods InitHGRmasks
148 mov cx,80h
149 rep stosw
150 dec bl
151 jnz InitHGRc_m6
152
153 ret
154 InitHGRcol_mask Endp
155
156
157 InitHgrTextAdr Proc near
158 mov di,offset HgrTextAdr
159 mov ax,4*8*40*2
160
161 mov dh,4
162 InitH_Tadr1: mov dl,3
163 InitH_Tadr2: mov cx,40
164 InitH_Tadr3: stosw
165 add ax,2
166 loop InitH_Tadr3
167
168 add ax,-40*2 + 8*8*40*2
169 dec dl
170 jnz InitH_Tadr2
171
172 Save ax
173 mov ax,NotShownAdr
174 mov cx,8
175 rep stosw
176 Restore ax
177 add ax,-3*8*8*40*2 + 8*40*2
178 dec dh
179 jnz InitH_Tadr1
180
181 ret
182 InitHgrTextAdr Endp
183
184
185 InitHGRchars Proc near
186 mov ax,1130h
187 mov bh,3
188 int 10h
189 xor bx,bx
190 InitHGRchars10: mov ax,bx
191 ror ah,1
192 cwd
193 not dx
194 mov di,dx
195 mov si,TEXTchars[BX]
196 and si,0FFh
197 mov cl,3
198 shl si,cl
199 add si,bp
200 InitHGRchars20: lods byte ptr ES:[SI]
201 mov cx,8
202 InitHGRchars30: shr al,1
203 rcr dx,1
204 sar dx,1
205 loop InitHGRchars30
206 xchg dl,dh
207 xor dx,di
208 mov HGRchars[BX],dx
209 add bh,10b
210 cmp bh,8*10b
211 jb InitHGRchars20
212 add bx,-8*10b*100h+2
213 cmp bx,100h*2
214 jb InitHGRchars10
215 ret
216 InitHGRchars Endp
217
218 Startup ends
219
220 ;===============================================================================
221
222 Data segment stack 'stack'
223
224 even
225 TEXTadr dw 400h dup(0)
226
227 HGRadr dw 2000h dup(0)
228
229 HGRcolors dw 4*100h dup(0)
230 HGRmasks dw 4*100h dup(0)
231
232 HgrTextAdr dw 4*80h dup(0)
233 HGRchars dw 8*100h dup(0)
234
235
236 TEXTchars dw 7040h,7041h,7042h,7043h,7044h,7045h,7046h,7047h ;
237 dw 7048h,7049h,704Ah,704Bh,704Ch,704Dh,704Eh,704Fh ; I
238 dw 7050h,7051h,7052h,7053h,7054h,7055h,7056h,7057h ; N
239 dw 7058h,7059h,705Ah,705Bh,705Ch,705Dh,705Eh,705Fh ; V
240 dw 7020h,7021h,7022h,7023h,7024h,7025h,7026h,7027h ; E
241 dw 7028h,7029h,702Ah,702Bh,702Ch,702Dh,702Eh,702Fh ; R
242 dw 7030h,7031h,7032h,7033h,7034h,7035h,7036h,7037h ; S
243 dw 7038h,7039h,703Ah,703Bh,703Ch,703Dh,703Eh,703Fh ; E
244
245 dw 0F040h,0F041h,0F042h,0F043h,0F044h,0F045h,0F046h,0F047h ;
246 dw 0F048h,0F049h,0F04Ah,0F04Bh,0F04Ch,0F04Dh,0F04Eh,0F04Fh ;
247 dw 0F050h,0F051h,0F052h,0F053h,0F054h,0F055h,0F056h,0F057h ; F
248 dw 0F058h,0F059h,0F05Ah,0F05Bh,0F05Ch,0F05Dh,0F05Eh,0F05Fh ; L
249 dw 0F020h,0F021h,0F022h,0F023h,0F024h,0F025h,0F026h,0F027h ; A
250 dw 0F028h,0F029h,0F02Ah,0F02Bh,0F02Ch,0F02Dh,0F02Eh,0F02Fh ; S
251 dw 0F030h,0F031h,0F032h,0F033h,0F034h,0F035h,0F036h,0F037h ; H
252 dw 0F038h,0F039h,0F03Ah,0F03Bh,0F03Ch,0F03Dh,0F03Eh,0F03Fh ;
253
254 dw 0740h,0741h,0742h,0743h,0744h,0745h,0746h,0747h ; C
255 dw 0748h,0749h,074Ah,074Bh,074Ch,074Dh,074Eh,074Fh ; T
256 dw 0750h,0751h,0752h,0753h,0754h,0755h,0756h,0757h ; R
257 dw 0758h,0759h,075Ah,075Bh,075Ch,075Dh,075Eh,075Fh ; L
258
259 dw 0720h,0721h,0722h,0723h,0724h,0725h,0726h,0727h ;
260 dw 0728h,0729h,072Ah,072Bh,072Ch,072Dh,072Eh,072Fh ;
261 dw 0730h,0731h,0732h,0733h,0734h,0735h,0736h,0737h ;
262 dw 0738h,0739h,073Ah,073Bh,073Ch,073Dh,073Eh,073Fh ; N
263 dw 0740h,0741h,0742h,0743h,0744h,0745h,0746h,0747h ; O
264 dw 0748h,0749h,074Ah,074Bh,074Ch,074Dh,074Eh,074Fh ; R
265 dw 0750h,0751h,0752h,0753h,0754h,0755h,0756h,0757h ; M
266 dw 0758h,0759h,075Ah,075Bh,075Ch,075Dh,075Eh,075Fh ; A
267 dw 0760h,0761h,0762h,0763h,0764h,0765h,0766h,0767h ; L
268 dw 0768h,0769h,076Ah,076Bh,076Ch,076Dh,076Eh,076Fh ;
269 dw 0770h,0771h,0772h,0773h,0774h,0775h,0776h,0777h ;
270 dw 0778h,0779h,077Ah,077Bh,077Ch,077Dh,077Eh,07B1h ;
271
272
273 GRcolors db 000h,004h,001h,005h,003h,007h,002h,009h
274 db 006h,00Dh,008h,00Ch,00Ah,00Eh,00Bh,00Fh
275 db 040h,044h,041h,045h,043h,047h,042h,049h
276 db 046h,04Dh,048h,04Ch,04Ah,04Eh,04Bh,04Fh
277 db 010h,014h,011h,015h,013h,017h,012h,019h
278 db 016h,01Dh,018h,01Ch,01Ah,01Eh,01Bh,01Fh
279 db 050h,054h,051h,055h,053h,057h,052h,059h
280 db 056h,05Dh,058h,05Ch,05Ah,05Eh,05Bh,05Fh
281 db 030h,034h,031h,035h,033h,037h,032h,039h
282 db 036h,03Dh,038h,03Ch,03Ah,03Eh,03Bh,03Fh
283 db 070h,074h,071h,075h,073h,077h,072h,079h
284 db 076h,07Dh,078h,07Ch,07Ah,07Eh,07Bh,07Fh
285 db 020h,024h,021h,025h,023h,027h,022h,029h
286 db 026h,02Dh,028h,02Ch,02Ah,02Eh,02Bh,02Fh
287 db 090h,094h,091h,095h,093h,097h,092h,099h
288 db 096h,09Dh,098h,09Ch,09Ah,09Eh,09Bh,09Fh
289 db 060h,064h,061h,065h,063h,067h,062h,069h
290 db 066h,06Dh,068h,06Ch,06Ah,06Eh,06Bh,06Fh
291 db 0D0h,0D4h,0D1h,0D5h,0D3h,0D7h,0D2h,0D9h
292 db 0D6h,0DDh,0D8h,0DCh,0DAh,0DEh,0DBh,0DFh
293 db 080h,084h,081h,085h,083h,087h,082h,089h
294 db 086h,08Dh,088h,08Ch,08Ah,08Eh,08Bh,08Fh
295 db 0C0h,0C4h,0C1h,0C5h,0C3h,0C7h,0C2h,0C9h
296 db 0C6h,0CDh,0C8h,0CCh,0CAh,0CEh,0CBh,0CFh
297 db 0A0h,0A4h,0A1h,0A5h,0A3h,0A7h,0A2h,0A9h
298 db 0A6h,0ADh,0A8h,0ACh,0AAh,0AEh,0ABh,0AFh
299 db 0E0h,0E4h,0E1h,0E5h,0E3h,0E7h,0E2h,0E9h
300 db 0E6h,0EDh,0E8h,0ECh,0EAh,0EEh,0EBh,0EFh
301 db 0B0h,0B4h,0B1h,0B5h,0B3h,0B7h,0B2h,0B9h
302 db 0B6h,0BDh,0B8h,0BCh,0BAh,0BEh,0BBh,0BFh
303 db 0F0h,0F4h,0F1h,0F5h,0F3h,0F7h,0F2h,0F9h
304 db 0F6h,0FDh,0F8h,0FCh,0FAh,0FEh,0FBh,0FFh
305
306 even
307 DACtable db 00h,00h,00h,00h,00h,2Ah,00h,2Ah,00h,00h,2Ah,2Ah,2Ah,00h,00h,2Ah
308 db 00h,2Ah,2Ah,2Ah,00h,2Ah,2Ah,2Ah,00h,00h,15h,00h,00h,3Fh,00h,2Ah
309 db 15h,00h,2Ah,3Fh,2Ah,00h,15h,2Ah,00h,3Fh,2Ah,2Ah,15h,2Ah,2Ah,3Fh
310 db 00h,15h,00h,00h,15h,2Ah,00h,3Fh,00h,00h,3Fh,2Ah,2Ah,15h,00h,2Ah
311 db 15h,2Ah,2Ah,3Fh,00h,2Ah,3Fh,2Ah,00h,15h,15h,00h,15h,3Fh,00h,3Fh
312 db 15h,00h,3Fh,3Fh,2Ah,15h,15h,2Ah,15h,3Fh,2Ah,3Fh,15h,2Ah,3Fh,3Fh
313 db 15h,00h,00h,15h,00h,2Ah,15h,2Ah,00h,15h,2Ah,2Ah,3Fh,00h,00h,3Fh
314 db 00h,2Ah,3Fh,2Ah,00h,3Fh,2Ah,2Ah,15h,00h,15h,15h,00h,3Fh,15h,2Ah
315 db 15h,15h,2Ah,3Fh,3Fh,00h,15h,3Fh,00h,3Fh,3Fh,2Ah,15h,3Fh,2Ah,3Fh
316 db 15h,15h,00h,15h,15h,2Ah,15h,3Fh,00h,15h,3Fh,2Ah,3Fh,15h,00h,3Fh
317 db 15h,2Ah,3Fh,3Fh,00h,3Fh,3Fh,2Ah,15h,15h,15h,15h,15h,3Fh,15h,3Fh
318 db 15h,15h,3Fh,3Fh,3Fh,15h,15h,3Fh,15h,3Fh,3Fh,3Fh,15h,3Fh,3Fh,3Fh
319
320 Data ends
321
322 END
323
Generated by GNU Enscript 1.6.6, and GophHub 1.3.