summaryrefslogtreecommitdiff
path: root/v4.0/src/DEV/DISPLAY
diff options
context:
space:
mode:
authorGravatar Mark Zbikowski2024-04-25 21:24:10 +0100
committerGravatar Microsoft Open Source2024-04-25 22:32:27 +0000
commit2d04cacc5322951f187bb17e017c12920ac8ebe2 (patch)
tree80ee017efa878dfd5344b44249e6a241f2a7f6e2 /v4.0/src/DEV/DISPLAY
parentMerge pull request #430 from jpbaltazar/typoptbr (diff)
downloadms-dos-main.tar.gz
ms-dos-main.tar.xz
ms-dos-main.zip
MZ is back!HEADmain
Diffstat (limited to 'v4.0/src/DEV/DISPLAY')
-rw-r--r--v4.0/src/DEV/DISPLAY/CPS-FUNC.INC728
-rw-r--r--v4.0/src/DEV/DISPLAY/DEF-EQU.INC290
-rw-r--r--v4.0/src/DEV/DISPLAY/DISPLAY.ASM388
-rw-r--r--v4.0/src/DEV/DISPLAY/DISPLAY.LNK4
-rw-r--r--v4.0/src/DEV/DISPLAY/DISPLAY.SKL15
-rw-r--r--v4.0/src/DEV/DISPLAY/DISPMES.ASM17
-rw-r--r--v4.0/src/DEV/DISPLAY/EGA/437-8X14.ASM269
-rw-r--r--v4.0/src/DEV/DISPLAY/EGA/437-8X16.ASM269
-rw-r--r--v4.0/src/DEV/DISPLAY/EGA/437-8X8.ASM270
-rw-r--r--v4.0/src/DEV/DISPLAY/EGA/437-CPI.ASM49
-rw-r--r--v4.0/src/DEV/DISPLAY/EGA/850-8X14.ASM270
-rw-r--r--v4.0/src/DEV/DISPLAY/EGA/850-8X16.ASM270
-rw-r--r--v4.0/src/DEV/DISPLAY/EGA/850-8X8.ASM270
-rw-r--r--v4.0/src/DEV/DISPLAY/EGA/850-CPI.ASM49
-rw-r--r--v4.0/src/DEV/DISPLAY/EGA/860-8X14.ASM270
-rw-r--r--v4.0/src/DEV/DISPLAY/EGA/860-8X16.ASM270
-rw-r--r--v4.0/src/DEV/DISPLAY/EGA/860-8X8.ASM270
-rw-r--r--v4.0/src/DEV/DISPLAY/EGA/860-CPI.ASM49
-rw-r--r--v4.0/src/DEV/DISPLAY/EGA/863-8X14.ASM270
-rw-r--r--v4.0/src/DEV/DISPLAY/EGA/863-8X16.ASM270
-rw-r--r--v4.0/src/DEV/DISPLAY/EGA/863-8X8.ASM270
-rw-r--r--v4.0/src/DEV/DISPLAY/EGA/863-CPI.ASM49
-rw-r--r--v4.0/src/DEV/DISPLAY/EGA/865-8X14.ASM270
-rw-r--r--v4.0/src/DEV/DISPLAY/EGA/865-8X16.ASM270
-rw-r--r--v4.0/src/DEV/DISPLAY/EGA/865-8X8.ASM270
-rw-r--r--v4.0/src/DEV/DISPLAY/EGA/865-CPI.ASM49
-rw-r--r--v4.0/src/DEV/DISPLAY/EGA/COPYRIGH.ASM11
-rw-r--r--v4.0/src/DEV/DISPLAY/EGA/CPI-HEAD.ASM15
-rw-r--r--v4.0/src/DEV/DISPLAY/EGA/EGA.LNK8
-rw-r--r--v4.0/src/DEV/DISPLAY/EGA/MAKEFILE55
-rw-r--r--v4.0/src/DEV/DISPLAY/F-PARSER.INC2040
-rw-r--r--v4.0/src/DEV/DISPLAY/INIT.ASM965
-rw-r--r--v4.0/src/DEV/DISPLAY/INT10COM.INC1029
-rw-r--r--v4.0/src/DEV/DISPLAY/INT2FCOM.INC323
-rw-r--r--v4.0/src/DEV/DISPLAY/LCD/437-CPI.ASM290
-rw-r--r--v4.0/src/DEV/DISPLAY/LCD/850-CPI.ASM290
-rw-r--r--v4.0/src/DEV/DISPLAY/LCD/860-CPI.ASM290
-rw-r--r--v4.0/src/DEV/DISPLAY/LCD/863-CPI.ASM290
-rw-r--r--v4.0/src/DEV/DISPLAY/LCD/865-CPI.ASM292
-rw-r--r--v4.0/src/DEV/DISPLAY/LCD/COPYRIGH.ASM10
-rw-r--r--v4.0/src/DEV/DISPLAY/LCD/FONT-R3.ASM15
-rw-r--r--v4.0/src/DEV/DISPLAY/LCD/LCD.LNK8
-rw-r--r--v4.0/src/DEV/DISPLAY/LCD/MAKEFILE32
-rw-r--r--v4.0/src/DEV/DISPLAY/MACROS.INC29
-rw-r--r--v4.0/src/DEV/DISPLAY/MAKEFILE53
-rw-r--r--v4.0/src/DEV/DISPLAY/PARSER.ASM809
-rw-r--r--v4.0/src/DEV/DISPLAY/TABLES.INC368
-rw-r--r--v4.0/src/DEV/DISPLAY/WRITE.INC373
-rw-r--r--v4.0/src/DEV/DISPLAY/ZERO.DAT1
49 files changed, 13331 insertions, 0 deletions
diff --git a/v4.0/src/DEV/DISPLAY/CPS-FUNC.INC b/v4.0/src/DEV/DISPLAY/CPS-FUNC.INC
new file mode 100644
index 0000000..91bb3c6
--- /dev/null
+++ b/v4.0/src/DEV/DISPLAY/CPS-FUNC.INC
@@ -0,0 +1,728 @@
1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2;
3; CODE PAGE DRIVER FUNCTIONS
4;
5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
6IF1 ;
7 %OUT . ®CPS-FUNC.INC¯
8ENDIF ;
9 ;
10CP_FUNCTION LABEL BYTE ;
11 DW 4CH,OFFSET DESIGNATE_BEGIN ;
12 DW 4DH,OFFSET DESIGNATE_END ;
13 DW 4AH,OFFSET INVOKE_CP ;
14 DW 6AH,OFFSET QUERY_CP ;
15 DW 6BH,OFFSET QUERY_CP_LIST ;
16NUM_CP_FUNCTION EQU ($-CP_FUNCTION)/4 ;
17 ;
18DESG_SEMAPHORE DB 0 ; TEMPORARY
19G_IOCTL_SEMA DB 0 ; SEMAPHORE TO INDICATE IF CPS IS BUSY!
20 ;
21CHAR_HEIGHT DB 8 ;
22 DB 14 ;
23 DB 16 ;
24 DB 19 ;
25 DB 0 ;
26 DB 0 ;
27 DB 0 ;
28 DB 0 ;
29NUM_CHAR_HEIGHT EQU ($-CHAR_HEIGHT) ;
30 ;
31 ;
32GENERIC_IOCTL PROC ; CON OUTPUT
33 CLI ;S;
34 MOV SI,SP ;S;
35 MOV CS:OLD_STACK_O,SI ;S;
36 MOV SI,SS ;S;
37 MOV CS:OLD_STACK_S,SI ;S;
38 MOV AX,OFFSET STACK_START ;S;
39 MOV SI,CS ;S;
40 MOV SS,SI ;S;
41 MOV SP,AX ;S;
42 STI ;S;
43 PUSH DS ;
44 ;
45 PUSH CS ;
46 POP DS ; FROM HERE IN, DS=CS
47 ;
48 LES DI,DWORD PTR BUF.RH_PTRO; GET RH
49 ;
50GI_1: MOV AL,RH.MINOR_F ; PUT MINOR VERSION IN AL
51 XOR AH,AH ; CLEAR OUT HIGH BYTE FOR COMPARES
52 ;
53 PUSH DI ; SAVE POINTER!!!
54 PUSH ES ;
55 PUSH CS ;
56 POP ES ;
57 MOV CX,NUM_CP_FUNCTION ;
58 MOV DI,OFFSET CP_FUNCTION ;
59GI_1A: SCASW ; SEARCH THROUGH THE LIST OF VALID FN's
60 JE GI_2 ;
61 INC DI ;
62 INC DI ;
63 LOOP GI_1A ;
64 POP ES ;
65 POP DI ;
66 JUMP GI_3 ; NOT FOUND!
67GI_2: POP ES ;
68 MOV SI,DI ;
69 POP DI ;
70 ;
71 MOV G_IOCTL_SEMA,ONE ; SEMAPHORE TO INDICATE CALLS ARE BUSY!
72 CALL [SI] ; JMP OFF TO THE APPROPRIATE CALL!
73 MOV G_IOCTL_SEMA,ZERO ; SEMAPHORE TO INDICATE CALLS ARE DONE!
74 STC ; SET CY not TO TRY ATTACHED CON!
75 JUMP GI_4 ;
76GI_3: CLC ; CLEAR CY TO TRY ATTACHED CON!
77GI_4: POP DS ;
78 CLI ;S;
79 MOV AX,CS:OLD_STACK_O ;S;
80 MOV SI,CS:OLD_STACK_S ;S;
81 MOV SS,SI ;S;
82 MOV SP,AX ;S;
83 STI ;S;
84 RET ;
85GENERIC_IOCTL ENDP ;
86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
87;
88; DESIGNATE BEGIN
89;
90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
91DESIGNATE_BEGIN PROC ;
92 LES DI,RH.REQUEST_PACKET ; AND DI TO POINT TO REQUEST PACKET
93 MOV CX,RH.DESG_N ; MOVE THE NUMBER OF CODE PAGES DESIG'ed
94 ;
95 OR CX,CX ;
96 JZ DB_0C ; CHECK IF ZERO CP's DESIGNATED
97 ; IF SO, THEN THIS IS THE REFRESH CALL
98DB_0: CMP CX,CPD_DESG_N ; CHECK IF NUMBER > # CONFIGed
99 JA DB_0B ;
100 JUMP DB_1B ;
101 ;
102DB_0D: OR BUF.STATUS,EIGHT ; Error>> KEYBOARD ERROR!!
103 RET ;
104DB_2D: POP CX ; RESTORE STACK ELEMENTS
105 POP BX ;
106 POP CX ; RESTORE STACK ELEMENTS
107 POP BX ;
108DB_0B: OR BUF.STATUS,TEN ; Error>> DEVICE ERROR!!
109 RET ;
110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
111;
112; REFRESH ACTIVE CODE PAGE TO DISPLAY
113;
114;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
115DB_0C: MOV DESG_SEMAPHORE,TWO ; SET REFRESH COMMENCED
116 MOV CPD_REQ_DESG,CX ; SAVE NUMBER OF REQUESTED CP'S (0)
117 MOV DX,CPD_ACTIVE ; THIS IS THE REFRESH CALL
118 CMP DX,-1 ; CHECK IF THE ACTIVE_CP = INVALID
119 JE DB_0B ;
120 CLC ; CLEAR OUT THE CARRY FLAG
121 CALL SIGNAL_KBD_INVK ;
122 JC DB_0D ; IF CY SET, THEN KEYBOARD IS WRONG
123 CALL TEST_CP ;
124 JC DB_0B ;
125 CALL INVOKE_DATA ;
126 JC DB_0B ;
127 RET ;
128;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
129;
130; THIS SECTION FORMS THE NEW DESIGNATE CP LIST IN THE
131; CPD_TEMP_DESG. AT THE SAME TIME THE TOTAL NUMBER OF
132; REQUESTED CP's ARE FOUND.
133;
134; DX will contain the real CP's to load
135;
136;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
137DB_1B: CLD ; SET DIRECTION FORWARD
138 PUSH ES ;
139 PUSH CX ;
140 PUSH DI ;
141 PUSH CS ;
142 POP ES ;
143 MOV CX,CPD_DESG_N ;
144 INC CX ; ACCOUNT FOR NUMBER OF CPS
145 LEA SI,CPD_DESG_N ; COPY PREPARED CP LIST TO TEMP BUFFER
146 LEA DI,CPD_TEMP_DESG ;
147 REP MOVSW ;
148 POP DI ;
149 POP CX ;
150 POP ES ;
151 ;
152 XOR DX,DX ; SET COUNT OF CP's TO PREPARE = 0
153 PUSH CX ;
154 PUSH BX ;
155 MOV CPD_REQ_DESG,CX ; SAVE NUMBER OF REQUESTED CP'S
156 MOV SI,2 ;
157 MOV BX,SI ;
158DB_1: MOV AX,RH.DESG_N[BX] ; GET REQUESTED CP
159 CMP AX,-1 ; TEST IF REQUESTED IS PLACE HOLDER..
160 JE DB_1A ;
161 INC DX ; ADD ONE TO THE # VALID DESG
162 MOV CPD_TEMP_DESG[SI],AX ; OVERLAY THE NEWER CP INTO TEMP BUFFER
163DB_1A: MOV CPD_REQ_DESG[SI],AX ; COPY TO THE REQ DESG LIST
164 INC SI ;
165 INC SI ;
166 INC BX ;
167 INC BX ;
168 LOOP DB_1 ;
169 POP BX ;
170 POP CX ;
171 ;
172 OR DX,DX ; ARE THERE NO CP's TO PREPARE?
173 JZ DB_0B ; IF NONE TO DESG, THEN ERROR!!
174;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
175;
176; THIS SECTION CHECKS THE LIST OF DESIGed CP's IN THE
177; TEMP BUFFER AND SETS AN ERROR FOR DUPLICATES.
178;
179;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
180DB_2: PUSH BX ; CHECK THE DESIGNATE LIST FOR DUP's
181 PUSH CX ; AND FOR INVALIDS
182 MOV CX,CPD_TEMP_DESG ;
183 DEC CX ; NORMALIZE
184 JZ DB_3 ; IF ZERO, THEN NONE TO COMPARE
185 MOV BX,2 ; SET BX TO START OF LIST....
186 MOV SI,2 ; SETUP SI READY TO MOVE DESG LIST IN!
187DB_2A: PUSH BX ;
188 PUSH CX ;
189 MOV AX,CPD_TEMP_DESG[BX] ; GET CP DESGINATED
190 CMP AX,-1 ; TEST IF ENTRY = -1
191 JE DB_2E ; IF SO, THEN SKIP
192DB_2B: CMP CX,1 ; TEST IF IT IS THE ONLY ONE TO COMPARE
193 JE DB_2E ; AGAINST!
194 INC BX ; ADVANCE POINTER TO NEXT CP DESIGNATED
195 INC BX ;
196 CMP AX,CPD_TEMP_DESG[BX] ; CHECK IF NEXT CP's = ONE TESTED
197 JNE DB_2C ; IF error, THEN GET OUT
198 JUMP DB_2D ;
199 ;
200DB_2C: LOOP DB_2B ;
201DB_2E: POP CX ;
202 POP BX ;
203 INC BX ;
204 INC BX ;
205 OR CX,CX ;
206 JE DB_3 ; TEST IF ONLY ONE CP SPECIFIED
207 LOOP DB_2A ;
208 ;
209DB_3: POP CX ;
210 POP BX ;
211;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
212;
213; NOW, THE TEMPORARY BUFFER CONTAINS THE NEW LIST
214; OF DESGINATED CODE PAGES. COPY THIS TO THE
215; PREPARED CP LIST.
216;
217;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
218 PUSH ES ; NOW ALL TESTS ARE SUCCESSFUL,
219 PUSH CX ;
220 PUSH DI ;
221 PUSH CS ;
222 POP ES ;
223 MOV CX,CPD_DESG_N ;
224 INC CX ; ACCOUNT FOR NUMBER OF CPS
225 LEA SI,CPD_TEMP_DESG ; COPY TEMP BUFFER INTO NEW CP LIST
226 LEA DI,CPD_DESG_N ;
227 REP MOVSW ;
228 POP DI ;
229 POP CX ;
230 POP ES ;
231;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
232;
233; NOW THAT THE LIST IS VALID, THE FONT PARSER & PARSING TABLES
234; ARE PREPARED FOR INITIALIZATION OF DESIGNATION.
235;
236; DX is the number of valid CP's
237; CX is the number of CP's desginated
238;
239;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
240 PUSH BX ;
241 PUSH ES ;
242 PUSH DI ;
243 ; CX=#DESGed, BX=pnter DESG LIST
244 MOV BX,2 ; SET BX TO POINT TO FIRST CP DESGed
245 LEA DI,FTABLE ; SET DI TO POINT TO MAIN PARSER TABLE
246 PUSH CS ;
247 POP ES ; INITIALIZE ES=CS
248 MOV [DI].FLAG,FLAG_RESTART ; SETUP UP MAIN TABLE FOR F-PARSER.SRC
249 MOV [DI].BUFFER_LEN,0 ; PREPARING FOR START OF DESIGNATION
250 MOV [DI].NUM_FTBLK,DX ; DX=#DESG TO PARSE OUT
251 ;
252 LEA SI,CPD_CLASS ; SET DI TO POINT TO (EGA,LCD) CLASSES
253 LEA DI,FTB1 ; SET DI TO POINT TO FIRST PARSING TABLE
254 ;
255DB_4: MOV AX,CPD_REQ_DESG[BX] ;
256 CMP AX,-1 ; CHECK FOR PLACE HOLDER
257 JE DB_5 ;
258 MOV [DI].FTB_CP,AX ; COPY THE DESG CP VALUE INTO THE TABLE
259 PUSH CX ; AND ALSO THE CPD_CLASS
260 PUSH SI ;
261 PUSH DI ;
262 LEA DI,[DI].FTB_TID ;
263 MOV CX,8 ;
264 REP MOVSB ;
265 POP DI ;
266 POP SI ;
267 POP CX ;
268 ;
269 ADD DI,TYPE FTBLK ; MOVE POINTERS TO NEXT PARSING TABLE
270DB_5: INC BX ;
271 INC BX ; ADVANCE BX TO NEXT DESG CP
272 LOOP DB_4 ;
273 ;
274 POP DI ;
275 POP ES ;
276 POP BX ;
277 ;
278 CALL FONT_PARSER ; CALL FONT PARSER TO INITIALIZE WRITES
279;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
280;
281; THIS WILL COPY THE START LOCATION OF THE FONTS (set by INIT)
282; INTO THE START LOCATION FOR THE DESIGNATE WRITE, WHICH FOLLOWS!
283;
284;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
285 PUSH SI ;
286 PUSH DI ;
287 PUSH ES ;
288 PUSH CS ;
289 POP ES ; SET EXTRA SEG ES = CS
290 LEA SI,CPD_FONT_PNTER ;
291 LEA DI,CPD_FONT_WRITE ;
292 MOV CX,CPD_DESG_N ; GET NUMBER OF DESIGNATES
293 ADD CX,CX ; DOUBLE FOR SEG:OFFSET
294 REP MOVSW ; COPY FONT START LOC's TO START WRITE
295 XOR DI,DI ;
296 LEA SI,CPD_FONT_DATA ; SET THE FONT_DATA COUNTERS BACK TO 0
297 MOV CX,CPD_DESG_N ;
298DB_6: MOV [SI],DI ;
299 INC SI ;
300 INC SI ;
301 LOOP DB_6 ;
302 POP ES ;
303 POP DI ;
304 POP SI ;
305;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
306;
307; CREATE THE FONT_PRIORITY TABLE
308;
309; THIS IS USED TO PLACE PRIORITY ON THE FONTS BEING DESIGNATED
310; ESPECIALLY WHEN THE NUMBER OF DESIGNATED FONTS < FONTS IN THE
311; xxx.CPI FILE. THIS IS USED TO SELECT THE NEEDED FONTS FOR
312; CP SUPPORT.
313;
314; RULE: PRIORITY 1 = ACTIVE MODE's FONT RESOLUTION
315; PRIORITY 2 = FONT RESOLUTION (non-repeats) OF ALL DISPLAY
316; MODES - STARTING FROM MODE (0) - MODE (?)
317;
318;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
319 PUSH AX ;
320 PUSH BX ;
321 PUSH CX ;
322 PUSH SI ;
323 PUSH DI ;
324 ;
325 LEA DI,FONT_PRIORITY ;
326 MOV CX,CPD_FONTS_N ; GET THE NUMBER OF SPECIFIED FONTS
327 ;
328 PUSH ES ;
329 PUSH DI ;
330 PUSH CX ; OVER-WRITE THE TABLE WITH 0FFH's
331 PUSH CS ;
332 POP ES ;
333 MOV AL,-1 ;
334 REP STOSB ;
335 POP CX ;
336 POP DI ;
337 POP ES ;
338 ;
339 XOR AH,AH ; AH=0 FOR MODE SET, AL=MODE_TYPE
340 MOV AL,MODE_VALUE ;
341 MOV SI,AX ; ESTABLISH INDEX INTO LOAD_MECH table
342 MOV AL,[SI].FONT_SIZE ; GET FONT_SIZE FOR THIS MODE_VALUE
343 OR AL,AL ; TEST FOR FONT_VALUE=0
344 JNZ DB_8 ;
345 CALL ASK_BIOS_FONT_SIZE ; GET BIOS TO INDICATE FONT_SIZE
346DB_8: MOV CS:[DI],AL ; PUT ACTIVE FONT RESOLUTION INTO 1ST!
347 INC DI ; ADVANCE POINTER TO NEXT POSITION
348 DEC CX ; SUBTRACT ONE FONT RESOLUTION...
349 JZ DB_A ; IF THERE WAS ONLY 1 FONT...THEN DONE
350 ;
351 XOR SI,SI ; START WITH MODE = 0
352DB_8A: PUSH CX ;
353 PUSH DI ;
354 MOV CX,NUM_FONT_PRIORITY ;
355 LEA DI,FONT_PRIORITY ; SET DI TO START OF TABLE
356 MOV AL,[SI].FONT_SIZE ; GET FONT SIZE FOR THIS MODE
357 CMP AL,-1 ; TEST FOR INVALID FONT SIZE
358 JE DB_9 ; IF SO, THEN TRY NEXT VALUE
359 OR AL,AL ; TEST FOR FONT_VALUE=0
360 JNZ DB_8C ;
361 ; OTHERWISE, ONLY EGA BIOS WOULD KNOW!!!
362 CMP SI,EIGHT ; ONLY EIGHT DIFFERENT FONTS PERMITTED!!
363 JAE DB_9 ;
364 ;
365 PUSH CX ;
366 CALL ASK_BIOS_SCAN_LINES ; GET ENCODED SCAN LINES VALUE!!!
367 JC DB_9 ;
368 MOV CX,SI ; PUT INDEX INTO CX
369 INC CL ; NORMALIZE INDEX VALUE (1-8)
370 SAR AL,CL ;
371 POP CX ;
372 JNC DB_9 ;
373 MOV AL,CS:CHAR_HEIGHT[SI] ;
374 ;
375DB_8C: CMP AL,CS:[DI] ;
376 JE DB_9 ; IF EQUAL, THEN ALREADY IN TABLE
377 INC DI ; OTHERWISE, TAKE THIS MODES FONT RES
378 LOOP DB_8C ; AND COMPARE AGAINST NEXT PRIOR.VALUE
379 ;
380 POP DI ; NEW RESOLUTION FOUND...ADD TO LIST
381 POP CX ;
382 MOV CS:[DI],AL ; PUT NEW VALUE IN THE TABLE
383 INC DI ; AND ADVANCE FOR NEXT FONT RESOLUTION
384 JUMP DB_9A ; LOOP WILL DECREMENT #FONTS TO FIND
385DB_9: POP DI ;
386 POP CX ;
387 INC CX ; MATCH FOUND..SO LEAVE #FONT TO PRIOR.
388DB_9A: INC SI ; POINT TO NEXT DISPLAY MODE
389 CMP SI,NUM_FONT_SIZES ;
390 JAE DB_A ;
391 LOOP DB_8A ; CONTINUE UNTIL THE #FONTS DESIGNATED
392 ; HAVE BEEN PRIORITIZED OR ALL MODES
393DB_A: POP DI ; ARE CHECKED OUT!
394 POP SI ;
395 POP CX ;
396 POP BX ;
397 POP AX ;
398;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
399;
400;
401;
402;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
403 MOV DESG_SEMAPHORE,ONE ; SET DESIGNATION TO COMMENCE...
404 RET ;
405DESIGNATE_BEGIN ENDP ;
406;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
407;
408; DESIGNATE END
409;
410;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
411DESIGNATE_END PROC ;
412 CMP DESG_SEMAPHORE,ZERO ; TEST IF DESG_SEMAPHORE = DATA WRITTEN
413 JE DE_1 ;
414 ;
415 CMP CPD_REQ_DESG,ZERO ; TEST IF ZERO CP's REQUESTED (REFRESH)
416 JE DE_0 ;
417 ;
418 CALL VERIFY_FPARSER ; CALL ROUTINE TO VERIFY THAT THE
419 JC DE_2 ; FONT PARSER FINISHED OK...
420 ;
421 PUSH ES ; NOW THE DESIGNATE IS OVER...
422 PUSH DI ;
423 MOV CX,CPD_ACTIVE ; CHECK IF ACTIVE_CP IS STILL VALID!
424 CALL FIND_CP ; TRY AND FIND CPD_ACTIVE?
425 POP DI ;
426 POP ES ;
427 JNC DE_0 ;
428 MOV CX,-1 ;
429 MOV CPD_ACTIVE,CX ;
430DE_0: MOV DESG_SEMAPHORE,ZERO ;
431 RET ;
432 ;
433DE_1: OR BUF.STATUS,TWELVE ; Error>> NO DESGINATE START
434 JUMP DE_0 ;
435DE_2: CALL HANDLE_WRITE_ERROR ; RESET ALL DESIGNATED INFORMATION
436 OR BUF.STATUS,FAIL ; Error>> FONT DATA IS BAD
437 JUMP DE_0 ;
438DESIGNATE_END ENDP ;
439;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
440;
441; INVOKE
442;
443;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
444INVOKE_CP PROC ;
445 LES DI,RH.REQUEST_PACKET ; AND DI TO POINT TO REQUEST PACKET
446 MOV CX,RH.INVK_LENGTH ; GET LENGTH OF REMAINING HEADER
447 ;
448 CMP CX,TWO ; TEST IF LENGTH OF TABLE IS GREATER
449 JNE ICP_2 ; THAN ONE CP!
450 ;
451 MOV CX,RH.INVK_CP ; GET THE CODE PAGE TO INVOKE
452 MOV DX,CX ; SAVE CP VALUE
453 CMP CX,-1 ; TEST FOR INVALID CODE PAGE!
454 JE ICP_1A ;
455 ;
456 PUSH CPD_ACTIVE ; SAVE ACTIVE_CP, FOR POSSIBLE USE...
457 MOV CPD_ACTIVE,CX ;
458 CALL TEST_CP ; TRY AND LOAD THE REQUESTED CP
459 POP CX ;
460 JC ICP_1AA ; IF ERROR, THEN RESTORE OLD CP
461 ;
462 CMP CX,CPD_ACTIVE ; TEST IF OLD CP=ACTIVE!!!
463 JE ICP_0A ;
464 ;
465 CALL INVOKE_DATA ; IF EVERYTHING OK, THEN LOAD DATA
466 JC ICP_2A ;
467 ;
468ICP_0A: CALL SIGNAL_KBD_INVK ; DX CONTAINS CODEPAGE
469 JC ICP_1 ; IF CY THEN ERROR
470 RET ;
471 ;
472ICP_1: OR BUF.STATUS,EIGHT ; Error>> KEYB ERROR
473 RET ;
474ICP_1AA:MOV CPD_ACTIVE,CX ; PUT OLD CP BACK ACTIVE
475ICP_1A: OR BUF.STATUS,SEVEN ; Error>> CODE PAGE NOT FOUND
476 RET ;
477ICP_2A: MOV CPD_ACTIVE,CX ;
478ICP_2: OR BUF.STATUS,TEN ; Error>> DEVICE ERROR
479 RET ;
480INVOKE_CP ENDP ;
481;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
482;
483; QUERY
484;
485;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
486QUERY_CP PROC ;
487 LES DI,RH.REQUEST_PACKET ; SETUP ADDRESSING TO HEADER
488 ;
489 MOV CX,TWO ;
490 MOV RH.INVK_LENGTH,CX ; CREATE RETURN 'N' VALUE
491 ;
492 CALL TEST_CP ; FIND OUT IF CP DATA IS OK!
493 MOV CX,CPD_ACTIVE ;
494 JNC QCP_A ;
495 MOV CX,-1 ; MAKE THE ACTIVE REPONSE AS INVALID
496 ;
497QCP_A: MOV RH.INVK_CP,CX ; SET THE CODE PAGE IN HEADER
498 CMP CX,-1 ; TEST IF NO CP SPECIFIED?
499 JE QCP_0 ;
500 RET ;
501 ;
502QCP_0: OR BUF.STATUS,SEVEN ; Error>> NOT CODE PAGE SPECIFIED
503 RET ;
504QUERY_CP ENDP ;
505;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
506;
507; QUERY LIST
508;
509;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
510QUERY_CP_LIST PROC ;
511 LES DI,RH.REQUEST_PACKET ; AND DI TO POINT TO REQUEST PACKET
512 ;
513 MOV CX,CPD_HDWR_N ;
514 MOV RH.QLST_N_HDWR,CX ;
515 ADD CX,CPD_DESG_N ;
516 ADD CX,TWO ; ACCOUNT FOR LENGTH OF 'N's
517 ADD CX,CX ;
518 MOV RH.QLST_LENGTH,CX ; CREATE RETURN TABLE LENGTH
519 ;
520 PUSH AX ;
521 PUSH BX ;
522 PUSH SI ;
523 MOV CX,CPD_HDWR_N ;
524 MOV BX,2 ;
525 OR CX,CX ;
526 JE QCP_3 ;
527QCP_2: MOV AX,CPD_HDWR_N[BX] ;
528 MOV RH.QLST_N_HDWR[BX],AX ;
529 INC BX ;
530 INC BX ;
531 LOOP QCP_2 ;
532 ;
533QCP_3: MOV CX,CPD_DESG_N ; SET TABLE ENTRY FOR DESIGNATE
534 MOV RH.QLST_N_HDWR[BX],CX ;
535 INC BX ;
536 INC BX ;
537 ;
538 OR CX,CX ;
539 JE QCP_4A ;
540 MOV SI,2 ;
541QCP_4: MOV AX,CPD_DESG_N[SI] ;
542 MOV RH.QLST_N_HDWR[BX],AX ;
543 INC BX ;
544 INC BX ;
545 INC SI ;
546 INC SI ;
547 LOOP QCP_4 ;
548QCP_4A: POP SI ;
549 POP BX ;
550 POP AX ;
551 RET ;
552QCP_5: OR BUF.STATUS,SEVEN ; Error>> NO CODE PAGE INVOKED
553 RET ;
554QCP_6: OR BUF.STATUS,TEN ; Error>> DEVICE ERROR
555 RET ;
556QUERY_CP_LIST ENDP ;
557;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
558;
559; GET HARDWARE CODE PAGE TABLE
560;
561; INPUT:
562; none
563; OUTPUT:
564; SI = pointer to HARDWARE table (n,h_cp1,h_cp2,...)
565;
566;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
567GET_HDWR_CP PROC ;
568 LEA SI,CP_PNTER_TABLE ;
569 MOV SI,[SI].HDWR_CP_STRUC ;
570 RET ;
571GET_HDWR_CP ENDP ;
572;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
573;
574; GET DESIGNATE CODE PAGE TABLE
575;
576; INPUT: none
577; OUTPUT: SI = pointer to DESIGNATE table (n,d_cp1,d_cp2,...)
578;
579;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
580GET_DESG_CP PROC ;
581 LEA SI,CP_PNTER_TABLE ;
582 MOV SI,[SI].DESG_CP_STRUC ;
583 RET ;
584GET_DESG_CP ENDP ;
585;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
586;
587; GET FONT POINTER TABLE
588;
589; INPUT:
590; none
591; OUTPUT:
592; SI = pointer to FONTS table (pnter_cp1,pnter_cp2,...)
593;
594;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
595GET_FONT_CP PROC ;
596 LEA SI,CP_PNTER_TABLE ;
597 MOV SI,[SI].FONT_CP_STRUC ;
598 RET ;
599GET_FONT_CP ENDP ;
600;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
601;
602; GET WRITE POINTER
603;
604; INPUT:
605; none
606; OUTPUT:
607; SI = pointer to WRITE pointers
608;
609;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
610GET_WRITE_PNTR PROC ;
611 LEA SI,CP_PNTER_TABLE ;
612 MOV SI,[SI].WRITE_DATA_STRUC;
613 RET ;
614GET_WRITE_PNTR ENDP ;
615;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
616;
617; FIND ACTIVE CODE PAGE
618;
619; INPUT:
620; CX = code page to find
621; OUTPUT:
622; 'CY' = 0 if found, 1 if NOT
623; CX = 0 for hdwr, 1 for designated
624; ES : DI = pointer to FONT data table
625;
626;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
627FIND_CP PROC ;
628 PUSH AX ;
629 PUSH BX ;
630 PUSH SI ;
631 MOV AX,CX ;
632 CALL GET_DESG_CP ; SET BX TO DESG TABLE INFO
633 MOV CX,[SI] ; GET THE NUMBER OF DESG CP's
634 OR CX,CX ;
635 JZ FCP_1 ; MOVE ONTO DESG TEST WITH 0 CP's
636 MOV BX,TWO ; ELSE, USE SI TO POINT TO 1ST CP
637FCP_0: CMP AX,[SI+BX] ; SEARCH FOR CP MATCH
638 JE FCP_4 ; CP MATCHED!! SET DESG INFO & EXIT
639 INC BX ; ADVANCE SI POINTER TO NEXT CP
640 INC BX ;
641 LOOP FCP_0 ; CHECK ACROSS ALL CP's IN TABLE
642FCP_1: CALL GET_HDWR_CP ; NOW, REPEAT SAME OPERATION
643 MOV CX,[SI] ; WITH THE HARDWARE CP's
644 OR CX,CX ;
645 JZ FCP_3 ; IF THIS FAR, THEN SET ERROR FOR
646 INC SI ;
647 INC SI ; ADVANCE POINTER BY TWO...SINCE
648 MOV BX,ZERO ; PNTER'S DON'T HAVE 'n'...
649FCP_2: CMP AX,[SI+BX] ; SEARCH AGAIN FOR CP MATCH
650 JE FCP_5 ; CP MATCHED!! SET HDWR INFO & EXIT
651 INC BX ; ADVANCE SI POINTER TO NEXT CP
652 INC BX ;
653 LOOP FCP_2 ; REPEAT FOR ALL CP ENTRIES
654FCP_3: XOR CX,CX ; SET RETURN VALUES TO ZERO
655 XOR DI,DI ;
656 POP SI ;
657 POP BX ;
658 POP AX ;
659 STC ; CY=1 FOR ERROR
660 RET ; EXIT
661FCP_4: MOV CX,ONE ; ®®DESIGNATED CODE PAGE FOUND¯¯
662 CALL GET_FONT_CP ; SET THE BX VALUE TO THE FONT DATA
663 SUB BX,2 ; NORMALIZE BX VALUE;;;;;;;;;;;;;;;
664 ADD SI,BX ; FORMULATE THE SI INDEX BY ADDING
665 ADD SI,BX ; BX INDEX x 2 (dword FONT_PNTER)
666 MOV DI,[SI] ; TAKE OFFSET DATA FROM font_table
667 MOV ES,[SI+2] ; AND SEGMENT ALSO!
668 POP SI ;
669 POP BX ;
670 POP AX ;
671 CLC ; CY=0 FOR OK!
672 RET ; EXIT
673FCP_5: XOR CX,CX ; ®®HARDWARE CODE PAGE FOUND¯¯
674 XOR DI,DI ;
675 POP SI ;
676 POP BX ;
677 POP AX ;
678 CLC ;
679 RET ; EXIT
680FIND_CP ENDP ;
681;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
682;
683; VERIFY_FPARSER A ROUTINE THAT CHECKS THE
684; FONT_BLOCKS FOR INCOMPLETE DESIGNATES?
685; IF SO, THEN AN ERROR OCCURRED...
686;
687; INPUT:
688; FONT_PARSER should be completed parsing
689;
690; OUTPUT:
691; CY = 0 if all is correct
692; 1 if one or more designates are incomplete
693;
694;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
695VERIFY_FPARSER PROC ;
696 PUSH AX ;
697 PUSH CX ;
698 PUSH ES ;
699 PUSH DI ;
700 ;
701 PUSH CS ;
702 POP ES ;
703 ;
704 MOV CX,CPD_REQ_DESG ; CX = REQUESTED DESG CP's
705 LEA DI,FTB1 ; SET DI TO POINT TO FIRST PARSING TABLE
706 ;
707VFP_4: MOV AX,[DI].FTB_STATUS ; GET STATUS OF PARSING TABLE #n
708 CMP AX,FSTAT_COMPLETE ; FIND OUT IF THIS CP COMPLETED?
709 JE VFP_6 ;
710 ;
711 CMP AX,FSTAT_FONT ; CHECK IF AT LEAST THE FONT DATA FOUND
712 JNE VFP_8 ; IF NOT, THEN AN ERROR OCCURRED....
713 CMP [DI].FTB_DLEFT,ZERO ; IF SO, THEN NO DATA CAN BE LEFT....
714 JNE VFP_8 ; OTHERWISE ANOTHER ERROR ?
715VFP_6: ADD DI,TYPE FTBLK ; MOVE POINTERS TO NEXT PARSING TABLE
716 LOOP VFP_4 ;
717 CLC ;
718 JUMP VFP_9 ;
719 ;
720VFP_8: STC ;
721VFP_9: POP DI ;
722 POP ES ;
723 POP CX ;
724 POP AX ;
725 RET ;
726VERIFY_FPARSER ENDP ;
727;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
728 \ No newline at end of file
diff --git a/v4.0/src/DEV/DISPLAY/DEF-EQU.INC b/v4.0/src/DEV/DISPLAY/DEF-EQU.INC
new file mode 100644
index 0000000..03e2cdb
--- /dev/null
+++ b/v4.0/src/DEV/DISPLAY/DEF-EQU.INC
@@ -0,0 +1,290 @@
1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2; *** DEF-EQU *** DEF-EQU *** DEF-EQU ***
3;
4; EQU's, STRUC's, and OTHER
5;
6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
7;Modification history *********************************************************
8;AN001; D358 New device driver INIT function package 12/07/87 J.K.
9;AN002; D493 Undo D358 02/24/88 J.K.
10;AN003; D4934 Change ANSI 2F function number to 1Ah 05/20/88 F.G.
11;******************************************************************************
12IF1 ;
13 %OUT . ®DEF-EQU .INC¯
14ENDIF ;
15ZERO EQU 0H ;
16ONE EQU 1H ;
17TWO EQU 2H ;
18THREE EQU 3H ;
19FOUR EQU 4H ;
20FIVE EQU 5H ;
21SIX EQU 6H ;
22SEVEN EQU 7H ;
23EIGHT EQU 8H ;
24NINE EQU 9H ;
25TEN EQU 0AH ;
26ELEVEN EQU 0BH ;
27TWELVE EQU 0CH ;
28 ;
29FAIL EQU 8000H ; fail in designate
30 ;
31NOT_CY EQU 0FFFEH ;
32CY EQU ONE ;
33 ;
34ID_IOCTL EQU 5 ; MAJOR FNCT # FOR 'other' DEVICE
35 ;
36RH EQU ES:[DI] ; addressability to Request Header
37 ;
38RHC STRUC ; fields common to all request types
39 DB ? ; length of Request Header
40 DB ? ; unit code (subunit)
41RHC_CMD DB ? ; command code
42RHC_STA DW ? ; status
43 DQ ? ; reserved for DOS
44RHC ENDS ; end of common portion
45 ;
46CMD_INPUT EQU 4 ; RHC_CMD is INPUT request
47 ;
48 ; Status values for RHC_STA
49STAT_DONE EQU 0001H ; function complete - high order byte
50STAT_CMDERR EQU 8000H ; Error code
51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
52;
53; DEVICE Header DS:[SI] -- to locate the next CON header
54; NEXT device header ES:[DI]
55;
56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
57HP EQU DS:[SI] ;
58NHD EQU ES:[DI] ;
59 ;
60NAME_LEN EQU 8 ;
61 ;
62DHS STRUC ;
63DH_NEXTO DW ? ; offset of pointer to next header
64DH_NEXTS DW ? ; segment of pointer to next header
65 DW ? ; attribute
66DH_STRAO DW ? ; offset to strategy routine
67DH_INTRO DW ? ; offset to interrupt routine
68DH_NAME DB NAME_LEN DUP(0) ; device name in this header
69DHS ENDS ; end of common portion
70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
71;
72; Request Header for INIT
73;
74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
75RH0 STRUC ;
76 DB (TYPE RHC) DUP (?) ;
77 ;
78RH0_UNIT DB ? ; not used for CHAR devices
79RH0_ENDO DW ? ; offset of ending address
80RH0_ENDS DW ? ; segment of ending address
81RH0_BPBA DD ? ; POINTER TO BPB FOR CHAR DEVICES
82 db ? ;
83RH0 ENDS ;
84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
85;
86; Request Header for IOCTL
87;
88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
89RH3 STRUC ;
90 DB (TYPE RHC) DUP (?) ; common portion
91 ;
92 ;
93 DB ? ; media descriptor
94RH3_DTAO DW ? ; offset of transfer address
95RH3_DTAS DW ? ; segment of transfer address
96RH3_CNT DW ? ; byte count
97RH3 ENDS ;
98;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
99;
100; IOCTL header format
101;
102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
103RH_IOCTL STRUC ;
104STATIC_RH DB 13 DUP(?) ; STANDARD STATIC REQUEST HEADER
105MAJOR_F DB ? ; MAJOR FUNCTION CALL (SEE DOS 3.30)
106MINOR_F DB ? ; MINOR FUNCTION CALL (SEE DOS 3.30)
107CONTENT_SI DW ? ; CONTENTS OF SI
108CONTENT_DI DW ? ; CONTENTS OF DI
109REQUEST_PACKET DD ? ; POINTER TO GENERIC IOCTL REQ. PACKET
110RH_IOCTL ENDS ;
111;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
112;
113; DESIGNATE BUFFER FORMAT
114;
115;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
116DESG_BUFFER STRUC ;
117DESG_CARTRIDGE DW ? ; 0=NO CARTRIDGE, 1=CARTRIDGE
118DESG_LENGTH DW ? ; LENGTH OF REMAINING HEADER
119DESG_N DW ? ; NUMBER OF CP's DESIGNATED
120DESG_CP DW ? ; FIRST CP DESIGNATED
121DESG_BUFFER ENDS ;
122;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
123;
124; INVOKE BUFFER FORMAT
125;
126;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
127INVK_BUFFER STRUC ;
128INVK_LENGTH DW ? ; LENGTH OF REMAINING HEADER
129INVK_CP DW ? ; CP TO INVOKE
130INVK_BUFFER ENDS ;
131;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
132;
133; QUERY LIST BUFFER FORMAT
134;
135;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
136QLST_BUFFER STRUC ;
137QLST_LENGTH DW ? ; LENGTH OF REMAINING HEADER
138QLST_N_HDWR DW ? ; NUMBER OF HARDWARE CP's
139QLST_HDWR_CP DW ? ; FIRST HDWR CODE PAGE
140QLST_N_DESG DW ? ; NUMBER OF DESIGNATED CP's
141QLST_DESG_CP DW ? ; DESINATED CODE PAGES
142 ; ...there is more data to be
143 ; filled in by the DRIVER
144QLST_BUFFER ENDS ;
145;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
146;
147; PARSER STRUC STATEMENTS
148;
149;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
150PARSE_TABLE1 STRUC ; [[[ TABLE 1 ]]]
151NUM_DEVICES DW ? ; NUMBER OF DEVICES TO SUPPORT
152DEVICE1_OFFSET DW ? ; (hopefully) CON!!!
153PARSE_TABLE1 ENDS ;
154 ;
155PARSE_TABLE2 STRUC ; [[[ TABLE 2 ]]]
156NUM_ITEMS DW ? ; NUMBER OF ITEMS CREATED BY THE
157OFFSET_LIST DW ? ; THE 1ST OFFSET OF [ TABLE 2 ]
158PARSE_TABLE2 ENDS ; PARSER!
159;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
160;
161; CODE PAGE POINTER STRUCTURE
162;
163;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
164CP_PNTER_STRUC STRUC ;
165HDWR_CP_STRUC DW ? ;
166DESG_CP_STRUC DW ? ;
167FONT_CP_STRUC DW ? ;
168WRITE_DATA_STRUC DW ? ;
169FONT_DATA_STRUC DW ? ;
170CP_PNTER_STRUC ENDS ;
171;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
172;
173; CON data structure CS:[BX]
174;
175;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
176BUF EQU CS:[BX] ;
177 ; STATES
178BUF_DATA STRUC ;
179DEV_HDRO DW -1 ; device driver header offset
180DEV_HDRS DW -1 ;
181CON_STRAO DW -1 ; dos CON strategy offset
182CON_STRAS DW -1 ;
183CON_INTRO DW -1 ; dos CON strategy offset
184CON_INTRS DW -1 ;
185RH_PTRO DW -1 ; request header offset
186RH_PTRS DW -1 ; segment
187STATE DW ? ;
188STATUS DW ? ;
189BUF_DATA ENDS ;
190;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
191;
192; General Constants
193;
194;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
195INT_2F_LOW EQU (4*2FH) ; INTERRUPT 2FH CON/KEYB COMMUNICATION
196INT_2F_HI EQU (4*2FH)+2 ;
197INT_43_LOW EQU (4*43H) ; INTERRUPT 43H 0-255 CHARACTER VECTOR
198INT_43_HI EQU (4*43H)+2 ;
199INT_44_LOW EQU (4*44H) ; INTERRUPT 44H 0-255 CHARACTER VECTOR
200INT_44_HI EQU (4*44H)+2 ;
201INT_1F_LOW EQU (4*1FH) ; INTERRUPT 1FH EXTENDED CHARACTER SUPPORT
202INT_1F_HI EQU (4*1FH)+2 ;
203INT_10_LOW EQU (4*10H) ; INTERRUPT 10H fix FOR PALACE
204INT_10_HI EQU (4*10H)+2 ;
205GET_MODE EQU 0FH ; WGR ;AN000;
206ON EQU 1 ; WGR ;AN000;
207OFF EQU 0 ; WGR ;AN000;
208RECALC_ON EQU 0010H ; WGR ;AN000;
209VIDEO_CTRL EQU 487H ; WGR ;AN000;
210ANSI_BUF_SIZE EQU 14 ; WGR ;AN000;
211DEFAULT_LEN EQU 25 ; WGR ;AN000;
212NUMBER EQU 1 ; WGR ;AN000;
213STRING EQU 3 ; WGR ;AN000;
214COMPLEX EQU 4 ; WGR ;AN000;
215RC_EOL EQU -1 ; WGR ;AN000;
216RC_NO_ERROR EQU 0 ; WGR ;AN000;
217FUNC_CALL EQU 1BH ; WGR ;AN000;
218VGA_FOUND EQU 00000001B ; WGR ;AN000;
219EGA_FOUND EQU 00000001B ; WGR ;AN000;
220LCD_FOUND EQU 00000010B ; WGR ;AN000;
221CGA_FOUND EQU 00000100B ; WGR ;AN000;
222MONO_FOUND EQU 00001000B ; WGR ;AN000;
223ALT_SELECT EQU 12H ; WGR ;AN000;
224EGA_INFO_CALL EQU 10H ; WGR ;AN000;
225GET_SYS_ID EQU 0C0H ; WGR ;AN000;
226GET_STATUS EQU 43H ; WGR ;AN000;
227LCD_MODEL EQU 0F9H ; WGR ;AN000;
228COLOR_ADDRESS EQU 0B800H ; WGR ;AN000;
229MONO_ADDRESS EQU 0B000H ; WGR ;AN000;
230ERROR_1 EQU 2 ; WGR ;AN000;
231ERROR_2 EQU 12 ; WGR ;AN000;
232ERROR_3 EQU 8 ; WGR ;AN000;
233;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
234;
235; *** INT 2Fh used
236;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
237
238ANSI_2F EQU 1Ah ; WGR Muliflex number for ANSI ;AC003;
239;Catagory code
240IOCTL_2F EQU 1h ;
241DA_INFO_2F EQU 2h ;J.K. Information passing to ANSI.
242;Subfunction code for IOCTL_2F
243GET_SUBFUNC EQU 7FH ; WGR Same structure as GET_IOCTL(ANSI);AN000;
244
245;Info Struture for DA_INFO_2F. (DS:DX point to this packet)
246;J.K. Note: For DOS 4.00, DA_INFO_PACKET is used to signal ANSI.SYS that
247;DISPLAY.SYS is calling/finishing INT 10h SET MODE call. ANSI.SYS needs this
248;infomration since it also hooks INT 10h vector.
249;For this DA_SETMODE_FLAG purpose, DA_INFO_LEVEL and DA_INFO_DIRECTION should always be
250;set to 0. This can be extended for another information passing scheme between
251;DISPLAY.SYS and ANSI.SYS in the future version.
252;For DA_SETMODE_FLAG, DISPLAY.SYS should be extremely careful that when it calls
253;with DA_SETMODE_FLAG =1, then it should calls with DA_SETMODE_FLAG=0
254;when it finished INT 10h function call. Otherwise, the system goes .....
255DA_INFO_PACKET struc
256DA_INFO_LEVEL db 0 ; 0 for DA_SETMODE_FLAG, 1 for DA_OPTION_L_STATE query (for OS2 compat. box).
257DA_SETMODE_FLAG db 0 ; 1: DISPLAY.SYS is calling INT 10h call, SET MODE. 0= finished.
258DA_OPTION_L_STATE db 0 ; on return from ANSI, 1 = ANSI /L option active, 0 = inactive.
259DA_INFO_PACKET ends
260
261;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
262;
263; *** DEF-EQU *** DEF-EQU *** DEF-EQU ***
264;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
265;
266; Information Block Structure
267; (for functionality call)
268;
269;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
270INFO_BLOCK STRUC ; info block for functionality call ;AN000;
271STATIC_ADDRESS DD ? ; address of static functionality table;AN000;
272 DB 33 DUP(?) ; don't care ;AN000;
273ACTIVE_DISPLAY DB ? ; active display code ;AN000;
274ALT_DISPLAY DB ? ; alternate display code ;AN000;
275 DB 3 DUP(?) ; don't care ;AN000;
276CURRENT_SCANS DB ? ; current number of scan lines ;AN000;
277 DB 2 DUP(?) ; don't care ;AN000;
278MISC_INFO DB ? ; miscellaneous state information ;AN000;
279 DB 18 DUP(?) ; don't care ;AN000;
280INFO_BLOCK ENDS ;
281;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
282;
283; Structure of System ID call return block
284;
285;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
286SYS_ID STRUC ; format of return system config data ;AN000;
287 DW ? ; don't care ;AN000;
288MODEL_BYTE DB ? ; model byte ;AN000;
289SYS_ID ENDS ; ;AN000;
290;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
diff --git a/v4.0/src/DEV/DISPLAY/DISPLAY.ASM b/v4.0/src/DEV/DISPLAY/DISPLAY.ASM
new file mode 100644
index 0000000..16738b7
--- /dev/null
+++ b/v4.0/src/DEV/DISPLAY/DISPLAY.ASM
@@ -0,0 +1,388 @@
1PAGE ,132
2TITLE DOS - CONSOLE Code Page Switching Device Driver
3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
4;
5; FILENAME: DISPLAY.ASM
6; PROGRAM: DISPLAY.SYS (Main module)
7; LINK PROCEDURE: Linkk
8; INSTALLATION:
9;
10; This routine is structured as a DOS Device Driver.
11; IE it is installed via the CONFIG.SYS command:
12; DEVICE=DISPLAY.SYS
13;
14; The following device commands are supported:
15;
16; 00 hex - INIT
17; -------------
18; Install the CON device driver. This is used for downloading of
19; the character sets (various Code Pages) according to the respective
20; display adapter. The interface provided by the video BIOS is used
21; to download a block of 256 characters (in various resolutions - ie.
22; 8x8, 8x14, and 8x16). Also, the interrupt 2F hex is chained for
23; communication between the CON device driver and the keyboard routine.
24;
25; Refer to INIT.ASM for code
26;
27; 13 hex - GENERIC IOCTL
28; ----------------------
29; INVOKE
30; ------
31; Invoke is use to activate the appropriate CP font. The mechanism
32; is based soley on the code page value passed from the MODE & CHCP
33; commands. Once a CP ahs benn INVOKED, it is loaded for ALL display
34; modes on the respective display adapter - ONLY IF the proper font
35; resolution can be accessed.
36;
37; Refer to CPS-FUNC.INC for code
38;
39; DESIGNATE START
40; ---------------
41; Designate start passes the list of designated code pages to load.
42; It is sent just prior to the IOCTL WRITE calls containing the 'CPI'
43; files. The list of designated code pages is check for duplicates
44; and for invalids (-1).
45;
46; Refer to CPS-FUNC.INC for code
47;
48; DESIGNATE STOP
49; --------------
50; Once the data (for a DESIGNATION) has been routed to the CPS driver,
51; it is followed by a DESIGNATE STOP command. This confirms the completion
52; of the DESIGNATE procedure. If there was an error detected during the
53; DESIGNATE procedure, it must be followed by a DESIGNATE STOP.
54;
55; Refer to CPS-FUNC.INC for code
56;
57;
58; 0C hex - IOCTL OUTPUT
59; ---------------------
60; Following a DESIGNATE START, the contents of the specified data file
61; (expected .CPI format) is copied by DOS to the CPS driver. This is
62; via the GENERIC IOCTL WRITE calls. During these calls, the data is
63; parsed by the FONT-PARSER (F-PARSER.SRC) to select the CP and fonts
64; required.
65;
66; Refer to CPS-FUNC.INC for code
67;
68;
69; (C)Copyright 1988 Microsoft
70;
71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
72 ;
73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
74;
75; Request Header (Common portion)
76;
77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
78IF1 ;
79 %OUT .Compiling: DISPLAY.ASM
80 %OUT . ô CPS-CON driver
81 %OUT . õ Version 3.30
82 %OUT .Include Files:
83ENDIF ;
84 INCLUDE MACROS.INC ;
85 INCLUDE DEF-EQU.INC ;
86 ;
87 PUBLIC EOF_MARKER ;
88 PUBLIC CPD_ACTIVE ;
89 PUBLIC CPD_CLASS ;
90 PUBLIC CPD_HDWR_N_MAX ;
91 PUBLIC CPD_DESG_N_MAX ;
92 PUBLIC CPD_HDWR_N ;
93 PUBLIC CPD_DESG_N ;
94 PUBLIC CPD_FONTS_N ;
95 PUBLIC CPD_FONT_PNTER ;
96 PUBLIC IRPT_2 ;
97 PUBLIC IRPT_CMD_EXIT ;
98 PUBLIC DEV_HDR ;
99 EXTRN INIT:NEAR ;
100 ;
101CODE SEGMENT BYTE PUBLIC 'CODE' ;
102 ASSUME CS:CODE,DS:CODE ;
103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
104;****************************************
105;** Resident Code **
106;****************************************
107;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
108START EQU $ ; begin resident data & code
109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
110;
111; DEVICE HEADER - must be at offset zero within device driver
112; (DHS is defined according to this structure)
113;
114;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
115 ORG 0000H ;
116 ;
117DEV_HDR:DD -1 ; Pointer to next device header
118 DW 0C053H ; Attribute (Char device)
119 DW OFFSET STRATEGY ; Pnter to device "strategy"
120 DW OFFSET INTERRUPT ; Pnter to device "interrupt"
121 DB 'CON ' ; Device name
122 ; and of course a descriptive name
123 ; which can be viewed by a TYPE!
124;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
125;
126; Console Description Table
127;
128;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
129.XLIST ;
130STACK_END DW 1FFH+60H DUP(0) ; 200H + 'my' needs (re/ DOS 3.30 ref)
131STACK_START DW 0 ;
132OLD_STACK_S DW ? ;
133OLD_STACK_O DW ? ;
134.LIST ;
135 ;
136BUF1: BUF_DATA <> ; exclude PAR_EXTRACTO
137 ;
138CP_PNTER_TABLE DW OFFSET CPD_HDWR_N ; TABLE OF POINTERS TO CP INFO
139 DW OFFSET CPD_DESG_N ;
140 DW OFFSET CPD_FONT_PNTER;
141 DW OFFSET CPD_FONT_WRITE;
142 DW OFFSET CPD_FONT_DATA ;
143 ;
144CPD_TABLE LABEL WORD ; TABLE DATA INFO FOR CP's
145CPD_ACTIVE DW -1 ; TEMPORARY
146CPD_CLASS DB '........' ; THIS IS SET TO (EGA, LCD)
147CPD_FONTS_N DW -1 ;
148CPD_HDWR_N DW 0 ;
149 DW 12 DUP(-1) ; (HDWR_CP's) (MAX=12)
150CPD_HDWR_N_MAX EQU ($-CPD_HDWR_N)/2-1 ;
151CPD_DESG_N DW -1 ; # OF DESIG CP's
152 DW 12 DUP(-1) ; (DESG CP's) (MAX=12)
153CPD_DESG_N_MAX EQU ($-CPD_DESG_N)/2-1 ;
154CPD_FONT_PNTER DW 12 DUP(0,0) ; SEG_OFFSET POINTER TO DATA BUFFERS
155CPD_FONT_WRITE DW 12 DUP(0,0) ; SEG_OFFSET OF FONTS BEING WRITTEN
156CPD_FONT_DATA DW 12 DUP(0) ; COUNT OF FONT DATA TO SKIP/COPY!
157FONT_PRIORITY DB 8 DUP(-1) ; USED TO CLASSIFY FONT PRIORITY
158NUM_FONT_PRIORITY EQU ($-FONT_PRIORITY) ; DURING A DESIGNATION
159CPD_TEMP_DESG DW 0 ; # OF DESIG CP's TEMP BUFFER
160 DW 12 DUP(-1) ; (DESG CP's) (MAX=12)
161CPD_REQ_DESG DW 0 ; # OF DESIG CP's REQUESTED
162 DW 12 DUP(-1) ; (DESG CP's) (MAX=12)
163;;;;;;;
164
165ANSI_DA_INFO DA_INFO_PACKET <> ;J.K. Information packet to ANSI used for MODE SET INT10 call.
166
167;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
168;
169; CON Device "strategy" entry point
170; Retain the Request Header address for use by Interrupt routine
171;
172;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
173 ASSUME DS:NOTHING ;
174STRATEGY PROC FAR ;
175 PUSH BX ;
176 PUSH BX ;
177 LEA BX, BUF1 ; BUF = BUF1 CS:[BX]
178 POP BUF.RH_PTRO ; OFFSET OF REQUEST HEADER
179 MOV BUF.RH_PTRS,ES ; SEGMENT
180 POP BX ;
181 RET ;
182STRATEGY ENDP ;
183;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
184;
185; Table of command processing routine entry points
186;
187;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
188CMD_TABLE LABEL WORD ;
189 DW OFFSET INIT ; 0 - Initialization
190 DW OFFSET NO_OPERATION ; 1 - Media check
191 DW OFFSET NO_OPERATION ; 2 - Build BPB
192 DW OFFSET NO_OPERATION ; 3 - IOCTL input
193 DW OFFSET NO_OPERATION ; 4 - Input
194 DW OFFSET NO_OPERATION ; 5 - Non destructive input no wait
195 DW OFFSET NO_OPERATION ; 6 - Input status
196 DW OFFSET NO_OPERATION ; 7 - Input flush
197 DW OFFSET NO_OPERATION ; 8 - Write
198 DW OFFSET NO_OPERATION ; 9 - Output with verify
199 DW OFFSET NO_OPERATION ; A - Output status
200 DW OFFSET NO_OPERATION ; B - Output flush
201 DW OFFSET DESG_WRITE ; C - IOCTL output
202 DW OFFSET NO_OPERATION ; D - Device OPEN
203 DW OFFSET NO_OPERATION ; E - Device CLOSE
204 DW OFFSET NO_OPERATION ; F - Removable media
205 DW OFFSET NO_OPERATION ; 10 - Removable media
206 DW OFFSET NO_OPERATION ; 11 - Removable media
207 DW OFFSET NO_OPERATION ; 12 - Removable media
208 DW OFFSET GENERIC_IOCTL ; 13 - Removable media
209MAX_CMD EQU ($-CMD_TABLE)/2 ; highest valid command follows
210;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
211;
212; CON Device "interrupt" entry point
213;
214;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
215INTERRUPT PROC FAR ; device interrupt entry point
216 PUSH AX ;
217 PUSH BX ;
218 PUSH CX ;
219 PUSH DI ;
220 PUSH SI ;
221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
222;
223; Common interrupt entry :
224; at entry, BUFn (CS:BX) of CON is defined
225;
226; Check if header link has to be set
227;
228;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
229 LEA BX, BUF1 ;
230 MOV DI,OFFSET DEV_HDR ; CON Device header
231 ;
232 MOV BUF.DEV_HDRO,DI ;
233 MOV BUF.DEV_HDRS,CS ;
234 CLD ; all moves forward
235 ;
236 CMP BUF.CON_STRAO, -1 ;
237 JNE L4 ; has been linked to DOS CON
238 CMP BUF.CON_STRAS, -1 ;
239 JNE L4 ; has been linked to DOS CON
240 ; next device header : ES:[DI]
241 LDS SI,DWORD PTR BUF.DEV_HDRO;
242 LES DI,DWORD PTR HP.DH_NEXTO;
243 ;
244;$SEARCH WHILE ; pointer to next device header is NOT
245L1: ;
246 PUSH ES ; -1
247 POP AX ;
248 CMP AX,-1 ;
249;$LEAVE E, AND ; leave if both offset and segment are
250 JNE NOT0FFFF ;
251 ;
252 CMP DI,-1 ; 0FFFFH
253;$LEAVE E ;
254 JE L4 ;
255NOT0FFFF: ;
256 PUSH DI ;
257 PUSH SI ;
258 MOV CX,NAME_LEN ;
259 LEA DI,NHD.DH_NAME ;
260 LEA SI,HP.DH_NAME ;
261 REPE CMPSB ;
262 POP SI ;
263 POP DI ;
264 AND CX,CX ;
265;$EXITIF Z ; Exit if name is found in linked hd.
266 JNZ L3 ; Name is not found
267 ; Name is found in the linked header
268 MOV AX,NHD.DH_STRAO ; Get the STRATEGY address
269 MOV BUF.CON_STRAO,AX ;
270 MOV AX,ES ;
271X1: MOV BUF.CON_STRAS,AX ;
272 ;
273 MOV AX,NHD.DH_INTRO ; Get the INTERRUPT address
274 MOV BUF.CON_INTRO,AX ;
275 MOV AX,ES ;
276X2: MOV BUF.CON_INTRS,AX ;
277 ;
278;$ORELSE ; FInd next header to have the same
279 JMP L4 ; Device Name
280L3: ;
281 LES DI,DWORD PTR NHD.DH_NEXTO;
282;$ENDLOOP ;
283 JMP L1 ;
284L4: ;
285;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
286;
287; COMMAND REQUEST
288; ES:DI REQUEST HEADER
289;
290;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
291 LES DI,DWORD PTR BUF.RH_PTRO; GET RH ADDRESS PASSED TO
292 ; "STRATEGY" INTO ES:DI
293 MOV AL,RH.RHC_CMD ; COMMAND CODE FROM REQUEST HEADER
294 CBW ; ZERO AH (IF AL > 7FH, NEXT COMPARE
295 ; WILL CATCH THAT ERROR)
296 CMP AL,MAX_CMD ; IF COMMAND CODE IS TOO HIGH
297 JAE L6 ; JUMP TO ERROR ROUTINE
298 ;
299 ADD AX,AX ; DOUBLE COMMAND CODE FOR TABLE OFFSET
300 MOV SI,AX ; PUT INTO INDEX REGISTER FOR JMP
301 ;
302 CALL CS:CMD_TABLE[SI] ; CALL ROUTINE TO HANDLE THE COMMAND
303 JC IRPT_CMD_EXIT ; CY=1 IF NO PASS_CONTROL REQ'D
304 CALL PASS_CONTROL ;
305 JUMP IRPT_2 ;
306 ;
307L6: CALL PASS_CONTROL ; CALL ROUTINE TO HANDLE THE COMMAND
308;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
309; At entry to command processing routine
310;
311; ES:DI = Request Header address
312; CS:BX = Buffer for CON
313; CS = code segment address
314; AX = 0
315;
316; top of stack is return address, IRPT_CMD_EXIT
317;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
318IRPT_CMD_EXIT: ; RETURN FROM COMMAND ROUTINE
319 LES DI,DWORD PTR BUF.RH_PTRO; RESTORE ES:DI AS REQUEST HEADER PTR
320 XOR AX,AX ;
321 OR AX,BUF.STATUS ;
322 JE IRPT_0 ;
323 XOR BUF.STATUS,AX ; SET STATUS BACK TO OK!
324 OR AX,STAT_CMDERR ;
325 JUMP IRPT_1 ;
326IRPT_0: OR AH,STAT_DONE ; ADD "DONE" BIT TO STATUS WORD
327IRPT_1: MOV RH.RHC_STA,AX ; STORE STATUS INTO REQUEST HEADER
328IRPT_2: POP SI ; RESTORE REGISTERS
329 POP DI ;
330 POP CX ;
331 POP BX ;
332 POP AX ;
333 RET ;
334INTERRUPT ENDP ;
335;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
336;
337; PASS CONTROL
338;
339; This calls the attached device to perform any further
340; action on the call!
341;
342;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
343PASS_CONTROL PROC ;
344 PUSH BX ;
345 PUSH BX ;
346 POP SI ;
347 LES BX,DWORD PTR BUF.RH_PTRO; pass the request header to the
348 CALL DWORD PTR CS:[SI].CON_STRAO ; CON strategy routine.
349 POP BX ;
350 CALL DWORD PTR BUF.CON_INTRO ; interrupt the CON
351 RET ;
352PASS_CONTROL ENDP ;
353;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
354;
355;
356;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
357NO_OPERATION PROC ;
358 CLC ;
359 RET ;
360NO_OPERATION ENDP ;
361;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
362;
363; PULL IN THE CODE PAGE FUNCTION CODE
364;
365;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
366 INCLUDE INT2FCOM.INC ;
367 INCLUDE INT10COM.INC ;
368 INCLUDE CPS-FUNC.INC ;
369 INCLUDE WRITE.INC ; SPECIAL MARKER IN WRITE.INC
370 INCLUDE F-PARSER.INC ;
371;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
372;
373; Adjust the assembly-time instruction counter to a paragraph
374; boundary
375;
376;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
377 IF ($-START) MOD 16 ;
378 ORG ($-START)+16-(($-START) MOD 16);
379 ENDIF ;
380EOF_MARKER EQU $ ; end of resident code
381;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
382;
383; END-OF-CODE
384;
385;;;;;;;;;;;;;;;;;
386CODE ENDS ;
387 END ;
388;;;;;;;;;;;;;;;;;
diff --git a/v4.0/src/DEV/DISPLAY/DISPLAY.LNK b/v4.0/src/DEV/DISPLAY/DISPLAY.LNK
new file mode 100644
index 0000000..e46ab3f
--- /dev/null
+++ b/v4.0/src/DEV/DISPLAY/DISPLAY.LNK
@@ -0,0 +1,4 @@
1DISPLAY.OBJ+
2INIT.OBJ+
3PARSER.OBJ
4DISPLAY.EXE;
diff --git a/v4.0/src/DEV/DISPLAY/DISPLAY.SKL b/v4.0/src/DEV/DISPLAY/DISPLAY.SKL
new file mode 100644
index 0000000..985006a
--- /dev/null
+++ b/v4.0/src/DEV/DISPLAY/DISPLAY.SKL
@@ -0,0 +1,15 @@
1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2;
3; Message Skeleton file for DISPLAY.SYS
4;
5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
6
7:util DISPLAY ; utility name
8
9:class A
10:use 1 COMMON1
11:def 2 "%1 code page driver cannot be initialized",CR,LF,BELL
12:def 8 "Insufficient memory",CR,LF,BELL
13:def 12 "Invalid syntax on DISPLAY.SYS code page driver",CR,LF,BELL
14
15:end
diff --git a/v4.0/src/DEV/DISPLAY/DISPMES.ASM b/v4.0/src/DEV/DISPLAY/DISPMES.ASM
new file mode 100644
index 0000000..3f7c551
--- /dev/null
+++ b/v4.0/src/DEV/DISPLAY/DISPMES.ASM
@@ -0,0 +1,17 @@
1CODE SEGMENT BYTE PUBLIC 'CODE' ;
2 ASSUME CS:CODE,DS:CODE ;
3 ;
4CR EQU 13 ;
5LF EQU 10 ;
6 ;
7 PUBLIC ERROR_1B ;
8 PUBLIC ERROR_1A ;
9 PUBLIC ERROR_2 ;
10 PUBLIC ERROR_3 ;
11;; PUBLIC MSG_4 ;
12 ;
13INCLUDE DISPMES.INC
14 ;
15CODE ENDS ;
16 END ;
17 \ No newline at end of file
diff --git a/v4.0/src/DEV/DISPLAY/EGA/437-8X14.ASM b/v4.0/src/DEV/DISPLAY/EGA/437-8X14.ASM
new file mode 100644
index 0000000..e723b78
--- /dev/null
+++ b/v4.0/src/DEV/DISPLAY/EGA/437-8X14.ASM
@@ -0,0 +1,269 @@
1;***************************************************
2; CHARACTER FONT FILE
3; Source Assembler File
4;
5; CODE PAGE: 437
6; FONT RESOLUTION: 8 x 14
7;
8; DATE CREATED:05-28-1987
9;
10;
11; Output file from: MULTIFON, Version 1A
12;
13;***************************************************
14 Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #0
15 Db 000h,000h,000h,07Eh,081h,0A5h,081h,081h,0BDh,099h,081h,07Eh,000h,000h ; Hex #1
16 Db 000h,000h,000h,07Eh,0FFh,0DBh,0FFh,0FFh,0C3h,0E7h,0FFh,07Eh,000h,000h ; Hex #2
17 Db 000h,000h,000h,000h,06Ch,0FEh,0FEh,0FEh,0FEh,07Ch,038h,010h,000h,000h ; Hex #3
18 Db 000h,000h,000h,000h,010h,038h,07Ch,0FEh,07Ch,038h,010h,000h,000h,000h ; Hex #4
19 Db 000h,000h,000h,018h,03Ch,03Ch,0E7h,0E7h,0E7h,018h,018h,03Ch,000h,000h ; Hex #5
20 Db 000h,000h,000h,018h,03Ch,07Eh,0FFh,0FFh,07Eh,018h,018h,03Ch,000h,000h ; Hex #6
21 Db 000h,000h,000h,000h,000h,000h,018h,03Ch,03Ch,018h,000h,000h,000h,000h ; Hex #7
22 Db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0E7h,0C3h,0C3h,0E7h,0FFh,0FFh,0FFh,0FFh ; Hex #8
23 Db 000h,000h,000h,000h,000h,03Ch,066h,042h,042h,066h,03Ch,000h,000h,000h ; Hex #9
24 Db 0FFh,0FFh,0FFh,0FFh,0FFh,0C3h,099h,0BDh,0BDh,099h,0C3h,0FFh,0FFh,0FFh ; Hex #A
25 Db 000h,000h,000h,01Eh,00Eh,01Ah,032h,078h,0CCh,0CCh,0CCh,078h,000h,000h ; Hex #B
26 Db 000h,000h,000h,03Ch,066h,066h,066h,03Ch,018h,07Eh,018h,018h,000h,000h ; Hex #C
27 Db 000h,000h,000h,03Fh,033h,03Fh,030h,030h,030h,070h,0F0h,0E0h,000h,000h ; Hex #D
28 Db 000h,000h,000h,07Fh,063h,07Fh,063h,063h,063h,067h,0E7h,0E6h,0C0h,000h ; Hex #E
29 Db 000h,000h,000h,018h,018h,0DBh,03Ch,0E7h,03Ch,0DBh,018h,018h,000h,000h ; Hex #F
30 Db 000h,000h,000h,080h,0C0h,0E0h,0F8h,0FEh,0F8h,0E0h,0C0h,080h,000h,000h ; Hex #10
31 Db 000h,000h,000h,002h,006h,00Eh,03Eh,0FEh,03Eh,00Eh,006h,002h,000h,000h ; Hex #11
32 Db 000h,000h,000h,018h,03Ch,07Eh,018h,018h,018h,07Eh,03Ch,018h,000h,000h ; Hex #12
33 Db 000h,000h,000h,066h,066h,066h,066h,066h,066h,000h,066h,066h,000h,000h ; Hex #13
34 Db 000h,000h,000h,07Fh,0DBh,0DBh,0DBh,07Bh,01Bh,01Bh,01Bh,01Bh,000h,000h ; Hex #14
35 Db 000h,000h,07Ch,0C6h,060h,038h,06Ch,0C6h,0C6h,06Ch,038h,00Ch,0C6h,07Ch ; Hex #15
36 Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,0FEh,0FEh,0FEh,000h,000h ; Hex #16
37 Db 000h,000h,000h,018h,03Ch,07Eh,018h,018h,018h,07Eh,03Ch,018h,07Eh,000h ; Hex #17
38 Db 000h,000h,000h,018h,03Ch,07Eh,018h,018h,018h,018h,018h,018h,000h,000h ; Hex #18
39 Db 000h,000h,000h,018h,018h,018h,018h,018h,018h,07Eh,03Ch,018h,000h,000h ; Hex #19
40 Db 000h,000h,000h,000h,000h,018h,00Ch,0FEh,00Ch,018h,000h,000h,000h,000h ; Hex #1A
41 Db 000h,000h,000h,000h,000h,030h,060h,0FEh,060h,030h,000h,000h,000h,000h ; Hex #1B
42 Db 000h,000h,000h,000h,000h,000h,0C0h,0C0h,0C0h,0FEh,000h,000h,000h,000h ; Hex #1C
43 Db 000h,000h,000h,000h,000h,028h,06Ch,0FEh,06Ch,028h,000h,000h,000h,000h ; Hex #1D
44 Db 000h,000h,000h,000h,010h,038h,038h,07Ch,07Ch,0FEh,0FEh,000h,000h,000h ; Hex #1E
45 Db 000h,000h,000h,000h,0FEh,0FEh,07Ch,07Ch,038h,038h,010h,000h,000h,000h ; Hex #1F
46 Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #20
47 Db 000h,000h,000h,018h,03Ch,03Ch,03Ch,018h,018h,000h,018h,018h,000h,000h ; Hex #21
48 Db 000h,066h,066h,066h,024h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #22
49 Db 000h,000h,000h,06Ch,06Ch,0FEh,06Ch,06Ch,06Ch,0FEh,06Ch,06Ch,000h,000h ; Hex #23
50 Db 000h,018h,018h,07Ch,0C6h,0C2h,0C0h,07Ch,006h,086h,0C6h,07Ch,018h,018h ; Hex #24
51 Db 000h,000h,000h,000h,000h,0C2h,0C6h,00Ch,018h,030h,066h,0C6h,000h,000h ; Hex #25
52 Db 000h,000h,000h,038h,06Ch,06Ch,038h,076h,0DCh,0CCh,0CCh,076h,000h,000h ; Hex #26
53 Db 000h,018h,018h,018h,030h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #27
54 Db 000h,000h,000h,00Ch,018h,030h,030h,030h,030h,030h,018h,00Ch,000h,000h ; Hex #28
55 Db 000h,000h,000h,030h,018h,00Ch,00Ch,00Ch,00Ch,00Ch,018h,030h,000h,000h ; Hex #29
56 Db 000h,000h,000h,000h,000h,066h,03Ch,0FFh,03Ch,066h,000h,000h,000h,000h ; Hex #2A
57 Db 000h,000h,000h,000h,000h,018h,018h,07Eh,018h,018h,000h,000h,000h,000h ; Hex #2B
58 Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,018h,018h,018h,030h,000h ; Hex #2C
59 Db 000h,000h,000h,000h,000h,000h,000h,0FEh,000h,000h,000h,000h,000h,000h ; Hex #2D
60 Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,018h,018h,000h,000h ; Hex #2E
61 Db 000h,000h,000h,002h,006h,00Ch,018h,030h,060h,0C0h,080h,000h,000h,000h ; Hex #2F
62 Db 000h,000h,000h,038h,06Ch,0C6h,0C6h,0D6h,0C6h,0C6h,06Ch,038h,000h,000h ; Hex #30
63 Db 000h,000h,000h,018h,038h,078h,018h,018h,018h,018h,018h,07Eh,000h,000h ; Hex #31
64 Db 000h,000h,000h,07Ch,0C6h,006h,00Ch,018h,030h,060h,0C6h,0FEh,000h,000h ; Hex #32
65 Db 000h,000h,000h,07Ch,0C6h,006h,006h,03Ch,006h,006h,0C6h,07Ch,000h,000h ; Hex #33
66 Db 000h,000h,000h,00Ch,01Ch,03Ch,06Ch,0CCh,0FEh,00Ch,00Ch,01Eh,000h,000h ; Hex #34
67 Db 000h,000h,000h,0FEh,0C0h,0C0h,0C0h,0FCh,006h,006h,0C6h,07Ch,000h,000h ; Hex #35
68 Db 000h,000h,000h,038h,060h,0C0h,0C0h,0FCh,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #36
69 Db 000h,000h,000h,0FEh,0C6h,006h,00Ch,018h,030h,030h,030h,030h,000h,000h ; Hex #37
70 Db 000h,000h,000h,07Ch,0C6h,0C6h,0C6h,07Ch,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #38
71 Db 000h,000h,000h,07Ch,0C6h,0C6h,0C6h,07Eh,006h,006h,00Ch,078h,000h,000h ; Hex #39
72 Db 000h,000h,000h,000h,018h,018h,000h,000h,000h,018h,018h,000h,000h,000h ; Hex #3A
73 Db 000h,000h,000h,000h,018h,018h,000h,000h,000h,018h,018h,030h,000h,000h ; Hex #3B
74 Db 000h,000h,000h,00Ch,018h,030h,060h,0C0h,060h,030h,018h,00Ch,000h,000h ; Hex #3C
75 Db 000h,000h,000h,000h,000h,000h,07Eh,000h,000h,07Eh,000h,000h,000h,000h ; Hex #3D
76 Db 000h,000h,000h,060h,030h,018h,00Ch,006h,00Ch,018h,030h,060h,000h,000h ; Hex #3E
77 Db 000h,000h,000h,07Ch,0C6h,0C6h,00Ch,018h,018h,000h,018h,018h,000h,000h ; Hex #3F
78 Db 000h,000h,000h,07Ch,0C6h,0C6h,0DEh,0DEh,0DEh,0DCh,0C0h,07Ch,000h,000h ; Hex #40
79 Db 000h,000h,000h,010h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,000h,000h ; Hex #41
80 Db 000h,000h,000h,0FCh,066h,066h,066h,07Ch,066h,066h,066h,0FCh,000h,000h ; Hex #42
81 Db 000h,000h,000h,03Ch,066h,0C2h,0C0h,0C0h,0C0h,0C2h,066h,03Ch,000h,000h ; Hex #43
82 Db 000h,000h,000h,0F8h,06Ch,066h,066h,066h,066h,066h,06Ch,0F8h,000h,000h ; Hex #44
83 Db 000h,000h,000h,0FEh,066h,062h,068h,078h,068h,062h,066h,0FEh,000h,000h ; Hex #45
84 Db 000h,000h,000h,0FEh,066h,062h,068h,078h,068h,060h,060h,0F0h,000h,000h ; Hex #46
85 Db 000h,000h,000h,03Ch,066h,0C2h,0C0h,0C0h,0DEh,0C6h,066h,03Ah,000h,000h ; Hex #47
86 Db 000h,000h,000h,0C6h,0C6h,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,0C6h,000h,000h ; Hex #48
87 Db 000h,000h,000h,03Ch,018h,018h,018h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #49
88 Db 000h,000h,000h,01Eh,00Ch,00Ch,00Ch,00Ch,00Ch,0CCh,0CCh,078h,000h,000h ; Hex #4A
89 Db 000h,000h,000h,0E6h,066h,06Ch,06Ch,078h,06Ch,06Ch,066h,0E6h,000h,000h ; Hex #4B
90 Db 000h,000h,000h,0F0h,060h,060h,060h,060h,060h,062h,066h,0FEh,000h,000h ; Hex #4C
91 Db 000h,000h,000h,0C6h,0EEh,0FEh,0D6h,0C6h,0C6h,0C6h,0C6h,0C6h,000h,000h ; Hex #4D
92 Db 000h,000h,000h,0C6h,0E6h,0F6h,0FEh,0DEh,0CEh,0C6h,0C6h,0C6h,000h,000h ; Hex #4E
93 Db 000h,000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #4F
94 Db 000h,000h,000h,0FCh,066h,066h,066h,07Ch,060h,060h,060h,0F0h,000h,000h ; Hex #50
95 Db 000h,000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0D6h,0DEh,07Ch,00Eh,000h ; Hex #51
96 Db 000h,000h,000h,0FCh,066h,066h,066h,07Ch,06Ch,066h,066h,0E6h,000h,000h ; Hex #52
97 Db 000h,000h,000h,07Ch,0C6h,0C6h,060h,038h,00Ch,0C6h,0C6h,07Ch,000h,000h ; Hex #53
98 Db 000h,000h,000h,07Eh,07Eh,05Ah,018h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #54
99 Db 000h,000h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #55
100 Db 000h,000h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,06Ch,038h,010h,000h,000h ; Hex #56
101 Db 000h,000h,000h,0C6h,0C6h,0C6h,0C6h,0D6h,0D6h,0FEh,06Ch,06Ch,000h,000h ; Hex #57
102 Db 000h,000h,000h,0C6h,0C6h,0C6h,07Ch,038h,07Ch,0C6h,0C6h,0C6h,000h,000h ; Hex #58
103 Db 000h,000h,000h,066h,066h,066h,066h,03Ch,018h,018h,018h,03Ch,000h,000h ; Hex #59
104 Db 000h,000h,000h,0FEh,0C6h,08Ch,018h,030h,060h,0C2h,0C6h,0FEh,000h,000h ; Hex #5A
105 Db 000h,000h,000h,03Ch,030h,030h,030h,030h,030h,030h,030h,03Ch,000h,000h ; Hex #5B
106 Db 000h,000h,000h,080h,0C0h,0E0h,070h,038h,01Ch,00Eh,006h,002h,000h,000h ; Hex #5C
107 Db 000h,000h,000h,03Ch,00Ch,00Ch,00Ch,00Ch,00Ch,00Ch,00Ch,03Ch,000h,000h ; Hex #5D
108 Db 010h,038h,06Ch,0C6h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #5E
109 Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,0FFh ; Hex #5F
110 Db 000h,030h,018h,00Ch,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #60
111 Db 000h,000h,000h,000h,000h,000h,078h,00Ch,07Ch,0CCh,0CCh,076h,000h,000h ; Hex #61
112 Db 000h,000h,000h,0E0h,060h,060h,078h,06Ch,066h,066h,066h,07Ch,000h,000h ; Hex #62
113 Db 000h,000h,000h,000h,000h,000h,07Ch,0C6h,0C0h,0C0h,0C6h,07Ch,000h,000h ; Hex #63
114 Db 000h,000h,000h,01Ch,00Ch,00Ch,03Ch,06Ch,0CCh,0CCh,0CCh,076h,000h,000h ; Hex #64
115 Db 000h,000h,000h,000h,000h,000h,07Ch,0C6h,0FEh,0C0h,0C6h,07Ch,000h,000h ; Hex #65
116 Db 000h,000h,000h,01Ch,036h,032h,030h,07Ch,030h,030h,030h,078h,000h,000h ; Hex #66
117 Db 000h,000h,000h,000h,000h,000h,076h,0CCh,0CCh,0CCh,07Ch,00Ch,0CCh,078h ; Hex #67
118 Db 000h,000h,000h,0E0h,060h,060h,06Ch,076h,066h,066h,066h,0E6h,000h,000h ; Hex #68
119 Db 000h,000h,000h,018h,018h,000h,038h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #69
120 Db 000h,000h,000h,006h,006h,000h,00Eh,006h,006h,006h,006h,066h,066h,03Ch ; Hex #6A
121 Db 000h,000h,000h,0E0h,060h,060h,066h,06Ch,078h,06Ch,066h,0E6h,000h,000h ; Hex #6B
122 Db 000h,000h,000h,038h,018h,018h,018h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #6C
123 Db 000h,000h,000h,000h,000h,000h,0ECh,0FEh,0D6h,0D6h,0D6h,0D6h,000h,000h ; Hex #6D
124 Db 000h,000h,000h,000h,000h,000h,0DCh,066h,066h,066h,066h,066h,000h,000h ; Hex #6E
125 Db 000h,000h,000h,000h,000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #6F
126 Db 000h,000h,000h,000h,000h,000h,0DCh,066h,066h,066h,07Ch,060h,060h,0F0h ; Hex #70
127 Db 000h,000h,000h,000h,000h,000h,076h,0CCh,0CCh,0CCh,07Ch,00Ch,00Ch,01Eh ; Hex #71
128 Db 000h,000h,000h,000h,000h,000h,0DCh,076h,066h,060h,060h,0F0h,000h,000h ; Hex #72
129 Db 000h,000h,000h,000h,000h,000h,07Ch,0C6h,070h,01Ch,0C6h,07Ch,000h,000h ; Hex #73
130 Db 000h,000h,000h,010h,030h,030h,0FCh,030h,030h,030h,036h,01Ch,000h,000h ; Hex #74
131 Db 000h,000h,000h,000h,000h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h ; Hex #75
132 Db 000h,000h,000h,000h,000h,000h,0C6h,0C6h,0C6h,06Ch,038h,010h,000h,000h ; Hex #76
133 Db 000h,000h,000h,000h,000h,000h,0C6h,0C6h,0D6h,0D6h,0FEh,06Ch,000h,000h ; Hex #77
134 Db 000h,000h,000h,000h,000h,000h,0C6h,06Ch,038h,038h,06Ch,0C6h,000h,000h ; Hex #78
135 Db 000h,000h,000h,000h,000h,000h,0C6h,0C6h,0C6h,0C6h,07Eh,006h,00Ch,078h ; Hex #79
136 Db 000h,000h,000h,000h,000h,000h,0FEh,0CCh,018h,030h,066h,0FEh,000h,000h ; Hex #7A
137 Db 000h,000h,000h,00Eh,018h,018h,018h,070h,018h,018h,018h,00Eh,000h,000h ; Hex #7B
138 Db 000h,000h,000h,018h,018h,018h,018h,018h,018h,018h,018h,018h,000h,000h ; Hex #7C
139 Db 000h,000h,000h,070h,018h,018h,018h,00Eh,018h,018h,018h,070h,000h,000h ; Hex #7D
140 Db 000h,076h,0DCh,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #7E
141 Db 000h,000h,000h,000h,000h,010h,038h,06Ch,0C6h,0C6h,0FEh,000h,000h,000h ; Hex #7F
142 Db 000h,000h,000h,03Ch,066h,0C2h,0C0h,0C0h,0C0h,0C2h,066h,03Ch,00Ch,078h ; Hex #80
143 Db 000h,000h,000h,0CCh,000h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h ; Hex #81
144 Db 000h,000h,00Ch,018h,030h,000h,07Ch,0C6h,0FEh,0C0h,0C6h,07Ch,000h,000h ; Hex #82
145 Db 000h,000h,010h,038h,06Ch,000h,078h,00Ch,07Ch,0CCh,0CCh,076h,000h,000h ; Hex #83
146 Db 000h,000h,000h,0C6h,000h,000h,078h,00Ch,07Ch,0CCh,0CCh,076h,000h,000h ; Hex #84
147 Db 000h,000h,060h,030h,018h,000h,078h,00Ch,07Ch,0CCh,0CCh,076h,000h,000h ; Hex #85
148 Db 000h,000h,038h,06Ch,038h,000h,078h,00Ch,07Ch,0CCh,0CCh,076h,000h,000h ; Hex #86
149 Db 000h,000h,000h,000h,000h,000h,07Ch,0C6h,0C0h,0C0h,0C6h,07Ch,00Ch,078h ; Hex #87
150 Db 000h,000h,010h,038h,06Ch,000h,07Ch,0C6h,0FEh,0C0h,0C6h,07Ch,000h,000h ; Hex #88
151 Db 000h,000h,000h,0C6h,000h,000h,07Ch,0C6h,0FEh,0C0h,0C6h,07Ch,000h,000h ; Hex #89
152 Db 000h,000h,060h,030h,018h,000h,07Ch,0C6h,0FEh,0C0h,0C6h,07Ch,000h,000h ; Hex #8A
153 Db 000h,000h,000h,066h,000h,000h,038h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #8B
154 Db 000h,000h,018h,03Ch,066h,000h,038h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #8C
155 Db 000h,000h,060h,030h,018h,000h,038h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #8D
156 Db 000h,0C6h,000h,010h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,000h,000h ; Hex #8E
157 Db 038h,06Ch,038h,010h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,000h,000h ; Hex #8F
158 Db 00Ch,018h,000h,0FEh,066h,062h,068h,078h,068h,062h,066h,0FEh,000h,000h ; Hex #90
159 Db 000h,000h,000h,000h,000h,000h,0ECh,036h,076h,0DCh,0D8h,06Eh,000h,000h ; Hex #91
160 Db 000h,000h,000h,03Eh,06Ch,0CCh,0CCh,0FEh,0CCh,0CCh,0CCh,0CEh,000h,000h ; Hex #92
161 Db 000h,000h,010h,038h,06Ch,000h,07Ch,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #93
162 Db 000h,000h,000h,0C6h,000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #94
163 Db 000h,000h,060h,030h,018h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #95
164 Db 000h,000h,030h,078h,0CCh,000h,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h ; Hex #96
165 Db 000h,000h,060h,030h,018h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h ; Hex #97
166 Db 000h,000h,000h,0C6h,000h,000h,0C6h,0C6h,0C6h,0C6h,07Eh,006h,00Ch,078h ; Hex #98
167 Db 000h,0C6h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #99
168 Db 000h,0C6h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #9A
169 Db 000h,000h,018h,018h,07Ch,0C6h,0C0h,0C0h,0C6h,07Ch,018h,018h,000h,000h ; Hex #9B
170 Db 000h,000h,038h,06Ch,064h,060h,0F0h,060h,060h,060h,0E6h,0FCh,000h,000h ; Hex #9C
171 Db 000h,000h,000h,066h,066h,03Ch,018h,07Eh,018h,07Eh,018h,018h,000h,000h ; Hex #9D
172 Db 000h,000h,0FCh,066h,066h,07Ch,062h,066h,06Fh,066h,066h,0F3h,000h,000h ; Hex #9E
173 Db 000h,000h,00Eh,01Bh,018h,018h,018h,07Eh,018h,018h,018h,0D8h,070h,000h ; Hex #9F
174 Db 000h,000h,00Ch,018h,030h,000h,078h,00Ch,07Ch,0CCh,0CCh,076h,000h,000h ; Hex #A0
175 Db 000h,000h,00Ch,018h,030h,000h,038h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #A1
176 Db 000h,000h,00Ch,018h,030h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #A2
177 Db 000h,000h,00Ch,018h,030h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h ; Hex #A3
178 Db 000h,000h,000h,076h,0DCh,000h,0DCh,066h,066h,066h,066h,066h,000h,000h ; Hex #A4
179 Db 076h,0DCh,000h,0C6h,0E6h,0F6h,0FEh,0DEh,0CEh,0C6h,0C6h,0C6h,000h,000h ; Hex #A5
180 Db 000h,000h,03Ch,06Ch,06Ch,03Eh,000h,07Eh,000h,000h,000h,000h,000h,000h ; Hex #A6
181 Db 000h,000h,038h,06Ch,06Ch,038h,000h,07Ch,000h,000h,000h,000h,000h,000h ; Hex #A7
182 Db 000h,000h,000h,030h,030h,000h,030h,030h,060h,0C6h,0C6h,07Ch,000h,000h ; Hex #A8
183 Db 000h,000h,000h,000h,000h,000h,000h,0FEh,0C0h,0C0h,0C0h,000h,000h,000h ; Hex #A9
184 Db 000h,000h,000h,000h,000h,000h,000h,0FEh,006h,006h,006h,000h,000h,000h ; Hex #AA
185 Db 000h,000h,060h,0E0h,063h,066h,06Ch,018h,030h,06Eh,0C3h,006h,00Ch,01Fh ; Hex #AB
186 Db 000h,000h,060h,0E0h,063h,066h,06Ch,01Ah,036h,06Eh,0DAh,03Fh,006h,006h ; Hex #AC
187 Db 000h,000h,000h,018h,018h,000h,018h,018h,03Ch,03Ch,03Ch,018h,000h,000h ; Hex #AD
188 Db 000h,000h,000h,000h,000h,036h,06Ch,0D8h,06Ch,036h,000h,000h,000h,000h ; Hex #AE
189 Db 000h,000h,000h,000h,000h,0D8h,06Ch,036h,06Ch,0D8h,000h,000h,000h,000h ; Hex #AF
190 Db 011h,044h,011h,044h,011h,044h,011h,044h,011h,044h,011h,044h,011h,044h ; Hex #B0
191 Db 055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh ; Hex #B1
192 Db 0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h ; Hex #B2
193 Db 018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #B3
194 Db 018h,018h,018h,018h,018h,018h,018h,0F8h,018h,018h,018h,018h,018h,018h ; Hex #B4
195 Db 018h,018h,018h,018h,018h,0F8h,018h,0F8h,018h,018h,018h,018h,018h,018h ; Hex #B5
196 Db 036h,036h,036h,036h,036h,036h,036h,0F6h,036h,036h,036h,036h,036h,036h ; Hex #B6
197 Db 000h,000h,000h,000h,000h,000h,000h,0FEh,036h,036h,036h,036h,036h,036h ; Hex #B7
198 Db 000h,000h,000h,000h,000h,0F8h,018h,0F8h,018h,018h,018h,018h,018h,018h ; Hex #B8
199 Db 036h,036h,036h,036h,036h,0F6h,006h,0F6h,036h,036h,036h,036h,036h,036h ; Hex #B9
200 Db 036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #BA
201 Db 000h,000h,000h,000h,000h,0FEh,006h,0F6h,036h,036h,036h,036h,036h,036h ; Hex #BB
202 Db 036h,036h,036h,036h,036h,0F6h,006h,0FEh,000h,000h,000h,000h,000h,000h ; Hex #BC
203 Db 036h,036h,036h,036h,036h,036h,036h,0FEh,000h,000h,000h,000h,000h,000h ; Hex #BD
204 Db 018h,018h,018h,018h,018h,0F8h,018h,0F8h,000h,000h,000h,000h,000h,000h ; Hex #BE
205 Db 000h,000h,000h,000h,000h,000h,000h,0F8h,018h,018h,018h,018h,018h,018h ; Hex #BF
206 Db 018h,018h,018h,018h,018h,018h,018h,01Fh,000h,000h,000h,000h,000h,000h ; Hex #C0
207 Db 018h,018h,018h,018h,018h,018h,018h,0FFh,000h,000h,000h,000h,000h,000h ; Hex #C1
208 Db 000h,000h,000h,000h,000h,000h,000h,0FFh,018h,018h,018h,018h,018h,018h ; Hex #C2
209 Db 018h,018h,018h,018h,018h,018h,018h,01Fh,018h,018h,018h,018h,018h,018h ; Hex #C3
210 Db 000h,000h,000h,000h,000h,000h,000h,0FFh,000h,000h,000h,000h,000h,000h ; Hex #C4
211 Db 018h,018h,018h,018h,018h,018h,018h,0FFh,018h,018h,018h,018h,018h,018h ; Hex #C5
212 Db 018h,018h,018h,018h,018h,01Fh,018h,01Fh,018h,018h,018h,018h,018h,018h ; Hex #C6
213 Db 036h,036h,036h,036h,036h,036h,036h,037h,036h,036h,036h,036h,036h,036h ; Hex #C7
214 Db 036h,036h,036h,036h,036h,037h,030h,03Fh,000h,000h,000h,000h,000h,000h ; Hex #C8
215 Db 000h,000h,000h,000h,000h,03Fh,030h,037h,036h,036h,036h,036h,036h,036h ; Hex #C9
216 Db 036h,036h,036h,036h,036h,0F7h,000h,0FFh,000h,000h,000h,000h,000h,000h ; Hex #CA
217 Db 000h,000h,000h,000h,000h,0FFh,000h,0F7h,036h,036h,036h,036h,036h,036h ; Hex #CB
218 Db 036h,036h,036h,036h,036h,037h,030h,037h,036h,036h,036h,036h,036h,036h ; Hex #CC
219 Db 000h,000h,000h,000h,000h,0FFh,000h,0FFh,000h,000h,000h,000h,000h,000h ; Hex #CD
220 Db 036h,036h,036h,036h,036h,0F7h,000h,0F7h,036h,036h,036h,036h,036h,036h ; Hex #CE
221 Db 018h,018h,018h,018h,018h,0FFh,000h,0FFh,000h,000h,000h,000h,000h,000h ; Hex #CF
222 Db 036h,036h,036h,036h,036h,036h,036h,0FFh,000h,000h,000h,000h,000h,000h ; Hex #D0
223 Db 000h,000h,000h,000h,000h,0FFh,000h,0FFh,018h,018h,018h,018h,018h,018h ; Hex #D1
224 Db 000h,000h,000h,000h,000h,000h,000h,0FFh,036h,036h,036h,036h,036h,036h ; Hex #D2
225 Db 036h,036h,036h,036h,036h,036h,036h,03Fh,000h,000h,000h,000h,000h,000h ; Hex #D3
226 Db 018h,018h,018h,018h,018h,01Fh,018h,01Fh,000h,000h,000h,000h,000h,000h ; Hex #D4
227 Db 000h,000h,000h,000h,000h,01Fh,018h,01Fh,018h,018h,018h,018h,018h,018h ; Hex #D5
228 Db 000h,000h,000h,000h,000h,000h,000h,03Fh,036h,036h,036h,036h,036h,036h ; Hex #D6
229 Db 036h,036h,036h,036h,036h,036h,036h,0FFh,036h,036h,036h,036h,036h,036h ; Hex #D7
230 Db 018h,018h,018h,018h,018h,0FFh,018h,0FFh,018h,018h,018h,018h,018h,018h ; Hex #D8
231 Db 018h,018h,018h,018h,018h,018h,018h,0F8h,000h,000h,000h,000h,000h,000h ; Hex #D9
232 Db 000h,000h,000h,000h,000h,000h,000h,01Fh,018h,018h,018h,018h,018h,018h ; Hex #DA
233 Db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh ; Hex #DB
234 Db 000h,000h,000h,000h,000h,000h,000h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh ; Hex #DC
235 Db 0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h ; Hex #DD
236 Db 00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh ; Hex #DE
237 Db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,000h,000h,000h,000h,000h,000h,000h ; Hex #DF
238 Db 000h,000h,000h,000h,000h,000h,076h,0DCh,0D8h,0D8h,0DCh,076h,000h,000h ; Hex #E0
239 Db 000h,000h,000h,078h,0CCh,0CCh,0CCh,0D8h,0CCh,0C6h,0C6h,0CCh,000h,000h ; Hex #E1
240 Db 000h,000h,000h,0FEh,0C6h,0C6h,0C0h,0C0h,0C0h,0C0h,0C0h,0C0h,000h,000h ; Hex #E2
241 Db 000h,000h,000h,000h,000h,000h,0FEh,06Ch,06Ch,06Ch,06Ch,06Ch,000h,000h ; Hex #E3
242 Db 000h,000h,000h,0FEh,0C6h,060h,030h,018h,030h,060h,0C6h,0FEh,000h,000h ; Hex #E4
243 Db 000h,000h,000h,000h,000h,000h,07Eh,0D8h,0D8h,0D8h,0D8h,070h,000h,000h ; Hex #E5
244 Db 000h,000h,000h,000h,000h,000h,066h,066h,066h,066h,066h,07Ch,060h,0C0h ; Hex #E6
245 Db 000h,000h,000h,000h,000h,076h,0DCh,018h,018h,018h,018h,018h,000h,000h ; Hex #E7
246 Db 000h,000h,000h,07Eh,018h,03Ch,066h,066h,066h,03Ch,018h,07Eh,000h,000h ; Hex #E8
247 Db 000h,000h,000h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,06Ch,038h,000h,000h ; Hex #E9
248 Db 000h,000h,000h,038h,06Ch,0C6h,0C6h,0C6h,06Ch,06Ch,06Ch,0EEh,000h,000h ; Hex #EA
249 Db 000h,000h,000h,01Eh,030h,018h,00Ch,03Eh,066h,066h,066h,03Ch,000h,000h ; Hex #EB
250 Db 000h,000h,000h,000h,000h,000h,07Eh,0DBh,0DBh,07Eh,000h,000h,000h,000h ; Hex #EC
251 Db 000h,000h,000h,003h,006h,07Eh,0DBh,0DBh,0F3h,07Eh,060h,0C0h,000h,000h ; Hex #ED
252 Db 000h,000h,000h,01Eh,030h,060h,060h,07Eh,060h,060h,030h,01Eh,000h,000h ; Hex #EE
253 Db 000h,000h,000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,000h,000h ; Hex #EF
254 Db 000h,000h,000h,000h,0FEh,000h,000h,0FEh,000h,000h,0FEh,000h,000h,000h ; Hex #F0
255 Db 000h,000h,000h,000h,018h,018h,07Eh,018h,018h,000h,000h,07Eh,000h,000h ; Hex #F1
256 Db 000h,000h,000h,030h,018h,00Ch,006h,00Ch,018h,030h,000h,07Eh,000h,000h ; Hex #F2
257 Db 000h,000h,000h,00Ch,018h,030h,060h,030h,018h,00Ch,000h,07Eh,000h,000h ; Hex #F3
258 Db 000h,000h,00Eh,01Bh,01Bh,018h,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #F4
259 Db 018h,018h,018h,018h,018h,018h,018h,018h,0D8h,0D8h,070h,000h,000h,000h ; Hex #F5
260 Db 000h,000h,000h,000h,000h,018h,000h,07Eh,000h,018h,000h,000h,000h,000h ; Hex #F6
261 Db 000h,000h,000h,000h,000h,076h,0DCh,000h,076h,0DCh,000h,000h,000h,000h ; Hex #F7
262 Db 000h,038h,06Ch,06Ch,038h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #F8
263 Db 000h,000h,000h,000h,000h,000h,000h,018h,018h,000h,000h,000h,000h,000h ; Hex #F9
264 Db 000h,000h,000h,000h,000h,000h,000h,018h,000h,000h,000h,000h,000h,000h ; Hex #FA
265 Db 000h,00Fh,00Ch,00Ch,00Ch,00Ch,00Ch,00Ch,0ECh,06Ch,03Ch,01Ch,000h,000h ; Hex #FB
266 Db 000h,06Ch,036h,036h,036h,036h,036h,000h,000h,000h,000h,000h,000h,000h ; Hex #FC
267 Db 000h,03Ch,066h,00Ch,018h,032h,07Eh,000h,000h,000h,000h,000h,000h,000h ; Hex #FD
268 Db 000h,000h,000h,000h,000h,07Eh,07Eh,07Eh,07Eh,07Eh,07Eh,000h,000h,000h ; Hex #FE
269 Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #FF
diff --git a/v4.0/src/DEV/DISPLAY/EGA/437-8X16.ASM b/v4.0/src/DEV/DISPLAY/EGA/437-8X16.ASM
new file mode 100644
index 0000000..636a006
--- /dev/null
+++ b/v4.0/src/DEV/DISPLAY/EGA/437-8X16.ASM
@@ -0,0 +1,269 @@
1;***************************************************
2; CHARACTER FONT FILE
3; Source Assembler File
4;
5; CODE PAGE: 437
6; FONT RESOLUTION: 8 x 16
7;
8; DATE CREATED:05-28-1987
9;
10;
11; Output file from: MULTIFON, Version 1A
12;
13;***************************************************
14 Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #0
15 Db 000h,000h,07Eh,081h,0A5h,081h,081h,0BDh,099h,081h,081h,07Eh,000h,000h,000h,000h ; Hex #1
16 Db 000h,000h,07Eh,0FFh,0DBh,0FFh,0FFh,0C3h,0E7h,0FFh,0FFh,07Eh,000h,000h,000h,000h ; Hex #2
17 Db 000h,000h,000h,000h,06Ch,0FEh,0FEh,0FEh,0FEh,07Ch,038h,010h,000h,000h,000h,000h ; Hex #3
18 Db 000h,000h,000h,000h,010h,038h,07Ch,0FEh,07Ch,038h,010h,000h,000h,000h,000h,000h ; Hex #4
19 Db 000h,000h,000h,018h,03Ch,03Ch,0E7h,0E7h,0E7h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #5
20 Db 000h,000h,000h,018h,03Ch,07Eh,0FFh,0FFh,07Eh,018h,018h,03Ch,000h,000h,000h,000h ; Hex #6
21 Db 000h,000h,000h,000h,000h,000h,018h,03Ch,03Ch,018h,000h,000h,000h,000h,000h,000h ; Hex #7
22 Db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0E7h,0C3h,0C3h,0E7h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh ; Hex #8
23 Db 000h,000h,000h,000h,000h,03Ch,066h,042h,042h,066h,03Ch,000h,000h,000h,000h,000h ; Hex #9
24 Db 0FFh,0FFh,0FFh,0FFh,0FFh,0C3h,099h,0BDh,0BDh,099h,0C3h,0FFh,0FFh,0FFh,0FFh,0FFh ; Hex #A
25 Db 000h,000h,01Eh,00Eh,01Ah,032h,078h,0CCh,0CCh,0CCh,0CCh,078h,000h,000h,000h,000h ; Hex #B
26 Db 000h,000h,03Ch,066h,066h,066h,066h,03Ch,018h,07Eh,018h,018h,000h,000h,000h,000h ; Hex #C
27 Db 000h,000h,03Fh,033h,03Fh,030h,030h,030h,030h,070h,0F0h,0E0h,000h,000h,000h,000h ; Hex #D
28 Db 000h,000h,07Fh,063h,07Fh,063h,063h,063h,063h,067h,0E7h,0E6h,0C0h,000h,000h,000h ; Hex #E
29 Db 000h,000h,000h,018h,018h,0DBh,03Ch,0E7h,03Ch,0DBh,018h,018h,000h,000h,000h,000h ; Hex #F
30 Db 000h,080h,0C0h,0E0h,0F0h,0F8h,0FEh,0F8h,0F0h,0E0h,0C0h,080h,000h,000h,000h,000h ; Hex #10
31 Db 000h,002h,006h,00Eh,01Eh,03Eh,0FEh,03Eh,01Eh,00Eh,006h,002h,000h,000h,000h,000h ; Hex #11
32 Db 000h,000h,018h,03Ch,07Eh,018h,018h,018h,07Eh,03Ch,018h,000h,000h,000h,000h,000h ; Hex #12
33 Db 000h,000h,066h,066h,066h,066h,066h,066h,066h,000h,066h,066h,000h,000h,000h,000h ; Hex #13
34 Db 000h,000h,07Fh,0DBh,0DBh,0DBh,07Bh,01Bh,01Bh,01Bh,01Bh,01Bh,000h,000h,000h,000h ; Hex #14
35 Db 000h,07Ch,0C6h,060h,038h,06Ch,0C6h,0C6h,06Ch,038h,00Ch,0C6h,07Ch,000h,000h,000h ; Hex #15
36 Db 000h,000h,000h,000h,000h,000h,000h,000h,0FEh,0FEh,0FEh,0FEh,000h,000h,000h,000h ; Hex #16
37 Db 000h,000h,018h,03Ch,07Eh,018h,018h,018h,07Eh,03Ch,018h,07Eh,000h,000h,000h,000h ; Hex #17
38 Db 000h,000h,018h,03Ch,07Eh,018h,018h,018h,018h,018h,018h,018h,000h,000h,000h,000h ; Hex #18
39 Db 000h,000h,018h,018h,018h,018h,018h,018h,018h,07Eh,03Ch,018h,000h,000h,000h,000h ; Hex #19
40 Db 000h,000h,000h,000h,000h,018h,00Ch,0FEh,00Ch,018h,000h,000h,000h,000h,000h,000h ; Hex #1A
41 Db 000h,000h,000h,000h,000h,030h,060h,0FEh,060h,030h,000h,000h,000h,000h,000h,000h ; Hex #1B
42 Db 000h,000h,000h,000h,000h,000h,0C0h,0C0h,0C0h,0FEh,000h,000h,000h,000h,000h,000h ; Hex #1C
43 Db 000h,000h,000h,000h,000h,028h,06Ch,0FEh,06Ch,028h,000h,000h,000h,000h,000h,000h ; Hex #1D
44 Db 000h,000h,000h,000h,010h,038h,038h,07Ch,07Ch,0FEh,0FEh,000h,000h,000h,000h,000h ; Hex #1E
45 Db 000h,000h,000h,000h,0FEh,0FEh,07Ch,07Ch,038h,038h,010h,000h,000h,000h,000h,000h ; Hex #1F
46 Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #20
47 Db 000h,000h,018h,03Ch,03Ch,03Ch,018h,018h,018h,000h,018h,018h,000h,000h,000h,000h ; Hex #21
48 Db 000h,066h,066h,066h,024h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #22
49 Db 000h,000h,000h,06Ch,06Ch,0FEh,06Ch,06Ch,06Ch,0FEh,06Ch,06Ch,000h,000h,000h,000h ; Hex #23
50 Db 018h,018h,07Ch,0C6h,0C2h,0C0h,07Ch,006h,006h,086h,0C6h,07Ch,018h,018h,000h,000h ; Hex #24
51 Db 000h,000h,000h,000h,0C2h,0C6h,00Ch,018h,030h,060h,0C6h,086h,000h,000h,000h,000h ; Hex #25
52 Db 000h,000h,038h,06Ch,06Ch,038h,076h,0DCh,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #26
53 Db 000h,030h,030h,030h,060h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #27
54 Db 000h,000h,00Ch,018h,030h,030h,030h,030h,030h,030h,018h,00Ch,000h,000h,000h,000h ; Hex #28
55 Db 000h,000h,030h,018h,00Ch,00Ch,00Ch,00Ch,00Ch,00Ch,018h,030h,000h,000h,000h,000h ; Hex #29
56 Db 000h,000h,000h,000h,000h,066h,03Ch,0FFh,03Ch,066h,000h,000h,000h,000h,000h,000h ; Hex #2A
57 Db 000h,000h,000h,000h,000h,018h,018h,07Eh,018h,018h,000h,000h,000h,000h,000h,000h ; Hex #2B
58 Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,018h,018h,018h,030h,000h,000h,000h ; Hex #2C
59 Db 000h,000h,000h,000h,000h,000h,000h,0FEh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #2D
60 Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,018h,018h,000h,000h,000h,000h ; Hex #2E
61 Db 000h,000h,000h,000h,002h,006h,00Ch,018h,030h,060h,0C0h,080h,000h,000h,000h,000h ; Hex #2F
62 Db 000h,000h,038h,06Ch,0C6h,0C6h,0D6h,0D6h,0C6h,0C6h,06Ch,038h,000h,000h,000h,000h ; Hex #30
63 Db 000h,000h,018h,038h,078h,018h,018h,018h,018h,018h,018h,07Eh,000h,000h,000h,000h ; Hex #31
64 Db 000h,000h,07Ch,0C6h,006h,00Ch,018h,030h,060h,0C0h,0C6h,0FEh,000h,000h,000h,000h ; Hex #32
65 Db 000h,000h,07Ch,0C6h,006h,006h,03Ch,006h,006h,006h,0C6h,07Ch,000h,000h,000h,000h ; Hex #33
66 Db 000h,000h,00Ch,01Ch,03Ch,06Ch,0CCh,0FEh,00Ch,00Ch,00Ch,01Eh,000h,000h,000h,000h ; Hex #34
67 Db 000h,000h,0FEh,0C0h,0C0h,0C0h,0FCh,006h,006h,006h,0C6h,07Ch,000h,000h,000h,000h ; Hex #35
68 Db 000h,000h,038h,060h,0C0h,0C0h,0FCh,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #36
69 Db 000h,000h,0FEh,0C6h,006h,006h,00Ch,018h,030h,030h,030h,030h,000h,000h,000h,000h ; Hex #37
70 Db 000h,000h,07Ch,0C6h,0C6h,0C6h,07Ch,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #38
71 Db 000h,000h,07Ch,0C6h,0C6h,0C6h,07Eh,006h,006h,006h,00Ch,078h,000h,000h,000h,000h ; Hex #39
72 Db 000h,000h,000h,000h,018h,018h,000h,000h,000h,018h,018h,000h,000h,000h,000h,000h ; Hex #3A
73 Db 000h,000h,000h,000h,018h,018h,000h,000h,000h,018h,018h,030h,000h,000h,000h,000h ; Hex #3B
74 Db 000h,000h,000h,006h,00Ch,018h,030h,060h,030h,018h,00Ch,006h,000h,000h,000h,000h ; Hex #3C
75 Db 000h,000h,000h,000h,000h,07Eh,000h,000h,07Eh,000h,000h,000h,000h,000h,000h,000h ; Hex #3D
76 Db 000h,000h,000h,060h,030h,018h,00Ch,006h,00Ch,018h,030h,060h,000h,000h,000h,000h ; Hex #3E
77 Db 000h,000h,07Ch,0C6h,0C6h,00Ch,018h,018h,018h,000h,018h,018h,000h,000h,000h,000h ; Hex #3F
78 Db 000h,000h,000h,07Ch,0C6h,0C6h,0DEh,0DEh,0DEh,0DCh,0C0h,07Ch,000h,000h,000h,000h ; Hex #40
79 Db 000h,000h,010h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #41
80 Db 000h,000h,0FCh,066h,066h,066h,07Ch,066h,066h,066h,066h,0FCh,000h,000h,000h,000h ; Hex #42
81 Db 000h,000h,03Ch,066h,0C2h,0C0h,0C0h,0C0h,0C0h,0C2h,066h,03Ch,000h,000h,000h,000h ; Hex #43
82 Db 000h,000h,0F8h,06Ch,066h,066h,066h,066h,066h,066h,06Ch,0F8h,000h,000h,000h,000h ; Hex #44
83 Db 000h,000h,0FEh,066h,062h,068h,078h,068h,060h,062h,066h,0FEh,000h,000h,000h,000h ; Hex #45
84 Db 000h,000h,0FEh,066h,062h,068h,078h,068h,060h,060h,060h,0F0h,000h,000h,000h,000h ; Hex #46
85 Db 000h,000h,03Ch,066h,0C2h,0C0h,0C0h,0DEh,0C6h,0C6h,066h,03Ah,000h,000h,000h,000h ; Hex #47
86 Db 000h,000h,0C6h,0C6h,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #48
87 Db 000h,000h,03Ch,018h,018h,018h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #49
88 Db 000h,000h,01Eh,00Ch,00Ch,00Ch,00Ch,00Ch,0CCh,0CCh,0CCh,078h,000h,000h,000h,000h ; Hex #4A
89 Db 000h,000h,0E6h,066h,066h,06Ch,078h,078h,06Ch,066h,066h,0E6h,000h,000h,000h,000h ; Hex #4B
90 Db 000h,000h,0F0h,060h,060h,060h,060h,060h,060h,062h,066h,0FEh,000h,000h,000h,000h ; Hex #4C
91 Db 000h,000h,0C6h,0EEh,0FEh,0FEh,0D6h,0C6h,0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #4D
92 Db 000h,000h,0C6h,0E6h,0F6h,0FEh,0DEh,0CEh,0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #4E
93 Db 000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #4F
94 Db 000h,000h,0FCh,066h,066h,066h,07Ch,060h,060h,060h,060h,0F0h,000h,000h,000h,000h ; Hex #50
95 Db 000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0D6h,0DEh,07Ch,00Ch,00Eh,000h,000h ; Hex #51
96 Db 000h,000h,0FCh,066h,066h,066h,07Ch,06Ch,066h,066h,066h,0E6h,000h,000h,000h,000h ; Hex #52
97 Db 000h,000h,07Ch,0C6h,0C6h,060h,038h,00Ch,006h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #53
98 Db 000h,000h,07Eh,07Eh,05Ah,018h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #54
99 Db 000h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #55
100 Db 000h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,06Ch,038h,010h,000h,000h,000h,000h ; Hex #56
101 Db 000h,000h,0C6h,0C6h,0C6h,0C6h,0D6h,0D6h,0D6h,0FEh,0EEh,06Ch,000h,000h,000h,000h ; Hex #57
102 Db 000h,000h,0C6h,0C6h,06Ch,07Ch,038h,038h,07Ch,06Ch,0C6h,0C6h,000h,000h,000h,000h ; Hex #58
103 Db 000h,000h,066h,066h,066h,066h,03Ch,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #59
104 Db 000h,000h,0FEh,0C6h,086h,00Ch,018h,030h,060h,0C2h,0C6h,0FEh,000h,000h,000h,000h ; Hex #5A
105 Db 000h,000h,03Ch,030h,030h,030h,030h,030h,030h,030h,030h,03Ch,000h,000h,000h,000h ; Hex #5B
106 Db 000h,000h,000h,080h,0C0h,0E0h,070h,038h,01Ch,00Eh,006h,002h,000h,000h,000h,000h ; Hex #5C
107 Db 000h,000h,03Ch,00Ch,00Ch,00Ch,00Ch,00Ch,00Ch,00Ch,00Ch,03Ch,000h,000h,000h,000h ; Hex #5D
108 Db 010h,038h,06Ch,0C6h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #5E
109 Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,0FFh,000h,000h ; Hex #5F
110 Db 000h,030h,018h,00Ch,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #60
111 Db 000h,000h,000h,000h,000h,078h,00Ch,07Ch,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #61
112 Db 000h,000h,0E0h,060h,060h,078h,06Ch,066h,066h,066h,066h,07Ch,000h,000h,000h,000h ; Hex #62
113 Db 000h,000h,000h,000h,000h,07Ch,0C6h,0C0h,0C0h,0C0h,0C6h,07Ch,000h,000h,000h,000h ; Hex #63
114 Db 000h,000h,01Ch,00Ch,00Ch,03Ch,06Ch,0CCh,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #64
115 Db 000h,000h,000h,000h,000h,07Ch,0C6h,0FEh,0C0h,0C0h,0C6h,07Ch,000h,000h,000h,000h ; Hex #65
116 Db 000h,000h,01Ch,036h,032h,030h,078h,030h,030h,030h,030h,078h,000h,000h,000h,000h ; Hex #66
117 Db 000h,000h,000h,000h,000h,076h,0CCh,0CCh,0CCh,0CCh,0CCh,07Ch,00Ch,0CCh,078h,000h ; Hex #67
118 Db 000h,000h,0E0h,060h,060h,06Ch,076h,066h,066h,066h,066h,0E6h,000h,000h,000h,000h ; Hex #68
119 Db 000h,000h,018h,018h,000h,038h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #69
120 Db 000h,000h,006h,006h,000h,00Eh,006h,006h,006h,006h,006h,006h,066h,066h,03Ch,000h ; Hex #6A
121 Db 000h,000h,0E0h,060h,060h,066h,06Ch,078h,078h,06Ch,066h,0E6h,000h,000h,000h,000h ; Hex #6B
122 Db 000h,000h,038h,018h,018h,018h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #6C
123 Db 000h,000h,000h,000h,000h,0ECh,0FEh,0D6h,0D6h,0D6h,0D6h,0C6h,000h,000h,000h,000h ; Hex #6D
124 Db 000h,000h,000h,000h,000h,0DCh,066h,066h,066h,066h,066h,066h,000h,000h,000h,000h ; Hex #6E
125 Db 000h,000h,000h,000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #6F
126 Db 000h,000h,000h,000h,000h,0DCh,066h,066h,066h,066h,066h,07Ch,060h,060h,0F0h,000h ; Hex #70
127 Db 000h,000h,000h,000h,000h,076h,0CCh,0CCh,0CCh,0CCh,0CCh,07Ch,00Ch,00Ch,01Eh,000h ; Hex #71
128 Db 000h,000h,000h,000h,000h,0DCh,076h,066h,060h,060h,060h,0F0h,000h,000h,000h,000h ; Hex #72
129 Db 000h,000h,000h,000h,000h,07Ch,0C6h,060h,038h,00Ch,0C6h,07Ch,000h,000h,000h,000h ; Hex #73
130 Db 000h,000h,010h,030h,030h,0FCh,030h,030h,030h,030h,036h,01Ch,000h,000h,000h,000h ; Hex #74
131 Db 000h,000h,000h,000h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #75
132 Db 000h,000h,000h,000h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,06Ch,038h,000h,000h,000h,000h ; Hex #76
133 Db 000h,000h,000h,000h,000h,0C6h,0C6h,0D6h,0D6h,0D6h,0FEh,06Ch,000h,000h,000h,000h ; Hex #77
134 Db 000h,000h,000h,000h,000h,0C6h,06Ch,038h,038h,038h,06Ch,0C6h,000h,000h,000h,000h ; Hex #78
135 Db 000h,000h,000h,000h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Eh,006h,00Ch,0F8h,000h ; Hex #79
136 Db 000h,000h,000h,000h,000h,0FEh,0CCh,018h,030h,060h,0C6h,0FEh,000h,000h,000h,000h ; Hex #7A
137 Db 000h,000h,00Eh,018h,018h,018h,070h,018h,018h,018h,018h,00Eh,000h,000h,000h,000h ; Hex #7B
138 Db 000h,000h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,000h,000h,000h,000h ; Hex #7C
139 Db 000h,000h,070h,018h,018h,018h,00Eh,018h,018h,018h,018h,070h,000h,000h,000h,000h ; Hex #7D
140 Db 000h,076h,0DCh,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #7E
141 Db 000h,000h,000h,000h,010h,038h,06Ch,0C6h,0C6h,0C6h,0FEh,000h,000h,000h,000h,000h ; Hex #7F
142 Db 000h,000h,03Ch,066h,0C2h,0C0h,0C0h,0C0h,0C0h,0C2h,066h,03Ch,018h,070h,000h,000h ; Hex #80
143 Db 000h,000h,0CCh,000h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #81
144 Db 000h,00Ch,018h,030h,000h,07Ch,0C6h,0FEh,0C0h,0C0h,0C6h,07Ch,000h,000h,000h,000h ; Hex #82
145 Db 000h,010h,038h,06Ch,000h,078h,00Ch,07Ch,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #83
146 Db 000h,000h,0CCh,000h,000h,078h,00Ch,07Ch,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #84
147 Db 000h,060h,030h,018h,000h,078h,00Ch,07Ch,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #85
148 Db 000h,038h,06Ch,038h,000h,078h,00Ch,07Ch,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #86
149 Db 000h,000h,000h,000h,000h,07Ch,0C6h,0C0h,0C0h,0C0h,0C6h,07Ch,018h,070h,000h,000h ; Hex #87
150 Db 000h,010h,038h,06Ch,000h,07Ch,0C6h,0FEh,0C0h,0C0h,0C6h,07Ch,000h,000h,000h,000h ; Hex #88
151 Db 000h,000h,0C6h,000h,000h,07Ch,0C6h,0FEh,0C0h,0C0h,0C6h,07Ch,000h,000h,000h,000h ; Hex #89
152 Db 000h,060h,030h,018h,000h,07Ch,0C6h,0FEh,0C0h,0C0h,0C6h,07Ch,000h,000h,000h,000h ; Hex #8A
153 Db 000h,000h,066h,000h,000h,038h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #8B
154 Db 000h,018h,03Ch,066h,000h,038h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #8C
155 Db 000h,060h,030h,018h,000h,038h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #8D
156 Db 000h,0C6h,000h,010h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #8E
157 Db 038h,06Ch,038h,010h,038h,06Ch,0C6h,0FEh,0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #8F
158 Db 00Ch,018h,000h,0FEh,066h,062h,068h,078h,068h,062h,066h,0FEh,000h,000h,000h,000h ; Hex #90
159 Db 000h,000h,000h,000h,000h,0ECh,036h,036h,07Eh,0D8h,0D8h,06Eh,000h,000h,000h,000h ; Hex #91
160 Db 000h,000h,03Eh,06Ch,0CCh,0CCh,0FEh,0CCh,0CCh,0CCh,0CCh,0CEh,000h,000h,000h,000h ; Hex #92
161 Db 000h,010h,038h,06Ch,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #93
162 Db 000h,000h,0C6h,000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #94
163 Db 000h,060h,030h,018h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #95
164 Db 000h,030h,078h,0CCh,000h,0CCh,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #96
165 Db 000h,060h,030h,018h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #97
166 Db 000h,000h,0C6h,000h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Eh,006h,00Ch,078h,000h ; Hex #98
167 Db 000h,0C6h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #99
168 Db 000h,0C6h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #9A
169 Db 000h,018h,018h,07Ch,0C6h,0C0h,0C0h,0C0h,0C6h,07Ch,018h,018h,000h,000h,000h,000h ; Hex #9B
170 Db 000h,038h,06Ch,064h,060h,0F0h,060h,060h,060h,060h,0E6h,0FCh,000h,000h,000h,000h ; Hex #9C
171 Db 000h,000h,066h,066h,03Ch,018h,07Eh,018h,07Eh,018h,018h,018h,000h,000h,000h,000h ; Hex #9D
172 Db 000h,0F8h,0CCh,0CCh,0F8h,0C4h,0CCh,0DEh,0CCh,0CCh,0CCh,0C6h,000h,000h,000h,000h ; Hex #9E
173 Db 000h,00Eh,01Bh,018h,018h,018h,07Eh,018h,018h,018h,0D8h,070h,000h,000h,000h,000h ; Hex #9F
174 Db 000h,018h,030h,060h,000h,078h,00Ch,07Ch,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #A0
175 Db 000h,00Ch,018h,030h,000h,038h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #A1
176 Db 000h,018h,030h,060h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #A2
177 Db 000h,018h,030h,060h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #A3
178 Db 000h,000h,076h,0DCh,000h,0DCh,066h,066h,066h,066h,066h,066h,000h,000h,000h,000h ; Hex #A4
179 Db 076h,0DCh,000h,0C6h,0E6h,0F6h,0FEh,0DEh,0CEh,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #A5
180 Db 000h,000h,03Ch,06Ch,06Ch,03Eh,000h,07Eh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #A6
181 Db 000h,000h,038h,06Ch,06Ch,038h,000h,07Ch,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #A7
182 Db 000h,000h,030h,030h,000h,030h,030h,060h,0C0h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #A8
183 Db 000h,000h,000h,000h,000h,000h,0FEh,0C0h,0C0h,0C0h,0C0h,000h,000h,000h,000h,000h ; Hex #A9
184 Db 000h,000h,000h,000h,000h,000h,0FEh,006h,006h,006h,006h,000h,000h,000h,000h,000h ; Hex #AA
185 Db 000h,060h,0E0h,062h,066h,06Ch,018h,030h,060h,0DCh,086h,00Ch,018h,03Eh,000h,000h ; Hex #AB
186 Db 000h,060h,0E0h,062h,066h,06Ch,018h,030h,066h,0CEh,09Ah,03Fh,006h,006h,000h,000h ; Hex #AC
187 Db 000h,000h,018h,018h,000h,018h,018h,018h,03Ch,03Ch,03Ch,018h,000h,000h,000h,000h ; Hex #AD
188 Db 000h,000h,000h,000h,000h,036h,06Ch,0D8h,06Ch,036h,000h,000h,000h,000h,000h,000h ; Hex #AE
189 Db 000h,000h,000h,000h,000h,0D8h,06Ch,036h,06Ch,0D8h,000h,000h,000h,000h,000h,000h ; Hex #AF
190 Db 011h,044h,011h,044h,011h,044h,011h,044h,011h,044h,011h,044h,011h,044h,011h,044h ; Hex #B0
191 Db 055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh ; Hex #B1
192 Db 0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h ; Hex #B2
193 Db 018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #B3
194 Db 018h,018h,018h,018h,018h,018h,018h,0F8h,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #B4
195 Db 018h,018h,018h,018h,018h,0F8h,018h,0F8h,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #B5
196 Db 036h,036h,036h,036h,036h,036h,036h,0F6h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #B6
197 Db 000h,000h,000h,000h,000h,000h,000h,0FEh,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #B7
198 Db 000h,000h,000h,000h,000h,0F8h,018h,0F8h,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #B8
199 Db 036h,036h,036h,036h,036h,0F6h,006h,0F6h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #B9
200 Db 036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #BA
201 Db 000h,000h,000h,000h,000h,0FEh,006h,0F6h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #BB
202 Db 036h,036h,036h,036h,036h,0F6h,006h,0FEh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #BC
203 Db 036h,036h,036h,036h,036h,036h,036h,0FEh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #BD
204 Db 018h,018h,018h,018h,018h,0F8h,018h,0F8h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #BE
205 Db 000h,000h,000h,000h,000h,000h,000h,0F8h,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #BF
206 Db 018h,018h,018h,018h,018h,018h,018h,01Fh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #C0
207 Db 018h,018h,018h,018h,018h,018h,018h,0FFh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #C1
208 Db 000h,000h,000h,000h,000h,000h,000h,0FFh,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #C2
209 Db 018h,018h,018h,018h,018h,018h,018h,01Fh,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #C3
210 Db 000h,000h,000h,000h,000h,000h,000h,0FFh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #C4
211 Db 018h,018h,018h,018h,018h,018h,018h,0FFh,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #C5
212 Db 018h,018h,018h,018h,018h,01Fh,018h,01Fh,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #C6
213 Db 036h,036h,036h,036h,036h,036h,036h,037h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #C7
214 Db 036h,036h,036h,036h,036h,037h,030h,03Fh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #C8
215 Db 000h,000h,000h,000h,000h,03Fh,030h,037h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #C9
216 Db 036h,036h,036h,036h,036h,0F7h,000h,0FFh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #CA
217 Db 000h,000h,000h,000h,000h,0FFh,000h,0F7h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #CB
218 Db 036h,036h,036h,036h,036h,037h,030h,037h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #CC
219 Db 000h,000h,000h,000h,000h,0FFh,000h,0FFh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #CD
220 Db 036h,036h,036h,036h,036h,0F7h,000h,0F7h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #CE
221 Db 018h,018h,018h,018h,018h,0FFh,000h,0FFh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #CF
222 Db 036h,036h,036h,036h,036h,036h,036h,0FFh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #D0
223 Db 000h,000h,000h,000h,000h,0FFh,000h,0FFh,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #D1
224 Db 000h,000h,000h,000h,000h,000h,000h,0FFh,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #D2
225 Db 036h,036h,036h,036h,036h,036h,036h,03Fh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #D3
226 Db 018h,018h,018h,018h,018h,01Fh,018h,01Fh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #D4
227 Db 000h,000h,000h,000h,000h,01Fh,018h,01Fh,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #D5
228 Db 000h,000h,000h,000h,000h,000h,000h,03Fh,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #D6
229 Db 036h,036h,036h,036h,036h,036h,036h,0FFh,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #D7
230 Db 018h,018h,018h,018h,018h,0FFh,018h,0FFh,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #D8
231 Db 018h,018h,018h,018h,018h,018h,018h,0F8h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #D9
232 Db 000h,000h,000h,000h,000h,000h,000h,01Fh,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #DA
233 Db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh ; Hex #DB
234 Db 000h,000h,000h,000h,000h,000h,000h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh ; Hex #DC
235 Db 0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h ; Hex #DD
236 Db 00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh ; Hex #DE
237 Db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #DF
238 Db 000h,000h,000h,000h,000h,076h,0DCh,0D8h,0D8h,0D8h,0DCh,076h,000h,000h,000h,000h ; Hex #E0
239 Db 000h,000h,078h,0CCh,0CCh,0CCh,0D8h,0CCh,0C6h,0C6h,0C6h,0CCh,000h,000h,000h,000h ; Hex #E1
240 Db 000h,000h,0FEh,0C6h,0C6h,0C0h,0C0h,0C0h,0C0h,0C0h,0C0h,0C0h,000h,000h,000h,000h ; Hex #E2
241 Db 000h,000h,000h,000h,000h,0FEh,06Ch,06Ch,06Ch,06Ch,06Ch,06Ch,000h,000h,000h,000h ; Hex #E3
242 Db 000h,000h,0FEh,0C6h,060h,030h,018h,018h,030h,060h,0C6h,0FEh,000h,000h,000h,000h ; Hex #E4
243 Db 000h,000h,000h,000h,000h,07Eh,0D8h,0D8h,0D8h,0D8h,0D8h,070h,000h,000h,000h,000h ; Hex #E5
244 Db 000h,000h,000h,000h,000h,066h,066h,066h,066h,066h,066h,07Ch,060h,060h,0C0h,000h ; Hex #E6
245 Db 000h,000h,000h,000h,076h,0DCh,018h,018h,018h,018h,018h,018h,000h,000h,000h,000h ; Hex #E7
246 Db 000h,000h,07Eh,018h,03Ch,066h,066h,066h,066h,03Ch,018h,07Eh,000h,000h,000h,000h ; Hex #E8
247 Db 000h,000h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,06Ch,038h,000h,000h,000h,000h ; Hex #E9
248 Db 000h,000h,038h,06Ch,0C6h,0C6h,0C6h,06Ch,06Ch,06Ch,06Ch,0EEh,000h,000h,000h,000h ; Hex #EA
249 Db 000h,000h,01Eh,030h,018h,00Ch,03Eh,066h,066h,066h,066h,03Ch,000h,000h,000h,000h ; Hex #EB
250 Db 000h,000h,000h,000h,000h,07Eh,0DBh,0DBh,0DBh,07Eh,000h,000h,000h,000h,000h,000h ; Hex #EC
251 Db 000h,000h,000h,003h,006h,07Eh,0DBh,0DBh,0F3h,07Eh,060h,0C0h,000h,000h,000h,000h ; Hex #ED
252 Db 000h,000h,01Ch,030h,060h,060h,07Ch,060h,060h,060h,030h,01Ch,000h,000h,000h,000h ; Hex #EE
253 Db 000h,000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #EF
254 Db 000h,000h,000h,000h,0FEh,000h,000h,0FEh,000h,000h,0FEh,000h,000h,000h,000h,000h ; Hex #F0
255 Db 000h,000h,000h,000h,018h,018h,07Eh,018h,018h,000h,000h,07Eh,000h,000h,000h,000h ; Hex #F1
256 Db 000h,000h,000h,030h,018h,00Ch,006h,00Ch,018h,030h,000h,07Eh,000h,000h,000h,000h ; Hex #F2
257 Db 000h,000h,000h,00Ch,018h,030h,060h,030h,018h,00Ch,000h,07Eh,000h,000h,000h,000h ; Hex #F3
258 Db 000h,000h,00Eh,01Bh,01Bh,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #F4
259 Db 018h,018h,018h,018h,018h,018h,018h,018h,018h,0D8h,0D8h,0D8h,070h,000h,000h,000h ; Hex #F5
260 Db 000h,000h,000h,000h,000h,018h,000h,07Eh,000h,018h,000h,000h,000h,000h,000h,000h ; Hex #F6
261 Db 000h,000h,000h,000h,000h,076h,0DCh,000h,076h,0DCh,000h,000h,000h,000h,000h,000h ; Hex #F7
262 Db 000h,038h,06Ch,06Ch,038h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #F8
263 Db 000h,000h,000h,000h,000h,000h,000h,018h,018h,000h,000h,000h,000h,000h,000h,000h ; Hex #F9
264 Db 000h,000h,000h,000h,000h,000h,000h,018h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #FA
265 Db 000h,00Fh,00Ch,00Ch,00Ch,00Ch,00Ch,0ECh,06Ch,06Ch,03Ch,01Ch,000h,000h,000h,000h ; Hex #FB
266 Db 000h,06Ch,036h,036h,036h,036h,036h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #FC
267 Db 000h,03Ch,066h,00Ch,018h,032h,07Eh,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #FD
268 Db 000h,000h,000h,000h,07Eh,07Eh,07Eh,07Eh,07Eh,07Eh,07Eh,000h,000h,000h,000h,000h ; Hex #FE
269 Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #FF
diff --git a/v4.0/src/DEV/DISPLAY/EGA/437-8X8.ASM b/v4.0/src/DEV/DISPLAY/EGA/437-8X8.ASM
new file mode 100644
index 0000000..08d3f7e
--- /dev/null
+++ b/v4.0/src/DEV/DISPLAY/EGA/437-8X8.ASM
@@ -0,0 +1,270 @@
1;***************************************************
2; CHARACTER FONT FILE
3; Source Assembler File
4;
5; CODE PAGE: 437
6; FONT RESOLUTION: 8 x 8
7;
8; DATE CREATED:05-28-1987
9;
10;
11; Output file from: MULTIFON, Version 1A
12;
13;***************************************************
14 Db 000h,000h,000h,000h,000h,000h,000h,000h ; Hex #0
15 Db 07Eh,081h,0A5h,081h,0BDh,099h,081h,07Eh ; Hex #1
16 Db 07Eh,0FFh,0DBh,0FFh,0C3h,0E7h,0FFh,07Eh ; Hex #2
17 Db 06Ch,0FEh,0FEh,0FEh,07Ch,038h,010h,000h ; Hex #3
18 Db 010h,038h,07Ch,0FEh,07Ch,038h,010h,000h ; Hex #4
19 Db 038h,07Ch,038h,0FEh,0FEh,0D6h,010h,038h ; Hex #5
20 Db 010h,038h,07Ch,0FEh,0FEh,07Ch,010h,038h ; Hex #6
21 Db 000h,000h,018h,03Ch,03Ch,018h,000h,000h ; Hex #7
22 Db 0FFh,0FFh,0E7h,0C3h,0C3h,0E7h,0FFh,0FFh ; Hex #8
23 Db 000h,03Ch,066h,042h,042h,066h,03Ch,000h ; Hex #9
24 Db 0FFh,0C3h,099h,0BDh,0BDh,099h,0C3h,0FFh ; Hex #A
25 Db 00Fh,007h,00Fh,07Dh,0CCh,0CCh,0CCh,078h ; Hex #B
26 Db 03Ch,066h,066h,066h,03Ch,018h,07Eh,018h ; Hex #C
27 Db 03Fh,033h,03Fh,030h,030h,070h,0F0h,0E0h ; Hex #D
28 Db 07Fh,063h,07Fh,063h,063h,067h,0E6h,0C0h ; Hex #E
29 Db 018h,0DBh,03Ch,0E7h,0E7h,03Ch,0DBh,018h ; Hex #F
30 Db 080h,0E0h,0F8h,0FEh,0F8h,0E0h,080h,000h ; Hex #10
31 Db 002h,00Eh,03Eh,0FEh,03Eh,00Eh,002h,000h ; Hex #11
32 Db 018h,03Ch,07Eh,018h,018h,07Eh,03Ch,018h ; Hex #12
33 Db 066h,066h,066h,066h,066h,000h,066h,000h ; Hex #13
34 Db 07Fh,0DBh,0DBh,07Bh,01Bh,01Bh,01Bh,000h ; Hex #14
35 Db 03Eh,061h,03Ch,066h,066h,03Ch,086h,07Ch ; Hex #15
36 Db 000h,000h,000h,000h,07Eh,07Eh,07Eh,000h ; Hex #16
37 Db 018h,03Ch,07Eh,018h,07Eh,03Ch,018h,0FFh ; Hex #17
38 Db 018h,03Ch,07Eh,018h,018h,018h,018h,000h ; Hex #18
39 Db 018h,018h,018h,018h,07Eh,03Ch,018h,000h ; Hex #19
40 Db 000h,018h,00Ch,0FEh,00Ch,018h,000h,000h ; Hex #1A
41 Db 000h,030h,060h,0FEh,060h,030h,000h,000h ; Hex #1B
42 Db 000h,000h,0C0h,0C0h,0C0h,0FEh,000h,000h ; Hex #1C
43 Db 000h,024h,066h,0FFh,066h,024h,000h,000h ; Hex #1D
44 Db 000h,018h,03Ch,07Eh,0FFh,0FFh,000h,000h ; Hex #1E
45 Db 000h,0FFh,0FFh,07Eh,03Ch,018h,000h,000h ; Hex #1F
46 Db 000h,000h,000h,000h,000h,000h,000h,000h ; Hex #20
47 Db 018h,03Ch,03Ch,018h,018h,000h,018h,000h ; Hex #21
48 Db 066h,066h,024h,000h,000h,000h,000h,000h ; Hex #22
49 Db 06Ch,06Ch,0FEh,06Ch,0FEh,06Ch,06Ch,000h ; Hex #23
50 Db 018h,03Eh,060h,03Ch,006h,07Ch,018h,000h ; Hex #24
51 Db 000h,0C6h,0CCh,018h,030h,066h,0C6h,000h ; Hex #25
52 Db 038h,06Ch,038h,076h,0DCh,0CCh,076h,000h ; Hex #26
53 Db 018h,018h,030h,000h,000h,000h,000h,000h ; Hex #27
54 Db 00Ch,018h,030h,030h,030h,018h,00Ch,000h ; Hex #28
55 Db 030h,018h,00Ch,00Ch,00Ch,018h,030h,000h ; Hex #29
56 Db 000h,066h,03Ch,0FFh,03Ch,066h,000h,000h ; Hex #2A
57 Db 000h,018h,018h,07Eh,018h,018h,000h,000h ; Hex #2B
58 Db 000h,000h,000h,000h,000h,018h,018h,030h ; Hex #2C
59 Db 000h,000h,000h,07Eh,000h,000h,000h,000h ; Hex #2D
60 Db 000h,000h,000h,000h,000h,018h,018h,000h ; Hex #2E
61 Db 006h,00Ch,018h,030h,060h,0C0h,080h,000h ; Hex #2F
62 Db 038h,06Ch,0C6h,0D6h,0C6h,06Ch,038h,000h ; Hex #30
63 Db 018h,038h,018h,018h,018h,018h,07Eh,000h ; Hex #31
64 Db 07Ch,0C6h,006h,01Ch,030h,066h,0FEh,000h ; Hex #32
65 Db 07Ch,0C6h,006h,03Ch,006h,0C6h,07Ch,000h ; Hex #33
66 Db 01Ch,03Ch,06Ch,0CCh,0FEh,00Ch,01Eh,000h ; Hex #34
67 Db 0FEh,0C0h,0C0h,0FCh,006h,0C6h,07Ch,000h ; Hex #35
68 Db 038h,060h,0C0h,0FCh,0C6h,0C6h,07Ch,000h ; Hex #36
69 Db 0FEh,0C6h,00Ch,018h,030h,030h,030h,000h ; Hex #37
70 Db 07Ch,0C6h,0C6h,07Ch,0C6h,0C6h,07Ch,000h ; Hex #38
71 Db 07Ch,0C6h,0C6h,07Eh,006h,00Ch,078h,000h ; Hex #39
72 Db 000h,018h,018h,000h,000h,018h,018h,000h ; Hex #3A
73 Db 000h,018h,018h,000h,000h,018h,018h,030h ; Hex #3B
74 Db 006h,00Ch,018h,030h,018h,00Ch,006h,000h ; Hex #3C
75 Db 000h,000h,07Eh,000h,000h,07Eh,000h,000h ; Hex #3D
76 Db 060h,030h,018h,00Ch,018h,030h,060h,000h ; Hex #3E
77 Db 07Ch,0C6h,00Ch,018h,018h,000h,018h,000h ; Hex #3F
78 Db 07Ch,0C6h,0DEh,0DEh,0DEh,0C0h,078h,000h ; Hex #40
79 Db 038h,06Ch,0C6h,0FEh,0C6h,0C6h,0C6h,000h ; Hex #41
80 Db 0FCh,066h,066h,07Ch,066h,066h,0FCh,000h ; Hex #42
81 Db 03Ch,066h,0C0h,0C0h,0C0h,066h,03Ch,000h ; Hex #43
82 Db 0F8h,06Ch,066h,066h,066h,06Ch,0F8h,000h ; Hex #44
83 Db 0FEh,062h,068h,078h,068h,062h,0FEh,000h ; Hex #45
84 Db 0FEh,062h,068h,078h,068h,060h,0F0h,000h ; Hex #46
85 Db 03Ch,066h,0C0h,0C0h,0CEh,066h,03Ah,000h ; Hex #47
86 Db 0C6h,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,000h ; Hex #48
87 Db 03Ch,018h,018h,018h,018h,018h,03Ch,000h ; Hex #49
88 Db 01Eh,00Ch,00Ch,00Ch,0CCh,0CCh,078h,000h ; Hex #4A
89 Db 0E6h,066h,06Ch,078h,06Ch,066h,0E6h,000h ; Hex #4B
90 Db 0F0h,060h,060h,060h,062h,066h,0FEh,000h ; Hex #4C
91 Db 0C6h,0EEh,0FEh,0FEh,0D6h,0C6h,0C6h,000h ; Hex #4D
92 Db 0C6h,0E6h,0F6h,0DEh,0CEh,0C6h,0C6h,000h ; Hex #4E
93 Db 07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h ; Hex #4F
94 Db 0FCh,066h,066h,07Ch,060h,060h,0F0h,000h ; Hex #50
95 Db 07Ch,0C6h,0C6h,0C6h,0C6h,0CEh,07Ch,00Eh ; Hex #51
96 Db 0FCh,066h,066h,07Ch,06Ch,066h,0E6h,000h ; Hex #52
97 Db 03Ch,066h,030h,018h,00Ch,066h,03Ch,000h ; Hex #53
98 Db 07Eh,07Eh,05Ah,018h,018h,018h,03Ch,000h ; Hex #54
99 Db 0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h ; Hex #55
100 Db 0C6h,0C6h,0C6h,0C6h,0C6h,06Ch,038h,000h ; Hex #56
101 Db 0C6h,0C6h,0C6h,0D6h,0D6h,0FEh,06Ch,000h ; Hex #57
102 Db 0C6h,0C6h,06Ch,038h,06Ch,0C6h,0C6h,000h ; Hex #58
103 Db 066h,066h,066h,03Ch,018h,018h,03Ch,000h ; Hex #59
104 Db 0FEh,0C6h,08Ch,018h,032h,066h,0FEh,000h ; Hex #5A
105 Db 03Ch,030h,030h,030h,030h,030h,03Ch,000h ; Hex #5B
106 Db 0C0h,060h,030h,018h,00Ch,006h,002h,000h ; Hex #5C
107 Db 03Ch,00Ch,00Ch,00Ch,00Ch,00Ch,03Ch,000h ; Hex #5D
108 Db 010h,038h,06Ch,0C6h,000h,000h,000h,000h ; Hex #5E
109 Db 000h,000h,000h,000h,000h,000h,000h,0FFh ; Hex #5F
110 Db 030h,018h,00Ch,000h,000h,000h,000h,000h ; Hex #60
111 Db 000h,000h,078h,00Ch,07Ch,0CCh,076h,000h ; Hex #61
112 Db 0E0h,060h,07Ch,066h,066h,066h,0DCh,000h ; Hex #62
113 Db 000h,000h,07Ch,0C6h,0C0h,0C6h,07Ch,000h ; Hex #63
114 Db 01Ch,00Ch,07Ch,0CCh,0CCh,0CCh,076h,000h ; Hex #64
115 Db 000h,000h,07Ch,0C6h,0FEh,0C0h,07Ch,000h ; Hex #65
116 Db 03Ch,066h,060h,0F8h,060h,060h,0F0h,000h ; Hex #66
117 Db 000h,000h,076h,0CCh,0CCh,07Ch,00Ch,0F8h ; Hex #67
118 Db 0E0h,060h,06Ch,076h,066h,066h,0E6h,000h ; Hex #68
119 Db 018h,000h,038h,018h,018h,018h,03Ch,000h ; Hex #69
120 Db 006h,000h,006h,006h,006h,066h,066h,03Ch ; Hex #6A
121 Db 0E0h,060h,066h,06Ch,078h,06Ch,0E6h,000h ; Hex #6B
122 Db 038h,018h,018h,018h,018h,018h,03Ch,000h ; Hex #6C
123 Db 000h,000h,0ECh,0FEh,0D6h,0D6h,0D6h,000h ; Hex #6D
124 Db 000h,000h,0DCh,066h,066h,066h,066h,000h ; Hex #6E
125 Db 000h,000h,07Ch,0C6h,0C6h,0C6h,07Ch,000h ; Hex #6F
126 Db 000h,000h,0DCh,066h,066h,07Ch,060h,0F0h ; Hex #70
127 Db 000h,000h,076h,0CCh,0CCh,07Ch,00Ch,01Eh ; Hex #71
128 Db 000h,000h,0DCh,076h,060h,060h,0F0h,000h ; Hex #72
129 Db 000h,000h,07Eh,0C0h,07Ch,006h,0FCh,000h ; Hex #73
130 Db 030h,030h,0FCh,030h,030h,036h,01Ch,000h ; Hex #74
131 Db 000h,000h,0CCh,0CCh,0CCh,0CCh,076h,000h ; Hex #75
132 Db 000h,000h,0C6h,0C6h,0C6h,06Ch,038h,000h ; Hex #76
133 Db 000h,000h,0C6h,0D6h,0D6h,0FEh,06Ch,000h ; Hex #77
134 Db 000h,000h,0C6h,06Ch,038h,06Ch,0C6h,000h ; Hex #78
135 Db 000h,000h,0C6h,0C6h,0C6h,07Eh,006h,0FCh ; Hex #79
136 Db 000h,000h,07Eh,04Ch,018h,032h,07Eh,000h ; Hex #7A
137 Db 00Eh,018h,018h,070h,018h,018h,00Eh,000h ; Hex #7B
138 Db 018h,018h,018h,018h,018h,018h,018h,000h ; Hex #7C
139 Db 070h,018h,018h,00Eh,018h,018h,070h,000h ; Hex #7D
140 Db 076h,0DCh,000h,000h,000h,000h,000h,000h ; Hex #7E
141 Db 000h,010h,038h,06Ch,0C6h,0C6h,0FEh,000h ; Hex #7F
142 Db 07Ch,0C6h,0C0h,0C0h,0C6h,07Ch,00Ch,078h ; Hex #80
143 Db 0CCh,000h,0CCh,0CCh,0CCh,0CCh,076h,000h ; Hex #81
144 Db 00Ch,018h,07Ch,0C6h,0FEh,0C0h,07Ch,000h ; Hex #82
145 Db 07Ch,082h,078h,00Ch,07Ch,0CCh,076h,000h ; Hex #83
146 Db 0C6h,000h,078h,00Ch,07Ch,0CCh,076h,000h ; Hex #84
147 Db 030h,018h,078h,00Ch,07Ch,0CCh,076h,000h ; Hex #85
148 Db 030h,030h,078h,00Ch,07Ch,0CCh,076h,000h ; Hex #86
149 Db 000h,000h,07Eh,0C0h,0C0h,07Eh,00Ch,038h ; Hex #87
150 Db 07Ch,082h,07Ch,0C6h,0FEh,0C0h,07Ch,000h ; Hex #88
151 Db 0C6h,000h,07Ch,0C6h,0FEh,0C0h,07Ch,000h ; Hex #89
152 Db 030h,018h,07Ch,0C6h,0FEh,0C0h,07Ch,000h ; Hex #8A
153 Db 066h,000h,038h,018h,018h,018h,03Ch,000h ; Hex #8B
154 Db 07Ch,082h,038h,018h,018h,018h,03Ch,000h ; Hex #8C
155 Db 030h,018h,000h,038h,018h,018h,03Ch,000h ; Hex #8D
156 Db 0C6h,038h,06Ch,0C6h,0FEh,0C6h,0C6h,000h ; Hex #8E
157 Db 038h,06Ch,07Ch,0C6h,0FEh,0C6h,0C6h,000h ; Hex #8F
158 Db 018h,030h,0FEh,0C0h,0F8h,0C0h,0FEh,000h ; Hex #90
159 Db 000h,000h,07Eh,018h,07Eh,0D8h,07Eh,000h ; Hex #91
160 Db 03Eh,06Ch,0CCh,0FEh,0CCh,0CCh,0CEh,000h ; Hex #92
161 Db 07Ch,082h,07Ch,0C6h,0C6h,0C6h,07Ch,000h ; Hex #93
162 Db 0C6h,000h,07Ch,0C6h,0C6h,0C6h,07Ch,000h ; Hex #94
163 Db 030h,018h,07Ch,0C6h,0C6h,0C6h,07Ch,000h ; Hex #95
164 Db 078h,084h,000h,0CCh,0CCh,0CCh,076h,000h ; Hex #96
165 Db 060h,030h,0CCh,0CCh,0CCh,0CCh,076h,000h ; Hex #97
166 Db 0C6h,000h,0C6h,0C6h,0C6h,07Eh,006h,0FCh ; Hex #98
167 Db 0C6h,038h,06Ch,0C6h,0C6h,06Ch,038h,000h ; Hex #99
168 Db 0C6h,000h,0C6h,0C6h,0C6h,0C6h,07Ch,000h ; Hex #9A
169 Db 018h,018h,07Eh,0C0h,0C0h,07Eh,018h,018h ; Hex #9B
170 Db 038h,06Ch,064h,0F0h,060h,066h,0FCh,000h ; Hex #9C
171 Db 066h,066h,03Ch,07Eh,018h,07Eh,018h,018h ; Hex #9D
172 Db 0F8h,0CCh,0CCh,0FAh,0C6h,0CFh,0C6h,0C7h ; Hex #9E
173 Db 00Eh,01Bh,018h,03Ch,018h,0D8h,070h,000h ; Hex #9F
174 Db 018h,030h,078h,00Ch,07Ch,0CCh,076h,000h ; Hex #A0
175 Db 00Ch,018h,000h,038h,018h,018h,03Ch,000h ; Hex #A1
176 Db 00Ch,018h,07Ch,0C6h,0C6h,0C6h,07Ch,000h ; Hex #A2
177 Db 018h,030h,0CCh,0CCh,0CCh,0CCh,076h,000h ; Hex #A3
178 Db 076h,0DCh,000h,0DCh,066h,066h,066h,000h ; Hex #A4
179 Db 076h,0DCh,000h,0E6h,0F6h,0DEh,0CEh,000h ; Hex #A5
180 Db 03Ch,06Ch,06Ch,03Eh,000h,07Eh,000h,000h ; Hex #A6
181 Db 038h,06Ch,06Ch,038h,000h,07Ch,000h,000h ; Hex #A7
182 Db 018h,000h,018h,018h,030h,063h,03Eh,000h ; Hex #A8
183 Db 000h,000h,000h,0FEh,0C0h,0C0h,000h,000h ; Hex #A9
184 Db 000h,000h,000h,0FEh,006h,006h,000h,000h ; Hex #AA
185 Db 063h,0E6h,06Ch,07Eh,033h,066h,0CCh,00Fh ; Hex #AB
186 Db 063h,0E6h,06Ch,07Ah,036h,06Ah,0DFh,006h ; Hex #AC
187 Db 018h,000h,018h,018h,03Ch,03Ch,018h,000h ; Hex #AD
188 Db 000h,033h,066h,0CCh,066h,033h,000h,000h ; Hex #AE
189 Db 000h,0CCh,066h,033h,066h,0CCh,000h,000h ; Hex #AF
190 Db 022h,088h,022h,088h,022h,088h,022h,088h ; Hex #B0
191 Db 055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh ; Hex #B1
192 Db 077h,0DDh,077h,0DDh,077h,0DDh,077h,0DDh ; Hex #B2
193 Db 018h,018h,018h,018h,018h,018h,018h,018h ; Hex #B3
194 Db 018h,018h,018h,018h,0F8h,018h,018h,018h ; Hex #B4
195 Db 018h,018h,0F8h,018h,0F8h,018h,018h,018h ; Hex #B5
196 Db 036h,036h,036h,036h,0F6h,036h,036h,036h ; Hex #B6
197 Db 000h,000h,000h,000h,0FEh,036h,036h,036h ; Hex #B7
198 Db 000h,000h,0F8h,018h,0F8h,018h,018h,018h ; Hex #B8
199 Db 036h,036h,0F6h,006h,0F6h,036h,036h,036h ; Hex #B9
200 Db 036h,036h,036h,036h,036h,036h,036h,036h ; Hex #BA
201 Db 000h,000h,0FEh,006h,0F6h,036h,036h,036h ; Hex #BB
202 Db 036h,036h,0F6h,006h,0FEh,000h,000h,000h ; Hex #BC
203 Db 036h,036h,036h,036h,0FEh,000h,000h,000h ; Hex #BD
204 Db 018h,018h,0F8h,018h,0F8h,000h,000h,000h ; Hex #BE
205 Db 000h,000h,000h,000h,0F8h,018h,018h,018h ; Hex #BF
206 Db 018h,018h,018h,018h,01Fh,000h,000h,000h ; Hex #C0
207 Db 018h,018h,018h,018h,0FFh,000h,000h,000h ; Hex #C1
208 Db 000h,000h,000h,000h,0FFh,018h,018h,018h ; Hex #C2
209 Db 018h,018h,018h,018h,01Fh,018h,018h,018h ; Hex #C3
210 Db 000h,000h,000h,000h,0FFh,000h,000h,000h ; Hex #C4
211 Db 018h,018h,018h,018h,0FFh,018h,018h,018h ; Hex #C5
212 Db 018h,018h,01Fh,018h,01Fh,018h,018h,018h ; Hex #C6
213 Db 036h,036h,036h,036h,037h,036h,036h,036h ; Hex #C7
214 Db 036h,036h,037h,030h,03Fh,000h,000h,000h ; Hex #C8
215 Db 000h,000h,03Fh,030h,037h,036h,036h,036h ; Hex #C9
216 Db 036h,036h,0F7h,000h,0FFh,000h,000h,000h ; Hex #CA
217 Db 000h,000h,0FFh,000h,0F7h,036h,036h,036h ; Hex #CB
218 Db 036h,036h,037h,030h,037h,036h,036h,036h ; Hex #CC
219 Db 000h,000h,0FFh,000h,0FFh,000h,000h,000h ; Hex #CD
220 Db 036h,036h,0F7h,000h,0F7h,036h,036h,036h ; Hex #CE
221 Db 018h,018h,0FFh,000h,0FFh,000h,000h,000h ; Hex #CF
222 Db 036h,036h,036h,036h,0FFh,000h,000h,000h ; Hex #D0
223 Db 000h,000h,0FFh,000h,0FFh,018h,018h,018h ; Hex #D1
224 Db 000h,000h,000h,000h,0FFh,036h,036h,036h ; Hex #D2
225 Db 036h,036h,036h,036h,03Fh,000h,000h,000h ; Hex #D3
226 Db 018h,018h,01Fh,018h,01Fh,000h,000h,000h ; Hex #D4
227 Db 000h,000h,01Fh,018h,01Fh,018h,018h,018h ; Hex #D5
228 Db 000h,000h,000h,000h,03Fh,036h,036h,036h ; Hex #D6
229 Db 036h,036h,036h,036h,0FFh,036h,036h,036h ; Hex #D7
230 Db 018h,018h,0FFh,018h,0FFh,018h,018h,018h ; Hex #D8
231 Db 018h,018h,018h,018h,0F8h,000h,000h,000h ; Hex #D9
232 Db 000h,000h,000h,000h,01Fh,018h,018h,018h ; Hex #DA
233 Db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh ; Hex #DB
234 Db 000h,000h,000h,000h,0FFh,0FFh,0FFh,0FFh ; Hex #DC
235 Db 0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h ; Hex #DD
236 Db 00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh ; Hex #DE
237 Db 0FFh,0FFh,0FFh,0FFh,000h,000h,000h,000h ; Hex #DF
238 Db 000h,000h,076h,0DCh,0C8h,0DCh,076h,000h ; Hex #E0
239 Db 078h,0CCh,0CCh,0D8h,0CCh,0C6h,0CCh,000h ; Hex #E1
240 Db 0FEh,0C6h,0C0h,0C0h,0C0h,0C0h,0C0h,000h ; Hex #E2
241 Db 000h,000h,0FEh,06Ch,06Ch,06Ch,06Ch,000h ; Hex #E3
242 Db 0FEh,0C6h,060h,030h,060h,0C6h,0FEh,000h ; Hex #E4
243 Db 000h,000h,07Eh,0D8h,0D8h,0D8h,070h,000h ; Hex #E5
244 Db 000h,000h,066h,066h,066h,066h,07Ch,0C0h ; Hex #E6
245 Db 000h,076h,0DCh,018h,018h,018h,018h,000h ; Hex #E7
246 Db 07Eh,018h,03Ch,066h,066h,03Ch,018h,07Eh ; Hex #E8
247 Db 038h,06Ch,0C6h,0FEh,0C6h,06Ch,038h,000h ; Hex #E9
248 Db 038h,06Ch,0C6h,0C6h,06Ch,06Ch,0EEh,000h ; Hex #EA
249 Db 00Eh,018h,00Ch,03Eh,066h,066h,03Ch,000h ; Hex #EB
250 Db 000h,000h,07Eh,0DBh,0DBh,07Eh,000h,000h ; Hex #EC
251 Db 006h,00Ch,07Eh,0DBh,0DBh,07Eh,060h,0C0h ; Hex #ED
252 Db 01Eh,030h,060h,07Eh,060h,030h,01Eh,000h ; Hex #EE
253 Db 000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,000h ; Hex #EF
254 Db 000h,0FEh,000h,0FEh,000h,0FEh,000h,000h ; Hex #F0
255 Db 018h,018h,07Eh,018h,018h,000h,07Eh,000h ; Hex #F1
256 Db 030h,018h,00Ch,018h,030h,000h,07Eh,000h ; Hex #F2
257 Db 00Ch,018h,030h,018h,00Ch,000h,07Eh,000h ; Hex #F3
258 Db 00Eh,01Bh,01Bh,018h,018h,018h,018h,018h ; Hex #F4
259 Db 018h,018h,018h,018h,018h,0D8h,0D8h,070h ; Hex #F5
260 Db 000h,018h,000h,07Eh,000h,018h,000h,000h ; Hex #F6
261 Db 000h,076h,0DCh,000h,076h,0DCh,000h,000h ; Hex #F7
262 Db 038h,06Ch,06Ch,038h,000h,000h,000h,000h ; Hex #F8
263 Db 000h,000h,000h,018h,018h,000h,000h,000h ; Hex #F9
264 Db 000h,000h,000h,018h,000h,000h,000h,000h ; Hex #FA
265 Db 00Fh,00Ch,00Ch,00Ch,0ECh,06Ch,03Ch,01Ch ; Hex #FB
266 Db 06Ch,036h,036h,036h,036h,000h,000h,000h ; Hex #FC
267 Db 078h,00Ch,018h,030h,07Ch,000h,000h,000h ; Hex #FD
268 Db 000h,000h,03Ch,03Ch,03Ch,03Ch,000h,000h ; Hex #FE
269 Db 000h,000h,000h,000h,000h,000h,000h,000h ; Hex #FF
270
diff --git a/v4.0/src/DEV/DISPLAY/EGA/437-CPI.ASM b/v4.0/src/DEV/DISPLAY/EGA/437-CPI.ASM
new file mode 100644
index 0000000..6a44e43
--- /dev/null
+++ b/v4.0/src/DEV/DISPLAY/EGA/437-CPI.ASM
@@ -0,0 +1,49 @@
1CODE SEGMENT BYTE PUBLIC 'CODE'
2 ASSUME CS:CODE,DS:CODE
3
4IF1
5 %OUT EGA.CPI creation file
6 %OUT .
7 %OUT CP SRC files:
8 %OUT .
9 %OUT . CODE PAGE: 437
10ENDIF
11
12EGA437: DW LEN_437 ; SIZE OF ENTRY HEADER
13 DW POST_EGA437,0 ; POINTER TO NEXT HEADER
14 DW 1 ; DEVICE TYPE
15 DB "EGA " ; DEVICE SUBTYPE ID
16 DW 437 ; CODE PAGE ID
17 DW 3 DUP(0) ; RESERVED
18 DW OFFSET DATA437,0 ; POINTER TO FONTS
19LEN_437 EQU ($-EGA437) ;
20 ;
21DATA437:DW 1 ; CART/NON-CART
22 DW 3 ; # OF FONTS
23 DW LEN_D437 ; LENGTH OF DATA
24D437: ;
25 DB 16,8 ; CHARACTER BOX SIZE
26 DB 0,0 ; ASPECT RATIO (UNUSED)
27 DW 256 ; NUMBER OF CHARACTERS
28 ;
29 INCLUDE 437-8X16.ASM ;
30 ;
31 DB 14,8 ; CHARACTER BOX SIZE
32 DB 0,0 ; ASPECT RATIO (UNUSED)
33 DW 256 ; NUMBER OF CHARACTERS
34 ;
35 INCLUDE 437-8X14.ASM ;
36 ;
37 DB 8,8 ; CHARACTER BOX SIZE
38 DB 0,0 ; ASPECT RATIO (UNUSED)
39 DW 256 ; NUMBER OF CHARACTERS
40 ;
41 INCLUDE 437-8X8.ASM ;
42 ;
43LEN_D437 EQU ($-D437) ;
44 ;
45POST_EGA437 EQU $ ;
46 ;
47CODE ENDS ;
48 END ;
49 \ No newline at end of file
diff --git a/v4.0/src/DEV/DISPLAY/EGA/850-8X14.ASM b/v4.0/src/DEV/DISPLAY/EGA/850-8X14.ASM
new file mode 100644
index 0000000..10d6568
--- /dev/null
+++ b/v4.0/src/DEV/DISPLAY/EGA/850-8X14.ASM
@@ -0,0 +1,270 @@
1;***************************************************
2; CHARACTER FONT FILE
3; Source Assembler File
4;
5; CODE PAGE: 850
6; FONT RESOLUTION: 8 x 14
7;
8; DATE CREATED:05-28-1987
9;
10;
11; Output file from: MULTIFON, Version 1A
12;
13;***************************************************
14 Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #0
15 Db 000h,000h,000h,07Eh,081h,0A5h,081h,081h,0BDh,099h,081h,07Eh,000h,000h ; Hex #1
16 Db 000h,000h,000h,07Eh,0FFh,0DBh,0FFh,0FFh,0C3h,0E7h,0FFh,07Eh,000h,000h ; Hex #2
17 Db 000h,000h,000h,000h,06Ch,0FEh,0FEh,0FEh,0FEh,07Ch,038h,010h,000h,000h ; Hex #3
18 Db 000h,000h,000h,000h,010h,038h,07Ch,0FEh,07Ch,038h,010h,000h,000h,000h ; Hex #4
19 Db 000h,000h,000h,018h,03Ch,03Ch,0E7h,0E7h,0E7h,018h,018h,03Ch,000h,000h ; Hex #5
20 Db 000h,000h,000h,018h,03Ch,07Eh,0FFh,0FFh,07Eh,018h,018h,03Ch,000h,000h ; Hex #6
21 Db 000h,000h,000h,000h,000h,000h,018h,03Ch,03Ch,018h,000h,000h,000h,000h ; Hex #7
22 Db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0E7h,0C3h,0C3h,0E7h,0FFh,0FFh,0FFh,0FFh ; Hex #8
23 Db 000h,000h,000h,000h,000h,03Ch,066h,042h,042h,066h,03Ch,000h,000h,000h ; Hex #9
24 Db 0FFh,0FFh,0FFh,0FFh,0FFh,0C3h,099h,0BDh,0BDh,099h,0C3h,0FFh,0FFh,0FFh ; Hex #A
25 Db 000h,000h,000h,01Eh,00Eh,01Ah,032h,078h,0CCh,0CCh,0CCh,078h,000h,000h ; Hex #B
26 Db 000h,000h,000h,03Ch,066h,066h,066h,03Ch,018h,07Eh,018h,018h,000h,000h ; Hex #C
27 Db 000h,000h,000h,03Fh,033h,03Fh,030h,030h,030h,070h,0F0h,0E0h,000h,000h ; Hex #D
28 Db 000h,000h,000h,07Fh,063h,07Fh,063h,063h,063h,067h,0E7h,0E6h,0C0h,000h ; Hex #E
29 Db 000h,000h,000h,018h,018h,0DBh,03Ch,0E7h,03Ch,0DBh,018h,018h,000h,000h ; Hex #F
30 Db 000h,000h,000h,080h,0C0h,0E0h,0F8h,0FEh,0F8h,0E0h,0C0h,080h,000h,000h ; Hex #10
31 Db 000h,000h,000h,002h,006h,00Eh,03Eh,0FEh,03Eh,00Eh,006h,002h,000h,000h ; Hex #11
32 Db 000h,000h,000h,018h,03Ch,07Eh,018h,018h,018h,07Eh,03Ch,018h,000h,000h ; Hex #12
33 Db 000h,000h,000h,066h,066h,066h,066h,066h,066h,000h,066h,066h,000h,000h ; Hex #13
34 Db 000h,000h,000h,07Fh,0DBh,0DBh,0DBh,07Bh,01Bh,01Bh,01Bh,01Bh,000h,000h ; Hex #14
35 Db 000h,000h,07Ch,0C6h,060h,038h,06Ch,0C6h,0C6h,06Ch,038h,00Ch,0C6h,07Ch ; Hex #15
36 Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,0FEh,0FEh,0FEh,000h,000h ; Hex #16
37 Db 000h,000h,000h,018h,03Ch,07Eh,018h,018h,018h,07Eh,03Ch,018h,07Eh,000h ; Hex #17
38 Db 000h,000h,000h,018h,03Ch,07Eh,018h,018h,018h,018h,018h,018h,000h,000h ; Hex #18
39 Db 000h,000h,000h,018h,018h,018h,018h,018h,018h,07Eh,03Ch,018h,000h,000h ; Hex #19
40 Db 000h,000h,000h,000h,000h,018h,00Ch,0FEh,00Ch,018h,000h,000h,000h,000h ; Hex #1A
41 Db 000h,000h,000h,000h,000h,030h,060h,0FEh,060h,030h,000h,000h,000h,000h ; Hex #1B
42 Db 000h,000h,000h,000h,000h,000h,0C0h,0C0h,0C0h,0FEh,000h,000h,000h,000h ; Hex #1C
43 Db 000h,000h,000h,000h,000h,028h,06Ch,0FEh,06Ch,028h,000h,000h,000h,000h ; Hex #1D
44 Db 000h,000h,000h,000h,010h,038h,038h,07Ch,07Ch,0FEh,0FEh,000h,000h,000h ; Hex #1E
45 Db 000h,000h,000h,000h,0FEh,0FEh,07Ch,07Ch,038h,038h,010h,000h,000h,000h ; Hex #1F
46 Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #20
47 Db 000h,000h,000h,018h,03Ch,03Ch,03Ch,018h,018h,000h,018h,018h,000h,000h ; Hex #21
48 Db 000h,066h,066h,066h,024h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #22
49 Db 000h,000h,000h,06Ch,06Ch,0FEh,06Ch,06Ch,06Ch,0FEh,06Ch,06Ch,000h,000h ; Hex #23
50 Db 000h,018h,018h,07Ch,0C6h,0C2h,0C0h,07Ch,006h,086h,0C6h,07Ch,018h,018h ; Hex #24
51 Db 000h,000h,000h,000h,000h,0C2h,0C6h,00Ch,018h,030h,066h,0C6h,000h,000h ; Hex #25
52 Db 000h,000h,000h,038h,06Ch,06Ch,038h,076h,0DCh,0CCh,0CCh,076h,000h,000h ; Hex #26
53 Db 000h,018h,018h,018h,030h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #27
54 Db 000h,000h,000h,00Ch,018h,030h,030h,030h,030h,030h,018h,00Ch,000h,000h ; Hex #28
55 Db 000h,000h,000h,030h,018h,00Ch,00Ch,00Ch,00Ch,00Ch,018h,030h,000h,000h ; Hex #29
56 Db 000h,000h,000h,000h,000h,066h,03Ch,0FFh,03Ch,066h,000h,000h,000h,000h ; Hex #2A
57 Db 000h,000h,000h,000h,000h,018h,018h,07Eh,018h,018h,000h,000h,000h,000h ; Hex #2B
58 Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,018h,018h,018h,030h,000h ; Hex #2C
59 Db 000h,000h,000h,000h,000h,000h,000h,0FEh,000h,000h,000h,000h,000h,000h ; Hex #2D
60 Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,018h,018h,000h,000h ; Hex #2E
61 Db 000h,000h,000h,002h,006h,00Ch,018h,030h,060h,0C0h,080h,000h,000h,000h ; Hex #2F
62 Db 000h,000h,000h,038h,06Ch,0C6h,0C6h,0D6h,0C6h,0C6h,06Ch,038h,000h,000h ; Hex #30
63 Db 000h,000h,000h,018h,038h,078h,018h,018h,018h,018h,018h,07Eh,000h,000h ; Hex #31
64 Db 000h,000h,000h,07Ch,0C6h,006h,00Ch,018h,030h,060h,0C6h,0FEh,000h,000h ; Hex #32
65 Db 000h,000h,000h,07Ch,0C6h,006h,006h,03Ch,006h,006h,0C6h,07Ch,000h,000h ; Hex #33
66 Db 000h,000h,000h,00Ch,01Ch,03Ch,06Ch,0CCh,0FEh,00Ch,00Ch,01Eh,000h,000h ; Hex #34
67 Db 000h,000h,000h,0FEh,0C0h,0C0h,0C0h,0FCh,006h,006h,0C6h,07Ch,000h,000h ; Hex #35
68 Db 000h,000h,000h,038h,060h,0C0h,0C0h,0FCh,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #36
69 Db 000h,000h,000h,0FEh,0C6h,006h,00Ch,018h,030h,030h,030h,030h,000h,000h ; Hex #37
70 Db 000h,000h,000h,07Ch,0C6h,0C6h,0C6h,07Ch,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #38
71 Db 000h,000h,000h,07Ch,0C6h,0C6h,0C6h,07Eh,006h,006h,00Ch,078h,000h,000h ; Hex #39
72 Db 000h,000h,000h,000h,018h,018h,000h,000h,000h,018h,018h,000h,000h,000h ; Hex #3A
73 Db 000h,000h,000h,000h,018h,018h,000h,000h,000h,018h,018h,030h,000h,000h ; Hex #3B
74 Db 000h,000h,000h,00Ch,018h,030h,060h,0C0h,060h,030h,018h,00Ch,000h,000h ; Hex #3C
75 Db 000h,000h,000h,000h,000h,000h,07Eh,000h,000h,07Eh,000h,000h,000h,000h ; Hex #3D
76 Db 000h,000h,000h,060h,030h,018h,00Ch,006h,00Ch,018h,030h,060h,000h,000h ; Hex #3E
77 Db 000h,000h,000h,07Ch,0C6h,0C6h,00Ch,018h,018h,000h,018h,018h,000h,000h ; Hex #3F
78 Db 000h,000h,000h,07Ch,0C6h,0C6h,0DEh,0DEh,0DEh,0DCh,0C0h,07Ch,000h,000h ; Hex #40
79 Db 000h,000h,000h,010h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,000h,000h ; Hex #41
80 Db 000h,000h,000h,0FCh,066h,066h,066h,07Ch,066h,066h,066h,0FCh,000h,000h ; Hex #42
81 Db 000h,000h,000h,03Ch,066h,0C2h,0C0h,0C0h,0C0h,0C2h,066h,03Ch,000h,000h ; Hex #43
82 Db 000h,000h,000h,0F8h,06Ch,066h,066h,066h,066h,066h,06Ch,0F8h,000h,000h ; Hex #44
83 Db 000h,000h,000h,0FEh,066h,062h,068h,078h,068h,062h,066h,0FEh,000h,000h ; Hex #45
84 Db 000h,000h,000h,0FEh,066h,062h,068h,078h,068h,060h,060h,0F0h,000h,000h ; Hex #46
85 Db 000h,000h,000h,03Ch,066h,0C2h,0C0h,0C0h,0DEh,0C6h,066h,03Ah,000h,000h ; Hex #47
86 Db 000h,000h,000h,0C6h,0C6h,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,0C6h,000h,000h ; Hex #48
87 Db 000h,000h,000h,03Ch,018h,018h,018h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #49
88 Db 000h,000h,000h,01Eh,00Ch,00Ch,00Ch,00Ch,00Ch,0CCh,0CCh,078h,000h,000h ; Hex #4A
89 Db 000h,000h,000h,0E6h,066h,06Ch,06Ch,078h,06Ch,06Ch,066h,0E6h,000h,000h ; Hex #4B
90 Db 000h,000h,000h,0F0h,060h,060h,060h,060h,060h,062h,066h,0FEh,000h,000h ; Hex #4C
91 Db 000h,000h,000h,0C6h,0EEh,0FEh,0D6h,0C6h,0C6h,0C6h,0C6h,0C6h,000h,000h ; Hex #4D
92 Db 000h,000h,000h,0C6h,0E6h,0F6h,0FEh,0DEh,0CEh,0C6h,0C6h,0C6h,000h,000h ; Hex #4E
93 Db 000h,000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #4F
94 Db 000h,000h,000h,0FCh,066h,066h,066h,07Ch,060h,060h,060h,0F0h,000h,000h ; Hex #50
95 Db 000h,000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0D6h,0DEh,07Ch,00Eh,000h ; Hex #51
96 Db 000h,000h,000h,0FCh,066h,066h,066h,07Ch,06Ch,066h,066h,0E6h,000h,000h ; Hex #52
97 Db 000h,000h,000h,07Ch,0C6h,0C6h,060h,038h,00Ch,0C6h,0C6h,07Ch,000h,000h ; Hex #53
98 Db 000h,000h,000h,07Eh,07Eh,05Ah,018h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #54
99 Db 000h,000h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #55
100 Db 000h,000h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,06Ch,038h,010h,000h,000h ; Hex #56
101 Db 000h,000h,000h,0C6h,0C6h,0C6h,0C6h,0D6h,0D6h,0FEh,06Ch,06Ch,000h,000h ; Hex #57
102 Db 000h,000h,000h,0C6h,0C6h,0C6h,07Ch,038h,07Ch,0C6h,0C6h,0C6h,000h,000h ; Hex #58
103 Db 000h,000h,000h,066h,066h,066h,066h,03Ch,018h,018h,018h,03Ch,000h,000h ; Hex #59
104 Db 000h,000h,000h,0FEh,0C6h,08Ch,018h,030h,060h,0C2h,0C6h,0FEh,000h,000h ; Hex #5A
105 Db 000h,000h,000h,03Ch,030h,030h,030h,030h,030h,030h,030h,03Ch,000h,000h ; Hex #5B
106 Db 000h,000h,000h,080h,0C0h,0E0h,070h,038h,01Ch,00Eh,006h,002h,000h,000h ; Hex #5C
107 Db 000h,000h,000h,03Ch,00Ch,00Ch,00Ch,00Ch,00Ch,00Ch,00Ch,03Ch,000h,000h ; Hex #5D
108 Db 010h,038h,06Ch,0C6h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #5E
109 Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,0FFh ; Hex #5F
110 Db 000h,030h,018h,00Ch,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #60
111 Db 000h,000h,000h,000h,000h,000h,078h,00Ch,07Ch,0CCh,0CCh,076h,000h,000h ; Hex #61
112 Db 000h,000h,000h,0E0h,060h,060h,078h,06Ch,066h,066h,066h,07Ch,000h,000h ; Hex #62
113 Db 000h,000h,000h,000h,000h,000h,07Ch,0C6h,0C0h,0C0h,0C6h,07Ch,000h,000h ; Hex #63
114 Db 000h,000h,000h,01Ch,00Ch,00Ch,03Ch,06Ch,0CCh,0CCh,0CCh,076h,000h,000h ; Hex #64
115 Db 000h,000h,000h,000h,000h,000h,07Ch,0C6h,0FEh,0C0h,0C6h,07Ch,000h,000h ; Hex #65
116 Db 000h,000h,000h,01Ch,036h,032h,030h,07Ch,030h,030h,030h,078h,000h,000h ; Hex #66
117 Db 000h,000h,000h,000h,000h,000h,076h,0CCh,0CCh,0CCh,07Ch,00Ch,0CCh,078h ; Hex #67
118 Db 000h,000h,000h,0E0h,060h,060h,06Ch,076h,066h,066h,066h,0E6h,000h,000h ; Hex #68
119 Db 000h,000h,000h,018h,018h,000h,038h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #69
120 Db 000h,000h,000h,006h,006h,000h,00Eh,006h,006h,006h,006h,066h,066h,03Ch ; Hex #6A
121 Db 000h,000h,000h,0E0h,060h,060h,066h,06Ch,078h,06Ch,066h,0E6h,000h,000h ; Hex #6B
122 Db 000h,000h,000h,038h,018h,018h,018h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #6C
123 Db 000h,000h,000h,000h,000h,000h,0ECh,0FEh,0D6h,0D6h,0D6h,0D6h,000h,000h ; Hex #6D
124 Db 000h,000h,000h,000h,000h,000h,0DCh,066h,066h,066h,066h,066h,000h,000h ; Hex #6E
125 Db 000h,000h,000h,000h,000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #6F
126 Db 000h,000h,000h,000h,000h,000h,0DCh,066h,066h,066h,07Ch,060h,060h,0F0h ; Hex #70
127 Db 000h,000h,000h,000h,000h,000h,076h,0CCh,0CCh,0CCh,07Ch,00Ch,00Ch,01Eh ; Hex #71
128 Db 000h,000h,000h,000h,000h,000h,0DCh,076h,066h,060h,060h,0F0h,000h,000h ; Hex #72
129 Db 000h,000h,000h,000h,000h,000h,07Ch,0C6h,070h,01Ch,0C6h,07Ch,000h,000h ; Hex #73
130 Db 000h,000h,000h,010h,030h,030h,0FCh,030h,030h,030h,036h,01Ch,000h,000h ; Hex #74
131 Db 000h,000h,000h,000h,000h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h ; Hex #75
132 Db 000h,000h,000h,000h,000h,000h,0C6h,0C6h,0C6h,06Ch,038h,010h,000h,000h ; Hex #76
133 Db 000h,000h,000h,000h,000h,000h,0C6h,0C6h,0D6h,0D6h,0FEh,06Ch,000h,000h ; Hex #77
134 Db 000h,000h,000h,000h,000h,000h,0C6h,06Ch,038h,038h,06Ch,0C6h,000h,000h ; Hex #78
135 Db 000h,000h,000h,000h,000h,000h,0C6h,0C6h,0C6h,0C6h,07Eh,006h,00Ch,078h ; Hex #79
136 Db 000h,000h,000h,000h,000h,000h,0FEh,0CCh,018h,030h,066h,0FEh,000h,000h ; Hex #7A
137 Db 000h,000h,000h,00Eh,018h,018h,018h,070h,018h,018h,018h,00Eh,000h,000h ; Hex #7B
138 Db 000h,000h,000h,018h,018h,018h,018h,018h,018h,018h,018h,018h,000h,000h ; Hex #7C
139 Db 000h,000h,000h,070h,018h,018h,018h,00Eh,018h,018h,018h,070h,000h,000h ; Hex #7D
140 Db 000h,076h,0DCh,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #7E
141 Db 000h,000h,000h,000h,000h,010h,038h,06Ch,0C6h,0C6h,0FEh,000h,000h,000h ; Hex #7F
142 Db 000h,000h,000h,03Ch,066h,0C2h,0C0h,0C0h,0C0h,0C2h,066h,03Ch,00Ch,078h ; Hex #80
143 Db 000h,000h,000h,0CCh,000h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h ; Hex #81
144 Db 000h,000h,00Ch,018h,030h,000h,07Ch,0C6h,0FEh,0C0h,0C6h,07Ch,000h,000h ; Hex #82
145 Db 000h,000h,010h,038h,06Ch,000h,078h,00Ch,07Ch,0CCh,0CCh,076h,000h,000h ; Hex #83
146 Db 000h,000h,000h,0C6h,000h,000h,078h,00Ch,07Ch,0CCh,0CCh,076h,000h,000h ; Hex #84
147 Db 000h,000h,060h,030h,018h,000h,078h,00Ch,07Ch,0CCh,0CCh,076h,000h,000h ; Hex #85
148 Db 000h,000h,038h,06Ch,038h,000h,078h,00Ch,07Ch,0CCh,0CCh,076h,000h,000h ; Hex #86
149 Db 000h,000h,000h,000h,000h,000h,07Ch,0C6h,0C0h,0C0h,0C6h,07Ch,00Ch,078h ; Hex #87
150 Db 000h,000h,010h,038h,06Ch,000h,07Ch,0C6h,0FEh,0C0h,0C6h,07Ch,000h,000h ; Hex #88
151 Db 000h,000h,000h,0C6h,000h,000h,07Ch,0C6h,0FEh,0C0h,0C6h,07Ch,000h,000h ; Hex #89
152 Db 000h,000h,060h,030h,018h,000h,07Ch,0C6h,0FEh,0C0h,0C6h,07Ch,000h,000h ; Hex #8A
153 Db 000h,000h,000h,066h,000h,000h,038h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #8B
154 Db 000h,000h,018h,03Ch,066h,000h,038h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #8C
155 Db 000h,000h,060h,030h,018h,000h,038h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #8D
156 Db 000h,0C6h,000h,010h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,000h,000h ; Hex #8E
157 Db 038h,06Ch,038h,010h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,000h,000h ; Hex #8F
158 Db 00Ch,018h,000h,0FEh,066h,062h,068h,078h,068h,062h,066h,0FEh,000h,000h ; Hex #90
159 Db 000h,000h,000h,000h,000h,000h,0ECh,036h,076h,0DCh,0D8h,06Eh,000h,000h ; Hex #91
160 Db 000h,000h,000h,03Eh,06Ch,0CCh,0CCh,0FEh,0CCh,0CCh,0CCh,0CEh,000h,000h ; Hex #92
161 Db 000h,000h,010h,038h,06Ch,000h,07Ch,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #93
162 Db 000h,000h,000h,0C6h,000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #94
163 Db 000h,000h,060h,030h,018h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #95
164 Db 000h,000h,030h,078h,0CCh,000h,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h ; Hex #96
165 Db 000h,000h,060h,030h,018h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h ; Hex #97
166 Db 000h,000h,000h,0C6h,000h,000h,0C6h,0C6h,0C6h,0C6h,07Eh,006h,00Ch,078h ; Hex #98
167 Db 000h,0C6h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #99
168 Db 000h,0C6h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #9A
169 Db 000h,000h,000h,000h,000h,000h,07Ch,0CEh,0DEh,0F6h,0E6h,07Ch,000h,000h ; Hex #9B
170 Db 000h,000h,038h,06Ch,064h,060h,0F0h,060h,060h,060h,0E6h,0FCh,000h,000h ; Hex #9C
171 Db 000h,000h,004h,07Ch,0CEh,0CEh,0D6h,0D6h,0D6h,0E6h,0E6h,07Ch,040h,000h ; Hex #9D
172 Db 000h,000h,000h,000h,000h,0C6h,06Ch,038h,038h,06Ch,0C6h,000h,000h,000h ; Hex #9E
173 Db 000h,000h,00Eh,01Bh,018h,018h,018h,07Eh,018h,018h,018h,0D8h,070h,000h ; Hex #9F
174 Db 000h,000h,00Ch,018h,030h,000h,078h,00Ch,07Ch,0CCh,0CCh,076h,000h,000h ; Hex #A0
175 Db 000h,000h,00Ch,018h,030h,000h,038h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #A1
176 Db 000h,000h,00Ch,018h,030h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #A2
177 Db 000h,000h,00Ch,018h,030h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h ; Hex #A3
178 Db 000h,000h,000h,076h,0DCh,000h,0DCh,066h,066h,066h,066h,066h,000h,000h ; Hex #A4
179 Db 076h,0DCh,000h,0C6h,0E6h,0F6h,0FEh,0DEh,0CEh,0C6h,0C6h,0C6h,000h,000h ; Hex #A5
180 Db 000h,000h,03Ch,06Ch,06Ch,03Eh,000h,07Eh,000h,000h,000h,000h,000h,000h ; Hex #A6
181 Db 000h,000h,038h,06Ch,06Ch,038h,000h,07Ch,000h,000h,000h,000h,000h,000h ; Hex #A7
182 Db 000h,000h,000h,030h,030h,000h,030h,030h,060h,0C6h,0C6h,07Ch,000h,000h ; Hex #A8
183 Db 000h,000h,000h,038h,044h,0BAh,0AAh,0B2h,0AAh,0AAh,044h,038h,000h,000h ; Hex #A9
184 Db 000h,000h,000h,000h,000h,000h,000h,0FEh,006h,006h,006h,000h,000h,000h ; Hex #AA
185 Db 000h,000h,060h,0E0h,063h,066h,06Ch,018h,030h,06Eh,0C3h,006h,00Ch,01Fh ; Hex #AB
186 Db 000h,000h,060h,0E0h,063h,066h,06Ch,01Ah,036h,06Eh,0DAh,03Fh,006h,006h ; Hex #AC
187 Db 000h,000h,000h,018h,018h,000h,018h,018h,03Ch,03Ch,03Ch,018h,000h,000h ; Hex #AD
188 Db 000h,000h,000h,000h,000h,036h,06Ch,0D8h,06Ch,036h,000h,000h,000h,000h ; Hex #AE
189 Db 000h,000h,000h,000h,000h,0D8h,06Ch,036h,06Ch,0D8h,000h,000h,000h,000h ; Hex #AF
190 Db 011h,044h,011h,044h,011h,044h,011h,044h,011h,044h,011h,044h,011h,044h ; Hex #B0
191 Db 055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh ; Hex #B1
192 Db 0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h ; Hex #B2
193 Db 018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #B3
194 Db 018h,018h,018h,018h,018h,018h,018h,0F8h,018h,018h,018h,018h,018h,018h ; Hex #B4
195 Db 030h,060h,0C0h,010h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,000h,000h ; Hex #B5
196 Db 038h,06Ch,0C6h,010h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,000h,000h ; Hex #B6
197 Db 018h,00Ch,006h,010h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,000h,000h ; Hex #B7
198 Db 000h,000h,000h,038h,044h,09Ah,0A2h,0A2h,0A2h,09Ah,044h,038h,000h,000h ; Hex #B8
199 Db 036h,036h,036h,036h,036h,0F6h,006h,0F6h,036h,036h,036h,036h,036h,036h ; Hex #B9
200 Db 036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #BA
201 Db 000h,000h,000h,000h,000h,0FEh,006h,0F6h,036h,036h,036h,036h,036h,036h ; Hex #BB
202 Db 036h,036h,036h,036h,036h,0F6h,006h,0FEh,000h,000h,000h,000h,000h,000h ; Hex #BC
203 Db 000h,000h,018h,018h,07Ch,0C6h,0C0h,0C0h,0C6h,07Ch,018h,018h,000h,000h ; Hex #BD
204 Db 000h,000h,000h,066h,066h,03Ch,018h,07Eh,018h,07Eh,018h,018h,000h,000h ; Hex #BE
205 Db 000h,000h,000h,000h,000h,000h,000h,0F8h,018h,018h,018h,018h,018h,018h ; Hex #BF
206 Db 018h,018h,018h,018h,018h,018h,018h,01Fh,000h,000h,000h,000h,000h,000h ; Hex #C0
207 Db 018h,018h,018h,018h,018h,018h,018h,0FFh,000h,000h,000h,000h,000h,000h ; Hex #C1
208 Db 000h,000h,000h,000h,000h,000h,000h,0FFh,018h,018h,018h,018h,018h,018h ; Hex #C2
209 Db 018h,018h,018h,018h,018h,018h,018h,01Fh,018h,018h,018h,018h,018h,018h ; Hex #C3
210 Db 000h,000h,000h,000h,000h,000h,000h,0FFh,000h,000h,000h,000h,000h,000h ; Hex #C4
211 Db 018h,018h,018h,018h,018h,018h,018h,0FFh,018h,018h,018h,018h,018h,018h ; Hex #C5
212 Db 000h,000h,000h,076h,0DCh,000h,078h,00Ch,07Ch,0CCh,0CCh,076h,000h,000h ; Hex #C6
213 Db 076h,0DCh,000h,010h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,000h,000h ; Hex #C7
214 Db 036h,036h,036h,036h,036h,037h,030h,03Fh,000h,000h,000h,000h,000h,000h ; Hex #C8
215 Db 000h,000h,000h,000h,000h,03Fh,030h,037h,036h,036h,036h,036h,036h,036h ; Hex #C9
216 Db 036h,036h,036h,036h,036h,0F7h,000h,0FFh,000h,000h,000h,000h,000h,000h ; Hex #CA
217 Db 000h,000h,000h,000h,000h,0FFh,000h,0F7h,036h,036h,036h,036h,036h,036h ; Hex #CB
218 Db 036h,036h,036h,036h,036h,037h,030h,037h,036h,036h,036h,036h,036h,036h ; Hex #CC
219 Db 000h,000h,000h,000h,000h,0FFh,000h,0FFh,000h,000h,000h,000h,000h,000h ; Hex #CD
220 Db 036h,036h,036h,036h,036h,0F7h,000h,0F7h,036h,036h,036h,036h,036h,036h ; Hex #CE
221 Db 000h,000h,000h,000h,000h,0C6h,07Ch,0C6h,0C6h,0C6h,07Ch,0C6h,000h,000h ; Hex #CF
222 Db 000h,000h,000h,034h,018h,02Ch,006h,03Eh,066h,066h,066h,03Ch,000h,000h ; Hex #D0
223 Db 000h,000h,000h,0F8h,06Ch,066h,066h,0F6h,066h,066h,06Ch,0F8h,000h,000h ; Hex #D1
224 Db 038h,06Ch,000h,0FEh,066h,062h,068h,078h,068h,062h,066h,0FEh,000h,000h ; Hex #D2
225 Db 000h,0C6h,000h,0FEh,066h,062h,068h,078h,068h,062h,066h,0FEh,000h,000h ; Hex #D3
226 Db 030h,018h,000h,0FEh,066h,062h,068h,078h,068h,062h,066h,0FEh,000h,000h ; Hex #D4
227 Db 000h,000h,000h,000h,000h,000h,038h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #D5
228 Db 00Ch,018h,000h,03Ch,018h,018h,018h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #D6
229 Db 03Ch,066h,000h,03Ch,018h,018h,018h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #D7
230 Db 000h,066h,000h,03Ch,018h,018h,018h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #D8
231 Db 018h,018h,018h,018h,018h,018h,018h,0F8h,000h,000h,000h,000h,000h,000h ; Hex #D9
232 Db 000h,000h,000h,000h,000h,000h,000h,01Fh,018h,018h,018h,018h,018h,018h ; Hex #DA
233 Db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh ; Hex #DB
234 Db 000h,000h,000h,000h,000h,000h,000h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh ; Hex #DC
235 Db 000h,000h,018h,018h,018h,018h,000h,000h,000h,018h,018h,018h,018h,000h ; Hex #DD
236 Db 030h,018h,000h,03Ch,018h,018h,018h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #DE
237 Db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,000h,000h,000h,000h,000h,000h,000h ; Hex #DF
238 Db 018h,030h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #E0
239 Db 000h,000h,000h,078h,0CCh,0CCh,0CCh,0D8h,0CCh,0C6h,0C6h,0CCh,000h,000h ; Hex #E1
240 Db 038h,06Ch,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #E2
241 Db 030h,018h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #E3
242 Db 000h,000h,000h,076h,0DCh,000h,07Ch,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #E4
243 Db 076h,0DCh,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #E5
244 Db 000h,000h,000h,000h,000h,000h,066h,066h,066h,066h,066h,07Ch,060h,0C0h ; Hex #E6
245 Db 000h,000h,000h,0E0h,060h,060h,07Ch,066h,066h,066h,066h,07Ch,060h,0F0h ; Hex #E7
246 Db 000h,000h,000h,0F0h,060h,07Ch,066h,066h,066h,07Ch,060h,0F0h,000h,000h ; Hex #E8
247 Db 018h,030h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #E9
248 Db 038h,06Ch,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #EA
249 Db 030h,018h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #EB
250 Db 000h,000h,00Ch,018h,030h,000h,0C6h,0C6h,0C6h,0C6h,07Eh,006h,00Ch,0F8h ; Hex #EC
251 Db 00Ch,018h,000h,066h,066h,066h,066h,03Ch,018h,018h,018h,03Ch,000h,000h ; Hex #ED
252 Db 000h,0FFh,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #EE
253 Db 000h,00Ch,018h,030h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #EF
254 Db 000h,000h,000h,000h,000h,000h,000h,0FEh,000h,000h,000h,000h,000h,000h ; Hex #F0
255 Db 000h,000h,000h,000h,018h,018h,07Eh,018h,018h,000h,000h,07Eh,000h,000h ; Hex #F1
256 Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,0FFh,000h,0FFh ; Hex #F2
257 Db 000h,0E0h,030h,063h,036h,0ECh,018h,036h,06Eh,0DAh,03Fh,006h,006h,000h ; Hex #F3
258 Db 000h,000h,000h,07Fh,0DBh,0DBh,0DBh,07Bh,01Bh,01Bh,01Bh,01Bh,000h,000h ; Hex #F4
259 Db 000h,000h,07Ch,0C6h,060h,038h,06Ch,0C6h,0C6h,06Ch,038h,00Ch,0C6h,07Ch ; Hex #F5
260 Db 000h,000h,000h,000h,000h,018h,000h,07Eh,000h,018h,000h,000h,000h,000h ; Hex #F6
261 Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,018h,00Ch,078h ; Hex #F7
262 Db 000h,038h,06Ch,06Ch,038h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #F8
263 Db 000h,0C6h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #F9
264 Db 000h,000h,000h,000h,000h,000h,000h,018h,000h,000h,000h,000h,000h,000h ; Hex #FA
265 Db 000h,018h,038h,018h,018h,018h,03Ch,000h,000h,000h,000h,000h,000h,000h ; Hex #FB
266 Db 000h,078h,00Ch,038h,00Ch,00Ch,078h,000h,000h,000h,000h,000h,000h,000h ; Hex #FC
267 Db 000h,03Ch,066h,00Ch,018h,032h,07Eh,000h,000h,000h,000h,000h,000h,000h ; Hex #FD
268 Db 000h,000h,000h,000h,000h,07Eh,07Eh,07Eh,07Eh,07Eh,07Eh,000h,000h,000h ; Hex #FE
269 Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #FF
270
diff --git a/v4.0/src/DEV/DISPLAY/EGA/850-8X16.ASM b/v4.0/src/DEV/DISPLAY/EGA/850-8X16.ASM
new file mode 100644
index 0000000..e5155ab
--- /dev/null
+++ b/v4.0/src/DEV/DISPLAY/EGA/850-8X16.ASM
@@ -0,0 +1,270 @@
1;***************************************************
2; CHARACTER FONT FILE
3; Source Assembler File
4;
5; CODE PAGE: 850
6; FONT RESOLUTION: 8 x 16
7;
8; DATE CREATED:05-28-1987
9;
10;
11; Output file from: MULTIFON, Version 1A
12;
13;***************************************************
14 Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #0
15 Db 000h,000h,07Eh,081h,0A5h,081h,081h,0BDh,099h,081h,081h,07Eh,000h,000h,000h,000h ; Hex #1
16 Db 000h,000h,07Eh,0FFh,0DBh,0FFh,0FFh,0C3h,0E7h,0FFh,0FFh,07Eh,000h,000h,000h,000h ; Hex #2
17 Db 000h,000h,000h,000h,06Ch,0FEh,0FEh,0FEh,0FEh,07Ch,038h,010h,000h,000h,000h,000h ; Hex #3
18 Db 000h,000h,000h,000h,010h,038h,07Ch,0FEh,07Ch,038h,010h,000h,000h,000h,000h,000h ; Hex #4
19 Db 000h,000h,000h,018h,03Ch,03Ch,0E7h,0E7h,0E7h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #5
20 Db 000h,000h,000h,018h,03Ch,07Eh,0FFh,0FFh,07Eh,018h,018h,03Ch,000h,000h,000h,000h ; Hex #6
21 Db 000h,000h,000h,000h,000h,000h,018h,03Ch,03Ch,018h,000h,000h,000h,000h,000h,000h ; Hex #7
22 Db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0E7h,0C3h,0C3h,0E7h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh ; Hex #8
23 Db 000h,000h,000h,000h,000h,03Ch,066h,042h,042h,066h,03Ch,000h,000h,000h,000h,000h ; Hex #9
24 Db 0FFh,0FFh,0FFh,0FFh,0FFh,0C3h,099h,0BDh,0BDh,099h,0C3h,0FFh,0FFh,0FFh,0FFh,0FFh ; Hex #A
25 Db 000h,000h,01Eh,00Eh,01Ah,032h,078h,0CCh,0CCh,0CCh,0CCh,078h,000h,000h,000h,000h ; Hex #B
26 Db 000h,000h,03Ch,066h,066h,066h,066h,03Ch,018h,07Eh,018h,018h,000h,000h,000h,000h ; Hex #C
27 Db 000h,000h,03Fh,033h,03Fh,030h,030h,030h,030h,070h,0F0h,0E0h,000h,000h,000h,000h ; Hex #D
28 Db 000h,000h,07Fh,063h,07Fh,063h,063h,063h,063h,067h,0E7h,0E6h,0C0h,000h,000h,000h ; Hex #E
29 Db 000h,000h,000h,018h,018h,0DBh,03Ch,0E7h,03Ch,0DBh,018h,018h,000h,000h,000h,000h ; Hex #F
30 Db 000h,080h,0C0h,0E0h,0F0h,0F8h,0FEh,0F8h,0F0h,0E0h,0C0h,080h,000h,000h,000h,000h ; Hex #10
31 Db 000h,002h,006h,00Eh,01Eh,03Eh,0FEh,03Eh,01Eh,00Eh,006h,002h,000h,000h,000h,000h ; Hex #11
32 Db 000h,000h,018h,03Ch,07Eh,018h,018h,018h,07Eh,03Ch,018h,000h,000h,000h,000h,000h ; Hex #12
33 Db 000h,000h,066h,066h,066h,066h,066h,066h,066h,000h,066h,066h,000h,000h,000h,000h ; Hex #13
34 Db 000h,000h,07Fh,0DBh,0DBh,0DBh,07Bh,01Bh,01Bh,01Bh,01Bh,01Bh,000h,000h,000h,000h ; Hex #14
35 Db 000h,07Ch,0C6h,060h,038h,06Ch,0C6h,0C6h,06Ch,038h,00Ch,0C6h,07Ch,000h,000h,000h ; Hex #15
36 Db 000h,000h,000h,000h,000h,000h,000h,000h,0FEh,0FEh,0FEh,0FEh,000h,000h,000h,000h ; Hex #16
37 Db 000h,000h,018h,03Ch,07Eh,018h,018h,018h,07Eh,03Ch,018h,07Eh,000h,000h,000h,000h ; Hex #17
38 Db 000h,000h,018h,03Ch,07Eh,018h,018h,018h,018h,018h,018h,018h,000h,000h,000h,000h ; Hex #18
39 Db 000h,000h,018h,018h,018h,018h,018h,018h,018h,07Eh,03Ch,018h,000h,000h,000h,000h ; Hex #19
40 Db 000h,000h,000h,000h,000h,018h,00Ch,0FEh,00Ch,018h,000h,000h,000h,000h,000h,000h ; Hex #1A
41 Db 000h,000h,000h,000h,000h,030h,060h,0FEh,060h,030h,000h,000h,000h,000h,000h,000h ; Hex #1B
42 Db 000h,000h,000h,000h,000h,000h,0C0h,0C0h,0C0h,0FEh,000h,000h,000h,000h,000h,000h ; Hex #1C
43 Db 000h,000h,000h,000h,000h,028h,06Ch,0FEh,06Ch,028h,000h,000h,000h,000h,000h,000h ; Hex #1D
44 Db 000h,000h,000h,000h,010h,038h,038h,07Ch,07Ch,0FEh,0FEh,000h,000h,000h,000h,000h ; Hex #1E
45 Db 000h,000h,000h,000h,0FEh,0FEh,07Ch,07Ch,038h,038h,010h,000h,000h,000h,000h,000h ; Hex #1F
46 Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #20
47 Db 000h,000h,018h,03Ch,03Ch,03Ch,018h,018h,018h,000h,018h,018h,000h,000h,000h,000h ; Hex #21
48 Db 000h,066h,066h,066h,024h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #22
49 Db 000h,000h,000h,06Ch,06Ch,0FEh,06Ch,06Ch,06Ch,0FEh,06Ch,06Ch,000h,000h,000h,000h ; Hex #23
50 Db 018h,018h,07Ch,0C6h,0C2h,0C0h,07Ch,006h,006h,086h,0C6h,07Ch,018h,018h,000h,000h ; Hex #24
51 Db 000h,000h,000h,000h,0C2h,0C6h,00Ch,018h,030h,060h,0C6h,086h,000h,000h,000h,000h ; Hex #25
52 Db 000h,000h,038h,06Ch,06Ch,038h,076h,0DCh,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #26
53 Db 000h,030h,030h,030h,060h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #27
54 Db 000h,000h,00Ch,018h,030h,030h,030h,030h,030h,030h,018h,00Ch,000h,000h,000h,000h ; Hex #28
55 Db 000h,000h,030h,018h,00Ch,00Ch,00Ch,00Ch,00Ch,00Ch,018h,030h,000h,000h,000h,000h ; Hex #29
56 Db 000h,000h,000h,000h,000h,066h,03Ch,0FFh,03Ch,066h,000h,000h,000h,000h,000h,000h ; Hex #2A
57 Db 000h,000h,000h,000h,000h,018h,018h,07Eh,018h,018h,000h,000h,000h,000h,000h,000h ; Hex #2B
58 Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,018h,018h,018h,030h,000h,000h,000h ; Hex #2C
59 Db 000h,000h,000h,000h,000h,000h,000h,0FEh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #2D
60 Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,018h,018h,000h,000h,000h,000h ; Hex #2E
61 Db 000h,000h,000h,000h,002h,006h,00Ch,018h,030h,060h,0C0h,080h,000h,000h,000h,000h ; Hex #2F
62 Db 000h,000h,038h,06Ch,0C6h,0C6h,0D6h,0D6h,0C6h,0C6h,06Ch,038h,000h,000h,000h,000h ; Hex #30
63 Db 000h,000h,018h,038h,078h,018h,018h,018h,018h,018h,018h,07Eh,000h,000h,000h,000h ; Hex #31
64 Db 000h,000h,07Ch,0C6h,006h,00Ch,018h,030h,060h,0C0h,0C6h,0FEh,000h,000h,000h,000h ; Hex #32
65 Db 000h,000h,07Ch,0C6h,006h,006h,03Ch,006h,006h,006h,0C6h,07Ch,000h,000h,000h,000h ; Hex #33
66 Db 000h,000h,00Ch,01Ch,03Ch,06Ch,0CCh,0FEh,00Ch,00Ch,00Ch,01Eh,000h,000h,000h,000h ; Hex #34
67 Db 000h,000h,0FEh,0C0h,0C0h,0C0h,0FCh,006h,006h,006h,0C6h,07Ch,000h,000h,000h,000h ; Hex #35
68 Db 000h,000h,038h,060h,0C0h,0C0h,0FCh,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #36
69 Db 000h,000h,0FEh,0C6h,006h,006h,00Ch,018h,030h,030h,030h,030h,000h,000h,000h,000h ; Hex #37
70 Db 000h,000h,07Ch,0C6h,0C6h,0C6h,07Ch,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #38
71 Db 000h,000h,07Ch,0C6h,0C6h,0C6h,07Eh,006h,006h,006h,00Ch,078h,000h,000h,000h,000h ; Hex #39
72 Db 000h,000h,000h,000h,018h,018h,000h,000h,000h,018h,018h,000h,000h,000h,000h,000h ; Hex #3A
73 Db 000h,000h,000h,000h,018h,018h,000h,000h,000h,018h,018h,030h,000h,000h,000h,000h ; Hex #3B
74 Db 000h,000h,000h,006h,00Ch,018h,030h,060h,030h,018h,00Ch,006h,000h,000h,000h,000h ; Hex #3C
75 Db 000h,000h,000h,000h,000h,07Eh,000h,000h,07Eh,000h,000h,000h,000h,000h,000h,000h ; Hex #3D
76 Db 000h,000h,000h,060h,030h,018h,00Ch,006h,00Ch,018h,030h,060h,000h,000h,000h,000h ; Hex #3E
77 Db 000h,000h,07Ch,0C6h,0C6h,00Ch,018h,018h,018h,000h,018h,018h,000h,000h,000h,000h ; Hex #3F
78 Db 000h,000h,000h,07Ch,0C6h,0C6h,0DEh,0DEh,0DEh,0DCh,0C0h,07Ch,000h,000h,000h,000h ; Hex #40
79 Db 000h,000h,010h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #41
80 Db 000h,000h,0FCh,066h,066h,066h,07Ch,066h,066h,066h,066h,0FCh,000h,000h,000h,000h ; Hex #42
81 Db 000h,000h,03Ch,066h,0C2h,0C0h,0C0h,0C0h,0C0h,0C2h,066h,03Ch,000h,000h,000h,000h ; Hex #43
82 Db 000h,000h,0F8h,06Ch,066h,066h,066h,066h,066h,066h,06Ch,0F8h,000h,000h,000h,000h ; Hex #44
83 Db 000h,000h,0FEh,066h,062h,068h,078h,068h,060h,062h,066h,0FEh,000h,000h,000h,000h ; Hex #45
84 Db 000h,000h,0FEh,066h,062h,068h,078h,068h,060h,060h,060h,0F0h,000h,000h,000h,000h ; Hex #46
85 Db 000h,000h,03Ch,066h,0C2h,0C0h,0C0h,0DEh,0C6h,0C6h,066h,03Ah,000h,000h,000h,000h ; Hex #47
86 Db 000h,000h,0C6h,0C6h,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #48
87 Db 000h,000h,03Ch,018h,018h,018h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #49
88 Db 000h,000h,01Eh,00Ch,00Ch,00Ch,00Ch,00Ch,0CCh,0CCh,0CCh,078h,000h,000h,000h,000h ; Hex #4A
89 Db 000h,000h,0E6h,066h,066h,06Ch,078h,078h,06Ch,066h,066h,0E6h,000h,000h,000h,000h ; Hex #4B
90 Db 000h,000h,0F0h,060h,060h,060h,060h,060h,060h,062h,066h,0FEh,000h,000h,000h,000h ; Hex #4C
91 Db 000h,000h,0C6h,0EEh,0FEh,0FEh,0D6h,0C6h,0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #4D
92 Db 000h,000h,0C6h,0E6h,0F6h,0FEh,0DEh,0CEh,0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #4E
93 Db 000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #4F
94 Db 000h,000h,0FCh,066h,066h,066h,07Ch,060h,060h,060h,060h,0F0h,000h,000h,000h,000h ; Hex #50
95 Db 000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0D6h,0DEh,07Ch,00Ch,00Eh,000h,000h ; Hex #51
96 Db 000h,000h,0FCh,066h,066h,066h,07Ch,06Ch,066h,066h,066h,0E6h,000h,000h,000h,000h ; Hex #52
97 Db 000h,000h,07Ch,0C6h,0C6h,060h,038h,00Ch,006h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #53
98 Db 000h,000h,07Eh,07Eh,05Ah,018h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #54
99 Db 000h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #55
100 Db 000h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,06Ch,038h,010h,000h,000h,000h,000h ; Hex #56
101 Db 000h,000h,0C6h,0C6h,0C6h,0C6h,0D6h,0D6h,0D6h,0FEh,0EEh,06Ch,000h,000h,000h,000h ; Hex #57
102 Db 000h,000h,0C6h,0C6h,06Ch,07Ch,038h,038h,07Ch,06Ch,0C6h,0C6h,000h,000h,000h,000h ; Hex #58
103 Db 000h,000h,066h,066h,066h,066h,03Ch,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #59
104 Db 000h,000h,0FEh,0C6h,086h,00Ch,018h,030h,060h,0C2h,0C6h,0FEh,000h,000h,000h,000h ; Hex #5A
105 Db 000h,000h,03Ch,030h,030h,030h,030h,030h,030h,030h,030h,03Ch,000h,000h,000h,000h ; Hex #5B
106 Db 000h,000h,000h,080h,0C0h,0E0h,070h,038h,01Ch,00Eh,006h,002h,000h,000h,000h,000h ; Hex #5C
107 Db 000h,000h,03Ch,00Ch,00Ch,00Ch,00Ch,00Ch,00Ch,00Ch,00Ch,03Ch,000h,000h,000h,000h ; Hex #5D
108 Db 010h,038h,06Ch,0C6h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #5E
109 Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,0FFh,000h,000h ; Hex #5F
110 Db 000h,030h,018h,00Ch,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #60
111 Db 000h,000h,000h,000h,000h,078h,00Ch,07Ch,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #61
112 Db 000h,000h,0E0h,060h,060h,078h,06Ch,066h,066h,066h,066h,07Ch,000h,000h,000h,000h ; Hex #62
113 Db 000h,000h,000h,000h,000h,07Ch,0C6h,0C0h,0C0h,0C0h,0C6h,07Ch,000h,000h,000h,000h ; Hex #63
114 Db 000h,000h,01Ch,00Ch,00Ch,03Ch,06Ch,0CCh,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #64
115 Db 000h,000h,000h,000h,000h,07Ch,0C6h,0FEh,0C0h,0C0h,0C6h,07Ch,000h,000h,000h,000h ; Hex #65
116 Db 000h,000h,01Ch,036h,032h,030h,078h,030h,030h,030h,030h,078h,000h,000h,000h,000h ; Hex #66
117 Db 000h,000h,000h,000h,000h,076h,0CCh,0CCh,0CCh,0CCh,0CCh,07Ch,00Ch,0CCh,078h,000h ; Hex #67
118 Db 000h,000h,0E0h,060h,060h,06Ch,076h,066h,066h,066h,066h,0E6h,000h,000h,000h,000h ; Hex #68
119 Db 000h,000h,018h,018h,000h,038h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #69
120 Db 000h,000h,006h,006h,000h,00Eh,006h,006h,006h,006h,006h,006h,066h,066h,03Ch,000h ; Hex #6A
121 Db 000h,000h,0E0h,060h,060h,066h,06Ch,078h,078h,06Ch,066h,0E6h,000h,000h,000h,000h ; Hex #6B
122 Db 000h,000h,038h,018h,018h,018h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #6C
123 Db 000h,000h,000h,000h,000h,0ECh,0FEh,0D6h,0D6h,0D6h,0D6h,0C6h,000h,000h,000h,000h ; Hex #6D
124 Db 000h,000h,000h,000h,000h,0DCh,066h,066h,066h,066h,066h,066h,000h,000h,000h,000h ; Hex #6E
125 Db 000h,000h,000h,000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #6F
126 Db 000h,000h,000h,000h,000h,0DCh,066h,066h,066h,066h,066h,07Ch,060h,060h,0F0h,000h ; Hex #70
127 Db 000h,000h,000h,000h,000h,076h,0CCh,0CCh,0CCh,0CCh,0CCh,07Ch,00Ch,00Ch,01Eh,000h ; Hex #71
128 Db 000h,000h,000h,000h,000h,0DCh,076h,066h,060h,060h,060h,0F0h,000h,000h,000h,000h ; Hex #72
129 Db 000h,000h,000h,000h,000h,07Ch,0C6h,060h,038h,00Ch,0C6h,07Ch,000h,000h,000h,000h ; Hex #73
130 Db 000h,000h,010h,030h,030h,0FCh,030h,030h,030h,030h,036h,01Ch,000h,000h,000h,000h ; Hex #74
131 Db 000h,000h,000h,000h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #75
132 Db 000h,000h,000h,000h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,06Ch,038h,000h,000h,000h,000h ; Hex #76
133 Db 000h,000h,000h,000h,000h,0C6h,0C6h,0D6h,0D6h,0D6h,0FEh,06Ch,000h,000h,000h,000h ; Hex #77
134 Db 000h,000h,000h,000h,000h,0C6h,06Ch,038h,038h,038h,06Ch,0C6h,000h,000h,000h,000h ; Hex #78
135 Db 000h,000h,000h,000h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Eh,006h,00Ch,0F8h,000h ; Hex #79
136 Db 000h,000h,000h,000h,000h,0FEh,0CCh,018h,030h,060h,0C6h,0FEh,000h,000h,000h,000h ; Hex #7A
137 Db 000h,000h,00Eh,018h,018h,018h,070h,018h,018h,018h,018h,00Eh,000h,000h,000h,000h ; Hex #7B
138 Db 000h,000h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,000h,000h,000h,000h ; Hex #7C
139 Db 000h,000h,070h,018h,018h,018h,00Eh,018h,018h,018h,018h,070h,000h,000h,000h,000h ; Hex #7D
140 Db 000h,076h,0DCh,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #7E
141 Db 000h,000h,000h,000h,010h,038h,06Ch,0C6h,0C6h,0C6h,0FEh,000h,000h,000h,000h,000h ; Hex #7F
142 Db 000h,000h,03Ch,066h,0C2h,0C0h,0C0h,0C0h,0C0h,0C2h,066h,03Ch,018h,070h,000h,000h ; Hex #80
143 Db 000h,000h,0CCh,000h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #81
144 Db 000h,00Ch,018h,030h,000h,07Ch,0C6h,0FEh,0C0h,0C0h,0C6h,07Ch,000h,000h,000h,000h ; Hex #82
145 Db 000h,010h,038h,06Ch,000h,078h,00Ch,07Ch,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #83
146 Db 000h,000h,0CCh,000h,000h,078h,00Ch,07Ch,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #84
147 Db 000h,060h,030h,018h,000h,078h,00Ch,07Ch,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #85
148 Db 000h,038h,06Ch,038h,000h,078h,00Ch,07Ch,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #86
149 Db 000h,000h,000h,000h,000h,07Ch,0C6h,0C0h,0C0h,0C0h,0C6h,07Ch,018h,070h,000h,000h ; Hex #87
150 Db 000h,010h,038h,06Ch,000h,07Ch,0C6h,0FEh,0C0h,0C0h,0C6h,07Ch,000h,000h,000h,000h ; Hex #88
151 Db 000h,000h,0C6h,000h,000h,07Ch,0C6h,0FEh,0C0h,0C0h,0C6h,07Ch,000h,000h,000h,000h ; Hex #89
152 Db 000h,060h,030h,018h,000h,07Ch,0C6h,0FEh,0C0h,0C0h,0C6h,07Ch,000h,000h,000h,000h ; Hex #8A
153 Db 000h,000h,066h,000h,000h,038h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #8B
154 Db 000h,018h,03Ch,066h,000h,038h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #8C
155 Db 000h,060h,030h,018h,000h,038h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #8D
156 Db 000h,0C6h,000h,010h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #8E
157 Db 038h,06Ch,038h,010h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #8F
158 Db 00Ch,018h,000h,0FEh,066h,062h,068h,078h,068h,062h,066h,0FEh,000h,000h,000h,000h ; Hex #90
159 Db 000h,000h,000h,000h,000h,0ECh,036h,036h,07Eh,0D8h,0D8h,06Eh,000h,000h,000h,000h ; Hex #91
160 Db 000h,000h,03Eh,06Ch,0CCh,0CCh,0FEh,0CCh,0CCh,0CCh,0CCh,0CEh,000h,000h,000h,000h ; Hex #92
161 Db 000h,010h,038h,06Ch,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #93
162 Db 000h,000h,0C6h,000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #94
163 Db 000h,060h,030h,018h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #95
164 Db 000h,030h,078h,0CCh,000h,0CCh,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #96
165 Db 000h,060h,030h,018h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #97
166 Db 000h,000h,0C6h,000h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Eh,006h,00Ch,078h,000h ; Hex #98
167 Db 000h,0C6h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #99
168 Db 000h,0C6h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #9A
169 Db 000h,000h,000h,000h,000h,07Ch,0CEh,0DEh,0F6h,0E6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #9B
170 Db 000h,038h,06Ch,064h,060h,0F0h,060h,060h,060h,060h,0E6h,0FCh,000h,000h,000h,000h ; Hex #9C
171 Db 000h,004h,07Ch,0CEh,0CEh,0D6h,0D6h,0D6h,0D6h,0E6h,0E6h,07Ch,040h,000h,000h,000h ; Hex #9D
172 Db 000h,000h,000h,000h,000h,0C6h,06Ch,038h,038h,06Ch,0C6h,000h,000h,000h,000h,000h ; Hex #9E
173 Db 000h,00Eh,01Bh,018h,018h,018h,07Eh,018h,018h,018h,0D8h,070h,000h,000h,000h,000h ; Hex #9F
174 Db 000h,018h,030h,060h,000h,078h,00Ch,07Ch,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #A0
175 Db 000h,00Ch,018h,030h,000h,038h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #A1
176 Db 000h,018h,030h,060h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #A2
177 Db 000h,018h,030h,060h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #A3
178 Db 000h,000h,076h,0DCh,000h,0DCh,066h,066h,066h,066h,066h,066h,000h,000h,000h,000h ; Hex #A4
179 Db 076h,0DCh,000h,0C6h,0E6h,0F6h,0FEh,0DEh,0CEh,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #A5
180 Db 000h,000h,03Ch,06Ch,06Ch,03Eh,000h,07Eh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #A6
181 Db 000h,000h,038h,06Ch,06Ch,038h,000h,07Ch,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #A7
182 Db 000h,000h,030h,030h,000h,030h,030h,060h,0C0h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #A8
183 Db 000h,000h,07Ch,082h,0B2h,0AAh,0B2h,0AAh,0AAh,082h,07Ch,000h,000h,000h,000h,000h ; Hex #A9
184 Db 000h,000h,000h,000h,000h,000h,0FEh,006h,006h,006h,006h,000h,000h,000h,000h,000h ; Hex #AA
185 Db 000h,060h,0E0h,062h,066h,06Ch,018h,030h,060h,0DCh,086h,00Ch,018h,03Eh,000h,000h ; Hex #AB
186 Db 000h,060h,0E0h,062h,066h,06Ch,018h,030h,066h,0CEh,09Ah,03Fh,006h,006h,000h,000h ; Hex #AC
187 Db 000h,000h,018h,018h,000h,018h,018h,018h,03Ch,03Ch,03Ch,018h,000h,000h,000h,000h ; Hex #AD
188 Db 000h,000h,000h,000h,000h,036h,06Ch,0D8h,06Ch,036h,000h,000h,000h,000h,000h,000h ; Hex #AE
189 Db 000h,000h,000h,000h,000h,0D8h,06Ch,036h,06Ch,0D8h,000h,000h,000h,000h,000h,000h ; Hex #AF
190 Db 011h,044h,011h,044h,011h,044h,011h,044h,011h,044h,011h,044h,011h,044h,011h,044h ; Hex #B0
191 Db 055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh ; Hex #B1
192 Db 0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h ; Hex #B2
193 Db 018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #B3
194 Db 018h,018h,018h,018h,018h,018h,018h,0F8h,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #B4
195 Db 060h,0C0h,010h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #B5
196 Db 07Ch,0C6h,010h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #B6
197 Db 00Ch,006h,010h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #B7
198 Db 000h,000h,07Ch,082h,09Ah,0A2h,0A2h,0A2h,09Ah,082h,07Ch,000h,000h,000h,000h,000h ; Hex #B8
199 Db 036h,036h,036h,036h,036h,0F6h,006h,0F6h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #B9
200 Db 036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #BA
201 Db 000h,000h,000h,000h,000h,0FEh,006h,0F6h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #BB
202 Db 036h,036h,036h,036h,036h,0F6h,006h,0FEh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #BC
203 Db 000h,000h,018h,018h,07Ch,0C6h,0C0h,0C0h,0C6h,07Ch,018h,018h,000h,000h,000h,000h ; Hex #BD
204 Db 000h,000h,000h,066h,066h,03Ch,018h,07Eh,018h,07Eh,018h,018h,000h,000h,000h,000h ; Hex #BE
205 Db 000h,000h,000h,000h,000h,000h,000h,0F8h,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #BF
206 Db 018h,018h,018h,018h,018h,018h,018h,01Fh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #C0
207 Db 018h,018h,018h,018h,018h,018h,018h,0FFh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #C1
208 Db 000h,000h,000h,000h,000h,000h,000h,0FFh,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #C2
209 Db 018h,018h,018h,018h,018h,018h,018h,01Fh,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #C3
210 Db 000h,000h,000h,000h,000h,000h,000h,0FFh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #C4
211 Db 018h,018h,018h,018h,018h,018h,018h,0FFh,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #C5
212 Db 000h,000h,076h,0DCh,000h,078h,00Ch,07Ch,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #C6
213 Db 076h,0DCh,000h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #C7
214 Db 036h,036h,036h,036h,036h,037h,030h,03Fh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #C8
215 Db 000h,000h,000h,000h,000h,03Fh,030h,037h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #C9
216 Db 036h,036h,036h,036h,036h,0F7h,000h,0FFh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #CA
217 Db 000h,000h,000h,000h,000h,0FFh,000h,0F7h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #CB
218 Db 036h,036h,036h,036h,036h,037h,030h,037h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #CC
219 Db 000h,000h,000h,000h,000h,0FFh,000h,0FFh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #CD
220 Db 036h,036h,036h,036h,036h,0F7h,000h,0F7h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #CE
221 Db 000h,000h,000h,000h,0C6h,07Ch,0C6h,0C6h,0C6h,0C6h,07Ch,0C6h,000h,000h,000h,000h ; Hex #CF
222 Db 000h,000h,034h,018h,02Ch,006h,03Eh,066h,066h,066h,066h,03Ch,000h,000h,000h,000h ; Hex #D0
223 Db 000h,000h,0F8h,06Ch,066h,066h,0F6h,066h,066h,066h,06Ch,0F8h,000h,000h,000h,000h ; Hex #D1
224 Db 038h,06Ch,000h,0FEh,066h,062h,068h,078h,068h,062h,066h,0FEh,000h,000h,000h,000h ; Hex #D2
225 Db 000h,0C6h,000h,0FEh,066h,062h,068h,078h,068h,062h,066h,0FEh,000h,000h,000h,000h ; Hex #D3
226 Db 030h,018h,000h,0FEh,066h,062h,068h,078h,068h,062h,066h,0FEh,000h,000h,000h,000h ; Hex #D4
227 Db 000h,000h,000h,000h,000h,038h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #D5
228 Db 00Ch,018h,000h,03Ch,018h,018h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #D6
229 Db 03Ch,066h,000h,03Ch,018h,018h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #D7
230 Db 000h,066h,000h,03Ch,018h,018h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #D8
231 Db 018h,018h,018h,018h,018h,018h,018h,0F8h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #D9
232 Db 000h,000h,000h,000h,000h,000h,000h,01Fh,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #DA
233 Db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh ; Hex #DB
234 Db 000h,000h,000h,000h,000h,000h,000h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh ; Hex #DC
235 Db 000h,018h,018h,018h,018h,018h,000h,000h,018h,018h,018h,018h,018h,000h,000h,000h ; Hex #DD
236 Db 030h,018h,000h,03Ch,018h,018h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #DE
237 Db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #DF
238 Db 018h,030h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #E0
239 Db 000h,000h,078h,0CCh,0CCh,0CCh,0D8h,0CCh,0C6h,0C6h,0C6h,0CCh,000h,000h,000h,000h ; Hex #E1
240 Db 038h,06Ch,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #E2
241 Db 030h,018h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #E3
242 Db 000h,000h,076h,0DCh,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #E4
243 Db 076h,0DCh,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #E5
244 Db 000h,000h,000h,000h,000h,066h,066h,066h,066h,066h,066h,07Ch,060h,060h,0C0h,000h ; Hex #E6
245 Db 000h,000h,0E0h,060h,060h,07Ch,066h,066h,066h,066h,066h,07Ch,060h,060h,0F0h,000h ; Hex #E7
246 Db 000h,000h,0F0h,060h,07Ch,066h,066h,066h,066h,07Ch,060h,0F0h,000h,000h,000h,000h ; Hex #E8
247 Db 018h,030h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #E9
248 Db 038h,06Ch,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #EA
249 Db 030h,018h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #EB
250 Db 000h,00Ch,018h,030h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Eh,006h,00Ch,0F8h,000h ; Hex #EC
251 Db 00Ch,018h,000h,066h,066h,066h,066h,03Ch,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #ED
252 Db 000h,0FFh,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #EE
253 Db 000h,00Ch,018h,030h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #EF
254 Db 000h,000h,000h,000h,000h,000h,000h,0FEh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #F0
255 Db 000h,000h,000h,000h,018h,018h,07Eh,018h,018h,000h,000h,07Eh,000h,000h,000h,000h ; Hex #F1
256 Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,0FFh,000h,0FFh,000h ; Hex #F2
257 Db 000h,0E0h,030h,062h,036h,0ECh,018h,030h,066h,0CEh,09Ah,03Fh,006h,006h,000h,000h ; Hex #F3
258 Db 000h,000h,07Fh,0DBh,0DBh,0DBh,07Bh,01Bh,01Bh,01Bh,01Bh,01Bh,000h,000h,000h,000h ; Hex #F4
259 Db 000h,07Ch,0C6h,060h,038h,06Ch,0C6h,0C6h,06Ch,038h,00Ch,0C6h,07Ch,000h,000h,000h ; Hex #F5
260 Db 000h,000h,000h,000h,000h,018h,000h,07Eh,000h,018h,000h,000h,000h,000h,000h,000h ; Hex #F6
261 Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,018h,00Ch,078h,000h,000h ; Hex #F7
262 Db 000h,038h,06Ch,06Ch,038h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #F8
263 Db 000h,0C6h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #F9
264 Db 000h,000h,000h,000h,000h,000h,000h,018h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #FA
265 Db 000h,018h,038h,018h,018h,018h,03Ch,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #FB
266 Db 000h,07Ch,006h,03Ch,006h,006h,07Ch,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #FC
267 Db 000h,03Ch,066h,00Ch,018h,032h,07Eh,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #FD
268 Db 000h,000h,000h,000h,07Eh,07Eh,07Eh,07Eh,07Eh,07Eh,07Eh,000h,000h,000h,000h,000h ; Hex #FE
269 Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #FF
270
diff --git a/v4.0/src/DEV/DISPLAY/EGA/850-8X8.ASM b/v4.0/src/DEV/DISPLAY/EGA/850-8X8.ASM
new file mode 100644
index 0000000..3470021
--- /dev/null
+++ b/v4.0/src/DEV/DISPLAY/EGA/850-8X8.ASM
@@ -0,0 +1,270 @@
1;***************************************************
2; CHARACTER FONT FILE
3; Source Assembler File
4;
5; CODE PAGE: 850
6; FONT RESOLUTION: 8 x 8
7;
8; DATE CREATED:05-28-1987
9;
10;
11; Output file from: MULTIFON, Version 1A
12;
13;***************************************************
14 Db 000h,000h,000h,000h,000h,000h,000h,000h ; Hex #0
15 Db 07Eh,081h,0A5h,081h,0BDh,099h,081h,07Eh ; Hex #1
16 Db 07Eh,0FFh,0DBh,0FFh,0C3h,0E7h,0FFh,07Eh ; Hex #2
17 Db 06Ch,0FEh,0FEh,0FEh,07Ch,038h,010h,000h ; Hex #3
18 Db 010h,038h,07Ch,0FEh,07Ch,038h,010h,000h ; Hex #4
19 Db 038h,07Ch,038h,0FEh,0FEh,0D6h,010h,038h ; Hex #5
20 Db 010h,038h,07Ch,0FEh,0FEh,07Ch,010h,038h ; Hex #6
21 Db 000h,000h,018h,03Ch,03Ch,018h,000h,000h ; Hex #7
22 Db 0FFh,0FFh,0E7h,0C3h,0C3h,0E7h,0FFh,0FFh ; Hex #8
23 Db 000h,03Ch,066h,042h,042h,066h,03Ch,000h ; Hex #9
24 Db 0FFh,0C3h,099h,0BDh,0BDh,099h,0C3h,0FFh ; Hex #A
25 Db 00Fh,007h,00Fh,07Dh,0CCh,0CCh,0CCh,078h ; Hex #B
26 Db 03Ch,066h,066h,066h,03Ch,018h,07Eh,018h ; Hex #C
27 Db 03Fh,033h,03Fh,030h,030h,070h,0F0h,0E0h ; Hex #D
28 Db 07Fh,063h,07Fh,063h,063h,067h,0E6h,0C0h ; Hex #E
29 Db 018h,0DBh,03Ch,0E7h,0E7h,03Ch,0DBh,018h ; Hex #F
30 Db 080h,0E0h,0F8h,0FEh,0F8h,0E0h,080h,000h ; Hex #10
31 Db 002h,00Eh,03Eh,0FEh,03Eh,00Eh,002h,000h ; Hex #11
32 Db 018h,03Ch,07Eh,018h,018h,07Eh,03Ch,018h ; Hex #12
33 Db 066h,066h,066h,066h,066h,000h,066h,000h ; Hex #13
34 Db 07Fh,0DBh,0DBh,07Bh,01Bh,01Bh,01Bh,000h ; Hex #14
35 Db 03Eh,061h,03Ch,066h,066h,03Ch,086h,07Ch ; Hex #15
36 Db 000h,000h,000h,000h,07Eh,07Eh,07Eh,000h ; Hex #16
37 Db 018h,03Ch,07Eh,018h,07Eh,03Ch,018h,0FFh ; Hex #17
38 Db 018h,03Ch,07Eh,018h,018h,018h,018h,000h ; Hex #18
39 Db 018h,018h,018h,018h,07Eh,03Ch,018h,000h ; Hex #19
40 Db 000h,018h,00Ch,0FEh,00Ch,018h,000h,000h ; Hex #1A
41 Db 000h,030h,060h,0FEh,060h,030h,000h,000h ; Hex #1B
42 Db 000h,000h,0C0h,0C0h,0C0h,0FEh,000h,000h ; Hex #1C
43 Db 000h,024h,066h,0FFh,066h,024h,000h,000h ; Hex #1D
44 Db 000h,018h,03Ch,07Eh,0FFh,0FFh,000h,000h ; Hex #1E
45 Db 000h,0FFh,0FFh,07Eh,03Ch,018h,000h,000h ; Hex #1F
46 Db 000h,000h,000h,000h,000h,000h,000h,000h ; Hex #20
47 Db 018h,03Ch,03Ch,018h,018h,000h,018h,000h ; Hex #21
48 Db 066h,066h,024h,000h,000h,000h,000h,000h ; Hex #22
49 Db 06Ch,06Ch,0FEh,06Ch,0FEh,06Ch,06Ch,000h ; Hex #23
50 Db 018h,03Eh,060h,03Ch,006h,07Ch,018h,000h ; Hex #24
51 Db 000h,0C6h,0CCh,018h,030h,066h,0C6h,000h ; Hex #25
52 Db 038h,06Ch,038h,076h,0DCh,0CCh,076h,000h ; Hex #26
53 Db 018h,018h,030h,000h,000h,000h,000h,000h ; Hex #27
54 Db 00Ch,018h,030h,030h,030h,018h,00Ch,000h ; Hex #28
55 Db 030h,018h,00Ch,00Ch,00Ch,018h,030h,000h ; Hex #29
56 Db 000h,066h,03Ch,0FFh,03Ch,066h,000h,000h ; Hex #2A
57 Db 000h,018h,018h,07Eh,018h,018h,000h,000h ; Hex #2B
58 Db 000h,000h,000h,000h,000h,018h,018h,030h ; Hex #2C
59 Db 000h,000h,000h,07Eh,000h,000h,000h,000h ; Hex #2D
60 Db 000h,000h,000h,000h,000h,018h,018h,000h ; Hex #2E
61 Db 006h,00Ch,018h,030h,060h,0C0h,080h,000h ; Hex #2F
62 Db 038h,06Ch,0C6h,0D6h,0C6h,06Ch,038h,000h ; Hex #30
63 Db 018h,038h,018h,018h,018h,018h,07Eh,000h ; Hex #31
64 Db 07Ch,0C6h,006h,01Ch,030h,066h,0FEh,000h ; Hex #32
65 Db 07Ch,0C6h,006h,03Ch,006h,0C6h,07Ch,000h ; Hex #33
66 Db 01Ch,03Ch,06Ch,0CCh,0FEh,00Ch,01Eh,000h ; Hex #34
67 Db 0FEh,0C0h,0C0h,0FCh,006h,0C6h,07Ch,000h ; Hex #35
68 Db 038h,060h,0C0h,0FCh,0C6h,0C6h,07Ch,000h ; Hex #36
69 Db 0FEh,0C6h,00Ch,018h,030h,030h,030h,000h ; Hex #37
70 Db 07Ch,0C6h,0C6h,07Ch,0C6h,0C6h,07Ch,000h ; Hex #38
71 Db 07Ch,0C6h,0C6h,07Eh,006h,00Ch,078h,000h ; Hex #39
72 Db 000h,018h,018h,000h,000h,018h,018h,000h ; Hex #3A
73 Db 000h,018h,018h,000h,000h,018h,018h,030h ; Hex #3B
74 Db 006h,00Ch,018h,030h,018h,00Ch,006h,000h ; Hex #3C
75 Db 000h,000h,07Eh,000h,000h,07Eh,000h,000h ; Hex #3D
76 Db 060h,030h,018h,00Ch,018h,030h,060h,000h ; Hex #3E
77 Db 07Ch,0C6h,00Ch,018h,018h,000h,018h,000h ; Hex #3F
78 Db 07Ch,0C6h,0DEh,0DEh,0DEh,0C0h,078h,000h ; Hex #40
79 Db 038h,06Ch,0C6h,0FEh,0C6h,0C6h,0C6h,000h ; Hex #41
80 Db 0FCh,066h,066h,07Ch,066h,066h,0FCh,000h ; Hex #42
81 Db 03Ch,066h,0C0h,0C0h,0C0h,066h,03Ch,000h ; Hex #43
82 Db 0F8h,06Ch,066h,066h,066h,06Ch,0F8h,000h ; Hex #44
83 Db 0FEh,062h,068h,078h,068h,062h,0FEh,000h ; Hex #45
84 Db 0FEh,062h,068h,078h,068h,060h,0F0h,000h ; Hex #46
85 Db 03Ch,066h,0C0h,0C0h,0CEh,066h,03Ah,000h ; Hex #47
86 Db 0C6h,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,000h ; Hex #48
87 Db 03Ch,018h,018h,018h,018h,018h,03Ch,000h ; Hex #49
88 Db 01Eh,00Ch,00Ch,00Ch,0CCh,0CCh,078h,000h ; Hex #4A
89 Db 0E6h,066h,06Ch,078h,06Ch,066h,0E6h,000h ; Hex #4B
90 Db 0F0h,060h,060h,060h,062h,066h,0FEh,000h ; Hex #4C
91 Db 0C6h,0EEh,0FEh,0FEh,0D6h,0C6h,0C6h,000h ; Hex #4D
92 Db 0C6h,0E6h,0F6h,0DEh,0CEh,0C6h,0C6h,000h ; Hex #4E
93 Db 07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h ; Hex #4F
94 Db 0FCh,066h,066h,07Ch,060h,060h,0F0h,000h ; Hex #50
95 Db 07Ch,0C6h,0C6h,0C6h,0C6h,0CEh,07Ch,00Eh ; Hex #51
96 Db 0FCh,066h,066h,07Ch,06Ch,066h,0E6h,000h ; Hex #52
97 Db 03Ch,066h,030h,018h,00Ch,066h,03Ch,000h ; Hex #53
98 Db 07Eh,07Eh,05Ah,018h,018h,018h,03Ch,000h ; Hex #54
99 Db 0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h ; Hex #55
100 Db 0C6h,0C6h,0C6h,0C6h,0C6h,06Ch,038h,000h ; Hex #56
101 Db 0C6h,0C6h,0C6h,0D6h,0D6h,0FEh,06Ch,000h ; Hex #57
102 Db 0C6h,0C6h,06Ch,038h,06Ch,0C6h,0C6h,000h ; Hex #58
103 Db 066h,066h,066h,03Ch,018h,018h,03Ch,000h ; Hex #59
104 Db 0FEh,0C6h,08Ch,018h,032h,066h,0FEh,000h ; Hex #5A
105 Db 03Ch,030h,030h,030h,030h,030h,03Ch,000h ; Hex #5B
106 Db 0C0h,060h,030h,018h,00Ch,006h,002h,000h ; Hex #5C
107 Db 03Ch,00Ch,00Ch,00Ch,00Ch,00Ch,03Ch,000h ; Hex #5D
108 Db 010h,038h,06Ch,0C6h,000h,000h,000h,000h ; Hex #5E
109 Db 000h,000h,000h,000h,000h,000h,000h,0FFh ; Hex #5F
110 Db 030h,018h,00Ch,000h,000h,000h,000h,000h ; Hex #60
111 Db 000h,000h,078h,00Ch,07Ch,0CCh,076h,000h ; Hex #61
112 Db 0E0h,060h,07Ch,066h,066h,066h,0DCh,000h ; Hex #62
113 Db 000h,000h,07Ch,0C6h,0C0h,0C6h,07Ch,000h ; Hex #63
114 Db 01Ch,00Ch,07Ch,0CCh,0CCh,0CCh,076h,000h ; Hex #64
115 Db 000h,000h,07Ch,0C6h,0FEh,0C0h,07Ch,000h ; Hex #65
116 Db 03Ch,066h,060h,0F8h,060h,060h,0F0h,000h ; Hex #66
117 Db 000h,000h,076h,0CCh,0CCh,07Ch,00Ch,0F8h ; Hex #67
118 Db 0E0h,060h,06Ch,076h,066h,066h,0E6h,000h ; Hex #68
119 Db 018h,000h,038h,018h,018h,018h,03Ch,000h ; Hex #69
120 Db 006h,000h,006h,006h,006h,066h,066h,03Ch ; Hex #6A
121 Db 0E0h,060h,066h,06Ch,078h,06Ch,0E6h,000h ; Hex #6B
122 Db 038h,018h,018h,018h,018h,018h,03Ch,000h ; Hex #6C
123 Db 000h,000h,0ECh,0FEh,0D6h,0D6h,0D6h,000h ; Hex #6D
124 Db 000h,000h,0DCh,066h,066h,066h,066h,000h ; Hex #6E
125 Db 000h,000h,07Ch,0C6h,0C6h,0C6h,07Ch,000h ; Hex #6F
126 Db 000h,000h,0DCh,066h,066h,07Ch,060h,0F0h ; Hex #70
127 Db 000h,000h,076h,0CCh,0CCh,07Ch,00Ch,01Eh ; Hex #71
128 Db 000h,000h,0DCh,076h,060h,060h,0F0h,000h ; Hex #72
129 Db 000h,000h,07Eh,0C0h,07Ch,006h,0FCh,000h ; Hex #73
130 Db 030h,030h,0FCh,030h,030h,036h,01Ch,000h ; Hex #74
131 Db 000h,000h,0CCh,0CCh,0CCh,0CCh,076h,000h ; Hex #75
132 Db 000h,000h,0C6h,0C6h,0C6h,06Ch,038h,000h ; Hex #76
133 Db 000h,000h,0C6h,0D6h,0D6h,0FEh,06Ch,000h ; Hex #77
134 Db 000h,000h,0C6h,06Ch,038h,06Ch,0C6h,000h ; Hex #78
135 Db 000h,000h,0C6h,0C6h,0C6h,07Eh,006h,0FCh ; Hex #79
136 Db 000h,000h,07Eh,04Ch,018h,032h,07Eh,000h ; Hex #7A
137 Db 00Eh,018h,018h,070h,018h,018h,00Eh,000h ; Hex #7B
138 Db 018h,018h,018h,018h,018h,018h,018h,000h ; Hex #7C
139 Db 070h,018h,018h,00Eh,018h,018h,070h,000h ; Hex #7D
140 Db 076h,0DCh,000h,000h,000h,000h,000h,000h ; Hex #7E
141 Db 000h,010h,038h,06Ch,0C6h,0C6h,0FEh,000h ; Hex #7F
142 Db 07Ch,0C6h,0C0h,0C0h,0C6h,07Ch,00Ch,078h ; Hex #80
143 Db 0CCh,000h,0CCh,0CCh,0CCh,0CCh,076h,000h ; Hex #81
144 Db 00Ch,018h,07Ch,0C6h,0FEh,0C0h,07Ch,000h ; Hex #82
145 Db 07Ch,082h,078h,00Ch,07Ch,0CCh,076h,000h ; Hex #83
146 Db 0C6h,000h,078h,00Ch,07Ch,0CCh,076h,000h ; Hex #84
147 Db 030h,018h,078h,00Ch,07Ch,0CCh,076h,000h ; Hex #85
148 Db 030h,030h,078h,00Ch,07Ch,0CCh,076h,000h ; Hex #86
149 Db 000h,000h,07Eh,0C0h,0C0h,07Eh,00Ch,038h ; Hex #87
150 Db 07Ch,082h,07Ch,0C6h,0FEh,0C0h,07Ch,000h ; Hex #88
151 Db 0C6h,000h,07Ch,0C6h,0FEh,0C0h,07Ch,000h ; Hex #89
152 Db 030h,018h,07Ch,0C6h,0FEh,0C0h,07Ch,000h ; Hex #8A
153 Db 066h,000h,038h,018h,018h,018h,03Ch,000h ; Hex #8B
154 Db 07Ch,082h,038h,018h,018h,018h,03Ch,000h ; Hex #8C
155 Db 030h,018h,000h,038h,018h,018h,03Ch,000h ; Hex #8D
156 Db 0C6h,038h,06Ch,0C6h,0FEh,0C6h,0C6h,000h ; Hex #8E
157 Db 038h,06Ch,07Ch,0C6h,0FEh,0C6h,0C6h,000h ; Hex #8F
158 Db 018h,030h,0FEh,0C0h,0F8h,0C0h,0FEh,000h ; Hex #90
159 Db 000h,000h,07Eh,012h,0fEh,090h,0fEh,000h ; Hex #91
160 Db 03Eh,06Ch,0CCh,0FEh,0CCh,0CCh,0CEh,000h ; Hex #92
161 Db 07Ch,082h,07Ch,0C6h,0C6h,0C6h,07Ch,000h ; Hex #93
162 Db 0C6h,000h,07Ch,0C6h,0C6h,0C6h,07Ch,000h ; Hex #94
163 Db 030h,018h,07Ch,0C6h,0C6h,0C6h,07Ch,000h ; Hex #95
164 Db 078h,084h,000h,0CCh,0CCh,0CCh,076h,000h ; Hex #96
165 Db 060h,030h,0CCh,0CCh,0CCh,0CCh,076h,000h ; Hex #97
166 Db 0C6h,000h,0C6h,0C6h,0C6h,07Eh,006h,0FCh ; Hex #98
167 Db 0C6h,038h,06Ch,0C6h,0C6h,06Ch,038h,000h ; Hex #99
168 Db 0C6h,000h,0C6h,0C6h,0C6h,0C6h,07Ch,000h ; Hex #9A
169 Db 000h,002h,07Ch,0CEh,0D6h,0E6h,07Ch,080h ; Hex #9B
170 Db 038h,06Ch,064h,0F0h,060h,066h,0FCh,000h ; Hex #9C
171 Db 03Ah,06Ch,0CEh,0D6h,0E6h,06Ch,0B8h,000h ; Hex #9D
172 Db 000h,0C6h,06Ch,038h,06Ch,0C6h,000h,000h ; Hex #9E
173 Db 00Eh,01Bh,018h,03Ch,018h,0D8h,070h,000h ; Hex #9F
174 Db 018h,030h,078h,00Ch,07Ch,0CCh,076h,000h ; Hex #A0
175 Db 00Ch,018h,000h,038h,018h,018h,03Ch,000h ; Hex #A1
176 Db 00Ch,018h,07Ch,0C6h,0C6h,0C6h,07Ch,000h ; Hex #A2
177 Db 018h,030h,0CCh,0CCh,0CCh,0CCh,076h,000h ; Hex #A3
178 Db 076h,0DCh,000h,0DCh,066h,066h,066h,000h ; Hex #A4
179 Db 076h,0DCh,000h,0E6h,0F6h,0DEh,0CEh,000h ; Hex #A5
180 Db 03Ch,06Ch,06Ch,03Eh,000h,07Eh,000h,000h ; Hex #A6
181 Db 038h,06Ch,06Ch,038h,000h,07Ch,000h,000h ; Hex #A7
182 Db 018h,000h,018h,018h,030h,063h,03Eh,000h ; Hex #A8
183 Db 07Eh,081h,0B9h,0A5h,0B9h,0A5h,081h,07Eh ; Hex #A9
184 Db 000h,000h,000h,0FEh,006h,006h,000h,000h ; Hex #AA
185 Db 063h,0E6h,06Ch,07Eh,033h,066h,0CCh,00Fh ; Hex #AB
186 Db 063h,0E6h,06Ch,07Ah,036h,06Ah,0DFh,006h ; Hex #AC
187 Db 018h,000h,018h,018h,03Ch,03Ch,018h,000h ; Hex #AD
188 Db 000h,033h,066h,0CCh,066h,033h,000h,000h ; Hex #AE
189 Db 000h,0CCh,066h,033h,066h,0CCh,000h,000h ; Hex #AF
190 Db 022h,088h,022h,088h,022h,088h,022h,088h ; Hex #B0
191 Db 055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh ; Hex #B1
192 Db 077h,0DDh,077h,0DDh,077h,0DDh,077h,0DDh ; Hex #B2
193 Db 018h,018h,018h,018h,018h,018h,018h,018h ; Hex #B3
194 Db 018h,018h,018h,018h,0F8h,018h,018h,018h ; Hex #B4
195 Db 030h,060h,038h,06Ch,0C6h,0FEh,0C6h,000h ; Hex #B5
196 Db 07Ch,082h,038h,06Ch,0C6h,0FEh,0C6h,000h ; Hex #B6
197 Db 018h,00Ch,038h,06Ch,0C6h,0FEh,0C6h,000h ; Hex #B7
198 Db 07Eh,081h,09Dh,0A1h,0A1h,09Dh,081h,07Eh ; Hex #B8
199 Db 036h,036h,0F6h,006h,0F6h,036h,036h,036h ; Hex #B9
200 Db 036h,036h,036h,036h,036h,036h,036h,036h ; Hex #BA
201 Db 000h,000h,0FEh,006h,0F6h,036h,036h,036h ; Hex #BB
202 Db 036h,036h,0F6h,006h,0FEh,000h,000h,000h ; Hex #BC
203 Db 018h,018h,07Eh,0C0h,0C0h,07Eh,018h,018h ; Hex #BD
204 Db 066h,066h,03Ch,07Eh,018h,07Eh,018h,018h ; Hex #BE
205 Db 000h,000h,000h,000h,0F8h,018h,018h,018h ; Hex #BF
206 Db 018h,018h,018h,018h,01Fh,000h,000h,000h ; Hex #C0
207 Db 018h,018h,018h,018h,0FFh,000h,000h,000h ; Hex #C1
208 Db 000h,000h,000h,000h,0FFh,018h,018h,018h ; Hex #C2
209 Db 018h,018h,018h,018h,01Fh,018h,018h,018h ; Hex #C3
210 Db 000h,000h,000h,000h,0FFh,000h,000h,000h ; Hex #C4
211 Db 018h,018h,018h,018h,0FFh,018h,018h,018h ; Hex #C5
212 Db 076h,0DCh,07Ch,006h,07Eh,0C6h,07Eh,000h ; Hex #C6
213 Db 076h,0DCh,038h,06Ch,0C6h,0FEh,0C6h,000h ; Hex #C7
214 Db 036h,036h,037h,030h,03Fh,000h,000h,000h ; Hex #C8
215 Db 000h,000h,03Fh,030h,037h,036h,036h,036h ; Hex #C9
216 Db 036h,036h,0F7h,000h,0FFh,000h,000h,000h ; Hex #CA
217 Db 000h,000h,0FFh,000h,0F7h,036h,036h,036h ; Hex #CB
218 Db 036h,036h,037h,030h,037h,036h,036h,036h ; Hex #CC
219 Db 000h,000h,0FFh,000h,0FFh,000h,000h,000h ; Hex #CD
220 Db 036h,036h,0F7h,000h,0F7h,036h,036h,036h ; Hex #CE
221 Db 000h,0C6h,07Ch,0C6h,0C6h,07Ch,0C6h,000h ; Hex #CF
222 Db 030h,07Eh,00Ch,07Ch,0CCh,0CCh,078h,000h ; Hex #D0
223 Db 0F8h,06Ch,066h,0F6h,066h,06Ch,0F8h,000h ; Hex #D1
224 Db 07Ch,082h,0FEh,0C0h,0FCh,0C0h,0FEh,000h ; Hex #D2
225 Db 0C6h,000h,0FEh,0C0h,0FCh,0C0h,0FEh,000h ; Hex #D3
226 Db 030h,018h,0FEh,0C0h,0FCh,0C0h,0FEh,000h ; Hex #D4
227 Db 000h,000h,038h,018h,018h,018h,03Ch,000h ; Hex #D5
228 Db 00Ch,018h,03Ch,018h,018h,018h,03Ch,000h ; Hex #D6
229 Db 03Ch,042h,03Ch,018h,018h,018h,03Ch,000h ; Hex #D7
230 Db 066h,000h,03Ch,018h,018h,018h,03Ch,000h ; Hex #D8
231 Db 018h,018h,018h,018h,0F8h,000h,000h,000h ; Hex #D9
232 Db 000h,000h,000h,000h,01Fh,018h,018h,018h ; Hex #DA
233 Db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh ; Hex #DB
234 Db 000h,000h,000h,000h,0FFh,0FFh,0FFh,0FFh ; Hex #DC
235 Db 018h,018h,018h,000h,000h,018h,018h,018h ; Hex #DD
236 Db 030h,018h,03Ch,018h,018h,018h,03Ch,000h ; Hex #DE
237 Db 0FFh,0FFh,0FFh,0FFh,000h,000h,000h,000h ; Hex #DF
238 Db 030h,060h,038h,06Ch,0C6h,06Ch,038h,000h ; Hex #E0
239 Db 078h,0CCh,0CCh,0D8h,0CCh,0C6h,0CCh,000h ; Hex #E1
240 Db 07Ch,082h,038h,06Ch,0C6h,06Ch,038h,000h ; Hex #E2
241 Db 00Ch,006h,038h,06Ch,0C6h,06Ch,038h,000h ; Hex #E3
242 Db 076h,0DCh,07Ch,0C6h,0C6h,0C6h,07Ch,000h ; Hex #E4
243 Db 076h,0DCh,038h,06Ch,0C6h,06Ch,038h,000h ; Hex #E5
244 Db 000h,000h,066h,066h,066h,066h,07Ch,0C0h ; Hex #E6
245 Db 0E0h,060h,07Ch,066h,066h,07Ch,060h,0F0h ; Hex #E7
246 Db 0F0h,060h,07Ch,066h,07Ch,060h,0F0h,000h ; Hex #E8
247 Db 018h,030h,0C6h,0C6h,0C6h,0C6h,07Ch,000h ; Hex #E9
248 Db 07Ch,082h,000h,0C6h,0C6h,0C6h,07Ch,000h ; Hex #EA
249 Db 060h,030h,0C6h,0C6h,0C6h,0C6h,07Ch,000h ; Hex #EB
250 Db 018h,030h,0C6h,0C6h,0C6h,07Eh,006h,0FCh ; Hex #EC
251 Db 00Ch,018h,066h,066h,03Ch,018h,03Ch,000h ; Hex #ED
252 Db 0FFh,000h,000h,000h,000h,000h,000h,000h ; Hex #EE
253 Db 00Ch,018h,030h,000h,000h,000h,000h,000h ; Hex #EF
254 Db 000h,000h,000h,07Eh,000h,000h,000h,000h ; Hex #F0
255 Db 018h,018h,07Eh,018h,018h,000h,07Eh,000h ; Hex #F1
256 Db 000h,000h,000h,000h,000h,0FFh,000h,0FFh ; Hex #F2
257 Db 0E1h,032h,0E4h,03Ah,0F6h,02Ah,05Fh,086h ; Hex #F3
258 Db 07Fh,0DBh,0DBh,07Bh,01Bh,01Bh,01Bh,000h ; Hex #F4
259 Db 03Eh,061h,03Ch,066h,066h,03Ch,086h,07Ch ; Hex #F5
260 Db 000h,018h,000h,07Eh,000h,018h,000h,000h ; Hex #F6
261 Db 000h,000h,000h,000h,000h,018h,00Ch,038h ; Hex #F7
262 Db 038h,06Ch,06Ch,038h,000h,000h,000h,000h ; Hex #F8
263 Db 000h,0C6h,000h,000h,000h,000h,000h,000h ; Hex #F9
264 Db 000h,000h,000h,018h,000h,000h,000h,000h ; Hex #FA
265 Db 018h,038h,018h,018h,03Ch,000h,000h,000h ; Hex #FB
266 Db 078h,00Ch,038h,00Ch,078h,000h,000h,000h ; Hex #FC
267 Db 078h,00Ch,018h,030h,07Ch,000h,000h,000h ; Hex #FD
268 Db 000h,000h,03Ch,03Ch,03Ch,03Ch,000h,000h ; Hex #FE
269 Db 000h,000h,000h,000h,000h,000h,000h,000h ; Hex #FF
270
diff --git a/v4.0/src/DEV/DISPLAY/EGA/850-CPI.ASM b/v4.0/src/DEV/DISPLAY/EGA/850-CPI.ASM
new file mode 100644
index 0000000..d40a36c
--- /dev/null
+++ b/v4.0/src/DEV/DISPLAY/EGA/850-CPI.ASM
@@ -0,0 +1,49 @@
1CODE SEGMENT BYTE PUBLIC 'CODE'
2 ASSUME CS:CODE,DS:CODE
3
4IF1
5 %OUT EGA.CPI creation file
6 %OUT .
7 %OUT CP SRC files:
8 %OUT .
9 %OUT . CODE PAGE: 850
10ENDIF
11
12EGA850: DW LEN_850 ; SIZE OF ENTRY HEADER
13 DW POST_EGA850,0 ; POINTER TO NEXT HEADER
14 DW 1 ; DEVICE TYPE
15 DB "EGA " ; DEVICE SUBTYPE ID
16 DW 850 ; CODE PAGE ID
17 DW 3 DUP(0) ; RESERVED
18 DW OFFSET DATA850,0 ; POINTER TO FONTS
19LEN_850 EQU ($-EGA850) ;
20 ;
21DATA850:DW 1 ; CART/NON-CART
22 DW 3 ; # OF FONTS
23 DW LEN_D850 ; LENGTH OF DATA
24D850: ;
25 DB 16,8 ; CHARACTER BOX SIZE
26 DB 0,0 ; ASPECT RATIO (UNUSED)
27 DW 256 ; NUMBER OF CHARACTERS
28 ;
29 INCLUDE 850-8X16.ASM ;
30 ;
31 DB 14,8 ; CHARACTER BOX SIZE
32 DB 0,0 ; ASPECT RATIO (UNUSED)
33 DW 256 ; NUMBER OF CHARACTERS
34 ;
35 INCLUDE 850-8X14.ASM ;
36 ;
37 DB 8,8 ; CHARACTER BOX SIZE
38 DB 0,0 ; ASPECT RATIO (UNUSED)
39 DW 256 ; NUMBER OF CHARACTERS
40 ;
41 INCLUDE 850-8X8.ASM ;
42 ;
43LEN_D850 EQU ($-D850) ;
44 ;
45POST_EGA850 EQU $ ;
46 ;
47CODE ENDS ;
48 END ;
49 \ No newline at end of file
diff --git a/v4.0/src/DEV/DISPLAY/EGA/860-8X14.ASM b/v4.0/src/DEV/DISPLAY/EGA/860-8X14.ASM
new file mode 100644
index 0000000..082874c
--- /dev/null
+++ b/v4.0/src/DEV/DISPLAY/EGA/860-8X14.ASM
@@ -0,0 +1,270 @@
1;***************************************************
2; CHARACTER FONT FILE
3; Source Assembler File
4;
5; CODE PAGE: 860
6; FONT RESOLUTION: 8 x 14
7;
8; DATE CREATED:05-28-1987
9;
10;
11; Output file from: MULTIFON, Version 1A
12;
13;***************************************************
14 Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #0
15 Db 000h,000h,000h,07Eh,081h,0A5h,081h,081h,0BDh,099h,081h,07Eh,000h,000h ; Hex #1
16 Db 000h,000h,000h,07Eh,0FFh,0DBh,0FFh,0FFh,0C3h,0E7h,0FFh,07Eh,000h,000h ; Hex #2
17 Db 000h,000h,000h,000h,06Ch,0FEh,0FEh,0FEh,0FEh,07Ch,038h,010h,000h,000h ; Hex #3
18 Db 000h,000h,000h,000h,010h,038h,07Ch,0FEh,07Ch,038h,010h,000h,000h,000h ; Hex #4
19 Db 000h,000h,000h,018h,03Ch,03Ch,0E7h,0E7h,0E7h,018h,018h,03Ch,000h,000h ; Hex #5
20 Db 000h,000h,000h,018h,03Ch,07Eh,0FFh,0FFh,07Eh,018h,018h,03Ch,000h,000h ; Hex #6
21 Db 000h,000h,000h,000h,000h,000h,018h,03Ch,03Ch,018h,000h,000h,000h,000h ; Hex #7
22 Db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0E7h,0C3h,0C3h,0E7h,0FFh,0FFh,0FFh,0FFh ; Hex #8
23 Db 000h,000h,000h,000h,000h,03Ch,066h,042h,042h,066h,03Ch,000h,000h,000h ; Hex #9
24 Db 0FFh,0FFh,0FFh,0FFh,0FFh,0C3h,099h,0BDh,0BDh,099h,0C3h,0FFh,0FFh,0FFh ; Hex #A
25 Db 000h,000h,000h,01Eh,00Eh,01Ah,032h,078h,0CCh,0CCh,0CCh,078h,000h,000h ; Hex #B
26 Db 000h,000h,000h,03Ch,066h,066h,066h,03Ch,018h,07Eh,018h,018h,000h,000h ; Hex #C
27 Db 000h,000h,000h,03Fh,033h,03Fh,030h,030h,030h,070h,0F0h,0E0h,000h,000h ; Hex #D
28 Db 000h,000h,000h,07Fh,063h,07Fh,063h,063h,063h,067h,0E7h,0E6h,0C0h,000h ; Hex #E
29 Db 000h,000h,000h,018h,018h,0DBh,03Ch,0E7h,03Ch,0DBh,018h,018h,000h,000h ; Hex #F
30 Db 000h,000h,000h,080h,0C0h,0E0h,0F8h,0FEh,0F8h,0E0h,0C0h,080h,000h,000h ; Hex #10
31 Db 000h,000h,000h,002h,006h,00Eh,03Eh,0FEh,03Eh,00Eh,006h,002h,000h,000h ; Hex #11
32 Db 000h,000h,000h,018h,03Ch,07Eh,018h,018h,018h,07Eh,03Ch,018h,000h,000h ; Hex #12
33 Db 000h,000h,000h,066h,066h,066h,066h,066h,066h,000h,066h,066h,000h,000h ; Hex #13
34 Db 000h,000h,000h,07Fh,0DBh,0DBh,0DBh,07Bh,01Bh,01Bh,01Bh,01Bh,000h,000h ; Hex #14
35 Db 000h,000h,07Ch,0C6h,060h,038h,06Ch,0C6h,0C6h,06Ch,038h,00Ch,0C6h,07Ch ; Hex #15
36 Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,0FEh,0FEh,0FEh,000h,000h ; Hex #16
37 Db 000h,000h,000h,018h,03Ch,07Eh,018h,018h,018h,07Eh,03Ch,018h,07Eh,000h ; Hex #17
38 Db 000h,000h,000h,018h,03Ch,07Eh,018h,018h,018h,018h,018h,018h,000h,000h ; Hex #18
39 Db 000h,000h,000h,018h,018h,018h,018h,018h,018h,07Eh,03Ch,018h,000h,000h ; Hex #19
40 Db 000h,000h,000h,000h,000h,018h,00Ch,0FEh,00Ch,018h,000h,000h,000h,000h ; Hex #1A
41 Db 000h,000h,000h,000h,000h,030h,060h,0FEh,060h,030h,000h,000h,000h,000h ; Hex #1B
42 Db 000h,000h,000h,000h,000h,000h,0C0h,0C0h,0C0h,0FEh,000h,000h,000h,000h ; Hex #1C
43 Db 000h,000h,000h,000h,000h,028h,06Ch,0FEh,06Ch,028h,000h,000h,000h,000h ; Hex #1D
44 Db 000h,000h,000h,000h,010h,038h,038h,07Ch,07Ch,0FEh,0FEh,000h,000h,000h ; Hex #1E
45 Db 000h,000h,000h,000h,0FEh,0FEh,07Ch,07Ch,038h,038h,010h,000h,000h,000h ; Hex #1F
46 Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #20
47 Db 000h,000h,000h,018h,03Ch,03Ch,03Ch,018h,018h,000h,018h,018h,000h,000h ; Hex #21
48 Db 000h,066h,066h,066h,024h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #22
49 Db 000h,000h,000h,06Ch,06Ch,0FEh,06Ch,06Ch,06Ch,0FEh,06Ch,06Ch,000h,000h ; Hex #23
50 Db 000h,018h,018h,07Ch,0C6h,0C2h,0C0h,07Ch,006h,086h,0C6h,07Ch,018h,018h ; Hex #24
51 Db 000h,000h,000h,000h,000h,0C2h,0C6h,00Ch,018h,030h,066h,0C6h,000h,000h ; Hex #25
52 Db 000h,000h,000h,038h,06Ch,06Ch,038h,076h,0DCh,0CCh,0CCh,076h,000h,000h ; Hex #26
53 Db 000h,018h,018h,018h,030h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #27
54 Db 000h,000h,000h,00Ch,018h,030h,030h,030h,030h,030h,018h,00Ch,000h,000h ; Hex #28
55 Db 000h,000h,000h,030h,018h,00Ch,00Ch,00Ch,00Ch,00Ch,018h,030h,000h,000h ; Hex #29
56 Db 000h,000h,000h,000h,000h,066h,03Ch,0FFh,03Ch,066h,000h,000h,000h,000h ; Hex #2A
57 Db 000h,000h,000h,000h,000h,018h,018h,07Eh,018h,018h,000h,000h,000h,000h ; Hex #2B
58 Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,018h,018h,018h,030h,000h ; Hex #2C
59 Db 000h,000h,000h,000h,000h,000h,000h,0FEh,000h,000h,000h,000h,000h,000h ; Hex #2D
60 Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,018h,018h,000h,000h ; Hex #2E
61 Db 000h,000h,000h,002h,006h,00Ch,018h,030h,060h,0C0h,080h,000h,000h,000h ; Hex #2F
62 Db 000h,000h,000h,038h,06Ch,0C6h,0C6h,0D6h,0C6h,0C6h,06Ch,038h,000h,000h ; Hex #30
63 Db 000h,000h,000h,018h,038h,078h,018h,018h,018h,018h,018h,07Eh,000h,000h ; Hex #31
64 Db 000h,000h,000h,07Ch,0C6h,006h,00Ch,018h,030h,060h,0C6h,0FEh,000h,000h ; Hex #32
65 Db 000h,000h,000h,07Ch,0C6h,006h,006h,03Ch,006h,006h,0C6h,07Ch,000h,000h ; Hex #33
66 Db 000h,000h,000h,00Ch,01Ch,03Ch,06Ch,0CCh,0FEh,00Ch,00Ch,01Eh,000h,000h ; Hex #34
67 Db 000h,000h,000h,0FEh,0C0h,0C0h,0C0h,0FCh,006h,006h,0C6h,07Ch,000h,000h ; Hex #35
68 Db 000h,000h,000h,038h,060h,0C0h,0C0h,0FCh,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #36
69 Db 000h,000h,000h,0FEh,0C6h,006h,00Ch,018h,030h,030h,030h,030h,000h,000h ; Hex #37
70 Db 000h,000h,000h,07Ch,0C6h,0C6h,0C6h,07Ch,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #38
71 Db 000h,000h,000h,07Ch,0C6h,0C6h,0C6h,07Eh,006h,006h,00Ch,078h,000h,000h ; Hex #39
72 Db 000h,000h,000h,000h,018h,018h,000h,000h,000h,018h,018h,000h,000h,000h ; Hex #3A
73 Db 000h,000h,000h,000h,018h,018h,000h,000h,000h,018h,018h,030h,000h,000h ; Hex #3B
74 Db 000h,000h,000h,00Ch,018h,030h,060h,0C0h,060h,030h,018h,00Ch,000h,000h ; Hex #3C
75 Db 000h,000h,000h,000h,000h,000h,07Eh,000h,000h,07Eh,000h,000h,000h,000h ; Hex #3D
76 Db 000h,000h,000h,060h,030h,018h,00Ch,006h,00Ch,018h,030h,060h,000h,000h ; Hex #3E
77 Db 000h,000h,000h,07Ch,0C6h,0C6h,00Ch,018h,018h,000h,018h,018h,000h,000h ; Hex #3F
78 Db 000h,000h,000h,07Ch,0C6h,0C6h,0DEh,0DEh,0DEh,0DCh,0C0h,07Ch,000h,000h ; Hex #40
79 Db 000h,000h,000h,010h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,000h,000h ; Hex #41
80 Db 000h,000h,000h,0FCh,066h,066h,066h,07Ch,066h,066h,066h,0FCh,000h,000h ; Hex #42
81 Db 000h,000h,000h,03Ch,066h,0C2h,0C0h,0C0h,0C0h,0C2h,066h,03Ch,000h,000h ; Hex #43
82 Db 000h,000h,000h,0F8h,06Ch,066h,066h,066h,066h,066h,06Ch,0F8h,000h,000h ; Hex #44
83 Db 000h,000h,000h,0FEh,066h,062h,068h,078h,068h,062h,066h,0FEh,000h,000h ; Hex #45
84 Db 000h,000h,000h,0FEh,066h,062h,068h,078h,068h,060h,060h,0F0h,000h,000h ; Hex #46
85 Db 000h,000h,000h,03Ch,066h,0C2h,0C0h,0C0h,0DEh,0C6h,066h,03Ah,000h,000h ; Hex #47
86 Db 000h,000h,000h,0C6h,0C6h,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,0C6h,000h,000h ; Hex #48
87 Db 000h,000h,000h,03Ch,018h,018h,018h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #49
88 Db 000h,000h,000h,01Eh,00Ch,00Ch,00Ch,00Ch,00Ch,0CCh,0CCh,078h,000h,000h ; Hex #4A
89 Db 000h,000h,000h,0E6h,066h,06Ch,06Ch,078h,06Ch,06Ch,066h,0E6h,000h,000h ; Hex #4B
90 Db 000h,000h,000h,0F0h,060h,060h,060h,060h,060h,062h,066h,0FEh,000h,000h ; Hex #4C
91 Db 000h,000h,000h,0C6h,0EEh,0FEh,0D6h,0C6h,0C6h,0C6h,0C6h,0C6h,000h,000h ; Hex #4D
92 Db 000h,000h,000h,0C6h,0E6h,0F6h,0FEh,0DEh,0CEh,0C6h,0C6h,0C6h,000h,000h ; Hex #4E
93 Db 000h,000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #4F
94 Db 000h,000h,000h,0FCh,066h,066h,066h,07Ch,060h,060h,060h,0F0h,000h,000h ; Hex #50
95 Db 000h,000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0D6h,0DEh,07Ch,00Eh,000h ; Hex #51
96 Db 000h,000h,000h,0FCh,066h,066h,066h,07Ch,06Ch,066h,066h,0E6h,000h,000h ; Hex #52
97 Db 000h,000h,000h,07Ch,0C6h,0C6h,060h,038h,00Ch,0C6h,0C6h,07Ch,000h,000h ; Hex #53
98 Db 000h,000h,000h,07Eh,07Eh,05Ah,018h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #54
99 Db 000h,000h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #55
100 Db 000h,000h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,06Ch,038h,010h,000h,000h ; Hex #56
101 Db 000h,000h,000h,0C6h,0C6h,0C6h,0C6h,0D6h,0D6h,0FEh,06Ch,06Ch,000h,000h ; Hex #57
102 Db 000h,000h,000h,0C6h,0C6h,0C6h,07Ch,038h,07Ch,0C6h,0C6h,0C6h,000h,000h ; Hex #58
103 Db 000h,000h,000h,066h,066h,066h,066h,03Ch,018h,018h,018h,03Ch,000h,000h ; Hex #59
104 Db 000h,000h,000h,0FEh,0C6h,08Ch,018h,030h,060h,0C2h,0C6h,0FEh,000h,000h ; Hex #5A
105 Db 000h,000h,000h,03Ch,030h,030h,030h,030h,030h,030h,030h,03Ch,000h,000h ; Hex #5B
106 Db 000h,000h,000h,080h,0C0h,0E0h,070h,038h,01Ch,00Eh,006h,002h,000h,000h ; Hex #5C
107 Db 000h,000h,000h,03Ch,00Ch,00Ch,00Ch,00Ch,00Ch,00Ch,00Ch,03Ch,000h,000h ; Hex #5D
108 Db 010h,038h,06Ch,0C6h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #5E
109 Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,0FFh ; Hex #5F
110 Db 000h,030h,018h,00Ch,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #60
111 Db 000h,000h,000h,000h,000h,000h,078h,00Ch,07Ch,0CCh,0CCh,076h,000h,000h ; Hex #61
112 Db 000h,000h,000h,0E0h,060h,060h,078h,06Ch,066h,066h,066h,07Ch,000h,000h ; Hex #62
113 Db 000h,000h,000h,000h,000h,000h,07Ch,0C6h,0C0h,0C0h,0C6h,07Ch,000h,000h ; Hex #63
114 Db 000h,000h,000h,01Ch,00Ch,00Ch,03Ch,06Ch,0CCh,0CCh,0CCh,076h,000h,000h ; Hex #64
115 Db 000h,000h,000h,000h,000h,000h,07Ch,0C6h,0FEh,0C0h,0C6h,07Ch,000h,000h ; Hex #65
116 Db 000h,000h,000h,01Ch,036h,032h,030h,07Ch,030h,030h,030h,078h,000h,000h ; Hex #66
117 Db 000h,000h,000h,000h,000h,000h,076h,0CCh,0CCh,0CCh,07Ch,00Ch,0CCh,078h ; Hex #67
118 Db 000h,000h,000h,0E0h,060h,060h,06Ch,076h,066h,066h,066h,0E6h,000h,000h ; Hex #68
119 Db 000h,000h,000h,018h,018h,000h,038h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #69
120 Db 000h,000h,000h,006h,006h,000h,00Eh,006h,006h,006h,006h,066h,066h,03Ch ; Hex #6A
121 Db 000h,000h,000h,0E0h,060h,060h,066h,06Ch,078h,06Ch,066h,0E6h,000h,000h ; Hex #6B
122 Db 000h,000h,000h,038h,018h,018h,018h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #6C
123 Db 000h,000h,000h,000h,000h,000h,0ECh,0FEh,0D6h,0D6h,0D6h,0D6h,000h,000h ; Hex #6D
124 Db 000h,000h,000h,000h,000h,000h,0DCh,066h,066h,066h,066h,066h,000h,000h ; Hex #6E
125 Db 000h,000h,000h,000h,000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #6F
126 Db 000h,000h,000h,000h,000h,000h,0DCh,066h,066h,066h,07Ch,060h,060h,0F0h ; Hex #70
127 Db 000h,000h,000h,000h,000h,000h,076h,0CCh,0CCh,0CCh,07Ch,00Ch,00Ch,01Eh ; Hex #71
128 Db 000h,000h,000h,000h,000h,000h,0DCh,076h,066h,060h,060h,0F0h,000h,000h ; Hex #72
129 Db 000h,000h,000h,000h,000h,000h,07Ch,0C6h,070h,01Ch,0C6h,07Ch,000h,000h ; Hex #73
130 Db 000h,000h,000h,010h,030h,030h,0FCh,030h,030h,030h,036h,01Ch,000h,000h ; Hex #74
131 Db 000h,000h,000h,000h,000h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h ; Hex #75
132 Db 000h,000h,000h,000h,000h,000h,0C6h,0C6h,0C6h,06Ch,038h,010h,000h,000h ; Hex #76
133 Db 000h,000h,000h,000h,000h,000h,0C6h,0C6h,0D6h,0D6h,0FEh,06Ch,000h,000h ; Hex #77
134 Db 000h,000h,000h,000h,000h,000h,0C6h,06Ch,038h,038h,06Ch,0C6h,000h,000h ; Hex #78
135 Db 000h,000h,000h,000h,000h,000h,0C6h,0C6h,0C6h,0C6h,07Eh,006h,00Ch,078h ; Hex #79
136 Db 000h,000h,000h,000h,000h,000h,0FEh,0CCh,018h,030h,066h,0FEh,000h,000h ; Hex #7A
137 Db 000h,000h,000h,00Eh,018h,018h,018h,070h,018h,018h,018h,00Eh,000h,000h ; Hex #7B
138 Db 000h,000h,000h,018h,018h,018h,018h,018h,018h,018h,018h,018h,000h,000h ; Hex #7C
139 Db 000h,000h,000h,070h,018h,018h,018h,00Eh,018h,018h,018h,070h,000h,000h ; Hex #7D
140 Db 000h,076h,0DCh,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #7E
141 Db 000h,000h,000h,000h,000h,010h,038h,06Ch,0C6h,0C6h,0FEh,000h,000h,000h ; Hex #7F
142 Db 000h,000h,000h,03Ch,066h,0C2h,0C0h,0C0h,0C0h,0C2h,066h,03Ch,00Ch,078h ; Hex #80
143 Db 000h,000h,000h,0CCh,000h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h ; Hex #81
144 Db 000h,000h,00Ch,018h,030h,000h,07Ch,0C6h,0FEh,0C0h,0C6h,07Ch,000h,000h ; Hex #82
145 Db 000h,000h,010h,038h,06Ch,000h,078h,00Ch,07Ch,0CCh,0CCh,076h,000h,000h ; Hex #83
146 Db 000h,000h,000h,076h,0DCh,000h,078h,00Ch,07Ch,0CCh,0CCh,076h,000h,000h ; Hex #84
147 Db 000h,000h,060h,030h,018h,000h,078h,00Ch,07Ch,0CCh,0CCh,076h,000h,000h ; Hex #85
148 Db 030h,060h,0C0h,010h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,000h,000h ; Hex #86
149 Db 000h,000h,000h,000h,000h,000h,07Ch,0C6h,0C0h,0C0h,0C6h,07Ch,00Ch,078h ; Hex #87
150 Db 000h,000h,010h,038h,06Ch,000h,07Ch,0C6h,0FEh,0C0h,0C6h,07Ch,000h,000h ; Hex #88
151 Db 038h,06Ch,000h,0FEh,066h,062h,068h,078h,068h,062h,066h,0FEh,000h,000h ; Hex #89
152 Db 000h,000h,060h,030h,018h,000h,07Ch,0C6h,0FEh,0C0h,0C6h,07Ch,000h,000h ; Hex #8A
153 Db 00Ch,018h,000h,03Ch,018h,018h,018h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #8B
154 Db 038h,06Ch,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #8C
155 Db 000h,000h,060h,030h,018h,000h,038h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #8D
156 Db 076h,0DCh,000h,010h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,000h,000h ; Hex #8E
157 Db 038h,06Ch,0C6h,010h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,000h,000h ; Hex #8F
158 Db 00Ch,018h,000h,0FEh,066h,062h,068h,078h,068h,062h,066h,0FEh,000h,000h ; Hex #90
159 Db 018h,00Ch,006h,010h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,000h,000h ; Hex #91
160 Db 030h,018h,000h,0FEh,066h,062h,068h,078h,068h,062h,066h,0FEh,000h,000h ; Hex #92
161 Db 000h,000h,010h,038h,06Ch,000h,07Ch,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #93
162 Db 000h,000h,000h,076h,0DCh,000h,07Ch,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #94
163 Db 000h,000h,060h,030h,018h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #95
164 Db 018h,030h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #96
165 Db 000h,000h,060h,030h,018h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h ; Hex #97
166 Db 030h,018h,000h,03Ch,018h,018h,018h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #98
167 Db 076h,0DCh,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #99
168 Db 000h,0C6h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #9A
169 Db 000h,000h,018h,018h,07Ch,0C6h,0C0h,0C0h,0C6h,07Ch,018h,018h,000h,000h ; Hex #9B
170 Db 000h,000h,038h,06Ch,064h,060h,0F0h,060h,060h,060h,0E6h,0FCh,000h,000h ; Hex #9C
171 Db 030h,018h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #9D
172 Db 000h,000h,0FCh,066h,066h,07Ch,062h,066h,06Fh,066h,066h,0F3h,000h,000h ; Hex #9E
173 Db 00Ch,018h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #9F
174 Db 000h,000h,00Ch,018h,030h,000h,078h,00Ch,07Ch,0CCh,0CCh,076h,000h,000h ; Hex #A0
175 Db 000h,000h,00Ch,018h,030h,000h,038h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #A1
176 Db 000h,000h,00Ch,018h,030h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #A2
177 Db 000h,000h,00Ch,018h,030h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h ; Hex #A3
178 Db 000h,000h,000h,076h,0DCh,000h,0DCh,066h,066h,066h,066h,066h,000h,000h ; Hex #A4
179 Db 076h,0DCh,000h,0C6h,0E6h,0F6h,0FEh,0DEh,0CEh,0C6h,0C6h,0C6h,000h,000h ; Hex #A5
180 Db 000h,000h,03Ch,06Ch,06Ch,03Eh,000h,07Eh,000h,000h,000h,000h,000h,000h ; Hex #A6
181 Db 000h,000h,038h,06Ch,06Ch,038h,000h,07Ch,000h,000h,000h,000h,000h,000h ; Hex #A7
182 Db 000h,000h,000h,030h,030h,000h,030h,030h,060h,0C6h,0C6h,07Ch,000h,000h ; Hex #A8
183 Db 030h,018h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #A9
184 Db 000h,000h,000h,000h,000h,000h,000h,0FEh,006h,006h,006h,000h,000h,000h ; Hex #AA
185 Db 000h,000h,060h,0E0h,063h,066h,06Ch,018h,030h,06Eh,0C3h,006h,00Ch,01Fh ; Hex #AB
186 Db 000h,000h,060h,0E0h,063h,066h,06Ch,01Ah,036h,06Eh,0DAh,03Fh,006h,006h ; Hex #AC
187 Db 000h,000h,000h,018h,018h,000h,018h,018h,03Ch,03Ch,03Ch,018h,000h,000h ; Hex #AD
188 Db 000h,000h,000h,000h,000h,036h,06Ch,0D8h,06Ch,036h,000h,000h,000h,000h ; Hex #AE
189 Db 000h,000h,000h,000h,000h,0D8h,06Ch,036h,06Ch,0D8h,000h,000h,000h,000h ; Hex #AF
190 Db 011h,044h,011h,044h,011h,044h,011h,044h,011h,044h,011h,044h,011h,044h ; Hex #B0
191 Db 055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh ; Hex #B1
192 Db 0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h ; Hex #B2
193 Db 018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #B3
194 Db 018h,018h,018h,018h,018h,018h,018h,0F8h,018h,018h,018h,018h,018h,018h ; Hex #B4
195 Db 018h,018h,018h,018h,018h,0F8h,018h,0F8h,018h,018h,018h,018h,018h,018h ; Hex #B5
196 Db 036h,036h,036h,036h,036h,036h,036h,0F6h,036h,036h,036h,036h,036h,036h ; Hex #B6
197 Db 000h,000h,000h,000h,000h,000h,000h,0FEh,036h,036h,036h,036h,036h,036h ; Hex #B7
198 Db 000h,000h,000h,000h,000h,0F8h,018h,0F8h,018h,018h,018h,018h,018h,018h ; Hex #B8
199 Db 036h,036h,036h,036h,036h,0F6h,006h,0F6h,036h,036h,036h,036h,036h,036h ; Hex #B9
200 Db 036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #BA
201 Db 000h,000h,000h,000h,000h,0FEh,006h,0F6h,036h,036h,036h,036h,036h,036h ; Hex #BB
202 Db 036h,036h,036h,036h,036h,0F6h,006h,0FEh,000h,000h,000h,000h,000h,000h ; Hex #BC
203 Db 036h,036h,036h,036h,036h,036h,036h,0FEh,000h,000h,000h,000h,000h,000h ; Hex #BD
204 Db 018h,018h,018h,018h,018h,0F8h,018h,0F8h,000h,000h,000h,000h,000h,000h ; Hex #BE
205 Db 000h,000h,000h,000h,000h,000h,000h,0F8h,018h,018h,018h,018h,018h,018h ; Hex #BF
206 Db 018h,018h,018h,018h,018h,018h,018h,01Fh,000h,000h,000h,000h,000h,000h ; Hex #C0
207 Db 018h,018h,018h,018h,018h,018h,018h,0FFh,000h,000h,000h,000h,000h,000h ; Hex #C1
208 Db 000h,000h,000h,000h,000h,000h,000h,0FFh,018h,018h,018h,018h,018h,018h ; Hex #C2
209 Db 018h,018h,018h,018h,018h,018h,018h,01Fh,018h,018h,018h,018h,018h,018h ; Hex #C3
210 Db 000h,000h,000h,000h,000h,000h,000h,0FFh,000h,000h,000h,000h,000h,000h ; Hex #C4
211 Db 018h,018h,018h,018h,018h,018h,018h,0FFh,018h,018h,018h,018h,018h,018h ; Hex #C5
212 Db 018h,018h,018h,018h,018h,01Fh,018h,01Fh,018h,018h,018h,018h,018h,018h ; Hex #C6
213 Db 036h,036h,036h,036h,036h,036h,036h,037h,036h,036h,036h,036h,036h,036h ; Hex #C7
214 Db 036h,036h,036h,036h,036h,037h,030h,03Fh,000h,000h,000h,000h,000h,000h ; Hex #C8
215 Db 000h,000h,000h,000h,000h,03Fh,030h,037h,036h,036h,036h,036h,036h,036h ; Hex #C9
216 Db 036h,036h,036h,036h,036h,0F7h,000h,0FFh,000h,000h,000h,000h,000h,000h ; Hex #CA
217 Db 000h,000h,000h,000h,000h,0FFh,000h,0F7h,036h,036h,036h,036h,036h,036h ; Hex #CB
218 Db 036h,036h,036h,036h,036h,037h,030h,037h,036h,036h,036h,036h,036h,036h ; Hex #CC
219 Db 000h,000h,000h,000h,000h,0FFh,000h,0FFh,000h,000h,000h,000h,000h,000h ; Hex #CD
220 Db 036h,036h,036h,036h,036h,0F7h,000h,0F7h,036h,036h,036h,036h,036h,036h ; Hex #CE
221 Db 018h,018h,018h,018h,018h,0FFh,000h,0FFh,000h,000h,000h,000h,000h,000h ; Hex #CF
222 Db 036h,036h,036h,036h,036h,036h,036h,0FFh,000h,000h,000h,000h,000h,000h ; Hex #D0
223 Db 000h,000h,000h,000h,000h,0FFh,000h,0FFh,018h,018h,018h,018h,018h,018h ; Hex #D1
224 Db 000h,000h,000h,000h,000h,000h,000h,0FFh,036h,036h,036h,036h,036h,036h ; Hex #D2
225 Db 036h,036h,036h,036h,036h,036h,036h,03Fh,000h,000h,000h,000h,000h,000h ; Hex #D3
226 Db 018h,018h,018h,018h,018h,01Fh,018h,01Fh,000h,000h,000h,000h,000h,000h ; Hex #D4
227 Db 000h,000h,000h,000h,000h,01Fh,018h,01Fh,018h,018h,018h,018h,018h,018h ; Hex #D5
228 Db 000h,000h,000h,000h,000h,000h,000h,03Fh,036h,036h,036h,036h,036h,036h ; Hex #D6
229 Db 036h,036h,036h,036h,036h,036h,036h,0FFh,036h,036h,036h,036h,036h,036h ; Hex #D7
230 Db 018h,018h,018h,018h,018h,0FFh,018h,0FFh,018h,018h,018h,018h,018h,018h ; Hex #D8
231 Db 018h,018h,018h,018h,018h,018h,018h,0F8h,000h,000h,000h,000h,000h,000h ; Hex #D9
232 Db 000h,000h,000h,000h,000h,000h,000h,01Fh,018h,018h,018h,018h,018h,018h ; Hex #DA
233 Db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh ; Hex #DB
234 Db 000h,000h,000h,000h,000h,000h,000h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh ; Hex #DC
235 Db 0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h ; Hex #DD
236 Db 00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh ; Hex #DE
237 Db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,000h,000h,000h,000h,000h,000h,000h ; Hex #DF
238 Db 000h,000h,000h,000h,000h,000h,076h,0DCh,0D8h,0D8h,0DCh,076h,000h,000h ; Hex #E0
239 Db 000h,000h,000h,078h,0CCh,0CCh,0CCh,0D8h,0CCh,0C6h,0C6h,0CCh,000h,000h ; Hex #E1
240 Db 000h,000h,000h,0FEh,0C6h,0C6h,0C0h,0C0h,0C0h,0C0h,0C0h,0C0h,000h,000h ; Hex #E2
241 Db 000h,000h,000h,000h,000h,000h,0FEh,06Ch,06Ch,06Ch,06Ch,06Ch,000h,000h ; Hex #E3
242 Db 000h,000h,000h,0FEh,0C6h,060h,030h,018h,030h,060h,0C6h,0FEh,000h,000h ; Hex #E4
243 Db 000h,000h,000h,000h,000h,000h,07Eh,0D8h,0D8h,0D8h,0D8h,070h,000h,000h ; Hex #E5
244 Db 000h,000h,000h,000h,000h,000h,066h,066h,066h,066h,066h,07Ch,060h,0C0h ; Hex #E6
245 Db 000h,000h,000h,000h,000h,076h,0DCh,018h,018h,018h,018h,018h,000h,000h ; Hex #E7
246 Db 000h,000h,000h,07Eh,018h,03Ch,066h,066h,066h,03Ch,018h,07Eh,000h,000h ; Hex #E8
247 Db 000h,000h,000h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,06Ch,038h,000h,000h ; Hex #E9
248 Db 000h,000h,000h,038h,06Ch,0C6h,0C6h,0C6h,06Ch,06Ch,06Ch,0EEh,000h,000h ; Hex #EA
249 Db 000h,000h,000h,01Eh,030h,018h,00Ch,03Eh,066h,066h,066h,03Ch,000h,000h ; Hex #EB
250 Db 000h,000h,000h,000h,000h,000h,07Eh,0DBh,0DBh,07Eh,000h,000h,000h,000h ; Hex #EC
251 Db 000h,000h,000h,003h,006h,07Eh,0DBh,0DBh,0F3h,07Eh,060h,0C0h,000h,000h ; Hex #ED
252 Db 000h,000h,000h,01Eh,030h,060h,060h,07Eh,060h,060h,030h,01Eh,000h,000h ; Hex #EE
253 Db 000h,000h,000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,000h,000h ; Hex #EF
254 Db 000h,000h,000h,000h,0FEh,000h,000h,0FEh,000h,000h,0FEh,000h,000h,000h ; Hex #F0
255 Db 000h,000h,000h,000h,018h,018h,07Eh,018h,018h,000h,000h,07Eh,000h,000h ; Hex #F1
256 Db 000h,000h,000h,030h,018h,00Ch,006h,00Ch,018h,030h,000h,07Eh,000h,000h ; Hex #F2
257 Db 000h,000h,000h,00Ch,018h,030h,060h,030h,018h,00Ch,000h,07Eh,000h,000h ; Hex #F3
258 Db 000h,000h,00Eh,01Bh,01Bh,018h,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #F4
259 Db 018h,018h,018h,018h,018h,018h,018h,018h,0D8h,0D8h,070h,000h,000h,000h ; Hex #F5
260 Db 000h,000h,000h,000h,000h,018h,000h,07Eh,000h,018h,000h,000h,000h,000h ; Hex #F6
261 Db 000h,000h,000h,000h,000h,076h,0DCh,000h,076h,0DCh,000h,000h,000h,000h ; Hex #F7
262 Db 000h,038h,06Ch,06Ch,038h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #F8
263 Db 000h,000h,000h,000h,000h,000h,000h,018h,018h,000h,000h,000h,000h,000h ; Hex #F9
264 Db 000h,000h,000h,000h,000h,000h,000h,018h,000h,000h,000h,000h,000h,000h ; Hex #FA
265 Db 000h,00Fh,00Ch,00Ch,00Ch,00Ch,00Ch,00Ch,0ECh,06Ch,03Ch,01Ch,000h,000h ; Hex #FB
266 Db 000h,06Ch,036h,036h,036h,036h,036h,000h,000h,000h,000h,000h,000h,000h ; Hex #FC
267 Db 000h,03Ch,066h,00Ch,018h,032h,07Eh,000h,000h,000h,000h,000h,000h,000h ; Hex #FD
268 Db 000h,000h,000h,000h,000h,07Eh,07Eh,07Eh,07Eh,07Eh,07Eh,000h,000h,000h ; Hex #FE
269 Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #FF
270
diff --git a/v4.0/src/DEV/DISPLAY/EGA/860-8X16.ASM b/v4.0/src/DEV/DISPLAY/EGA/860-8X16.ASM
new file mode 100644
index 0000000..e14176c
--- /dev/null
+++ b/v4.0/src/DEV/DISPLAY/EGA/860-8X16.ASM
@@ -0,0 +1,270 @@
1;***************************************************
2; CHARACTER FONT FILE
3; Source Assembler File
4;
5; CODE PAGE: 860
6; FONT RESOLUTION: 8 x 16
7;
8; DATE CREATED:05-28-1987
9;
10;
11; Output file from: MULTIFON, Version 1A
12;
13;***************************************************
14 Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #0
15 Db 000h,000h,07Eh,081h,0A5h,081h,081h,0BDh,099h,081h,081h,07Eh,000h,000h,000h,000h ; Hex #1
16 Db 000h,000h,07Eh,0FFh,0DBh,0FFh,0FFh,0C3h,0E7h,0FFh,0FFh,07Eh,000h,000h,000h,000h ; Hex #2
17 Db 000h,000h,000h,000h,06Ch,0FEh,0FEh,0FEh,0FEh,07Ch,038h,010h,000h,000h,000h,000h ; Hex #3
18 Db 000h,000h,000h,000h,010h,038h,07Ch,0FEh,07Ch,038h,010h,000h,000h,000h,000h,000h ; Hex #4
19 Db 000h,000h,000h,018h,03Ch,03Ch,0E7h,0E7h,0E7h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #5
20 Db 000h,000h,000h,018h,03Ch,07Eh,0FFh,0FFh,07Eh,018h,018h,03Ch,000h,000h,000h,000h ; Hex #6
21 Db 000h,000h,000h,000h,000h,000h,018h,03Ch,03Ch,018h,000h,000h,000h,000h,000h,000h ; Hex #7
22 Db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0E7h,0C3h,0C3h,0E7h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh ; Hex #8
23 Db 000h,000h,000h,000h,000h,03Ch,066h,042h,042h,066h,03Ch,000h,000h,000h,000h,000h ; Hex #9
24 Db 0FFh,0FFh,0FFh,0FFh,0FFh,0C3h,099h,0BDh,0BDh,099h,0C3h,0FFh,0FFh,0FFh,0FFh,0FFh ; Hex #A
25 Db 000h,000h,01Eh,00Eh,01Ah,032h,078h,0CCh,0CCh,0CCh,0CCh,078h,000h,000h,000h,000h ; Hex #B
26 Db 000h,000h,03Ch,066h,066h,066h,066h,03Ch,018h,07Eh,018h,018h,000h,000h,000h,000h ; Hex #C
27 Db 000h,000h,03Fh,033h,03Fh,030h,030h,030h,030h,070h,0F0h,0E0h,000h,000h,000h,000h ; Hex #D
28 Db 000h,000h,07Fh,063h,07Fh,063h,063h,063h,063h,067h,0E7h,0E6h,0C0h,000h,000h,000h ; Hex #E
29 Db 000h,000h,000h,018h,018h,0DBh,03Ch,0E7h,03Ch,0DBh,018h,018h,000h,000h,000h,000h ; Hex #F
30 Db 000h,080h,0C0h,0E0h,0F0h,0F8h,0FEh,0F8h,0F0h,0E0h,0C0h,080h,000h,000h,000h,000h ; Hex #10
31 Db 000h,002h,006h,00Eh,01Eh,03Eh,0FEh,03Eh,01Eh,00Eh,006h,002h,000h,000h,000h,000h ; Hex #11
32 Db 000h,000h,018h,03Ch,07Eh,018h,018h,018h,07Eh,03Ch,018h,000h,000h,000h,000h,000h ; Hex #12
33 Db 000h,000h,066h,066h,066h,066h,066h,066h,066h,000h,066h,066h,000h,000h,000h,000h ; Hex #13
34 Db 000h,000h,07Fh,0DBh,0DBh,0DBh,07Bh,01Bh,01Bh,01Bh,01Bh,01Bh,000h,000h,000h,000h ; Hex #14
35 Db 000h,07Ch,0C6h,060h,038h,06Ch,0C6h,0C6h,06Ch,038h,00Ch,0C6h,07Ch,000h,000h,000h ; Hex #15
36 Db 000h,000h,000h,000h,000h,000h,000h,000h,0FEh,0FEh,0FEh,0FEh,000h,000h,000h,000h ; Hex #16
37 Db 000h,000h,018h,03Ch,07Eh,018h,018h,018h,07Eh,03Ch,018h,07Eh,000h,000h,000h,000h ; Hex #17
38 Db 000h,000h,018h,03Ch,07Eh,018h,018h,018h,018h,018h,018h,018h,000h,000h,000h,000h ; Hex #18
39 Db 000h,000h,018h,018h,018h,018h,018h,018h,018h,07Eh,03Ch,018h,000h,000h,000h,000h ; Hex #19
40 Db 000h,000h,000h,000h,000h,018h,00Ch,0FEh,00Ch,018h,000h,000h,000h,000h,000h,000h ; Hex #1A
41 Db 000h,000h,000h,000h,000h,030h,060h,0FEh,060h,030h,000h,000h,000h,000h,000h,000h ; Hex #1B
42 Db 000h,000h,000h,000h,000h,000h,0C0h,0C0h,0C0h,0FEh,000h,000h,000h,000h,000h,000h ; Hex #1C
43 Db 000h,000h,000h,000h,000h,028h,06Ch,0FEh,06Ch,028h,000h,000h,000h,000h,000h,000h ; Hex #1D
44 Db 000h,000h,000h,000h,010h,038h,038h,07Ch,07Ch,0FEh,0FEh,000h,000h,000h,000h,000h ; Hex #1E
45 Db 000h,000h,000h,000h,0FEh,0FEh,07Ch,07Ch,038h,038h,010h,000h,000h,000h,000h,000h ; Hex #1F
46 Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #20
47 Db 000h,000h,018h,03Ch,03Ch,03Ch,018h,018h,018h,000h,018h,018h,000h,000h,000h,000h ; Hex #21
48 Db 000h,066h,066h,066h,024h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #22
49 Db 000h,000h,000h,06Ch,06Ch,0FEh,06Ch,06Ch,06Ch,0FEh,06Ch,06Ch,000h,000h,000h,000h ; Hex #23
50 Db 018h,018h,07Ch,0C6h,0C2h,0C0h,07Ch,006h,006h,086h,0C6h,07Ch,018h,018h,000h,000h ; Hex #24
51 Db 000h,000h,000h,000h,0C2h,0C6h,00Ch,018h,030h,060h,0C6h,086h,000h,000h,000h,000h ; Hex #25
52 Db 000h,000h,038h,06Ch,06Ch,038h,076h,0DCh,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #26
53 Db 000h,030h,030h,030h,060h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #27
54 Db 000h,000h,00Ch,018h,030h,030h,030h,030h,030h,030h,018h,00Ch,000h,000h,000h,000h ; Hex #28
55 Db 000h,000h,030h,018h,00Ch,00Ch,00Ch,00Ch,00Ch,00Ch,018h,030h,000h,000h,000h,000h ; Hex #29
56 Db 000h,000h,000h,000h,000h,066h,03Ch,0FFh,03Ch,066h,000h,000h,000h,000h,000h,000h ; Hex #2A
57 Db 000h,000h,000h,000h,000h,018h,018h,07Eh,018h,018h,000h,000h,000h,000h,000h,000h ; Hex #2B
58 Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,018h,018h,018h,030h,000h,000h,000h ; Hex #2C
59 Db 000h,000h,000h,000h,000h,000h,000h,0FEh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #2D
60 Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,018h,018h,000h,000h,000h,000h ; Hex #2E
61 Db 000h,000h,000h,000h,002h,006h,00Ch,018h,030h,060h,0C0h,080h,000h,000h,000h,000h ; Hex #2F
62 Db 000h,000h,038h,06Ch,0C6h,0C6h,0D6h,0D6h,0C6h,0C6h,06Ch,038h,000h,000h,000h,000h ; Hex #30
63 Db 000h,000h,018h,038h,078h,018h,018h,018h,018h,018h,018h,07Eh,000h,000h,000h,000h ; Hex #31
64 Db 000h,000h,07Ch,0C6h,006h,00Ch,018h,030h,060h,0C0h,0C6h,0FEh,000h,000h,000h,000h ; Hex #32
65 Db 000h,000h,07Ch,0C6h,006h,006h,03Ch,006h,006h,006h,0C6h,07Ch,000h,000h,000h,000h ; Hex #33
66 Db 000h,000h,00Ch,01Ch,03Ch,06Ch,0CCh,0FEh,00Ch,00Ch,00Ch,01Eh,000h,000h,000h,000h ; Hex #34
67 Db 000h,000h,0FEh,0C0h,0C0h,0C0h,0FCh,006h,006h,006h,0C6h,07Ch,000h,000h,000h,000h ; Hex #35
68 Db 000h,000h,038h,060h,0C0h,0C0h,0FCh,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #36
69 Db 000h,000h,0FEh,0C6h,006h,006h,00Ch,018h,030h,030h,030h,030h,000h,000h,000h,000h ; Hex #37
70 Db 000h,000h,07Ch,0C6h,0C6h,0C6h,07Ch,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #38
71 Db 000h,000h,07Ch,0C6h,0C6h,0C6h,07Eh,006h,006h,006h,00Ch,078h,000h,000h,000h,000h ; Hex #39
72 Db 000h,000h,000h,000h,018h,018h,000h,000h,000h,018h,018h,000h,000h,000h,000h,000h ; Hex #3A
73 Db 000h,000h,000h,000h,018h,018h,000h,000h,000h,018h,018h,030h,000h,000h,000h,000h ; Hex #3B
74 Db 000h,000h,000h,006h,00Ch,018h,030h,060h,030h,018h,00Ch,006h,000h,000h,000h,000h ; Hex #3C
75 Db 000h,000h,000h,000h,000h,07Eh,000h,000h,07Eh,000h,000h,000h,000h,000h,000h,000h ; Hex #3D
76 Db 000h,000h,000h,060h,030h,018h,00Ch,006h,00Ch,018h,030h,060h,000h,000h,000h,000h ; Hex #3E
77 Db 000h,000h,07Ch,0C6h,0C6h,00Ch,018h,018h,018h,000h,018h,018h,000h,000h,000h,000h ; Hex #3F
78 Db 000h,000h,000h,07Ch,0C6h,0C6h,0DEh,0DEh,0DEh,0DCh,0C0h,07Ch,000h,000h,000h,000h ; Hex #40
79 Db 000h,000h,010h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #41
80 Db 000h,000h,0FCh,066h,066h,066h,07Ch,066h,066h,066h,066h,0FCh,000h,000h,000h,000h ; Hex #42
81 Db 000h,000h,03Ch,066h,0C2h,0C0h,0C0h,0C0h,0C0h,0C2h,066h,03Ch,000h,000h,000h,000h ; Hex #43
82 Db 000h,000h,0F8h,06Ch,066h,066h,066h,066h,066h,066h,06Ch,0F8h,000h,000h,000h,000h ; Hex #44
83 Db 000h,000h,0FEh,066h,062h,068h,078h,068h,060h,062h,066h,0FEh,000h,000h,000h,000h ; Hex #45
84 Db 000h,000h,0FEh,066h,062h,068h,078h,068h,060h,060h,060h,0F0h,000h,000h,000h,000h ; Hex #46
85 Db 000h,000h,03Ch,066h,0C2h,0C0h,0C0h,0DEh,0C6h,0C6h,066h,03Ah,000h,000h,000h,000h ; Hex #47
86 Db 000h,000h,0C6h,0C6h,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #48
87 Db 000h,000h,03Ch,018h,018h,018h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #49
88 Db 000h,000h,01Eh,00Ch,00Ch,00Ch,00Ch,00Ch,0CCh,0CCh,0CCh,078h,000h,000h,000h,000h ; Hex #4A
89 Db 000h,000h,0E6h,066h,066h,06Ch,078h,078h,06Ch,066h,066h,0E6h,000h,000h,000h,000h ; Hex #4B
90 Db 000h,000h,0F0h,060h,060h,060h,060h,060h,060h,062h,066h,0FEh,000h,000h,000h,000h ; Hex #4C
91 Db 000h,000h,0C6h,0EEh,0FEh,0FEh,0D6h,0C6h,0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #4D
92 Db 000h,000h,0C6h,0E6h,0F6h,0FEh,0DEh,0CEh,0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #4E
93 Db 000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #4F
94 Db 000h,000h,0FCh,066h,066h,066h,07Ch,060h,060h,060h,060h,0F0h,000h,000h,000h,000h ; Hex #50
95 Db 000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0D6h,0DEh,07Ch,00Ch,00Eh,000h,000h ; Hex #51
96 Db 000h,000h,0FCh,066h,066h,066h,07Ch,06Ch,066h,066h,066h,0E6h,000h,000h,000h,000h ; Hex #52
97 Db 000h,000h,07Ch,0C6h,0C6h,060h,038h,00Ch,006h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #53
98 Db 000h,000h,07Eh,07Eh,05Ah,018h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #54
99 Db 000h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #55
100 Db 000h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,06Ch,038h,010h,000h,000h,000h,000h ; Hex #56
101 Db 000h,000h,0C6h,0C6h,0C6h,0C6h,0D6h,0D6h,0D6h,0FEh,0EEh,06Ch,000h,000h,000h,000h ; Hex #57
102 Db 000h,000h,0C6h,0C6h,06Ch,07Ch,038h,038h,07Ch,06Ch,0C6h,0C6h,000h,000h,000h,000h ; Hex #58
103 Db 000h,000h,066h,066h,066h,066h,03Ch,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #59
104 Db 000h,000h,0FEh,0C6h,086h,00Ch,018h,030h,060h,0C2h,0C6h,0FEh,000h,000h,000h,000h ; Hex #5A
105 Db 000h,000h,03Ch,030h,030h,030h,030h,030h,030h,030h,030h,03Ch,000h,000h,000h,000h ; Hex #5B
106 Db 000h,000h,000h,080h,0C0h,0E0h,070h,038h,01Ch,00Eh,006h,002h,000h,000h,000h,000h ; Hex #5C
107 Db 000h,000h,03Ch,00Ch,00Ch,00Ch,00Ch,00Ch,00Ch,00Ch,00Ch,03Ch,000h,000h,000h,000h ; Hex #5D
108 Db 010h,038h,06Ch,0C6h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #5E
109 Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,0FFh,000h,000h ; Hex #5F
110 Db 000h,030h,018h,00Ch,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #60
111 Db 000h,000h,000h,000h,000h,078h,00Ch,07Ch,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #61
112 Db 000h,000h,0E0h,060h,060h,078h,06Ch,066h,066h,066h,066h,07Ch,000h,000h,000h,000h ; Hex #62
113 Db 000h,000h,000h,000h,000h,07Ch,0C6h,0C0h,0C0h,0C0h,0C6h,07Ch,000h,000h,000h,000h ; Hex #63
114 Db 000h,000h,01Ch,00Ch,00Ch,03Ch,06Ch,0CCh,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #64
115 Db 000h,000h,000h,000h,000h,07Ch,0C6h,0FEh,0C0h,0C0h,0C6h,07Ch,000h,000h,000h,000h ; Hex #65
116 Db 000h,000h,01Ch,036h,032h,030h,078h,030h,030h,030h,030h,078h,000h,000h,000h,000h ; Hex #66
117 Db 000h,000h,000h,000h,000h,076h,0CCh,0CCh,0CCh,0CCh,0CCh,07Ch,00Ch,0CCh,078h,000h ; Hex #67
118 Db 000h,000h,0E0h,060h,060h,06Ch,076h,066h,066h,066h,066h,0E6h,000h,000h,000h,000h ; Hex #68
119 Db 000h,000h,018h,018h,000h,038h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #69
120 Db 000h,000h,006h,006h,000h,00Eh,006h,006h,006h,006h,006h,006h,066h,066h,03Ch,000h ; Hex #6A
121 Db 000h,000h,0E0h,060h,060h,066h,06Ch,078h,078h,06Ch,066h,0E6h,000h,000h,000h,000h ; Hex #6B
122 Db 000h,000h,038h,018h,018h,018h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #6C
123 Db 000h,000h,000h,000h,000h,0ECh,0FEh,0D6h,0D6h,0D6h,0D6h,0C6h,000h,000h,000h,000h ; Hex #6D
124 Db 000h,000h,000h,000h,000h,0DCh,066h,066h,066h,066h,066h,066h,000h,000h,000h,000h ; Hex #6E
125 Db 000h,000h,000h,000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #6F
126 Db 000h,000h,000h,000h,000h,0DCh,066h,066h,066h,066h,066h,07Ch,060h,060h,0F0h,000h ; Hex #70
127 Db 000h,000h,000h,000h,000h,076h,0CCh,0CCh,0CCh,0CCh,0CCh,07Ch,00Ch,00Ch,01Eh,000h ; Hex #71
128 Db 000h,000h,000h,000h,000h,0DCh,076h,066h,060h,060h,060h,0F0h,000h,000h,000h,000h ; Hex #72
129 Db 000h,000h,000h,000h,000h,07Ch,0C6h,060h,038h,00Ch,0C6h,07Ch,000h,000h,000h,000h ; Hex #73
130 Db 000h,000h,010h,030h,030h,0FCh,030h,030h,030h,030h,036h,01Ch,000h,000h,000h,000h ; Hex #74
131 Db 000h,000h,000h,000h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #75
132 Db 000h,000h,000h,000h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,06Ch,038h,000h,000h,000h,000h ; Hex #76
133 Db 000h,000h,000h,000h,000h,0C6h,0C6h,0D6h,0D6h,0D6h,0FEh,06Ch,000h,000h,000h,000h ; Hex #77
134 Db 000h,000h,000h,000h,000h,0C6h,06Ch,038h,038h,038h,06Ch,0C6h,000h,000h,000h,000h ; Hex #78
135 Db 000h,000h,000h,000h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Eh,006h,00Ch,0F8h,000h ; Hex #79
136 Db 000h,000h,000h,000h,000h,0FEh,0CCh,018h,030h,060h,0C6h,0FEh,000h,000h,000h,000h ; Hex #7A
137 Db 000h,000h,00Eh,018h,018h,018h,070h,018h,018h,018h,018h,00Eh,000h,000h,000h,000h ; Hex #7B
138 Db 000h,000h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,000h,000h,000h,000h ; Hex #7C
139 Db 000h,000h,070h,018h,018h,018h,00Eh,018h,018h,018h,018h,070h,000h,000h,000h,000h ; Hex #7D
140 Db 000h,076h,0DCh,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #7E
141 Db 000h,000h,000h,000h,010h,038h,06Ch,0C6h,0C6h,0C6h,0FEh,000h,000h,000h,000h,000h ; Hex #7F
142 Db 000h,000h,03Ch,066h,0C2h,0C0h,0C0h,0C0h,0C0h,0C2h,066h,03Ch,018h,070h,000h,000h ; Hex #80
143 Db 000h,000h,0CCh,000h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #81
144 Db 000h,00Ch,018h,030h,000h,07Ch,0C6h,0FEh,0C0h,0C0h,0C6h,07Ch,000h,000h,000h,000h ; Hex #82
145 Db 000h,010h,038h,06Ch,000h,078h,00Ch,07Ch,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #83
146 Db 000h,000h,076h,0DCh,000h,078h,00Ch,07Ch,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #84
147 Db 000h,060h,030h,018h,000h,078h,00Ch,07Ch,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #85
148 Db 060h,0C0h,010h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #86
149 Db 000h,000h,000h,000h,000h,07Ch,0C6h,0C0h,0C0h,0C0h,0C6h,07Ch,018h,070h,000h,000h ; Hex #87
150 Db 000h,010h,038h,06Ch,000h,07Ch,0C6h,0FEh,0C0h,0C0h,0C6h,07Ch,000h,000h,000h,000h ; Hex #88
151 Db 038h,06Ch,000h,0FEh,066h,062h,068h,078h,068h,062h,066h,0FEh,000h,000h,000h,000h ; Hex #89
152 Db 000h,060h,030h,018h,000h,07Ch,0C6h,0FEh,0C0h,0C0h,0C6h,07Ch,000h,000h,000h,000h ; Hex #8A
153 Db 00Ch,018h,000h,03Ch,018h,018h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #8B
154 Db 038h,06Ch,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #8C
155 Db 000h,060h,030h,018h,000h,038h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #8D
156 Db 076h,0DCh,000h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #8E
157 Db 038h,06Ch,0C6h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #8F
158 Db 00Ch,018h,000h,0FEh,066h,062h,068h,078h,068h,062h,066h,0FEh,000h,000h,000h,000h ; Hex #90
159 Db 00Ch,006h,010h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #91
160 Db 030h,018h,000h,0FEh,066h,062h,068h,078h,068h,062h,066h,0FEh,000h,000h,000h,000h ; Hex #92
161 Db 000h,010h,038h,06Ch,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #93
162 Db 000h,000h,076h,0DCh,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #94
163 Db 000h,060h,030h,018h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #95
164 Db 018h,030h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #96
165 Db 000h,060h,030h,018h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #97
166 Db 030h,018h,000h,03Ch,018h,018h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #98
167 Db 076h,0DCh,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #99
168 Db 000h,0C6h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #9A
169 Db 000h,018h,018h,07Ch,0C6h,0C0h,0C0h,0C0h,0C6h,07Ch,018h,018h,000h,000h,000h,000h ; Hex #9B
170 Db 000h,038h,06Ch,064h,060h,0F0h,060h,060h,060h,060h,0E6h,0FCh,000h,000h,000h,000h ; Hex #9C
171 Db 030h,018h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #9D
172 Db 000h,0F8h,0CCh,0CCh,0F8h,0C4h,0CCh,0DEh,0CCh,0CCh,0CCh,0C6h,000h,000h,000h,000h ; Hex #9E
173 Db 018h,030h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #9F
174 Db 000h,018h,030h,060h,000h,078h,00Ch,07Ch,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #A0
175 Db 000h,00Ch,018h,030h,000h,038h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #A1
176 Db 000h,018h,030h,060h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #A2
177 Db 000h,018h,030h,060h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #A3
178 Db 000h,000h,076h,0DCh,000h,0DCh,066h,066h,066h,066h,066h,066h,000h,000h,000h,000h ; Hex #A4
179 Db 076h,0DCh,000h,0C6h,0E6h,0F6h,0FEh,0DEh,0CEh,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #A5
180 Db 000h,000h,03Ch,06Ch,06Ch,03Eh,000h,07Eh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #A6
181 Db 000h,000h,038h,06Ch,06Ch,038h,000h,07Ch,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #A7
182 Db 000h,000h,030h,030h,000h,030h,030h,060h,0C0h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #A8
183 Db 030h,018h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #A9
184 Db 000h,000h,000h,000h,000h,000h,0FEh,006h,006h,006h,006h,000h,000h,000h,000h,000h ; Hex #AA
185 Db 000h,060h,0E0h,062h,066h,06Ch,018h,030h,060h,0DCh,086h,00Ch,018h,03Eh,000h,000h ; Hex #AB
186 Db 000h,060h,0E0h,062h,066h,06Ch,018h,030h,066h,0CEh,09Ah,03Fh,006h,006h,000h,000h ; Hex #AC
187 Db 000h,000h,018h,018h,000h,018h,018h,018h,03Ch,03Ch,03Ch,018h,000h,000h,000h,000h ; Hex #AD
188 Db 000h,000h,000h,000h,000h,036h,06Ch,0D8h,06Ch,036h,000h,000h,000h,000h,000h,000h ; Hex #AE
189 Db 000h,000h,000h,000h,000h,0D8h,06Ch,036h,06Ch,0D8h,000h,000h,000h,000h,000h,000h ; Hex #AF
190 Db 011h,044h,011h,044h,011h,044h,011h,044h,011h,044h,011h,044h,011h,044h,011h,044h ; Hex #B0
191 Db 055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh ; Hex #B1
192 Db 0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h ; Hex #B2
193 Db 018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #B3
194 Db 018h,018h,018h,018h,018h,018h,018h,0F8h,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #B4
195 Db 018h,018h,018h,018h,018h,0F8h,018h,0F8h,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #B5
196 Db 036h,036h,036h,036h,036h,036h,036h,0F6h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #B6
197 Db 000h,000h,000h,000h,000h,000h,000h,0FEh,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #B7
198 Db 000h,000h,000h,000h,000h,0F8h,018h,0F8h,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #B8
199 Db 036h,036h,036h,036h,036h,0F6h,006h,0F6h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #B9
200 Db 036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #BA
201 Db 000h,000h,000h,000h,000h,0FEh,006h,0F6h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #BB
202 Db 036h,036h,036h,036h,036h,0F6h,006h,0FEh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #BC
203 Db 036h,036h,036h,036h,036h,036h,036h,0FEh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #BD
204 Db 018h,018h,018h,018h,018h,0F8h,018h,0F8h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #BE
205 Db 000h,000h,000h,000h,000h,000h,000h,0F8h,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #BF
206 Db 018h,018h,018h,018h,018h,018h,018h,01Fh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #C0
207 Db 018h,018h,018h,018h,018h,018h,018h,0FFh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #C1
208 Db 000h,000h,000h,000h,000h,000h,000h,0FFh,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #C2
209 Db 018h,018h,018h,018h,018h,018h,018h,01Fh,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #C3
210 Db 000h,000h,000h,000h,000h,000h,000h,0FFh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #C4
211 Db 018h,018h,018h,018h,018h,018h,018h,0FFh,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #C5
212 Db 018h,018h,018h,018h,018h,01Fh,018h,01Fh,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #C6
213 Db 036h,036h,036h,036h,036h,036h,036h,037h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #C7
214 Db 036h,036h,036h,036h,036h,037h,030h,03Fh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #C8
215 Db 000h,000h,000h,000h,000h,03Fh,030h,037h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #C9
216 Db 036h,036h,036h,036h,036h,0F7h,000h,0FFh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #CA
217 Db 000h,000h,000h,000h,000h,0FFh,000h,0F7h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #CB
218 Db 036h,036h,036h,036h,036h,037h,030h,037h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #CC
219 Db 000h,000h,000h,000h,000h,0FFh,000h,0FFh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #CD
220 Db 036h,036h,036h,036h,036h,0F7h,000h,0F7h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #CE
221 Db 018h,018h,018h,018h,018h,0FFh,000h,0FFh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #CF
222 Db 036h,036h,036h,036h,036h,036h,036h,0FFh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #D0
223 Db 000h,000h,000h,000h,000h,0FFh,000h,0FFh,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #D1
224 Db 000h,000h,000h,000h,000h,000h,000h,0FFh,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #D2
225 Db 036h,036h,036h,036h,036h,036h,036h,03Fh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #D3
226 Db 018h,018h,018h,018h,018h,01Fh,018h,01Fh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #D4
227 Db 000h,000h,000h,000h,000h,01Fh,018h,01Fh,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #D5
228 Db 000h,000h,000h,000h,000h,000h,000h,03Fh,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #D6
229 Db 036h,036h,036h,036h,036h,036h,036h,0FFh,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #D7
230 Db 018h,018h,018h,018h,018h,0FFh,018h,0FFh,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #D8
231 Db 018h,018h,018h,018h,018h,018h,018h,0F8h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #D9
232 Db 000h,000h,000h,000h,000h,000h,000h,01Fh,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #DA
233 Db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh ; Hex #DB
234 Db 000h,000h,000h,000h,000h,000h,000h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh ; Hex #DC
235 Db 0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h ; Hex #DD
236 Db 00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh ; Hex #DE
237 Db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #DF
238 Db 000h,000h,000h,000h,000h,076h,0DCh,0D8h,0D8h,0D8h,0DCh,076h,000h,000h,000h,000h ; Hex #E0
239 Db 000h,000h,078h,0CCh,0CCh,0CCh,0D8h,0CCh,0C6h,0C6h,0C6h,0CCh,000h,000h,000h,000h ; Hex #E1
240 Db 000h,000h,0FEh,0C6h,0C6h,0C0h,0C0h,0C0h,0C0h,0C0h,0C0h,0C0h,000h,000h,000h,000h ; Hex #E2
241 Db 000h,000h,000h,000h,000h,0FEh,06Ch,06Ch,06Ch,06Ch,06Ch,06Ch,000h,000h,000h,000h ; Hex #E3
242 Db 000h,000h,0FEh,0C6h,060h,030h,018h,018h,030h,060h,0C6h,0FEh,000h,000h,000h,000h ; Hex #E4
243 Db 000h,000h,000h,000h,000h,07Eh,0D8h,0D8h,0D8h,0D8h,0D8h,070h,000h,000h,000h,000h ; Hex #E5
244 Db 000h,000h,000h,000h,000h,066h,066h,066h,066h,066h,066h,07Ch,060h,060h,0C0h,000h ; Hex #E6
245 Db 000h,000h,000h,000h,076h,0DCh,018h,018h,018h,018h,018h,018h,000h,000h,000h,000h ; Hex #E7
246 Db 000h,000h,07Eh,018h,03Ch,066h,066h,066h,066h,03Ch,018h,07Eh,000h,000h,000h,000h ; Hex #E8
247 Db 000h,000h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,06Ch,038h,000h,000h,000h,000h ; Hex #E9
248 Db 000h,000h,038h,06Ch,0C6h,0C6h,0C6h,06Ch,06Ch,06Ch,06Ch,0EEh,000h,000h,000h,000h ; Hex #EA
249 Db 000h,000h,01Eh,030h,018h,00Ch,03Eh,066h,066h,066h,066h,03Ch,000h,000h,000h,000h ; Hex #EB
250 Db 000h,000h,000h,000h,000h,07Eh,0DBh,0DBh,0DBh,07Eh,000h,000h,000h,000h,000h,000h ; Hex #EC
251 Db 000h,000h,000h,003h,006h,07Eh,0DBh,0DBh,0F3h,07Eh,060h,0C0h,000h,000h,000h,000h ; Hex #ED
252 Db 000h,000h,01Ch,030h,060h,060h,07Ch,060h,060h,060h,030h,01Ch,000h,000h,000h,000h ; Hex #EE
253 Db 000h,000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #EF
254 Db 000h,000h,000h,000h,0FEh,000h,000h,0FEh,000h,000h,0FEh,000h,000h,000h,000h,000h ; Hex #F0
255 Db 000h,000h,000h,000h,018h,018h,07Eh,018h,018h,000h,000h,07Eh,000h,000h,000h,000h ; Hex #F1
256 Db 000h,000h,000h,030h,018h,00Ch,006h,00Ch,018h,030h,000h,07Eh,000h,000h,000h,000h ; Hex #F2
257 Db 000h,000h,000h,00Ch,018h,030h,060h,030h,018h,00Ch,000h,07Eh,000h,000h,000h,000h ; Hex #F3
258 Db 000h,000h,00Eh,01Bh,01Bh,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #F4
259 Db 018h,018h,018h,018h,018h,018h,018h,018h,018h,0D8h,0D8h,0D8h,070h,000h,000h,000h ; Hex #F5
260 Db 000h,000h,000h,000h,000h,018h,000h,07Eh,000h,018h,000h,000h,000h,000h,000h,000h ; Hex #F6
261 Db 000h,000h,000h,000h,000h,076h,0DCh,000h,076h,0DCh,000h,000h,000h,000h,000h,000h ; Hex #F7
262 Db 000h,038h,06Ch,06Ch,038h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #F8
263 Db 000h,000h,000h,000h,000h,000h,000h,018h,018h,000h,000h,000h,000h,000h,000h,000h ; Hex #F9
264 Db 000h,000h,000h,000h,000h,000h,000h,018h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #FA
265 Db 000h,00Fh,00Ch,00Ch,00Ch,00Ch,00Ch,0ECh,06Ch,06Ch,03Ch,01Ch,000h,000h,000h,000h ; Hex #FB
266 Db 000h,06Ch,036h,036h,036h,036h,036h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #FC
267 Db 000h,03Ch,066h,00Ch,018h,032h,07Eh,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #FD
268 Db 000h,000h,000h,000h,07Eh,07Eh,07Eh,07Eh,07Eh,07Eh,07Eh,000h,000h,000h,000h,000h ; Hex #FE
269 Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #FF
270
diff --git a/v4.0/src/DEV/DISPLAY/EGA/860-8X8.ASM b/v4.0/src/DEV/DISPLAY/EGA/860-8X8.ASM
new file mode 100644
index 0000000..c6e1b72
--- /dev/null
+++ b/v4.0/src/DEV/DISPLAY/EGA/860-8X8.ASM
@@ -0,0 +1,270 @@
1;***************************************************
2; CHARACTER FONT FILE
3; Source Assembler File
4;
5; CODE PAGE: 860
6; FONT RESOLUTION: 8 x 8
7;
8; DATE CREATED:05-28-1987
9;
10;
11; Output file from: MULTIFON, Version 1A
12;
13;***************************************************
14 Db 000h,000h,000h,000h,000h,000h,000h,000h ; Hex #0
15 Db 07Eh,081h,0A5h,081h,0BDh,099h,081h,07Eh ; Hex #1
16 Db 07Eh,0FFh,0DBh,0FFh,0C3h,0E7h,0FFh,07Eh ; Hex #2
17 Db 06Ch,0FEh,0FEh,0FEh,07Ch,038h,010h,000h ; Hex #3
18 Db 010h,038h,07Ch,0FEh,07Ch,038h,010h,000h ; Hex #4
19 Db 038h,07Ch,038h,0FEh,0FEh,0D6h,010h,038h ; Hex #5
20 Db 010h,038h,07Ch,0FEh,0FEh,07Ch,010h,038h ; Hex #6
21 Db 000h,000h,018h,03Ch,03Ch,018h,000h,000h ; Hex #7
22 Db 0FFh,0FFh,0E7h,0C3h,0C3h,0E7h,0FFh,0FFh ; Hex #8
23 Db 000h,03Ch,066h,042h,042h,066h,03Ch,000h ; Hex #9
24 Db 0FFh,0C3h,099h,0BDh,0BDh,099h,0C3h,0FFh ; Hex #A
25 Db 00Fh,007h,00Fh,07Dh,0CCh,0CCh,0CCh,078h ; Hex #B
26 Db 03Ch,066h,066h,066h,03Ch,018h,07Eh,018h ; Hex #C
27 Db 03Fh,033h,03Fh,030h,030h,070h,0F0h,0E0h ; Hex #D
28 Db 07Fh,063h,07Fh,063h,063h,067h,0E6h,0C0h ; Hex #E
29 Db 018h,0DBh,03Ch,0E7h,0E7h,03Ch,0DBh,018h ; Hex #F
30 Db 080h,0E0h,0F8h,0FEh,0F8h,0E0h,080h,000h ; Hex #10
31 Db 002h,00Eh,03Eh,0FEh,03Eh,00Eh,002h,000h ; Hex #11
32 Db 018h,03Ch,07Eh,018h,018h,07Eh,03Ch,018h ; Hex #12
33 Db 066h,066h,066h,066h,066h,000h,066h,000h ; Hex #13
34 Db 07Fh,0DBh,0DBh,07Bh,01Bh,01Bh,01Bh,000h ; Hex #14
35 Db 03Eh,061h,03Ch,066h,066h,03Ch,086h,07Ch ; Hex #15
36 Db 000h,000h,000h,000h,07Eh,07Eh,07Eh,000h ; Hex #16
37 Db 018h,03Ch,07Eh,018h,07Eh,03Ch,018h,0FFh ; Hex #17
38 Db 018h,03Ch,07Eh,018h,018h,018h,018h,000h ; Hex #18
39 Db 018h,018h,018h,018h,07Eh,03Ch,018h,000h ; Hex #19
40 Db 000h,018h,00Ch,0FEh,00Ch,018h,000h,000h ; Hex #1A
41 Db 000h,030h,060h,0FEh,060h,030h,000h,000h ; Hex #1B
42 Db 000h,000h,0C0h,0C0h,0C0h,0FEh,000h,000h ; Hex #1C
43 Db 000h,024h,066h,0FFh,066h,024h,000h,000h ; Hex #1D
44 Db 000h,018h,03Ch,07Eh,0FFh,0FFh,000h,000h ; Hex #1E
45 Db 000h,0FFh,0FFh,07Eh,03Ch,018h,000h,000h ; Hex #1F
46 Db 000h,000h,000h,000h,000h,000h,000h,000h ; Hex #20
47 Db 018h,03Ch,03Ch,018h,018h,000h,018h,000h ; Hex #21
48 Db 066h,066h,024h,000h,000h,000h,000h,000h ; Hex #22
49 Db 06Ch,06Ch,0FEh,06Ch,0FEh,06Ch,06Ch,000h ; Hex #23
50 Db 018h,03Eh,060h,03Ch,006h,07Ch,018h,000h ; Hex #24
51 Db 000h,0C6h,0CCh,018h,030h,066h,0C6h,000h ; Hex #25
52 Db 038h,06Ch,038h,076h,0DCh,0CCh,076h,000h ; Hex #26
53 Db 018h,018h,030h,000h,000h,000h,000h,000h ; Hex #27
54 Db 00Ch,018h,030h,030h,030h,018h,00Ch,000h ; Hex #28
55 Db 030h,018h,00Ch,00Ch,00Ch,018h,030h,000h ; Hex #29
56 Db 000h,066h,03Ch,0FFh,03Ch,066h,000h,000h ; Hex #2A
57 Db 000h,018h,018h,07Eh,018h,018h,000h,000h ; Hex #2B
58 Db 000h,000h,000h,000h,000h,018h,018h,030h ; Hex #2C
59 Db 000h,000h,000h,07Eh,000h,000h,000h,000h ; Hex #2D
60 Db 000h,000h,000h,000h,000h,018h,018h,000h ; Hex #2E
61 Db 006h,00Ch,018h,030h,060h,0C0h,080h,000h ; Hex #2F
62 Db 038h,06Ch,0C6h,0D6h,0C6h,06Ch,038h,000h ; Hex #30
63 Db 018h,038h,018h,018h,018h,018h,07Eh,000h ; Hex #31
64 Db 07Ch,0C6h,006h,01Ch,030h,066h,0FEh,000h ; Hex #32
65 Db 07Ch,0C6h,006h,03Ch,006h,0C6h,07Ch,000h ; Hex #33
66 Db 01Ch,03Ch,06Ch,0CCh,0FEh,00Ch,01Eh,000h ; Hex #34
67 Db 0FEh,0C0h,0C0h,0FCh,006h,0C6h,07Ch,000h ; Hex #35
68 Db 038h,060h,0C0h,0FCh,0C6h,0C6h,07Ch,000h ; Hex #36
69 Db 0FEh,0C6h,00Ch,018h,030h,030h,030h,000h ; Hex #37
70 Db 07Ch,0C6h,0C6h,07Ch,0C6h,0C6h,07Ch,000h ; Hex #38
71 Db 07Ch,0C6h,0C6h,07Eh,006h,00Ch,078h,000h ; Hex #39
72 Db 000h,018h,018h,000h,000h,018h,018h,000h ; Hex #3A
73 Db 000h,018h,018h,000h,000h,018h,018h,030h ; Hex #3B
74 Db 006h,00Ch,018h,030h,018h,00Ch,006h,000h ; Hex #3C
75 Db 000h,000h,07Eh,000h,000h,07Eh,000h,000h ; Hex #3D
76 Db 060h,030h,018h,00Ch,018h,030h,060h,000h ; Hex #3E
77 Db 07Ch,0C6h,00Ch,018h,018h,000h,018h,000h ; Hex #3F
78 Db 07Ch,0C6h,0DEh,0DEh,0DEh,0C0h,078h,000h ; Hex #40
79 Db 038h,06Ch,0C6h,0FEh,0C6h,0C6h,0C6h,000h ; Hex #41
80 Db 0FCh,066h,066h,07Ch,066h,066h,0FCh,000h ; Hex #42
81 Db 03Ch,066h,0C0h,0C0h,0C0h,066h,03Ch,000h ; Hex #43
82 Db 0F8h,06Ch,066h,066h,066h,06Ch,0F8h,000h ; Hex #44
83 Db 0FEh,062h,068h,078h,068h,062h,0FEh,000h ; Hex #45
84 Db 0FEh,062h,068h,078h,068h,060h,0F0h,000h ; Hex #46
85 Db 03Ch,066h,0C0h,0C0h,0CEh,066h,03Ah,000h ; Hex #47
86 Db 0C6h,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,000h ; Hex #48
87 Db 03Ch,018h,018h,018h,018h,018h,03Ch,000h ; Hex #49
88 Db 01Eh,00Ch,00Ch,00Ch,0CCh,0CCh,078h,000h ; Hex #4A
89 Db 0E6h,066h,06Ch,078h,06Ch,066h,0E6h,000h ; Hex #4B
90 Db 0F0h,060h,060h,060h,062h,066h,0FEh,000h ; Hex #4C
91 Db 0C6h,0EEh,0FEh,0FEh,0D6h,0C6h,0C6h,000h ; Hex #4D
92 Db 0C6h,0E6h,0F6h,0DEh,0CEh,0C6h,0C6h,000h ; Hex #4E
93 Db 07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h ; Hex #4F
94 Db 0FCh,066h,066h,07Ch,060h,060h,0F0h,000h ; Hex #50
95 Db 07Ch,0C6h,0C6h,0C6h,0C6h,0CEh,07Ch,00Eh ; Hex #51
96 Db 0FCh,066h,066h,07Ch,06Ch,066h,0E6h,000h ; Hex #52
97 Db 03Ch,066h,030h,018h,00Ch,066h,03Ch,000h ; Hex #53
98 Db 07Eh,07Eh,05Ah,018h,018h,018h,03Ch,000h ; Hex #54
99 Db 0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h ; Hex #55
100 Db 0C6h,0C6h,0C6h,0C6h,0C6h,06Ch,038h,000h ; Hex #56
101 Db 0C6h,0C6h,0C6h,0D6h,0D6h,0FEh,06Ch,000h ; Hex #57
102 Db 0C6h,0C6h,06Ch,038h,06Ch,0C6h,0C6h,000h ; Hex #58
103 Db 066h,066h,066h,03Ch,018h,018h,03Ch,000h ; Hex #59
104 Db 0FEh,0C6h,08Ch,018h,032h,066h,0FEh,000h ; Hex #5A
105 Db 03Ch,030h,030h,030h,030h,030h,03Ch,000h ; Hex #5B
106 Db 0C0h,060h,030h,018h,00Ch,006h,002h,000h ; Hex #5C
107 Db 03Ch,00Ch,00Ch,00Ch,00Ch,00Ch,03Ch,000h ; Hex #5D
108 Db 010h,038h,06Ch,0C6h,000h,000h,000h,000h ; Hex #5E
109 Db 000h,000h,000h,000h,000h,000h,000h,0FFh ; Hex #5F
110 Db 030h,018h,00Ch,000h,000h,000h,000h,000h ; Hex #60
111 Db 000h,000h,078h,00Ch,07Ch,0CCh,076h,000h ; Hex #61
112 Db 0E0h,060h,07Ch,066h,066h,066h,0DCh,000h ; Hex #62
113 Db 000h,000h,07Ch,0C6h,0C0h,0C6h,07Ch,000h ; Hex #63
114 Db 01Ch,00Ch,07Ch,0CCh,0CCh,0CCh,076h,000h ; Hex #64
115 Db 000h,000h,07Ch,0C6h,0FEh,0C0h,07Ch,000h ; Hex #65
116 Db 03Ch,066h,060h,0F8h,060h,060h,0F0h,000h ; Hex #66
117 Db 000h,000h,076h,0CCh,0CCh,07Ch,00Ch,0F8h ; Hex #67
118 Db 0E0h,060h,06Ch,076h,066h,066h,0E6h,000h ; Hex #68
119 Db 018h,000h,038h,018h,018h,018h,03Ch,000h ; Hex #69
120 Db 006h,000h,006h,006h,006h,066h,066h,03Ch ; Hex #6A
121 Db 0E0h,060h,066h,06Ch,078h,06Ch,0E6h,000h ; Hex #6B
122 Db 038h,018h,018h,018h,018h,018h,03Ch,000h ; Hex #6C
123 Db 000h,000h,0ECh,0FEh,0D6h,0D6h,0D6h,000h ; Hex #6D
124 Db 000h,000h,0DCh,066h,066h,066h,066h,000h ; Hex #6E
125 Db 000h,000h,07Ch,0C6h,0C6h,0C6h,07Ch,000h ; Hex #6F
126 Db 000h,000h,0DCh,066h,066h,07Ch,060h,0F0h ; Hex #70
127 Db 000h,000h,076h,0CCh,0CCh,07Ch,00Ch,01Eh ; Hex #71
128 Db 000h,000h,0DCh,076h,060h,060h,0F0h,000h ; Hex #72
129 Db 000h,000h,07Eh,0C0h,07Ch,006h,0FCh,000h ; Hex #73
130 Db 030h,030h,0FCh,030h,030h,036h,01Ch,000h ; Hex #74
131 Db 000h,000h,0CCh,0CCh,0CCh,0CCh,076h,000h ; Hex #75
132 Db 000h,000h,0C6h,0C6h,0C6h,06Ch,038h,000h ; Hex #76
133 Db 000h,000h,0C6h,0D6h,0D6h,0FEh,06Ch,000h ; Hex #77
134 Db 000h,000h,0C6h,06Ch,038h,06Ch,0C6h,000h ; Hex #78
135 Db 000h,000h,0C6h,0C6h,0C6h,07Eh,006h,0FCh ; Hex #79
136 Db 000h,000h,07Eh,04Ch,018h,032h,07Eh,000h ; Hex #7A
137 Db 00Eh,018h,018h,070h,018h,018h,00Eh,000h ; Hex #7B
138 Db 018h,018h,018h,018h,018h,018h,018h,000h ; Hex #7C
139 Db 070h,018h,018h,00Eh,018h,018h,070h,000h ; Hex #7D
140 Db 076h,0DCh,000h,000h,000h,000h,000h,000h ; Hex #7E
141 Db 000h,010h,038h,06Ch,0C6h,0C6h,0FEh,000h ; Hex #7F
142 Db 07Ch,0C6h,0C0h,0C0h,0C6h,07Ch,00Ch,078h ; Hex #80
143 Db 0CCh,000h,0CCh,0CCh,0CCh,0CCh,076h,000h ; Hex #81
144 Db 00Ch,018h,07Ch,0C6h,0FEh,0C0h,07Ch,000h ; Hex #82
145 Db 07Ch,082h,078h,00Ch,07Ch,0CCh,076h,000h ; Hex #83
146 Db 076h,0DCh,078h,00Ch,07Ch,0CCh,076h,000h ; Hex #84
147 Db 030h,018h,078h,00Ch,07Ch,0CCh,076h,000h ; Hex #85
148 Db 030h,060h,038h,06Ch,0C6h,0FEh,0C6h,000h ; Hex #86
149 Db 000h,000h,07Eh,0C0h,0C0h,07Eh,00Ch,038h ; Hex #87
150 Db 07Ch,082h,07Ch,0C6h,0FEh,0C0h,07Ch,000h ; Hex #88
151 Db 07Ch,082h,0FEh,0C0h,0F8h,0C0h,0FEh,000h ; Hex #89
152 Db 030h,018h,07Ch,0C6h,0FEh,0C0h,07Ch,000h ; Hex #8A
153 Db 00Ch,018h,03Ch,018h,018h,018h,03Ch,000h ; Hex #8B
154 Db 07Ch,082h,038h,06Ch,0C6h,06Ch,038h,000h ; Hex #8C
155 Db 030h,018h,000h,038h,018h,018h,03Ch,000h ; Hex #8D
156 Db 076h,0DCh,038h,06Ch,0C6h,0FEh,0C6h,000h ; Hex #8E
157 Db 07Ch,082h,038h,06Ch,0C6h,0FEh,0C6h,000h ; Hex #8F
158 Db 018h,030h,0FEh,0C0h,0F8h,0C0h,0FEh,000h ; Hex #90
159 Db 060h,030h,038h,06Ch,0C6h,0FEh,0C6h,000h ; Hex #91
160 Db 030h,018h,0FEh,0C0h,0F8h,0C0h,0FEh,000h ; Hex #92
161 Db 07Ch,082h,07Ch,0C6h,0C6h,0C6h,07Ch,000h ; Hex #93
162 Db 076h,0DCh,07Ch,0C6h,0C6h,0C6h,07Ch,000h ; Hex #94
163 Db 030h,018h,07Ch,0C6h,0C6h,0C6h,07Ch,000h ; Hex #95
164 Db 00Ch,018h,0C6h,0C6h,0C6h,0C6h,07Ch,000h ; Hex #96
165 Db 060h,030h,0CCh,0CCh,0CCh,0CCh,076h,000h ; Hex #97
166 Db 030h,018h,03Ch,018h,018h,018h,03Ch,000h ; Hex #98
167 Db 076h,0DCh,038h,06Ch,0C6h,06Ch,038h,000h ; Hex #99
168 Db 0C6h,000h,0C6h,0C6h,0C6h,0C6h,07Ch,000h ; Hex #9A
169 Db 018h,018h,07Eh,0C0h,0C0h,07Eh,018h,018h ; Hex #9B
170 Db 038h,06Ch,064h,0F0h,060h,066h,0FCh,000h ; Hex #9C
171 Db 030h,018h,0C6h,0C6h,0C6h,0C6h,07Ch,000h ; Hex #9D
172 Db 0F8h,0CCh,0CCh,0FAh,0C6h,0CFh,0C6h,0C7h ; Hex #9E
173 Db 00Ch,018h,038h,06Ch,0C6h,06Ch,038h,000h ; Hex #9F
174 Db 018h,030h,078h,00Ch,07Ch,0CCh,076h,000h ; Hex #A0
175 Db 00Ch,018h,000h,038h,018h,018h,03Ch,000h ; Hex #A1
176 Db 00Ch,018h,07Ch,0C6h,0C6h,0C6h,07Ch,000h ; Hex #A2
177 Db 018h,030h,0CCh,0CCh,0CCh,0CCh,076h,000h ; Hex #A3
178 Db 076h,0DCh,000h,0DCh,066h,066h,066h,000h ; Hex #A4
179 Db 076h,0DCh,000h,0E6h,0F6h,0DEh,0CEh,000h ; Hex #A5
180 Db 03Ch,06Ch,06Ch,03Eh,000h,07Eh,000h,000h ; Hex #A6
181 Db 038h,06Ch,06Ch,038h,000h,07Ch,000h,000h ; Hex #A7
182 Db 018h,000h,018h,018h,030h,063h,03Eh,000h ; Hex #A8
183 Db 030h,018h,038h,06Ch,0C6h,06Ch,038h,000h ; Hex #A9
184 Db 000h,000h,000h,0FEh,006h,006h,000h,000h ; Hex #AA
185 Db 063h,0E6h,06Ch,07Eh,033h,066h,0CCh,00Fh ; Hex #AB
186 Db 063h,0E6h,06Ch,07Ah,036h,06Ah,0DFh,006h ; Hex #AC
187 Db 018h,000h,018h,018h,03Ch,03Ch,018h,000h ; Hex #AD
188 Db 000h,033h,066h,0CCh,066h,033h,000h,000h ; Hex #AE
189 Db 000h,0CCh,066h,033h,066h,0CCh,000h,000h ; Hex #AF
190 Db 022h,088h,022h,088h,022h,088h,022h,088h ; Hex #B0
191 Db 055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh ; Hex #B1
192 Db 077h,0DDh,077h,0DDh,077h,0DDh,077h,0DDh ; Hex #B2
193 Db 018h,018h,018h,018h,018h,018h,018h,018h ; Hex #B3
194 Db 018h,018h,018h,018h,0F8h,018h,018h,018h ; Hex #B4
195 Db 018h,018h,0F8h,018h,0F8h,018h,018h,018h ; Hex #B5
196 Db 036h,036h,036h,036h,0F6h,036h,036h,036h ; Hex #B6
197 Db 000h,000h,000h,000h,0FEh,036h,036h,036h ; Hex #B7
198 Db 000h,000h,0F8h,018h,0F8h,018h,018h,018h ; Hex #B8
199 Db 036h,036h,0F6h,006h,0F6h,036h,036h,036h ; Hex #B9
200 Db 036h,036h,036h,036h,036h,036h,036h,036h ; Hex #BA
201 Db 000h,000h,0FEh,006h,0F6h,036h,036h,036h ; Hex #BB
202 Db 036h,036h,0F6h,006h,0FEh,000h,000h,000h ; Hex #BC
203 Db 036h,036h,036h,036h,0FEh,000h,000h,000h ; Hex #BD
204 Db 018h,018h,0F8h,018h,0F8h,000h,000h,000h ; Hex #BE
205 Db 000h,000h,000h,000h,0F8h,018h,018h,018h ; Hex #BF
206 Db 018h,018h,018h,018h,01Fh,000h,000h,000h ; Hex #C0
207 Db 018h,018h,018h,018h,0FFh,000h,000h,000h ; Hex #C1
208 Db 000h,000h,000h,000h,0FFh,018h,018h,018h ; Hex #C2
209 Db 018h,018h,018h,018h,01Fh,018h,018h,018h ; Hex #C3
210 Db 000h,000h,000h,000h,0FFh,000h,000h,000h ; Hex #C4
211 Db 018h,018h,018h,018h,0FFh,018h,018h,018h ; Hex #C5
212 Db 018h,018h,01Fh,018h,01Fh,018h,018h,018h ; Hex #C6
213 Db 036h,036h,036h,036h,037h,036h,036h,036h ; Hex #C7
214 Db 036h,036h,037h,030h,03Fh,000h,000h,000h ; Hex #C8
215 Db 000h,000h,03Fh,030h,037h,036h,036h,036h ; Hex #C9
216 Db 036h,036h,0F7h,000h,0FFh,000h,000h,000h ; Hex #CA
217 Db 000h,000h,0FFh,000h,0F7h,036h,036h,036h ; Hex #CB
218 Db 036h,036h,037h,030h,037h,036h,036h,036h ; Hex #CC
219 Db 000h,000h,0FFh,000h,0FFh,000h,000h,000h ; Hex #CD
220 Db 036h,036h,0F7h,000h,0F7h,036h,036h,036h ; Hex #CE
221 Db 018h,018h,0FFh,000h,0FFh,000h,000h,000h ; Hex #CF
222 Db 036h,036h,036h,036h,0FFh,000h,000h,000h ; Hex #D0
223 Db 000h,000h,0FFh,000h,0FFh,018h,018h,018h ; Hex #D1
224 Db 000h,000h,000h,000h,0FFh,036h,036h,036h ; Hex #D2
225 Db 036h,036h,036h,036h,03Fh,000h,000h,000h ; Hex #D3
226 Db 018h,018h,01Fh,018h,01Fh,000h,000h,000h ; Hex #D4
227 Db 000h,000h,01Fh,018h,01Fh,018h,018h,018h ; Hex #D5
228 Db 000h,000h,000h,000h,03Fh,036h,036h,036h ; Hex #D6
229 Db 036h,036h,036h,036h,0FFh,036h,036h,036h ; Hex #D7
230 Db 018h,018h,0FFh,018h,0FFh,018h,018h,018h ; Hex #D8
231 Db 018h,018h,018h,018h,0F8h,000h,000h,000h ; Hex #D9
232 Db 000h,000h,000h,000h,01Fh,018h,018h,018h ; Hex #DA
233 Db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh ; Hex #DB
234 Db 000h,000h,000h,000h,0FFh,0FFh,0FFh,0FFh ; Hex #DC
235 Db 0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h ; Hex #DD
236 Db 00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh ; Hex #DE
237 Db 0FFh,0FFh,0FFh,0FFh,000h,000h,000h,000h ; Hex #DF
238 Db 000h,000h,076h,0DCh,0C8h,0DCh,076h,000h ; Hex #E0
239 Db 078h,0CCh,0CCh,0D8h,0CCh,0C6h,0CCh,000h ; Hex #E1
240 Db 0FEh,0C6h,0C0h,0C0h,0C0h,0C0h,0C0h,000h ; Hex #E2
241 Db 000h,000h,0FEh,06Ch,06Ch,06Ch,06Ch,000h ; Hex #E3
242 Db 0FEh,0C6h,060h,030h,060h,0C6h,0FEh,000h ; Hex #E4
243 Db 000h,000h,07Eh,0D8h,0D8h,0D8h,070h,000h ; Hex #E5
244 Db 000h,000h,066h,066h,066h,066h,07Ch,0C0h ; Hex #E6
245 Db 000h,076h,0DCh,018h,018h,018h,018h,000h ; Hex #E7
246 Db 07Eh,018h,03Ch,066h,066h,03Ch,018h,07Eh ; Hex #E8
247 Db 038h,06Ch,0C6h,0FEh,0C6h,06Ch,038h,000h ; Hex #E9
248 Db 038h,06Ch,0C6h,0C6h,06Ch,06Ch,0EEh,000h ; Hex #EA
249 Db 00Eh,018h,00Ch,03Eh,066h,066h,03Ch,000h ; Hex #EB
250 Db 000h,000h,07Eh,0DBh,0DBh,07Eh,000h,000h ; Hex #EC
251 Db 006h,00Ch,07Eh,0DBh,0DBh,07Eh,060h,0C0h ; Hex #ED
252 Db 01Eh,030h,060h,07Eh,060h,030h,01Eh,000h ; Hex #EE
253 Db 000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,000h ; Hex #EF
254 Db 000h,0FEh,000h,0FEh,000h,0FEh,000h,000h ; Hex #F0
255 Db 018h,018h,07Eh,018h,018h,000h,07Eh,000h ; Hex #F1
256 Db 030h,018h,00Ch,018h,030h,000h,07Eh,000h ; Hex #F2
257 Db 00Ch,018h,030h,018h,00Ch,000h,07Eh,000h ; Hex #F3
258 Db 00Eh,01Bh,01Bh,018h,018h,018h,018h,018h ; Hex #F4
259 Db 018h,018h,018h,018h,018h,0D8h,0D8h,070h ; Hex #F5
260 Db 000h,018h,000h,07Eh,000h,018h,000h,000h ; Hex #F6
261 Db 000h,076h,0DCh,000h,076h,0DCh,000h,000h ; Hex #F7
262 Db 038h,06Ch,06Ch,038h,000h,000h,000h,000h ; Hex #F8
263 Db 000h,000h,000h,018h,018h,000h,000h,000h ; Hex #F9
264 Db 000h,000h,000h,018h,000h,000h,000h,000h ; Hex #FA
265 Db 00Fh,00Ch,00Ch,00Ch,0ECh,06Ch,03Ch,01Ch ; Hex #FB
266 Db 06Ch,036h,036h,036h,036h,000h,000h,000h ; Hex #FC
267 Db 078h,00Ch,018h,030h,07Ch,000h,000h,000h ; Hex #FD
268 Db 000h,000h,03Ch,03Ch,03Ch,03Ch,000h,000h ; Hex #FE
269 Db 000h,000h,000h,000h,000h,000h,000h,000h ; Hex #FF
270
diff --git a/v4.0/src/DEV/DISPLAY/EGA/860-CPI.ASM b/v4.0/src/DEV/DISPLAY/EGA/860-CPI.ASM
new file mode 100644
index 0000000..a77b658
--- /dev/null
+++ b/v4.0/src/DEV/DISPLAY/EGA/860-CPI.ASM
@@ -0,0 +1,49 @@
1CODE SEGMENT BYTE PUBLIC 'CODE'
2 ASSUME CS:CODE,DS:CODE
3
4IF1
5 %OUT EGA.CPI creation file
6 %OUT .
7 %OUT CP SRC files:
8 %OUT .
9 %OUT . CODE PAGE: 860
10ENDIF
11
12EGA860: DW LEN_860 ; SIZE OF ENTRY HEADER
13 DW POST_EGA860,0 ; POINTER TO NEXT HEADER
14 DW 1 ; DEVICE TYPE
15 DB "EGA " ; DEVICE SUBTYPE ID
16 DW 860 ; CODE PAGE ID
17 DW 3 DUP(0) ; RESERVED
18 DW OFFSET DATA860,0 ; POINTER TO FONTS
19LEN_860 EQU ($-EGA860) ;
20 ;
21DATA860:DW 1 ; CART/NON-CART
22 DW 3 ; # OF FONTS
23 DW LEN_D860 ; LENGTH OF DATA
24D860: ;
25 DB 16,8 ; CHARACTER BOX SIZE
26 DB 0,0 ; ASPECT RATIO (UNUSED)
27 DW 256 ; NUMBER OF CHARACTERS
28 ;
29 INCLUDE 860-8X16.ASM ;
30 ;
31 DB 14,8 ; CHARACTER BOX SIZE
32 DB 0,0 ; ASPECT RATIO (UNUSED)
33 DW 256 ; NUMBER OF CHARACTERS
34 ;
35 INCLUDE 860-8X14.ASM ;
36 ;
37 DB 8,8 ; CHARACTER BOX SIZE
38 DB 0,0 ; ASPECT RATIO (UNUSED)
39 DW 256 ; NUMBER OF CHARACTERS
40 ;
41 INCLUDE 860-8X8.ASM ;
42 ;
43LEN_D860 EQU ($-D860) ;
44 ;
45POST_EGA860 EQU $ ;
46 ;
47CODE ENDS ;
48 END ;
49 \ No newline at end of file
diff --git a/v4.0/src/DEV/DISPLAY/EGA/863-8X14.ASM b/v4.0/src/DEV/DISPLAY/EGA/863-8X14.ASM
new file mode 100644
index 0000000..be639f7
--- /dev/null
+++ b/v4.0/src/DEV/DISPLAY/EGA/863-8X14.ASM
@@ -0,0 +1,270 @@
1;***************************************************
2; CHARACTER FONT FILE
3; Source Assembler File
4;
5; CODE PAGE: 863
6; FONT RESOLUTION: 8 x 14
7;
8; DATE CREATED:05-28-1987
9;
10;
11; Output file from: MULTIFON, Version 1A
12;
13;***************************************************
14 Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #0
15 Db 000h,000h,000h,07Eh,081h,0A5h,081h,081h,0BDh,099h,081h,07Eh,000h,000h ; Hex #1
16 Db 000h,000h,000h,07Eh,0FFh,0DBh,0FFh,0FFh,0C3h,0E7h,0FFh,07Eh,000h,000h ; Hex #2
17 Db 000h,000h,000h,000h,06Ch,0FEh,0FEh,0FEh,0FEh,07Ch,038h,010h,000h,000h ; Hex #3
18 Db 000h,000h,000h,000h,010h,038h,07Ch,0FEh,07Ch,038h,010h,000h,000h,000h ; Hex #4
19 Db 000h,000h,000h,018h,03Ch,03Ch,0E7h,0E7h,0E7h,018h,018h,03Ch,000h,000h ; Hex #5
20 Db 000h,000h,000h,018h,03Ch,07Eh,0FFh,0FFh,07Eh,018h,018h,03Ch,000h,000h ; Hex #6
21 Db 000h,000h,000h,000h,000h,000h,018h,03Ch,03Ch,018h,000h,000h,000h,000h ; Hex #7
22 Db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0E7h,0C3h,0C3h,0E7h,0FFh,0FFh,0FFh,0FFh ; Hex #8
23 Db 000h,000h,000h,000h,000h,03Ch,066h,042h,042h,066h,03Ch,000h,000h,000h ; Hex #9
24 Db 0FFh,0FFh,0FFh,0FFh,0FFh,0C3h,099h,0BDh,0BDh,099h,0C3h,0FFh,0FFh,0FFh ; Hex #A
25 Db 000h,000h,000h,01Eh,00Eh,01Ah,032h,078h,0CCh,0CCh,0CCh,078h,000h,000h ; Hex #B
26 Db 000h,000h,000h,03Ch,066h,066h,066h,03Ch,018h,07Eh,018h,018h,000h,000h ; Hex #C
27 Db 000h,000h,000h,03Fh,033h,03Fh,030h,030h,030h,070h,0F0h,0E0h,000h,000h ; Hex #D
28 Db 000h,000h,000h,07Fh,063h,07Fh,063h,063h,063h,067h,0E7h,0E6h,0C0h,000h ; Hex #E
29 Db 000h,000h,000h,018h,018h,0DBh,03Ch,0E7h,03Ch,0DBh,018h,018h,000h,000h ; Hex #F
30 Db 000h,000h,000h,080h,0C0h,0E0h,0F8h,0FEh,0F8h,0E0h,0C0h,080h,000h,000h ; Hex #10
31 Db 000h,000h,000h,002h,006h,00Eh,03Eh,0FEh,03Eh,00Eh,006h,002h,000h,000h ; Hex #11
32 Db 000h,000h,000h,018h,03Ch,07Eh,018h,018h,018h,07Eh,03Ch,018h,000h,000h ; Hex #12
33 Db 000h,000h,000h,066h,066h,066h,066h,066h,066h,000h,066h,066h,000h,000h ; Hex #13
34 Db 000h,000h,000h,07Fh,0DBh,0DBh,0DBh,07Bh,01Bh,01Bh,01Bh,01Bh,000h,000h ; Hex #14
35 Db 000h,000h,07Ch,0C6h,060h,038h,06Ch,0C6h,0C6h,06Ch,038h,00Ch,0C6h,07Ch ; Hex #15
36 Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,0FEh,0FEh,0FEh,000h,000h ; Hex #16
37 Db 000h,000h,000h,018h,03Ch,07Eh,018h,018h,018h,07Eh,03Ch,018h,07Eh,000h ; Hex #17
38 Db 000h,000h,000h,018h,03Ch,07Eh,018h,018h,018h,018h,018h,018h,000h,000h ; Hex #18
39 Db 000h,000h,000h,018h,018h,018h,018h,018h,018h,07Eh,03Ch,018h,000h,000h ; Hex #19
40 Db 000h,000h,000h,000h,000h,018h,00Ch,0FEh,00Ch,018h,000h,000h,000h,000h ; Hex #1A
41 Db 000h,000h,000h,000h,000h,030h,060h,0FEh,060h,030h,000h,000h,000h,000h ; Hex #1B
42 Db 000h,000h,000h,000h,000h,000h,0C0h,0C0h,0C0h,0FEh,000h,000h,000h,000h ; Hex #1C
43 Db 000h,000h,000h,000h,000h,028h,06Ch,0FEh,06Ch,028h,000h,000h,000h,000h ; Hex #1D
44 Db 000h,000h,000h,000h,010h,038h,038h,07Ch,07Ch,0FEh,0FEh,000h,000h,000h ; Hex #1E
45 Db 000h,000h,000h,000h,0FEh,0FEh,07Ch,07Ch,038h,038h,010h,000h,000h,000h ; Hex #1F
46 Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #20
47 Db 000h,000h,000h,018h,03Ch,03Ch,03Ch,018h,018h,000h,018h,018h,000h,000h ; Hex #21
48 Db 000h,066h,066h,066h,024h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #22
49 Db 000h,000h,000h,06Ch,06Ch,0FEh,06Ch,06Ch,06Ch,0FEh,06Ch,06Ch,000h,000h ; Hex #23
50 Db 000h,018h,018h,07Ch,0C6h,0C2h,0C0h,07Ch,006h,086h,0C6h,07Ch,018h,018h ; Hex #24
51 Db 000h,000h,000h,000h,000h,0C2h,0C6h,00Ch,018h,030h,066h,0C6h,000h,000h ; Hex #25
52 Db 000h,000h,000h,038h,06Ch,06Ch,038h,076h,0DCh,0CCh,0CCh,076h,000h,000h ; Hex #26
53 Db 000h,018h,018h,018h,030h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #27
54 Db 000h,000h,000h,00Ch,018h,030h,030h,030h,030h,030h,018h,00Ch,000h,000h ; Hex #28
55 Db 000h,000h,000h,030h,018h,00Ch,00Ch,00Ch,00Ch,00Ch,018h,030h,000h,000h ; Hex #29
56 Db 000h,000h,000h,000h,000h,066h,03Ch,0FFh,03Ch,066h,000h,000h,000h,000h ; Hex #2A
57 Db 000h,000h,000h,000h,000h,018h,018h,07Eh,018h,018h,000h,000h,000h,000h ; Hex #2B
58 Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,018h,018h,018h,030h,000h ; Hex #2C
59 Db 000h,000h,000h,000h,000h,000h,000h,0FEh,000h,000h,000h,000h,000h,000h ; Hex #2D
60 Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,018h,018h,000h,000h ; Hex #2E
61 Db 000h,000h,000h,002h,006h,00Ch,018h,030h,060h,0C0h,080h,000h,000h,000h ; Hex #2F
62 Db 000h,000h,000h,038h,06Ch,0C6h,0C6h,0D6h,0C6h,0C6h,06Ch,038h,000h,000h ; Hex #30
63 Db 000h,000h,000h,018h,038h,078h,018h,018h,018h,018h,018h,07Eh,000h,000h ; Hex #31
64 Db 000h,000h,000h,07Ch,0C6h,006h,00Ch,018h,030h,060h,0C6h,0FEh,000h,000h ; Hex #32
65 Db 000h,000h,000h,07Ch,0C6h,006h,006h,03Ch,006h,006h,0C6h,07Ch,000h,000h ; Hex #33
66 Db 000h,000h,000h,00Ch,01Ch,03Ch,06Ch,0CCh,0FEh,00Ch,00Ch,01Eh,000h,000h ; Hex #34
67 Db 000h,000h,000h,0FEh,0C0h,0C0h,0C0h,0FCh,006h,006h,0C6h,07Ch,000h,000h ; Hex #35
68 Db 000h,000h,000h,038h,060h,0C0h,0C0h,0FCh,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #36
69 Db 000h,000h,000h,0FEh,0C6h,006h,00Ch,018h,030h,030h,030h,030h,000h,000h ; Hex #37
70 Db 000h,000h,000h,07Ch,0C6h,0C6h,0C6h,07Ch,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #38
71 Db 000h,000h,000h,07Ch,0C6h,0C6h,0C6h,07Eh,006h,006h,00Ch,078h,000h,000h ; Hex #39
72 Db 000h,000h,000h,000h,018h,018h,000h,000h,000h,018h,018h,000h,000h,000h ; Hex #3A
73 Db 000h,000h,000h,000h,018h,018h,000h,000h,000h,018h,018h,030h,000h,000h ; Hex #3B
74 Db 000h,000h,000h,00Ch,018h,030h,060h,0C0h,060h,030h,018h,00Ch,000h,000h ; Hex #3C
75 Db 000h,000h,000h,000h,000h,000h,07Eh,000h,000h,07Eh,000h,000h,000h,000h ; Hex #3D
76 Db 000h,000h,000h,060h,030h,018h,00Ch,006h,00Ch,018h,030h,060h,000h,000h ; Hex #3E
77 Db 000h,000h,000h,07Ch,0C6h,0C6h,00Ch,018h,018h,000h,018h,018h,000h,000h ; Hex #3F
78 Db 000h,000h,000h,07Ch,0C6h,0C6h,0DEh,0DEh,0DEh,0DCh,0C0h,07Ch,000h,000h ; Hex #40
79 Db 000h,000h,000h,010h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,000h,000h ; Hex #41
80 Db 000h,000h,000h,0FCh,066h,066h,066h,07Ch,066h,066h,066h,0FCh,000h,000h ; Hex #42
81 Db 000h,000h,000h,03Ch,066h,0C2h,0C0h,0C0h,0C0h,0C2h,066h,03Ch,000h,000h ; Hex #43
82 Db 000h,000h,000h,0F8h,06Ch,066h,066h,066h,066h,066h,06Ch,0F8h,000h,000h ; Hex #44
83 Db 000h,000h,000h,0FEh,066h,062h,068h,078h,068h,062h,066h,0FEh,000h,000h ; Hex #45
84 Db 000h,000h,000h,0FEh,066h,062h,068h,078h,068h,060h,060h,0F0h,000h,000h ; Hex #46
85 Db 000h,000h,000h,03Ch,066h,0C2h,0C0h,0C0h,0DEh,0C6h,066h,03Ah,000h,000h ; Hex #47
86 Db 000h,000h,000h,0C6h,0C6h,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,0C6h,000h,000h ; Hex #48
87 Db 000h,000h,000h,03Ch,018h,018h,018h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #49
88 Db 000h,000h,000h,01Eh,00Ch,00Ch,00Ch,00Ch,00Ch,0CCh,0CCh,078h,000h,000h ; Hex #4A
89 Db 000h,000h,000h,0E6h,066h,06Ch,06Ch,078h,06Ch,06Ch,066h,0E6h,000h,000h ; Hex #4B
90 Db 000h,000h,000h,0F0h,060h,060h,060h,060h,060h,062h,066h,0FEh,000h,000h ; Hex #4C
91 Db 000h,000h,000h,0C6h,0EEh,0FEh,0D6h,0C6h,0C6h,0C6h,0C6h,0C6h,000h,000h ; Hex #4D
92 Db 000h,000h,000h,0C6h,0E6h,0F6h,0FEh,0DEh,0CEh,0C6h,0C6h,0C6h,000h,000h ; Hex #4E
93 Db 000h,000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #4F
94 Db 000h,000h,000h,0FCh,066h,066h,066h,07Ch,060h,060h,060h,0F0h,000h,000h ; Hex #50
95 Db 000h,000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0D6h,0DEh,07Ch,00Eh,000h ; Hex #51
96 Db 000h,000h,000h,0FCh,066h,066h,066h,07Ch,06Ch,066h,066h,0E6h,000h,000h ; Hex #52
97 Db 000h,000h,000h,07Ch,0C6h,0C6h,060h,038h,00Ch,0C6h,0C6h,07Ch,000h,000h ; Hex #53
98 Db 000h,000h,000h,07Eh,07Eh,05Ah,018h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #54
99 Db 000h,000h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #55
100 Db 000h,000h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,06Ch,038h,010h,000h,000h ; Hex #56
101 Db 000h,000h,000h,0C6h,0C6h,0C6h,0C6h,0D6h,0D6h,0FEh,06Ch,06Ch,000h,000h ; Hex #57
102 Db 000h,000h,000h,0C6h,0C6h,0C6h,07Ch,038h,07Ch,0C6h,0C6h,0C6h,000h,000h ; Hex #58
103 Db 000h,000h,000h,066h,066h,066h,066h,03Ch,018h,018h,018h,03Ch,000h,000h ; Hex #59
104 Db 000h,000h,000h,0FEh,0C6h,08Ch,018h,030h,060h,0C2h,0C6h,0FEh,000h,000h ; Hex #5A
105 Db 000h,000h,000h,03Ch,030h,030h,030h,030h,030h,030h,030h,03Ch,000h,000h ; Hex #5B
106 Db 000h,000h,000h,080h,0C0h,0E0h,070h,038h,01Ch,00Eh,006h,002h,000h,000h ; Hex #5C
107 Db 000h,000h,000h,03Ch,00Ch,00Ch,00Ch,00Ch,00Ch,00Ch,00Ch,03Ch,000h,000h ; Hex #5D
108 Db 010h,038h,06Ch,0C6h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #5E
109 Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,0FFh ; Hex #5F
110 Db 000h,030h,018h,00Ch,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #60
111 Db 000h,000h,000h,000h,000h,000h,078h,00Ch,07Ch,0CCh,0CCh,076h,000h,000h ; Hex #61
112 Db 000h,000h,000h,0E0h,060h,060h,078h,06Ch,066h,066h,066h,07Ch,000h,000h ; Hex #62
113 Db 000h,000h,000h,000h,000h,000h,07Ch,0C6h,0C0h,0C0h,0C6h,07Ch,000h,000h ; Hex #63
114 Db 000h,000h,000h,01Ch,00Ch,00Ch,03Ch,06Ch,0CCh,0CCh,0CCh,076h,000h,000h ; Hex #64
115 Db 000h,000h,000h,000h,000h,000h,07Ch,0C6h,0FEh,0C0h,0C6h,07Ch,000h,000h ; Hex #65
116 Db 000h,000h,000h,01Ch,036h,032h,030h,07Ch,030h,030h,030h,078h,000h,000h ; Hex #66
117 Db 000h,000h,000h,000h,000h,000h,076h,0CCh,0CCh,0CCh,07Ch,00Ch,0CCh,078h ; Hex #67
118 Db 000h,000h,000h,0E0h,060h,060h,06Ch,076h,066h,066h,066h,0E6h,000h,000h ; Hex #68
119 Db 000h,000h,000h,018h,018h,000h,038h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #69
120 Db 000h,000h,000h,006h,006h,000h,00Eh,006h,006h,006h,006h,066h,066h,03Ch ; Hex #6A
121 Db 000h,000h,000h,0E0h,060h,060h,066h,06Ch,078h,06Ch,066h,0E6h,000h,000h ; Hex #6B
122 Db 000h,000h,000h,038h,018h,018h,018h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #6C
123 Db 000h,000h,000h,000h,000h,000h,0ECh,0FEh,0D6h,0D6h,0D6h,0D6h,000h,000h ; Hex #6D
124 Db 000h,000h,000h,000h,000h,000h,0DCh,066h,066h,066h,066h,066h,000h,000h ; Hex #6E
125 Db 000h,000h,000h,000h,000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #6F
126 Db 000h,000h,000h,000h,000h,000h,0DCh,066h,066h,066h,07Ch,060h,060h,0F0h ; Hex #70
127 Db 000h,000h,000h,000h,000h,000h,076h,0CCh,0CCh,0CCh,07Ch,00Ch,00Ch,01Eh ; Hex #71
128 Db 000h,000h,000h,000h,000h,000h,0DCh,076h,066h,060h,060h,0F0h,000h,000h ; Hex #72
129 Db 000h,000h,000h,000h,000h,000h,07Ch,0C6h,070h,01Ch,0C6h,07Ch,000h,000h ; Hex #73
130 Db 000h,000h,000h,010h,030h,030h,0FCh,030h,030h,030h,036h,01Ch,000h,000h ; Hex #74
131 Db 000h,000h,000h,000h,000h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h ; Hex #75
132 Db 000h,000h,000h,000h,000h,000h,0C6h,0C6h,0C6h,06Ch,038h,010h,000h,000h ; Hex #76
133 Db 000h,000h,000h,000h,000h,000h,0C6h,0C6h,0D6h,0D6h,0FEh,06Ch,000h,000h ; Hex #77
134 Db 000h,000h,000h,000h,000h,000h,0C6h,06Ch,038h,038h,06Ch,0C6h,000h,000h ; Hex #78
135 Db 000h,000h,000h,000h,000h,000h,0C6h,0C6h,0C6h,0C6h,07Eh,006h,00Ch,078h ; Hex #79
136 Db 000h,000h,000h,000h,000h,000h,0FEh,0CCh,018h,030h,066h,0FEh,000h,000h ; Hex #7A
137 Db 000h,000h,000h,00Eh,018h,018h,018h,070h,018h,018h,018h,00Eh,000h,000h ; Hex #7B
138 Db 000h,000h,000h,018h,018h,018h,018h,018h,018h,018h,018h,018h,000h,000h ; Hex #7C
139 Db 000h,000h,000h,070h,018h,018h,018h,00Eh,018h,018h,018h,070h,000h,000h ; Hex #7D
140 Db 000h,076h,0DCh,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #7E
141 Db 000h,000h,000h,000h,000h,010h,038h,06Ch,0C6h,0C6h,0FEh,000h,000h,000h ; Hex #7F
142 Db 000h,000h,000h,03Ch,066h,0C2h,0C0h,0C0h,0C0h,0C2h,066h,03Ch,00Ch,078h ; Hex #80
143 Db 000h,000h,000h,0CCh,000h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h ; Hex #81
144 Db 000h,000h,00Ch,018h,030h,000h,07Ch,0C6h,0FEh,0C0h,0C6h,07Ch,000h,000h ; Hex #82
145 Db 000h,000h,010h,038h,06Ch,000h,078h,00Ch,07Ch,0CCh,0CCh,076h,000h,000h ; Hex #83
146 Db 038h,06Ch,0C6h,010h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,000h,000h ; Hex #84
147 Db 000h,000h,060h,030h,018h,000h,078h,00Ch,07Ch,0CCh,0CCh,076h,000h,000h ; Hex #85
148 Db 000h,000h,000h,07Fh,0DBh,0DBh,0DBh,07Bh,01Bh,01Bh,01Bh,01Bh,000h,000h ; Hex #86
149 Db 000h,000h,000h,000h,000h,000h,07Ch,0C6h,0C0h,0C0h,0C6h,07Ch,00Ch,078h ; Hex #87
150 Db 000h,000h,010h,038h,06Ch,000h,07Ch,0C6h,0FEh,0C0h,0C6h,07Ch,000h,000h ; Hex #88
151 Db 000h,000h,000h,0C6h,000h,000h,07Ch,0C6h,0FEh,0C0h,0C6h,07Ch,000h,000h ; Hex #89
152 Db 000h,000h,060h,030h,018h,000h,07Ch,0C6h,0FEh,0C0h,0C6h,07Ch,000h,000h ; Hex #8A
153 Db 000h,000h,000h,066h,000h,000h,038h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #8B
154 Db 000h,000h,018h,03Ch,066h,000h,038h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #8C
155 Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,0FFh,000h,0FFh ; Hex #8D
156 Db 018h,00Ch,006h,010h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,000h,000h ; Hex #8E
157 Db 000h,07Ch,0C6h,060h,038h,06Ch,0C6h,0C6h,06Ch,038h,00Ch,0C6h,07Ch,000h ; Hex #8F
158 Db 00Ch,018h,000h,0FEh,066h,062h,068h,078h,068h,062h,066h,0FEh,000h,000h ; Hex #90
159 Db 030h,018h,000h,0FEh,066h,062h,068h,078h,068h,062h,066h,0FEh,000h,000h ; Hex #91
160 Db 038h,06Ch,000h,0FEh,066h,062h,068h,078h,068h,062h,066h,0FEh,000h,000h ; Hex #92
161 Db 000h,000h,010h,038h,06Ch,000h,07Ch,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #93
162 Db 000h,0C6h,000h,0FEh,066h,062h,068h,078h,068h,062h,066h,0FEh,000h,000h ; Hex #94
163 Db 000h,066h,000h,03Ch,018h,018h,018h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #95
164 Db 000h,000h,030h,078h,0CCh,000h,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h ; Hex #96
165 Db 000h,000h,060h,030h,018h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h ; Hex #97
166 Db 000h,000h,000h,000h,000h,0C6h,07Ch,0C6h,0C6h,0C6h,07Ch,0C6h,000h,000h ; Hex #98
167 Db 038h,06Ch,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #99
168 Db 000h,0C6h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #9A
169 Db 000h,000h,018h,018h,07Ch,0C6h,0C0h,0C0h,0C6h,07Ch,018h,018h,000h,000h ; Hex #9B
170 Db 000h,000h,038h,06Ch,064h,060h,0F0h,060h,060h,060h,0E6h,0FCh,000h,000h ; Hex #9C
171 Db 030h,018h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #9D
172 Db 038h,06Ch,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #9E
173 Db 000h,000h,00Eh,01Bh,018h,018h,018h,07Eh,018h,018h,018h,0D8h,070h,000h ; Hex #9F
174 Db 000h,000h,018h,018h,018h,018h,000h,000h,000h,018h,018h,018h,018h,000h ; Hex #A0
175 Db 000h,00Ch,018h,030h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #A1
176 Db 000h,000h,00Ch,018h,030h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #A2
177 Db 000h,000h,00Ch,018h,030h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h ; Hex #A3
178 Db 000h,0C6h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #A4
179 Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,018h,00Ch,078h ; Hex #A5
180 Db 000h,078h,00Ch,038h,00Ch,00Ch,078h,000h,000h,000h,000h,000h,000h,000h ; Hex #A6
181 Db 000h,0FFh,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #A7
182 Db 03Ch,066h,000h,03Ch,018h,018h,018h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #A8
183 Db 000h,000h,000h,000h,000h,000h,000h,0FEh,0C0h,0C0h,0C0h,000h,000h,000h ; Hex #A9
184 Db 000h,000h,000h,000h,000h,000h,000h,0FEh,006h,006h,006h,000h,000h,000h ; Hex #AA
185 Db 000h,000h,060h,0E0h,063h,066h,06Ch,018h,030h,06Eh,0C3h,006h,00Ch,01Fh ; Hex #AB
186 Db 000h,000h,060h,0E0h,063h,066h,06Ch,01Ah,036h,06Eh,0DAh,03Fh,006h,006h ; Hex #AC
187 Db 000h,0E0h,030h,0E3h,036h,0ECh,018h,036h,06Eh,0DAh,03Fh,006h,006h,000h ; Hex #AD
188 Db 000h,000h,000h,000h,000h,036h,06Ch,0D8h,06Ch,036h,000h,000h,000h,000h ; Hex #AE
189 Db 000h,000h,000h,000h,000h,0D8h,06Ch,036h,06Ch,0D8h,000h,000h,000h,000h ; Hex #AF
190 Db 011h,044h,011h,044h,011h,044h,011h,044h,011h,044h,011h,044h,011h,044h ; Hex #B0
191 Db 055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh ; Hex #B1
192 Db 0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h ; Hex #B2
193 Db 018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #B3
194 Db 018h,018h,018h,018h,018h,018h,018h,0F8h,018h,018h,018h,018h,018h,018h ; Hex #B4
195 Db 018h,018h,018h,018h,018h,0F8h,018h,0F8h,018h,018h,018h,018h,018h,018h ; Hex #B5
196 Db 036h,036h,036h,036h,036h,036h,036h,0F6h,036h,036h,036h,036h,036h,036h ; Hex #B6
197 Db 000h,000h,000h,000h,000h,000h,000h,0FEh,036h,036h,036h,036h,036h,036h ; Hex #B7
198 Db 000h,000h,000h,000h,000h,0F8h,018h,0F8h,018h,018h,018h,018h,018h,018h ; Hex #B8
199 Db 036h,036h,036h,036h,036h,0F6h,006h,0F6h,036h,036h,036h,036h,036h,036h ; Hex #B9
200 Db 036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #BA
201 Db 000h,000h,000h,000h,000h,0FEh,006h,0F6h,036h,036h,036h,036h,036h,036h ; Hex #BB
202 Db 036h,036h,036h,036h,036h,0F6h,006h,0FEh,000h,000h,000h,000h,000h,000h ; Hex #BC
203 Db 036h,036h,036h,036h,036h,036h,036h,0FEh,000h,000h,000h,000h,000h,000h ; Hex #BD
204 Db 018h,018h,018h,018h,018h,0F8h,018h,0F8h,000h,000h,000h,000h,000h,000h ; Hex #BE
205 Db 000h,000h,000h,000h,000h,000h,000h,0F8h,018h,018h,018h,018h,018h,018h ; Hex #BF
206 Db 018h,018h,018h,018h,018h,018h,018h,01Fh,000h,000h,000h,000h,000h,000h ; Hex #C0
207 Db 018h,018h,018h,018h,018h,018h,018h,0FFh,000h,000h,000h,000h,000h,000h ; Hex #C1
208 Db 000h,000h,000h,000h,000h,000h,000h,0FFh,018h,018h,018h,018h,018h,018h ; Hex #C2
209 Db 018h,018h,018h,018h,018h,018h,018h,01Fh,018h,018h,018h,018h,018h,018h ; Hex #C3
210 Db 000h,000h,000h,000h,000h,000h,000h,0FFh,000h,000h,000h,000h,000h,000h ; Hex #C4
211 Db 018h,018h,018h,018h,018h,018h,018h,0FFh,018h,018h,018h,018h,018h,018h ; Hex #C5
212 Db 018h,018h,018h,018h,018h,01Fh,018h,01Fh,018h,018h,018h,018h,018h,018h ; Hex #C6
213 Db 036h,036h,036h,036h,036h,036h,036h,037h,036h,036h,036h,036h,036h,036h ; Hex #C7
214 Db 036h,036h,036h,036h,036h,037h,030h,03Fh,000h,000h,000h,000h,000h,000h ; Hex #C8
215 Db 000h,000h,000h,000h,000h,03Fh,030h,037h,036h,036h,036h,036h,036h,036h ; Hex #C9
216 Db 036h,036h,036h,036h,036h,0F7h,000h,0FFh,000h,000h,000h,000h,000h,000h ; Hex #CA
217 Db 000h,000h,000h,000h,000h,0FFh,000h,0F7h,036h,036h,036h,036h,036h,036h ; Hex #CB
218 Db 036h,036h,036h,036h,036h,037h,030h,037h,036h,036h,036h,036h,036h,036h ; Hex #CC
219 Db 000h,000h,000h,000h,000h,0FFh,000h,0FFh,000h,000h,000h,000h,000h,000h ; Hex #CD
220 Db 036h,036h,036h,036h,036h,0F7h,000h,0F7h,036h,036h,036h,036h,036h,036h ; Hex #CE
221 Db 018h,018h,018h,018h,018h,0FFh,000h,0FFh,000h,000h,000h,000h,000h,000h ; Hex #CF
222 Db 036h,036h,036h,036h,036h,036h,036h,0FFh,000h,000h,000h,000h,000h,000h ; Hex #D0
223 Db 000h,000h,000h,000h,000h,0FFh,000h,0FFh,018h,018h,018h,018h,018h,018h ; Hex #D1
224 Db 000h,000h,000h,000h,000h,000h,000h,0FFh,036h,036h,036h,036h,036h,036h ; Hex #D2
225 Db 036h,036h,036h,036h,036h,036h,036h,03Fh,000h,000h,000h,000h,000h,000h ; Hex #D3
226 Db 018h,018h,018h,018h,018h,01Fh,018h,01Fh,000h,000h,000h,000h,000h,000h ; Hex #D4
227 Db 000h,000h,000h,000h,000h,01Fh,018h,01Fh,018h,018h,018h,018h,018h,018h ; Hex #D5
228 Db 000h,000h,000h,000h,000h,000h,000h,03Fh,036h,036h,036h,036h,036h,036h ; Hex #D6
229 Db 036h,036h,036h,036h,036h,036h,036h,0FFh,036h,036h,036h,036h,036h,036h ; Hex #D7
230 Db 018h,018h,018h,018h,018h,0FFh,018h,0FFh,018h,018h,018h,018h,018h,018h ; Hex #D8
231 Db 018h,018h,018h,018h,018h,018h,018h,0F8h,000h,000h,000h,000h,000h,000h ; Hex #D9
232 Db 000h,000h,000h,000h,000h,000h,000h,01Fh,018h,018h,018h,018h,018h,018h ; Hex #DA
233 Db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh ; Hex #DB
234 Db 000h,000h,000h,000h,000h,000h,000h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh ; Hex #DC
235 Db 0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h ; Hex #DD
236 Db 00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh ; Hex #DE
237 Db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,000h,000h,000h,000h,000h,000h,000h ; Hex #DF
238 Db 000h,000h,000h,000h,000h,000h,076h,0DCh,0D8h,0D8h,0DCh,076h,000h,000h ; Hex #E0
239 Db 000h,000h,000h,078h,0CCh,0CCh,0CCh,0D8h,0CCh,0C6h,0C6h,0CCh,000h,000h ; Hex #E1
240 Db 000h,000h,000h,0FEh,0C6h,0C6h,0C0h,0C0h,0C0h,0C0h,0C0h,0C0h,000h,000h ; Hex #E2
241 Db 000h,000h,000h,000h,000h,000h,0FEh,06Ch,06Ch,06Ch,06Ch,06Ch,000h,000h ; Hex #E3
242 Db 000h,000h,000h,0FEh,0C6h,060h,030h,018h,030h,060h,0C6h,0FEh,000h,000h ; Hex #E4
243 Db 000h,000h,000h,000h,000h,000h,07Eh,0D8h,0D8h,0D8h,0D8h,070h,000h,000h ; Hex #E5
244 Db 000h,000h,000h,000h,000h,000h,066h,066h,066h,066h,066h,07Ch,060h,0C0h ; Hex #E6
245 Db 000h,000h,000h,000h,000h,076h,0DCh,018h,018h,018h,018h,018h,000h,000h ; Hex #E7
246 Db 000h,000h,000h,07Eh,018h,03Ch,066h,066h,066h,03Ch,018h,07Eh,000h,000h ; Hex #E8
247 Db 000h,000h,000h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,06Ch,038h,000h,000h ; Hex #E9
248 Db 000h,000h,000h,038h,06Ch,0C6h,0C6h,0C6h,06Ch,06Ch,06Ch,0EEh,000h,000h ; Hex #EA
249 Db 000h,000h,000h,01Eh,030h,018h,00Ch,03Eh,066h,066h,066h,03Ch,000h,000h ; Hex #EB
250 Db 000h,000h,000h,000h,000h,000h,07Eh,0DBh,0DBh,07Eh,000h,000h,000h,000h ; Hex #EC
251 Db 000h,000h,000h,003h,006h,07Eh,0DBh,0DBh,0F3h,07Eh,060h,0C0h,000h,000h ; Hex #ED
252 Db 000h,000h,000h,01Eh,030h,060h,060h,07Eh,060h,060h,030h,01Eh,000h,000h ; Hex #EE
253 Db 000h,000h,000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,000h,000h ; Hex #EF
254 Db 000h,000h,000h,000h,0FEh,000h,000h,0FEh,000h,000h,0FEh,000h,000h,000h ; Hex #F0
255 Db 000h,000h,000h,000h,018h,018h,07Eh,018h,018h,000h,000h,07Eh,000h,000h ; Hex #F1
256 Db 000h,000h,000h,030h,018h,00Ch,006h,00Ch,018h,030h,000h,07Eh,000h,000h ; Hex #F2
257 Db 000h,000h,000h,00Ch,018h,030h,060h,030h,018h,00Ch,000h,07Eh,000h,000h ; Hex #F3
258 Db 000h,000h,00Eh,01Bh,01Bh,018h,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #F4
259 Db 018h,018h,018h,018h,018h,018h,018h,018h,0D8h,0D8h,070h,000h,000h,000h ; Hex #F5
260 Db 000h,000h,000h,000h,000h,018h,000h,07Eh,000h,018h,000h,000h,000h,000h ; Hex #F6
261 Db 000h,000h,000h,000h,000h,076h,0DCh,000h,076h,0DCh,000h,000h,000h,000h ; Hex #F7
262 Db 000h,038h,06Ch,06Ch,038h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #F8
263 Db 000h,000h,000h,000h,000h,000h,000h,018h,018h,000h,000h,000h,000h,000h ; Hex #F9
264 Db 000h,000h,000h,000h,000h,000h,000h,018h,000h,000h,000h,000h,000h,000h ; Hex #FA
265 Db 000h,00Fh,00Ch,00Ch,00Ch,00Ch,00Ch,00Ch,0ECh,06Ch,03Ch,01Ch,000h,000h ; Hex #FB
266 Db 000h,06Ch,036h,036h,036h,036h,036h,000h,000h,000h,000h,000h,000h,000h ; Hex #FC
267 Db 000h,03Ch,066h,00Ch,018h,032h,07Eh,000h,000h,000h,000h,000h,000h,000h ; Hex #FD
268 Db 000h,000h,000h,000h,000h,07Eh,07Eh,07Eh,07Eh,07Eh,07Eh,000h,000h,000h ; Hex #FE
269 Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #FF
270
diff --git a/v4.0/src/DEV/DISPLAY/EGA/863-8X16.ASM b/v4.0/src/DEV/DISPLAY/EGA/863-8X16.ASM
new file mode 100644
index 0000000..e421b92
--- /dev/null
+++ b/v4.0/src/DEV/DISPLAY/EGA/863-8X16.ASM
@@ -0,0 +1,270 @@
1;***************************************************
2; CHARACTER FONT FILE
3; Source Assembler File
4;
5; CODE PAGE: 863
6; FONT RESOLUTION: 8 x 16
7;
8; DATE CREATED:05-28-1987
9;
10;
11; Output file from: MULTIFON, Version 1A
12;
13;***************************************************
14 Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #0
15 Db 000h,000h,07Eh,081h,0A5h,081h,081h,0BDh,099h,081h,081h,07Eh,000h,000h,000h,000h ; Hex #1
16 Db 000h,000h,07Eh,0FFh,0DBh,0FFh,0FFh,0C3h,0E7h,0FFh,0FFh,07Eh,000h,000h,000h,000h ; Hex #2
17 Db 000h,000h,000h,000h,06Ch,0FEh,0FEh,0FEh,0FEh,07Ch,038h,010h,000h,000h,000h,000h ; Hex #3
18 Db 000h,000h,000h,000h,010h,038h,07Ch,0FEh,07Ch,038h,010h,000h,000h,000h,000h,000h ; Hex #4
19 Db 000h,000h,000h,018h,03Ch,03Ch,0E7h,0E7h,0E7h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #5
20 Db 000h,000h,000h,018h,03Ch,07Eh,0FFh,0FFh,07Eh,018h,018h,03Ch,000h,000h,000h,000h ; Hex #6
21 Db 000h,000h,000h,000h,000h,000h,018h,03Ch,03Ch,018h,000h,000h,000h,000h,000h,000h ; Hex #7
22 Db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0E7h,0C3h,0C3h,0E7h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh ; Hex #8
23 Db 000h,000h,000h,000h,000h,03Ch,066h,042h,042h,066h,03Ch,000h,000h,000h,000h,000h ; Hex #9
24 Db 0FFh,0FFh,0FFh,0FFh,0FFh,0C3h,099h,0BDh,0BDh,099h,0C3h,0FFh,0FFh,0FFh,0FFh,0FFh ; Hex #A
25 Db 000h,000h,01Eh,00Eh,01Ah,032h,078h,0CCh,0CCh,0CCh,0CCh,078h,000h,000h,000h,000h ; Hex #B
26 Db 000h,000h,03Ch,066h,066h,066h,066h,03Ch,018h,07Eh,018h,018h,000h,000h,000h,000h ; Hex #C
27 Db 000h,000h,03Fh,033h,03Fh,030h,030h,030h,030h,070h,0F0h,0E0h,000h,000h,000h,000h ; Hex #D
28 Db 000h,000h,07Fh,063h,07Fh,063h,063h,063h,063h,067h,0E7h,0E6h,0C0h,000h,000h,000h ; Hex #E
29 Db 000h,000h,000h,018h,018h,0DBh,03Ch,0E7h,03Ch,0DBh,018h,018h,000h,000h,000h,000h ; Hex #F
30 Db 000h,080h,0C0h,0E0h,0F0h,0F8h,0FEh,0F8h,0F0h,0E0h,0C0h,080h,000h,000h,000h,000h ; Hex #10
31 Db 000h,002h,006h,00Eh,01Eh,03Eh,0FEh,03Eh,01Eh,00Eh,006h,002h,000h,000h,000h,000h ; Hex #11
32 Db 000h,000h,018h,03Ch,07Eh,018h,018h,018h,07Eh,03Ch,018h,000h,000h,000h,000h,000h ; Hex #12
33 Db 000h,000h,066h,066h,066h,066h,066h,066h,066h,000h,066h,066h,000h,000h,000h,000h ; Hex #13
34 Db 000h,000h,07Fh,0DBh,0DBh,0DBh,07Bh,01Bh,01Bh,01Bh,01Bh,01Bh,000h,000h,000h,000h ; Hex #14
35 Db 000h,07Ch,0C6h,060h,038h,06Ch,0C6h,0C6h,06Ch,038h,00Ch,0C6h,07Ch,000h,000h,000h ; Hex #15
36 Db 000h,000h,000h,000h,000h,000h,000h,000h,0FEh,0FEh,0FEh,0FEh,000h,000h,000h,000h ; Hex #16
37 Db 000h,000h,018h,03Ch,07Eh,018h,018h,018h,07Eh,03Ch,018h,07Eh,000h,000h,000h,000h ; Hex #17
38 Db 000h,000h,018h,03Ch,07Eh,018h,018h,018h,018h,018h,018h,018h,000h,000h,000h,000h ; Hex #18
39 Db 000h,000h,018h,018h,018h,018h,018h,018h,018h,07Eh,03Ch,018h,000h,000h,000h,000h ; Hex #19
40 Db 000h,000h,000h,000h,000h,018h,00Ch,0FEh,00Ch,018h,000h,000h,000h,000h,000h,000h ; Hex #1A
41 Db 000h,000h,000h,000h,000h,030h,060h,0FEh,060h,030h,000h,000h,000h,000h,000h,000h ; Hex #1B
42 Db 000h,000h,000h,000h,000h,000h,0C0h,0C0h,0C0h,0FEh,000h,000h,000h,000h,000h,000h ; Hex #1C
43 Db 000h,000h,000h,000h,000h,028h,06Ch,0FEh,06Ch,028h,000h,000h,000h,000h,000h,000h ; Hex #1D
44 Db 000h,000h,000h,000h,010h,038h,038h,07Ch,07Ch,0FEh,0FEh,000h,000h,000h,000h,000h ; Hex #1E
45 Db 000h,000h,000h,000h,0FEh,0FEh,07Ch,07Ch,038h,038h,010h,000h,000h,000h,000h,000h ; Hex #1F
46 Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #20
47 Db 000h,000h,018h,03Ch,03Ch,03Ch,018h,018h,018h,000h,018h,018h,000h,000h,000h,000h ; Hex #21
48 Db 000h,066h,066h,066h,024h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #22
49 Db 000h,000h,000h,06Ch,06Ch,0FEh,06Ch,06Ch,06Ch,0FEh,06Ch,06Ch,000h,000h,000h,000h ; Hex #23
50 Db 018h,018h,07Ch,0C6h,0C2h,0C0h,07Ch,006h,006h,086h,0C6h,07Ch,018h,018h,000h,000h ; Hex #24
51 Db 000h,000h,000h,000h,0C2h,0C6h,00Ch,018h,030h,060h,0C6h,086h,000h,000h,000h,000h ; Hex #25
52 Db 000h,000h,038h,06Ch,06Ch,038h,076h,0DCh,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #26
53 Db 000h,030h,030h,030h,060h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #27
54 Db 000h,000h,00Ch,018h,030h,030h,030h,030h,030h,030h,018h,00Ch,000h,000h,000h,000h ; Hex #28
55 Db 000h,000h,030h,018h,00Ch,00Ch,00Ch,00Ch,00Ch,00Ch,018h,030h,000h,000h,000h,000h ; Hex #29
56 Db 000h,000h,000h,000h,000h,066h,03Ch,0FFh,03Ch,066h,000h,000h,000h,000h,000h,000h ; Hex #2A
57 Db 000h,000h,000h,000h,000h,018h,018h,07Eh,018h,018h,000h,000h,000h,000h,000h,000h ; Hex #2B
58 Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,018h,018h,018h,030h,000h,000h,000h ; Hex #2C
59 Db 000h,000h,000h,000h,000h,000h,000h,0FEh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #2D
60 Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,018h,018h,000h,000h,000h,000h ; Hex #2E
61 Db 000h,000h,000h,000h,002h,006h,00Ch,018h,030h,060h,0C0h,080h,000h,000h,000h,000h ; Hex #2F
62 Db 000h,000h,038h,06Ch,0C6h,0C6h,0D6h,0D6h,0C6h,0C6h,06Ch,038h,000h,000h,000h,000h ; Hex #30
63 Db 000h,000h,018h,038h,078h,018h,018h,018h,018h,018h,018h,07Eh,000h,000h,000h,000h ; Hex #31
64 Db 000h,000h,07Ch,0C6h,006h,00Ch,018h,030h,060h,0C0h,0C6h,0FEh,000h,000h,000h,000h ; Hex #32
65 Db 000h,000h,07Ch,0C6h,006h,006h,03Ch,006h,006h,006h,0C6h,07Ch,000h,000h,000h,000h ; Hex #33
66 Db 000h,000h,00Ch,01Ch,03Ch,06Ch,0CCh,0FEh,00Ch,00Ch,00Ch,01Eh,000h,000h,000h,000h ; Hex #34
67 Db 000h,000h,0FEh,0C0h,0C0h,0C0h,0FCh,006h,006h,006h,0C6h,07Ch,000h,000h,000h,000h ; Hex #35
68 Db 000h,000h,038h,060h,0C0h,0C0h,0FCh,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #36
69 Db 000h,000h,0FEh,0C6h,006h,006h,00Ch,018h,030h,030h,030h,030h,000h,000h,000h,000h ; Hex #37
70 Db 000h,000h,07Ch,0C6h,0C6h,0C6h,07Ch,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #38
71 Db 000h,000h,07Ch,0C6h,0C6h,0C6h,07Eh,006h,006h,006h,00Ch,078h,000h,000h,000h,000h ; Hex #39
72 Db 000h,000h,000h,000h,018h,018h,000h,000h,000h,018h,018h,000h,000h,000h,000h,000h ; Hex #3A
73 Db 000h,000h,000h,000h,018h,018h,000h,000h,000h,018h,018h,030h,000h,000h,000h,000h ; Hex #3B
74 Db 000h,000h,000h,006h,00Ch,018h,030h,060h,030h,018h,00Ch,006h,000h,000h,000h,000h ; Hex #3C
75 Db 000h,000h,000h,000h,000h,07Eh,000h,000h,07Eh,000h,000h,000h,000h,000h,000h,000h ; Hex #3D
76 Db 000h,000h,000h,060h,030h,018h,00Ch,006h,00Ch,018h,030h,060h,000h,000h,000h,000h ; Hex #3E
77 Db 000h,000h,07Ch,0C6h,0C6h,00Ch,018h,018h,018h,000h,018h,018h,000h,000h,000h,000h ; Hex #3F
78 Db 000h,000h,000h,07Ch,0C6h,0C6h,0DEh,0DEh,0DEh,0DCh,0C0h,07Ch,000h,000h,000h,000h ; Hex #40
79 Db 000h,000h,010h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #41
80 Db 000h,000h,0FCh,066h,066h,066h,07Ch,066h,066h,066h,066h,0FCh,000h,000h,000h,000h ; Hex #42
81 Db 000h,000h,03Ch,066h,0C2h,0C0h,0C0h,0C0h,0C0h,0C2h,066h,03Ch,000h,000h,000h,000h ; Hex #43
82 Db 000h,000h,0F8h,06Ch,066h,066h,066h,066h,066h,066h,06Ch,0F8h,000h,000h,000h,000h ; Hex #44
83 Db 000h,000h,0FEh,066h,062h,068h,078h,068h,060h,062h,066h,0FEh,000h,000h,000h,000h ; Hex #45
84 Db 000h,000h,0FEh,066h,062h,068h,078h,068h,060h,060h,060h,0F0h,000h,000h,000h,000h ; Hex #46
85 Db 000h,000h,03Ch,066h,0C2h,0C0h,0C0h,0DEh,0C6h,0C6h,066h,03Ah,000h,000h,000h,000h ; Hex #47
86 Db 000h,000h,0C6h,0C6h,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #48
87 Db 000h,000h,03Ch,018h,018h,018h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #49
88 Db 000h,000h,01Eh,00Ch,00Ch,00Ch,00Ch,00Ch,0CCh,0CCh,0CCh,078h,000h,000h,000h,000h ; Hex #4A
89 Db 000h,000h,0E6h,066h,066h,06Ch,078h,078h,06Ch,066h,066h,0E6h,000h,000h,000h,000h ; Hex #4B
90 Db 000h,000h,0F0h,060h,060h,060h,060h,060h,060h,062h,066h,0FEh,000h,000h,000h,000h ; Hex #4C
91 Db 000h,000h,0C6h,0EEh,0FEh,0FEh,0D6h,0C6h,0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #4D
92 Db 000h,000h,0C6h,0E6h,0F6h,0FEh,0DEh,0CEh,0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #4E
93 Db 000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #4F
94 Db 000h,000h,0FCh,066h,066h,066h,07Ch,060h,060h,060h,060h,0F0h,000h,000h,000h,000h ; Hex #50
95 Db 000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0D6h,0DEh,07Ch,00Ch,00Eh,000h,000h ; Hex #51
96 Db 000h,000h,0FCh,066h,066h,066h,07Ch,06Ch,066h,066h,066h,0E6h,000h,000h,000h,000h ; Hex #52
97 Db 000h,000h,07Ch,0C6h,0C6h,060h,038h,00Ch,006h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #53
98 Db 000h,000h,07Eh,07Eh,05Ah,018h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #54
99 Db 000h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #55
100 Db 000h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,06Ch,038h,010h,000h,000h,000h,000h ; Hex #56
101 Db 000h,000h,0C6h,0C6h,0C6h,0C6h,0D6h,0D6h,0D6h,0FEh,0EEh,06Ch,000h,000h,000h,000h ; Hex #57
102 Db 000h,000h,0C6h,0C6h,06Ch,07Ch,038h,038h,07Ch,06Ch,0C6h,0C6h,000h,000h,000h,000h ; Hex #58
103 Db 000h,000h,066h,066h,066h,066h,03Ch,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #59
104 Db 000h,000h,0FEh,0C6h,086h,00Ch,018h,030h,060h,0C2h,0C6h,0FEh,000h,000h,000h,000h ; Hex #5A
105 Db 000h,000h,03Ch,030h,030h,030h,030h,030h,030h,030h,030h,03Ch,000h,000h,000h,000h ; Hex #5B
106 Db 000h,000h,000h,080h,0C0h,0E0h,070h,038h,01Ch,00Eh,006h,002h,000h,000h,000h,000h ; Hex #5C
107 Db 000h,000h,03Ch,00Ch,00Ch,00Ch,00Ch,00Ch,00Ch,00Ch,00Ch,03Ch,000h,000h,000h,000h ; Hex #5D
108 Db 010h,038h,06Ch,0C6h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #5E
109 Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,0FFh,000h,000h ; Hex #5F
110 Db 000h,030h,018h,00Ch,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #60
111 Db 000h,000h,000h,000h,000h,078h,00Ch,07Ch,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #61
112 Db 000h,000h,0E0h,060h,060h,078h,06Ch,066h,066h,066h,066h,07Ch,000h,000h,000h,000h ; Hex #62
113 Db 000h,000h,000h,000h,000h,07Ch,0C6h,0C0h,0C0h,0C0h,0C6h,07Ch,000h,000h,000h,000h ; Hex #63
114 Db 000h,000h,01Ch,00Ch,00Ch,03Ch,06Ch,0CCh,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #64
115 Db 000h,000h,000h,000h,000h,07Ch,0C6h,0FEh,0C0h,0C0h,0C6h,07Ch,000h,000h,000h,000h ; Hex #65
116 Db 000h,000h,01Ch,036h,032h,030h,078h,030h,030h,030h,030h,078h,000h,000h,000h,000h ; Hex #66
117 Db 000h,000h,000h,000h,000h,076h,0CCh,0CCh,0CCh,0CCh,0CCh,07Ch,00Ch,0CCh,078h,000h ; Hex #67
118 Db 000h,000h,0E0h,060h,060h,06Ch,076h,066h,066h,066h,066h,0E6h,000h,000h,000h,000h ; Hex #68
119 Db 000h,000h,018h,018h,000h,038h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #69
120 Db 000h,000h,006h,006h,000h,00Eh,006h,006h,006h,006h,006h,006h,066h,066h,03Ch,000h ; Hex #6A
121 Db 000h,000h,0E0h,060h,060h,066h,06Ch,078h,078h,06Ch,066h,0E6h,000h,000h,000h,000h ; Hex #6B
122 Db 000h,000h,038h,018h,018h,018h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #6C
123 Db 000h,000h,000h,000h,000h,0ECh,0FEh,0D6h,0D6h,0D6h,0D6h,0C6h,000h,000h,000h,000h ; Hex #6D
124 Db 000h,000h,000h,000h,000h,0DCh,066h,066h,066h,066h,066h,066h,000h,000h,000h,000h ; Hex #6E
125 Db 000h,000h,000h,000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #6F
126 Db 000h,000h,000h,000h,000h,0DCh,066h,066h,066h,066h,066h,07Ch,060h,060h,0F0h,000h ; Hex #70
127 Db 000h,000h,000h,000h,000h,076h,0CCh,0CCh,0CCh,0CCh,0CCh,07Ch,00Ch,00Ch,01Eh,000h ; Hex #71
128 Db 000h,000h,000h,000h,000h,0DCh,076h,066h,060h,060h,060h,0F0h,000h,000h,000h,000h ; Hex #72
129 Db 000h,000h,000h,000h,000h,07Ch,0C6h,060h,038h,00Ch,0C6h,07Ch,000h,000h,000h,000h ; Hex #73
130 Db 000h,000h,010h,030h,030h,0FCh,030h,030h,030h,030h,036h,01Ch,000h,000h,000h,000h ; Hex #74
131 Db 000h,000h,000h,000h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #75
132 Db 000h,000h,000h,000h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,06Ch,038h,000h,000h,000h,000h ; Hex #76
133 Db 000h,000h,000h,000h,000h,0C6h,0C6h,0D6h,0D6h,0D6h,0FEh,06Ch,000h,000h,000h,000h ; Hex #77
134 Db 000h,000h,000h,000h,000h,0C6h,06Ch,038h,038h,038h,06Ch,0C6h,000h,000h,000h,000h ; Hex #78
135 Db 000h,000h,000h,000h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Eh,006h,00Ch,0F8h,000h ; Hex #79
136 Db 000h,000h,000h,000h,000h,0FEh,0CCh,018h,030h,060h,0C6h,0FEh,000h,000h,000h,000h ; Hex #7A
137 Db 000h,000h,00Eh,018h,018h,018h,070h,018h,018h,018h,018h,00Eh,000h,000h,000h,000h ; Hex #7B
138 Db 000h,000h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,000h,000h,000h,000h ; Hex #7C
139 Db 000h,000h,070h,018h,018h,018h,00Eh,018h,018h,018h,018h,070h,000h,000h,000h,000h ; Hex #7D
140 Db 000h,076h,0DCh,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #7E
141 Db 000h,000h,000h,000h,010h,038h,06Ch,0C6h,0C6h,0C6h,0FEh,000h,000h,000h,000h,000h ; Hex #7F
142 Db 000h,000h,03Ch,066h,0C2h,0C0h,0C0h,0C0h,0C0h,0C2h,066h,03Ch,018h,070h,000h,000h ; Hex #80
143 Db 000h,000h,0CCh,000h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #81
144 Db 000h,00Ch,018h,030h,000h,07Ch,0C6h,0FEh,0C0h,0C0h,0C6h,07Ch,000h,000h,000h,000h ; Hex #82
145 Db 000h,010h,038h,06Ch,000h,078h,00Ch,07Ch,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #83
146 Db 038h,06Ch,0C6h,010h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #84
147 Db 000h,060h,030h,018h,000h,078h,00Ch,07Ch,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #85
148 Db 000h,000h,000h,07Fh,0DBh,0DBh,0DBh,07Bh,01Bh,01Bh,01Bh,01Bh,000h,000h,000h,000h ; Hex #86
149 Db 000h,000h,000h,000h,000h,07Ch,0C6h,0C0h,0C0h,0C0h,0C6h,07Ch,018h,070h,000h,000h ; Hex #87
150 Db 000h,010h,038h,06Ch,000h,07Ch,0C6h,0FEh,0C0h,0C0h,0C6h,07Ch,000h,000h,000h,000h ; Hex #88
151 Db 000h,000h,0C6h,000h,000h,07Ch,0C6h,0FEh,0C0h,0C0h,0C6h,07Ch,000h,000h,000h,000h ; Hex #89
152 Db 000h,060h,030h,018h,000h,07Ch,0C6h,0FEh,0C0h,0C0h,0C6h,07Ch,000h,000h,000h,000h ; Hex #8A
153 Db 000h,000h,066h,000h,000h,038h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #8B
154 Db 000h,018h,03Ch,066h,000h,038h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #8C
155 Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,0FFh,000h,0FFh,000h ; Hex #8D
156 Db 018h,00Ch,006h,010h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #8E
157 Db 000h,07Ch,0C6h,060h,038h,06Ch,0C6h,0C6h,06Ch,038h,00Ch,0C6h,07Ch,000h,000h,000h ; Hex #8F
158 Db 00Ch,018h,000h,0FEh,066h,062h,068h,078h,068h,062h,066h,0FEh,000h,000h,000h,000h ; Hex #90
159 Db 030h,018h,000h,0FEh,066h,062h,068h,078h,068h,062h,066h,0FEh,000h,000h,000h,000h ; Hex #91
160 Db 038h,06Ch,000h,0FEh,066h,062h,068h,078h,068h,062h,066h,0FEh,000h,000h,000h,000h ; Hex #92
161 Db 000h,010h,038h,06Ch,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #93
162 Db 000h,0C6h,000h,0FEh,066h,062h,068h,078h,068h,062h,066h,0FEh,000h,000h,000h,000h ; Hex #94
163 Db 000h,066h,000h,03Ch,018h,018h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #95
164 Db 000h,030h,078h,0CCh,000h,0CCh,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #96
165 Db 000h,060h,030h,018h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #97
166 Db 000h,000h,000h,000h,0C6h,07Ch,0C6h,0C6h,0C6h,0C6h,07Ch,0C6h,000h,000h,000h,000h ; Hex #98
167 Db 038h,06Ch,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #99
168 Db 000h,0C6h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #9A
169 Db 000h,018h,018h,07Ch,0C6h,0C0h,0C0h,0C0h,0C6h,07Ch,018h,018h,000h,000h,000h,000h ; Hex #9B
170 Db 000h,038h,06Ch,064h,060h,0F0h,060h,060h,060h,060h,0E6h,0FCh,000h,000h,000h,000h ; Hex #9C
171 Db 030h,018h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #9D
172 Db 038h,06Ch,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #9E
173 Db 000h,00Eh,01Bh,018h,018h,018h,07Eh,018h,018h,018h,0D8h,070h,000h,000h,000h,000h ; Hex #9F
174 Db 000h,018h,018h,018h,018h,018h,000h,000h,018h,018h,018h,018h,018h,000h,000h,000h ; Hex #A0
175 Db 000h,00Ch,018h,030h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #A1
176 Db 000h,018h,030h,060h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #A2
177 Db 000h,018h,030h,060h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #A3
178 Db 000h,0C6h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #A4
179 Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,018h,00Ch,078h,000h,000h ; Hex #A5
180 Db 000h,07Ch,006h,03Ch,006h,006h,07Ch,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #A6
181 Db 000h,0FFh,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #A7
182 Db 03Ch,066h,000h,03Ch,018h,018h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #A8
183 Db 000h,000h,000h,000h,000h,000h,0FEh,0C0h,0C0h,0C0h,0C0h,000h,000h,000h,000h,000h ; Hex #A9
184 Db 000h,000h,000h,000h,000h,000h,0FEh,006h,006h,006h,006h,000h,000h,000h,000h,000h ; Hex #AA
185 Db 000h,060h,0E0h,062h,066h,06Ch,018h,030h,060h,0DCh,086h,00Ch,018h,03Eh,000h,000h ; Hex #AB
186 Db 000h,060h,0E0h,062h,066h,06Ch,018h,030h,066h,0CEh,09Ah,03Fh,006h,006h,000h,000h ; Hex #AC
187 Db 000h,0E0h,030h,0E2h,036h,0ECh,018h,030h,066h,0CEh,09Ah,03Fh,006h,006h,000h,000h ; Hex #AD
188 Db 000h,000h,000h,000h,000h,036h,06Ch,0D8h,06Ch,036h,000h,000h,000h,000h,000h,000h ; Hex #AE
189 Db 000h,000h,000h,000h,000h,0D8h,06Ch,036h,06Ch,0D8h,000h,000h,000h,000h,000h,000h ; Hex #AF
190 Db 011h,044h,011h,044h,011h,044h,011h,044h,011h,044h,011h,044h,011h,044h,011h,044h ; Hex #B0
191 Db 055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh ; Hex #B1
192 Db 0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h ; Hex #B2
193 Db 018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #B3
194 Db 018h,018h,018h,018h,018h,018h,018h,0F8h,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #B4
195 Db 018h,018h,018h,018h,018h,0F8h,018h,0F8h,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #B5
196 Db 036h,036h,036h,036h,036h,036h,036h,0F6h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #B6
197 Db 000h,000h,000h,000h,000h,000h,000h,0FEh,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #B7
198 Db 000h,000h,000h,000h,000h,0F8h,018h,0F8h,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #B8
199 Db 036h,036h,036h,036h,036h,0F6h,006h,0F6h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #B9
200 Db 036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #BA
201 Db 000h,000h,000h,000h,000h,0FEh,006h,0F6h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #BB
202 Db 036h,036h,036h,036h,036h,0F6h,006h,0FEh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #BC
203 Db 036h,036h,036h,036h,036h,036h,036h,0FEh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #BD
204 Db 018h,018h,018h,018h,018h,0F8h,018h,0F8h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #BE
205 Db 000h,000h,000h,000h,000h,000h,000h,0F8h,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #BF
206 Db 018h,018h,018h,018h,018h,018h,018h,01Fh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #C0
207 Db 018h,018h,018h,018h,018h,018h,018h,0FFh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #C1
208 Db 000h,000h,000h,000h,000h,000h,000h,0FFh,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #C2
209 Db 018h,018h,018h,018h,018h,018h,018h,01Fh,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #C3
210 Db 000h,000h,000h,000h,000h,000h,000h,0FFh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #C4
211 Db 018h,018h,018h,018h,018h,018h,018h,0FFh,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #C5
212 Db 018h,018h,018h,018h,018h,01Fh,018h,01Fh,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #C6
213 Db 036h,036h,036h,036h,036h,036h,036h,037h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #C7
214 Db 036h,036h,036h,036h,036h,037h,030h,03Fh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #C8
215 Db 000h,000h,000h,000h,000h,03Fh,030h,037h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #C9
216 Db 036h,036h,036h,036h,036h,0F7h,000h,0FFh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #CA
217 Db 000h,000h,000h,000h,000h,0FFh,000h,0F7h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #CB
218 Db 036h,036h,036h,036h,036h,037h,030h,037h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #CC
219 Db 000h,000h,000h,000h,000h,0FFh,000h,0FFh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #CD
220 Db 036h,036h,036h,036h,036h,0F7h,000h,0F7h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #CE
221 Db 018h,018h,018h,018h,018h,0FFh,000h,0FFh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #CF
222 Db 036h,036h,036h,036h,036h,036h,036h,0FFh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #D0
223 Db 000h,000h,000h,000h,000h,0FFh,000h,0FFh,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #D1
224 Db 000h,000h,000h,000h,000h,000h,000h,0FFh,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #D2
225 Db 036h,036h,036h,036h,036h,036h,036h,03Fh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #D3
226 Db 018h,018h,018h,018h,018h,01Fh,018h,01Fh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #D4
227 Db 000h,000h,000h,000h,000h,01Fh,018h,01Fh,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #D5
228 Db 000h,000h,000h,000h,000h,000h,000h,03Fh,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #D6
229 Db 036h,036h,036h,036h,036h,036h,036h,0FFh,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #D7
230 Db 018h,018h,018h,018h,018h,0FFh,018h,0FFh,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #D8
231 Db 018h,018h,018h,018h,018h,018h,018h,0F8h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #D9
232 Db 000h,000h,000h,000h,000h,000h,000h,01Fh,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #DA
233 Db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh ; Hex #DB
234 Db 000h,000h,000h,000h,000h,000h,000h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh ; Hex #DC
235 Db 0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h ; Hex #DD
236 Db 00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh ; Hex #DE
237 Db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #DF
238 Db 000h,000h,000h,000h,000h,076h,0DCh,0D8h,0D8h,0D8h,0DCh,076h,000h,000h,000h,000h ; Hex #E0
239 Db 000h,000h,078h,0CCh,0CCh,0CCh,0D8h,0CCh,0C6h,0C6h,0C6h,0CCh,000h,000h,000h,000h ; Hex #E1
240 Db 000h,000h,0FEh,0C6h,0C6h,0C0h,0C0h,0C0h,0C0h,0C0h,0C0h,0C0h,000h,000h,000h,000h ; Hex #E2
241 Db 000h,000h,000h,000h,000h,0FEh,06Ch,06Ch,06Ch,06Ch,06Ch,06Ch,000h,000h,000h,000h ; Hex #E3
242 Db 000h,000h,0FEh,0C6h,060h,030h,018h,018h,030h,060h,0C6h,0FEh,000h,000h,000h,000h ; Hex #E4
243 Db 000h,000h,000h,000h,000h,07Eh,0D8h,0D8h,0D8h,0D8h,0D8h,070h,000h,000h,000h,000h ; Hex #E5
244 Db 000h,000h,000h,000h,000h,066h,066h,066h,066h,066h,066h,07Ch,060h,060h,0C0h,000h ; Hex #E6
245 Db 000h,000h,000h,000h,076h,0DCh,018h,018h,018h,018h,018h,018h,000h,000h,000h,000h ; Hex #E7
246 Db 000h,000h,07Eh,018h,03Ch,066h,066h,066h,066h,03Ch,018h,07Eh,000h,000h,000h,000h ; Hex #E8
247 Db 000h,000h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,06Ch,038h,000h,000h,000h,000h ; Hex #E9
248 Db 000h,000h,038h,06Ch,0C6h,0C6h,0C6h,06Ch,06Ch,06Ch,06Ch,0EEh,000h,000h,000h,000h ; Hex #EA
249 Db 000h,000h,01Eh,030h,018h,00Ch,03Eh,066h,066h,066h,066h,03Ch,000h,000h,000h,000h ; Hex #EB
250 Db 000h,000h,000h,000h,000h,07Eh,0DBh,0DBh,0DBh,07Eh,000h,000h,000h,000h,000h,000h ; Hex #EC
251 Db 000h,000h,000h,003h,006h,07Eh,0DBh,0DBh,0F3h,07Eh,060h,0C0h,000h,000h,000h,000h ; Hex #ED
252 Db 000h,000h,01Ch,030h,060h,060h,07Ch,060h,060h,060h,030h,01Ch,000h,000h,000h,000h ; Hex #EE
253 Db 000h,000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #EF
254 Db 000h,000h,000h,000h,0FEh,000h,000h,0FEh,000h,000h,0FEh,000h,000h,000h,000h,000h ; Hex #F0
255 Db 000h,000h,000h,000h,018h,018h,07Eh,018h,018h,000h,000h,07Eh,000h,000h,000h,000h ; Hex #F1
256 Db 000h,000h,000h,030h,018h,00Ch,006h,00Ch,018h,030h,000h,07Eh,000h,000h,000h,000h ; Hex #F2
257 Db 000h,000h,000h,00Ch,018h,030h,060h,030h,018h,00Ch,000h,07Eh,000h,000h,000h,000h ; Hex #F3
258 Db 000h,000h,00Eh,01Bh,01Bh,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #F4
259 Db 018h,018h,018h,018h,018h,018h,018h,018h,018h,0D8h,0D8h,0D8h,070h,000h,000h,000h ; Hex #F5
260 Db 000h,000h,000h,000h,000h,018h,000h,07Eh,000h,018h,000h,000h,000h,000h,000h,000h ; Hex #F6
261 Db 000h,000h,000h,000h,000h,076h,0DCh,000h,076h,0DCh,000h,000h,000h,000h,000h,000h ; Hex #F7
262 Db 000h,038h,06Ch,06Ch,038h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #F8
263 Db 000h,000h,000h,000h,000h,000h,000h,018h,018h,000h,000h,000h,000h,000h,000h,000h ; Hex #F9
264 Db 000h,000h,000h,000h,000h,000h,000h,018h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #FA
265 Db 000h,00Fh,00Ch,00Ch,00Ch,00Ch,00Ch,0ECh,06Ch,06Ch,03Ch,01Ch,000h,000h,000h,000h ; Hex #FB
266 Db 000h,06Ch,036h,036h,036h,036h,036h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #FC
267 Db 000h,03Ch,066h,00Ch,018h,032h,07Eh,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #FD
268 Db 000h,000h,000h,000h,07Eh,07Eh,07Eh,07Eh,07Eh,07Eh,07Eh,000h,000h,000h,000h,000h ; Hex #FE
269 Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #FF
270
diff --git a/v4.0/src/DEV/DISPLAY/EGA/863-8X8.ASM b/v4.0/src/DEV/DISPLAY/EGA/863-8X8.ASM
new file mode 100644
index 0000000..d11925f
--- /dev/null
+++ b/v4.0/src/DEV/DISPLAY/EGA/863-8X8.ASM
@@ -0,0 +1,270 @@
1;***************************************************
2; CHARACTER FONT FILE
3; Source Assembler File
4;
5; CODE PAGE: 863
6; FONT RESOLUTION: 8 x 8
7;
8; DATE CREATED:05-28-1987
9;
10;
11; Output file from: MULTIFON, Version 1A
12;
13;***************************************************
14 Db 000h,000h,000h,000h,000h,000h,000h,000h ; Hex #0
15 Db 07Eh,081h,0A5h,081h,0BDh,099h,081h,07Eh ; Hex #1
16 Db 07Eh,0FFh,0DBh,0FFh,0C3h,0E7h,0FFh,07Eh ; Hex #2
17 Db 06Ch,0FEh,0FEh,0FEh,07Ch,038h,010h,000h ; Hex #3
18 Db 010h,038h,07Ch,0FEh,07Ch,038h,010h,000h ; Hex #4
19 Db 038h,07Ch,038h,0FEh,0FEh,0D6h,010h,038h ; Hex #5
20 Db 010h,038h,07Ch,0FEh,0FEh,07Ch,010h,038h ; Hex #6
21 Db 000h,000h,018h,03Ch,03Ch,018h,000h,000h ; Hex #7
22 Db 0FFh,0FFh,0E7h,0C3h,0C3h,0E7h,0FFh,0FFh ; Hex #8
23 Db 000h,03Ch,066h,042h,042h,066h,03Ch,000h ; Hex #9
24 Db 0FFh,0C3h,099h,0BDh,0BDh,099h,0C3h,0FFh ; Hex #A
25 Db 00Fh,007h,00Fh,07Dh,0CCh,0CCh,0CCh,078h ; Hex #B
26 Db 03Ch,066h,066h,066h,03Ch,018h,07Eh,018h ; Hex #C
27 Db 03Fh,033h,03Fh,030h,030h,070h,0F0h,0E0h ; Hex #D
28 Db 07Fh,063h,07Fh,063h,063h,067h,0E6h,0C0h ; Hex #E
29 Db 018h,0DBh,03Ch,0E7h,0E7h,03Ch,0DBh,018h ; Hex #F
30 Db 080h,0E0h,0F8h,0FEh,0F8h,0E0h,080h,000h ; Hex #10
31 Db 002h,00Eh,03Eh,0FEh,03Eh,00Eh,002h,000h ; Hex #11
32 Db 018h,03Ch,07Eh,018h,018h,07Eh,03Ch,018h ; Hex #12
33 Db 066h,066h,066h,066h,066h,000h,066h,000h ; Hex #13
34 Db 07Fh,0DBh,0DBh,07Bh,01Bh,01Bh,01Bh,000h ; Hex #14
35 Db 03Eh,061h,03Ch,066h,066h,03Ch,086h,07Ch ; Hex #15
36 Db 000h,000h,000h,000h,07Eh,07Eh,07Eh,000h ; Hex #16
37 Db 018h,03Ch,07Eh,018h,07Eh,03Ch,018h,0FFh ; Hex #17
38 Db 018h,03Ch,07Eh,018h,018h,018h,018h,000h ; Hex #18
39 Db 018h,018h,018h,018h,07Eh,03Ch,018h,000h ; Hex #19
40 Db 000h,018h,00Ch,0FEh,00Ch,018h,000h,000h ; Hex #1A
41 Db 000h,030h,060h,0FEh,060h,030h,000h,000h ; Hex #1B
42 Db 000h,000h,0C0h,0C0h,0C0h,0FEh,000h,000h ; Hex #1C
43 Db 000h,024h,066h,0FFh,066h,024h,000h,000h ; Hex #1D
44 Db 000h,018h,03Ch,07Eh,0FFh,0FFh,000h,000h ; Hex #1E
45 Db 000h,0FFh,0FFh,07Eh,03Ch,018h,000h,000h ; Hex #1F
46 Db 000h,000h,000h,000h,000h,000h,000h,000h ; Hex #20
47 Db 018h,03Ch,03Ch,018h,018h,000h,018h,000h ; Hex #21
48 Db 066h,066h,024h,000h,000h,000h,000h,000h ; Hex #22
49 Db 06Ch,06Ch,0FEh,06Ch,0FEh,06Ch,06Ch,000h ; Hex #23
50 Db 018h,03Eh,060h,03Ch,006h,07Ch,018h,000h ; Hex #24
51 Db 000h,0C6h,0CCh,018h,030h,066h,0C6h,000h ; Hex #25
52 Db 038h,06Ch,038h,076h,0DCh,0CCh,076h,000h ; Hex #26
53 Db 018h,018h,030h,000h,000h,000h,000h,000h ; Hex #27
54 Db 00Ch,018h,030h,030h,030h,018h,00Ch,000h ; Hex #28
55 Db 030h,018h,00Ch,00Ch,00Ch,018h,030h,000h ; Hex #29
56 Db 000h,066h,03Ch,0FFh,03Ch,066h,000h,000h ; Hex #2A
57 Db 000h,018h,018h,07Eh,018h,018h,000h,000h ; Hex #2B
58 Db 000h,000h,000h,000h,000h,018h,018h,030h ; Hex #2C
59 Db 000h,000h,000h,07Eh,000h,000h,000h,000h ; Hex #2D
60 Db 000h,000h,000h,000h,000h,018h,018h,000h ; Hex #2E
61 Db 006h,00Ch,018h,030h,060h,0C0h,080h,000h ; Hex #2F
62 Db 038h,06Ch,0C6h,0D6h,0C6h,06Ch,038h,000h ; Hex #30
63 Db 018h,038h,018h,018h,018h,018h,07Eh,000h ; Hex #31
64 Db 07Ch,0C6h,006h,01Ch,030h,066h,0FEh,000h ; Hex #32
65 Db 07Ch,0C6h,006h,03Ch,006h,0C6h,07Ch,000h ; Hex #33
66 Db 01Ch,03Ch,06Ch,0CCh,0FEh,00Ch,01Eh,000h ; Hex #34
67 Db 0FEh,0C0h,0C0h,0FCh,006h,0C6h,07Ch,000h ; Hex #35
68 Db 038h,060h,0C0h,0FCh,0C6h,0C6h,07Ch,000h ; Hex #36
69 Db 0FEh,0C6h,00Ch,018h,030h,030h,030h,000h ; Hex #37
70 Db 07Ch,0C6h,0C6h,07Ch,0C6h,0C6h,07Ch,000h ; Hex #38
71 Db 07Ch,0C6h,0C6h,07Eh,006h,00Ch,078h,000h ; Hex #39
72 Db 000h,018h,018h,000h,000h,018h,018h,000h ; Hex #3A
73 Db 000h,018h,018h,000h,000h,018h,018h,030h ; Hex #3B
74 Db 006h,00Ch,018h,030h,018h,00Ch,006h,000h ; Hex #3C
75 Db 000h,000h,07Eh,000h,000h,07Eh,000h,000h ; Hex #3D
76 Db 060h,030h,018h,00Ch,018h,030h,060h,000h ; Hex #3E
77 Db 07Ch,0C6h,00Ch,018h,018h,000h,018h,000h ; Hex #3F
78 Db 07Ch,0C6h,0DEh,0DEh,0DEh,0C0h,078h,000h ; Hex #40
79 Db 038h,06Ch,0C6h,0FEh,0C6h,0C6h,0C6h,000h ; Hex #41
80 Db 0FCh,066h,066h,07Ch,066h,066h,0FCh,000h ; Hex #42
81 Db 03Ch,066h,0C0h,0C0h,0C0h,066h,03Ch,000h ; Hex #43
82 Db 0F8h,06Ch,066h,066h,066h,06Ch,0F8h,000h ; Hex #44
83 Db 0FEh,062h,068h,078h,068h,062h,0FEh,000h ; Hex #45
84 Db 0FEh,062h,068h,078h,068h,060h,0F0h,000h ; Hex #46
85 Db 03Ch,066h,0C0h,0C0h,0CEh,066h,03Ah,000h ; Hex #47
86 Db 0C6h,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,000h ; Hex #48
87 Db 03Ch,018h,018h,018h,018h,018h,03Ch,000h ; Hex #49
88 Db 01Eh,00Ch,00Ch,00Ch,0CCh,0CCh,078h,000h ; Hex #4A
89 Db 0E6h,066h,06Ch,078h,06Ch,066h,0E6h,000h ; Hex #4B
90 Db 0F0h,060h,060h,060h,062h,066h,0FEh,000h ; Hex #4C
91 Db 0C6h,0EEh,0FEh,0FEh,0D6h,0C6h,0C6h,000h ; Hex #4D
92 Db 0C6h,0E6h,0F6h,0DEh,0CEh,0C6h,0C6h,000h ; Hex #4E
93 Db 07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h ; Hex #4F
94 Db 0FCh,066h,066h,07Ch,060h,060h,0F0h,000h ; Hex #50
95 Db 07Ch,0C6h,0C6h,0C6h,0C6h,0CEh,07Ch,00Eh ; Hex #51
96 Db 0FCh,066h,066h,07Ch,06Ch,066h,0E6h,000h ; Hex #52
97 Db 03Ch,066h,030h,018h,00Ch,066h,03Ch,000h ; Hex #53
98 Db 07Eh,07Eh,05Ah,018h,018h,018h,03Ch,000h ; Hex #54
99 Db 0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h ; Hex #55
100 Db 0C6h,0C6h,0C6h,0C6h,0C6h,06Ch,038h,000h ; Hex #56
101 Db 0C6h,0C6h,0C6h,0D6h,0D6h,0FEh,06Ch,000h ; Hex #57
102 Db 0C6h,0C6h,06Ch,038h,06Ch,0C6h,0C6h,000h ; Hex #58
103 Db 066h,066h,066h,03Ch,018h,018h,03Ch,000h ; Hex #59
104 Db 0FEh,0C6h,08Ch,018h,032h,066h,0FEh,000h ; Hex #5A
105 Db 03Ch,030h,030h,030h,030h,030h,03Ch,000h ; Hex #5B
106 Db 0C0h,060h,030h,018h,00Ch,006h,002h,000h ; Hex #5C
107 Db 03Ch,00Ch,00Ch,00Ch,00Ch,00Ch,03Ch,000h ; Hex #5D
108 Db 010h,038h,06Ch,0C6h,000h,000h,000h,000h ; Hex #5E
109 Db 000h,000h,000h,000h,000h,000h,000h,0FFh ; Hex #5F
110 Db 030h,018h,00Ch,000h,000h,000h,000h,000h ; Hex #60
111 Db 000h,000h,078h,00Ch,07Ch,0CCh,076h,000h ; Hex #61
112 Db 0E0h,060h,07Ch,066h,066h,066h,0DCh,000h ; Hex #62
113 Db 000h,000h,07Ch,0C6h,0C0h,0C6h,07Ch,000h ; Hex #63
114 Db 01Ch,00Ch,07Ch,0CCh,0CCh,0CCh,076h,000h ; Hex #64
115 Db 000h,000h,07Ch,0C6h,0FEh,0C0h,07Ch,000h ; Hex #65
116 Db 03Ch,066h,060h,0F8h,060h,060h,0F0h,000h ; Hex #66
117 Db 000h,000h,076h,0CCh,0CCh,07Ch,00Ch,0F8h ; Hex #67
118 Db 0E0h,060h,06Ch,076h,066h,066h,0E6h,000h ; Hex #68
119 Db 018h,000h,038h,018h,018h,018h,03Ch,000h ; Hex #69
120 Db 006h,000h,006h,006h,006h,066h,066h,03Ch ; Hex #6A
121 Db 0E0h,060h,066h,06Ch,078h,06Ch,0E6h,000h ; Hex #6B
122 Db 038h,018h,018h,018h,018h,018h,03Ch,000h ; Hex #6C
123 Db 000h,000h,0ECh,0FEh,0D6h,0D6h,0D6h,000h ; Hex #6D
124 Db 000h,000h,0DCh,066h,066h,066h,066h,000h ; Hex #6E
125 Db 000h,000h,07Ch,0C6h,0C6h,0C6h,07Ch,000h ; Hex #6F
126 Db 000h,000h,0DCh,066h,066h,07Ch,060h,0F0h ; Hex #70
127 Db 000h,000h,076h,0CCh,0CCh,07Ch,00Ch,01Eh ; Hex #71
128 Db 000h,000h,0DCh,076h,060h,060h,0F0h,000h ; Hex #72
129 Db 000h,000h,07Eh,0C0h,07Ch,006h,0FCh,000h ; Hex #73
130 Db 030h,030h,0FCh,030h,030h,036h,01Ch,000h ; Hex #74
131 Db 000h,000h,0CCh,0CCh,0CCh,0CCh,076h,000h ; Hex #75
132 Db 000h,000h,0C6h,0C6h,0C6h,06Ch,038h,000h ; Hex #76
133 Db 000h,000h,0C6h,0D6h,0D6h,0FEh,06Ch,000h ; Hex #77
134 Db 000h,000h,0C6h,06Ch,038h,06Ch,0C6h,000h ; Hex #78
135 Db 000h,000h,0C6h,0C6h,0C6h,07Eh,006h,0FCh ; Hex #79
136 Db 000h,000h,07Eh,04Ch,018h,032h,07Eh,000h ; Hex #7A
137 Db 00Eh,018h,018h,070h,018h,018h,00Eh,000h ; Hex #7B
138 Db 018h,018h,018h,018h,018h,018h,018h,000h ; Hex #7C
139 Db 070h,018h,018h,00Eh,018h,018h,070h,000h ; Hex #7D
140 Db 076h,0DCh,000h,000h,000h,000h,000h,000h ; Hex #7E
141 Db 000h,010h,038h,06Ch,0C6h,0C6h,0FEh,000h ; Hex #7F
142 Db 07Ch,0C6h,0C0h,0C0h,0C6h,07Ch,00Ch,078h ; Hex #80
143 Db 0CCh,000h,0CCh,0CCh,0CCh,0CCh,076h,000h ; Hex #81
144 Db 00Ch,018h,07Ch,0C6h,0FEh,0C0h,07Ch,000h ; Hex #82
145 Db 07Ch,082h,078h,00Ch,07Ch,0CCh,076h,000h ; Hex #83
146 Db 07Ch,082h,038h,06Ch,0C6h,0FEh,0C6h,000h ; Hex #84
147 Db 030h,018h,078h,00Ch,07Ch,0CCh,076h,000h ; Hex #85
148 Db 07Fh,0DBh,0DBh,07Bh,01Bh,01Bh,01Bh,000h ; Hex #86
149 Db 000h,000h,07Eh,0C0h,0C0h,07Eh,00Ch,038h ; Hex #87
150 Db 07Ch,082h,07Ch,0C6h,0FEh,0C0h,07Ch,000h ; Hex #88
151 Db 0C6h,000h,07Ch,0C6h,0FEh,0C0h,07Ch,000h ; Hex #89
152 Db 030h,018h,07Ch,0C6h,0FEh,0C0h,07Ch,000h ; Hex #8A
153 Db 066h,000h,038h,018h,018h,018h,03Ch,000h ; Hex #8B
154 Db 07Ch,082h,038h,018h,018h,018h,03Ch,000h ; Hex #8C
155 Db 000h,000h,000h,000h,000h,0FFh,000h,0FFh ; Hex #8D
156 Db 018h,00Ch,038h,06Ch,0C6h,0FEh,0C6h,000h ; Hex #8E
157 Db 03Eh,061h,03Ch,066h,066h,03Ch,086h,07Ch ; Hex #8F
158 Db 018h,030h,0FEh,0C0h,0F8h,0C0h,0FEh,000h ; Hex #90
159 Db 030h,018h,0FEh,0C0h,0FCh,0C0h,0FEh,000h ; Hex #91
160 Db 038h,044h,0FEh,0C0h,0FCh,0C0h,0FEh,000h ; Hex #92
161 Db 07Ch,082h,07Ch,0C6h,0C6h,0C6h,07Ch,000h ; Hex #93
162 Db 0C6h,000h,0FEh,0C0h,0FCh,0C0h,0FEh,000h ; Hex #94
163 Db 066h,000h,03Ch,018h,018h,018h,03Ch,000h ; Hex #95
164 Db 078h,084h,000h,0CCh,0CCh,0CCh,076h,000h ; Hex #96
165 Db 060h,030h,0CCh,0CCh,0CCh,0CCh,076h,000h ; Hex #97
166 Db 000h,0C6h,07Ch,0C6h,0C6h,07Ch,0C6h,000h ; Hex #98
167 Db 07Ch,082h,038h,06Ch,0C6h,06Ch,038h,000h ; Hex #99
168 Db 0C6h,000h,0C6h,0C6h,0C6h,0C6h,07Ch,000h ; Hex #9A
169 Db 018h,018h,07Eh,0C0h,0C0h,07Eh,018h,018h ; Hex #9B
170 Db 038h,06Ch,064h,0F0h,060h,066h,0FCh,000h ; Hex #9C
171 Db 060h,030h,0C6h,0C6h,0C6h,0C6h,07Ch,000h ; Hex #9D
172 Db 07Ch,082h,000h,0C6h,0C6h,0C6h,07Ch,000h ; Hex #9E
173 Db 00Eh,01Bh,018h,03Ch,018h,0D8h,070h,000h ; Hex #9F
174 Db 018h,018h,018h,000h,000h,018h,018h,018h ; Hex #A0
175 Db 00Ch,018h,030h,000h,000h,000h,000h,000h ; Hex #A1
176 Db 00Ch,018h,07Ch,0C6h,0C6h,0C6h,07Ch,000h ; Hex #A2
177 Db 018h,030h,0CCh,0CCh,0CCh,0CCh,076h,000h ; Hex #A3
178 Db 000h,0C6h,000h,000h,000h,000h,000h,000h ; Hex #A4
179 Db 000h,000h,000h,000h,000h,018h,00Ch,078h ; Hex #A5
180 Db 078h,00Ch,038h,00Ch,078h,000h,000h,000h ; Hex #A6
181 Db 0FFh,000h,000h,000h,000h,000h,000h,000h ; Hex #A7
182 Db 07Eh,081h,03Ch,018h,018h,018h,03Ch,000h ; Hex #A8
183 Db 000h,000h,000h,0FEh,0C0h,0C0h,000h,000h ; Hex #A9
184 Db 000h,000h,000h,0FEh,006h,006h,000h,000h ; Hex #AA
185 Db 063h,0E6h,06Ch,07Eh,033h,066h,0CCh,00Fh ; Hex #AB
186 Db 063h,0E6h,06Ch,07Ah,036h,06Ah,0DFh,006h ; Hex #AC
187 Db 0E1h,032h,064h,03Ah,0F6h,02Ah,05Fh,082h ; Hex #AD
188 Db 000h,033h,066h,0CCh,066h,033h,000h,000h ; Hex #AE
189 Db 000h,0CCh,066h,033h,066h,0CCh,000h,000h ; Hex #AF
190 Db 022h,088h,022h,088h,022h,088h,022h,088h ; Hex #B0
191 Db 055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh ; Hex #B1
192 Db 077h,0DDh,077h,0DDh,077h,0DDh,077h,0DDh ; Hex #B2
193 Db 018h,018h,018h,018h,018h,018h,018h,018h ; Hex #B3
194 Db 018h,018h,018h,018h,0F8h,018h,018h,018h ; Hex #B4
195 Db 018h,018h,0F8h,018h,0F8h,018h,018h,018h ; Hex #B5
196 Db 036h,036h,036h,036h,0F6h,036h,036h,036h ; Hex #B6
197 Db 000h,000h,000h,000h,0FEh,036h,036h,036h ; Hex #B7
198 Db 000h,000h,0F8h,018h,0F8h,018h,018h,018h ; Hex #B8
199 Db 036h,036h,0F6h,006h,0F6h,036h,036h,036h ; Hex #B9
200 Db 036h,036h,036h,036h,036h,036h,036h,036h ; Hex #BA
201 Db 000h,000h,0FEh,006h,0F6h,036h,036h,036h ; Hex #BB
202 Db 036h,036h,0F6h,006h,0FEh,000h,000h,000h ; Hex #BC
203 Db 036h,036h,036h,036h,0FEh,000h,000h,000h ; Hex #BD
204 Db 018h,018h,0F8h,018h,0F8h,000h,000h,000h ; Hex #BE
205 Db 000h,000h,000h,000h,0F8h,018h,018h,018h ; Hex #BF
206 Db 018h,018h,018h,018h,01Fh,000h,000h,000h ; Hex #C0
207 Db 018h,018h,018h,018h,0FFh,000h,000h,000h ; Hex #C1
208 Db 000h,000h,000h,000h,0FFh,018h,018h,018h ; Hex #C2
209 Db 018h,018h,018h,018h,01Fh,018h,018h,018h ; Hex #C3
210 Db 000h,000h,000h,000h,0FFh,000h,000h,000h ; Hex #C4
211 Db 018h,018h,018h,018h,0FFh,018h,018h,018h ; Hex #C5
212 Db 018h,018h,01Fh,018h,01Fh,018h,018h,018h ; Hex #C6
213 Db 036h,036h,036h,036h,037h,036h,036h,036h ; Hex #C7
214 Db 036h,036h,037h,030h,03Fh,000h,000h,000h ; Hex #C8
215 Db 000h,000h,03Fh,030h,037h,036h,036h,036h ; Hex #C9
216 Db 036h,036h,0F7h,000h,0FFh,000h,000h,000h ; Hex #CA
217 Db 000h,000h,0FFh,000h,0F7h,036h,036h,036h ; Hex #CB
218 Db 036h,036h,037h,030h,037h,036h,036h,036h ; Hex #CC
219 Db 000h,000h,0FFh,000h,0FFh,000h,000h,000h ; Hex #CD
220 Db 036h,036h,0F7h,000h,0F7h,036h,036h,036h ; Hex #CE
221 Db 018h,018h,0FFh,000h,0FFh,000h,000h,000h ; Hex #CF
222 Db 036h,036h,036h,036h,0FFh,000h,000h,000h ; Hex #D0
223 Db 000h,000h,0FFh,000h,0FFh,018h,018h,018h ; Hex #D1
224 Db 000h,000h,000h,000h,0FFh,036h,036h,036h ; Hex #D2
225 Db 036h,036h,036h,036h,03Fh,000h,000h,000h ; Hex #D3
226 Db 018h,018h,01Fh,018h,01Fh,000h,000h,000h ; Hex #D4
227 Db 000h,000h,01Fh,018h,01Fh,018h,018h,018h ; Hex #D5
228 Db 000h,000h,000h,000h,03Fh,036h,036h,036h ; Hex #D6
229 Db 036h,036h,036h,036h,0FFh,036h,036h,036h ; Hex #D7
230 Db 018h,018h,0FFh,018h,0FFh,018h,018h,018h ; Hex #D8
231 Db 018h,018h,018h,018h,0F8h,000h,000h,000h ; Hex #D9
232 Db 000h,000h,000h,000h,01Fh,018h,018h,018h ; Hex #DA
233 Db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh ; Hex #DB
234 Db 000h,000h,000h,000h,0FFh,0FFh,0FFh,0FFh ; Hex #DC
235 Db 0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h ; Hex #DD
236 Db 00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh ; Hex #DE
237 Db 0FFh,0FFh,0FFh,0FFh,000h,000h,000h,000h ; Hex #DF
238 Db 000h,000h,076h,0DCh,0C8h,0DCh,076h,000h ; Hex #E0
239 Db 078h,0CCh,0CCh,0D8h,0CCh,0C6h,0CCh,000h ; Hex #E1
240 Db 0FEh,0C6h,0C0h,0C0h,0C0h,0C0h,0C0h,000h ; Hex #E2
241 Db 000h,000h,0FEh,06Ch,06Ch,06Ch,06Ch,000h ; Hex #E3
242 Db 0FEh,0C6h,060h,030h,060h,0C6h,0FEh,000h ; Hex #E4
243 Db 000h,000h,07Eh,0D8h,0D8h,0D8h,070h,000h ; Hex #E5
244 Db 000h,000h,066h,066h,066h,066h,07Ch,0C0h ; Hex #E6
245 Db 000h,076h,0DCh,018h,018h,018h,018h,000h ; Hex #E7
246 Db 07Eh,018h,03Ch,066h,066h,03Ch,018h,07Eh ; Hex #E8
247 Db 038h,06Ch,0C6h,0FEh,0C6h,06Ch,038h,000h ; Hex #E9
248 Db 038h,06Ch,0C6h,0C6h,06Ch,06Ch,0EEh,000h ; Hex #EA
249 Db 00Eh,018h,00Ch,03Eh,066h,066h,03Ch,000h ; Hex #EB
250 Db 000h,000h,07Eh,0DBh,0DBh,07Eh,000h,000h ; Hex #EC
251 Db 006h,00Ch,07Eh,0DBh,0DBh,07Eh,060h,0C0h ; Hex #ED
252 Db 01Eh,030h,060h,07Eh,060h,030h,01Eh,000h ; Hex #EE
253 Db 000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,000h ; Hex #EF
254 Db 000h,0FEh,000h,0FEh,000h,0FEh,000h,000h ; Hex #F0
255 Db 018h,018h,07Eh,018h,018h,000h,07Eh,000h ; Hex #F1
256 Db 030h,018h,00Ch,018h,030h,000h,07Eh,000h ; Hex #F2
257 Db 00Ch,018h,030h,018h,00Ch,000h,07Eh,000h ; Hex #F3
258 Db 00Eh,01Bh,01Bh,018h,018h,018h,018h,018h ; Hex #F4
259 Db 018h,018h,018h,018h,018h,0D8h,0D8h,070h ; Hex #F5
260 Db 000h,018h,000h,07Eh,000h,018h,000h,000h ; Hex #F6
261 Db 000h,076h,0DCh,000h,076h,0DCh,000h,000h ; Hex #F7
262 Db 038h,06Ch,06Ch,038h,000h,000h,000h,000h ; Hex #F8
263 Db 000h,000h,000h,018h,018h,000h,000h,000h ; Hex #F9
264 Db 000h,000h,000h,018h,000h,000h,000h,000h ; Hex #FA
265 Db 00Fh,00Ch,00Ch,00Ch,0ECh,06Ch,03Ch,01Ch ; Hex #FB
266 Db 06Ch,036h,036h,036h,036h,000h,000h,000h ; Hex #FC
267 Db 078h,00Ch,018h,030h,07Ch,000h,000h,000h ; Hex #FD
268 Db 000h,000h,03Ch,03Ch,03Ch,03Ch,000h,000h ; Hex #FE
269 Db 000h,000h,000h,000h,000h,000h,000h,000h ; Hex #FF
270
diff --git a/v4.0/src/DEV/DISPLAY/EGA/863-CPI.ASM b/v4.0/src/DEV/DISPLAY/EGA/863-CPI.ASM
new file mode 100644
index 0000000..62622ff
--- /dev/null
+++ b/v4.0/src/DEV/DISPLAY/EGA/863-CPI.ASM
@@ -0,0 +1,49 @@
1CODE SEGMENT BYTE PUBLIC 'CODE'
2 ASSUME CS:CODE,DS:CODE
3
4IF1
5 %OUT EGA.CPI creation file
6 %OUT .
7 %OUT CP SRC files:
8 %OUT .
9 %OUT . CODE PAGE: 863
10ENDIF
11
12EGA863: DW LEN_863 ; SIZE OF ENTRY HEADER
13 DW POST_EGA863,0 ; POINTER TO NEXT HEADER
14 DW 1 ; DEVICE TYPE
15 DB "EGA " ; DEVICE SUBTYPE ID
16 DW 863 ; CODE PAGE ID
17 DW 3 DUP(0) ; RESERVED
18 DW OFFSET DATA863,0 ; POINTER TO FONTS
19LEN_863 EQU ($-EGA863) ;
20 ;
21DATA863:DW 1 ; CART/NON-CART
22 DW 3 ; # OF FONTS
23 DW LEN_D863 ; LENGTH OF DATA
24D863: ;
25 DB 16,8 ; CHARACTER BOX SIZE
26 DB 0,0 ; ASPECT RATIO (UNUSED)
27 DW 256 ; NUMBER OF CHARACTERS
28 ;
29 INCLUDE 863-8X16.ASM ;
30 ;
31 DB 14,8 ; CHARACTER BOX SIZE
32 DB 0,0 ; ASPECT RATIO (UNUSED)
33 DW 256 ; NUMBER OF CHARACTERS
34 ;
35 INCLUDE 863-8X14.ASM ;
36 ;
37 DB 8,8 ; CHARACTER BOX SIZE
38 DB 0,0 ; ASPECT RATIO (UNUSED)
39 DW 256 ; NUMBER OF CHARACTERS
40 ;
41 INCLUDE 863-8X8.ASM ;
42 ;
43LEN_D863 EQU ($-D863) ;
44 ;
45POST_EGA863 EQU $ ;
46 ;
47CODE ENDS ;
48 END ;
49 \ No newline at end of file
diff --git a/v4.0/src/DEV/DISPLAY/EGA/865-8X14.ASM b/v4.0/src/DEV/DISPLAY/EGA/865-8X14.ASM
new file mode 100644
index 0000000..e7171f1
--- /dev/null
+++ b/v4.0/src/DEV/DISPLAY/EGA/865-8X14.ASM
@@ -0,0 +1,270 @@
1;***************************************************
2; CHARACTER FONT FILE
3; Source Assembler File
4;
5; CODE PAGE: 865
6; FONT RESOLUTION: 8 x 14
7;
8; DATE CREATED:05-28-1987
9;
10;
11; Output file from: MULTIFON, Version 1A
12;
13;***************************************************
14 Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #0
15 Db 000h,000h,000h,07Eh,081h,0A5h,081h,081h,0BDh,099h,081h,07Eh,000h,000h ; Hex #1
16 Db 000h,000h,000h,07Eh,0FFh,0DBh,0FFh,0FFh,0C3h,0E7h,0FFh,07Eh,000h,000h ; Hex #2
17 Db 000h,000h,000h,000h,06Ch,0FEh,0FEh,0FEh,0FEh,07Ch,038h,010h,000h,000h ; Hex #3
18 Db 000h,000h,000h,000h,010h,038h,07Ch,0FEh,07Ch,038h,010h,000h,000h,000h ; Hex #4
19 Db 000h,000h,000h,018h,03Ch,03Ch,0E7h,0E7h,0E7h,018h,018h,03Ch,000h,000h ; Hex #5
20 Db 000h,000h,000h,018h,03Ch,07Eh,0FFh,0FFh,07Eh,018h,018h,03Ch,000h,000h ; Hex #6
21 Db 000h,000h,000h,000h,000h,000h,018h,03Ch,03Ch,018h,000h,000h,000h,000h ; Hex #7
22 Db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0E7h,0C3h,0C3h,0E7h,0FFh,0FFh,0FFh,0FFh ; Hex #8
23 Db 000h,000h,000h,000h,000h,03Ch,066h,042h,042h,066h,03Ch,000h,000h,000h ; Hex #9
24 Db 0FFh,0FFh,0FFh,0FFh,0FFh,0C3h,099h,0BDh,0BDh,099h,0C3h,0FFh,0FFh,0FFh ; Hex #A
25 Db 000h,000h,000h,01Eh,00Eh,01Ah,032h,078h,0CCh,0CCh,0CCh,078h,000h,000h ; Hex #B
26 Db 000h,000h,000h,03Ch,066h,066h,066h,03Ch,018h,07Eh,018h,018h,000h,000h ; Hex #C
27 Db 000h,000h,000h,03Fh,033h,03Fh,030h,030h,030h,070h,0F0h,0E0h,000h,000h ; Hex #D
28 Db 000h,000h,000h,07Fh,063h,07Fh,063h,063h,063h,067h,0E7h,0E6h,0C0h,000h ; Hex #E
29 Db 000h,000h,000h,018h,018h,0DBh,03Ch,0E7h,03Ch,0DBh,018h,018h,000h,000h ; Hex #F
30 Db 000h,000h,000h,080h,0C0h,0E0h,0F8h,0FEh,0F8h,0E0h,0C0h,080h,000h,000h ; Hex #10
31 Db 000h,000h,000h,002h,006h,00Eh,03Eh,0FEh,03Eh,00Eh,006h,002h,000h,000h ; Hex #11
32 Db 000h,000h,000h,018h,03Ch,07Eh,018h,018h,018h,07Eh,03Ch,018h,000h,000h ; Hex #12
33 Db 000h,000h,000h,066h,066h,066h,066h,066h,066h,000h,066h,066h,000h,000h ; Hex #13
34 Db 000h,000h,000h,07Fh,0DBh,0DBh,0DBh,07Bh,01Bh,01Bh,01Bh,01Bh,000h,000h ; Hex #14
35 Db 000h,000h,07Ch,0C6h,060h,038h,06Ch,0C6h,0C6h,06Ch,038h,00Ch,0C6h,07Ch ; Hex #15
36 Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,0FEh,0FEh,0FEh,000h,000h ; Hex #16
37 Db 000h,000h,000h,018h,03Ch,07Eh,018h,018h,018h,07Eh,03Ch,018h,07Eh,000h ; Hex #17
38 Db 000h,000h,000h,018h,03Ch,07Eh,018h,018h,018h,018h,018h,018h,000h,000h ; Hex #18
39 Db 000h,000h,000h,018h,018h,018h,018h,018h,018h,07Eh,03Ch,018h,000h,000h ; Hex #19
40 Db 000h,000h,000h,000h,000h,018h,00Ch,0FEh,00Ch,018h,000h,000h,000h,000h ; Hex #1A
41 Db 000h,000h,000h,000h,000h,030h,060h,0FEh,060h,030h,000h,000h,000h,000h ; Hex #1B
42 Db 000h,000h,000h,000h,000h,000h,0C0h,0C0h,0C0h,0FEh,000h,000h,000h,000h ; Hex #1C
43 Db 000h,000h,000h,000h,000h,028h,06Ch,0FEh,06Ch,028h,000h,000h,000h,000h ; Hex #1D
44 Db 000h,000h,000h,000h,010h,038h,038h,07Ch,07Ch,0FEh,0FEh,000h,000h,000h ; Hex #1E
45 Db 000h,000h,000h,000h,0FEh,0FEh,07Ch,07Ch,038h,038h,010h,000h,000h,000h ; Hex #1F
46 Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #20
47 Db 000h,000h,000h,018h,03Ch,03Ch,03Ch,018h,018h,000h,018h,018h,000h,000h ; Hex #21
48 Db 000h,066h,066h,066h,024h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #22
49 Db 000h,000h,000h,06Ch,06Ch,0FEh,06Ch,06Ch,06Ch,0FEh,06Ch,06Ch,000h,000h ; Hex #23
50 Db 000h,018h,018h,07Ch,0C6h,0C2h,0C0h,07Ch,006h,086h,0C6h,07Ch,018h,018h ; Hex #24
51 Db 000h,000h,000h,000h,000h,0C2h,0C6h,00Ch,018h,030h,066h,0C6h,000h,000h ; Hex #25
52 Db 000h,000h,000h,038h,06Ch,06Ch,038h,076h,0DCh,0CCh,0CCh,076h,000h,000h ; Hex #26
53 Db 000h,018h,018h,018h,030h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #27
54 Db 000h,000h,000h,00Ch,018h,030h,030h,030h,030h,030h,018h,00Ch,000h,000h ; Hex #28
55 Db 000h,000h,000h,030h,018h,00Ch,00Ch,00Ch,00Ch,00Ch,018h,030h,000h,000h ; Hex #29
56 Db 000h,000h,000h,000h,000h,066h,03Ch,0FFh,03Ch,066h,000h,000h,000h,000h ; Hex #2A
57 Db 000h,000h,000h,000h,000h,018h,018h,07Eh,018h,018h,000h,000h,000h,000h ; Hex #2B
58 Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,018h,018h,018h,030h,000h ; Hex #2C
59 Db 000h,000h,000h,000h,000h,000h,000h,0FEh,000h,000h,000h,000h,000h,000h ; Hex #2D
60 Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,018h,018h,000h,000h ; Hex #2E
61 Db 000h,000h,000h,002h,006h,00Ch,018h,030h,060h,0C0h,080h,000h,000h,000h ; Hex #2F
62 Db 000h,000h,000h,038h,06Ch,0C6h,0C6h,0D6h,0C6h,0C6h,06Ch,038h,000h,000h ; Hex #30
63 Db 000h,000h,000h,018h,038h,078h,018h,018h,018h,018h,018h,07Eh,000h,000h ; Hex #31
64 Db 000h,000h,000h,07Ch,0C6h,006h,00Ch,018h,030h,060h,0C6h,0FEh,000h,000h ; Hex #32
65 Db 000h,000h,000h,07Ch,0C6h,006h,006h,03Ch,006h,006h,0C6h,07Ch,000h,000h ; Hex #33
66 Db 000h,000h,000h,00Ch,01Ch,03Ch,06Ch,0CCh,0FEh,00Ch,00Ch,01Eh,000h,000h ; Hex #34
67 Db 000h,000h,000h,0FEh,0C0h,0C0h,0C0h,0FCh,006h,006h,0C6h,07Ch,000h,000h ; Hex #35
68 Db 000h,000h,000h,038h,060h,0C0h,0C0h,0FCh,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #36
69 Db 000h,000h,000h,0FEh,0C6h,006h,00Ch,018h,030h,030h,030h,030h,000h,000h ; Hex #37
70 Db 000h,000h,000h,07Ch,0C6h,0C6h,0C6h,07Ch,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #38
71 Db 000h,000h,000h,07Ch,0C6h,0C6h,0C6h,07Eh,006h,006h,00Ch,078h,000h,000h ; Hex #39
72 Db 000h,000h,000h,000h,018h,018h,000h,000h,000h,018h,018h,000h,000h,000h ; Hex #3A
73 Db 000h,000h,000h,000h,018h,018h,000h,000h,000h,018h,018h,030h,000h,000h ; Hex #3B
74 Db 000h,000h,000h,00Ch,018h,030h,060h,0C0h,060h,030h,018h,00Ch,000h,000h ; Hex #3C
75 Db 000h,000h,000h,000h,000h,000h,07Eh,000h,000h,07Eh,000h,000h,000h,000h ; Hex #3D
76 Db 000h,000h,000h,060h,030h,018h,00Ch,006h,00Ch,018h,030h,060h,000h,000h ; Hex #3E
77 Db 000h,000h,000h,07Ch,0C6h,0C6h,00Ch,018h,018h,000h,018h,018h,000h,000h ; Hex #3F
78 Db 000h,000h,000h,07Ch,0C6h,0C6h,0DEh,0DEh,0DEh,0DCh,0C0h,07Ch,000h,000h ; Hex #40
79 Db 000h,000h,000h,010h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,000h,000h ; Hex #41
80 Db 000h,000h,000h,0FCh,066h,066h,066h,07Ch,066h,066h,066h,0FCh,000h,000h ; Hex #42
81 Db 000h,000h,000h,03Ch,066h,0C2h,0C0h,0C0h,0C0h,0C2h,066h,03Ch,000h,000h ; Hex #43
82 Db 000h,000h,000h,0F8h,06Ch,066h,066h,066h,066h,066h,06Ch,0F8h,000h,000h ; Hex #44
83 Db 000h,000h,000h,0FEh,066h,062h,068h,078h,068h,062h,066h,0FEh,000h,000h ; Hex #45
84 Db 000h,000h,000h,0FEh,066h,062h,068h,078h,068h,060h,060h,0F0h,000h,000h ; Hex #46
85 Db 000h,000h,000h,03Ch,066h,0C2h,0C0h,0C0h,0DEh,0C6h,066h,03Ah,000h,000h ; Hex #47
86 Db 000h,000h,000h,0C6h,0C6h,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,0C6h,000h,000h ; Hex #48
87 Db 000h,000h,000h,03Ch,018h,018h,018h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #49
88 Db 000h,000h,000h,01Eh,00Ch,00Ch,00Ch,00Ch,00Ch,0CCh,0CCh,078h,000h,000h ; Hex #4A
89 Db 000h,000h,000h,0E6h,066h,06Ch,06Ch,078h,06Ch,06Ch,066h,0E6h,000h,000h ; Hex #4B
90 Db 000h,000h,000h,0F0h,060h,060h,060h,060h,060h,062h,066h,0FEh,000h,000h ; Hex #4C
91 Db 000h,000h,000h,0C6h,0EEh,0FEh,0D6h,0C6h,0C6h,0C6h,0C6h,0C6h,000h,000h ; Hex #4D
92 Db 000h,000h,000h,0C6h,0E6h,0F6h,0FEh,0DEh,0CEh,0C6h,0C6h,0C6h,000h,000h ; Hex #4E
93 Db 000h,000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #4F
94 Db 000h,000h,000h,0FCh,066h,066h,066h,07Ch,060h,060h,060h,0F0h,000h,000h ; Hex #50
95 Db 000h,000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0D6h,0DEh,07Ch,00Eh,000h ; Hex #51
96 Db 000h,000h,000h,0FCh,066h,066h,066h,07Ch,06Ch,066h,066h,0E6h,000h,000h ; Hex #52
97 Db 000h,000h,000h,07Ch,0C6h,0C6h,060h,038h,00Ch,0C6h,0C6h,07Ch,000h,000h ; Hex #53
98 Db 000h,000h,000h,07Eh,07Eh,05Ah,018h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #54
99 Db 000h,000h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #55
100 Db 000h,000h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,06Ch,038h,010h,000h,000h ; Hex #56
101 Db 000h,000h,000h,0C6h,0C6h,0C6h,0C6h,0D6h,0D6h,0FEh,06Ch,06Ch,000h,000h ; Hex #57
102 Db 000h,000h,000h,0C6h,0C6h,0C6h,07Ch,038h,07Ch,0C6h,0C6h,0C6h,000h,000h ; Hex #58
103 Db 000h,000h,000h,066h,066h,066h,066h,03Ch,018h,018h,018h,03Ch,000h,000h ; Hex #59
104 Db 000h,000h,000h,0FEh,0C6h,08Ch,018h,030h,060h,0C2h,0C6h,0FEh,000h,000h ; Hex #5A
105 Db 000h,000h,000h,03Ch,030h,030h,030h,030h,030h,030h,030h,03Ch,000h,000h ; Hex #5B
106 Db 000h,000h,000h,080h,0C0h,0E0h,070h,038h,01Ch,00Eh,006h,002h,000h,000h ; Hex #5C
107 Db 000h,000h,000h,03Ch,00Ch,00Ch,00Ch,00Ch,00Ch,00Ch,00Ch,03Ch,000h,000h ; Hex #5D
108 Db 010h,038h,06Ch,0C6h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #5E
109 Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,0FFh ; Hex #5F
110 Db 000h,030h,018h,00Ch,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #60
111 Db 000h,000h,000h,000h,000h,000h,078h,00Ch,07Ch,0CCh,0CCh,076h,000h,000h ; Hex #61
112 Db 000h,000h,000h,0E0h,060h,060h,078h,06Ch,066h,066h,066h,07Ch,000h,000h ; Hex #62
113 Db 000h,000h,000h,000h,000h,000h,07Ch,0C6h,0C0h,0C0h,0C6h,07Ch,000h,000h ; Hex #63
114 Db 000h,000h,000h,01Ch,00Ch,00Ch,03Ch,06Ch,0CCh,0CCh,0CCh,076h,000h,000h ; Hex #64
115 Db 000h,000h,000h,000h,000h,000h,07Ch,0C6h,0FEh,0C0h,0C6h,07Ch,000h,000h ; Hex #65
116 Db 000h,000h,000h,01Ch,036h,032h,030h,07Ch,030h,030h,030h,078h,000h,000h ; Hex #66
117 Db 000h,000h,000h,000h,000h,000h,076h,0CCh,0CCh,0CCh,07Ch,00Ch,0CCh,078h ; Hex #67
118 Db 000h,000h,000h,0E0h,060h,060h,06Ch,076h,066h,066h,066h,0E6h,000h,000h ; Hex #68
119 Db 000h,000h,000h,018h,018h,000h,038h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #69
120 Db 000h,000h,000h,006h,006h,000h,00Eh,006h,006h,006h,006h,066h,066h,03Ch ; Hex #6A
121 Db 000h,000h,000h,0E0h,060h,060h,066h,06Ch,078h,06Ch,066h,0E6h,000h,000h ; Hex #6B
122 Db 000h,000h,000h,038h,018h,018h,018h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #6C
123 Db 000h,000h,000h,000h,000h,000h,0ECh,0FEh,0D6h,0D6h,0D6h,0D6h,000h,000h ; Hex #6D
124 Db 000h,000h,000h,000h,000h,000h,0DCh,066h,066h,066h,066h,066h,000h,000h ; Hex #6E
125 Db 000h,000h,000h,000h,000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #6F
126 Db 000h,000h,000h,000h,000h,000h,0DCh,066h,066h,066h,07Ch,060h,060h,0F0h ; Hex #70
127 Db 000h,000h,000h,000h,000h,000h,076h,0CCh,0CCh,0CCh,07Ch,00Ch,00Ch,01Eh ; Hex #71
128 Db 000h,000h,000h,000h,000h,000h,0DCh,076h,066h,060h,060h,0F0h,000h,000h ; Hex #72
129 Db 000h,000h,000h,000h,000h,000h,07Ch,0C6h,070h,01Ch,0C6h,07Ch,000h,000h ; Hex #73
130 Db 000h,000h,000h,010h,030h,030h,0FCh,030h,030h,030h,036h,01Ch,000h,000h ; Hex #74
131 Db 000h,000h,000h,000h,000h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h ; Hex #75
132 Db 000h,000h,000h,000h,000h,000h,0C6h,0C6h,0C6h,06Ch,038h,010h,000h,000h ; Hex #76
133 Db 000h,000h,000h,000h,000h,000h,0C6h,0C6h,0D6h,0D6h,0FEh,06Ch,000h,000h ; Hex #77
134 Db 000h,000h,000h,000h,000h,000h,0C6h,06Ch,038h,038h,06Ch,0C6h,000h,000h ; Hex #78
135 Db 000h,000h,000h,000h,000h,000h,0C6h,0C6h,0C6h,0C6h,07Eh,006h,00Ch,078h ; Hex #79
136 Db 000h,000h,000h,000h,000h,000h,0FEh,0CCh,018h,030h,066h,0FEh,000h,000h ; Hex #7A
137 Db 000h,000h,000h,00Eh,018h,018h,018h,070h,018h,018h,018h,00Eh,000h,000h ; Hex #7B
138 Db 000h,000h,000h,018h,018h,018h,018h,018h,018h,018h,018h,018h,000h,000h ; Hex #7C
139 Db 000h,000h,000h,070h,018h,018h,018h,00Eh,018h,018h,018h,070h,000h,000h ; Hex #7D
140 Db 000h,076h,0DCh,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #7E
141 Db 000h,000h,000h,000h,000h,010h,038h,06Ch,0C6h,0C6h,0FEh,000h,000h,000h ; Hex #7F
142 Db 000h,000h,000h,03Ch,066h,0C2h,0C0h,0C0h,0C0h,0C2h,066h,03Ch,00Ch,078h ; Hex #80
143 Db 000h,000h,000h,0CCh,000h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h ; Hex #81
144 Db 000h,000h,00Ch,018h,030h,000h,07Ch,0C6h,0FEh,0C0h,0C6h,07Ch,000h,000h ; Hex #82
145 Db 000h,000h,010h,038h,06Ch,000h,078h,00Ch,07Ch,0CCh,0CCh,076h,000h,000h ; Hex #83
146 Db 000h,000h,000h,0C6h,000h,000h,078h,00Ch,07Ch,0CCh,0CCh,076h,000h,000h ; Hex #84
147 Db 000h,000h,060h,030h,018h,000h,078h,00Ch,07Ch,0CCh,0CCh,076h,000h,000h ; Hex #85
148 Db 000h,000h,038h,06Ch,038h,000h,078h,00Ch,07Ch,0CCh,0CCh,076h,000h,000h ; Hex #86
149 Db 000h,000h,000h,000h,000h,000h,07Ch,0C6h,0C0h,0C0h,0C6h,07Ch,00Ch,078h ; Hex #87
150 Db 000h,000h,010h,038h,06Ch,000h,07Ch,0C6h,0FEh,0C0h,0C6h,07Ch,000h,000h ; Hex #88
151 Db 000h,000h,000h,0C6h,000h,000h,07Ch,0C6h,0FEh,0C0h,0C6h,07Ch,000h,000h ; Hex #89
152 Db 000h,000h,060h,030h,018h,000h,07Ch,0C6h,0FEh,0C0h,0C6h,07Ch,000h,000h ; Hex #8A
153 Db 000h,000h,000h,066h,000h,000h,038h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #8B
154 Db 000h,000h,018h,03Ch,066h,000h,038h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #8C
155 Db 000h,000h,060h,030h,018h,000h,038h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #8D
156 Db 000h,0C6h,000h,010h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,000h,000h ; Hex #8E
157 Db 038h,06Ch,038h,010h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,000h,000h ; Hex #8F
158 Db 00Ch,018h,000h,0FEh,066h,062h,068h,078h,068h,062h,066h,0FEh,000h,000h ; Hex #90
159 Db 000h,000h,000h,000h,000h,000h,0ECh,036h,076h,0DCh,0D8h,06Eh,000h,000h ; Hex #91
160 Db 000h,000h,000h,03Eh,06Ch,0CCh,0CCh,0FEh,0CCh,0CCh,0CCh,0CEh,000h,000h ; Hex #92
161 Db 000h,000h,010h,038h,06Ch,000h,07Ch,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #93
162 Db 000h,000h,000h,0C6h,000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #94
163 Db 000h,000h,060h,030h,018h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #95
164 Db 000h,000h,030h,078h,0CCh,000h,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h ; Hex #96
165 Db 000h,000h,060h,030h,018h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h ; Hex #97
166 Db 000h,000h,000h,0C6h,000h,000h,0C6h,0C6h,0C6h,0C6h,07Eh,006h,00Ch,078h ; Hex #98
167 Db 000h,0C6h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #99
168 Db 000h,0C6h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #9A
169 Db 000h,000h,000h,000h,000h,000h,07Ch,0CEh,0DEh,0F6h,0E6h,07Ch,000h,000h ; Hex #9B
170 Db 000h,000h,038h,06Ch,064h,060h,0F0h,060h,060h,060h,0E6h,0FCh,000h,000h ; Hex #9C
171 Db 000h,000h,004h,07Ch,0CEh,0CEh,0D6h,0D6h,0D6h,0E6h,0E6h,07Ch,040h,000h ; Hex #9D
172 Db 000h,000h,0FCh,066h,066h,07Ch,062h,066h,06Fh,066h,066h,0F3h,000h,000h ; Hex #9E
173 Db 000h,000h,00Eh,01Bh,018h,018h,018h,07Eh,018h,018h,018h,0D8h,070h,000h ; Hex #9F
174 Db 000h,000h,00Ch,018h,030h,000h,078h,00Ch,07Ch,0CCh,0CCh,076h,000h,000h ; Hex #A0
175 Db 000h,000h,00Ch,018h,030h,000h,038h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #A1
176 Db 000h,000h,00Ch,018h,030h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #A2
177 Db 000h,000h,00Ch,018h,030h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h ; Hex #A3
178 Db 000h,000h,000h,076h,0DCh,000h,0DCh,066h,066h,066h,066h,066h,000h,000h ; Hex #A4
179 Db 076h,0DCh,000h,0C6h,0E6h,0F6h,0FEh,0DEh,0CEh,0C6h,0C6h,0C6h,000h,000h ; Hex #A5
180 Db 000h,000h,03Ch,06Ch,06Ch,03Eh,000h,07Eh,000h,000h,000h,000h,000h,000h ; Hex #A6
181 Db 000h,000h,038h,06Ch,06Ch,038h,000h,07Ch,000h,000h,000h,000h,000h,000h ; Hex #A7
182 Db 000h,000h,000h,030h,030h,000h,030h,030h,060h,0C6h,0C6h,07Ch,000h,000h ; Hex #A8
183 Db 000h,000h,000h,000h,000h,000h,000h,0FEh,0C0h,0C0h,0C0h,000h,000h,000h ; Hex #A9
184 Db 000h,000h,000h,000h,000h,000h,000h,0FEh,006h,006h,006h,000h,000h,000h ; Hex #AA
185 Db 000h,000h,060h,0E0h,063h,066h,06Ch,018h,030h,06Eh,0C3h,006h,00Ch,01Fh ; Hex #AB
186 Db 000h,000h,060h,0E0h,063h,066h,06Ch,01Ah,036h,06Eh,0DAh,03Fh,006h,006h ; Hex #AC
187 Db 000h,000h,000h,018h,018h,000h,018h,018h,03Ch,03Ch,03Ch,018h,000h,000h ; Hex #AD
188 Db 000h,000h,000h,000h,000h,036h,06Ch,0D8h,06Ch,036h,000h,000h,000h,000h ; Hex #AE
189 Db 000h,000h,000h,000h,000h,0C6h,07Ch,0C6h,0C6h,0C6h,07Ch,0C6h,000h,000h ; Hex #AF
190 Db 011h,044h,011h,044h,011h,044h,011h,044h,011h,044h,011h,044h,011h,044h ; Hex #B0
191 Db 055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh ; Hex #B1
192 Db 0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h ; Hex #B2
193 Db 018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #B3
194 Db 018h,018h,018h,018h,018h,018h,018h,0F8h,018h,018h,018h,018h,018h,018h ; Hex #B4
195 Db 018h,018h,018h,018h,018h,0F8h,018h,0F8h,018h,018h,018h,018h,018h,018h ; Hex #B5
196 Db 036h,036h,036h,036h,036h,036h,036h,0F6h,036h,036h,036h,036h,036h,036h ; Hex #B6
197 Db 000h,000h,000h,000h,000h,000h,000h,0FEh,036h,036h,036h,036h,036h,036h ; Hex #B7
198 Db 000h,000h,000h,000h,000h,0F8h,018h,0F8h,018h,018h,018h,018h,018h,018h ; Hex #B8
199 Db 036h,036h,036h,036h,036h,0F6h,006h,0F6h,036h,036h,036h,036h,036h,036h ; Hex #B9
200 Db 036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #BA
201 Db 000h,000h,000h,000h,000h,0FEh,006h,0F6h,036h,036h,036h,036h,036h,036h ; Hex #BB
202 Db 036h,036h,036h,036h,036h,0F6h,006h,0FEh,000h,000h,000h,000h,000h,000h ; Hex #BC
203 Db 036h,036h,036h,036h,036h,036h,036h,0FEh,000h,000h,000h,000h,000h,000h ; Hex #BD
204 Db 018h,018h,018h,018h,018h,0F8h,018h,0F8h,000h,000h,000h,000h,000h,000h ; Hex #BE
205 Db 000h,000h,000h,000h,000h,000h,000h,0F8h,018h,018h,018h,018h,018h,018h ; Hex #BF
206 Db 018h,018h,018h,018h,018h,018h,018h,01Fh,000h,000h,000h,000h,000h,000h ; Hex #C0
207 Db 018h,018h,018h,018h,018h,018h,018h,0FFh,000h,000h,000h,000h,000h,000h ; Hex #C1
208 Db 000h,000h,000h,000h,000h,000h,000h,0FFh,018h,018h,018h,018h,018h,018h ; Hex #C2
209 Db 018h,018h,018h,018h,018h,018h,018h,01Fh,018h,018h,018h,018h,018h,018h ; Hex #C3
210 Db 000h,000h,000h,000h,000h,000h,000h,0FFh,000h,000h,000h,000h,000h,000h ; Hex #C4
211 Db 018h,018h,018h,018h,018h,018h,018h,0FFh,018h,018h,018h,018h,018h,018h ; Hex #C5
212 Db 018h,018h,018h,018h,018h,01Fh,018h,01Fh,018h,018h,018h,018h,018h,018h ; Hex #C6
213 Db 036h,036h,036h,036h,036h,036h,036h,037h,036h,036h,036h,036h,036h,036h ; Hex #C7
214 Db 036h,036h,036h,036h,036h,037h,030h,03Fh,000h,000h,000h,000h,000h,000h ; Hex #C8
215 Db 000h,000h,000h,000h,000h,03Fh,030h,037h,036h,036h,036h,036h,036h,036h ; Hex #C9
216 Db 036h,036h,036h,036h,036h,0F7h,000h,0FFh,000h,000h,000h,000h,000h,000h ; Hex #CA
217 Db 000h,000h,000h,000h,000h,0FFh,000h,0F7h,036h,036h,036h,036h,036h,036h ; Hex #CB
218 Db 036h,036h,036h,036h,036h,037h,030h,037h,036h,036h,036h,036h,036h,036h ; Hex #CC
219 Db 000h,000h,000h,000h,000h,0FFh,000h,0FFh,000h,000h,000h,000h,000h,000h ; Hex #CD
220 Db 036h,036h,036h,036h,036h,0F7h,000h,0F7h,036h,036h,036h,036h,036h,036h ; Hex #CE
221 Db 018h,018h,018h,018h,018h,0FFh,000h,0FFh,000h,000h,000h,000h,000h,000h ; Hex #CF
222 Db 036h,036h,036h,036h,036h,036h,036h,0FFh,000h,000h,000h,000h,000h,000h ; Hex #D0
223 Db 000h,000h,000h,000h,000h,0FFh,000h,0FFh,018h,018h,018h,018h,018h,018h ; Hex #D1
224 Db 000h,000h,000h,000h,000h,000h,000h,0FFh,036h,036h,036h,036h,036h,036h ; Hex #D2
225 Db 036h,036h,036h,036h,036h,036h,036h,03Fh,000h,000h,000h,000h,000h,000h ; Hex #D3
226 Db 018h,018h,018h,018h,018h,01Fh,018h,01Fh,000h,000h,000h,000h,000h,000h ; Hex #D4
227 Db 000h,000h,000h,000h,000h,01Fh,018h,01Fh,018h,018h,018h,018h,018h,018h ; Hex #D5
228 Db 000h,000h,000h,000h,000h,000h,000h,03Fh,036h,036h,036h,036h,036h,036h ; Hex #D6
229 Db 036h,036h,036h,036h,036h,036h,036h,0FFh,036h,036h,036h,036h,036h,036h ; Hex #D7
230 Db 018h,018h,018h,018h,018h,0FFh,018h,0FFh,018h,018h,018h,018h,018h,018h ; Hex #D8
231 Db 018h,018h,018h,018h,018h,018h,018h,0F8h,000h,000h,000h,000h,000h,000h ; Hex #D9
232 Db 000h,000h,000h,000h,000h,000h,000h,01Fh,018h,018h,018h,018h,018h,018h ; Hex #DA
233 Db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh ; Hex #DB
234 Db 000h,000h,000h,000h,000h,000h,000h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh ; Hex #DC
235 Db 0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h ; Hex #DD
236 Db 00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh ; Hex #DE
237 Db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,000h,000h,000h,000h,000h,000h,000h ; Hex #DF
238 Db 000h,000h,000h,000h,000h,000h,076h,0DCh,0D8h,0D8h,0DCh,076h,000h,000h ; Hex #E0
239 Db 000h,000h,000h,078h,0CCh,0CCh,0CCh,0D8h,0CCh,0C6h,0C6h,0CCh,000h,000h ; Hex #E1
240 Db 000h,000h,000h,0FEh,0C6h,0C6h,0C0h,0C0h,0C0h,0C0h,0C0h,0C0h,000h,000h ; Hex #E2
241 Db 000h,000h,000h,000h,000h,000h,0FEh,06Ch,06Ch,06Ch,06Ch,06Ch,000h,000h ; Hex #E3
242 Db 000h,000h,000h,0FEh,0C6h,060h,030h,018h,030h,060h,0C6h,0FEh,000h,000h ; Hex #E4
243 Db 000h,000h,000h,000h,000h,000h,07Eh,0D8h,0D8h,0D8h,0D8h,070h,000h,000h ; Hex #E5
244 Db 000h,000h,000h,000h,000h,000h,066h,066h,066h,066h,066h,07Ch,060h,0C0h ; Hex #E6
245 Db 000h,000h,000h,000h,000h,076h,0DCh,018h,018h,018h,018h,018h,000h,000h ; Hex #E7
246 Db 000h,000h,000h,07Eh,018h,03Ch,066h,066h,066h,03Ch,018h,07Eh,000h,000h ; Hex #E8
247 Db 000h,000h,000h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,06Ch,038h,000h,000h ; Hex #E9
248 Db 000h,000h,000h,038h,06Ch,0C6h,0C6h,0C6h,06Ch,06Ch,06Ch,0EEh,000h,000h ; Hex #EA
249 Db 000h,000h,000h,01Eh,030h,018h,00Ch,03Eh,066h,066h,066h,03Ch,000h,000h ; Hex #EB
250 Db 000h,000h,000h,000h,000h,000h,07Eh,0DBh,0DBh,07Eh,000h,000h,000h,000h ; Hex #EC
251 Db 000h,000h,000h,003h,006h,07Eh,0DBh,0DBh,0F3h,07Eh,060h,0C0h,000h,000h ; Hex #ED
252 Db 000h,000h,000h,01Eh,030h,060h,060h,07Eh,060h,060h,030h,01Eh,000h,000h ; Hex #EE
253 Db 000h,000h,000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,000h,000h ; Hex #EF
254 Db 000h,000h,000h,000h,0FEh,000h,000h,0FEh,000h,000h,0FEh,000h,000h,000h ; Hex #F0
255 Db 000h,000h,000h,000h,018h,018h,07Eh,018h,018h,000h,000h,07Eh,000h,000h ; Hex #F1
256 Db 000h,000h,000h,030h,018h,00Ch,006h,00Ch,018h,030h,000h,07Eh,000h,000h ; Hex #F2
257 Db 000h,000h,000h,00Ch,018h,030h,060h,030h,018h,00Ch,000h,07Eh,000h,000h ; Hex #F3
258 Db 000h,000h,00Eh,01Bh,01Bh,018h,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #F4
259 Db 018h,018h,018h,018h,018h,018h,018h,018h,0D8h,0D8h,070h,000h,000h,000h ; Hex #F5
260 Db 000h,000h,000h,000h,000h,018h,000h,07Eh,000h,018h,000h,000h,000h,000h ; Hex #F6
261 Db 000h,000h,000h,000h,000h,076h,0DCh,000h,076h,0DCh,000h,000h,000h,000h ; Hex #F7
262 Db 000h,038h,06Ch,06Ch,038h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #F8
263 Db 000h,000h,000h,000h,000h,000h,000h,018h,018h,000h,000h,000h,000h,000h ; Hex #F9
264 Db 000h,000h,000h,000h,000h,000h,000h,018h,000h,000h,000h,000h,000h,000h ; Hex #FA
265 Db 000h,00Fh,00Ch,00Ch,00Ch,00Ch,00Ch,00Ch,0ECh,06Ch,03Ch,01Ch,000h,000h ; Hex #FB
266 Db 000h,06Ch,036h,036h,036h,036h,036h,000h,000h,000h,000h,000h,000h,000h ; Hex #FC
267 Db 000h,03Ch,066h,00Ch,018h,032h,07Eh,000h,000h,000h,000h,000h,000h,000h ; Hex #FD
268 Db 000h,000h,000h,000h,000h,07Eh,07Eh,07Eh,07Eh,07Eh,07Eh,000h,000h,000h ; Hex #FE
269 Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #FF
270
diff --git a/v4.0/src/DEV/DISPLAY/EGA/865-8X16.ASM b/v4.0/src/DEV/DISPLAY/EGA/865-8X16.ASM
new file mode 100644
index 0000000..33b26f5
--- /dev/null
+++ b/v4.0/src/DEV/DISPLAY/EGA/865-8X16.ASM
@@ -0,0 +1,270 @@
1;***************************************************
2; CHARACTER FONT FILE
3; Source Assembler File
4;
5; CODE PAGE: 865
6; FONT RESOLUTION: 8 x 16
7;
8; DATE CREATED:05-28-1987
9;
10;
11; Output file from: MULTIFON, Version 1A
12;
13;***************************************************
14 Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #0
15 Db 000h,000h,07Eh,081h,0A5h,081h,081h,0BDh,099h,081h,081h,07Eh,000h,000h,000h,000h ; Hex #1
16 Db 000h,000h,07Eh,0FFh,0DBh,0FFh,0FFh,0C3h,0E7h,0FFh,0FFh,07Eh,000h,000h,000h,000h ; Hex #2
17 Db 000h,000h,000h,000h,06Ch,0FEh,0FEh,0FEh,0FEh,07Ch,038h,010h,000h,000h,000h,000h ; Hex #3
18 Db 000h,000h,000h,000h,010h,038h,07Ch,0FEh,07Ch,038h,010h,000h,000h,000h,000h,000h ; Hex #4
19 Db 000h,000h,000h,018h,03Ch,03Ch,0E7h,0E7h,0E7h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #5
20 Db 000h,000h,000h,018h,03Ch,07Eh,0FFh,0FFh,07Eh,018h,018h,03Ch,000h,000h,000h,000h ; Hex #6
21 Db 000h,000h,000h,000h,000h,000h,018h,03Ch,03Ch,018h,000h,000h,000h,000h,000h,000h ; Hex #7
22 Db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0E7h,0C3h,0C3h,0E7h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh ; Hex #8
23 Db 000h,000h,000h,000h,000h,03Ch,066h,042h,042h,066h,03Ch,000h,000h,000h,000h,000h ; Hex #9
24 Db 0FFh,0FFh,0FFh,0FFh,0FFh,0C3h,099h,0BDh,0BDh,099h,0C3h,0FFh,0FFh,0FFh,0FFh,0FFh ; Hex #A
25 Db 000h,000h,01Eh,00Eh,01Ah,032h,078h,0CCh,0CCh,0CCh,0CCh,078h,000h,000h,000h,000h ; Hex #B
26 Db 000h,000h,03Ch,066h,066h,066h,066h,03Ch,018h,07Eh,018h,018h,000h,000h,000h,000h ; Hex #C
27 Db 000h,000h,03Fh,033h,03Fh,030h,030h,030h,030h,070h,0F0h,0E0h,000h,000h,000h,000h ; Hex #D
28 Db 000h,000h,07Fh,063h,07Fh,063h,063h,063h,063h,067h,0E7h,0E6h,0C0h,000h,000h,000h ; Hex #E
29 Db 000h,000h,000h,018h,018h,0DBh,03Ch,0E7h,03Ch,0DBh,018h,018h,000h,000h,000h,000h ; Hex #F
30 Db 000h,080h,0C0h,0E0h,0F0h,0F8h,0FEh,0F8h,0F0h,0E0h,0C0h,080h,000h,000h,000h,000h ; Hex #10
31 Db 000h,002h,006h,00Eh,01Eh,03Eh,0FEh,03Eh,01Eh,00Eh,006h,002h,000h,000h,000h,000h ; Hex #11
32 Db 000h,000h,018h,03Ch,07Eh,018h,018h,018h,07Eh,03Ch,018h,000h,000h,000h,000h,000h ; Hex #12
33 Db 000h,000h,066h,066h,066h,066h,066h,066h,066h,000h,066h,066h,000h,000h,000h,000h ; Hex #13
34 Db 000h,000h,07Fh,0DBh,0DBh,0DBh,07Bh,01Bh,01Bh,01Bh,01Bh,01Bh,000h,000h,000h,000h ; Hex #14
35 Db 000h,07Ch,0C6h,060h,038h,06Ch,0C6h,0C6h,06Ch,038h,00Ch,0C6h,07Ch,000h,000h,000h ; Hex #15
36 Db 000h,000h,000h,000h,000h,000h,000h,000h,0FEh,0FEh,0FEh,0FEh,000h,000h,000h,000h ; Hex #16
37 Db 000h,000h,018h,03Ch,07Eh,018h,018h,018h,07Eh,03Ch,018h,07Eh,000h,000h,000h,000h ; Hex #17
38 Db 000h,000h,018h,03Ch,07Eh,018h,018h,018h,018h,018h,018h,018h,000h,000h,000h,000h ; Hex #18
39 Db 000h,000h,018h,018h,018h,018h,018h,018h,018h,07Eh,03Ch,018h,000h,000h,000h,000h ; Hex #19
40 Db 000h,000h,000h,000h,000h,018h,00Ch,0FEh,00Ch,018h,000h,000h,000h,000h,000h,000h ; Hex #1A
41 Db 000h,000h,000h,000h,000h,030h,060h,0FEh,060h,030h,000h,000h,000h,000h,000h,000h ; Hex #1B
42 Db 000h,000h,000h,000h,000h,000h,0C0h,0C0h,0C0h,0FEh,000h,000h,000h,000h,000h,000h ; Hex #1C
43 Db 000h,000h,000h,000h,000h,028h,06Ch,0FEh,06Ch,028h,000h,000h,000h,000h,000h,000h ; Hex #1D
44 Db 000h,000h,000h,000h,010h,038h,038h,07Ch,07Ch,0FEh,0FEh,000h,000h,000h,000h,000h ; Hex #1E
45 Db 000h,000h,000h,000h,0FEh,0FEh,07Ch,07Ch,038h,038h,010h,000h,000h,000h,000h,000h ; Hex #1F
46 Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #20
47 Db 000h,000h,018h,03Ch,03Ch,03Ch,018h,018h,018h,000h,018h,018h,000h,000h,000h,000h ; Hex #21
48 Db 000h,066h,066h,066h,024h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #22
49 Db 000h,000h,000h,06Ch,06Ch,0FEh,06Ch,06Ch,06Ch,0FEh,06Ch,06Ch,000h,000h,000h,000h ; Hex #23
50 Db 018h,018h,07Ch,0C6h,0C2h,0C0h,07Ch,006h,006h,086h,0C6h,07Ch,018h,018h,000h,000h ; Hex #24
51 Db 000h,000h,000h,000h,0C2h,0C6h,00Ch,018h,030h,060h,0C6h,086h,000h,000h,000h,000h ; Hex #25
52 Db 000h,000h,038h,06Ch,06Ch,038h,076h,0DCh,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #26
53 Db 000h,030h,030h,030h,060h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #27
54 Db 000h,000h,00Ch,018h,030h,030h,030h,030h,030h,030h,018h,00Ch,000h,000h,000h,000h ; Hex #28
55 Db 000h,000h,030h,018h,00Ch,00Ch,00Ch,00Ch,00Ch,00Ch,018h,030h,000h,000h,000h,000h ; Hex #29
56 Db 000h,000h,000h,000h,000h,066h,03Ch,0FFh,03Ch,066h,000h,000h,000h,000h,000h,000h ; Hex #2A
57 Db 000h,000h,000h,000h,000h,018h,018h,07Eh,018h,018h,000h,000h,000h,000h,000h,000h ; Hex #2B
58 Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,018h,018h,018h,030h,000h,000h,000h ; Hex #2C
59 Db 000h,000h,000h,000h,000h,000h,000h,0FEh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #2D
60 Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,018h,018h,000h,000h,000h,000h ; Hex #2E
61 Db 000h,000h,000h,000h,002h,006h,00Ch,018h,030h,060h,0C0h,080h,000h,000h,000h,000h ; Hex #2F
62 Db 000h,000h,038h,06Ch,0C6h,0C6h,0D6h,0D6h,0C6h,0C6h,06Ch,038h,000h,000h,000h,000h ; Hex #30
63 Db 000h,000h,018h,038h,078h,018h,018h,018h,018h,018h,018h,07Eh,000h,000h,000h,000h ; Hex #31
64 Db 000h,000h,07Ch,0C6h,006h,00Ch,018h,030h,060h,0C0h,0C6h,0FEh,000h,000h,000h,000h ; Hex #32
65 Db 000h,000h,07Ch,0C6h,006h,006h,03Ch,006h,006h,006h,0C6h,07Ch,000h,000h,000h,000h ; Hex #33
66 Db 000h,000h,00Ch,01Ch,03Ch,06Ch,0CCh,0FEh,00Ch,00Ch,00Ch,01Eh,000h,000h,000h,000h ; Hex #34
67 Db 000h,000h,0FEh,0C0h,0C0h,0C0h,0FCh,006h,006h,006h,0C6h,07Ch,000h,000h,000h,000h ; Hex #35
68 Db 000h,000h,038h,060h,0C0h,0C0h,0FCh,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #36
69 Db 000h,000h,0FEh,0C6h,006h,006h,00Ch,018h,030h,030h,030h,030h,000h,000h,000h,000h ; Hex #37
70 Db 000h,000h,07Ch,0C6h,0C6h,0C6h,07Ch,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #38
71 Db 000h,000h,07Ch,0C6h,0C6h,0C6h,07Eh,006h,006h,006h,00Ch,078h,000h,000h,000h,000h ; Hex #39
72 Db 000h,000h,000h,000h,018h,018h,000h,000h,000h,018h,018h,000h,000h,000h,000h,000h ; Hex #3A
73 Db 000h,000h,000h,000h,018h,018h,000h,000h,000h,018h,018h,030h,000h,000h,000h,000h ; Hex #3B
74 Db 000h,000h,000h,006h,00Ch,018h,030h,060h,030h,018h,00Ch,006h,000h,000h,000h,000h ; Hex #3C
75 Db 000h,000h,000h,000h,000h,07Eh,000h,000h,07Eh,000h,000h,000h,000h,000h,000h,000h ; Hex #3D
76 Db 000h,000h,000h,060h,030h,018h,00Ch,006h,00Ch,018h,030h,060h,000h,000h,000h,000h ; Hex #3E
77 Db 000h,000h,07Ch,0C6h,0C6h,00Ch,018h,018h,018h,000h,018h,018h,000h,000h,000h,000h ; Hex #3F
78 Db 000h,000h,000h,07Ch,0C6h,0C6h,0DEh,0DEh,0DEh,0DCh,0C0h,07Ch,000h,000h,000h,000h ; Hex #40
79 Db 000h,000h,010h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #41
80 Db 000h,000h,0FCh,066h,066h,066h,07Ch,066h,066h,066h,066h,0FCh,000h,000h,000h,000h ; Hex #42
81 Db 000h,000h,03Ch,066h,0C2h,0C0h,0C0h,0C0h,0C0h,0C2h,066h,03Ch,000h,000h,000h,000h ; Hex #43
82 Db 000h,000h,0F8h,06Ch,066h,066h,066h,066h,066h,066h,06Ch,0F8h,000h,000h,000h,000h ; Hex #44
83 Db 000h,000h,0FEh,066h,062h,068h,078h,068h,060h,062h,066h,0FEh,000h,000h,000h,000h ; Hex #45
84 Db 000h,000h,0FEh,066h,062h,068h,078h,068h,060h,060h,060h,0F0h,000h,000h,000h,000h ; Hex #46
85 Db 000h,000h,03Ch,066h,0C2h,0C0h,0C0h,0DEh,0C6h,0C6h,066h,03Ah,000h,000h,000h,000h ; Hex #47
86 Db 000h,000h,0C6h,0C6h,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #48
87 Db 000h,000h,03Ch,018h,018h,018h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #49
88 Db 000h,000h,01Eh,00Ch,00Ch,00Ch,00Ch,00Ch,0CCh,0CCh,0CCh,078h,000h,000h,000h,000h ; Hex #4A
89 Db 000h,000h,0E6h,066h,066h,06Ch,078h,078h,06Ch,066h,066h,0E6h,000h,000h,000h,000h ; Hex #4B
90 Db 000h,000h,0F0h,060h,060h,060h,060h,060h,060h,062h,066h,0FEh,000h,000h,000h,000h ; Hex #4C
91 Db 000h,000h,0C6h,0EEh,0FEh,0FEh,0D6h,0C6h,0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #4D
92 Db 000h,000h,0C6h,0E6h,0F6h,0FEh,0DEh,0CEh,0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #4E
93 Db 000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #4F
94 Db 000h,000h,0FCh,066h,066h,066h,07Ch,060h,060h,060h,060h,0F0h,000h,000h,000h,000h ; Hex #50
95 Db 000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0D6h,0DEh,07Ch,00Ch,00Eh,000h,000h ; Hex #51
96 Db 000h,000h,0FCh,066h,066h,066h,07Ch,06Ch,066h,066h,066h,0E6h,000h,000h,000h,000h ; Hex #52
97 Db 000h,000h,07Ch,0C6h,0C6h,060h,038h,00Ch,006h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #53
98 Db 000h,000h,07Eh,07Eh,05Ah,018h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #54
99 Db 000h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #55
100 Db 000h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,06Ch,038h,010h,000h,000h,000h,000h ; Hex #56
101 Db 000h,000h,0C6h,0C6h,0C6h,0C6h,0D6h,0D6h,0D6h,0FEh,0EEh,06Ch,000h,000h,000h,000h ; Hex #57
102 Db 000h,000h,0C6h,0C6h,06Ch,07Ch,038h,038h,07Ch,06Ch,0C6h,0C6h,000h,000h,000h,000h ; Hex #58
103 Db 000h,000h,066h,066h,066h,066h,03Ch,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #59
104 Db 000h,000h,0FEh,0C6h,086h,00Ch,018h,030h,060h,0C2h,0C6h,0FEh,000h,000h,000h,000h ; Hex #5A
105 Db 000h,000h,03Ch,030h,030h,030h,030h,030h,030h,030h,030h,03Ch,000h,000h,000h,000h ; Hex #5B
106 Db 000h,000h,000h,080h,0C0h,0E0h,070h,038h,01Ch,00Eh,006h,002h,000h,000h,000h,000h ; Hex #5C
107 Db 000h,000h,03Ch,00Ch,00Ch,00Ch,00Ch,00Ch,00Ch,00Ch,00Ch,03Ch,000h,000h,000h,000h ; Hex #5D
108 Db 010h,038h,06Ch,0C6h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #5E
109 Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,0FFh,000h,000h ; Hex #5F
110 Db 000h,030h,018h,00Ch,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #60
111 Db 000h,000h,000h,000h,000h,078h,00Ch,07Ch,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #61
112 Db 000h,000h,0E0h,060h,060h,078h,06Ch,066h,066h,066h,066h,07Ch,000h,000h,000h,000h ; Hex #62
113 Db 000h,000h,000h,000h,000h,07Ch,0C6h,0C0h,0C0h,0C0h,0C6h,07Ch,000h,000h,000h,000h ; Hex #63
114 Db 000h,000h,01Ch,00Ch,00Ch,03Ch,06Ch,0CCh,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #64
115 Db 000h,000h,000h,000h,000h,07Ch,0C6h,0FEh,0C0h,0C0h,0C6h,07Ch,000h,000h,000h,000h ; Hex #65
116 Db 000h,000h,01Ch,036h,032h,030h,078h,030h,030h,030h,030h,078h,000h,000h,000h,000h ; Hex #66
117 Db 000h,000h,000h,000h,000h,076h,0CCh,0CCh,0CCh,0CCh,0CCh,07Ch,00Ch,0CCh,078h,000h ; Hex #67
118 Db 000h,000h,0E0h,060h,060h,06Ch,076h,066h,066h,066h,066h,0E6h,000h,000h,000h,000h ; Hex #68
119 Db 000h,000h,018h,018h,000h,038h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #69
120 Db 000h,000h,006h,006h,000h,00Eh,006h,006h,006h,006h,006h,006h,066h,066h,03Ch,000h ; Hex #6A
121 Db 000h,000h,0E0h,060h,060h,066h,06Ch,078h,078h,06Ch,066h,0E6h,000h,000h,000h,000h ; Hex #6B
122 Db 000h,000h,038h,018h,018h,018h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #6C
123 Db 000h,000h,000h,000h,000h,0ECh,0FEh,0D6h,0D6h,0D6h,0D6h,0C6h,000h,000h,000h,000h ; Hex #6D
124 Db 000h,000h,000h,000h,000h,0DCh,066h,066h,066h,066h,066h,066h,000h,000h,000h,000h ; Hex #6E
125 Db 000h,000h,000h,000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #6F
126 Db 000h,000h,000h,000h,000h,0DCh,066h,066h,066h,066h,066h,07Ch,060h,060h,0F0h,000h ; Hex #70
127 Db 000h,000h,000h,000h,000h,076h,0CCh,0CCh,0CCh,0CCh,0CCh,07Ch,00Ch,00Ch,01Eh,000h ; Hex #71
128 Db 000h,000h,000h,000h,000h,0DCh,076h,066h,060h,060h,060h,0F0h,000h,000h,000h,000h ; Hex #72
129 Db 000h,000h,000h,000h,000h,07Ch,0C6h,060h,038h,00Ch,0C6h,07Ch,000h,000h,000h,000h ; Hex #73
130 Db 000h,000h,010h,030h,030h,0FCh,030h,030h,030h,030h,036h,01Ch,000h,000h,000h,000h ; Hex #74
131 Db 000h,000h,000h,000h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #75
132 Db 000h,000h,000h,000h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,06Ch,038h,000h,000h,000h,000h ; Hex #76
133 Db 000h,000h,000h,000h,000h,0C6h,0C6h,0D6h,0D6h,0D6h,0FEh,06Ch,000h,000h,000h,000h ; Hex #77
134 Db 000h,000h,000h,000h,000h,0C6h,06Ch,038h,038h,038h,06Ch,0C6h,000h,000h,000h,000h ; Hex #78
135 Db 000h,000h,000h,000h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Eh,006h,00Ch,0F8h,000h ; Hex #79
136 Db 000h,000h,000h,000h,000h,0FEh,0CCh,018h,030h,060h,0C6h,0FEh,000h,000h,000h,000h ; Hex #7A
137 Db 000h,000h,00Eh,018h,018h,018h,070h,018h,018h,018h,018h,00Eh,000h,000h,000h,000h ; Hex #7B
138 Db 000h,000h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,000h,000h,000h,000h ; Hex #7C
139 Db 000h,000h,070h,018h,018h,018h,00Eh,018h,018h,018h,018h,070h,000h,000h,000h,000h ; Hex #7D
140 Db 000h,076h,0DCh,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #7E
141 Db 000h,000h,000h,000h,010h,038h,06Ch,0C6h,0C6h,0C6h,0FEh,000h,000h,000h,000h,000h ; Hex #7F
142 Db 000h,000h,03Ch,066h,0C2h,0C0h,0C0h,0C0h,0C0h,0C2h,066h,03Ch,018h,070h,000h,000h ; Hex #80
143 Db 000h,000h,0CCh,000h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #81
144 Db 000h,00Ch,018h,030h,000h,07Ch,0C6h,0FEh,0C0h,0C0h,0C6h,07Ch,000h,000h,000h,000h ; Hex #82
145 Db 000h,010h,038h,06Ch,000h,078h,00Ch,07Ch,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #83
146 Db 000h,000h,0CCh,000h,000h,078h,00Ch,07Ch,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #84
147 Db 000h,060h,030h,018h,000h,078h,00Ch,07Ch,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #85
148 Db 000h,038h,06Ch,038h,000h,078h,00Ch,07Ch,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #86
149 Db 000h,000h,000h,000h,000h,07Ch,0C6h,0C0h,0C0h,0C0h,0C6h,07Ch,018h,070h,000h,000h ; Hex #87
150 Db 000h,010h,038h,06Ch,000h,07Ch,0C6h,0FEh,0C0h,0C0h,0C6h,07Ch,000h,000h,000h,000h ; Hex #88
151 Db 000h,000h,0C6h,000h,000h,07Ch,0C6h,0FEh,0C0h,0C0h,0C6h,07Ch,000h,000h,000h,000h ; Hex #89
152 Db 000h,060h,030h,018h,000h,07Ch,0C6h,0FEh,0C0h,0C0h,0C6h,07Ch,000h,000h,000h,000h ; Hex #8A
153 Db 000h,000h,066h,000h,000h,038h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #8B
154 Db 000h,018h,03Ch,066h,000h,038h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #8C
155 Db 000h,060h,030h,018h,000h,038h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #8D
156 Db 000h,0C6h,000h,010h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #8E
157 Db 038h,06Ch,038h,010h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #8F
158 Db 00Ch,018h,000h,0FEh,066h,062h,068h,078h,068h,062h,066h,0FEh,000h,000h,000h,000h ; Hex #90
159 Db 000h,000h,000h,000h,000h,0ECh,036h,036h,07Eh,0D8h,0D8h,06Eh,000h,000h,000h,000h ; Hex #91
160 Db 000h,000h,03Eh,06Ch,0CCh,0CCh,0FEh,0CCh,0CCh,0CCh,0CCh,0CEh,000h,000h,000h,000h ; Hex #92
161 Db 000h,010h,038h,06Ch,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #93
162 Db 000h,000h,0C6h,000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #94
163 Db 000h,060h,030h,018h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #95
164 Db 000h,030h,078h,0CCh,000h,0CCh,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #96
165 Db 000h,060h,030h,018h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #97
166 Db 000h,000h,0C6h,000h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Eh,006h,00Ch,078h,000h ; Hex #98
167 Db 000h,0C6h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #99
168 Db 000h,0C6h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #9A
169 Db 000h,000h,000h,000h,000h,07Ch,0C6h,0CEh,0D6h,0E6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #9B
170 Db 000h,038h,06Ch,064h,060h,0F0h,060h,060h,060h,060h,0E6h,0FCh,000h,000h,000h,000h ; Hex #9C
171 Db 000h,004h,07Ch,0CEh,0CEh,0D6h,0D6h,0D6h,0D6h,0E6h,0E6h,07Ch,040h,000h,000h,000h ; Hex #9D
172 Db 000h,0F8h,0CCh,0CCh,0F8h,0C4h,0CCh,0DEh,0CCh,0CCh,0CCh,0C6h,000h,000h,000h,000h ; Hex #9E
173 Db 000h,00Eh,01Bh,018h,018h,018h,07Eh,018h,018h,018h,0D8h,070h,000h,000h,000h,000h ; Hex #9F
174 Db 000h,018h,030h,060h,000h,078h,00Ch,07Ch,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #A0
175 Db 000h,00Ch,018h,030h,000h,038h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #A1
176 Db 000h,018h,030h,060h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #A2
177 Db 000h,018h,030h,060h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #A3
178 Db 000h,000h,076h,0DCh,000h,0DCh,066h,066h,066h,066h,066h,066h,000h,000h,000h,000h ; Hex #A4
179 Db 076h,0DCh,000h,0C6h,0E6h,0F6h,0FEh,0DEh,0CEh,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #A5
180 Db 000h,000h,03Ch,06Ch,06Ch,03Eh,000h,07Eh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #A6
181 Db 000h,000h,038h,06Ch,06Ch,038h,000h,07Ch,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #A7
182 Db 000h,000h,030h,030h,000h,030h,030h,060h,0C0h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #A8
183 Db 000h,000h,000h,000h,000h,000h,0FEh,0C0h,0C0h,0C0h,0C0h,000h,000h,000h,000h,000h ; Hex #A9
184 Db 000h,000h,000h,000h,000h,000h,0FEh,006h,006h,006h,006h,000h,000h,000h,000h,000h ; Hex #AA
185 Db 000h,060h,0E0h,062h,066h,06Ch,018h,030h,060h,0DCh,086h,00Ch,018h,03Eh,000h,000h ; Hex #AB
186 Db 000h,060h,0E0h,062h,066h,06Ch,018h,030h,066h,0CEh,09Ah,03Fh,006h,006h,000h,000h ; Hex #AC
187 Db 000h,000h,018h,018h,000h,018h,018h,018h,03Ch,03Ch,03Ch,018h,000h,000h,000h,000h ; Hex #AD
188 Db 000h,000h,000h,000h,000h,036h,06Ch,0D8h,06Ch,036h,000h,000h,000h,000h,000h,000h ; Hex #AE
189 Db 000h,000h,000h,000h,0C6h,07Ch,0C6h,0C6h,0C6h,0C6h,07Ch,0C6h,000h,000h,000h,000h ; Hex #AF
190 Db 011h,044h,011h,044h,011h,044h,011h,044h,011h,044h,011h,044h,011h,044h,011h,044h ; Hex #B0
191 Db 055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh ; Hex #B1
192 Db 0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h ; Hex #B2
193 Db 018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #B3
194 Db 018h,018h,018h,018h,018h,018h,018h,0F8h,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #B4
195 Db 018h,018h,018h,018h,018h,0F8h,018h,0F8h,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #B5
196 Db 036h,036h,036h,036h,036h,036h,036h,0F6h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #B6
197 Db 000h,000h,000h,000h,000h,000h,000h,0FEh,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #B7
198 Db 000h,000h,000h,000h,000h,0F8h,018h,0F8h,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #B8
199 Db 036h,036h,036h,036h,036h,0F6h,006h,0F6h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #B9
200 Db 036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #BA
201 Db 000h,000h,000h,000h,000h,0FEh,006h,0F6h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #BB
202 Db 036h,036h,036h,036h,036h,0F6h,006h,0FEh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #BC
203 Db 036h,036h,036h,036h,036h,036h,036h,0FEh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #BD
204 Db 018h,018h,018h,018h,018h,0F8h,018h,0F8h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #BE
205 Db 000h,000h,000h,000h,000h,000h,000h,0F8h,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #BF
206 Db 018h,018h,018h,018h,018h,018h,018h,01Fh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #C0
207 Db 018h,018h,018h,018h,018h,018h,018h,0FFh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #C1
208 Db 000h,000h,000h,000h,000h,000h,000h,0FFh,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #C2
209 Db 018h,018h,018h,018h,018h,018h,018h,01Fh,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #C3
210 Db 000h,000h,000h,000h,000h,000h,000h,0FFh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #C4
211 Db 018h,018h,018h,018h,018h,018h,018h,0FFh,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #C5
212 Db 018h,018h,018h,018h,018h,01Fh,018h,01Fh,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #C6
213 Db 036h,036h,036h,036h,036h,036h,036h,037h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #C7
214 Db 036h,036h,036h,036h,036h,037h,030h,03Fh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #C8
215 Db 000h,000h,000h,000h,000h,03Fh,030h,037h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #C9
216 Db 036h,036h,036h,036h,036h,0F7h,000h,0FFh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #CA
217 Db 000h,000h,000h,000h,000h,0FFh,000h,0F7h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #CB
218 Db 036h,036h,036h,036h,036h,037h,030h,037h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #CC
219 Db 000h,000h,000h,000h,000h,0FFh,000h,0FFh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #CD
220 Db 036h,036h,036h,036h,036h,0F7h,000h,0F7h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #CE
221 Db 018h,018h,018h,018h,018h,0FFh,000h,0FFh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #CF
222 Db 036h,036h,036h,036h,036h,036h,036h,0FFh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #D0
223 Db 000h,000h,000h,000h,000h,0FFh,000h,0FFh,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #D1
224 Db 000h,000h,000h,000h,000h,000h,000h,0FFh,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #D2
225 Db 036h,036h,036h,036h,036h,036h,036h,03Fh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #D3
226 Db 018h,018h,018h,018h,018h,01Fh,018h,01Fh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #D4
227 Db 000h,000h,000h,000h,000h,01Fh,018h,01Fh,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #D5
228 Db 000h,000h,000h,000h,000h,000h,000h,03Fh,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #D6
229 Db 036h,036h,036h,036h,036h,036h,036h,0FFh,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #D7
230 Db 018h,018h,018h,018h,018h,0FFh,018h,0FFh,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #D8
231 Db 018h,018h,018h,018h,018h,018h,018h,0F8h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #D9
232 Db 000h,000h,000h,000h,000h,000h,000h,01Fh,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #DA
233 Db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh ; Hex #DB
234 Db 000h,000h,000h,000h,000h,000h,000h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh ; Hex #DC
235 Db 0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h ; Hex #DD
236 Db 00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh ; Hex #DE
237 Db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #DF
238 Db 000h,000h,000h,000h,000h,076h,0DCh,0D8h,0D8h,0D8h,0DCh,076h,000h,000h,000h,000h ; Hex #E0
239 Db 000h,000h,078h,0CCh,0CCh,0CCh,0D8h,0CCh,0C6h,0C6h,0C6h,0CCh,000h,000h,000h,000h ; Hex #E1
240 Db 000h,000h,0FEh,0C6h,0C6h,0C0h,0C0h,0C0h,0C0h,0C0h,0C0h,0C0h,000h,000h,000h,000h ; Hex #E2
241 Db 000h,000h,000h,000h,000h,0FEh,06Ch,06Ch,06Ch,06Ch,06Ch,06Ch,000h,000h,000h,000h ; Hex #E3
242 Db 000h,000h,0FEh,0C6h,060h,030h,018h,018h,030h,060h,0C6h,0FEh,000h,000h,000h,000h ; Hex #E4
243 Db 000h,000h,000h,000h,000h,07Eh,0D8h,0D8h,0D8h,0D8h,0D8h,070h,000h,000h,000h,000h ; Hex #E5
244 Db 000h,000h,000h,000h,000h,066h,066h,066h,066h,066h,066h,07Ch,060h,060h,0C0h,000h ; Hex #E6
245 Db 000h,000h,000h,000h,076h,0DCh,018h,018h,018h,018h,018h,018h,000h,000h,000h,000h ; Hex #E7
246 Db 000h,000h,07Eh,018h,03Ch,066h,066h,066h,066h,03Ch,018h,07Eh,000h,000h,000h,000h ; Hex #E8
247 Db 000h,000h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,06Ch,038h,000h,000h,000h,000h ; Hex #E9
248 Db 000h,000h,038h,06Ch,0C6h,0C6h,0C6h,06Ch,06Ch,06Ch,06Ch,0EEh,000h,000h,000h,000h ; Hex #EA
249 Db 000h,000h,01Eh,030h,018h,00Ch,03Eh,066h,066h,066h,066h,03Ch,000h,000h,000h,000h ; Hex #EB
250 Db 000h,000h,000h,000h,000h,07Eh,0DBh,0DBh,0DBh,07Eh,000h,000h,000h,000h,000h,000h ; Hex #EC
251 Db 000h,000h,000h,003h,006h,07Eh,0DBh,0DBh,0F3h,07Eh,060h,0C0h,000h,000h,000h,000h ; Hex #ED
252 Db 000h,000h,01Ch,030h,060h,060h,07Ch,060h,060h,060h,030h,01Ch,000h,000h,000h,000h ; Hex #EE
253 Db 000h,000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #EF
254 Db 000h,000h,000h,000h,0FEh,000h,000h,0FEh,000h,000h,0FEh,000h,000h,000h,000h,000h ; Hex #F0
255 Db 000h,000h,000h,000h,018h,018h,07Eh,018h,018h,000h,000h,07Eh,000h,000h,000h,000h ; Hex #F1
256 Db 000h,000h,000h,030h,018h,00Ch,006h,00Ch,018h,030h,000h,07Eh,000h,000h,000h,000h ; Hex #F2
257 Db 000h,000h,000h,00Ch,018h,030h,060h,030h,018h,00Ch,000h,07Eh,000h,000h,000h,000h ; Hex #F3
258 Db 000h,000h,00Eh,01Bh,01Bh,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #F4
259 Db 018h,018h,018h,018h,018h,018h,018h,018h,018h,0D8h,0D8h,0D8h,070h,000h,000h,000h ; Hex #F5
260 Db 000h,000h,000h,000h,000h,018h,000h,07Eh,000h,018h,000h,000h,000h,000h,000h,000h ; Hex #F6
261 Db 000h,000h,000h,000h,000h,076h,0DCh,000h,076h,0DCh,000h,000h,000h,000h,000h,000h ; Hex #F7
262 Db 000h,038h,06Ch,06Ch,038h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #F8
263 Db 000h,000h,000h,000h,000h,000h,000h,018h,018h,000h,000h,000h,000h,000h,000h,000h ; Hex #F9
264 Db 000h,000h,000h,000h,000h,000h,000h,018h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #FA
265 Db 000h,00Fh,00Ch,00Ch,00Ch,00Ch,00Ch,0ECh,06Ch,06Ch,03Ch,01Ch,000h,000h,000h,000h ; Hex #FB
266 Db 000h,06Ch,036h,036h,036h,036h,036h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #FC
267 Db 000h,03Ch,066h,00Ch,018h,032h,07Eh,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #FD
268 Db 000h,000h,000h,000h,07Eh,07Eh,07Eh,07Eh,07Eh,07Eh,07Eh,000h,000h,000h,000h,000h ; Hex #FE
269 Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #FF
270
diff --git a/v4.0/src/DEV/DISPLAY/EGA/865-8X8.ASM b/v4.0/src/DEV/DISPLAY/EGA/865-8X8.ASM
new file mode 100644
index 0000000..3aad184
--- /dev/null
+++ b/v4.0/src/DEV/DISPLAY/EGA/865-8X8.ASM
@@ -0,0 +1,270 @@
1;***************************************************
2; CHARACTER FONT FILE
3; Source Assembler File
4;
5; CODE PAGE: 865
6; FONT RESOLUTION: 8 x 8
7;
8; DATE CREATED:05-28-1987
9;
10;
11; Output file from: MULTIFON, Version 1A
12;
13;***************************************************
14 Db 000h,000h,000h,000h,000h,000h,000h,000h ; Hex #0
15 Db 07Eh,081h,0A5h,081h,0BDh,099h,081h,07Eh ; Hex #1
16 Db 07Eh,0FFh,0DBh,0FFh,0C3h,0E7h,0FFh,07Eh ; Hex #2
17 Db 06Ch,0FEh,0FEh,0FEh,07Ch,038h,010h,000h ; Hex #3
18 Db 010h,038h,07Ch,0FEh,07Ch,038h,010h,000h ; Hex #4
19 Db 038h,07Ch,038h,0FEh,0FEh,0D6h,010h,038h ; Hex #5
20 Db 010h,038h,07Ch,0FEh,0FEh,07Ch,010h,038h ; Hex #6
21 Db 000h,000h,018h,03Ch,03Ch,018h,000h,000h ; Hex #7
22 Db 0FFh,0FFh,0E7h,0C3h,0C3h,0E7h,0FFh,0FFh ; Hex #8
23 Db 000h,03Ch,066h,042h,042h,066h,03Ch,000h ; Hex #9
24 Db 0FFh,0C3h,099h,0BDh,0BDh,099h,0C3h,0FFh ; Hex #A
25 Db 00Fh,007h,00Fh,07Dh,0CCh,0CCh,0CCh,078h ; Hex #B
26 Db 03Ch,066h,066h,066h,03Ch,018h,07Eh,018h ; Hex #C
27 Db 03Fh,033h,03Fh,030h,030h,070h,0F0h,0E0h ; Hex #D
28 Db 07Fh,063h,07Fh,063h,063h,067h,0E6h,0C0h ; Hex #E
29 Db 018h,0DBh,03Ch,0E7h,0E7h,03Ch,0DBh,018h ; Hex #F
30 Db 080h,0E0h,0F8h,0FEh,0F8h,0E0h,080h,000h ; Hex #10
31 Db 002h,00Eh,03Eh,0FEh,03Eh,00Eh,002h,000h ; Hex #11
32 Db 018h,03Ch,07Eh,018h,018h,07Eh,03Ch,018h ; Hex #12
33 Db 066h,066h,066h,066h,066h,000h,066h,000h ; Hex #13
34 Db 07Fh,0DBh,0DBh,07Bh,01Bh,01Bh,01Bh,000h ; Hex #14
35 Db 03Eh,061h,03Ch,066h,066h,03Ch,086h,07Ch ; Hex #15
36 Db 000h,000h,000h,000h,07Eh,07Eh,07Eh,000h ; Hex #16
37 Db 018h,03Ch,07Eh,018h,07Eh,03Ch,018h,0FFh ; Hex #17
38 Db 018h,03Ch,07Eh,018h,018h,018h,018h,000h ; Hex #18
39 Db 018h,018h,018h,018h,07Eh,03Ch,018h,000h ; Hex #19
40 Db 000h,018h,00Ch,0FEh,00Ch,018h,000h,000h ; Hex #1A
41 Db 000h,030h,060h,0FEh,060h,030h,000h,000h ; Hex #1B
42 Db 000h,000h,0C0h,0C0h,0C0h,0FEh,000h,000h ; Hex #1C
43 Db 000h,024h,066h,0FFh,066h,024h,000h,000h ; Hex #1D
44 Db 000h,018h,03Ch,07Eh,0FFh,0FFh,000h,000h ; Hex #1E
45 Db 000h,0FFh,0FFh,07Eh,03Ch,018h,000h,000h ; Hex #1F
46 Db 000h,000h,000h,000h,000h,000h,000h,000h ; Hex #20
47 Db 018h,03Ch,03Ch,018h,018h,000h,018h,000h ; Hex #21
48 Db 066h,066h,024h,000h,000h,000h,000h,000h ; Hex #22
49 Db 06Ch,06Ch,0FEh,06Ch,0FEh,06Ch,06Ch,000h ; Hex #23
50 Db 018h,03Eh,060h,03Ch,006h,07Ch,018h,000h ; Hex #24
51 Db 000h,0C6h,0CCh,018h,030h,066h,0C6h,000h ; Hex #25
52 Db 038h,06Ch,038h,076h,0DCh,0CCh,076h,000h ; Hex #26
53 Db 018h,018h,030h,000h,000h,000h,000h,000h ; Hex #27
54 Db 00Ch,018h,030h,030h,030h,018h,00Ch,000h ; Hex #28
55 Db 030h,018h,00Ch,00Ch,00Ch,018h,030h,000h ; Hex #29
56 Db 000h,066h,03Ch,0FFh,03Ch,066h,000h,000h ; Hex #2A
57 Db 000h,018h,018h,07Eh,018h,018h,000h,000h ; Hex #2B
58 Db 000h,000h,000h,000h,000h,018h,018h,030h ; Hex #2C
59 Db 000h,000h,000h,07Eh,000h,000h,000h,000h ; Hex #2D
60 Db 000h,000h,000h,000h,000h,018h,018h,000h ; Hex #2E
61 Db 006h,00Ch,018h,030h,060h,0C0h,080h,000h ; Hex #2F
62 Db 038h,06Ch,0C6h,0D6h,0C6h,06Ch,038h,000h ; Hex #30
63 Db 018h,038h,018h,018h,018h,018h,07Eh,000h ; Hex #31
64 Db 07Ch,0C6h,006h,01Ch,030h,066h,0FEh,000h ; Hex #32
65 Db 07Ch,0C6h,006h,03Ch,006h,0C6h,07Ch,000h ; Hex #33
66 Db 01Ch,03Ch,06Ch,0CCh,0FEh,00Ch,01Eh,000h ; Hex #34
67 Db 0FEh,0C0h,0C0h,0FCh,006h,0C6h,07Ch,000h ; Hex #35
68 Db 038h,060h,0C0h,0FCh,0C6h,0C6h,07Ch,000h ; Hex #36
69 Db 0FEh,0C6h,00Ch,018h,030h,030h,030h,000h ; Hex #37
70 Db 07Ch,0C6h,0C6h,07Ch,0C6h,0C6h,07Ch,000h ; Hex #38
71 Db 07Ch,0C6h,0C6h,07Eh,006h,00Ch,078h,000h ; Hex #39
72 Db 000h,018h,018h,000h,000h,018h,018h,000h ; Hex #3A
73 Db 000h,018h,018h,000h,000h,018h,018h,030h ; Hex #3B
74 Db 006h,00Ch,018h,030h,018h,00Ch,006h,000h ; Hex #3C
75 Db 000h,000h,07Eh,000h,000h,07Eh,000h,000h ; Hex #3D
76 Db 060h,030h,018h,00Ch,018h,030h,060h,000h ; Hex #3E
77 Db 07Ch,0C6h,00Ch,018h,018h,000h,018h,000h ; Hex #3F
78 Db 07Ch,0C6h,0DEh,0DEh,0DEh,0C0h,078h,000h ; Hex #40
79 Db 038h,06Ch,0C6h,0FEh,0C6h,0C6h,0C6h,000h ; Hex #41
80 Db 0FCh,066h,066h,07Ch,066h,066h,0FCh,000h ; Hex #42
81 Db 03Ch,066h,0C0h,0C0h,0C0h,066h,03Ch,000h ; Hex #43
82 Db 0F8h,06Ch,066h,066h,066h,06Ch,0F8h,000h ; Hex #44
83 Db 0FEh,062h,068h,078h,068h,062h,0FEh,000h ; Hex #45
84 Db 0FEh,062h,068h,078h,068h,060h,0F0h,000h ; Hex #46
85 Db 03Ch,066h,0C0h,0C0h,0CEh,066h,03Ah,000h ; Hex #47
86 Db 0C6h,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,000h ; Hex #48
87 Db 03Ch,018h,018h,018h,018h,018h,03Ch,000h ; Hex #49
88 Db 01Eh,00Ch,00Ch,00Ch,0CCh,0CCh,078h,000h ; Hex #4A
89 Db 0E6h,066h,06Ch,078h,06Ch,066h,0E6h,000h ; Hex #4B
90 Db 0F0h,060h,060h,060h,062h,066h,0FEh,000h ; Hex #4C
91 Db 0C6h,0EEh,0FEh,0FEh,0D6h,0C6h,0C6h,000h ; Hex #4D
92 Db 0C6h,0E6h,0F6h,0DEh,0CEh,0C6h,0C6h,000h ; Hex #4E
93 Db 07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h ; Hex #4F
94 Db 0FCh,066h,066h,07Ch,060h,060h,0F0h,000h ; Hex #50
95 Db 07Ch,0C6h,0C6h,0C6h,0C6h,0CEh,07Ch,00Eh ; Hex #51
96 Db 0FCh,066h,066h,07Ch,06Ch,066h,0E6h,000h ; Hex #52
97 Db 03Ch,066h,030h,018h,00Ch,066h,03Ch,000h ; Hex #53
98 Db 07Eh,07Eh,05Ah,018h,018h,018h,03Ch,000h ; Hex #54
99 Db 0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h ; Hex #55
100 Db 0C6h,0C6h,0C6h,0C6h,0C6h,06Ch,038h,000h ; Hex #56
101 Db 0C6h,0C6h,0C6h,0D6h,0D6h,0FEh,06Ch,000h ; Hex #57
102 Db 0C6h,0C6h,06Ch,038h,06Ch,0C6h,0C6h,000h ; Hex #58
103 Db 066h,066h,066h,03Ch,018h,018h,03Ch,000h ; Hex #59
104 Db 0FEh,0C6h,08Ch,018h,032h,066h,0FEh,000h ; Hex #5A
105 Db 03Ch,030h,030h,030h,030h,030h,03Ch,000h ; Hex #5B
106 Db 0C0h,060h,030h,018h,00Ch,006h,002h,000h ; Hex #5C
107 Db 03Ch,00Ch,00Ch,00Ch,00Ch,00Ch,03Ch,000h ; Hex #5D
108 Db 010h,038h,06Ch,0C6h,000h,000h,000h,000h ; Hex #5E
109 Db 000h,000h,000h,000h,000h,000h,000h,0FFh ; Hex #5F
110 Db 030h,018h,00Ch,000h,000h,000h,000h,000h ; Hex #60
111 Db 000h,000h,078h,00Ch,07Ch,0CCh,076h,000h ; Hex #61
112 Db 0E0h,060h,07Ch,066h,066h,066h,0DCh,000h ; Hex #62
113 Db 000h,000h,07Ch,0C6h,0C0h,0C6h,07Ch,000h ; Hex #63
114 Db 01Ch,00Ch,07Ch,0CCh,0CCh,0CCh,076h,000h ; Hex #64
115 Db 000h,000h,07Ch,0C6h,0FEh,0C0h,07Ch,000h ; Hex #65
116 Db 03Ch,066h,060h,0F8h,060h,060h,0F0h,000h ; Hex #66
117 Db 000h,000h,076h,0CCh,0CCh,07Ch,00Ch,0F8h ; Hex #67
118 Db 0E0h,060h,06Ch,076h,066h,066h,0E6h,000h ; Hex #68
119 Db 018h,000h,038h,018h,018h,018h,03Ch,000h ; Hex #69
120 Db 006h,000h,006h,006h,006h,066h,066h,03Ch ; Hex #6A
121 Db 0E0h,060h,066h,06Ch,078h,06Ch,0E6h,000h ; Hex #6B
122 Db 038h,018h,018h,018h,018h,018h,03Ch,000h ; Hex #6C
123 Db 000h,000h,0ECh,0FEh,0D6h,0D6h,0D6h,000h ; Hex #6D
124 Db 000h,000h,0DCh,066h,066h,066h,066h,000h ; Hex #6E
125 Db 000h,000h,07Ch,0C6h,0C6h,0C6h,07Ch,000h ; Hex #6F
126 Db 000h,000h,0DCh,066h,066h,07Ch,060h,0F0h ; Hex #70
127 Db 000h,000h,076h,0CCh,0CCh,07Ch,00Ch,01Eh ; Hex #71
128 Db 000h,000h,0DCh,076h,060h,060h,0F0h,000h ; Hex #72
129 Db 000h,000h,07Eh,0C0h,07Ch,006h,0FCh,000h ; Hex #73
130 Db 030h,030h,0FCh,030h,030h,036h,01Ch,000h ; Hex #74
131 Db 000h,000h,0CCh,0CCh,0CCh,0CCh,076h,000h ; Hex #75
132 Db 000h,000h,0C6h,0C6h,0C6h,06Ch,038h,000h ; Hex #76
133 Db 000h,000h,0C6h,0D6h,0D6h,0FEh,06Ch,000h ; Hex #77
134 Db 000h,000h,0C6h,06Ch,038h,06Ch,0C6h,000h ; Hex #78
135 Db 000h,000h,0C6h,0C6h,0C6h,07Eh,006h,0FCh ; Hex #79
136 Db 000h,000h,07Eh,04Ch,018h,032h,07Eh,000h ; Hex #7A
137 Db 00Eh,018h,018h,070h,018h,018h,00Eh,000h ; Hex #7B
138 Db 018h,018h,018h,018h,018h,018h,018h,000h ; Hex #7C
139 Db 070h,018h,018h,00Eh,018h,018h,070h,000h ; Hex #7D
140 Db 076h,0DCh,000h,000h,000h,000h,000h,000h ; Hex #7E
141 Db 000h,010h,038h,06Ch,0C6h,0C6h,0FEh,000h ; Hex #7F
142 Db 07Ch,0C6h,0C0h,0C0h,0C6h,07Ch,00Ch,078h ; Hex #80
143 Db 0CCh,000h,0CCh,0CCh,0CCh,0CCh,076h,000h ; Hex #81
144 Db 00Ch,018h,07Ch,0C6h,0FEh,0C0h,07Ch,000h ; Hex #82
145 Db 07Ch,082h,078h,00Ch,07Ch,0CCh,076h,000h ; Hex #83
146 Db 0C6h,000h,078h,00Ch,07Ch,0CCh,076h,000h ; Hex #84
147 Db 030h,018h,078h,00Ch,07Ch,0CCh,076h,000h ; Hex #85
148 Db 030h,030h,078h,00Ch,07Ch,0CCh,076h,000h ; Hex #86
149 Db 000h,000h,07Eh,0C0h,0C0h,07Eh,00Ch,038h ; Hex #87
150 Db 07Ch,082h,07Ch,0C6h,0FEh,0C0h,07Ch,000h ; Hex #88
151 Db 0C6h,000h,07Ch,0C6h,0FEh,0C0h,07Ch,000h ; Hex #89
152 Db 030h,018h,07Ch,0C6h,0FEh,0C0h,07Ch,000h ; Hex #8A
153 Db 066h,000h,038h,018h,018h,018h,03Ch,000h ; Hex #8B
154 Db 07Ch,082h,038h,018h,018h,018h,03Ch,000h ; Hex #8C
155 Db 030h,018h,000h,038h,018h,018h,03Ch,000h ; Hex #8D
156 Db 0C6h,038h,06Ch,0C6h,0FEh,0C6h,0C6h,000h ; Hex #8E
157 Db 038h,06Ch,07Ch,0C6h,0FEh,0C6h,0C6h,000h ; Hex #8F
158 Db 018h,030h,0FEh,0C0h,0F8h,0C0h,0FEh,000h ; Hex #90
159 Db 000h,000h,07Eh,012h,0feh,090h,0fEh,000h ; Hex #91
160 Db 03Eh,06Ch,0CCh,0FEh,0CCh,0CCh,0CEh,000h ; Hex #92
161 Db 07Ch,082h,07Ch,0C6h,0C6h,0C6h,07Ch,000h ; Hex #93
162 Db 0C6h,000h,07Ch,0C6h,0C6h,0C6h,07Ch,000h ; Hex #94
163 Db 030h,018h,07Ch,0C6h,0C6h,0C6h,07Ch,000h ; Hex #95
164 Db 078h,084h,000h,0CCh,0CCh,0CCh,076h,000h ; Hex #96
165 Db 060h,030h,0CCh,0CCh,0CCh,0CCh,076h,000h ; Hex #97
166 Db 0C6h,000h,0C6h,0C6h,0C6h,07Eh,006h,0FCh ; Hex #98
167 Db 0C6h,038h,06Ch,0C6h,0C6h,06Ch,038h,000h ; Hex #99
168 Db 0C6h,000h,0C6h,0C6h,0C6h,0C6h,07Ch,000h ; Hex #9A
169 Db 000h,002h,07Ch,0CEh,0D6h,0E6h,07Ch,080h ; Hex #9B
170 Db 038h,06Ch,064h,0F0h,060h,066h,0FCh,000h ; Hex #9C
171 Db 03Ah,06Ch,0CEh,0D6h,0E6h,06Ch,0B8h,000h ; Hex #9D
172 Db 0F8h,0CCh,0CCh,0FAh,0C6h,0CFh,0C6h,0C7h ; Hex #9E
173 Db 00Eh,01Bh,018h,03Ch,018h,0D8h,070h,000h ; Hex #9F
174 Db 018h,030h,078h,00Ch,07Ch,0CCh,076h,000h ; Hex #A0
175 Db 00Ch,018h,000h,038h,018h,018h,03Ch,000h ; Hex #A1
176 Db 00Ch,018h,07Ch,0C6h,0C6h,0C6h,07Ch,000h ; Hex #A2
177 Db 018h,030h,0CCh,0CCh,0CCh,0CCh,076h,000h ; Hex #A3
178 Db 076h,0DCh,000h,0DCh,066h,066h,066h,000h ; Hex #A4
179 Db 076h,0DCh,000h,0E6h,0F6h,0DEh,0CEh,000h ; Hex #A5
180 Db 03Ch,06Ch,06Ch,03Eh,000h,07Eh,000h,000h ; Hex #A6
181 Db 038h,06Ch,06Ch,038h,000h,07Ch,000h,000h ; Hex #A7
182 Db 018h,000h,018h,018h,030h,063h,03Eh,000h ; Hex #A8
183 Db 000h,000h,000h,0FEh,0C0h,0C0h,000h,000h ; Hex #A9
184 Db 000h,000h,000h,0FEh,006h,006h,000h,000h ; Hex #AA
185 Db 063h,0E6h,06Ch,07Eh,033h,066h,0CCh,00Fh ; Hex #AB
186 Db 063h,0E6h,06Ch,07Ah,036h,06Ah,0DFh,006h ; Hex #AC
187 Db 018h,000h,018h,018h,03Ch,03Ch,018h,000h ; Hex #AD
188 Db 000h,033h,066h,0CCh,066h,033h,000h,000h ; Hex #AE
189 Db 000h,0C6h,07Ch,0C6h,0C6h,07Ch,0C6h,000h ; Hex #AF
190 Db 022h,088h,022h,088h,022h,088h,022h,088h ; Hex #B0
191 Db 055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh ; Hex #B1
192 Db 077h,0DDh,077h,0DDh,077h,0DDh,077h,0DDh ; Hex #B2
193 Db 018h,018h,018h,018h,018h,018h,018h,018h ; Hex #B3
194 Db 018h,018h,018h,018h,0F8h,018h,018h,018h ; Hex #B4
195 Db 018h,018h,0F8h,018h,0F8h,018h,018h,018h ; Hex #B5
196 Db 036h,036h,036h,036h,0F6h,036h,036h,036h ; Hex #B6
197 Db 000h,000h,000h,000h,0FEh,036h,036h,036h ; Hex #B7
198 Db 000h,000h,0F8h,018h,0F8h,018h,018h,018h ; Hex #B8
199 Db 036h,036h,0F6h,006h,0F6h,036h,036h,036h ; Hex #B9
200 Db 036h,036h,036h,036h,036h,036h,036h,036h ; Hex #BA
201 Db 000h,000h,0FEh,006h,0F6h,036h,036h,036h ; Hex #BB
202 Db 036h,036h,0F6h,006h,0FEh,000h,000h,000h ; Hex #BC
203 Db 036h,036h,036h,036h,0FEh,000h,000h,000h ; Hex #BD
204 Db 018h,018h,0F8h,018h,0F8h,000h,000h,000h ; Hex #BE
205 Db 000h,000h,000h,000h,0F8h,018h,018h,018h ; Hex #BF
206 Db 018h,018h,018h,018h,01Fh,000h,000h,000h ; Hex #C0
207 Db 018h,018h,018h,018h,0FFh,000h,000h,000h ; Hex #C1
208 Db 000h,000h,000h,000h,0FFh,018h,018h,018h ; Hex #C2
209 Db 018h,018h,018h,018h,01Fh,018h,018h,018h ; Hex #C3
210 Db 000h,000h,000h,000h,0FFh,000h,000h,000h ; Hex #C4
211 Db 018h,018h,018h,018h,0FFh,018h,018h,018h ; Hex #C5
212 Db 018h,018h,01Fh,018h,01Fh,018h,018h,018h ; Hex #C6
213 Db 036h,036h,036h,036h,037h,036h,036h,036h ; Hex #C7
214 Db 036h,036h,037h,030h,03Fh,000h,000h,000h ; Hex #C8
215 Db 000h,000h,03Fh,030h,037h,036h,036h,036h ; Hex #C9
216 Db 036h,036h,0F7h,000h,0FFh,000h,000h,000h ; Hex #CA
217 Db 000h,000h,0FFh,000h,0F7h,036h,036h,036h ; Hex #CB
218 Db 036h,036h,037h,030h,037h,036h,036h,036h ; Hex #CC
219 Db 000h,000h,0FFh,000h,0FFh,000h,000h,000h ; Hex #CD
220 Db 036h,036h,0F7h,000h,0F7h,036h,036h,036h ; Hex #CE
221 Db 018h,018h,0FFh,000h,0FFh,000h,000h,000h ; Hex #CF
222 Db 036h,036h,036h,036h,0FFh,000h,000h,000h ; Hex #D0
223 Db 000h,000h,0FFh,000h,0FFh,018h,018h,018h ; Hex #D1
224 Db 000h,000h,000h,000h,0FFh,036h,036h,036h ; Hex #D2
225 Db 036h,036h,036h,036h,03Fh,000h,000h,000h ; Hex #D3
226 Db 018h,018h,01Fh,018h,01Fh,000h,000h,000h ; Hex #D4
227 Db 000h,000h,01Fh,018h,01Fh,018h,018h,018h ; Hex #D5
228 Db 000h,000h,000h,000h,03Fh,036h,036h,036h ; Hex #D6
229 Db 036h,036h,036h,036h,0FFh,036h,036h,036h ; Hex #D7
230 Db 018h,018h,0FFh,018h,0FFh,018h,018h,018h ; Hex #D8
231 Db 018h,018h,018h,018h,0F8h,000h,000h,000h ; Hex #D9
232 Db 000h,000h,000h,000h,01Fh,018h,018h,018h ; Hex #DA
233 Db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh ; Hex #DB
234 Db 000h,000h,000h,000h,0FFh,0FFh,0FFh,0FFh ; Hex #DC
235 Db 0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h ; Hex #DD
236 Db 00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh ; Hex #DE
237 Db 0FFh,0FFh,0FFh,0FFh,000h,000h,000h,000h ; Hex #DF
238 Db 000h,000h,076h,0DCh,0C8h,0DCh,076h,000h ; Hex #E0
239 Db 078h,0CCh,0CCh,0D8h,0CCh,0C6h,0CCh,000h ; Hex #E1
240 Db 0FEh,0C6h,0C0h,0C0h,0C0h,0C0h,0C0h,000h ; Hex #E2
241 Db 000h,000h,0FEh,06Ch,06Ch,06Ch,06Ch,000h ; Hex #E3
242 Db 0FEh,0C6h,060h,030h,060h,0C6h,0FEh,000h ; Hex #E4
243 Db 000h,000h,07Eh,0D8h,0D8h,0D8h,070h,000h ; Hex #E5
244 Db 000h,000h,066h,066h,066h,066h,07Ch,0C0h ; Hex #E6
245 Db 000h,076h,0DCh,018h,018h,018h,018h,000h ; Hex #E7
246 Db 07Eh,018h,03Ch,066h,066h,03Ch,018h,07Eh ; Hex #E8
247 Db 038h,06Ch,0C6h,0FEh,0C6h,06Ch,038h,000h ; Hex #E9
248 Db 038h,06Ch,0C6h,0C6h,06Ch,06Ch,0EEh,000h ; Hex #EA
249 Db 00Eh,018h,00Ch,03Eh,066h,066h,03Ch,000h ; Hex #EB
250 Db 000h,000h,07Eh,0DBh,0DBh,07Eh,000h,000h ; Hex #EC
251 Db 006h,00Ch,07Eh,0DBh,0DBh,07Eh,060h,0C0h ; Hex #ED
252 Db 01Eh,030h,060h,07Eh,060h,030h,01Eh,000h ; Hex #EE
253 Db 000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,000h ; Hex #EF
254 Db 000h,0FEh,000h,0FEh,000h,0FEh,000h,000h ; Hex #F0
255 Db 018h,018h,07Eh,018h,018h,000h,07Eh,000h ; Hex #F1
256 Db 030h,018h,00Ch,018h,030h,000h,07Eh,000h ; Hex #F2
257 Db 00Ch,018h,030h,018h,00Ch,000h,07Eh,000h ; Hex #F3
258 Db 00Eh,01Bh,01Bh,018h,018h,018h,018h,018h ; Hex #F4
259 Db 018h,018h,018h,018h,018h,0D8h,0D8h,070h ; Hex #F5
260 Db 000h,018h,000h,07Eh,000h,018h,000h,000h ; Hex #F6
261 Db 000h,076h,0DCh,000h,076h,0DCh,000h,000h ; Hex #F7
262 Db 038h,06Ch,06Ch,038h,000h,000h,000h,000h ; Hex #F8
263 Db 000h,000h,000h,018h,018h,000h,000h,000h ; Hex #F9
264 Db 000h,000h,000h,018h,000h,000h,000h,000h ; Hex #FA
265 Db 00Fh,00Ch,00Ch,00Ch,0ECh,06Ch,03Ch,01Ch ; Hex #FB
266 Db 06Ch,036h,036h,036h,036h,000h,000h,000h ; Hex #FC
267 Db 078h,00Ch,018h,030h,07Ch,000h,000h,000h ; Hex #FD
268 Db 000h,000h,03Ch,03Ch,03Ch,03Ch,000h,000h ; Hex #FE
269 Db 000h,000h,000h,000h,000h,000h,000h,000h ; Hex #FF
270
diff --git a/v4.0/src/DEV/DISPLAY/EGA/865-CPI.ASM b/v4.0/src/DEV/DISPLAY/EGA/865-CPI.ASM
new file mode 100644
index 0000000..2d101fd
--- /dev/null
+++ b/v4.0/src/DEV/DISPLAY/EGA/865-CPI.ASM
@@ -0,0 +1,49 @@
1CODE SEGMENT BYTE PUBLIC 'CODE'
2 ASSUME CS:CODE,DS:CODE
3
4IF1
5 %OUT EGA.CPI creation file
6 %OUT .
7 %OUT CP SRC files:
8 %OUT .
9 %OUT . CODE PAGE: 865
10ENDIF
11
12EGA865: DW LEN_865 ; SIZE OF ENTRY HEADER
13 DW POST_EGA865,0 ; POINTER TO NEXT HEADER
14 DW 1 ; DEVICE TYPE
15 DB "EGA " ; DEVICE SUBTYPE ID
16 DW 865 ; CODE PAGE ID
17 DW 3 DUP(0) ; RESERVED
18 DW OFFSET DATA865,0 ; POINTER TO FONTS
19LEN_865 EQU ($-EGA865) ;
20 ;
21DATA865:DW 1 ; CART/NON-CART
22 DW 3 ; # OF FONTS
23 DW LEN_D865 ; LENGTH OF DATA
24D865: ;
25 DB 16,8 ; CHARACTER BOX SIZE
26 DB 0,0 ; ASPECT RATIO (UNUSED)
27 DW 256 ; NUMBER OF CHARACTERS
28 ;
29 INCLUDE 865-8X16.ASM ;
30 ;
31 DB 14,8 ; CHARACTER BOX SIZE
32 DB 0,0 ; ASPECT RATIO (UNUSED)
33 DW 256 ; NUMBER OF CHARACTERS
34 ;
35 INCLUDE 865-8X14.ASM ;
36 ;
37 DB 8,8 ; CHARACTER BOX SIZE
38 DB 0,0 ; ASPECT RATIO (UNUSED)
39 DW 256 ; NUMBER OF CHARACTERS
40 ;
41 INCLUDE 865-8X8.ASM ;
42 ;
43LEN_D865 EQU ($-D865) ;
44 ;
45POST_EGA865 EQU $ ;
46 ;
47CODE ENDS ;
48 END ;
49 \ No newline at end of file
diff --git a/v4.0/src/DEV/DISPLAY/EGA/COPYRIGH.ASM b/v4.0/src/DEV/DISPLAY/EGA/COPYRIGH.ASM
new file mode 100644
index 0000000..9b83db0
--- /dev/null
+++ b/v4.0/src/DEV/DISPLAY/EGA/COPYRIGH.ASM
@@ -0,0 +1,11 @@
1CODE SEGMENT BYTE PUBLIC 'CODE'
2 ASSUME CS:CODE,DS:CODE
3
4 DB 13,10
5 DB "Microsoft MS-DOS (R) EGA Display Font File",13,10
6include copyrigh.inc
7 DB 1Ah
8
9CODE ENDS
10 END
11
diff --git a/v4.0/src/DEV/DISPLAY/EGA/CPI-HEAD.ASM b/v4.0/src/DEV/DISPLAY/EGA/CPI-HEAD.ASM
new file mode 100644
index 0000000..43626bf
--- /dev/null
+++ b/v4.0/src/DEV/DISPLAY/EGA/CPI-HEAD.ASM
@@ -0,0 +1,15 @@
1CODE SEGMENT BYTE PUBLIC 'CODE'
2 ASSUME CS:CODE,DS:CODE
3
4BEGIN: ORG 0
5
6FNTHEAD:DB 0FFH,"FONT " ;FILE TAG
7 DB 8 DUP(0) ;RESERVED
8 DW 1 ;CNT OF POINTERS IN HEADER
9 DB 1 ;TYPE FOR INFO POINTER
10 DW OFFSET INFO,0 ;POINTER TO INFO IN FILE
11INFO: DW 5 ;COUNT OF ENTRIES
12
13CODE ENDS
14 END
15 \ No newline at end of file
diff --git a/v4.0/src/DEV/DISPLAY/EGA/EGA.LNK b/v4.0/src/DEV/DISPLAY/EGA/EGA.LNK
new file mode 100644
index 0000000..45ea5ea
--- /dev/null
+++ b/v4.0/src/DEV/DISPLAY/EGA/EGA.LNK
@@ -0,0 +1,8 @@
1cpi-head+
2437-CPI+
3850-CPI+
4860-CPI+
5863-CPI+
6865-CPI+
7COPYRIGH;
8 \ No newline at end of file
diff --git a/v4.0/src/DEV/DISPLAY/EGA/MAKEFILE b/v4.0/src/DEV/DISPLAY/EGA/MAKEFILE
new file mode 100644
index 0000000..89319c7
--- /dev/null
+++ b/v4.0/src/DEV/DISPLAY/EGA/MAKEFILE
@@ -0,0 +1,55 @@
1#*********************** Makefile for Display\EGA ************************
2
3inc =..\..\..\inc
4dos =..\..\..\dos
5msg =..\..\..\messages
6hinc =..\..\..\h
7
8#
9######################## Dependencies begin here #########################
10#
11
12all: ega.cpi
13
14cpi-head.obj: cpi-head.asm \
15 makefile
16
17437-cpi.obj: 437-cpi.asm \
18 437-8x16.asm \
19 437-8x14.asm \
20 makefile \
21 437-8x8.asm
22
23850-cpi.obj: 850-cpi.asm \
24 850-8x16.asm \
25 850-8x14.asm \
26 makefile \
27 850-8x8.asm
28
29860-cpi.obj: 860-cpi.asm \
30 860-8x16.asm \
31 860-8x14.asm \
32 makefile \
33 860-8x8.asm
34
35863-cpi.obj: 863-cpi.asm \
36 863-8x16.asm \
37 863-8x14.asm \
38 makefile \
39 863-8x8.asm
40
41865-cpi.obj: 865-cpi.asm \
42 865-8x16.asm \
43 865-8x14.asm \
44 makefile \
45 865-8x8.asm
46
47copyrigh.obj: copyrigh.asm $(inc)\copyrigh.inc \
48 makefile
49
50ega.cpi: cpi-head.obj 437-cpi.obj 850-cpi.obj 860-cpi.obj \
51 863-cpi.obj 865-cpi.obj copyrigh.obj makefile ega.lnk \
52 makefile
53 link @ega.lnk
54 exe2bin cpi-head.exe ega.cpi
55 del cpi-head.exe
diff --git a/v4.0/src/DEV/DISPLAY/F-PARSER.INC b/v4.0/src/DEV/DISPLAY/F-PARSER.INC
new file mode 100644
index 0000000..47c166b
--- /dev/null
+++ b/v4.0/src/DEV/DISPLAY/F-PARSER.INC
@@ -0,0 +1,2040 @@
1
2 PAGE ,132
3
4IF1
5 %OUT . ®F-PARSER.SRC¯
6ENDIF
7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
8;;
9;; FILENAME: CPS Device Driver -- Font Parser
10;; MODULE NAME: CPSFONT
11;; TYPE: Font Parser Module
12;; LINK PROCEDURE: Link CPSPMnn+CPSFONTn+PTRMSGn+CPSPInn into .EXE format.
13;; CPSPM must be first. CPSPInn must be last. Everything
14;; before CPSPInn will be resident.
15;; INCLUDE FILES:
16;; CPSPEQU.INC
17;; Remarks :
18;;
19;; changes are made in stages : PTRSELLO, PTRSELHI, PTRLENLO, PTRLENHI
20;; as for Display-type of DEVICE_ID, there will be no printer-type of
21;; of DEVICE_TYPE. And these four stages are for the DEVICE_TYPE with
22;; the value of printer-type.
23;;
24;; (most codes in the four stages are masked out as comments than real
25;; codes to save spaces. Also mask out lines that contain the
26;; following varaibles :
27;; -- PTR_SEL_WORD
28;; -- PTR_SELOB
29;; -- PTR_SEHIB
30;; -- PTR_LEN_WORD
31;; -- PTR_LNLOB
32;; -- PTR_LNHIB
33;; -- PRE_FONT_P0
34;; -- PRE_FONT_P
35;; -- FTB_SELECT
36;; -- FTB_SELLEN
37;;
38;;
39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
40 ;;
41;INCLUDE CPSPEQU.INC ;;
42 ;;
43STAT_DELETE EQU 08000H ; previous degignate deleted (DST)
44 ; STAT_DELETE : only for FIFO
45STAT_NOFIND EQU 08008H ; codepage,device not found (DST)
46STAT_DEVERR EQU 0800AH ; Device error (DST, IVK, QIV, QLS)
47STAT_BADATA EQU 0800CH ; bad font file (DST)
48STAT_BADDEN EQU 0800CH ; no DST (DEN)
49STAT_TOMANY EQU 0800CH ; too manay codepages (DST)
50STAT_DUPLCP EQU 0800CH ; too manay codepages (DST)
51STAT_NOCPIV EQU 08007H ; no codepage designated/invoked
52STAT_NOCP EQU 08007H ; no codepage designated/invoked
53 ; (IVK, QIV, QLS)
54TYPE_DISPLAY EQU 01H ;; display type device
55FLAG_RESTART EQU 000001H ;; bit 1 = restart the parsing
56
57FPKT EQU DS:[SI] ;
58FTP EQU ES:[BX] ;
59 ; ( I=Input O=Output )
60FTBLK STRUC ;
61FTB_LENGTH DW TYPE FTBLK ; (NOT TO BE CHANGED)
62FTB_STATUS DW 0FFFFH ; (O) parsing compelte
63FTB_TYPE DW 0 ; (O)
64FTB_TID DB '........' ; (I)
65FTB_CP DW 0FFFFH ; (I)
66FTB_MOD DW 0 ; (O)
67FTB_FONTS DW 0 ; (O)
68FTB_ROWS DB 0 ;; (O) DISPLAY TYPE DEVICE
69FTB_COLS DB 0 ;; (O) DISPLAY TYPE DEVICE
70FTB_X DB 0 ;; (O) DISPLAY TYPE DEVICE
71FTB_Y DB 0 ;; (O) DISPLAY TYPE DEVICE
72FTB_COUNT DW 0 ;; (O) DISPLAY TYPE DEVICE
73FTB_DLEFT DW 0 ; (O) =0, none to come
74FTB_DLEN DW 0 ; (O) =0, not in this packet
75FTB_DALO DW 0 ; (O) in the DOS "packet" buffer
76FTB_DAHI DW 0 ; (O) " " " " "
77TARGET_LO DW 0 ; internal registers
78TARGET_HI DW 0 ; internal registers
79FTBLK ENDS ;
80 ;
81FBUFS STRUC ;
82FLAG DW 0 ;
83BUFFER_LEN DW 0 ;
84BUFFER_ADDR DD 0 ;
85NUM_FTBLK DW 0 ; no. of FTBKL entries
86FBUFS ENDS ;
87 ; STATUS : (in FTB_STATUS)
88FSTAT_COMPLETE EQU 0FFFFH ; parsing compeleted. (good status)
89FSTAT_FONT EQU 0FFFEH ; font data is defined and returned
90FSTAT_FOUND EQU 0FFFDH ; informations including font-length
91FSTAT_MATCH EQU 0FFFCH ; font header matches FTBLK
92FSTAT_SEARCH EQU 0FFFBH ; seraching for header & font
93FSTAT_BOTTOM EQU 0FFF0H ; below this are the DOS_STATUS.
94 ;
95;; the FSTAT with value lower than 0FFF0H is to be returned to the DOS
96;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
97 ;;
98PUBLIC FTABLE,FONT_PARSER ;;
99 ;;
100;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
101;;
102;; ************************************
103;; ** **
104;; ** Resident Code **
105;; ** **
106;; ************************************
107;;
108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
109 ;;
110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
111;;
112;; FONT_PARSER data
113;;
114;; -- Interface table : FTABLE
115;;
116;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
117FTABLE: FBUFS <0FFFFH,,,> ;; for temporary testing
118FTB1 FTBLK <,,,,,,,,,,,,> ;; -- at most 12 entries
119FTB2 FTBLK <,,,,,,,,,,,,> ;;
120FTB3 FTBLK <,,,,,,,,,,,,> ;;
121FTB4 FTBLK <,,,,,,,,,,,,> ;;
122FTB5 FTBLK <,,,,,,,,,,,,> ;;
123FTB6 FTBLK <,,,,,,,,,,,,> ;;
124FTB7 FTBLK <,,,,,,,,,,,,> ;;
125FTB8 FTBLK <,,,,,,,,,,,,> ;;
126FTB9 FTBLK <,,,,,,,,,,,,> ;;
127FTBa FTBLK <,,,,,,,,,,,,> ;;
128FTBb FTBLK <,,,,,,,,,,,,> ;;
129FTBc FTBLK <,,,,,,,,,,,,> ;;
130 ;;
131FP_ERROR DW 0000H ;; internal error register
132 ;;
133 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
134 ;; the followings are bytes accumulated
135 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
136FTAG_LEN EQU 8 ;; FILE TAGE in the font file header
137FTAG_COUNT DW 0000H ;;
138 ;;
139FTAG_PATTERN LABEL BYTE ;;
140 DB 0FFH ;;
141 DB 'FONT ' ;;
142 ;;
143 ;;
144 ;; POINTER in the font file header
145fptr_LOW LABEL WORD ;;
146fptr_LOL DB 00H ;; NEXT
147fptr_LOH DB 00H ;;
148fptr_HIGH LABEL WORD ;;
149fptr_HIL DB 00H ;;
150fptr_HIH DB 00H ;;
151 ;;
152 ;;
153 ;;
154ENTRY_WORD LABEL WORD ;;
155ENTRY_LOB DB 00H ;; ENTRY COUNT
156ENTRY_HIB DB 00H ;;
157NEXT_LOW LABEL WORD ;;
158NEXT_LOL DB 00H ;; NEXT
159NEXT_LOH DB 00H ;;
160NEXT_HIGH LABEL WORD ;;
161NEXT_HIL DB 00H ;;
162NEXT_HIH DB 00H ;;
163TYPE_WORD LABEL WORD ;;
164TYPE_LOB DB 00H ;; TYPE
165TYPE_HIB DB 00H ;;
166TID_CNT DW 00000H ;; TYPEID COUNT(0 to 8)
167TYPE_ID : DB ' ' ;; TYPEID
168CPG_WORD LABEL WORD ;;
169CPG_LOB DB 00H ;; CODE PAGE
170CPG_HIB DB 00H ;;
171FONT_LOW LABEL WORD ;;
172FONT_LOL DB 00H ;; FONT ADDRESS
173FONT_LOH DB 00H ;;
174FONT_HIGH LABEL WORD ;;
175FONT_HIL DB 00H ;;
176FONT_HIH DB 00H ;;
177;; the followings are contained in the font-block in the exact order & length
178MOD_WORD LABEL WORD ;;
179MOD_LOB DB 00H ;; MODIFIER
180MOD_HIB DB 00H ;;
181FONTS_WORD LABEL WORD ;;
182FONTS_LOB DB 00H ;; FONTS
183FONTS_HIB DB 00H ;;
184FDLEN_WORD LABEL WORD ;;
185FDLEN_LOB DB 00H ;; FONT DATA LENGTH
186FDLEN_HIB DB 00H ;;
187PRE_FONT_ND EQU ($-MOD_WORD) ;; used to update target for font data
188 ;; to follow. -- for NON-DISPLAY
189;DISP_ROWS DB 00H ;; DISPLAY's parameters :
190;DISP_COLS DB 00H ;; BOX SIZE
191;DISP_X DB 00H ;; ASPECT RATIO
192;DISP_Y DB 00H ;;
193;COUNT_WORD LABEL WORD ;; NO. OF DISPLAY CHARACTERS
194;COUNT_LOB DB 00H ;;
195;COUNT_HIB DB 00H ;;
196;PRE_FONT_D EQU ($-MOD_WORD) ;; used to update target for font data
197 ;; to follow. -- for DISPLAY
198 ;;
199;PTR_SEL_WORD LABEL WORD ;;
200;PTR_SELOB DB 00H ;;
201;PTR_SEHIB DB 00H ;;
202;PRE_FONT_P0 EQU ($-PTR_SELOB+PRE_FONT_ND) ;; to update target for font data
203 ;; to follow -- for PRINTER with
204 ;; selection type = 0.
205 ;;
206;PTR_LEN_WORD LABEL WORD ;;
207;PTR_LNLOB DB 00H ;;
208;PTR_LNHIB DB 00H ;;
209;PRE_FONT_P EQU ($-PTR_SELOB+PRE_FONT_ND) ;; to update target for font data
210 ;; to follow -- for PRINTER with
211 ;; selection type <> 0.
212 ;;
213 ;;
214;; also update STAGE_CASES and indexing constants
215 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
216 ;; the stage the parsing is in : ;;;;;
217 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
218 ;;
219STAGE_CASES LABEL WORD ;; the stage the parsing is in :
220 ;;
221 ;; *** INDEXED BY STAGE-INDEX
222 ;;
223 DW OFFSET ENTRYLO ;; 0
224 DW OFFSET ENTRYHI ;; 1
225 DW OFFSET NEXTLOL ;; 2
226 DW OFFSET NEXTLOH ;; 3
227 DW OFFSET NEXTHIL ;; 4
228 DW OFFSET NEXTHIH ;; 5
229 DW OFFSET TYPELO ;; 6
230 DW OFFSET TYPEHI ;; 7
231 DW OFFSET TYPEIDS ;; 8
232 DW OFFSET CPGLO ;; 9
233 DW OFFSET CPGHI ;; A
234 DW OFFSET FONTLOL ;; B
235 DW OFFSET FONTLOH ;; C
236 DW OFFSET FONTHIL ;; D
237 DW OFFSET FONTHIH ;; E
238 DW 00H ;; MATCH case -- end of SEARCH stages
239 DW 00H ;; SCAN case -- before PRE-FOUND stage
240 DW OFFSET MODLO ;; 11
241 DW OFFSET MODHI ;; 12
242 DW OFFSET FONTSLO ;; 13
243 DW OFFSET FONTSHI ;; 14
244 DW OFFSET FDLENLO ;; 15
245 DW OFFSET FDLENHI ;; 16 -- lead to FONT case,NON- DISPLAY
246 DW OFFSET DSPROWS ;; 17 -- DISPLAY only
247 DW OFFSET DSPCOLS ;; 18
248 DW OFFSET DSPX ;; 19
249 DW OFFSET DSPY ;; 1A
250 DW OFFSET DSPCOUNTLO ;; 1B
251 DW OFFSET DSPCOUNTHI ;; 1C -- lead to FONT case, DISPLAY
252 DW OFFSET PTRSELLO ;; 1D -- PRINTER only
253 DW OFFSET PTRSELHI ;; 1E
254 DW OFFSET PTRLENLO ;; 1F
255 DW OFFSET PTRLENHI ;; 20 -- lead to FONT case, PRINTER
256 DW 00H ;; FOUND case
257 DW 00H ;; GET_FONT case
258 DW 00H ;; PASS special stage
259 DW OFFSET FILETAG ;; 24
260 DW OFFSET fptrLOL ;; 25
261 DW OFFSET fptrLOH ;; 26
262 DW OFFSET fptrHIL ;; 27
263 DW OFFSET fptrHIH ;; 28
264 DW 00H ;; FPTR_SKIP_CASE
265 ;;
266 ;; The followings are individual stage
267STAGE_MAX EQU ($-STAGE_CASES)/2 ;; number of stages
268 ;;
269 ;; STAGE-INDEX
270 ;;
271 ;; **** INDEX TO STAGE_CASES ****
272ENTRY_LOX EQU 00H ;;
273ENTRY_HIX EQU 01H ;;
274NEXT_LOLX EQU 02H ;; NEXT
275NEXT_LOHX EQU 03H ;;
276NEXT_HILX EQU 04H ;;
277NEXT_HIHX EQU 05H ;;
278TYPE_LOBX EQU 06H ;; TYPE
279TYPE_HIBX EQU 07H ;;
280TYPE_IDX EQU 08H ;; TYPEID
281CPG_LOBX EQU 09H ;; CODE PAGE
282CPG_HIBX EQU 0AH ;;
283FONT_LOLX EQU 0BH ;; FONT ADDRESS
284FONT_LOHX EQU 0CH ;;
285FONT_HILX EQU 0DH ;;
286FONT_HIHX EQU 0EH ;;
287 ;; ------------------------------
288MATCHX EQU 0FH ;; MATCH is the end of SEARCH's stages
289SCANX EQU 10H ;; SCANX is before the PRE-FOUND stages
290 ;; ------------------------------
291MOD_LOBX EQU 11H ;; MODIFIER
292MOD_HIBX EQU 12H ;;
293FONTS_LOBX EQU 13H ;; FONTS
294FONTS_HIBX EQU 14H ;;
295FDLEN_LOBX EQU 15H ;; FONT DATA LENGTH
296FDLEN_HIBX EQU 16H ;;
297DISP_ROWSX EQU 17H ;; DISPLAY -- CHAR. SIZE
298DISP_COLSX EQU 18H ;;
299DISP_XX EQU 19H ;; DISPLAY -- ASPECT RATIO
300DISP_YX EQU 1AH ;;
301COUNT_LOBX EQU 1BH ;; DISPLAY -- COUNT
302COUNT_HIBX EQU 1CH ;;
303PTRSELLOX EQU 1DH ;;
304PTRSELHIX EQU 1EH ;;
305PTRLENLOX EQU 1FH ;;
306PTRLENHIX EQU 20H ;;
307 ;;
308 ;; ------------------------------
309FOUNDX EQU 21H ;; GET_FX is the end of PRE-FOUND stage
310GET_FX EQU 22H ;;
311 ;; ------------------------------
312PASSX EQU 23H ;; see pass_brk table
313 ;; ------------------------------
314FTAGX EQU 24H ;; RESTART ==> FILE TAG
315 ;;
316fptr_LOLX EQU 25H ;; POINTER in font file header
317fptr_LOHX EQU 26H ;;
318fptr_HILX EQU 27H ;;
319fptr_HIHX EQU 28H ;; ---------------------------------
320 ;;
321fptr_SKIPX EQU 29H ;; ==> ENTRY_LOX
322 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
323 ;; PASS -- to skip some bytes ;;;;;;
324 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
325 ;; the PASS mechanism is used to skip
326 ;; a number of bytes between two fields
327 ;; The numbers are tabulated in
328 ;; PASS_BRK table in the accumulative
329 ;; sum. The PASS_POSTX(and PASS_POSTXX)
330 ;; are used to tell what is the stage
331 ;; after all the bytes have skipped.
332 ;;
333PASS_POSTX DW STAGE_MAX ;; the stage after pass-stage
334 ;;
335FILE_OFFSET EQU 0BH ;; spaces to be skipped in font file :
336 ;; ( after TAG, before POINTER)
337 ;;
338PASS_CNT DW 0 ;;
339PASS_BRK LABEL WORD ;;
340 DW FILE_OFFSET ;; skip in the font file header
341 DW FILE_OFFSET+2 ;; pass header-length, needs to reset
342 ;; PASS_CNT for each of the font_header
343 DW FILE_OFFSET+8 ;; pass header-reserved bytes
344PASS_INDX EQU ($-PASS_BRK)/2 ;;
345 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
346 ;; the control variables : ;;;;;;;;
347 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
348STAGE DW STAGE_MAX ;; of the STAGE-INDEX
349 ;;
350Pre_font_len DW 00000H ;; no. of bytes before the FONT DATA
351 ;;
352 ;;
353COUNT_LO DW 00000H ;; no. of bytes parsed so far
354COUNT_hI DW 00000H ;;
355 ;;
356HIT_LO DW 00000H ;; the next byte that is addressed by :
357HIT_HI DW 00000H ;; either NEXT or TARGET in FTBLK.
358 ;;
359HIT_FLAG DW 00000H ;; IF ZERO, the NEXT is approaching
360HIT_BX DW 00000H ;; where FTB is found for nearest hit
361 ;;
362NUM_FTB DW 00000H ;; as defined in the FP_BUFFER
363 ;;
364;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
365;;
366;; FONT_PARSER routine
367;;
368;; -- to be called at every packet received to extract informations
369;; from Font File on byte basis.
370;;
371;; -- Interface though FTABLE
372;;
373;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
374 ;;
375FONT_PARSER PROC ;;
376 PUSH DS ;; save all registers Revised
377 PUSH ES ;;
378 PUSH AX ;;
379 PUSH BX ;;
380 PUSH CX ;;
381 PUSH DX ;;
382 PUSH DI ;;
383 PUSH SI ;;
384 ;; BP isn't used, so it isn't saved
385 LEA BX,FTABLE ;;
386 PUSH CS ;;
387 POP ES ;; ES:[BX]
388 LDS SI,FTP.BUFFER_ADDR ;; DS:[SI]
389 MOV CX,FTP.BUFFER_LEN ;; CX = length of packet
390 MOV DX,FTP.NUM_FTBLK ;; DX = number of FTB
391 MOV cs:num_ftb,DX ;;
392 AND DX,DX ;;
393 JNZ VALID_BUFFER ;;
394 MOV cs:fp_error,0020H ;; ERROR 0020H
395 JMP FP_RET ;;
396VALID_BUFFER : ;;
397 MOV AX,FTP.FLAG ;;
398 AND AX,FLAG_RESTART ;;
399 Jnz has_RESTART ;;
400 JMP NO_RESTART ;;
401 ;;
402 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
403has_restart : ;;
404 PUSH BX ;; reset all the output fields
405 ADD BX,TYPE FBUFS ;; FTP = FONT BLOCK
406 XOR AX,AX ;;
407 ;;
408 MOV cs:ftag_count,AX ;;
409 MOV cs:fptr_low,AX ;;
410 MOV cs:fptr_high,AX ;;
411 MOV cs:pre_font_len,AX ;;
412 MOV cs:count_lo,AX ;;
413 MOV cs:count_hi,AX ;;
414 MOV cs:next_low,AX ;;
415 MOV cs:next_high,AX ;;
416 MOV cs:hit_lo,AX ;;
417 MOV cs:hit_hi,AX ;;
418 MOV cs:hit_flag,AX ;;
419 MOV cs:pass_cnt,AX ;;
420 MOV cs:pass_postx,STAGE_MAX ;;
421 ;;
422 MOV cs:stage,STAGE_MAX ;;
423 ;;
424RESET_FTB : ;;
425 MOV FTP.FTB_STATUS,FSTAT_SEARCH
426 MOV FTP.FTB_TYPE,AX ;;
427 MOV FTP.FTB_MOD,AX ;;
428 MOV FTP.FTB_FONTS,AX ;;
429 MOV FTP.FTB_ROWS,AL ;;
430 MOV FTP.FTB_COLS,AL ;;
431 MOV FTP.FTB_X,AL ;;
432 MOV FTP.FTB_Y,AL ;;
433 MOV FTP.FTB_COUNT,AX ;;
434 MOV FTP.FTB_DLEFT,AX ;;
435 MOV FTP.FTB_DLEN,AX ;;
436 MOV FTP.FTB_DALO,AX ;;
437 MOV FTP.FTB_DAHI,AX ;;
438 MOV FTP.TARGET_LO,AX ;;
439 MOV FTP.TARGET_HI,AX ;;
440 ;;
441 ADD BX, TYPE FTBLK ;;
442 ;;
443 DEC DX ;;
444 AND DX,DX ;;
445 JNZ RESET_FTB ;;
446 ;;
447 POP BX ;;
448NO_RESTART : ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
449 ;; any FTBLKs have their data all
450 ;; returned ? if so set their status
451 ;; from FOUND to COMPLETE
452 PUSH BX ;;
453 ADD BX,TYPE FBUFS ;; FTP = FONT BLOCK
454 ;;
455 MOV DX,cs:num_ftb ;;
456 ;;
457SET_COMPLETE : ;;
458 MOV AX,FTP.FTB_STATUS ;;
459 CMP AX,FSTAT_FONT ;;
460 JNE SET_NEXT ;;
461 ;;
462 MOV AX,FTP.FTB_DLEFT ;;
463 AND AX,AX ;;
464 JNZ SET_NEXT ;;
465 ;;
466 MOV FTP.FTB_STATUS,FSTAT_COMPLETE
467 ;;
468SET_NEXT : ;;
469 ;;
470 ADD BX,TYPE FTBLK ;;
471 ;;
472 DEC DX ;;
473 AND DX,DX ;;
474 JNZ SET_COMPLETE ;;
475 ;;
476 POP BX ;;
477 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
478 ADD BX,TYPE FBUFS ;; FTP = FONT BLOCK
479 ;;
480 PUSH CX ;; STACK 1 = CX
481;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
482;;
483;; DO WHILE CX is not zero :
484;;
485;; -- on each loop, the CX, COUNTs are updated
486;;
487;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
488 ;;
489 ;;
490FTB_LOOP : ;;
491 POP AX ;; STACK -1
492 SUB AX,CX ;;
493 ADD cs:count_lo,AX ;;
494 JNC NO_CARRY ;;
495 ADD cs:count_hi,1000H ;;
496NO_CARRY : ;;
497 PUSH CX ;; STACK 1 = CX
498 AND CX,CX ;;
499 JNZ FTB_CONT ;;
500 JMP FTB_LPEND ;;
501 ;; DO CASES :
502FTB_CONT : ;; ==========
503 ;;
504 MOV AX,cs:stage ;;
505 ;;
506 CMP AX,STAGE_MAX ;;
507 JNE FTB_010 ;;
508 JMP START_CASE ;; ** RESTART **
509 ;;
510FTB_010 : ;;
511 CMP AX,MATCHX ;;
512 JAE FTB_020 ;;
513 JMP SEARCH_CASE ;; ** SEARCH **
514 ;;
515FTB_020 : ;;
516 CMP AX,MATCHX ;;
517 JNE FTB_030 ;;
518 JMP MATCH_CASE ;; ** MATCH **
519 ;;
520FTB_030 : ;;
521 CMP AX,SCANX ;;
522 JNE FTB_040 ;;
523 JMP SCAN_CASE ;; ** SCAN **
524 ;;
525FTB_040 : ;;
526 CMP AX,FOUNDX ;;
527 JAE FTB_050 ;;
528 JMP PRE_FOUND_CASE ;; ** PRE-FOUND **
529 ;;
530FTB_050 : ;;
531 CMP AX,FOUNDX ;;
532 JNE FTB_060 ;;
533 JMP FOUND_CASE ;; ** FOUND **
534 ;;
535FTB_060 : ;;
536 CMP AX,GET_FX ;;
537 JNE FTB_070 ;;
538 JMP GETFONT_CASE ;; ** GET_FONT **
539 ;;
540FTB_070 : ;;
541 CMP AX,PASSX ;;
542 JNE FTB_080 ;;
543 JMP PASS ;; ** PASS **
544 ;;
545FTB_080 : ;;
546 CMP AX,FPTR_SKIPX ;;
547 JAE FTB_090 ;;
548 JMP SEARCH_CASE ;; ** SEARCH **
549 ;;
550FTB_090 : ;;
551 CMP AX,FPTR_SKIPX ;;
552 JNE FTB_FFF ;;
553 JMP FPTR_SKIP_CASE ;; ** SEARCH **
554 ;;
555FTB_FFF : ;;
556 MOV FTP.FTB_STATUS,STAT_DEVERR
557 JMP FTB_LPEND ;; ** DEVICE ERROR **
558 ;;
559;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
560;;
561;; at the entry of each STAGES /CASES
562;;
563;; -- DS:[SI] (FPKT) points to PACKET, of DOS's buffer
564;; -- CX remaining packet length
565;; -- ES:[BX] points to the first FTBLK
566;; -- COUNT_LO, COUNT_HI, upto but and including the address pointed by FPKT
567;;
568;;
569;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
570 ;;
571;============================================================================
572START_CASE : ;; pass the FILE leading bytes
573 ;;
574 MOV cs:ftag_count,0 ;;
575 MOV cs:stage,ftagx ;;
576 JMP FTB_LOOP ;;
577 ;;
578;=============================================================================
579FPTR_SKIP_CASE : ;; skip until the ENTRY pointed by
580 ;; POINTER (in FPTR) is reached.
581 ;;
582 ;; **************
583 MOV AX,cs:fptr_low ;; * HIT = FPTR *
584 MOV cs:hit_lo,AX ;; **************
585 MOV DX,cs:fptr_high ;;
586 MOV cs:hit_hi,DX ;;
587 ;;
588 CMP AX,0FFFFH ;;
589 JNE FPTR_SKIP_VALID ;;
590 CMP DX,0FFFFH ;;
591 JNE FPTR_SKIP_VALID ;;
592 ;;
593 MOV FTP.FTB_STATUS,STAT_BADATA ;; returned at the first FTBLK
594 JMP FPTR_SKIP_MORE ;;
595 ;;
596FPTR_SKIP_VALID : ;;
597 ;; normalised HIT_HI, HIT_LO
598 MOV AX,DX ;;
599 AND AX,00FFFH ;;
600 PUSH CX ;;
601 MOV CX,4 ;;
602 SHL AX,CL ;;
603 POP CX ;;
604 AND DX,0F000H ;;
605 ADD AX,cs:hit_lo ;;
606 JNC NO_CARRY10 ;;
607 ADD DX,01000H ;;
608NO_CARRY10: ;;
609 MOV cs:hit_lo,AX ;;
610 MOV cs:hit_hi,DX ;;
611 ;; **************************
612 ;; * compare FPTR and COUNT *
613 ;; **************************
614 ;; DX:AX = HIT_HI:HIT_LO (normalised)
615 ;;
616 SUB AX,cs:count_lo ;;
617 Jnc more_fptrlo ;;
618 sub dx,01000h ;;
619 jc fptr_bad ;;
620 ;;
621more_fptrlo : ;;
622 SUB DX,cs:count_hi ;;
623 JC fptr_BAD ;;
624 ;;
625 INC AX ;; COUNT can be at the HIT, then AX=0
626 JNC NO_CARRY11 ;; INC AX to make AX comparable to CX
627 ADD DX,01000H ;; i.e. AX = offset + 1
628 ;;
629NO_CARRY11: ;;
630 CMP AX,CX ;;
631 JA fptr_skip_more ;; AX > CX, whole CX to be skipped
632 ;;
633 PUSH DX ;; normalise dx:ax
634 AND DX,00FFFH ;;
635 PUSH CX ;;
636 MOV CX,4 ;;
637 SHL DX,CL ;;
638 POP CX ;;
639 ADD AX,DX ;;
640 POP DX ;;
641 JNC NO_CARRY13 ;;
642 ADD DX,01000H ;;
643NO_CARRY13: ;;
644 AND DX,0F000H ;;
645 ;;
646 PUSH AX ;;
647 PUSH DX ;; STACK +1 : normalosed DX:AX
648 SUB AX,CX ;;
649 JNC NO_BORROW11 ;;
650 SUB DX,1000H ;;
651 JC fptr_MORE_CXp ;; dx:ax < cx
652NO_BORROW11: ;;
653 ;; dx:ax >= cx
654 AND AX,AX ;;
655 JNE fptr_skip_MOREP ;;
656 AND DX,DX ;;
657 JNE fptr_skip_MOREP ;;
658 ;; dx:ax = cx, or
659 ;; offset + 1 = CX
660 ;;
661 ;; ************************************
662 ;; * POINTER is within the current CX *
663 ;; ************************************
664fptr_MORE_CXP : ;;
665 POP DX ;;
666 POP AX ;; STACK -1
667 ;;
668fptr_MORE_CX : ;; DX = 0,to have more CX than offset+1
669 DEC AX ;; = offset : 0 and above
670 SUB CX,AX ;;
671 ADD SI,AX ;; where the first byte is
672 ;;
673 MOV cs:stage,entry_lox ;; ENTRIES in the font file
674 ;;
675 JMP FTB_LOOP ;; ****** RETURN *******
676 ;;
677 ;; ***********************************
678 ;; * more to skip ==> FPTR_SKIP_CASE *
679 ;; ***********************************
680fptr_skip_morep: ;;
681 POP DX ;;
682 POP AX ;; STACK -1
683 ;;
684fptr_skip_more : ;;
685 ADD SI,CX ;;
686 SUB CX,CX ;;
687 JMP FTB_LOOP ;; ****** RETURN *****
688 ;;
689 ;; ***********************************
690 ;; * bad POINTER in font file header *
691 ;; ***********************************
692 ;;
693fptr_bad : ;;
694 MOV cs:fptr_low,0FFFFH ;;
695 MOV cs:fptr_high,0FFFFH ;;
696 ;;
697 MOV FTP.FTB_STATUS,STAT_BADATA ;; returned at the first FTBLK
698 ;;
699 JMP FPTR_SKIP_MORE ;;
700 ;;
701;=============================================================================
702SEARCH_CASE : ;;
703 ;; still looking for header to match
704 ;; the input : codepage and typeid
705 ;;
706 MOV DI,cs:stage ;;
707 ;;
708 ADD DI,DI ;; double to index to WORD-offset
709 ;;
710 JMP CS:STAGE_CASES[DI] ;; call routine to process the stage
711 ;;
712 ;;
713;===========================================================================
714MATCH_CASE : ;;
715 ;;
716 PUSH BX ;;
717 MOV DX,cs:num_ftb ;;
718 ;;
719 ;;
720MATCH_LOOP : ;;
721 MOV AX,FTP.FTB_STATUS ;;
722 CMP AX,FSTAT_SEARCH ;;
723 JE MATCH_SEARCH ;;
724 JMP MATCH_NEXT ;;
725 ;;
726MATCH_SEARCH : ;;
727 MOV AX,FTP.FTB_CP ;; check the FTB with SEARCH status
728 CMP AX,cs:cpg_word ;;
729 JNE MATCH_MORE ;;
730 PUSH DS ;; code page matched
731 PUSH SI ;;
732 PUSH CX ;;
733 ;;
734 PUSH CS ;;
735 POP DS ;;
736 MOV SI,OFFSET TYPE_ID ;;
737 LEA DI,[BX].FTB_TID ;;
738 MOV CX,8 ;;
739 REPE CMPSB ;;
740 ;;
741 POP CX ;;
742 POP SI ;;
743 POP DS ;;
744 ;;
745 JNE MATCH_MORE ;;
746 ;; MATCH !!!!! (type_id matched)
747 MOV FTP.FTB_STATUS,FSTAT_MATCH
748 MOV AX,cs:type_word ;;
749 MOV FTP.FTB_TYPE,AX ;;
750 MOV AX,cs:font_low ;;
751 MOV FTP.TARGET_LO,AX ;;
752 MOV AX,cs:font_high ;;
753 MOV FTP.TARGET_HI,AX ;;
754 ;;
755 JMP MATCH_NEXT ;;
756 ;;
757MATCH_MORE : ;; if this is the last rounf ?
758 ;;
759 MOV AX,cs:next_low ;; NEXT = FFFF:FFFF means no more
760 CMP AX,-1 ;; header to come.
761 JNE MATCH_NEXT ;;
762 ;;
763 MOV AX,cs:next_high ;;
764 CMP AX,-1 ;;
765 JNE MATCH_NEXT ;;
766 ;;
767 MOV FTP.FTB_STATUS,STAT_NOFIND ;; ERROR : no match
768 ;;
769MATCH_NEXT : ;;
770 ADD BX,FTP.FTB_LENGTH ;;
771 DEC DX ;;
772 AND DX,DX ;;
773 JZ MATCH_ALL ;;
774 JMP MATCH_LOOP ;;
775 ;;
776MATCH_ALL : ;;
777 MOV cs:stage,SCANX ;;
778 ;;
779MATCH_DONE : ;;
780 POP BX ;;
781 JMP FTB_LOOP ;;
782 ;;
783;===========================================================================
784SCAN_CASE : ;;
785 ;; **********************************
786 ;; * determine whether it the font *
787 ;; * data(TARGET),or the next font *
788 ;; * header(NEXT) that is approaching
789 ;; **********************************
790 ;;
791 MOV AX,cs:next_low ;;
792 MOV cs:hit_lo,AX ;;
793 MOV AX,cs:next_high ;;
794 MOV cs:hit_hi,AX ;;
795 XOR AX,AX ;;
796 MOV cs:hit_flag,AX ;;
797 ;;
798 MOV DI,cs:hit_hi ;; normalised HIT_HI, HIT_LO
799 MOV AX,DI ;;
800 AND AX,00FFFH ;;
801 PUSH CX ;;
802 MOV CX,4 ;;
803 SHL AX,CL ;;
804 POP CX ;;
805 AND DI,0F000H ;;
806 ADD AX,cs:hit_lo ;;
807 JNC NO_CARRY2 ;;
808 ADD DI,01000H ;;
809NO_CARRY2 : ;;
810 MOV cs:hit_lo,AX ;;
811 MOV cs:hit_hi,DI ;;
812 ;;
813 MOV DX,cs:num_ftb ;;
814 ;;
815 PUSH BX ;;
816SCAN_LOOP : ;;
817 MOV AX,FTP.FTB_STATUS ;;
818 CMP AX,FSTAT_MATCH ;;
819 JNE SCAN_NEXT ;;
820 ;;
821 ;;
822 MOV DI,FTP.TARGET_HI ;; NORMALISED TARGET
823 MOV AX,DI ;;
824 AND AX,00FFFH ;;
825 PUSH CX ;;
826 MOV CX,4 ;;
827 SHL AX,CL ;;
828 POP CX ;;
829 AND DI,0F000H ;;
830 ADD AX,FTP.TARGET_LO ;;
831 JNC NO_CARRY1 ;;
832 ADD DI,01000H ;;
833NO_CARRY1 : ;; DI:AX = NORMALISED TARGET
834 ;;
835 ;; ** compare the TARGET and the NEXT
836 ;;
837 CMP DI,cs:hit_hi ;;
838 JA SCAN_NEXT ;;
839 ;;
840 JE SCAN_EQU ;;
841 JMP NEAR_FONT ;;
842 ;;
843SCAN_EQU : ;;
844 CMP AX,cs:hit_lo ;;
845 JA SCAN_NEXT ;;
846 JE SCAN_ERROR_CHK ;;
847 ;; **********************************
848 ;; * the font data is approaching *
849 ;; **********************************
850NEAR_FONT : ;;
851 MOV cs:hit_flag,-1 ;;
852 MOV cs:hit_lo,AX ;;
853 MOV cs:hit_hi,DI ;;
854 MOV cs:hit_bx,BX ;; used for BAD_BX and in FOUND_CASE
855 JMP SCAN_NEXT ;;
856 ;;
857 ;; **********************************
858 ;; * the NEXT header is approaching *
859 ;; **********************************
860SCAN_ERROR_CHK : ;;
861 MOV AX,cs:hit_flag ;;
862 AND AX,AX ;;
863 JNZ SCAN_NEXT ;;
864 MOV FTP.FTB_STATUS,STAT_BADATA ;; next header and font cannot be the
865 ;; same
866 ;;
867SCAN_NEXT : ;;
868 DEC DX ;;
869 AND DX,DX ;;
870 JZ SCAN_DONE ;;
871 ;;
872 ADD BX,FTP.FTB_LENGTH ;;
873 JMP SCAN_LOOP ;; ** is there any closer font data ?
874 ;;
875 ;; ************************************
876 ;; * the HIT is either font data(TARGET
877 ;; * or the font block (NEXT). *
878 ;; ************************************
879SCAN_DONE : ;;
880 POP BX ;;
881 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
882 MOV DX,cs:hit_hi ;; HIT_FLAG, HIT_LO, HIT_HI defined
883 MOV AX,cs:hit_lo ;;
884 ;;
885 CMP AX,0FFFFH ;;
886 JNE NOT_FFFF_HIT ;;
887 CMP DX,0FFFFH ;;
888 JNE NOT_FFFF_HIT ;;
889 JMP SCAN_MORE ;; stage remained as SCAN, discard data
890 ;;
891NOT_FFFF_HIT : ;;
892 ;; DX:AX = HIT_HI:HIT_LO (normalised)
893 SUB AX,cs:count_lo ;;
894 JNC NO_BORROW ;;
895 SUB DX,01000H ;;
896 JC SCAN_BAD ;;
897NO_BORROW: ;;
898 SUB DX,cs:count_hi ;;
899 JC SCAN_BAD ;;
900 ;;
901 INC AX ;; COUNT can be at the HIT, then AX=0
902 JNC NO_CARRYX ;; INC AX to make AX comparable to CX
903 ADD DX,01000H ;; i.e. AX = offset + 1
904 ;;
905NO_CARRYX : ;;
906 CMP AX,CX ;;
907 JA SCAN_MORE ;;
908 ;;
909 PUSH DX ;;
910 AND DX,00FFFH ;;
911 PUSH CX ;;
912 MOV CX,4 ;;
913 SHL DX,CL ;;
914 POP CX ;;
915 ADD AX,DX ;;
916 POP DX ;;
917 JNC NO_CARRY3 ;;
918 ADD DX,01000H ;;
919NO_CARRY3 : ;;
920 AND DX,0F000H ;;
921 ;;
922 ;;
923 PUSH AX ;;
924 PUSH DX ;;
925 SUB AX,CX ;;
926 JNC NO_BORROW1 ;;
927 SUB DX,1000H ;;
928 JC MORE_CXp ;;
929NO_BORROW1 : ;;
930 ;; dx:ax >= cx
931 AND AX,AX ;;
932 JNE SCAN_MOREP ;;
933 AND DX,DX ;;
934 JNE SCAN_MOREP ;;
935 ;;
936 ;; offset + 1 = CX
937 ;;
938MORE_CXP : ;;
939 POP DX ;;
940 POP AX ;;
941 ;;
942MORE_CX : ;; DX = 0,to have more CX than offset+1
943 DEC AX ;; = offset : 0 and above
944 SUB CX,AX ;;
945 ADD SI,AX ;; where the first byte is
946 MOV AX,cs:hit_flag ;;
947 AND AX,AX ;;
948 JE NEXT_REACHED ;;
949 ;;
950 MOV cs:stage,MOD_LOBX ;; font-data reached,
951 ;;
952 JMP FTB_LOOP ;; ****** RETURN *******
953 ;;
954NEXT_REACHED : ;;
955 MOV cs:stage,PASSX ;;
956 MOV cs:pass_postx,next_lolX ;;
957 MOV cs:pass_cnt,FILE_OFFSET ;;
958 ;;
959 ;;
960 JMP FTB_LOOP ;; ****** RETURN *******
961 ;;
962 ;; ***********************************
963SCAN_MOREP : ;; * scan more FTBLK for the nearest *
964 ;; * font data *
965 ;; ***********************************
966 POP DX ;;
967 POP AX ;;
968 ;;
969SCAN_MORE : ;;
970 ADD SI,CX ;;
971 SUB CX,CX ;;
972 JMP FTB_LOOP ;; more SCAN stage
973 ;;
974SCAN_BAD: ;; *************************
975 MOV AX,cs:hit_flag ;; * scan is bad *
976 AND AX,AX ;; *************************
977 JNZ BAD_BX ;;
978 MOV AX,-1 ;; NEXT is pointing backwards
979 MOV cs:next_low,AX ;;
980 MOV cs:next_high,AX ;; no more NEXT
981 MOV FTP.FTB_STATUS,STAT_BADATA ;; returned at the first FTBLK
982 JMP FTB_LOOP ;;
983 ;;
984BAD_BX : ;;
985 PUSH BX ;; FONT is pointing backwards
986 MOV BX,cs:hit_bx ;;
987 MOV FTP.FTB_STATUS,STAT_BADATA
988 POP BX ;;
989 JMP FTB_LOOP ;;
990 ;;
991;===========================================================================
992PRE_FOUND_CASE : ;;
993 ;; extract informations from the font
994 ;; block until font_length is defined
995 ;;
996 MOV DI,cs:stage ;;
997 ;;
998 ADD DI,DI ;; double to index to WORD-offset
999 ;;
1000 JMP CS:STAGE_CASES[DI] ;; call routine to process the stage
1001 ;;
1002;===========================================================================
1003FOUND_CASE : ;;
1004 MOV DI,OFFSET FTB_LOOP ;; as FOUND has two places to return to
1005 PUSH DI ;;
1006;===========================================================================
1007FOUND_DO : ;;
1008 ;; define informations into FTBLK of
1009 ;; HIT_BX defined in the SCAN case
1010 PUSH BX ;;
1011 MOV BX,cs:hit_bx ;;
1012 ;; FTBLK :
1013 MOV AX,cs:mod_word ;;
1014 MOV FTP.FTB_MOD,AX ;;
1015 MOV AX,cs:fonts_word ;;
1016 MOV FTP.FTB_FONTS,AX ;;
1017 ;;
1018 MOV AX,cs:fdlen_word ;;
1019 MOV FTP.FTB_DLEFT,AX ;;
1020 MOV FTP.FTB_DLEN,0 ;;
1021 MOV FTP.FTB_DALO,0 ;;
1022 MOV FTP.FTB_DAHI,0 ;;
1023 ;;
1024 MOV FTP.FTB_STATUS,FSTAT_FOUND
1025 ;;
1026; CMP FTP.FTB_TYPE,TYPE_DISPLAY;
1027; JNE CHECK_PTR_TYPE ;;
1028; CMP cs:pre_font_len,PRE_FONT_D ;;
1029; JNE DISPLAY_BAD ;;
1030; JMP DISPLAY_DONE ;;
1031; ;;
1032;CHECK_PTR_TYPE : ;;
1033; CMP FTP.FTB_TYPE,TYPE_PRINTER;
1034; JNE SET_STAGE ;;
1035; CMP cs:ptr_sel_word,0 ;;
1036; JNE PRINTER_HAS_SEL ;;
1037; CMP cs:pre_font_len,PRE_FONT_P0;;
1038; JNE PRINTER_BAD ;;
1039; JMP PRINTER_DONE ;;
1040; ;;
1041;PRINTER_HAS_SEL : ;;
1042; CMP cs:pre_font_len,PRE_FONT_P ;;
1043; JNE PRINTER_BAD ;;
1044; JMP PRINTER_DONE ;;
1045; ;;
1046;DISPLAY_BAD : ;;
1047; ;;
1048; MOV FTP.FTB_STATUS,STAT_BADATA ;the FDLEN_WORD should be 0.
1049; ;;
1050;DISPLAY_DONE : ;;
1051; MOV AL,cs:disp_rows ;;
1052; MOV FTP.FTB_ROWS,AL ;;
1053; MOV AL,cs:disp_cols ;;
1054; MOV FTP.FTB_COLS,AL ;;
1055; MOV AL,cs:disp_x ;;
1056; MOV FTP.FTB_X,AL ;;
1057; MOV AL,cs:disp_y ;;
1058; MOV FTP.FTB_Y,AL ;;
1059; MOV AX,cs:count_word ;;
1060; MOV FTP.FTB_COUNT,AX ;;
1061; JMP SET_STAGE ;;
1062 ;;
1063;PRINTER_BAD : ;;
1064; ;;
1065; MOV FTP.FTB_STATUS,STAT_BADATA ;the FDLEN_WORD should be 0.
1066; ;;
1067;PRINTER_DONE : ;;
1068; MOV AX,cs:ptr_sel_word ;;
1069; MOV FTP.FTB_SELECT,AX ;;
1070; MOV AX,cs:ptr_len_word ;;
1071; MOV FTP.FTB_SELLEN,AX ;;
1072; ;;
1073;SET_STAGE : ;; STAGE :
1074 MOV AX,cs:fdlen_word ;; if no font data to follow
1075 AND AX,AX ;;
1076 JNZ GET_FDATA ;;
1077 MOV cs:stage,SCANX ;; then scan for next header or font
1078 JMP FONT_RET ;;
1079 ;;
1080GET_FDATA : ;; update the moving target
1081 MOV cs:stage,GET_FX ;;
1082 MOV AX,cs:pre_font_len ;;
1083 ADD FTP.TARGET_LO,AX ;;
1084 JNC FONT_RET ;;
1085 ADD FTP.TARGET_HI,01000H ;;
1086 ;;
1087FONT_RET : ;;
1088 POP BX ;;
1089 RET ;;
1090 ;;
1091;===========================================================================
1092GETFONT_CASE : ;; as ES:[SI], at COUNT, there is font
1093 ;; data
1094 MOV DX,cs:num_ftb ;;
1095 PUSH BX ;;
1096 ;;
1097 MOV cs:hit_hi,0 ;; temp. register
1098 MOV cs:hit_flag,0 ;; assumed can be changed to SCAN stage
1099 ;;
1100 MOV DI,cs:count_hi ;; normalised COUNT_HI,COUNT_LO
1101 MOV AX,DI ;;
1102 AND AX,00FFFH ;;
1103 PUSH CX ;;
1104 MOV CX,4 ;;
1105 SHL AX,CL ;;
1106 POP CX ;;
1107 AND DI,0F000H ;;
1108 ADD AX,cs:count_lo ;;
1109 JNC NO_CARRY4 ;;
1110 ADD DI,01000H ;;
1111NO_CARRY4 : ;;
1112 MOV cs:count_lo,AX ;;
1113 MOV cs:count_hi,DI ;;
1114 ;;
1115 ;;
1116GETFONT_LOOP : ;;
1117 MOV AX,FTP.FTB_STATUS ;;
1118 CMP AX,FSTAT_FONT ;;
1119 JE GETFONT_CONT ;;
1120 ;;
1121 CMP AX,FSTAT_FOUND ;;
1122 JE GETFONT_FOUND ;;
1123 ;;
1124 JMP NEXT_GETFONT ;;
1125 ;;
1126GETFONT_FOUND : ;;
1127 MOV AX,FTP.FTB_DLEFT ;;
1128 AND AX,AX ;;
1129 JZ NEXT_GF ;;
1130 MOV FTP.FTB_STATUS,FSTAT_FONT;
1131 JMP GETFONT_CONT1 ;;
1132 ;;
1133 ;;
1134GETFONT_CONT : ;;
1135 MOV AX,FTP.FTB_DLEFT ;;
1136 AND AX,AX ;;
1137 JNZ GETFONT_CONT1 ;;
1138NEXT_GF : ;;
1139 JMP NEXT_GETFONT ;;
1140 ;; only on FOUND and DLEFT <> 0
1141GETFONT_CONT1: ;;
1142 MOV DI,FTP.TARGET_HI ;; normalised TARGET
1143 MOV AX,DI ;;
1144 AND AX,00FFFH ;;
1145 PUSH CX ;;
1146 MOV CX,4 ;;
1147 SHL AX,CL ;;
1148 POP CX ;;
1149 AND DI,0F000H ;;
1150 ADD AX,FTP.TARGET_LO ;;
1151 JNC NO_CARRY5 ;;
1152 ADD DI,01000H ;;
1153NO_CARRY5 : ;; DI:AX = TARGET (normalised)
1154 ;;
1155 CMP DI,cs:count_hi ;;
1156 JB GETFONT_BAD ;;
1157 JNE NEXT_GETFONT ;;
1158 CMP AX,cs:count_lo ;;
1159 JB GETFONT_BAD ;;
1160 JNE NEXT_GETFONT ;;
1161 ;;
1162 MOV FTP.FTB_DALO,SI ;; where the font data is in the packet
1163 MOV FTP.FTB_DAHI,DS ;;
1164 ;;
1165 MOV AX,FTP.FTB_DLEFT ;;
1166 CMP AX,CX ;;
1167 JAE UPTO_CX ;;
1168 ;; upto FDLEFT
1169 MOV FTP.FTB_DLEFT,0 ;;
1170 MOV FTP.FTB_DLEN,AX ;;
1171 CMP cs:hit_hi,AX ;;
1172 JNB NOT_HIGHER0 ;;
1173 MOV cs:hit_hi,AX ;;
1174NOT_HIGHER0 : ;;
1175 ADD FTP.TARGET_LO,AX ;;
1176 JNC NEXT_GETFONT ;;
1177 ADD FTP.TARGET_HI,01000H ;;
1178 JMP NEXT_GETFONT ;;
1179 ;;
1180GETFONT_BAD : ;;
1181 MOV FTP.FTB_STATUS,STAT_BADATA ;; pointing backwards
1182 JMP NEXT_GETFONT ;;
1183 ;;
1184UPTO_CX : ;;
1185 SUB AX,CX ;;
1186 MOV FTP.FTB_DLEFT,AX ;;
1187 MOV FTP.FTB_DLEN,CX ;;
1188 MOV cs:hit_hi,CX ;;
1189 ADD FTP.TARGET_LO,CX ;;
1190 JNC NO_CARRYOVER ;;
1191 ADD FTP.TARGET_HI,01000H ;;
1192NO_CARRYOVER : ;;
1193 AND AX,AX ;; all data have been returned ?
1194 JZ NEXT_GETFONT ;;
1195 ;;
1196 MOV cs:hit_flag,-1 ;; no ! stay in the GET_FONT stage
1197 ;;
1198NEXT_GETFONT : ;;
1199 ADD BX,FTP.FTB_LENGTH ;;
1200 DEC DX ;;
1201 AND DX,DX ;;
1202 JZ GETFONT_END ;;
1203 JMP GETFONT_LOOP ;;
1204 ;;
1205GETFONT_END : ;;
1206 MOV AX,cs:hit_hi ;;
1207 ADD SI,AX ;;
1208 SUB CX,AX ;;
1209 ;;
1210 CMP cs:hit_flag,0 ;;
1211 Jne GETFONT_DONE ;;
1212 MOV cs:stage,SCANX ;; no more in the GET_FONT stage
1213 ;;
1214 ;;
1215GETFONT_DONE : ;;
1216 POP BX ;;
1217 JMP FTB_LOOP ;;
1218 ;;
1219;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1220;;
1221;; STAGES -- "called by" SERACH_CASE
1222;;
1223;; -- DS:[SI] (FPKT) points to PACKET, of DOS's buffer
1224;; -- CX remaining packet length
1225;; -- ES:[BX] points to the first FTBLK
1226;; -- COUNT_LO, COUNT_HI, upto but not including the address pointed by FPKT
1227;;
1228;;
1229;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1230 ;;+++++++++++++++++++++++++++++++++
1231filetag : ;;
1232 ;;
1233; mov ax,ftag_len ;;
1234 cmp cs:ftag_count,ftag_len ;;
1235 jB valid_ftag ;;
1236 JE FTAG_FAILED ;;
1237 ;;
1238 mov ftp.ftb_status,stat_deverr
1239 mov cs:fp_error,00022H ;; ERROR 0022H
1240 ;;
1241FTAG_FAILED : ;; discard all the bytes, while
1242 ADD SI,CX ;; stage stays as FTAGX
1243 SUB CX,CX ;;
1244 JMP FTB_LOOP ;; **** RETURN (bytes discarded) ****
1245 ;;
1246VALID_FTAG : ;;
1247 MOV AX,FPKT ;;
1248 INC SI ;;
1249 DEC CX ;;
1250 ;;
1251 MOV DI,cs:ftag_count ;;
1252 CMP AL,cs:ftag_pattern[DI] ;;
1253 JE FTAG_NEXTB ;;
1254 ;;
1255 mov ftp.ftb_status,stat_badata
1256 MOV ax,ftag_len ;; stays in FTAGX to consume all bytes
1257 MOV cs:ftag_count,ax ;; stays in FTAGX to consume all bytes
1258 JMP FTB_LOOP ;; **** RETURN (FAILED !) ****
1259 ;;
1260FTAG_NEXTB : ;;
1261 INC DI ;;
1262 MOV cs:ftag_count,DI ;;
1263 ;;
1264 CMP DI,ftag_len ;;
1265 JE FTAG_DONE ;;
1266 ;;
1267 JMP FTB_LOOP ;; **** RETURN ( MORE TO COME) ****
1268 ;;
1269FTAG_DONE : ;;
1270 MOV cs:pass_cnt,0 ;;
1271 MOV cs:stage,PASSX ;;
1272 MOV cs:pass_postx,fptr_lolx ;;
1273 ;;
1274 JMP FTB_LOOP ;; **** NEXT STAGE ****
1275 ;;
1276 ;;+++++++++++++++++++++++++++++++++
1277fptrLOL : ;; STAGE the low byte of the low fptr
1278 MOV AX,FPKT ;;
1279 INC SI ;; byte by byte
1280 DEC CX ;;
1281 AND CX,CX ;;
1282 JNZ WORD_fptrLO ;;
1283 MOV cs:fptr_lol,AL ;;
1284 MOV cs:stage,fptr_lohX ;;
1285 JMP FTB_LOOP ;;
1286WORD_fptrLO : ;;
1287 INC SI ;;
1288 DEC CX ;;
1289 MOV cs:fptr_low,AX ;;
1290 MOV cs:stage,fptr_HILX ;;
1291 JMP FTB_LOOP ;;
1292 ;;+++++++++++++++++++++++++++++++++
1293fptrLOH : ;; STAGE the high byte of the low fptr
1294 MOV AX,FPKT ;;
1295 INC SI ;; byte by byte
1296 DEC CX ;;
1297 MOV cs:fptr_loh,AL ;;
1298 MOV cs:stage,fptr_HILX ;;
1299 JMP FTB_LOOP ;;
1300 ;;+++++++++++++++++++++++++++++++++
1301fptrHIL : ;; STAGE the low byte of the high fptr
1302 MOV AX,FPKT ;;
1303 INC SI ;; byte by byte
1304 DEC CX ;;
1305 AND CX,CX ;;
1306 JNZ WORD_fptrHI ;;
1307 MOV cs:fptr_hil,AL ;;
1308 MOV cs:stage,fptr_hihX ;;
1309 JMP FTB_LOOP ;;
1310WORD_fptrHI : ;;
1311 INC SI ;;
1312 DEC CX ;;
1313 MOV cs:fptr_high,AX ;;
1314 MOV cs:stage,FPTR_SKIPX ;;
1315 JMP FTB_LOOP ;;
1316 ;;+++++++++++++++++++++++++++++++++
1317fptrHIH : ;; STAGE the high byte of the high fptr
1318 MOV AX,FPKT ;;
1319 INC SI ;; byte by byte
1320 DEC CX ;;
1321 MOV cs:fptr_hih,AL ;;
1322 MOV cs:stage,FPTR_SKIPX ;;
1323 JMP FTB_LOOP ;;
1324 ;;+++++++++++++++++++++++++++++++++
1325ENTRYLO : ;; STAGE - ENTRY LOW BYTE
1326 MOV AX,FPKT ;;
1327 INC SI ;; byte by byte
1328 DEC CX ;;
1329 AND CX,CX ;;
1330 JNZ WORD_ENTRY ;;
1331 MOV cs:entry_lob,AL ;;
1332 MOV cs:stage,ENTRY_HIX ;;
1333 JMP FTB_LOOP ;;
1334WORD_ENTRY : ;;
1335 INC SI ;;
1336 DEC CX ;;
1337 MOV cs:entry_word,AX ;;
1338 MOV cs:stage,PASSX ;; 2 bytes to be passed
1339 MOV cs:pass_postx,NEXT_LOLX ;;
1340 JMP FTB_LOOP ;;
1341 ;;+++++++++++++++++++++++++++++++++
1342ENTRYHI : ;; stage - ENTRY HIGN BYTE
1343 MOV AX,FPKT ;;
1344 INC SI ;; byte by byte
1345 DEC CX ;;
1346 MOV cs:entry_hib,AL ;;
1347 MOV cs:stage,PASSX ;; 2 bytes to be passed
1348 MOV cs:pass_postx,NEXT_LOLX ;;
1349 AND CX,CX ;;
1350 JNZ ENTHI_PASS1 ;;
1351 JMP FTB_LOOP ;;
1352ENTHI_PASS1 : ;;
1353 INC SI ;;
1354 INC cs:pass_cnt ;;
1355 DEC CX ;;
1356 AND CX,CX ;;
1357 JNZ ENTHI_PASS2 ;;
1358 JMP FTB_LOOP ;;
1359ENTHI_PASS2 : ;;
1360 INC SI ;;
1361 INC cs:pass_cnt ;;
1362 DEC CX ;;
1363 MOV cs:stage,NEXT_LOLX ;;
1364 JMP FTB_LOOP ;;
1365 ;;+++++++++++++++++++++++++++++++++
1366NEXTLOL : ;; STAGE the low byte of the low NEXT
1367 MOV AX,FPKT ;;
1368 INC SI ;; byte by byte
1369 DEC CX ;;
1370 AND CX,CX ;;
1371 JNZ WORD_NEXTLO ;;
1372 MOV cs:next_lol,AL ;;
1373 MOV cs:stage,NEXT_LOHX ;;
1374 JMP FTB_LOOP ;;
1375WORD_NEXTLO : ;;
1376 INC SI ;;
1377 DEC CX ;;
1378 MOV cs:next_low,AX ;;
1379 MOV cs:stage,next_hilX ;;
1380 JMP FTB_LOOP ;;
1381 ;;+++++++++++++++++++++++++++++++++
1382NEXTLOH : ;; STAGE the high byte of the low NEXT
1383 MOV AX,FPKT ;;
1384 INC SI ;; byte by byte
1385 DEC CX ;;
1386 MOV cs:next_loh,AL ;;
1387 MOV cs:stage,next_hilX ;;
1388 JMP FTB_LOOP ;;
1389 ;;+++++++++++++++++++++++++++++++++
1390NEXTHIL : ;; STAGE the low byte of the high NEXT
1391 MOV AX,FPKT ;;
1392 INC SI ;; byte by byte
1393 DEC CX ;;
1394 AND CX,CX ;;
1395 JNZ WORD_NEXTHI ;;
1396 MOV cs:next_hil,AL ;;
1397 MOV cs:stage,NEXT_HIHX ;;
1398 JMP FTB_LOOP ;;
1399WORD_NEXTHI : ;;
1400 INC SI ;;
1401 DEC CX ;;
1402 MOV cs:next_high,AX ;;
1403 MOV cs:stage,type_lobX ;;
1404 JMP FTB_LOOP ;;
1405 ;;+++++++++++++++++++++++++++++++++
1406NEXTHIH : ;; STAGE the high byte of the high NEXT
1407 MOV AX,FPKT ;;
1408 INC SI ;; byte by byte
1409 DEC CX ;;
1410 MOV cs:next_hih,AL ;;
1411 MOV cs:stage,type_lobX ;;
1412 JMP FTB_LOOP ;;
1413 ;;+++++++++++++++++++++++++++++++++
1414TYPELO : ;; STAGE the low byte of the TYPE
1415 MOV AX,FPKT ;;
1416 INC SI ;; byte by byte
1417 DEC CX ;;
1418 AND CX,CX ;;
1419 JNZ WORD_TYPE ;;
1420 MOV cs:type_lob,AL ;;
1421 MOV cs:stage,type_hibX ;;
1422 JMP FTB_LOOP ;;
1423WORD_TYPE : ;;
1424 INC SI ;;
1425 DEC CX ;;
1426 MOV cs:type_word,AX ;;
1427 MOV cs:stage,type_idX ;;
1428 MOV cs:tid_cnt,0 ;;
1429 JMP FTB_LOOP ;;
1430 ;;+++++++++++++++++++++++++++++++++
1431TYPEHI : ;; STAGE the high byte of the TYPE
1432 MOV AX,FPKT ;;
1433 INC SI ;; byte by byte
1434 DEC CX ;;
1435 MOV cs:type_hib,AL ;;
1436 MOV cs:stage,TYPE_IDX ;;
1437 MOV cs:tid_cnt,0 ;;
1438 JMP FTB_LOOP ;;
1439 ;;+++++++++++++++++++++++++++++++++
1440TYPEIDS : ;; STAGE the type id
1441 CMP cs:tid_cnt,8 ;;
1442 JNA VALID_TID ;;
1443 MOV FTP.FTB_STATUS,STAT_DEVERR
1444 MOV cs:fp_error,00021H ;; ERROR 0021H
1445 ADD SI,CX ;;
1446 SUB CX,CX ;;
1447 JMP FTB_LOOP ;;
1448 ;;
1449VALID_TID : ;;
1450 MOV AX,8 ;;
1451 SUB AX,cs:tid_cnt ;;
1452 CMP CX,AX ;;
1453 JNB TID_ALL ;;
1454 ;; all data in FPKT are stored
1455 PUSH ES ;;
1456 PUSH CS ;;
1457 POP ES ;;
1458 ;;
1459 MOV DI,OFFSET TYPE_ID ;;
1460 ADD DI,cs:tid_cnt ;;
1461 ADD cs:tid_cnt,CX ;;
1462 REP MOVSB ;; SI is incremented accordingly
1463 POP ES ;;
1464 ;;
1465 MOV CX,0 ;; STAGE remained
1466 JMP FTB_LOOP ;;
1467TID_ALL : ;;
1468 PUSH CX ;;
1469 ;;
1470 PUSH ES ;;
1471 PUSH CS ;;
1472 POP ES ;;
1473 ;;
1474 MOV DI,OFFSET TYPE_ID ;;
1475 ADD DI,cs:tid_cnt ;;
1476 MOV CX,AX ;;
1477 REP MOVSB ;; SI is incremented accordingly
1478 POP ES ;;
1479 ;;
1480 ADD cs:tid_cnt,AX ;;
1481 POP CX ;;
1482 SUB CX,AX ;;
1483 ;;
1484 MOV cs:stage,CPG_LOBX ;;
1485 JMP FTB_LOOP ;;
1486 ;;+++++++++++++++++++++++++++++++++
1487CPGLO : ;; STAGE the low byte of the CODE PAGE
1488 MOV AX,FPKT ;;
1489 INC SI ;; byte by byte
1490 DEC CX ;;
1491 AND CX,CX ;;
1492 JNZ WORD_CPG ;;
1493 MOV cs:cpg_lob,AL ;;
1494 MOV cs:stage,CPG_HIBX ;;
1495 JMP FTB_LOOP ;;
1496WORD_CPG : ;;
1497 INC SI ;;
1498 DEC CX ;;
1499 MOV cs:cpg_word,AX ;;
1500 MOV cs:stage,PASSX ;;
1501 MOV cs:pass_postx,font_lolX ;;
1502 JMP FTB_LOOP ;;
1503 ;;+++++++++++++++++++++++++++++++++
1504CPGHI : ;; STAGE the high byte of the CODE PAGE
1505 MOV AX,FPKT ;;
1506 INC SI ;; byte by byte
1507 DEC CX ;;
1508 MOV cs:cpg_hib,AL ;;
1509 MOV cs:stage,PASSX ;;
1510 MOV cs:pass_postx,font_lolX ;;
1511 JMP FTB_LOOP ;;
1512 ;;+++++++++++++++++++++++++++++++++
1513FONTLOL : ;; STAGE the low byte of the low FONT
1514 MOV AX,FPKT ;;
1515 INC SI ;; byte by byte
1516 DEC CX ;;
1517 AND CX,CX ;;
1518 JNZ WORD_FONTLO ;;
1519 MOV cs:font_lol,AL ;;
1520 MOV cs:stage,FONT_LOHX ;;
1521 JMP FTB_LOOP ;;
1522WORD_FONTLO : ;;
1523 INC SI ;;
1524 DEC CX ;;
1525 MOV cs:font_low,AX ;;
1526 MOV cs:stage,FONT_HILX ;;
1527 JMP FTB_LOOP ;;
1528 ;;+++++++++++++++++++++++++++++++++
1529FONTLOH : ;; STAGE the high byte of the low FONT
1530 MOV AX,FPKT ;;
1531 INC SI ;; byte by byte
1532 DEC CX ;;
1533 MOV cs:font_loh,AL ;;
1534 MOV cs:stage,FONT_HILX ;;
1535 JMP FTB_LOOP ;;
1536 ;;+++++++++++++++++++++++++++++++++
1537FONTHIL : ;; STAGE the low byte of the high FONT
1538 MOV AX,FPKT ;;
1539 INC SI ;; byte by byte
1540 DEC CX ;;
1541 AND CX,CX ;;
1542 JNZ WORD_FONTHI ;;
1543 MOV cs:font_hil,AL ;;
1544 MOV cs:stage,FONT_HIHX ;;
1545 JMP FTB_LOOP ;;
1546WORD_FONTHI : ;;
1547 INC SI ;;
1548 DEC CX ;;
1549 MOV cs:font_high,AX ;;
1550;;;;;; MOV cs:stage,MOD_LOBX ;; end of SCAN
1551 ;; anymore headers to be processed ?
1552 MOV cs:stage,MATCHX ;;
1553 MOV AX,cs:entry_word ;;
1554 DEC AX ;;
1555 MOV cs:entry_word,AX ;;
1556 AND AX,AX ;;
1557 JNZ CHECK_NEXT ;;
1558 ;; no more header to be processed !
1559 MOV AX,-1 ;;
1560 MOV cs:next_low,AX ;;
1561 MOV cs:next_high,AX ;; as ENTRY has been consumed
1562 JMP FTB_LOOP ;;
1563 ;;
1564CHECK_NEXT : ;;
1565 MOV AX,cs:next_low ;;
1566 AND AX,AX ;;
1567 JNZ MORE_HEADER ;;
1568 MOV AX,cs:next_high ;;
1569 AND AX,AX ;;
1570 JNZ MORE_HEADER ;;
1571 ;; no more header to be processed !
1572 MOV AX,-1 ;;
1573 MOV cs:next_low,AX ;; as NEXT is nil
1574 MOV cs:next_high,AX ;;
1575 ;;
1576MORE_HEADER : ;;
1577 JMP FTB_LOOP ;;
1578 ;;+++++++++++++++++++++++++++++++++
1579FONTHIH : ;; STAGE the high byte of the high FONT
1580 MOV AX,FPKT ;;
1581 INC SI ;; byte by byte
1582 DEC CX ;;
1583 MOV cs:font_hih,AL ;;
1584;;;;; MOV cs:stage,MOD_LOBX ;; end of SCAN
1585 ;;
1586 MOV cs:stage,MATCHX ;;
1587 ;; anymore headers to be processed ?
1588 MOV AX,cs:entry_word ;;
1589 DEC AX ;;
1590 MOV cs:entry_word,AX ;;
1591 AND AX,AX ;;
1592 JNZ CHECK_NEXT0 ;;
1593 ;; no more header to be processed !
1594 MOV AX,-1 ;;
1595 MOV cs:next_low,AX ;;
1596 MOV cs:next_high,AX ;; as ENTRY has been consumed
1597 JMP FTB_LOOP ;;
1598 ;;
1599CHECK_NEXT0 : ;;
1600 MOV AX,cs:next_low ;;
1601 AND AX,AX ;;
1602 JNZ MORE_HEADER0 ;;
1603 MOV AX,cs:next_high ;;
1604 AND AX,AX ;;
1605 JNZ MORE_HEADER0 ;;
1606 ;; no more header to be processed !
1607 MOV AX,-1 ;;
1608 MOV cs:next_low,AX ;; as NEXT is nil
1609 MOV cs:next_high,AX ;;
1610 ;;
1611MORE_HEADER0 : ;;
1612 JMP FTB_LOOP ;;
1613 ;;
1614 ;;+++++++++++++++++++++++++++++++++
1615MODLO : ;; STAGE the low byte of the MODIFIER
1616 MOV AX,FPKT ;;
1617 INC SI ;; byte by byte
1618 DEC CX ;;
1619 AND CX,CX ;;
1620 JNZ WORD_MOD ;;
1621 MOV MOD_LOB,AL ;;
1622 MOV cs:stage,MOD_HIBX ;;
1623 JMP FTB_LOOP ;;
1624WORD_MOD : ;;
1625 INC SI ;;
1626 DEC CX ;;
1627 MOV cs:mod_word,AX ;;
1628 MOV cs:stage,fonts_lobX ;;
1629 JMP FTB_LOOP ;;
1630 ;;+++++++++++++++++++++++++++++++++
1631MODHI : ;; STAGE the high byte of the MODIFIER
1632 MOV AX,FPKT ;;
1633 INC SI ;; byte by byte
1634 DEC CX ;;
1635 MOV cs:mod_hib,AL ;;
1636 MOV cs:stage,FONTS_LOBX ;;
1637 JMP FTB_LOOP ;;
1638 ;;+++++++++++++++++++++++++++++++++
1639FONTSLO : ;; STAGE the low byte of the FONTS
1640 MOV AX,FPKT ;;
1641 INC SI ;; byte by byte
1642 DEC CX ;;
1643 AND CX,CX ;;
1644 JNZ WORD_FONTS ;;
1645 MOV cs:fonts_lob,AL ;;
1646 MOV cs:stage,FONTS_HIBX ;;
1647 JMP FTB_LOOP ;;
1648WORD_FONTS : ;;
1649 INC SI ;;
1650 DEC CX ;;
1651 MOV cs:fonts_word,AX ;;
1652 MOV cs:stage,FDLEN_LOBX ;;
1653 JMP FTB_LOOP ;;
1654 ;;+++++++++++++++++++++++++++++++++
1655FONTSHI : ;; STAGE the high byte of the FONTS
1656 MOV AX,FPKT ;;
1657 INC SI ;; byte by byte
1658 DEC CX ;;
1659 MOV cs:fonts_hib,AL ;;
1660 MOV cs:stage,FDLEN_LOBX ;;
1661 JMP FTB_LOOP ;;
1662 ;;+++++++++++++++++++++++++++++++++
1663FDLENLO : ;; the low byte of the FONT-LENGTH
1664 MOV AX,FPKT ;;
1665 INC SI ;; byte by byte
1666 DEC CX ;;
1667 AND CX,CX ;;
1668 JNZ WORD_FDLEN ;;
1669 MOV cs:fdlen_lob,AL ;;
1670 MOV cs:stage,FDLEN_HIBX ;;
1671 JMP FTB_LOOP ;;
1672WORD_FDLEN : ;;
1673 INC SI ;;
1674 DEC CX ;;
1675 MOV cs:pre_font_len,PRE_FONT_ND;;
1676 MOV cs:fdlen_word,AX ;;
1677; AND AX,AX ;;
1678; JZ NO_DISP_PTR ;;
1679; CMP cs:type_word,TYPE_DISPLAY ;;
1680; JE DISPLAY_TYPE1 ;;
1681; CMP cs:type_word,TYPE_PRINTER ;;
1682; JE PRINTER_TYPE1 ;;
1683 ;;
1684;NO_DISP_PTR : ;;
1685 MOV cs:stage,FOUNDX ;; FSTAT is to be changed
1686 JMP FTB_LOOP ;;
1687;DISPLAY_TYPE1 : ;;
1688; MOV cs:stage,DISP_ROWSX ;;
1689; JMP FTB_LOOP ;;
1690;PRINTER_TYPE1 : ;;
1691; MOV cs:stage,PTRSELLOX ;;
1692; JMP FTB_LOOP ;;
1693 ;;
1694 ;;+++++++++++++++++++++++++++++++++
1695FDLENHI : ;; STAGE the high byte of the F-LENGTH
1696 MOV cs:pre_font_len,PRE_FONT_ND
1697 MOV AX,FPKT ;;
1698 INC SI ;; byte by byte
1699 DEC CX ;;
1700 MOV cs:fdlen_hib,AL ;;
1701 MOV AX,cs:fdlen_word ;;
1702; AND AX,AX ;;
1703; JZ NO_DISP_PTR2 ;;
1704; CMP cs:type_word,TYPE_DISPLAY ;;
1705; JE DISPLAY_TYPE2 ;;
1706; CMP cs:type_word,TYPE_PRINTER ;;
1707; JE PRINTER_TYPE2 ;;
1708;NO_DISP_PTR2: ;;
1709 MOV cs:stage,FOUNDX ;; FSTAT is to be changed
1710 JMP FTB_LOOP ;;
1711;DISPLAY_TYPE2 : ;;
1712; MOV cs:stage,DISP_ROWSX ;;
1713; JMP FTB_LOOP ;;
1714;PRINTER_TYPE2 : ;;
1715; MOV cs:stage,PTRSELLOX ;;
1716; JMP FTB_LOOP ;;
1717 ;;
1718 ;;+++++++++++++++++++++++++++++++++
1719DSPROWS : ;; STAGE : get the rows
1720; XOR AX,AX ;;
1721; MOV cs:disp_rows,AL ;;
1722; MOV cs:disp_cols,AL ;;
1723; MOV cs:DISP_X,AL ;;
1724; MOV cs:disp_y,AL ;;
1725; MOV cs:count_word,AX ;;
1726; ;;
1727; INC cs:pre_font_len ;;
1728; MOV AX,FPKT ;;
1729; INC SI ;;
1730; DEC CX ;;
1731; MOV cs:disp_rows,AL ;;
1732; MOV AX,cs:fdlen_word ;;
1733; DEC AX ;;
1734; MOV cs:fdlen_word,AX ;;
1735; JZ NO_DISP_FONT3 ;;
1736; MOV cs:stage,disp_colsX ;;
1737; JMP FTB_LOOP ;;
1738;NO_DISP_FONT3 : ;;
1739; MOV cs:stage,FOUNDX ;; FSTAT is to be changed
1740; JMP FTB_LOOP ;;
1741; ;;+++++++++++++++++++++++++++++++++
1742DSPCOLS : ;; STAGE : get the COLS
1743; INC cs:pre_font_len ;;
1744; MOV AX,FPKT ;;
1745; INC SI ;;
1746; DEC CX ;;
1747; MOV cs:disp_cols,AL ;;
1748; MOV AX,cs:fdlen_word ;;
1749; DEC AX ;;
1750; MOV cs:fdlen_word,AX ;;
1751; JZ NO_DISP_FONT3 ;;
1752; MOV cs:stage,DISP_XX ;;
1753; JMP FTB_LOOP ;;
1754 ;;+++++++++++++++++++++++++++++++++
1755 DSPX : ;; STAGE : get the aspect X
1756; INC cs:pre_font_len ;;
1757; MOV AX,FPKT ;;
1758; INC SI ;;
1759; DEC CX ;;
1760; MOV DISP_X,AL ;;
1761; MOV AX,cs:fdlen_word ;;
1762; DEC AX ;;
1763; MOV cs:fdlen_word,AX ;;
1764; JZ NO_DISP_FONT3 ;;
1765; MOV cs:stage,DISP_YX ;;
1766; JMP FTB_LOOP ;;
1767; ;;+++++++++++++++++++++++++++++++++
1768 DSPY : ;; STAGE : get the aspect Y
1769; INC cs:pre_font_len ;;
1770; MOV AX,FPKT ;;
1771; INC SI ;;
1772; DEC CX ;;
1773; MOV cs:disp_y,AL ;;
1774; MOV AX,cs:fdlen_word ;;
1775; DEC AX ;;
1776; MOV cs:fdlen_word,AX ;;
1777; JZ NO_DISP_FONT3 ;;
1778; MOV cs:stage,COUNT_LOBX ;;
1779; JMP FTB_LOOP ;;
1780; ;;
1781 ;;+++++++++++++++++++++++++++++++++
1782 DSPCOUNTLO : ;; the low byte of the FONT-LENGTH
1783; INC cs:pre_font_len ;;
1784; MOV AX,FPKT ;;
1785; INC SI ;; byte by byte
1786; DEC CX ;;
1787; PUSH AX ;; check if length is enough
1788; MOV AX,cs:fdlen_word ;;
1789; DEC AX ;;
1790; MOV cs:fdlen_word,AX ;;
1791; POP AX ;;
1792; JNZ A_WORD_COUNT ;;
1793; JMP NO_DISP_FONT3 ;;
1794;A_WORD_COUNT : ;;
1795; AND CX,CX ;;
1796; JNZ WORD_COUNT ;;
1797; MOV cs:count_lob,AL ;;
1798; MOV cs:stage,COUNT_HIBX ;;
1799; JMP FTB_LOOP ;;
1800;WORD_COUNT : ;;
1801; INC cs:pre_font_len ;;
1802; INC SI ;;
1803; DEC CX ;;
1804; MOV cs:count_word,AX ;;
1805; MOV cs:pre_font_len,PRE_FONT_D;
1806 ;;
1807; MOV AX,cs:fdlen_word ;;
1808; DEC AX ;;
1809; MOV cs:fdlen_word,AX ;;
1810; MOV cs:stage,FOUNDX ;; FSTAT is to be changed
1811; JMP FTB_LOOP ;;
1812; ;;
1813; ;;+++++++++++++++++++++++++++++++++
1814 DSPCOUNTHI : ;; STAGE the high byte of the F-LENGTH
1815; INC cs:pre_font_len ;;
1816; MOV AX,FPKT ;;
1817; INC SI ;; byte by byte
1818; DEC CX ;;
1819; MOV cs:count_hib,AL ;;
1820; MOV cs:pre_font_len,PRE_FONT_D;
1821 ;;
1822; MOV AX,cs:fdlen_word ;;
1823; DEC AX ;;
1824; MOV cs:fdlen_word,AX ;;
1825; MOV cs:stage,FOUNDX ;; FSTAT is to be changed
1826; JMP FTB_LOOP ;;
1827; ;;
1828 ;;
1829 ;;+++++++++++++++++++++++++++++++++
1830PTRSELLO : ;; the low byte of the SELECTION_TYPE
1831 ;;
1832; INC cs:pre_font_len ;;
1833; MOV AX,FPKT ;;
1834; INC SI ;; byte by byte
1835; DEC CX ;;
1836; PUSH AX ;; check if length is enough
1837; MOV AX,cs:fdlen_word ;;
1838; DEC AX ;;
1839; MOV cs:fdlen_word,AX ;;
1840; POP AX ;;
1841; JNZ A_WORD_SEL ;;
1842; JMP NO_PTR_FONT3 ;;
1843;A_WORD_SEL : ;;
1844; AND CX,CX ;;
1845; JNZ WORD_SEL ;;
1846; MOV cs:ptr_selob,AL ;;
1847; MOV cs:stage,PTRSELHIX ;;
1848; JMP FTB_LOOP ;;
1849;WORD_SEL : ;;
1850; INC cs:pre_font_len ;;
1851; INC SI ;;
1852; DEC CX ;;
1853; MOV cs:ptr_sel_word,AX ;;
1854; ;;
1855; MOV AX,cs:fdlen_word ;;
1856; DEC AX ;;
1857; MOV cs:fdlen_word,AX ;;
1858; ;;
1859; CMP cs:ptr_sel_word,0 ;;
1860; JNE PTR_SEL_NOT0 ;;
1861; ;;
1862; ;;
1863; MOV cs:stage,FOUNDX ;; FSTAT is to be changed
1864; JMP FTB_LOOP ;;
1865; ;;
1866;PTR_SEL_NOT0 : ;;
1867; MOV cs:stage,PTRLENLOX ;;
1868; JMP FTB_LOOP ;;
1869; ;;
1870 ;;+++++++++++++++++++++++++++++++++
1871PTRSELHI: ;; STAGE the high byte of SELECT_TYPE
1872 ;;
1873; INC cs:pre_font_len ;;
1874; MOV AX,FPKT ;;
1875; INC SI ;; byte by byte
1876; DEC CX ;;
1877; MOV cs:ptr_sehib,AL ;;
1878; ;;
1879; MOV AX,cs:fdlen_word ;;
1880; DEC AX ;;
1881; MOV cs:fdlen_word,AX ;;
1882; ;;
1883; CMP cs:ptr_sel_word,0 ;;
1884; JNE PTR_SEL_NOT0 ;;
1885; ;;
1886; ;;
1887; MOV cs:stage,FOUNDX ;; FSTAT is to be changed
1888; JMP FTB_LOOP ;;
1889; ;;
1890; ;;
1891 ;;+++++++++++++++++++++++++++++++++
1892PTRLENLO : ;; the low byte of SELECTION_LENGTH
1893 ;;
1894; INC cs:pre_font_len ;;
1895; MOV AX,FPKT ;;
1896; INC SI ;; byte by byte
1897; DEC CX ;;
1898; PUSH AX ;; check if length is enough
1899; MOV AX,cs:fdlen_word ;;
1900; DEC AX ;;
1901; MOV cs:fdlen_word,AX ;;
1902; POP AX ;;
1903; JNZ A_WORD_SELEN ;;
1904; JMP NO_PTR_FONT3 ;;
1905;A_WORD_SELEN : ;;
1906; AND CX,CX ;;
1907; JNZ WORD_SELEN ;;
1908; MOV cs:ptr_lnlob,AL ;;
1909; MOV cs:stage,PTRLENHIX ;;
1910; JMP FTB_LOOP ;;
1911;WORD_SELEN : ;;
1912; INC cs:pre_font_len ;;
1913; INC SI ;;
1914; DEC CX ;;
1915; MOV cs:ptr_len_word,AX ;;
1916; ;;
1917; MOV AX,cs:fdlen_word ;;
1918; DEC AX ;;
1919; MOV cs:fdlen_word,AX ;;
1920; MOV cs:stage,FOUNDX ;; FSTAT is to be changed
1921; JMP FTB_LOOP ;;
1922; ;;
1923 ;;+++++++++++++++++++++++++++++++++
1924 PTRLENHI : ;; STAGE the high byte of SELECT_LENGTH
1925 ;;
1926 SUB CX,CX ;D; added for DISPLAY.SYS version
1927 MOV CS:STAGE,STAGE_MAX+1 ;D; added for DISPLAY.SYS version
1928 JMP FTB_LOOP ;D; added for DISPLAY.SYS version
1929 ;;
1930 ;;
1931; INC cs:pre_font_len ;;
1932; MOV AX,FPKT ;;
1933; INC SI ;; byte by byte
1934; DEC CX ;;
1935; MOV cs:ptr_lnhib,AL ;;
1936; ;;
1937; MOV AX,cs:fdlen_word ;;
1938; DEC AX ;;
1939; MOV cs:fdlen_word,AX ;;
1940; MOV cs:stage,FOUNDX ;; FSTAT is to be changed
1941; JMP FTB_LOOP ;;
1942; ;;
1943;NO_PTR_FONT3 : ;;
1944; MOV cs:stage,FOUNDX ;; FSTAT is to be changed
1945; JMP FTB_LOOP ;;
1946 ;;+++++++++++++++++++++++++++++++++
1947PASS : ;; STAGE - PASS DUMMY BYTES
1948 ;;
1949 PUSH DX ;;
1950 PUSH ES ;;
1951 PUSH DI ;;
1952 ;;
1953 PUSH CS ;;
1954 POP ES ;;
1955 MOV DI,OFFSET PASS_BRK ;;
1956 MOV DX,PASS_INDX ;;
1957 MOV AX,cs:pass_cnt ;;
1958 ;;
1959NEXT_BRK: ;; find the next pass-break
1960 CMP AX,ES:[DI] ;;
1961 ;;
1962 JB UPTO_BRK ;;
1963 ;;
1964 DEC DX ;;
1965 JZ PASS_ERR ;;
1966 INC DI ;;
1967 INC DI ;;
1968 JMP NEXT_BRK ;;
1969 ;;
1970UPTO_BRK : ;; next break point found
1971 MOV DX,ES:[DI] ;;
1972 SUB DX,AX ;; bytes to be skipped
1973 CMP CX,DX ;; all to be skipped ?
1974 JAE PASS_ALL ;;
1975 ;;
1976 ADD cs:pass_cnt,CX ;;
1977 ADD SI,CX ;;
1978 SUB CX,CX ;;
1979 JMP PASS_END ;;
1980 ;;
1981PASS_ALL : ;;
1982 ADD cs:pass_cnt,DX ;;
1983 ADD SI,DX ;;
1984 SUB CX,DX ;;
1985 ;;
1986 MOV AX,cs:pass_postx ;;
1987 MOV cs:stage,AX ;;
1988 ;;
1989; cmp ax,passx ;; is the next stage a pass-stage ?
1990; jne not_passx ;;
1991; mov ax,pass_postxx ;;
1992; mov pass_postx,ax ;;
1993; mov pass_postxx,stage_max ;; can support only 2 consecutive pass
1994 ;;
1995;not_passx : ;;
1996 ;;
1997 JMP PASS_END ;;
1998 ;;
1999PASS_ERR : ;; DEVICE ERROR, wrong stage
2000 POP DI ;;
2001 POP ES ;;
2002 POP DX ;;
2003 MOV FTP.FTB_STATUS,STAT_DEVERR
2004 SUB CX,CX ;; ignore all the input string
2005 JMP PASS_DONE ;;
2006 ;;
2007PASS_END : ;;
2008 POP DI ;;
2009 POP ES ;;
2010 POP DX ;;
2011PASS_DONE : ;;
2012 JMP FTB_LOOP ;;
2013 ;;
2014;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2015 ;;
2016FTB_LPEND : ;;
2017 ;;
2018 CMP cs:stage,FOUNDX ;;
2019 JNE NOT_FOUNDX ;;
2020 ;;
2021 CALL FOUND_DO ;;
2022 ;;
2023NOT_FOUNDX : ;;
2024 ;;
2025 POP CX ;; STACK -1
2026 ;;
2027FP_RET : ;;
2028 POP SI ;; restore registers
2029 POP DI ;;
2030 POP DX ;;
2031 POP CX ;;
2032 POP BX ;;
2033 POP AX ;;
2034 POP ES ;;
2035 POP DS ;;
2036 ;;
2037 RET ;;
2038FONT_PARSER ENDP ;;
2039 ;;
2040;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
diff --git a/v4.0/src/DEV/DISPLAY/INIT.ASM b/v4.0/src/DEV/DISPLAY/INIT.ASM
new file mode 100644
index 0000000..f5067c1
--- /dev/null
+++ b/v4.0/src/DEV/DISPLAY/INIT.ASM
@@ -0,0 +1,965 @@
1PAGE ,132
2TITLE DOS - CON Code Page Switching Device Driver (INIT)
3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
4;
5; FILENAME: INIT.ASM
6; PROGRAM: DISPLAY.SYS (Load module)
7; LINK PROCEDURE: Linkk
8; INSTALLATION:
9;
10; This is the routine used to initialize the DOS CPS
11; (Code Page Switching) device driver. It is linked into the
12; DISPLAY.SYS file at the very end.
13;
14; PSEUDO CODE:
15; INIT PROC
16;
17; not specified yet....patience is a virtue!!!
18;
19; INIT ENDP
20;
21;
22; (C)Copyright 1988 Microsoft
23;
24; DATE: August 28, 1986
25;
26;Modification history *********************************************************
27;AN001; D358 New device driver INIT function package 12/07/87 J.K.
28;AN002; D493 Undo D358. 02/24/88 J.K.
29;******************************************************************************
30
31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
32IF1 ;
33 %OUT .COMPILING: INIT.ASM
34 %OUT . ô INSTALL CPS-CON DRIVER
35 %OUT . õ VERSION 3.30
36 %OUT .INCLUDE FILES:
37ENDIF ;
38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
39;
40; REFERENCES
41;
42; THESE REFERENCES ARE FOR VARIABLES SET WITHIN THE
43; MAIN-LINE PROGRAM, NOT CONTAINED IN THIS MODULE.
44;
45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
46 ;
47.XLIST ;
48INCLUDE SYSMSG.INC ; WGR ;AN000;
49MSG_UTILNAME <DISPLAY> ; WGR ;AN000;
50.LIST ;
51 ;
52 ;
53CODE SEGMENT PUBLIC BYTE 'CODE' ;
54 ASSUME CS:CODE,DS:CODE ;
55 PUBLIC INIT ;
56 ;
57 EXTRN ROM_INT_2F:WORD ;
58 EXTRN ROM_INT_10:WORD ;
59 EXTRN ROM_INT_1F:WORD ;
60 EXTRN OLD_INT_1F:WORD ;
61 EXTRN ROM_INT_44:WORD ;
62 EXTRN INT_2F_COM:NEAR ;
63 EXTRN INT_10_COM:NEAR ;
64 EXTRN EOF_MARKER:BYTE ;
65 EXTRN ABORT:BYTE ;
66 EXTRN CPD_ACTIVE:WORD ;
67 EXTRN CPD_CLASS:BYTE ;
68 EXTRN CPD_HDWR_N_MAX:ABS ;
69 EXTRN CPD_DESG_N_MAX:ABS ;
70 EXTRN CPD_HDWR_N:WORD ;
71 EXTRN CPD_DESG_N:WORD ;
72 EXTRN CPD_FONTS_N:WORD ;
73 EXTRN IRPT_2:NEAR ;
74 EXTRN IRPT_CMD_EXIT:NEAR ;
75 EXTRN FONT_SIZE:BYTE ;
76 EXTRN LOAD_MECH:BYTE ;
77 EXTRN CPD_FONT_PNTER:WORD ;
78 EXTRN PARSER:NEAR ;
79 EXTRN GET_DEVICE_ID:NEAR ;
80 EXTRN TABLE:BYTE ;
81 EXTRN ASK_BIOS_FONT_SIZE:NEAR ;
82 EXTRN ASK_BIOS_SCAN_LINES:NEAR;
83 EXTRN REDUCED_SUPPORT:ABS ;
84 EXTRN DEV_HDR:WORD ;
85 EXTRN MODE_VALUE:BYTE ;
86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
87;
88; LOCAL VARIABLES
89;
90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
91HANDLE_ROUTINES LABEL WORD ; INDEX TABLE OF 'FUNCTIONS' TO
92 DW OFFSET HANDLE_DEVICE_NAME ; OPERATE ON THE COMMAND_LINE
93 DW OFFSET HANDLE_DEVICE_ID ;
94 DW OFFSET HANDLE_HDWR_CP ;
95 DW OFFSET HANDLE_DESG_CP ;
96LEN_HANDLE_ROUTINES EQU ($-HANDLE_ROUTINES)/2
97 ;
98RESIDENT_END DW OFFSET EOF_MARKER ; POINTER TO SEG:OFFSET OF CODE END!
99RESIDENT_ENDS DW SEG CODE ;
100 ;
101DEVICE_ID_INDEX DW 0 ; INDEX VALUE FOR DEVICE SUB-TYPE
102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
103;
104; INCLUDE FILES
105;
106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
107 INCLUDE MACROS.INC ; GENERAL PURPOSE 'MACROs'
108 INCLUDE DEF-EQU.INC ; CPS DRIVER STRUCTURES AND EQUATES
109 INCLUDE TABLES.INC ; DEVICE SUB-TYPE CONFIGURATION TABLES
110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
111;
112; INITIALIZATION ROUTINE
113;
114; THE INIT PROC IS CALLED BY THE DEVICE DRIVER DURING DOS BOOT TIME!
115; THE CALL WILL BE MADE ONCE, AND ONLY ONCE. THEREFORE, WHEN THIS
116; CODE IS COMPLETED, IT IS DISCARDED INTO THAT 'great bit bucket
117; in the sky!
118;
119;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
120INIT PROC ;
121 PUSH DS ;
122 ;
123 PUSH CS ;
124 POP DS ; FIRST SET DS = CS
125 ;
126 PUSH BX ; WGR ;AN000;
127 CALL SYSLOADMSG ; WGR load messages ;AN000;
128 JNC INIT_00 ; WGR if no error then continue.. ;AN000;
129 CALL SYSDISPMSG ; WGR display error message.. ;AN000;
130 POP BX ; WGR ;AN000;
131 JMP INIT_1 ; WGR exit with error status ;AN000;
132INIT_00: ; WGR ;AN000;
133 POP BX ; WGR ;AN000;
134 MOV RESIDENT_ENDS,CS ; SET INITIAL RESIDENT END SEGMENT
135 ;
136 LES DI,DWORD PTR BUF.RH_PTRO; GET RH
137 CALL PARSER ;
138 JC INIT_1A ;
139 ;
140 MOV SI,OFFSET TABLE ; ADDRESS [ TABLE 1 ]
141 MOV CX,[SI].NUM_DEVICES ; CHECK THE NUMBER OF DEVICES SPECIFIED
142 CMP CX,ONE ; IF <> 1, THEN WE HAVE A PROBLEM...
143 JNE INIT_1A ; ERROR
144 MOV SI,[SI].DEVICE1_OFFSET ; MOVE FROM [ TABLE 1 ] TO [ TABLE 2 ]
145 MOV CX,[SI].NUM_ITEMS ;
146 LEA DI,HANDLE_ROUTINES ;
147 ;
148INIT_0: CALL CS:[DI] ; CALL ROUTINE WITH '[SI].OFFSET_LIST'
149 ;
150 JC INIT_1 ; ERROR IN ROUTINE (COMMAND_LINE)
151 INC SI ; ADVANCE POINTERS FOR CALL AND
152 INC SI ; THE OFFSET_LIST!
153 INC DI ;
154 INC DI ;
155 LOOP INIT_0 ;
156 ;
157 CALL INSTALL_ID ; CONFIGURE DEVICE DRIVER FOR MATCHED
158 JC INIT_1 ; DISPLAY ADAPTER!
159 ;
160 PUSH BX ;
161 MOV AH,15 ; PERFORM CALL TO GET ACTIVE MODE
162 INT 10H ;
163 MOV MODE_VALUE,AL ; SET IT IN THE INT10COM.INC ROUTINE
164 POP BX ;
165 ;
166 JUMP INIT_2 ;
167 ;
168INIT_1A: ;
169 PUSH AX ; WGR ;AN000;
170 PUSH DX ; WGR ;AN000;
171 MOV AX,ERROR_2 ; PARSING ERROR CONDITION ;AN000;
172 MOV DH,UTILITY_MSG_CLASS ; WGR ;AN000;
173 CALL ISSUE_MESSAGE ; WGR ;AN000;
174 POP DX ; WGR ;AN000;
175 POP AX ; WGR ;AN000;
176 ;
177INIT_1: XOR AX,AX ; CLEAR ERROR CODE TO BE RETURNED
178 LES DI,DWORD PTR BUF.RH_PTRO; GET RH
179 MOV RH.RH0_ENDO,AX ; OFFSET = 0
180 MOV RH.RH0_ENDS,CS ;
181 MOV RH.RH0_UNIT,AL ; SET 0 UNITS....
182 ;
183 CMP NOT_CPS_ID,OFF ; WGR did we find a non-CPS id? ;AN000;
184 JNE INIT_1B ; WGR yes....do not set an error ;AN000;
185 OR BUF.STATUS,103H ; SET INIT ERROR OCCURRED
186 JMP INIT_1C ; WGR ;AN000;
187 ;
188INIT_1B: ;
189 OR BUF.STATUS,AX ; WGR no error code..but do not load ;AN000;
190; mov RH.RH0_SYSINIT_MSG, 0 ;AN001;AN002; Ask IBMBIO not to show "Error in CONFIG.SYS lines= #" message
191INIT_1C: ;
192 PUSH DI ; 'DETACH' THE LINK LIST TO THE
193 MOV AX,-1 ; NEXT DEVICE NAME....THIS MAY not
194 LEA DI,DEV_HDR ; NEED TO BE RESET FOR INIT ERROR....
195 MOV CS:[DI],AX ;
196 MOV CS:[DI+2],AX ;
197 POP DI ;
198 STC ; SET CY TO INDICATE FNC DONE
199 POP DS ;
200 RET ;
201;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
202;
203; NOW MOVE ONTO INSTALLATION OF INT 2F HEX
204;
205; SINCE WE ARE GOING TO CHAIN THE INTERRUPT 2FH VECTOR,
206; IT IS IMPORTANT THAT THE lower LEVEL IS VALID! THIS
207; IS VERIFIED BY SEEING IF THE ORIGINAL VECTOR <> 0000:0000.
208;
209;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
210INIT_2: PUSH ES ;
211 XOR AX,AX ; SET ES TO INTERRUPT REGION
212 MOV ES,AX ;
213 MOV AX,ES:WORD PTR INT_2F_LOW;GET OFFSET VALUE OF INT 2F hex
214 MOV CS:ROM_INT_2F,AX ; &
215 MOV CX,ES:WORD PTR INT_2F_HI; ALSO THE SEGMENT VALUE
216 MOV CS:ROM_INT_2F+2,CX ;
217 OR AX,CX ; IS INT 2F hex = 0 ?
218 JNE INIT_6 ;
219 MOV AX,OFFSET ABORT ; YES: USE IRET AS THE LOWER CODE
220 MOV CS:ROM_INT_2F,AX ; REFER TO ABORT LABEL FOR IRET!
221 MOV AX,CS ;
222 MOV CS:ROM_INT_2F+2,AX ;
223INIT_6: CLI ; NEXT CHANGE THE ACTIVE INT 2F hex
224 MOV ES:WORD PTR INT_2F_LOW,OFFSET INT_2F_COM;
225 MOV ES:WORD PTR INT_2F_HI,CS; TO THE NEWLY LOADED CODE (INT2FCOM)
226 STI ; (with interrupts off, of course)
227;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
228;
229; READ THE INTERRUPT 1F HEX FOR INT10COM MODULE
230; THIS IS READ DURING INITIAL LOAD TO RECORD THE
231; DEFAULT VALUE. THE CPS SUPPORT WILL not CHANGE
232; THE INT 1F HEX VECTOR IF IT WAS CHANGED FROM
233; THIS VALUE....ie. GRAFTABL.COM or other HAS THE
234; VECTOR.
235;
236;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
237 MOV CX,ES:WORD PTR INT_1F_LOW; GET OFFSET OF INTERRUPT 1FH
238 MOV CS:ROM_INT_1F,CX ; &
239 MOV CS:OLD_INT_1F,CX ;
240 MOV CX,ES:WORD PTR INT_1F_HI; SEGMENT OF INTERRUPT 1FH
241 MOV CS:ROM_INT_1F+2,CX ;
242 MOV CS:OLD_INT_1F+2,CX ;
243 ;
244 MOV CX,ES:WORD PTR INT_44_LOW; GET OFFSET OF INTERRUPT 44H
245 MOV CS:ROM_INT_44,CX ; &
246 MOV CX,ES:WORD PTR INT_44_HI; SEGMENT OF INTERRUPT 44H
247 MOV CS:ROM_INT_44+2,CX ;
248;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
249;
250; NOW MOVE ONTO INSTALLATION OF INT 10 HEX
251; THE INT 10H VECTOR IS TAKEN TO MONITOR THE
252; MODE_SET INTERFACE (AH=0). THIS IS THE KEY
253; TO THE CPS SUPPORT MECHANISM...ie. THE ACTIVE
254; CODE PAGE IS LOADED EVERYTIME A MODE_SET OCCURS!
255;
256;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
257 MOV CX,ES:WORD PTR INT_10_LOW; GET OFFSET OF INT 10H
258 MOV CS:ROM_INT_10,CX ; &
259 MOV CX,ES:WORD PTR INT_10_HI; SEGMENT OF INT 10H
260 MOV CS:ROM_INT_10+2,CX ;
261 CLI ; INSTALL THE NEW INT 10H CODE
262 MOV ES:WORD PTR INT_10_LOW,OFFSET INT_10_COM;
263 MOV ES:WORD PTR INT_10_HI,CS;
264 STI ; (with interrupts off, of course)
265;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
266;
267; INSTALL THE DEVICE DRIVER CODE. THE RESIDENT_END
268; VALUE HAS BEEN SET TO:
269;
270; 1 - REDUCED_SUPPORT used when #DESG = 0 (CGA, MONO)
271; 2 - LAST DESIGNATED BUFFER - calculated by #DESG x #FONTS
272;
273;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
274 POP ES ; RESTORE THE ES REGISTER
275 LES DI,DWORD PTR BUF.RH_PTRO; GET REQUEST HEADER ADDRESS
276 MOV AX,RESIDENT_END ; GET OFFSET OF RESIDENT END
277 MOV RH.RH0_ENDO,AX ;
278INIT_7: MOV AX,RESIDENT_ENDS ; GET SEGMENT OF RESIDENT END
279 MOV RH.RH0_ENDS,AX ;
280 STC ; CY = 1, CALL FULLY SERVICED = ON
281 POP DS ;
282 RET ;
283INIT ENDP ;
284;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
285;
286; DEVICE NAME PARSING IS LIMITED ONLY TO 1 DEVICE NAME
287;
288;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
289DEVICE_NAMES DB "CON " ; ONLY ONE VALID NAME FOR DEVICE...
290L_DEVICE_NAMES EQU ($-DEVICE_NAMES) ;
291N_DEVICE_NAMES EQU ($-DEVICE_NAMES)/L_DEVICE_NAMES
292 ;
293HANDLE_DEVICE_NAME PROC ; [ TABLE 3 ]
294 PUSH CX ;
295 PUSH SI ;
296 ;
297 MOV SI,[SI].OFFSET_LIST ;
298 MOV CX,[SI] ; TEST THAT DEVICE NAME IS 8 BYTES
299 ;
300 CMP CX,L_DEVICE_NAMES ;
301 JNE H_DN_0 ; LEN(DEVICE_NAME) <> 8, THEN ERROR
302 ;
303 PUSH ES ;
304 PUSH DI ;
305 ;
306 PUSH CS ;
307 POP ES ;
308 LEA DI,DEVICE_NAMES ; SET COMPARE STRING TO "CON "
309 INC SI ;
310 INC SI ; ADVANCE SI TO POINT TO DEVICE_NAME
311 REPE CMPSB ; CHECK OUT THE 1 NAME.....
312 POP DI ;
313 POP ES ;
314 JNE H_DN_0 ;
315 ;
316 POP SI ;
317 POP CX ;
318 CLC ;
319 RET ;
320H_DN_0: POP SI ;
321 POP CX ;
322 CALL ISSUE_ERROR_1 ; ERROR OCCURRED...NOW ISSUE THE MESG
323 ;
324 STC ; TELL CALLER ABOUT ERROR!
325 RET ;
326HANDLE_DEVICE_NAME ENDP ;
327;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
328;
329; THIS ROUTINE IS USED TO VERIFY THE ADAPTER 'NAME' AGAINST
330; THE SUPPORTED ONES. IF A MATCH IS FOUND THEN THE APPROPRIATE
331; CONFIGURATION TABLE IS LOADED INTO RESIDENT MEMORY, ELSE THE
332; 'CY' FLAG IS SET AND AN ERROR IS ISSUED.
333;
334;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
335ID_NAMES DB "EGA " ;
336L_ID_NAMES EQU ($-ID_NAMES) ;
337 DB "EGA 8 " ; INTERNAL USE ONLY
338 DB "EGA 14 " ; INTERNAL USE ONLY
339 DB "EGA 14M " ; INTERNAL USE ONLY
340 DB "LCD " ;
341 DB "MONO " ;
342 DB "CGA " ;
343N_ID_NAMES EQU ($-ID_NAMES)/L_ID_NAMES
344 ;
345HANDLE_DEVICE_ID PROC ; [ TABLE 4 ]
346 PUSH DI ;
347 PUSH CX ;
348 PUSH SI ;
349 ;
350 CALL MODIFY_ID_NAME ; THIS CALL IS USED TO CONVERT THE
351 JC HDID_4 ; 'EGA' CLASS TYPE INTO SUB-CATEGORY'S
352 ;
353 MOV SI,[SI].OFFSET_LIST ;
354 MOV CX,[SI] ; TEST THAT ID_NAME IS 8 BYTES
355 CMP CX,L_ID_NAMES ;
356 JNE HDID_4 ;
357 ;
358 INC SI ;
359 INC SI ; ADVANCE SI TO POINT TO ID_NAME
360 ;
361 LEA DI,ID_NAMES ; SET COMPARE STRING TO "DEVICEID"
362 MOV CX,N_ID_NAMES ;
363 ;
364HDID_0: PUSH DI ; SAVE REGISTERS BETWEEN PASSES
365 PUSH ES ;
366 PUSH SI ;
367 PUSH CX ;
368 ;
369 PUSH CS ;
370 POP ES ;
371 MOV CX,L_ID_NAMES ;
372 REPE CMPSB ; TEST NAME (ALL 8 BYTES) AGAINST
373 ; THE NEXT NAME!
374 POP CX ;
375 POP SI ;
376 POP ES ;
377 POP DI ;
378 JE HDID_1 ;
379 ADD DI,L_ID_NAMES ;
380 LOOP HDID_0 ; TRY ALL ENTRIES FOR A MATCH...
381HDID_4: ;
382 CMP NOT_CPS_ID,ON ; WGR did we find a non-CPS id? ;AN000;
383 JNE HDID_5 ; WGR no...not the problem..continue ;AN000;
384 STC ; WGR yes...so no message...but.. ;AN000;
385 JMP HDID_6 ; WGR set error for return ;AN000;
386 ;
387HDID_5: ; WGR ;AN000;
388 POP SI ; IF NONE WERE FOUND, THEN ERROR...
389 POP CX ;
390 POP DI ;
391 ;
392 DEC SI ; BACK TO SUB-TYPE ID AND ISSUE
393 DEC SI ; THE ERROR MESSAGE.
394 CALL ISSUE_ERROR_1 ;
395 STC ; INFORM CALLER ABOUT THE ERROR!
396 RET ;
397HDID_1: SUB CX,N_ID_NAMES ; ID NAME HAS BEEN FOUND
398 NEG CX ; NORMALIZE CX FOR TABLE INDEXING!!
399 ;
400 MOV DEVICE_ID_INDEX,CX ;
401 CLC ;
402HDID_6: ; WGR ;AN000;
403 POP SI ;
404 POP CX ;
405 POP DI ;
406 RET ;
407HANDLE_DEVICE_ID ENDP ;
408;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
409;
410; THIS ROUTINE CHECKS THE HARDWARE CP VALUE (if specified)!
411; THE VALUE OF THE HARDWARE CP IS NOT VERIFIED, ALLOWING
412; FUTURE ADAPTERS WITH non-437 HARDWARE PAGES.
413;
414; IF #HDWR_CP > 1 (FOR ANY DEVICES IN RELEASE 1.00) THEM
415; ERROR
416; ELSE
417; RECORD VALUE (1 WORD)
418; ENDIF
419;
420;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
421HANDLE_HDWR_CP PROC ; [ TABLE 5 ]
422 PUSH CX ;
423 PUSH SI ;
424 MOV SI,[SI].OFFSET_LIST ;
425 MOV CX,[SI] ; GET THE NUMBER OF HDWR_CP'S
426 CMP CX,CPD_HDWR_N_MAX ; TEST IF GREATER THAN MAX ALLOWED!
427 JA H_HC_0 ;
428 ;
429 CMP CX,1 ; CHECK THE NUMBER OF HDWR CP's
430 JA H_HC_0 ; IF MORE THAN ONE..THEN WE HAVE A
431 ; PROBLEM....TELL USER!
432 PUSH CX ;
433 MOV CX,[SI+2] ; GET THE ACTUAL HARDWARE CP
434 CMP CX,-1 ; IS IT INVALID???
435 POP CX ;
436 JE H_HC_0 ;
437 ;
438 PUSH ES ;
439 PUSH DI ;
440 ;
441 PUSH CS ;
442 POP ES ;
443 LEA DI,CPD_HDWR_N ; POINT DESTINATION TO INTERNAL TABLE
444 INC CX ; ALSO ACCOUNT FOR COUNT N
445 REP MOVSW ; SI ALREADY POINTS TO 'N,CP1,CP2..'
446 ;
447 POP DI ;
448 POP ES ;
449 ;
450 POP SI ;
451 POP CX ;
452 CLC ;
453 RET ;
454H_HC_0: POP SI ;
455 POP CX ;
456 ;
457 PUSH SI ; HARDWARE CP IN ERROR, PUT 'SI'
458 DEC SI ; BACK TO SUB-TYPE ID AND ISSUE
459 DEC SI ; THE ERROR MESSAGE.
460 DEC SI ; BACK TO SUB-TYPE ID AND ISSUE
461 DEC SI ; THE ERROR MESSAGE.
462 CALL ISSUE_ERROR_1 ;
463 POP SI ;
464 STC ;
465 RET ;
466HANDLE_HDWR_CP ENDP ;
467;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
468;
469; THIS ROUTINE CHECKS THE LAST PARAMETER IN THE COMMAND LINE
470; IT CONTAINS THE INFORMATION FOR THE NUMBER OF DESIGNATES AND
471; AND THE NUMBER OF DISPLAY FONTS TO BE USED. ONLY MINIMAL
472; ERROR CHECKING OCCURS HERE.
473;
474; THE FOLLOWING IS A LIST OF THE POSSIBLE VALUE IN 'OFFSET_LIST'
475; ==============================================================
476;
477; COND: # 1 # 2 # 3
478; -----------------|--------------------|-----------------
479; TABLE: DW 0 DW 1 DW 2
480; DW ? DW n DW n
481; DW ? DW ? DW m
482;
483; DETAILS: no parameters only #desg both #desg
484; specified. specified & #font specified
485;
486; RESULT: #DESG = 0 #DESG = n #DESG = n
487; #FONT = 0 (maximum) #FONT = 0 (maximum) #FONT = m
488;
489;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
490HANDLE_DESG_CP PROC ; [ TABLE 6 ]
491 PUSH AX ;
492 PUSH CX ;
493 PUSH DX ;
494 PUSH SI ;
495 MOV SI,[SI].OFFSET_LIST ;
496 ;
497 MOV CX,-1 ; SET #DESG DEFAULT = 1
498 MOV DX,-1 ; SET #FONT DEFAULT = 0 (maximum)
499 MOV AX,[SI] ; GET DESCRIPTOR FOR PARAMETER LIST
500 ;
501 OR AX,AX ; CHECK FOR <CONDITION #1>
502 JE H_DC_2 ; SET DRIVER TO DEFAULTS
503 ;
504 MOV CX,[SI+2] ;
505 CMP CX,CPD_DESG_N_MAX ; CHECK IF THIS VALUE IS ABOVE MAXIMUM!
506 JA H_DC_5 ;
507 CMP AX,ONE ; CHECK FOR <CONDITION #2>
508 JE H_DC_2 ; SET DRIVER TO DEFAULTS
509 ;
510 MOV DX,[SI+4] ; HAS TO BE <CONDITION #3>
511 ;
512H_DC_2: MOV CPD_DESG_N,CX ; RECORD THE #DESG & THE
513 MOV CPD_FONTS_N,DX ; THE #FONT FROM THE SET VALUES
514 ;
515 POP SI ;
516 POP DX ;
517 POP CX ;
518 POP AX ;
519 CLC ;
520 RET ;
521H_DC_5: POP SI ;
522 POP DX ;
523 POP CX ;
524 PUSH DX ; WGR ;AN000;
525 MOV AX,ERROR_3 ; WGR ;AN000;
526 MOV DH,UTILITY_MSG_CLASS ; WGR ;AN000;
527 CALL ISSUE_MESSAGE ; WGR ;AN000;
528 POP DX ; WGR ;AN000;
529 POP AX ; WGR ;AN000;
530 STC ;
531 RET ;
532HANDLE_DESG_CP ENDP ;
533;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
534;
535; INSTALL_ID
536;
537; THIS ROUTINE PERFORMS THE DISPLAY_CONFIG TABLE
538; LOAD WHICH IS USED FOR THE REMAINDER OF THE SESSION
539;
540; INPUT:
541; DEVICE_ID_INDEX = INDEX TO LIST OF SUPPORTED DEVICES
542;
543;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
544INSTALL_ID PROC ; ROUTINE TO INSTALL INFO FOR DEVICE
545 CALL INSTALL_TABLE ;
546 JNC INSI_3 ;
547 ;
548 PUSH SI ;
549 MOV SI,OFFSET TABLE ; ADDRESS [ TABLE 1 ]
550 MOV SI,[SI].DEVICE1_OFFSET ; MOVE FROM [ TABLE 1 ] TO [ TABLE 2 ]
551; INC SI ;
552; INC SI ;
553 CALL ISSUE_ERROR_1 ;
554 POP SI ;
555 STC ;
556INSI_3: RET ;
557INSTALL_ID ENDP ;
558;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
559;
560;
561;
562;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
563INSTALL_TABLE PROC ;
564 PUSH AX ;
565 PUSH CX ;
566 PUSH DX ;
567 PUSH DI ;
568 PUSH SI ;
569 PUSH DS ;
570 PUSH ES ;
571 ;
572 PUSH CS ;
573 POP DS ;
574 PUSH CS ;
575 POP ES ;
576 ;
577 MOV AX,DEVICE_ID_INDEX ;
578 MOV CX,DC_ENTRY ;
579 MUL CX ;
580 LEA CX,DISPLAY_CONFIG ;
581 ADD CX,AX ;
582 ADD CX,8 ; ACCOUNT FOR 8 CHARACTER NAME
583 MOV DI,CX ;
584 ;
585 CALL INSTALL_MEMORY ;
586 JC IT_5 ;
587 ;
588 INC DI ; ACCOUNT FOR ENCODED MEMORY BYTES
589 MOV SI,[DI] ;
590 PUSH DI ;
591 MOV CX,NUM_MODES ;
592 LEA DI,LOAD_MECH ; DUPLICATE LOAD_MECH TABLE
593 REP MOVSB ;
594 POP DI ;
595 MOV SI,[DI+2] ;
596 MOV CX,NUM_MODES ;
597 LEA DI,FONT_SIZE ; DUPLICATE FONT_SIZE TABLE
598 REP MOVSB ;
599 CLC ;
600 ;
601IT_5: POP ES ;
602 POP DS ;
603 POP SI ;
604 POP DI ;
605 POP DX ;
606 POP CX ;
607 POP AX ;
608 RET ;
609INSTALL_TABLE ENDP ;
610;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
611;
612; INSTALL MEMORY
613;
614; ENTRY:
615; ES : DI = POINTER TO ENCODED SCAN LINES ALLOWED
616; EXIT:
617; CREATION OF CPD_FONT_PNTER TABLE
618; CALCULATION OF RESIDENT_END VALUE
619;
620;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
621MEMORY_SIZE_INDEX LABEL WORD ; THIS CORRESPONDS TO THE MEM RQMENTS
622 DW 0,0,0,0 ;
623 DW 19*256+6 ;
624 DW 16*256+6 ;
625 DW 14*256+6 ;
626 DW 8*256+6 ; BYTE IN 'TABLES.SRC'.
627NUM_MEMORY_SIZE EQU ($-MEMORY_SIZE_INDEX)/2
628 ;
629INSTALL_MEMORY PROC ;
630 PUSH AX ;
631 PUSH BX ;
632 PUSH CX ;
633 PUSH DX ;
634 PUSH SI ;
635 PUSH DI ;
636 PUSH ES ;
637 ;
638 PUSH CS ;
639 POP ES ; SET EXTRA SEGMENT
640 ;
641 MOV AL,[DI] ; GET ENCODED VALUE FROM TABLE
642 CALL ASK_BIOS_SCAN_LINES ; IF PERMITTED...BIOS KNOWS SCAN LINES
643 ;
644IM_0Y: PUSH AX ;
645 PUSH CX ;
646 MOV CX,NUM_MEMORY_SIZE ; COUNT THE NUMBER OF FONTS POSSIBLE
647 XOR DX,DX ; DX (INIT=0) WILL = #DIF FONT TYPES
648IM_0A: SAL AL,1 ;
649 JNC IM_0B ;
650 INC DX ;
651IM_0B: LOOP IM_0A ;
652 POP CX ;
653 POP AX ;
654 ; ELSE, STAY WITH INITIAL VALUE!!!!
655 MOV CX,CPD_FONTS_N ; FIRST CHECK TO SEE IF #FONTS>TYPE
656 CMP CX,DX ; FIND OUT IF > ALLOWED...
657 JBE IM_0P ; IF NOT, THEN
658 MOV CX,-1 ; SET BACK TO DEFAULT VALUE
659 ;
660IM_0P: CMP CX,-1 ; CHECK FOR FONTS = DEFAULT VALUE
661 JNE IM_0R ;
662 MOV CPD_FONTS_N,DX ; SET TO THE MAXIMUM FOR THE HARDWARE
663 ;
664IM_0R: MOV CX,CPD_DESG_N ;
665 CMP CX,-1 ; CHECK FOR #DESG = DEFAULT VALUE
666 JNE IM_0T ;
667 MOV CPD_DESG_N,DX ; DX = #FONTS ALLOWED FOR THIS DEVICE
668 OR DX,DX ; TEST IF > 0 ?
669 JZ IM_0T ;
670 MOV CPD_DESG_N,ONE ;
671 ;
672IM_0T: CMP CPD_DESG_N,ZERO ; TEST VALUE OF DESIGNATED CP's
673 JE IM_8 ; IF THE #DESG=0, THEN REDUCED SUPPORT
674 ;
675 CMP CPD_FONTS_N,ZERO ; TEST VALUE OF FONTS, (knowing DESG>0)
676 JE IM_9 ; ERROR OCCURRED!!!
677 ;
678IM_0: MOV BX,CPD_FONTS_N ; BX=#FONTS REQUESTED
679 MOV CX,NUM_MEMORY_SIZE ; CX = 8 BITS
680 LEA SI,MEMORY_SIZE_INDEX ; SI SETUP FOR MEMORY VALUES, CX=#FONTS
681 XOR DX,DX ; DX=buffer size (INIT=0)
682IM_1: SAL AL,1 ; TEST NEXT BIT FOR ACTIVATION
683 JNC IM_2 ; IF NOT ON...THEN IGNORE
684 OR BX,BX ; TEST IF MORE FONTS REQUESTED...
685 JE IM_2 ;
686 DEC BX ; LESS #FONTS REQUESTED BY ONE
687 ADD DX,[SI] ; AND ADD THE LARGEST BUFFER SIZE ON
688IM_2: INC SI ; ADVANCE MEMORY INDEX POINTER
689 INC SI ; ADVANCE MEMORY INDEX POINTER
690 LOOP IM_1 ;
691 ;
692 MOV AX,DX ; SET AX=completed buffer size
693 ;
694IM_5: MOV CX,CPD_DESG_N ; NOW, SETUP POINTERS & CALC FONT BUFFER
695 LEA SI,CPD_FONT_PNTER ; FIND THE DATA_POINTERS
696 MOV DX,RESIDENT_END ; GET LAST USEABLE ADDRESS
697 ;
698 PUSH BX ; SAVE VALUE OF BX FOR RESTORATION...
699 MOV BX,ES ; SET ES TO BX SO PNTER IS 'BX:DX'
700IM_6: PUSH DX ; SET SEGMENT:OFFSET OF BUFFER 'X'
701 SHR DX,1 ; STRIP OFF LOW 4 BITS OF OFFSET....
702 SHR DX,1 ; TO TOP OFF THE 'ES' SEGMENT REGISTER
703 SHR DX,1 ;
704 SHR DX,1 ;
705 ADD BX,DX ; AND MINIMIZE VALUE OF OFFSET
706 POP DX ;
707 AND DX,000FH ; THIS IS DONE TO PREVENT STRADDLING
708 MOV [SI],DX ; A SEGMENT BOUNDARY WITH THE DATA BUF
709 MOV [SI+2],BX ;
710 ;
711 ADD SI,4 ;
712 ADD DX,AX ;
713 LOOP IM_6 ;
714 ;
715IM_7A: MOV RESIDENT_END,DX ; SET FINAL OFFSET & SEGMENT TO
716 MOV RESIDENT_ENDS,BX ; TERMINATE THE 'INIT' WITH
717 POP BX ;
718 CLC ;
719 JUMP IM_A ;
720 ;
721IM_8: MOV DX,REDUCED_SUPPORT ; SET POINTER TO REDUCED SUPPORT
722 PUSH BX ;
723 MOV BX,ES ;
724 JUMP IM_7A ;
725 ;
726IM_9: STC ;
727IM_A: POP ES ;
728 POP DI ;
729 POP SI ;
730 POP DX ;
731 POP CX ;
732 POP BX ;
733 POP AX ;
734 RET ;
735INSTALL_MEMORY ENDP ;
736;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; WGR
737; ; WGR
738; ISSUE MESSAGE ; WGR
739; ; WGR
740; THIS ROUTINE IS USED TO PERFORM THE MESSAGE ; WGR
741; RETRIVER. ; WGR
742; ; WGR
743; INPUT: ; WGR
744; AX = MESSAGE NUMBER ; WGR
745; DH = MESSAGE CLASS ; WGR
746; ; WGR
747; OUTPUT: ; WGR
748; none ; WGR
749; ; WGR
750;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; WGR
751ISSUE_MESSAGE PROC ; ; WGR ;AN000;
752 PUSH DS ; WGR ;AN000;
753 PUSH BX ; WGR ;AN000;
754 PUSH CX ; WGR ;AN000;
755 PUSH CS ; WGR ;AN000;
756 POP DS ; WGR ;AN000;
757 MOV BX,STDERR ; WGR ;AN000;
758 XOR CX,CX ; WGR ;AN000;
759 XOR DL,DL ; WGR ;AN000;
760 CALL SYSDISPMSG ; WGR ;AN000;
761 POP CX ; WGR ;AN000;
762 POP BX ; WGR ;AN000;
763 POP DS ; WGR ;AN000;
764 RET ; WGR ;AN000;
765ISSUE_MESSAGE ENDP ;
766;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
767;
768; ISSUE_ERROR_1
769;
770; THIS IS USED TO CONSTRUCT AND OUTPUT THE ERROR MESSAGE;
771;
772; DEVICE_ID + 'code page driver cannot be initialized'
773;
774; THE DEVICE_ID IS PULLED FROM THE COMMAND_PARSER. IF ONE
775; IS NOT DEFINED OR UNREADABLE, THEN A CONDENSED MESSAGE
776; WITHOUT THE DEVICE_ID IS USED.
777;
778;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
779
780SUB_SIZE EQU 11 ; WGR sublist size ;AN000;
781LEFT_ASCIIZ EQU 00010000B ; WGR left-aligned asciiz string ;AN000;
782UNLIMITED EQU 0 ; WGR unlimited message size. ;AN000;
783 ; WGR ;AN000;
784SUBLIST LABEL DWORD ; WGR ;AN000;
785 DB SUB_SIZE ; WGR ;AN000;
786 DB 0 ; WGR ;AN000;
787MSG_PTR DW ? ; WGR ;AN000;
788MSG_SEG DW SEG CODE ; WGR ;AN000;
789 DB 1 ; WGR ;AN000;
790 DB LEFT_ASCIIZ ; WGR ;AN000;
791 DB UNLIMITED ; WGR ;AN000;
792 DB 1 ; WGR ;AN000;
793 DB " " ; WGR ;AN000;
794 ;
795ISSUE_ERROR_1 PROC ;
796 PUSH AX ;
797 PUSH BX ; WGR ;AN000;
798 PUSH CX ;
799 PUSH DX ;
800 PUSH SI ;
801 ;
802 MOV SI,[SI].OFFSET_LIST ; POINT TO NAME TO PRINTOUT
803 INC SI ;
804 INC SI ;
805 ;
806 PUSH SI ;
807 MOV CX,8 ; MAX LENGTH OF NAME
808 MOV AL,' ' ;
809IN_0: CMP [SI],AL ;
810 JBE IN_3 ;
811 INC SI ;
812 LOOP IN_0 ;
813IN_3: MOV AL,ZERO ; SET 0 TO TERMINATE ASCII STRING
814 MOV [SI],AL ; OVERWRITE LAST BYTE - THIS AFFECTS
815 ; DATA IMMEDIATELY AFTER NAME. NOT
816 ; IMPORTANT SINCE FOLLOWING DATA IS IN
817 ; ERROR
818 POP SI ; GET START OF NAME
819 MOV MSG_PTR,SI ; WGR ;AN000;
820 MOV MSG_SEG,CS ; WGR ;AN000;
821 MOV AX,ERROR_1 ; WGR ;AN000;
822 MOV BX,STDERR ; WGR ;AN000;
823 MOV CX,ONE ; WGR ;AN000;
824 XOR DL,DL ; WGR ;AN000;
825 LEA SI,SUBLIST ; WGR ;AN000;
826 MOV DH,UTILITY_MSG_CLASS ; WGR ;AN000;
827 CALL SYSDISPMSG ; WGR ;AN000;
828 ; WGR ;AN000;
829 POP SI ;
830 POP DX ;
831 POP CX ;
832 POP BX ; WGR ;AN000;
833 POP AX ;
834 RET ;
835ISSUE_ERROR_1 ENDP ;
836;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
837;
838; MODIFY_ID_NAME
839;
840; THE USER NEED ONLY SPECIFY THE CLASS OF THE DISPLAY ADAPTER.
841; THE AVAILABLE DESCRIPTIONS ARE 'EGA, LCD, CGA, and MONO'.
842; THIS ROUTINE IS USED TO FURTHER DETAIL WHAT TYPE OF 'EGA'
843; CLASS. THIS IS USED SPECIFICALLY FOR THE EGA (1501200) ADAPTER
844; AND ITS MANY CONFIGURATION SETTINGS.
845;
846;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
847MODIFY_NAME DB "EGA " ;
848NEW_NAME DB "EGA 14M " ;
849 DB "EGA 14 " ;
850 DB "EGA 8 " ;
851NUM_NEW_NAME EQU ($-NEW_NAME)/L_ID_NAMES
852 ;
853NOT_CPS_ID DB OFF ; WGR device id does not support CPS ;AN000;
854 ;
855MODIFY_ID_NAME PROC ;
856 PUSH DI ;
857 PUSH AX ;
858 PUSH BX ;
859 PUSH CX ;
860 PUSH SI ;
861 ;
862 MOV SI,[SI].OFFSET_LIST ; GET START OF ID_NAME
863 CMP WORD PTR [SI],EIGHT ; WGR ;AN000;
864 JE MIN_00 ; WGR ;AN000;
865 CALL GET_DEVICE_ID ; WGR ;AN000;
866 JNC MIN_00 ; WGR CPS id?...yes continue ;AN000;
867 MOV NOT_CPS_ID,ON ; WGR no....set flag ;AN000;
868 JMP MIN_4 ; WGR exit with carry set ;AN000;
869MIN_00: ; WGR ;AN000;
870 INC SI ;
871 INC SI ; ADVANCE SI TO POINT TO ID_NAME
872 ;
873 PUSH SI ; MOVE A COPY OF THE NAME TO CPD_CLASS
874 PUSH ES ; BEFORE IT IS Revised....
875 PUSH CX ;
876 PUSH CS ;
877 POP ES ;
878 MOV CX,L_ID_NAMES ;
879 LEA DI,CPD_CLASS ;
880 REP MOVSB ;
881 POP CX ;
882 POP ES ;
883 POP SI ;
884 ;
885 LEA DI,MODIFY_NAME ; SET COMPARE STRING TO "EGA "
886 ;
887 PUSH DI ; SAVE REGISTERS BETWEEN PASSES
888 PUSH ES ;
889 PUSH SI ;
890 ;
891 PUSH CS ;
892 POP ES ;
893 MOV CX,L_ID_NAMES ;
894 REPE CMPSB ; TEST NAME (ALL 8 BYTES) AGAINST
895 ; THE NEXT NAME!
896 POP SI ;
897 POP ES ;
898 POP DI ;
899 JNE MIN_1 ; THIS MAY NOT BE THE MATCH....
900 ;
901 CALL ASK_BIOS_FONT_SIZE ; CHECK IF THIS IS AN ADVANCED EGA?
902 JNC MIN_1 ; IF CY=0, THEN ADVANCED...ELSE,
903;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
904;
905;
906;
907;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
908 MOV AH,12H ; SET FOR ALTERNATE SELECT, EGA INFO
909 MOV BL,10H ;
910 INT 10H ; ASK BIOS FOR INFORMATION
911 CMP BL,10H ; (CHECK IF THIS CALL IS INVALID?)
912 JE MIN_4 ; IF BL UNCHANGED, THEN NOT EGA!
913 ; ELSE, CL=SWITCH SETTINGS
914 MOV AX,L_ID_NAMES ; SET DEFAULT SUB-TYPE TO 1ST ENTRY
915 CMP BH,ONE ; IF ZERO THEN COLOUR, IF ONE THEN MONO
916 JE MIN_0 ;
917 ADD AX,L_ID_NAMES ; MOVE TO NEXT SUB-TYPE
918 AND CL,0FH ; STRIP OFF LEADING NIBBLE FROM SWITCH
919 CMP CL,9 ; SETTINGS AND TEST FOR 5154 CONFIG
920 JE MIN_0 ;
921 CMP CL,THREE ;
922 JE MIN_0 ; IF NOT 5154, 5151; THEN MUST BE 5153!
923 ADD AX,L_ID_NAMES ;
924 ;
925MIN_0: ADD DI,AX ; SET UP INDEX REGISTER TO NEW SUBTYPE
926 PUSH DS ;
927 PUSH ES ;
928 ;
929 PUSH CS ;
930 POP ES ;
931 XCHG SI,DI ; SWITCH SOURCE-DESTINATION REGISTERS
932 MOV CX,L_ID_NAMES ;
933 REP MOVSB ; MOVE IN NEW STRING
934 POP ES ;
935 POP DS ;
936 ;
937MIN_1: CLC ;
938 JUMP MIN_5 ;
939MIN_4: STC ;
940MIN_5: POP SI ; IF NOT FOUND, THEN ERROR...
941 POP CX ;
942 POP BX ;
943 POP AX ;
944 POP DI ;
945 RET ;
946MODIFY_ID_NAME ENDP ;
947;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
948;
949;
950;
951;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
952.XLIST
953MSG_SERVICES <MSGDATA> ; WGR ;AN000;
954MSG_SERVICES <DISPLAYmsg,LOADmsg,CHARmsg> ; WGR ;AN000;
955MSG_SERVICES <DISPLAY.CL1> ; WGR ;AN000;
956MSG_SERVICES <DISPLAY.CL2> ; WGR ;AN000;
957MSG_SERVICES <DISPLAY.CLA> ; WGR ;AN000;
958.LIST ;
959 ;
960include msgdcl.inc ;
961 ;
962CODE ENDS ;
963 END ;
964;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
965
diff --git a/v4.0/src/DEV/DISPLAY/INT10COM.INC b/v4.0/src/DEV/DISPLAY/INT10COM.INC
new file mode 100644
index 0000000..6931ca6
--- /dev/null
+++ b/v4.0/src/DEV/DISPLAY/INT10COM.INC
@@ -0,0 +1,1029 @@
1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2;
3; INT10COM.INC
4;
5; THESE FOLLOWING ROUTINES ARE USED TO LOCATE AND LOAD
6; THE FONTS FOR THE SPECIFIED CODE PAGE. IT IS DESIGNED
7; TO WORK ON THE FOLLOWING DISPLAY ADAPTERS;
8;
9; - EGA 1501200 (minimal configuration) no expansion card needed
10; - PC Convertible (with LCD display adapter)
11; - plus literally a half-dozen code-named unreleased IBM products
12;
13; SUPPORT FOR THE 'CGA' (Colour Graphics Adapter) and
14; 'MONO' (Monochrome/Printer Adapter) IS LIMITED TO THE
15; HARDWARE CODE PAGE ONLY (ie. not soft-loadable devices).
16;
17; PSEUDO CODE:
18; ===========
19; INT_10_PROC STARTS
20; GET MODE (AL=?)
21; CALL rom_int_10
22; GET FONT_SIZE
23; if FONT_SIZE <> 0FFH
24; if FONT_SIZE = available
25; GET LOAD_MECHANISM
26; if LOAD_MECHANISM = BIOS technique
27; CALL LOAD_BIOS_CHAR
28; endif
29; if LOAD_MECHANISM = VECTOR technique
30; CALL LOAD_VECTOR_CHAR
31; endif
32; endif
33; endif
34; IRET
35; INT_10_PROC ENDS
36;
37; (C)Copyright 1988 Microsoft
38;
39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
40IF1 ;
41 %OUT . �INT10COM.INC�
42ENDIF
43
44;Modification history *********************************************************
45;AN001; P1497 Cursor disappearance problem after codepage switch 10/9/87 J.K.
46;******************************************************************************
47 PUBLIC MODE_VALUE ;
48 PUBLIC ROM_INT_10 ;
49 PUBLIC ROM_INT_1F ;
50 PUBLIC OLD_INT_1F ;
51 PUBLIC ROM_INT_44 ;
52 PUBLIC INT_10_COM ;
53 PUBLIC ASK_BIOS_FONT_SIZE ;
54 PUBLIC ASK_BIOS_SCAN_LINES ;
55 ;
56ROM_INT_10 DW ? ; Int 10H vector offset
57 DW ? ; Int 10H vector segment
58ROM_INT_1F DW ? ; Int 1FH vector offset
59 DW ? ; Int 1FH vector segment
60OLD_INT_1F DW ? ; OLD Int 1FH vector offset
61 DW ? ; OLD Int 1FH vector segment
62ROM_INT_44 DW ? ; Int 44H vector offset
63 DW ? ; Int 44H vector segment
64MODE_VALUE DB ? ; VALUE OF AL DURING INT 10H (AH=0)
65BYTES_PER_CHAR DB ? ; VALUE OF BYTES/CHARACTER IN MODES
66LOAD_MECHANISM DB ? ; SUPPORT SCHEME FOR ACTIVE MODE
67CHARACTER_SOURCE DB ? ; FLAG TO INDICATE: 0 = HDWR
68 ; 1 = DESG
69INVALID_MODE EQU 0FFH ;
70MASK_BIOS_LOAD EQU 00000011b ;
71MASK_VECTOR_LOAD EQU 00110000B ;
72MODE_MASK EQU 01111111B ; GHG Emulator Problem
73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
74;
75; CONFIGURATION TABLES FOR CHARACTER LOADING
76;
77; TABLE WILL BE FILLED IN BY INIT.ASM
78;
79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
80 PUBLIC LOAD_MECH ;
81LOAD_MECH LABEL BYTE ; RESERVE 32 MODE SETTINGS
82 DB 32 DUP(?) ; REFER TO TABLES.INC FOR DETAILS
83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
84;
85; CONFIGURATION TABLES FOR CHARACTER SIZES
86;
87; TABLE WILL BE FILLED IN BY INIT.ASM
88;
89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
90 PUBLIC FONT_SIZE ;
91FONT_SIZE LABEL BYTE ; RESERVE 32 MODE SETTINGS
92 DB 32 DUP(?) ; REFER TO TABLES.INC FOR DETAILS
93NUM_FONT_SIZES EQU ($-FONT_SIZE) ;
94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
95;
96; INTERRUPT 10H SUPPORT CODE
97;
98; THE INIT ROUTINE WILL INSTALL THIS CODE INTO THE
99; INTERRUPT 10H VIDEO BIOS CALL. IT CHAINS TO THE
100; LOWER LEVEL (usually BIOS for Device Drivers).
101;
102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
103INT_10_COM PROC FAR ;
104 STI ;
105 OR AH,AH ; TEST THE SUBFUNCTION CALL=0
106 JE INT_1 ; RESERVED FOR THE COM PATH!
107 JMP DWORD PTR CS:ROM_INT_10 ;
108 ;
109INT_1: ;
110 PUSHF ; PREPARE FOR IRET!
111 CALL DWORD PTR CS:ROM_INT_10 ; call routine to handle the command
112 PUSH AX ;
113 PUSH BX ; WGR ;AN000;
114 MOV AH,GET_MODE ; WGR get actual mode set ;AN000;
115 PUSHF ; WGR ;AN000;
116 CALL DWORD PTR CS:ROM_INT_10 ; WGR ;AN000;
117 MOV CS:MODE_VALUE,AL ; SAVE MODE_VALUE BEFORE CALL
118 and CS:MODE_VALUE,mode_mask ; GHG Emulator Problem.....
119 POP BX ; WGR ;AN000;
120 ;
121 CALL TEST_CP ; FIND OUT IF CP CAN BE SUPPORTED?
122 JNC INT_2 ;
123 ;
124 MOV CS:CHARACTER_SOURCE,0 ; IF AN ERROR OCCURRED IN FINDING THE
125 MOV AL,INTER_1FH ; FONT DATA INFORMATION...THEN THE
126 CALL VECTOR_LOAD ; INTERRUPT 1F hex VECTOR MUST BE
127 JUMP INT_3 ; SET TO THE HDWR CP - ELSE WRONG
128 ; DATA MAY BE DISPLAYED
129INT_2: MOV CS:SETMODE_FLAG,OFF ; WGR ;AN000;
130 CALL INVOKE_DATA ; IF SO, THEN LOAD THE DATA
131INT_3: POP AX ;
132 ;
133 IRET ;
134INT_10_COM ENDP ;
135;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
136;
137; SET BLOCK SPECIFIER = 0
138;
139; THIS IS USED TO ACTIVATE BLOCK = 0 FONT. THIS PERFORMS
140; DIFFERENT OPERATIONS ON VARIOUS DISPLAY ADAPTERS. THE
141; RESULTS OF WHICH ARE TO ACTIVATE THE DESIGNATED FONT.
142;
143; INPUT:
144; none
145; OUTPUT:
146; none
147;
148;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
149SET_BLOCK_SP0 PROC ;
150 PUSH AX ;
151 PUSH BX ;
152 MOV AX,1103H ; SET BLOCK SPECIFIER
153 MOV BL,ZERO ; CHAR GEN BLOCK SPECIFIER
154 INT 10H ; PERFORM CALL...
155 POP BX ;
156 POP AX ;
157 RET ;
158SET_BLOCK_SP0 ENDP ;
159;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
160;
161; FIND_FONT
162;
163; THE ROUTINE STARTS WITH THE FONT DATA POINTER, AND
164; TRIES TO FIND THE FONT RESOLUTION THAT IS NEEDED.
165; THIS FONT RESOLUTION IS BASED ON THE PRESENT SCREEN
166; MODE WHICH IS ACTIVE.
167;
168; INPUT:
169; ES : DI points to beginning
170; of font data
171; OUTPUT:
172; ES : DI points to font data
173; for needed resolution
174; CY = 0 if found
175; = 1 if not found
176;
177; DS = CS assumed
178;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
179FIND_FONT PROC ;
180 PUSH AX ;
181 PUSH CX ;
182 PUSH DX ;
183 ;
184 MOV CX,CPD_FONTS_N ; GET NUMBER OF FONT STYLES
185FF_0: MOV AH,BYTES_PER_CHAR ; GET BYTES_PER_CHAR FOR COMPARISON
186 ;
187 MOV AL,ES:[DI] ; GET #ROWS OF POINTED DATA
188 CMP AL,AH ; COMPARE BYTES_PER_CHAR AGAINST #ROWS
189 JE FF_3 ; IF MATCHED...THEN ADJUST ES:DI (CY=0)
190 ;
191 PUSH CX ; ELSE, MOVE ES:DI TO NEXT FONT START
192 MOV CX,ES:[DI+4] ; GET count OF CHARACTERS IN LIST
193 XOR AH,AH ; PREPARE AX FOR MULT
194 MUL CX ; CALCULATE DELTA TO NEXT FONT START
195 POP CX ;
196 ;
197 ADD AX,SIX ; ADD FONT STYLE HEADER OF SIX BYTES
198 ADD DI,AX ; ADJUST THE DI POINTER
199 ; THERE CAN BE NO CARRY DUE TO STRUCTURE
200 LOOP FF_0 ; OF FONT DATA (ie. no straddling)
201 STC ;
202 JUMP FF_4 ;
203FF_3: ADD DI,SIX ; POINT TO VERY START OF DATA
204 CLC ; SET FLAG TO OK!
205FF_4: POP DX ;
206 POP CX ;
207 POP AX ;
208 RET ;
209FIND_FONT ENDP ;
210;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
211;
212; BIOS_LOAD
213;
214; THIS CALL IS USED TO LOAD THE ACTIVE CP. IT LOADS
215; THE ACTIVE CP WHETHER IT IS DESIGNATED OR HDWR. THE
216; ACTUAL LOADING OF THE FONT IS PERFORMED BY THE 'EGA CLASS'
217; BIOS ROUTINES (different for some adapters).
218;
219; INPUT:
220; AL = ? load mechanism
221;
222; 7 6 5 4 3 2 1 0
223; 0 0 0 0 0 0 x x
224; � ��� 1 - AX=1100H
225; ����� 1 = AX=1400H
226;
227; ES : DI points to start of font data
228; CX = ? count of characters to load
229; BH = bytes per character
230; DS = CS assumed...
231;
232; OUTPUT:
233; none
234;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
235AX_1100H EQU 00000001b ;
236AX_1400H EQU 00000010b ;
237EGA_INFO EQU 0487H ; ADDRESS OF INFO BYTE
238EGA_ACTIVE EQU 00001000b ; MASK FOR EGA_ACTIVE/NON-ACTIVE
239 ;
240BIOS_LOAD PROC ;
241 CALL GET_CURSOR_POS ; ONE MUST RECORD THE CURSOR POS DURING
242 ; A FONT LOAD...ELSE CURSOR TO (1,1)
243 PUSH BX ;
244 PUSH DX ;
245 ;
246 MOV DX,ZERO ; CHARACTER OFFSET INTO TABLE
247 MOV BL,ZERO ; BLOCK TO LOAD (Block=0)
248 ;
249 TEST AL,AX_1100H ; DETERMINE IF EGA_TYPE LOAD?
250 JNZ BL_00 ; IF NOT, THEN TRY FOR LCD_TYPE...
251 JMP BL_3 ;
252 ;
253BL_00: PUSH BP ; SAVE REGISTERS TO BE USED
254 PUSH AX ;
255 CMP CHARACTER_SOURCE,ZERO ; TEST IF CP = HDWR
256 JE BL_0 ;
257 ;
258 MOV BP,DI ; POINTER TO USER TABLE (ES:BP)
259 MOV AX,1100H ; USER ALPHA LOAD
260 JUMP BL_2 ;
261 ;
262BL_0: MOV AX,1102H ; ROM 8X8 DOUBLE DOT
263 CMP BYTES_PER_CHAR,8 ;
264 JE BL_2 ;
265BL_1: MOV AL,01H ; ROM MONOCHROME SET
266 CMP BYTES_PER_CHAR,14 ;
267 JE BL_2 ;
268 MOV AL,04H ; ROM 8X16 SET
269 CMP BYTES_PER_CHAR,16 ;
270 JE BL_2 ;
271 JUMP BL_2A ; PERFORM BIOS CALL...
272 ;
273BL_2: PUSH DS ; THIS TEST VERIFIES THAT THE EGA
274 PUSH AX ; ADAPTER IS PRESENTLY ACTIVE.
275 XOR AX,AX ; IF IT IS NOT, THEN THE EGA WILL
276 MOV DS,AX ; REPROGRAM THE ACTIVE CRT TO THE EGA
277 MOV AL,DS:EGA_INFO ; SPECIFICATION....HAZARDOUS RESULTS!
278 AND AL,EGA_ACTIVE ; MASK FOR EGA ACTIVE/NON-ACTIVE
279 POP AX ;
280 POP DS ;
281 ;
282 JZ BL_2AA ; IF ZERO, THE EGA IS ACTIVE...AND OK!
283 STC ; ELSE, EGA IS NOT ACTIVE
284 POP AX ;
285 POP BP ; AND WE MUST
286 JUMP BL_7 ; LEAVE WITH AN ERROR....
287 ;
288BL_2AA:
289 CMP CS:SETMODE_FLAG,OFF ; WGR MODE SET REQUIRED?.. ;AN000;
290 JE BL_2B ; WGR NO...JUMP TO CHARACTER LOAD. ;AN000;
291 PUSH AX ; WGR ;AN000;
292 PUSH DS ; WGR ;AN000;
293 XOR AX,AX ; WGR ;AN000;
294 MOV DS,AX ; WGR ;AN000;
295 PUSH DS:[VIDEO_CTRL] ; WGR ;AN000;
296 MOV AL,CS:MODE_VALUE ; WGR GET CURRENT MODE ;AN000;
297 OR AL,NOT MODE_MASK ; WGR MODE SET WITHOUT BUFFER CLEARED ;AN000;
298
299 call Info_Ansi_ModeSet ;J.K.Tell ANSI that DISPLAY.SYS is going to call INT 10h, SET MODE function.
300
301 XOR AH,AH ; WGR MODE SET CALL.. ;AN000;
302 PUSHF ; WGR ;AN000;
303 CALL DWORD PTR CS:ROM_INT_10 ; WGR ;AN000;
304
305 call Info_Ansi_ModeDone ;J.K.Tell ANSI that it is through.
306
307 POP DS:[VIDEO_CTRL] ; WGR ;AN000;
308 POP DS ; WGR ;AN000;
309 POP AX ; WGR ;AN000;
310BL_2B: ; WGR WAS ISSUED (BY ME) ;AN000;
311 OR AX,CS:RE_CALC ; WGR INCASE RECALC IS NEEDED. ;AN000;
312 INT 10H ;
313;AN001; EGA ROM BIOS has a bug when AX=1110h, INT 10h is issued.
314; Cursor type is changed to 0C0Dh which causes the cursor to
315; disappear!!!
316; We are going to set Cursor type back to 0607h for EGA.
317
318 cmp ax, 1110h ;AN001;
319 jne Skip_Cursor_Problem ;AN001;
320 push cx ;AN001;
321 mov ah, 1 ;AN001;
322 mov cx, 0607h ;AN001;
323 int 10h ;AN001;
324 pop cx ;AN001;
325
326Skip_Cursor_Problem:
327 MOV CS:RE_CALC,OFF ; WGR RESET RE_CALC VALUE ;AN000;
328 CALL SET_BLOCK_SP0 ; AND THEN SET_BLOCK_SPECIFIER (0)
329BL_2A: POP AX ;
330 POP BP ;
331 ;
332BL_3: TEST AL,AX_1400H ;
333 JZ BL_6 ;
334 ;
335 PUSH AX ; SAVE INDICATOR
336 ;
337 CMP CHARACTER_SOURCE,ZERO ; TEST IF CP = HDWR
338 JE BL_4 ;
339 ;
340 MOV AX,1400H ; LOAD USER SPECIFIED FONT
341 JUMP BL_5 ;
342 ;
343BL_4: MOV AX,1401H ; ASK FOR ROM LOAD FONT
344 MOV BL,ZERO ;
345BL_5: INT 10H ; PERFORM THE LOAD!
346 CALL SET_BLOCK_SP0 ; AND ALSO DO THE SET BLOCK SPECIFIER
347 POP AX ;
348 ;
349BL_6: CLC ;
350BL_7: POP DX ;
351 POP BX ;
352 ;
353 CALL SET_CURSOR_POS ; RESTORE THE CURSOR POSITION
354 RET ;
355BIOS_LOAD ENDP ;
356;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
357;
358; ASK_BIOS_INFO
359;
360; THIS ROUTINE IS DESIGNED TO MAKE USE OF THE NEW BIOS
361; CALL IN THE '???????' AND FOLLOW-ONS. REFER TO THE
362; 'Personal Systems Architecture' DCR #405 (written
363; by DD). IF THIS SUPPORT IS NOT FOUND ON THE
364; DISPLAY ADAPTER, THEN THE CARRY FLAG IS SET!
365;
366; INPUT:
367; none
368; OUTPUT:
369; CY = 0 if found
370; 1 if not supported
371;
372;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
373RETURN_INFO LABEL BYTE ;
374 DW ? ; OFFSET TO STATIC FUNCTIONALITY INFO
375 DW ? ; SEGMENT TO STATIC FUNCTIONALITY INFO
376 DB ? ; VIDEO MODE
377 DW ? ; COLUMNS ON SCREEN
378 DW ? ; LEN OF REGEN BUFFER
379 DW ? ; START ADDRESS IN REGEN BUFFER
380 DW ? ; CURSOR POSITION OF PAGE #0
381 DW ? ; CURSOR POSITION OF PAGE #1
382 DW ? ; CURSOR POSITION OF PAGE #2
383 DW ? ; CURSOR POSITION OF PAGE #3
384 DW ? ; CURSOR POSITION OF PAGE #4
385 DW ? ; CURSOR POSITION OF PAGE #5
386 DW ? ; CURSOR POSITION OF PAGE #6
387 DW ? ; CURSOR POSITION OF PAGE #7
388 DW ? ; CURSOR MODE SETTING
389 DB ? ; ACTIVE DISPLAY PAGE
390 DW ? ; CRT CONTROLLER ADDRESS
391 DB ? ; CRT_MODE_SET
392 DB ? ; CRT_PALETTE
393 DB ? ; ROWS ON SCREEN
394CHAR_H LABEL WORD ;
395 DW ? ; CHARACTER HEIGHT
396 DB ? ; DISPLAY COMBINATION (ACTIVE)
397 DB ? ; DISPLAY COMBINATION (ALTERNATE)
398L_RET_INFO EQU ($-RETURN_INFO) ;
399 DB (40h-L_RET_INFO) DUP (?) ; REMAINING DATA....
400 ;
401STATIC_INFO STRUC ;
402 DB ? ; VIDEO MODES (part 1)
403 DB ? ; VIDEO MODES (part 2)
404 DB ? ; VIDEO MODES (part 3)
405 DB ? ; RESERVED
406 DB ? ; RESERVED
407 DB ? ; RESERVED
408 DB ? ; RESERVED
409SI_LINE DB ? ; SCAN LINES AVAILABLE IN TEXT MODES
410STATIC_INFO ENDS ;
411 ;
412ASK_BIOS_INFO PROC ;
413 PUSH ES ;
414 PUSH DI ;
415 PUSH BX ;
416 PUSH AX ;
417 ;
418 MOV AX,1B00H ; BIOS CALL FOR 'EGA +' INFORMATION
419 MOV BX,0 ;
420 MOV DI,OFFSET RETURN_INFO ; SETUP THE RETURN ADDRESS (above)
421 PUSH CS ;
422 POP ES ;
423 INT 10H ;
424 ;
425 CMP AL,1BH ; IF AL <> 1BH, THEN ADAPTER DOES
426 JNZ ABI_3 ; NOT SUPPORT THIS CALL...EXIT w/ERROR
427 CLC ;
428 JUMP ABI_4 ; ELSE, LEAVE w/o ERROR
429 ; WITH THE TABLE ALL FILLED IN....
430ABI_3: STC ;
431ABI_4: POP AX ;
432 POP BX ;
433 POP DI ;
434 POP ES ;
435 RET ;
436ASK_BIOS_INFO ENDP ;
437;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
438;
439; ASK_BIOS_FONT_SIZE
440;
441; THIS ROUTINE RETURNS THE PRESENT FONT RESOLUTION.
442; IT IS SUPPORTED VIA THE ENHANCED INT 10H BIOS CALL.
443; REFER TO THE 'ASK_BIOS_INFO' FOR DETAILS.
444;
445; INPUT:
446; none
447; OUTPUT:
448; AL = bytes/character
449; CY = 0 if found
450; 1 if not supported (and AL = unchanged)
451;
452;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
453ASK_BIOS_FONT_SIZE PROC ;
454 PUSH BX ;
455 CALL ASK_BIOS_INFO ;
456 JC ABFS_1 ;
457 MOV BX,CHAR_H ;
458 MOV AL,BL ;
459 CMP AL,ZERO ; PERFORM CHECK FOR BIOS ERROR!
460 JNZ ABFS_0 ;
461 STC ;
462 JUMP ABFS_1 ;
463ABFS_0: CLC ;
464ABFS_1: POP BX ;
465 RET ;
466ASK_BIOS_FONT_SIZE ENDP ;
467;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
468;
469; ASK_BIOS_SCAN_LINES
470;
471; THIS IS SIMILAR TO THE ASK_BIOS_FONT_SIZE, EXCEPT IT
472; WILL RETURN THE AVAILABLE VERTICAL SCAN LINES FOR ALL
473; TEXT MODES. REFER TO REFERENCED DCR #405.
474;
475; INPUT:
476; none
477; OUTPUT:
478; AL = encoded SCAN LINES (in text modes)
479; CY = 0 if found
480; 1 if not supported
481;
482;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
483ASK_BIOS_SCAN_LINES PROC ;
484 CALL ASK_BIOS_INFO ; ASK BIOS FOR DETAILED INFO...
485 JC ABSL_0 ; IF CY = 1, THEN BIOS NOT SMART ENOUGH!
486 PUSH BX ;
487 PUSH SI ;
488 PUSH ES ;
489 LEA SI,RETURN_INFO ; GET POINTERS TO STATIC TABLE....
490 MOV BX,CS:[SI+2] ; GET STATIC INFO SEGMENT
491 MOV ES,BX ; &
492 MOV SI,CS:[SI] ; GET STATIC INFO OFFSET
493 MOV AL,ES:[SI].SI_LINE ; THEN, FINALLY THE ENCODED SCAN_LINES
494 POP ES ;
495 POP SI ;
496 POP BX ;
497ABSL_0: RET ;
498ASK_BIOS_SCAN_LINES ENDP ;
499;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
500;
501; VECTOR_LOAD
502;
503; THIS ROUTINE WORKS SIMILARLY TO THE BIOS_LOAD, EXCEPT THAT
504; THE FONT SUPPORT IS LOADED VIA A VECTOR MECHANISM...RATHER
505; THAN USING BIOS. THE BIOS_LOAD METHOD IS USED EXCLUSIVELY
506; FOR TEXT MODES ONLY....WHILE THE VECTOR_LOAD IS FOR APA
507; (all points addressable).
508;
509; THE VECTOR SUPPORT IS BASED ON THE INTERRUPT VECTORS 1F hex
510; AND 43 hex. THE INTERRUPT 1F hex HAS SPECIAL CONSIDERATIONS
511; DUE TO THE 'GRAFTABL.COM' PROGRAM PROVIDED ON DOS. REFER
512; TO THE 'CPS DESIGN DOCUMENT' (written by IBM Canada Lab) FOR
513; DETAILS.
514;
515; INPUT:
516; AL = ? load mechanism
517;
518; 7 6 5 4 3 2 1 0
519; x x x x 0 0 0 0
520; � ����������� 1 = INT 1FH
521; ������������� 1 = INT 43H
522; 1 = int 1FH special handling
523;
524;
525; ES : DI points to start of font data
526; CX = ? count of characters to load
527; BH = bytes per character
528;
529; DS = CS assumed
530;
531; ***********************************************************
532; ************** SCHEDULED FOR OPTIMIZATION *****************
533; ***********************************************************
534;
535;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
536VECTOR_MODE DB ? ;
537INTER_43H EQU 00100000b ;
538INTER_1FH EQU 00010000b ;
539LCD_1FH EQU 01000000b ;
540INTER_44H EQU 10000000b ;
541 ;
542VECTOR_LOAD PROC ;
543 TEST AL,INTER_1FH ; CHECK IF ANY INTERRUPT 1FH PROCESSING
544 JNZ VL_00 ; IS NEEDED.
545 JUMP VL_3 ; IS NEEDED.
546 ;
547VL_00: MOV CS:VECTOR_MODE,AL ;
548 PUSH AX ; SAVE AX REGISTER....
549 MOV AX,0B000H ; INTERFACE CALL TO GRAFTABL TO SEE
550 INT 2FH ; IF SUPPORT IS LOADED.
551 CMP AL,0FFH ; IF SO, THEN EXIT!
552 POP AX ; RESTORE AX REGISTER..
553 JNE VL_2AA ; IF NOT 0FFH=AL, THEN NOT LOADED!
554 JUMP VL_3 ; EXIT, GRAFTABL HAS CONTROL
555 ;
556VL_2AA: CMP CHARACTER_SOURCE,0 ; TEST IF CP = HDWR
557 JE VL_1 ;
558 ;
559 PUSH DS ;
560 PUSH AX ;
561 XOR AX,AX ;
562 MOV DS,AX ;
563 MOV AX,DI ; PUT DI INTO AX FOR ADJUSTMENT
564 ADD AX,8*128 ;
565 ;
566 CLI ;
567 MOV DS:WORD PTR INT_1F_LOW,AX; SET THE HIGH 128 CHARACTERS
568 MOV DS:WORD PTR INT_1F_HI,ES;
569 STI ;
570 MOV CS:OLD_INT_1F,AX ; SAVE VALUE TO INTERNAL STORAGE
571 MOV CS:OLD_INT_1F+2,ES ;
572 POP AX ;
573 POP DS ;
574 JUMP VL_3 ;
575 ;
576VL_1: TEST CS:VECTOR_MODE,LCD_1FH ; CHECK IF LCD ACTIVE
577 JZ VL_11A ;
578 ;
579 PUSH DS ; SET INT 44 hex WITH HDWR CP
580 PUSH DI ;
581 PUSH AX ;
582 XOR AX,AX ;
583 MOV DS,AX ;
584 CLI ;
585 MOV DI,CS:ROM_INT_1F ;
586 MOV DS:WORD PTR INT_1F_LOW,DI; SET NEW VECTOR
587 MOV CS:OLD_INT_1F,DI ; SAVE VALUE TO INTERNAL STORAGE
588 MOV DI,CS:ROM_INT_1F+2 ;
589 MOV DS:WORD PTR INT_1F_HI,DI;
590 MOV CS:OLD_INT_1F+2,DI ;
591 STI ;
592 POP AX ;
593 POP DI ;
594 POP DS ;
595 JUMP VL_3 ;
596 ;
597VL_11A: PUSH ES ; SET INT 1F hex WITH HDWR CP
598 PUSH DS ;
599 PUSH BP ;
600 PUSH AX ;
601 PUSH BX ;
602 PUSH CX ;
603 PUSH DX ;
604 MOV AX,1130H ; GET EGA INFORMATION
605 MOV BH,4 ; GET ROM DOUBLE DOT PTR (TOP)
606 INT 10H ;
607 XOR AX,AX ;
608 MOV DS,AX ;
609 CLI ;
610 MOV DS:WORD PTR INT_1F_LOW,BP; SET THE HIGH 128 CHARACTERS
611 MOV DS:WORD PTR INT_1F_HI,ES;
612 STI ;
613 MOV CS:OLD_INT_1F,BP ; SAVE VALUE TO INTERNAL STORAGE
614 MOV CS:OLD_INT_1F+2,ES ;
615 POP DX ;
616 POP CX ;
617 POP BX ;
618 POP AX ;
619 POP BP ;
620 POP DS ;
621 POP ES ;
622 ;
623VL_3: TEST AL,INTER_43H ;
624 JZ VL_8 ;
625 ;
626 CMP CHARACTER_SOURCE,0 ; TEST IF CP = HDWR
627 JE VL_5 ;
628 ;
629 PUSH DS ; SET INT 43 hex WITH USER TABLE
630 PUSH AX ;
631 XOR AX,AX ;
632 MOV DS,AX ;
633 CLI ;
634 MOV DS:WORD PTR INT_43_LOW,DI;
635 MOV DS:WORD PTR INT_43_HI,ES;
636 STI ;
637 POP AX ;
638 POP DS ;
639 JUMP VL_9 ;
640 ;
641VL_5: PUSH BX ; SET INT 43 hex WITH HDWR CP
642 MOV BH,3 ; RETURN ROM DOUBLE DOT PTR
643 CMP BYTES_PER_CHAR,8 ; WORK FOR HARDWARE CP's
644 JE VL_6 ;
645 ;
646 MOV BH,2 ; RETURN ROM 8X14 PTR
647 CMP BYTES_PER_CHAR,14 ;
648 JE VL_6 ;
649;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
650; THIS IS BH=6 (??????? WAS IN ERROR). THE ?????? HAS
651; THE LATEST FIX SUPPORT.
652;
653;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
654 MOV BH,6 ; SET FOR ROM 8X16 PTR
655 CMP BYTES_PER_CHAR,16 ;
656 JNE VL_7 ;
657 ;
658VL_6: PUSH AX ; YES, ONCE AGAIN, SAVE THOSE REG'ies
659 PUSH CX ;
660 PUSH DX ;
661 PUSH DS ;
662 PUSH ES ;
663 PUSH BP ;
664 MOV AX,1130H ; GET EGA INFORMATION (PTR=ES:DI)
665 INT 10H ;
666 XOR AX,AX ;
667 MOV DS,AX ;
668 CLI ;
669 MOV DS:WORD PTR INT_43_LOW,BP; SET THE FULL CHARACTER SET
670 MOV DS:WORD PTR INT_43_HI,ES;
671 STI ;
672 POP BP ;
673 POP ES ;
674 POP DS ;
675 POP DX ;
676 POP CX ;
677 POP AX ;
678VL_7: POP BX ;
679 ;
680VL_8: TEST AL,INTER_44H ; Test for INTERRUPT 44 Hex
681 JZ VL_9 ;
682 ;
683 CMP CHARACTER_SOURCE,0 ; TEST IF CP = HDWR
684 JE VL_8A ;
685 ;
686 PUSH DS ; SET INT 43 hex WITH USER TABLE
687 PUSH AX ;
688 XOR AX,AX ;
689 MOV DS,AX ;
690 CLI ;
691 MOV DS:WORD PTR INT_44_LOW,DI;
692 MOV DS:WORD PTR INT_44_HI,ES;
693 STI ;
694 POP AX ;
695 POP DS ;
696 JUMP VL_9 ;
697 ;
698VL_8A: PUSH DS ; SET INT 44 hex WITH HDWR CP
699 PUSH DI ;
700 PUSH AX ;
701 XOR AX,AX ;
702 MOV DS,AX ;
703 CLI ;
704 MOV DI,CS:ROM_INT_44 ;
705 MOV DS:WORD PTR INT_44_LOW,DI;
706 MOV DI,CS:ROM_INT_44+2 ;
707 MOV DS:WORD PTR INT_44_HI,DI;
708 STI ;
709 POP AX ;
710 POP DI ;
711 POP DS ;
712 ;
713VL_9: RET ;
714VECTOR_LOAD ENDP ;
715;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
716;
717; LOAD CODE PAGE
718;
719; This routine is called by INVOKE_DATA and
720; by the INT_10H code.
721;
722; EXIT:
723; CP_ES points to the final CP data segment
724; CP_DI points to the final CP data offset
725;
726; CY = 0 if no error detected
727; 1 if error occurred
728; AX = 0000 if hardware code page matched
729; AX = 0001 if routine is presently busy
730;
731;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
732CP_ES DW ? ;
733CP_DI DW ? ;
734LOAD_CP_SEMA DB 0 ; SEMAPHORE TO TELL IF ROUTINE IS
735 ; ALREADY ACTIVE....
736 ;
737ANSI_BUFFER LABEL BYTE ; WGR BUFFER FOR ANSI ;AN000;
738 DB ZERO ; WGR INFO LEVEL ;AN000;
739 DB ZERO ; WGR ;AN000;
740 DW ANSI_BUF_SIZE ; WGR LENGTH OF DATA ;AN000;
741 DW ? ; WGR CONTROL FLAGS ;AN000;
742D_MODE LABEL BYTE ; WGR DISPLAY MODE ;AN000;
743 DB ? ; WGR ;AN000;
744 DB ? ; WGR RESERVED ;AN000;
745 DW ? ; WGR COLORS ;AN000;
746 DW ? ; WGR WIDTH ;AN000;
747 DW ? ; WGR LENGTH ;AN000;
748 DW ? ; WGR COLUMNS ;AN000;
749SCR_ROWS LABEL WORD ; WGR ROWS ;AN000;
750 DW ? ; WGR ;AN000;
751 ;
752RE_CALC DW OFF ; WGR VALUE TO OR IN CHARACTER LOAD ;AN000;
753SETMODE_FLAG DB OFF ; WGR FLAG INDICATING A MODE SET IS REQUIRED ;AN000;
754 ;
755TEST_CP PROC ;
756 CMP CS:LOAD_CP_SEMA,ZERO ; TEST IF ALREADY ACTIVE!
757 JE I10_0 ;
758 STC ; IF ALREADY ACTIVE, THEN SET ERROR
759 MOV AX,ONE ; TO INDICATE THAT ACTIVE....
760 RET ;
761 ;
762I10_0: MOV CS:LOAD_CP_SEMA,ONE ; SET ROUTINE NOW ACTIVE...
763 PUSH BX ;
764 PUSH CX ;
765 PUSH DX ; WGR ;AN000;
766 PUSH SI ;
767 PUSH DI ;
768 PUSH DS ;
769 PUSH ES ;
770 ;
771 PUSH CS ;
772 POP DS ; SETUP DS SEGMENT TO CS
773 PUSH CS ;
774 POP ES ; SETUP ES SEGMENT TO CS
775 ;
776 XOR AH,AH ; AH=0 FOR MODE SET, AL=MODE_TYPE
777 MOV AL,MODE_VALUE ;
778 MOV SI,AX ; ESTABLISH INDEX INTO LOAD_MECH table
779 MOV AL,[SI].FONT_SIZE ; GET FONT_SIZE FOR THIS MODE_VALUE
780 OR AL,AL ; TEST FOR MODE_VALUE=0
781 JNZ I10_2 ;
782 ;
783 CALL ASK_BIOS_FONT_SIZE ; GET BIOS TO INDICATE FONT_SIZE
784 JC I10_A ; IF CY=1 THEN ERROR OCCURRED
785 ;
786I10_2: PUSH AX ; WGR SAVE FONT SIZE ;AN000;
787 MOV Ah,ANSI_2F ; WGR REQUEST TO ANSI FOR SCREEN SIZE ;AN000;
788 mov al,IOCTL_2F ; IOCTL request
789 MOV CL,GET_SUBFUNC ; WGR GET CHARACTERISTICS FUNCTION ;AN000;
790 LEA DX,ANSI_BUFFER ; WGR BUFFER FOR REQUEST STORAGE ;AN000;
791 INT 2FH ; WGR ;AN000;
792 JC I10_3 ; WGR IF CARRY THEN ERROR..CONT AS BEFORE ;AN000;
793 CMP AL,16H ; WGR ENSURE THAT ANSI WAS THERE.. ;AN000;
794 JNE I10_3 ; WGR NO....CONT AS BEFORE ;AN000;
795 CMP D_MODE,ON ; WGR ARE WE IN A TEXT MODE? ;AN000;
796 JNE I10_3 ; WGR NO...CONT AS BEFORE.. ;AN000;
797 CMP SCR_ROWS,DEFAULT_LEN ; WGR IS IT JUST 25 LINES?.. ;AN000;
798 JE I10_3 ; WGR THEN...CONT AS BEFORE.. ;AN000;
799 POP AX ; WGR GREATER THAN 25 LINES SO...POP OFF.. ;AN000;
800 MOV CS:RE_CALC,RECALC_ON ; WGR RECALCULATION REQUIRED ;AN000;
801 MOV CS:SETMODE_FLAG,ON ; WGR A MODE SET IS REQUIRED ;AN000;
802 MOV AL,EIGHT ; WGR OLD FONT SIZE AND USE AN 8 HIGH BOX. ;AN000;
803 JMP I10_4 ; WGR ;AN000;
804 ;
805I10_3: POP AX ; WGR RESTORE OLD VALUE ;AN000;
806 MOV CS:SETMODE_FLAG,OFF ; WGR NO MODE SET IS REQUIRED. ;AN000;
807 ;
808I10_4: MOV BYTES_PER_CHAR,AL ; SAVE VALUE DETERMINED
809 ;
810 MOV CX,CPD_ACTIVE ;
811 CMP CX,-1 ; CHECK IF ACTIVE CP=PLACE_HOLDER
812 JE I10_A ; IF SO, THEN STAY SLEEPING
813 ;
814 PUSH CX ;
815 CALL FIND_CP ; DETERMINE IF THE CODE PAGE=HDWR
816 MOV BL,CL ;
817 POP CX ; RESTORE CP VALUE FOR FUTURE REF
818 JC I10_A ;
819 MOV CHARACTER_SOURCE,BL ;
820 OR BL,BL ; TEST TYPE OF CP?
821 JE I10_B ; IF CODE PAGE=HDWR THEN RESOLUTION OK!
822 ;
823 CALL FIND_FONT ; CHECK IF THE FONT RESOLUTION IS HERE
824 JC I10_A ; IF CY=0 THEN ES:DI POINT TO FONT
825 MOV CS:CP_DI,DI ;
826 MOV DI,ES ;
827 MOV CS:CP_ES,DI ;
828 JUMP I10_B ;
829 ;
830I10_A: XOR AX,AX ;
831 STC ;
832I10_B: POP ES ;
833 POP DS ;
834 POP DI ;
835 POP SI ;
836 POP DX ; WGR ;AN000;
837 POP CX ;
838 POP BX ;
839 MOV CS:LOAD_CP_SEMA,ZERO ; SET ROUTINE NOW COMPLETED....
840 RET ;
841TEST_CP ENDP ;
842;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
843;
844; INVOKE DATA
845;
846; THIS ROUTINE PERFORMS THE LOADING OF THE CODE PAGE
847; INFORMATION. IT USES THE POINTERS FROM THE TEST_CP
848; ROUTINE.
849;
850; ENTRY:
851; CP_ES points to the actual data of CP segment
852; CP_DI points to the actual data of CP offset
853;
854;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
855INVOKE_DATA PROC ;
856 PUSH BX ;
857 PUSH CX ;
858 PUSH SI ;
859 PUSH DI ;
860 PUSH DS ;
861 PUSH ES ;
862 ;
863 MOV DI,CS:CP_ES ; GET THE ES:DI COMBO FROM TEST_CP
864 MOV ES,DI ;
865 MOV DI,CS:CP_DI ;
866 ;
867 XOR AH,AH ;
868 MOV AL,MODE_VALUE ; CREATE INDEX TO GET LOAD_MECH
869 MOV SI,AX ;
870 MOV AL,[SI].LOAD_MECH ;
871 MOV LOAD_MECHANISM,AL ; SAVE THIS VALUE FOR OTHER ROUTINES
872 TEST AL,MASK_BIOS_LOAD ; FIND OUT IF INT 10H SUPPORTS
873 JZ INV_7 ;
874 ;
875 MOV CX,256 ; **** HARD CODED COUNT ****
876 MOV BH,BYTES_PER_CHAR ;
877 CALL BIOS_LOAD ; GET BIOS CODE TO GIVE THE CP SUPPORT
878 JC INV_A ;
879 ;
880INV_7: TEST AL,MASK_VECTOR_LOAD ;
881 JZ INV_8 ;
882 ;
883 CALL VECTOR_LOAD ; ESTABLISH THE VECTORS FOR CP SUPPORT
884 JC INV_A ;
885 ;
886INV_8: CLC ;
887 JUMP INV_B ;
888INV_A: XOR AX,AX ;
889 STC ;
890INV_B: POP ES ;
891 POP DS ;
892 POP DI ;
893 POP SI ;
894 POP CX ;
895 POP BX ;
896 RET ;
897INVOKE_DATA ENDP ;
898;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
899;
900; GET_CURSOR_POSITION
901;
902; This routine is called by BIOS_LOAD. It is used
903; to ask for the cursor position before a character
904; download...since BIOS puts the cursor to (1,1).
905;
906;
907; INPUT:
908; none
909; OUTPUT:
910; BX = page number
911; DX = cursor position
912;
913; DS = CS assumed
914;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
915ACTIVE_PAGE DW ? ;
916CURSOR_POS DW ? ;
917 ;
918GET_CURSOR_POS PROC ;
919 PUSHF ;
920 PUSH DX ;
921 PUSH CX ;
922 PUSH BX ;
923 PUSH AX ;
924 MOV AH,15 ; CALL TO GET CURRENT_VIDEO_STATE
925 PUSHF ;
926 CALL DWORD PTR CS:ROM_INT_10 ; call routine to handle the command
927 MOV ACTIVE_PAGE,BX ;
928 ;
929 MOV AH,3 ;
930 PUSHF ;
931 CALL DWORD PTR CS:ROM_INT_10 ; call routine to handle the command
932 MOV CURSOR_POS,DX ;
933 POP AX ;
934 POP BX ;
935 POP CX ;
936 POP DX ;
937 POPF ;
938 RET ;
939GET_CURSOR_POS ENDP ;
940;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
941;
942; SET_CURSOR_POSITION
943;
944; This routine is called by BIOS_LOAD. It is used
945; to tell BIOS where to put the cursor.
946;
947; INPUT:
948; BX = page number
949; DX = cursor position
950; OUTPUT:
951; none
952;
953;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
954SET_CURSOR_POS PROC ;
955 PUSHF ;
956 PUSH DX ;
957 PUSH BX ;
958 PUSH AX ;
959 MOV AH,2 ;
960 MOV BX,ACTIVE_PAGE ;
961 MOV DX,CURSOR_POS ;
962 PUSHF ;
963 CALL DWORD PTR CS:ROM_INT_10 ; call routine to handle the command
964 POP AX ;
965 POP BX ;
966 POP DX ;
967 POPF ;
968 RET ;
969SET_CURSOR_POS ENDP ;
970
971;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
972; Info_Ansi_ModeSet
973;
974; INPUT:None
975; OUTPUT:None
976;
977;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
978Info_Ansi_ModeSet proc near
979 push ax
980 push dx
981 push ds
982 push si
983 pushf
984 push cs
985 pop ds
986 lea si, ANSI_DA_INFO
987 mov [si].DA_SETMODE_FLAG, 1 ;Tell ANSI we are calling int10h, Set Mode funciton
988 mov dx, si
989 mov ah, ANSI_2F
990 mov al, DA_INFO_2F
991 int 2fh ;We don't worry about whether ANSI installed or not.
992 popf
993 pop si
994 pop ds
995 pop dx
996 pop ax
997 ret
998Info_Ansi_ModeSet endp
999
1000;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1001; Info_Ansi_ModeDone
1002;
1003; INPUT:None
1004; OUTPUT:None
1005;
1006;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1007Info_Ansi_ModeDone proc near
1008 push ax
1009 push dx
1010 push ds
1011 push si
1012 pushf
1013 push cs
1014 pop ds
1015 lea si, ANSI_DA_INFO
1016 mov [si].DA_SETMODE_FLAG, 0 ;Tell ANSI we are done with int10h, Set Mode funciton
1017 mov dx, si
1018 mov ah, ANSI_2F
1019 mov al, DA_INFO_2F
1020 int 2fh ;We don't worry about whether ANSI installed or not.
1021 popf
1022 pop si
1023 pop ds
1024 pop dx
1025 pop ax
1026 ret
1027Info_Ansi_ModeDone endp
1028
1029;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
diff --git a/v4.0/src/DEV/DISPLAY/INT2FCOM.INC b/v4.0/src/DEV/DISPLAY/INT2FCOM.INC
new file mode 100644
index 0000000..c6007a6
--- /dev/null
+++ b/v4.0/src/DEV/DISPLAY/INT2FCOM.INC
@@ -0,0 +1,323 @@
1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2; INTERRUPT 2F HEX COMMUNICATION ROUTINE
3;
4; This routine is used to communicate between the CON driver
5; and the Keyboard routine. The various calls are as follows:
6;
7; 1) not yet defined
8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
9IF1 ;
10 %OUT . ®INT2FCOM.INC¯
11ENDIF ;
12 PUBLIC ROM_INT_2F ;
13 PUBLIC INT_2F_COM ;
14 PUBLIC ABORT ;
15 ;
16CON_REQ LABEL WORD ; THESE CALLS START AT '00H'
17 DW OFFSET CON_INSTALL ;
18 DW OFFSET CON_INVOKE ;
19 DW OFFSET CON_QUERY_CP ;
20 DW OFFSET CON_QUERY_PARAMETER ;
21CON_MAX EQU ($-CON_REQ)/2 ;
22 ;
23QPARM_TABLE LABEL WORD ;
24 DW OFFSET CPD_DESG_N ;
25 DW OFFSET CPD_FONTS_N ;
26 DW OFFSET CPD_HDWR_N ;
27QPARM_ENTRY EQU ($-QPARM_TABLE)/2 ;
28 ;
29ROM_INT_2F DW ? ; Int 2FH vector offset
30 DW ? ; Int 2FH vector segment
31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
32;
33; INTERRUPT 2F HEX
34;
35; Communication between the KEYBOARD (KEYB.COM) and the
36; CON Device Driver.
37;
38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
39INT_2F_COM PROC FAR ;
40 STI ;
41 CMP AH,0ADH ; TEST THE SUBFUNCTION CALL
42 JNE I2C_6 ; RESERVED FOR THE COM PATH!
43 ;
44 CMP AL,10H ; WGR ;AN000;
45 JNE I2C_0 ; WGR ;AN000;
46 CALL CHECK_VALID ; WGR ;AN000;
47 PUSH SI ; WGR ;AN000;
48 JMP I2C_1 ; WGR ;AN000;
49I2C_0: ; WGR
50 CMP AL,CON_MAX ; TEST IF IT IS ABOVE HIGH
51 JAE I2C_6 ; CON CALL?
52 ;
53 PUSH SI ; FORMULATE THE JUMP POINTER
54 PUSH AX ;
55 XOR AH,AH ;
56 MOV SI,AX ;
57 POP AX ;
58 ADD SI,SI ;
59 CALL CS:CON_REQ[SI] ; call routine to handle the command
60I2C_1: ;
61 PUSH AX ; SAVE AX REGISTER TO PLAY WITH STACK
62 MOV SI,SP ;
63 MOV AX,SS:[SI+8] ; ACCOUNT FOR SI & AX ON STACK
64 JC I2C_2 ;
65 AND AX,NOT_CY ;
66 JUMP I2C_3 ;
67I2C_2: OR AX,CY ;
68I2C_3: MOV SS:[SI+8],AX ;
69 POP AX ;
70 POP SI ;
71ABORT: IRET ;
72I2C_6: JMP DWORD PTR CS:ROM_INT_2F ;
73INT_2F_COM ENDP ;
74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
75;
76; CON_INSTALL
77;
78; A STRAIGHT FORWARD ROUTINE WHICH INDICATES WHETHER OR NOT
79; ANY PC DOS CPS-CON SUPPORT WAS LOADED DURING BOOTSTRAP.
80; THE INTERFACE IS AS PER 'DOS FUNCTIONAL SPEC'
81; (Program Interfaces).
82;
83; INPUT:
84; none
85;
86; OUTPUT:
87; AX = (-1) if loaded
88; no change if not....since this is not even loaded!
89; BX = [upper nibble][lower nibble] = MAJOR - MINOR
90; release number.
91;
92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
93CON_INSTALL PROC ;
94 MOV AX,-1 ; CHANGE AX TO '0FFFFH' AND BX TO
95 MOV BX,0100H ; MAJOR - MINOR VERSION #
96 CLC ; NO ERROR TO INDICATE....
97 RET ;
98CON_INSTALL ENDP ;
99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
100;
101; CHECK_VALID
102;
103; THIS ROUTINE CHECKS TO SEE IF THE CURRENT CODE PAGE HAS BEEN
104; PREPARED FOR AN 8X8 RAM FONT. THIS IS AN INTERFACE TO ANSI.SYS
105; TO ENSURE THAT A REQUEST FOR > 25 LINES IS VALID.
106;
107; INPUT:
108; none
109;
110; OUTPUT:
111; CF = 1 IF NOT FONT NOT AVAILABLE
112; = 0 IF FONT IS AVAILABLE.
113;
114; AUTHOR: WGR
115;
116;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
117CHECK_VALID PROC ; ;AN000;
118 CMP CS:CPD_ACTIVE,-1 ; see if a code page has been.. ;AN000;
119 JNE CV_1 ; selected? ;AN000;
120 CLC ; no..therefore hardware code page.. ;AN000;
121 JMP CV_4 ; okay...exit with carry clear. ;AN000;
122CV_1: ; ;AN000;
123 PUSH BX ; s ;AN000;
124 PUSH CX ; a ;AN000;
125 PUSH DX ; v ;AN000;
126 PUSH DI ; e ;AN000;
127 PUSH SI ; r ;AN000;
128 PUSH DS ; e ;AN000;
129 PUSH ES ; g ;AN000;
130 PUSH CS ; s. ;AN000;
131 POP DS ; establish addressibility to data ;AN000;
132 MOV CX,CPD_ACTIVE ; use active code page... ;AN000;
133 CALL FIND_CP ; is the code page prepared? ;AN000;
134 JC CV_3 ; no....problem..exit with carry set. ;AN000;
135 CMP CX,0 ; okay...check if hardware code page? ;AN000;
136 JNE CV_2 ; ;AN000;
137 CLC ; yes...so okay...exit with carry clear;AN000;
138 JMP CV_3 ; ;AN000;
139CV_2: ; ;AN000;
140 MOV DL,CS:BYTES_PER_CHAR ; save current box size.. ;AN000;
141 PUSH DX ; ;AN000;
142 MOV CS:BYTES_PER_CHAR,8 ; check for 8x8 box (>25 line support) ;AN000;
143 CALL FIND_FONT ; is font size there?? ;AN000;
144 POP DX ; ;AN000;
145 MOV CS:BYTES_PER_CHAR,DL ; restore old box size...FIND_FONT... ;AN000;
146CV_3: ; will have returned.. ;AN000;
147 POP ES ; with carry set appropriately ;AN000;
148 POP DS ; ;AN000;
149 POP SI ; restore ;AN000;
150 POP DI ; ;AN000;
151 POP DX ; registers. ;AN000;
152 POP CX ; ;AN000;
153 POP BX ; ;AN000;
154CV_4: ; ;AN000;
155 RET ; return. ;AN000;
156CHECK_VALID ENDP ; ;AN000;
157;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
158;
159; CON_INVOKE
160;
161; THIS ROUTINE IS A SECOND INTERFACE TO THE CPS CON DEVICE
162; TO ACTIVATE A PARTICULAR CODE PAGE. THIS MAKE USE OF THE
163; SAME ROUTINES AS THE GENERIC IOCTL CALLS (via INT 21H).
164; A SEMAPHORE IS PROVIDED BY THE IOCTL CALLS TO PREVENT
165; RE-ENTRANCY....WHICH MAY CAUSE INTERESTING RESULTS!!
166;
167; INPUT:
168; BX = code page to activate
169;
170; OUTPUT:
171; CY = 0 if CP was activated
172; 1 if an error occurred during activation
173;
174;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
175CON_INVOKE PROC ;
176 PUSH DS ;
177 PUSH ES ;
178 CMP CS:G_IOCTL_SEMA,ONE ; ARE GENERIC IOCTL ROUTINES ACTIVE???
179 JE CI_3 ; IF SO, THEN EXIT WITH ERROR...
180 ;
181 PUSH CS ;
182 POP DS ;
183 PUSH CS ;
184 POP ES ;
185 PUSH CPD_ACTIVE ;
186 MOV CPD_ACTIVE,BX ; SET THE ACTIVE CP = REQUESTED
187 CALL TEST_CP ; FIND OUT IF CP IS THERE....
188 POP CPD_ACTIVE ;
189 JC CI_3 ; IF CY=1, THEN LEAVE OLD CP ALONE!
190 CALL INVOKE_DATA ; LOAD THE DATA....
191 JC CI_3 ; IF ERROR, THEN FONT NOT AVAILABLE
192 MOV CPD_ACTIVE,BX ;
193 PUSH DX ;
194 MOV DX,BX ;
195 CALL SIGNAL_KBD_INVK ;
196 POP DX ;
197 JC CI_3 ; SET CARRY IF KEYBOARD ERROR OCCURRED.
198 CLC ; NO ERROR TO INDICATE....
199 POP ES ;
200 POP DS ;
201 RET ;
202CI_3: STC ;
203 POP ES ;
204 POP DS ;
205 RET ;
206CON_INVOKE ENDP ;
207;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
208;
209; CON_QUERY_CP
210;
211; RETURNS THE ACTIVE CODE PAGE VALUE....CPD_ACTIVE VALUE
212; CHECKED FOR INVALID.
213;
214; INPUT:
215; none
216; OUTPUT:
217; BX = CODE PAGE ACTIVATED <-1 IF NONE ACTIVE>
218; CY = 1 IF CP INVALID (BX = -1)
219; 0 IF CP VALID
220;
221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
222CON_QUERY_CP PROC ;
223 MOV BX,CS:CPD_ACTIVE ;
224 CMP BX,-1 ;
225 JNE CQCP_0 ;
226 MOV AX,ONE ; SET ERROR CONDITION TO (non-active)
227 STC ;
228 RET ;
229CQCP_0: CLC ;
230 RET ;
231CON_QUERY_CP ENDP ;
232;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
233;
234; QUERY PARAMETER INFORMATION
235;
236; ENTRY: ES:DI points to data table
237; CX = max size of table to fill (in bytes)
238; EXIT: ES:DI filled with formatted data; DW #DESG,#FONTS,#HDWR,CPx's
239; CY = 1 if problem with table creation
240;
241;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
242CON_QUERY_PARAMETER PROC ;
243 PUSH DS ;
244 PUSH AX ;
245 PUSH BX ;
246 PUSH CX ;
247 PUSH DI ;
248 ;
249 PUSH CS ;
250 POP DS ;
251 ; PERFORM CHECK ON LGTH OF BUFFER
252 MOV BX,THREE ; MANDATORY THREE WORD-STARTER
253 ADD BX,CPD_HDWR_N ; ADD # CP's IN HARDWARE
254 ADD BX,CPD_DESG_N ; ADD # CP's IN DESIGNATION
255 SHL BX,1 ; CONVERT TO BYTES
256 CMP BX,CX ; VERIFY THAT TABLE WILL FIT...
257 JG CQP_3 ; SET ERROR CONDITION!
258 ;
259 LEA BX,QPARM_TABLE ;
260 MOV CX,QPARM_ENTRY ;
261CQP_0: MOV SI,[BX] ;
262 MOV AX,[SI] ;
263 MOV ES:[DI],AX ;
264 INC BX ;
265 INC BX ;
266 INC DI ;
267 INC DI ;
268 LOOP CQP_0 ;
269 ;
270 CALL GET_HDWR_CP ;
271 MOV CX,[SI] ;
272 OR CX,CX ;
273 JZ CQP_1 ;
274 INC SI ;
275 INC SI ;
276 REP MOVSW ;
277 ;
278CQP_1: CALL GET_DESG_CP ;
279 MOV CX,[SI] ;
280 OR CX,CX ;
281 JE CQP_2 ;
282 INC SI ;
283 INC SI ;
284 REP MOVSW ;
285 ;
286CQP_2: POP DI ;
287 POP CX ;
288 POP BX ;
289 POP AX ;
290 POP DS ;
291 CLC ; CLEAR ERROR CONDITION!
292 RET ;
293 ;
294CQP_3: POP DI ;
295 POP CX ;
296 POP BX ;
297 POP AX ;
298 POP DS ;
299 STC ; TELL CALLER THAT ERROR OCCURRED!
300 RET ;
301CON_QUERY_PARAMETER ENDP ;
302;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
303;
304; SIGNAL KEYBOARD THAT INVOKE JUST OCCURRED!
305;
306; INPUT:
307; DX = code page just invoked!
308; OUTPUT:
309; none
310;
311;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
312SIGNAL_KBD_INVK PROC ;
313 PUSH AX ;
314 PUSH BX ;
315 MOV AX,0AD81H ;
316 MOV BX,DX ;
317 CLC ; CLEAR THE CARRY IN CASE NOT THERE
318 INT 2FH ;
319 POP BX ;
320 POP AX ;
321 RET ;
322SIGNAL_KBD_INVK ENDP ;
323;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
diff --git a/v4.0/src/DEV/DISPLAY/LCD/437-CPI.ASM b/v4.0/src/DEV/DISPLAY/LCD/437-CPI.ASM
new file mode 100644
index 0000000..7fa54e0
--- /dev/null
+++ b/v4.0/src/DEV/DISPLAY/LCD/437-CPI.ASM
@@ -0,0 +1,290 @@
1CODE SEGMENT BYTE PUBLIC 'CODE'
2 ASSUME CS:CODE,DS:CODE
3
4IF1
5 %OUT EGA.CPI creation file
6 %OUT .
7 %OUT CP SRC files:
8 %OUT .
9 %OUT . CODE PAGE: 437
10ENDIF
11
12EGA437: DW LEN_437 ;SIZE OF ENTRY HEADER
13 DW POST_EGA437,0 ;POINTER TO NEXT HEADER
14 DW 1 ;DEVICE TYPE
15 DB "LCD " ;DEVICE SUBTYPE ID
16 DW 437 ;CODE PAGE ID
17 DW 3 DUP(0) ;RESERVED
18 DW OFFSET DATA437,0 ;POINTER TO FONTS
19LEN_437 EQU ($-EGA437)
20
21DATA437:DW 1 ;CART/NON-CART
22 DW 1 ;# OF FONTS
23 DW LEN_D437 ;LENGTH OF DATA
24D437: ;
25 DB 8,8 ;CHARACTER BOX SIZE
26 DB 0,0 ;ASPECT RATIO (UNUSED)
27 DW 256 ;NUMBER OF CHARACTERS
28 Db 000h,000h,000h,000h,000h,000h,000h,000h ; Hex #0
29 Db 03Ch,042h,0A5h,0A5h,081h,0BDh,05Ah,03Ch ; Hex #1
30 Db 03Ch,07Eh,0DBh,0DBh,0FFh,0C3h,066h,03Ch ; Hex #2
31 Db 036h,07Fh,07Fh,07Fh,03Eh,01Ch,008h,000h ; Hex #3
32 Db 008h,01Ch,03Eh,07Fh,03Eh,01Ch,008h,000h ; Hex #4
33 Db 01Ch,03Eh,01Ch,07Fh,07Fh,036h,008h,01Ch ; Hex #5
34 Db 008h,01Ch,03Eh,07Fh,07Fh,036h,008h,01Ch ; Hex #6
35 Db 000h,000h,018h,03Ch,03Ch,018h,000h,000h ; Hex #7
36 Db 0FFh,0FFh,0E7h,0C3h,0C3h,0E7h,0FFh,0FFh ; Hex #8
37 Db 000h,000h,03Ch,066h,066h,03Ch,000h,000h ; Hex #9
38 Db 0FFh,0FFh,0C3h,099h,099h,0C3h,0FFh,0FFh ; Hex #A
39 Db 007h,003h,03Eh,066h,066h,066h,03Ch,000h ; Hex #B
40 Db 03Ch,066h,066h,066h,03Ch,018h,03Ch,018h ; Hex #C
41 Db 008h,00Ch,00Eh,00Ah,00Ah,008h,038h,030h ; Hex #D
42 Db 018h,016h,019h,017h,071h,061h,007h,006h ; Hex #E
43 Db 048h,06Bh,03Eh,0E4h,027h,07Ch,0D6h,012h ; Hex #F
44 Db 040h,070h,07Ch,07Fh,07Ch,070h,040h,000h ; Hex #10
45 Db 001h,007h,01Fh,07Fh,01Fh,007h,001h,000h ; Hex #11
46 Db 018h,03Ch,07Eh,018h,018h,07Eh,03Ch,018h ; Hex #12
47 Db 036h,036h,036h,036h,036h,000h,036h,000h ; Hex #13
48 Db 03Fh,06Ah,06Ah,03Ah,00Ah,00Ah,01Ah,000h ; Hex #14
49 Db 03Ch,076h,038h,06Ch,036h,01Ch,06Eh,03Ch ; Hex #15
50 Db 000h,000h,000h,07Fh,07Fh,07Fh,000h,000h ; Hex #16
51 Db 018h,03Ch,07Eh,018h,07Eh,03Ch,018h,0FFh ; Hex #17
52 Db 018h,03Ch,07Eh,05Ah,018h,018h,018h,000h ; Hex #18
53 Db 018h,018h,018h,05Ah,07Eh,03Ch,018h,000h ; Hex #19
54 Db 000h,00Ch,006h,07Fh,07Fh,006h,00Ch,000h ; Hex #1A
55 Db 000h,018h,030h,07Fh,07Fh,030h,018h,000h ; Hex #1B
56 Db 000h,000h,060h,060h,07Fh,07Fh,000h,000h ; Hex #1C
57 Db 000h,014h,036h,07Fh,07Fh,036h,014h,000h ; Hex #1D
58 Db 008h,008h,01Ch,01Ch,03Eh,03Eh,07Fh,000h ; Hex #1E
59 Db 07Fh,03Eh,03Eh,01Ch,01Ch,008h,008h,000h ; Hex #1F
60 Db 000h,000h,000h,000h,000h,000h,000h,000h ; Hex #20
61 Db 018h,018h,018h,018h,018h,000h,018h,000h ; Hex #21
62 Db 036h,036h,014h,000h,000h,000h,000h,000h ; Hex #22
63 Db 00Ah,00Ah,03Fh,014h,07Eh,028h,028h,000h ; Hex #23
64 Db 008h,03Eh,068h,03Eh,00Bh,07Eh,008h,000h ; Hex #24
65 Db 001h,03Fh,052h,06Ch,01Bh,035h,076h,000h ; Hex #25
66 Db 01Ch,036h,01Ch,03Bh,06Eh,066h,03Bh,000h ; Hex #26
67 Db 018h,018h,030h,000h,000h,000h,000h,000h ; Hex #27
68 Db 006h,00Ch,018h,018h,018h,00Ch,006h,000h ; Hex #28
69 Db 030h,018h,00Ch,00Ch,00Ch,018h,030h,000h ; Hex #29
70 Db 000h,036h,01Ch,07Fh,01Ch,036h,000h,000h ; Hex #2A
71 Db 000h,018h,018h,07Eh,018h,018h,000h,000h ; Hex #2B
72 Db 000h,000h,000h,000h,000h,018h,018h,030h ; Hex #2C
73 Db 000h,000h,000h,07Eh,000h,000h,000h,000h ; Hex #2D
74 Db 000h,000h,000h,000h,000h,018h,018h,000h ; Hex #2E
75 Db 003h,006h,00Ch,018h,030h,060h,040h,000h ; Hex #2F
76 Db 018h,02Ch,066h,066h,066h,034h,018h,000h ; Hex #30
77 Db 018h,018h,038h,018h,018h,018h,03Ch,000h ; Hex #31
78 Db 03Ch,066h,066h,00Ch,018h,032h,07Eh,000h ; Hex #32
79 Db 03Ch,066h,00Ch,01Ch,006h,066h,03Ch,000h ; Hex #33
80 Db 00Ch,01Ch,02Ch,06Ch,07Eh,00Ch,01Eh,000h ; Hex #34
81 Db 07Eh,060h,07Ch,066h,006h,066h,03Ch,000h ; Hex #35
82 Db 01Ch,030h,060h,07Ch,066h,066h,03Ch,000h ; Hex #36
83 Db 07Eh,066h,04Ch,00Ch,018h,018h,038h,000h ; Hex #37
84 Db 03Ch,066h,076h,03Ch,06Eh,066h,03Ch,000h ; Hex #38
85 Db 03Ch,066h,066h,03Eh,006h,00Ch,038h,000h ; Hex #39
86 Db 000h,018h,018h,000h,000h,018h,018h,000h ; Hex #3A
87 Db 000h,018h,018h,000h,000h,018h,018h,030h ; Hex #3B
88 Db 006h,00Ch,018h,030h,018h,00Ch,006h,000h ; Hex #3C
89 Db 000h,000h,07Eh,000h,07Eh,000h,000h,000h ; Hex #3D
90 Db 030h,018h,00Ch,006h,00Ch,018h,030h,000h ; Hex #3E
91 Db 03Ch,066h,026h,00Ch,018h,000h,018h,000h ; Hex #3F
92 Db 03Eh,041h,05Dh,055h,05Fh,040h,03Eh,000h ; Hex #40
93 Db 01Ch,00Ch,01Ch,016h,03Eh,023h,063h,000h ; Hex #41
94 Db 07Ch,036h,036h,03Eh,033h,033h,07Eh,000h ; Hex #42
95 Db 01Dh,033h,061h,060h,060h,031h,01Eh,000h ; Hex #43
96 Db 07Ch,036h,033h,033h,033h,036h,07Ch,000h ; Hex #44
97 Db 07Fh,031h,034h,03Ch,034h,031h,07Fh,000h ; Hex #45
98 Db 07Fh,031h,034h,03Ch,034h,030h,078h,000h ; Hex #46
99 Db 01Dh,033h,061h,060h,067h,033h,01Fh,000h ; Hex #47
100 Db 066h,066h,066h,07Eh,066h,066h,066h,000h ; Hex #48
101 Db 03Ch,018h,018h,018h,018h,018h,03Ch,000h ; Hex #49
102 Db 01Fh,006h,006h,006h,066h,066h,03Ch,000h ; Hex #4A
103 Db 067h,066h,06Ch,078h,06Ch,066h,067h,000h ; Hex #4B
104 Db 078h,030h,030h,030h,031h,033h,07Fh,000h ; Hex #4C
105 Db 041h,063h,077h,07Fh,06Bh,063h,063h,000h ; Hex #4D
106 Db 043h,063h,073h,07Bh,06Fh,067h,063h,000h ; Hex #4E
107 Db 01Ch,036h,063h,063h,063h,036h,01Ch,000h ; Hex #4F
108 Db 07Eh,033h,033h,03Eh,030h,030h,078h,000h ; Hex #50
109 Db 01Ch,036h,063h,063h,06Bh,036h,01Ch,007h ; Hex #51
110 Db 07Ch,066h,066h,07Ch,06Ch,066h,067h,000h ; Hex #52
111 Db 03Eh,066h,070h,03Ch,00Eh,066h,07Ch,000h ; Hex #53
112 Db 07Eh,05Ah,018h,018h,018h,018h,03Ch,000h ; Hex #54
113 Db 063h,063h,063h,063h,063h,063h,03Eh,000h ; Hex #55
114 Db 077h,062h,036h,034h,01Ch,018h,008h,000h ; Hex #56
115 Db 063h,063h,06Bh,06Bh,03Eh,036h,022h,000h ; Hex #57
116 Db 066h,066h,03Ch,018h,03Ch,066h,066h,000h ; Hex #58
117 Db 0E7h,066h,034h,018h,018h,018h,03Ch,000h ; Hex #59
118 Db 07Eh,066h,04Ch,018h,032h,066h,07Eh,000h ; Hex #5A
119 Db 01Eh,018h,018h,018h,018h,018h,01Eh,000h ; Hex #5B
120 Db 060h,030h,018h,00Ch,006h,003h,001h,000h ; Hex #5C
121 Db 03Ch,00Ch,00Ch,00Ch,00Ch,00Ch,03Ch,000h ; Hex #5D
122 Db 008h,01Ch,036h,000h,000h,000h,000h,000h ; Hex #5E
123 Db 000h,000h,000h,000h,000h,000h,000h,0FFh ; Hex #5F
124 Db 030h,018h,00Ch,000h,000h,000h,000h,000h ; Hex #60
125 Db 000h,000h,03Ch,066h,01Eh,066h,07Bh,000h ; Hex #61
126 Db 070h,030h,03Eh,03Bh,033h,03Bh,06Eh,000h ; Hex #62
127 Db 000h,000h,03Eh,066h,060h,066h,03Ch,000h ; Hex #63
128 Db 00Eh,006h,036h,06Eh,066h,066h,03Bh,000h ; Hex #64
129 Db 000h,000h,03Ch,066h,07Eh,060h,03Eh,000h ; Hex #65
130 Db 00Eh,01Bh,018h,03Eh,018h,018h,03Ch,000h ; Hex #66
131 Db 000h,000h,03Dh,066h,038h,03Eh,063h,03Eh ; Hex #67
132 Db 070h,030h,036h,03Bh,033h,033h,073h,000h ; Hex #68
133 Db 018h,000h,038h,018h,018h,018h,03Ch,000h ; Hex #69
134 Db 00Ch,000h,01Ch,00Ch,00Ch,06Ch,06Ch,038h ; Hex #6A
135 Db 070h,030h,033h,036h,03Ch,036h,077h,000h ; Hex #6B
136 Db 038h,018h,018h,018h,018h,018h,03Ch,000h ; Hex #6C
137 Db 000h,000h,076h,07Fh,06Bh,06Bh,06Bh,000h ; Hex #6D
138 Db 000h,000h,076h,03Bh,033h,033h,073h,000h ; Hex #6E
139 Db 000h,000h,03Ch,066h,066h,066h,03Ch,000h ; Hex #6F
140 Db 000h,000h,06Eh,033h,033h,03Eh,030h,078h ; Hex #70
141 Db 000h,000h,03Ah,066h,066h,03Eh,006h,00Fh ; Hex #71
142 Db 000h,000h,06Eh,03Bh,033h,030h,078h,000h ; Hex #72
143 Db 000h,000h,03Eh,070h,03Ch,00Eh,07Ch,000h ; Hex #73
144 Db 008h,018h,03Eh,018h,018h,01Ah,00Ch,000h ; Hex #74
145 Db 000h,000h,066h,066h,066h,066h,03Bh,000h ; Hex #75
146 Db 000h,000h,073h,032h,036h,01Ch,008h,000h ; Hex #76
147 Db 000h,000h,06Bh,06Bh,07Fh,036h,022h,000h ; Hex #77
148 Db 000h,000h,073h,036h,01Ch,036h,067h,000h ; Hex #78
149 Db 000h,000h,077h,033h,01Ah,00Ch,06Ch,038h ; Hex #79
150 Db 000h,000h,07Eh,04Ch,018h,032h,07Eh,000h ; Hex #7A
151 Db 00Eh,018h,018h,070h,018h,018h,00Eh,000h ; Hex #7B
152 Db 018h,018h,018h,018h,018h,018h,018h,000h ; Hex #7C
153 Db 070h,018h,018h,00Eh,018h,018h,070h,000h ; Hex #7D
154 Db 039h,04Eh,000h,000h,000h,000h,000h,000h ; Hex #7E
155 Db 008h,01Ch,01Ch,036h,026h,063h,07Fh,07Fh ; Hex #7F
156 Db 01Dh,033h,061h,060h,060h,031h,00Eh,01Ch ; Hex #80
157 Db 06Ch,000h,066h,066h,066h,066h,03Bh,000h ; Hex #81
158 Db 00Eh,018h,03Ch,066h,07Eh,060h,03Eh,000h ; Hex #82
159 Db 018h,03Ch,03Ch,066h,01Eh,066h,07Bh,000h ; Hex #83
160 Db 036h,000h,03Ch,066h,01Eh,066h,07Bh,000h ; Hex #84
161 Db 030h,018h,03Ch,066h,01Eh,066h,07Bh,000h ; Hex #85
162 Db 018h,018h,03Ch,066h,01Eh,066h,07Bh,000h ; Hex #86
163 Db 000h,000h,03Eh,066h,060h,036h,01Ch,038h ; Hex #87
164 Db 018h,03Ch,03Ch,066h,07Eh,060h,03Eh,000h ; Hex #88
165 Db 036h,000h,03Ch,066h,07Eh,060h,03Eh,000h ; Hex #89
166 Db 030h,018h,03Ch,066h,07Eh,060h,03Eh,000h ; Hex #8A
167 Db 06Ch,000h,038h,018h,018h,018h,03Ch,000h ; Hex #8B
168 Db 018h,03Ch,000h,038h,018h,018h,03Ch,000h ; Hex #8C
169 Db 030h,018h,000h,038h,018h,018h,03Ch,000h ; Hex #8D
170 Db 036h,008h,01Ch,016h,036h,03Fh,063h,000h ; Hex #8E
171 Db 01Ch,014h,01Ch,01Eh,036h,03Fh,063h,000h ; Hex #8F
172 Db 007h,00Ch,07Fh,031h,03Ch,031h,07Fh,000h ; Hex #90
173 Db 000h,000h,076h,01Bh,03Fh,06Ch,077h,000h ; Hex #91
174 Db 03Fh,03Dh,02Ch,03Eh,06Ch,06Dh,06Fh,000h ; Hex #92
175 Db 018h,03Ch,03Ch,066h,066h,066h,03Ch,000h ; Hex #93
176 Db 066h,000h,03Ch,066h,066h,066h,03Ch,000h ; Hex #94
177 Db 070h,018h,03Ch,066h,066h,066h,03Ch,000h ; Hex #95
178 Db 018h,03Ch,042h,066h,066h,066h,03Bh,000h ; Hex #96
179 Db 070h,018h,066h,066h,066h,066h,03Bh,000h ; Hex #97
180 Db 036h,000h,077h,033h,01Ah,00Ch,06Ch,038h ; Hex #98
181 Db 063h,01Ch,036h,063h,063h,036h,01Ch,000h ; Hex #99
182 Db 036h,041h,063h,063h,063h,063h,03Eh,000h ; Hex #9A
183 Db 006h,004h,03Ch,06Eh,068h,06Ah,03Ch,030h ; Hex #9B
184 Db 01Eh,033h,033h,07Ch,039h,05Bh,076h,000h ; Hex #9C
185 Db 066h,066h,03Ch,07Eh,018h,07Eh,018h,000h ; Hex #9D
186 Db 078h,06Ch,06Ch,07Ah,066h,06Fh,066h,003h ; Hex #9E
187 Db 00Eh,01Bh,018h,03Eh,018h,018h,058h,070h ; Hex #9F
188 Db 00Eh,018h,03Ch,066h,01Eh,066h,07Bh,000h ; Hex #A0
189 Db 01Ch,030h,000h,038h,018h,018h,03Ch,000h ; Hex #A1
190 Db 00Eh,018h,03Ch,066h,066h,066h,03Ch,000h ; Hex #A2
191 Db 00Eh,018h,066h,066h,066h,066h,03Bh,000h ; Hex #A3
192 Db 01Ah,02Ch,076h,03Bh,033h,033h,073h,000h ; Hex #A4
193 Db 01Ah,02Ch,073h,07Bh,06Fh,067h,063h,000h ; Hex #A5
194 Db 01Eh,036h,036h,01Fh,000h,03Fh,000h,000h ; Hex #A6
195 Db 01Ch,036h,036h,01Ch,000h,03Eh,000h,000h ; Hex #A7
196 Db 018h,000h,018h,030h,064h,066h,03Ch,000h ; Hex #A8
197 Db 000h,000h,000h,07Eh,060h,060h,000h,000h ; Hex #A9
198 Db 000h,000h,000h,07Eh,006h,006h,000h,000h ; Hex #AA
199 Db 060h,066h,06Ch,07Eh,03Bh,066h,04Ch,00Fh ; Hex #AB
200 Db 060h,066h,06Ch,07Bh,037h,06Bh,04Fh,003h ; Hex #AC
201 Db 018h,000h,018h,018h,018h,018h,018h,000h ; Hex #AD
202 Db 000h,01Bh,036h,06Ch,06Ch,036h,01Bh,000h ; Hex #AE
203 Db 000h,06Ch,036h,01Bh,01Bh,036h,06Ch,000h ; Hex #AF
204 Db 011h,044h,011h,044h,011h,044h,011h,044h ; Hex #B0
205 Db 055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh ; Hex #B1
206 Db 0EEh,0BBh,0EEh,0BBh,0EEh,0BBh,0EEh,0BBh ; Hex #B2
207 Db 018h,018h,018h,018h,018h,018h,018h,018h ; Hex #B3
208 Db 018h,018h,018h,0F8h,0F8h,018h,018h,018h ; Hex #B4
209 Db 018h,018h,0F8h,0F8h,018h,0F8h,018h,018h ; Hex #B5
210 Db 034h,034h,034h,0F4h,0F4h,034h,034h,034h ; Hex #B6
211 Db 000h,000h,000h,0F8h,0FCh,034h,034h,034h ; Hex #B7
212 Db 000h,000h,0F0h,0F8h,018h,0F8h,018h,018h ; Hex #B8
213 Db 034h,034h,0F4h,0F4h,004h,0F4h,034h,034h ; Hex #B9
214 Db 034h,034h,034h,034h,034h,034h,034h,034h ; Hex #BA
215 Db 000h,000h,0F8h,0FCh,004h,0F4h,034h,034h ; Hex #BB
216 Db 034h,034h,0F4h,0F4h,004h,0FCh,000h,000h ; Hex #BC
217 Db 034h,034h,034h,0FCh,0FCh,000h,000h,000h ; Hex #BD
218 Db 018h,018h,0F8h,0F8h,018h,0F8h,000h,000h ; Hex #BE
219 Db 000h,000h,000h,0F8h,0F8h,018h,018h,018h ; Hex #BF
220 Db 018h,018h,018h,01Fh,01Fh,000h,000h,000h ; Hex #C0
221 Db 018h,018h,018h,0FFh,0FFh,000h,000h,000h ; Hex #C1
222 Db 000h,000h,000h,0FFh,0FFh,018h,018h,018h ; Hex #C2
223 Db 018h,018h,018h,01Fh,01Fh,018h,018h,018h ; Hex #C3
224 Db 000h,000h,000h,0FFh,0FFh,000h,000h,000h ; Hex #C4
225 Db 018h,018h,018h,0FFh,0FFh,018h,018h,018h ; Hex #C5
226 Db 018h,018h,01Fh,01Fh,018h,01Fh,018h,018h ; Hex #C6
227 Db 034h,034h,034h,037h,037h,034h,034h,034h ; Hex #C7
228 Db 034h,034h,037h,037h,030h,01Fh,000h,000h ; Hex #C8
229 Db 000h,000h,03Fh,03Fh,030h,037h,034h,034h ; Hex #C9
230 Db 034h,034h,0F7h,0F7h,000h,0FFh,000h,000h ; Hex #CA
231 Db 000h,000h,0FFh,0FFh,000h,0F7h,034h,034h ; Hex #CB
232 Db 034h,034h,037h,037h,030h,037h,034h,034h ; Hex #CC
233 Db 000h,000h,0FFh,0FFh,000h,0FFh,000h,000h ; Hex #CD
234 Db 034h,034h,0F7h,0F7h,000h,0F7h,034h,034h ; Hex #CE
235 Db 018h,018h,0FFh,0FFh,000h,0FFh,000h,000h ; Hex #CF
236 Db 034h,034h,034h,0FFh,0FFh,000h,000h,000h ; Hex #D0
237 Db 000h,000h,0FFh,0FFh,000h,0FFh,018h,018h ; Hex #D1
238 Db 000h,000h,000h,0FFh,0FFh,034h,034h,034h ; Hex #D2
239 Db 034h,034h,034h,03Fh,01Fh,000h,000h,000h ; Hex #D3
240 Db 018h,018h,01Fh,01Fh,018h,00Fh,000h,000h ; Hex #D4
241 Db 000h,000h,01Fh,01Fh,018h,01Fh,018h,018h ; Hex #D5
242 Db 000h,000h,000h,03Fh,03Fh,034h,034h,034h ; Hex #D6
243 Db 034h,034h,034h,0FFh,0FFh,034h,034h,034h ; Hex #D7
244 Db 018h,018h,0FFh,0FFh,018h,0FFh,018h,018h ; Hex #D8
245 Db 018h,018h,018h,0F8h,0F8h,000h,000h,000h ; Hex #D9
246 Db 000h,000h,000h,01Fh,01Fh,018h,018h,018h ; Hex #DA
247 Db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh ; Hex #DB
248 Db 000h,000h,000h,000h,0FFh,0FFh,0FFh,0FFh ; Hex #DC
249 Db 0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h ; Hex #DD
250 Db 00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh ; Hex #DE
251 Db 0FFh,0FFh,0FFh,0FFh,000h,000h,000h,000h ; Hex #DF
252 Db 000h,000h,03Dh,06Eh,066h,06Eh,03Bh,000h ; Hex #E0
253 Db 03Ch,066h,06Ch,066h,063h,07Bh,06Eh,000h ; Hex #E1
254 Db 07Fh,033h,031h,030h,030h,030h,078h,000h ; Hex #E2
255 Db 000h,03Fh,07Eh,054h,014h,036h,066h,000h ; Hex #E3
256 Db 07Fh,033h,018h,00Ch,018h,033h,07Fh,000h ; Hex #E4
257 Db 000h,000h,03Fh,06Ch,06Ch,06Ch,038h,000h ; Hex #E5
258 Db 000h,000h,033h,033h,033h,037h,06Dh,060h ; Hex #E6
259 Db 000h,03Fh,07Eh,050h,018h,01Ch,00Ch,000h ; Hex #E7
260 Db 01Ch,008h,03Eh,06Bh,03Eh,008h,01Ch,000h ; Hex #E8
261 Db 01Ch,036h,063h,07Fh,063h,036h,01Ch,000h ; Hex #E9
262 Db 01Ch,036h,063h,063h,036h,055h,077h,000h ; Hex #EA
263 Db 01Ch,030h,018h,02Ch,066h,066h,03Ch,000h ; Hex #EB
264 Db 000h,036h,07Fh,04Dh,059h,07Fh,036h,000h ; Hex #EC
265 Db 001h,003h,03Eh,067h,06Bh,073h,03Eh,040h ; Hex #ED
266 Db 000h,000h,01Eh,030h,03Eh,030h,01Eh,000h ; Hex #EE
267 Db 03Ch,066h,066h,066h,066h,066h,066h,000h ; Hex #EF
268 Db 000h,07Eh,000h,07Eh,000h,07Eh,000h,000h ; Hex #F0
269 Db 018h,018h,07Eh,018h,018h,000h,07Eh,000h ; Hex #F1
270 Db 060h,038h,00Eh,038h,060h,000h,07Eh,000h ; Hex #F2
271 Db 006h,01Ch,070h,01Ch,006h,000h,07Eh,000h ; Hex #F3
272 Db 00Eh,01Bh,01Ah,018h,018h,018h,018h,018h ; Hex #F4
273 Db 018h,018h,018h,018h,058h,0D8h,070h,000h ; Hex #F5
274 Db 018h,018h,000h,07Eh,000h,018h,018h,000h ; Hex #F6
275 Db 000h,03Bh,06Eh,000h,03Bh,06Eh,000h,000h ; Hex #F7
276 Db 01Ch,036h,036h,01Ch,000h,000h,000h,000h ; Hex #F8
277 Db 000h,000h,018h,03Ch,018h,000h,000h,000h ; Hex #F9
278 Db 000h,000h,000h,018h,000h,000h,000h,000h ; Hex #FA
279 Db 003h,002h,006h,024h,06Ch,038h,018h,010h ; Hex #FB
280 Db 076h,03Bh,033h,033h,033h,000h,000h,000h ; Hex #FC
281 Db 03Ch,066h,00Ch,038h,07Eh,000h,000h,000h ; Hex #FD
282 Db 000h,000h,03Ch,03Ch,03Ch,03Ch,000h,000h ; Hex #FE
283 Db 000h,000h,000h,000h,000h,000h,000h,000h ; Hex #FF
284LEN_D437 EQU ($-D437)
285 ;
286POST_EGA437 EQU $ ;
287 ;
288CODE ENDS
289 END
290 \ No newline at end of file
diff --git a/v4.0/src/DEV/DISPLAY/LCD/850-CPI.ASM b/v4.0/src/DEV/DISPLAY/LCD/850-CPI.ASM
new file mode 100644
index 0000000..317c65d
--- /dev/null
+++ b/v4.0/src/DEV/DISPLAY/LCD/850-CPI.ASM
@@ -0,0 +1,290 @@
1CODE SEGMENT BYTE PUBLIC 'CODE'
2 ASSUME CS:CODE,DS:CODE
3
4IF1
5 %OUT EGA.CPI creation file
6 %OUT .
7 %OUT CP SRC files:
8 %OUT .
9 %OUT . CODE PAGE: 850
10ENDIF
11
12EGA850: DW LEN_850 ;SIZE OF ENTRY HEADER
13 DW POST_EGA850,0 ;POINTER TO NEXT HEADER
14 DW 1 ;DEVICE TYPE
15 DB "LCD " ;DEVICE SUBTYPE ID
16 DW 850 ;CODE PAGE ID
17 DW 3 DUP(0) ;RESERVED
18 DW OFFSET DATA850,0 ;POINTER TO FONTS
19LEN_850 EQU ($-EGA850)
20
21DATA850:DW 1 ;CART/NON-CART
22 DW 1 ;# OF FONTS
23 DW LEN_D850 ;LENGTH OF DATA
24D850: ;
25 DB 8,8 ;CHARACTER BOX SIZE
26 DB 0,0 ;ASPECT RATIO (UNUSED)
27 DW 256 ;NUMBER OF CHARACTERS
28 Db 000h,000h,000h,000h,000h,000h,000h,000h ; Hex #0
29 Db 03Ch,042h,0A5h,0A5h,081h,0BDh,05Ah,03Ch ; Hex #1
30 Db 03Ch,07Eh,0DBh,0DBh,0FFh,0C3h,066h,03Ch ; Hex #2
31 Db 036h,07Fh,07Fh,07Fh,03Eh,01Ch,008h,000h ; Hex #3
32 Db 008h,01Ch,03Eh,07Fh,03Eh,01Ch,008h,000h ; Hex #4
33 Db 01Ch,03Eh,01Ch,07Fh,07Fh,036h,008h,01Ch ; Hex #5
34 Db 008h,01Ch,03Eh,07Fh,07Fh,036h,008h,01Ch ; Hex #6
35 Db 000h,000h,018h,03Ch,03Ch,018h,000h,000h ; Hex #7
36 Db 0FFh,0FFh,0E7h,0C3h,0C3h,0E7h,0FFh,0FFh ; Hex #8
37 Db 000h,000h,03Ch,066h,066h,03Ch,000h,000h ; Hex #9
38 Db 0FFh,0FFh,0C3h,099h,099h,0C3h,0FFh,0FFh ; Hex #A
39 Db 007h,003h,03Eh,066h,066h,066h,03Ch,000h ; Hex #B
40 Db 03Ch,066h,066h,066h,03Ch,018h,03Ch,018h ; Hex #C
41 Db 008h,00Ch,00Eh,00Ah,00Ah,008h,038h,030h ; Hex #D
42 Db 018h,016h,019h,017h,071h,061h,007h,006h ; Hex #E
43 Db 048h,06Bh,03Eh,0E4h,027h,07Ch,0D6h,012h ; Hex #F
44 Db 040h,070h,07Ch,07Fh,07Ch,070h,040h,000h ; Hex #10
45 Db 001h,007h,01Fh,07Fh,01Fh,007h,001h,000h ; Hex #11
46 Db 018h,03Ch,07Eh,018h,018h,07Eh,03Ch,018h ; Hex #12
47 Db 036h,036h,036h,036h,036h,000h,036h,000h ; Hex #13
48 Db 03Fh,06Ah,06Ah,03Ah,00Ah,00Ah,01Ah,000h ; Hex #14
49 Db 03Ch,076h,038h,06Ch,036h,01Ch,06Eh,03Ch ; Hex #15
50 Db 000h,000h,000h,07Fh,07Fh,07Fh,000h,000h ; Hex #16
51 Db 018h,03Ch,07Eh,018h,07Eh,03Ch,018h,0FFh ; Hex #17
52 Db 018h,03Ch,07Eh,05Ah,018h,018h,018h,000h ; Hex #18
53 Db 018h,018h,018h,05Ah,07Eh,03Ch,018h,000h ; Hex #19
54 Db 000h,00Ch,006h,07Fh,07Fh,006h,00Ch,000h ; Hex #1A
55 Db 000h,018h,030h,07Fh,07Fh,030h,018h,000h ; Hex #1B
56 Db 000h,000h,060h,060h,07Fh,07Fh,000h,000h ; Hex #1C
57 Db 000h,014h,036h,07Fh,07Fh,036h,014h,000h ; Hex #1D
58 Db 008h,008h,01Ch,01Ch,03Eh,03Eh,07Fh,000h ; Hex #1E
59 Db 07Fh,03Eh,03Eh,01Ch,01Ch,008h,008h,000h ; Hex #1F
60 Db 000h,000h,000h,000h,000h,000h,000h,000h ; Hex #20
61 Db 018h,018h,018h,018h,018h,000h,018h,000h ; Hex #21
62 Db 036h,036h,014h,000h,000h,000h,000h,000h ; Hex #22
63 Db 00Ah,00Ah,03Fh,014h,07Eh,028h,028h,000h ; Hex #23
64 Db 008h,03Eh,068h,03Eh,00Bh,07Eh,008h,000h ; Hex #24
65 Db 001h,03Fh,052h,06Ch,01Bh,035h,076h,000h ; Hex #25
66 Db 01Ch,036h,01Ch,03Bh,06Eh,066h,03Bh,000h ; Hex #26
67 Db 018h,018h,030h,000h,000h,000h,000h,000h ; Hex #27
68 Db 006h,00Ch,018h,018h,018h,00Ch,006h,000h ; Hex #28
69 Db 030h,018h,00Ch,00Ch,00Ch,018h,030h,000h ; Hex #29
70 Db 000h,036h,01Ch,07Fh,01Ch,036h,000h,000h ; Hex #2A
71 Db 000h,018h,018h,07Eh,018h,018h,000h,000h ; Hex #2B
72 Db 000h,000h,000h,000h,000h,018h,018h,030h ; Hex #2C
73 Db 000h,000h,000h,07Eh,000h,000h,000h,000h ; Hex #2D
74 Db 000h,000h,000h,000h,000h,018h,018h,000h ; Hex #2E
75 Db 003h,006h,00Ch,018h,030h,060h,040h,000h ; Hex #2F
76 Db 018h,02Ch,066h,066h,066h,034h,018h,000h ; Hex #30
77 Db 018h,018h,038h,018h,018h,018h,03Ch,000h ; Hex #31
78 Db 03Ch,066h,066h,00Ch,018h,032h,07Eh,000h ; Hex #32
79 Db 03Ch,066h,00Ch,01Ch,006h,066h,03Ch,000h ; Hex #33
80 Db 00Ch,01Ch,02Ch,06Ch,07Eh,00Ch,01Eh,000h ; Hex #34
81 Db 07Eh,060h,07Ch,066h,006h,066h,03Ch,000h ; Hex #35
82 Db 01Ch,030h,060h,07Ch,066h,066h,03Ch,000h ; Hex #36
83 Db 07Eh,066h,04Ch,00Ch,018h,018h,038h,000h ; Hex #37
84 Db 03Ch,066h,076h,03Ch,06Eh,066h,03Ch,000h ; Hex #38
85 Db 03Ch,066h,066h,03Eh,006h,00Ch,038h,000h ; Hex #39
86 Db 000h,018h,018h,000h,000h,018h,018h,000h ; Hex #3A
87 Db 000h,018h,018h,000h,000h,018h,018h,030h ; Hex #3B
88 Db 006h,00Ch,018h,030h,018h,00Ch,006h,000h ; Hex #3C
89 Db 000h,000h,07Eh,000h,07Eh,000h,000h,000h ; Hex #3D
90 Db 030h,018h,00Ch,006h,00Ch,018h,030h,000h ; Hex #3E
91 Db 03Ch,066h,026h,00Ch,018h,000h,018h,000h ; Hex #3F
92 Db 03Eh,041h,05Dh,055h,05Fh,040h,03Eh,000h ; Hex #40
93 Db 01Ch,00Ch,01Ch,016h,03Eh,023h,063h,000h ; Hex #41
94 Db 07Ch,036h,036h,03Eh,033h,033h,07Eh,000h ; Hex #42
95 Db 01Dh,033h,061h,060h,060h,031h,01Eh,000h ; Hex #43
96 Db 07Ch,036h,033h,033h,033h,036h,07Ch,000h ; Hex #44
97 Db 07Fh,031h,034h,03Ch,034h,031h,07Fh,000h ; Hex #45
98 Db 07Fh,031h,034h,03Ch,034h,030h,078h,000h ; Hex #46
99 Db 01Dh,033h,061h,060h,067h,033h,01Fh,000h ; Hex #47
100 Db 066h,066h,066h,07Eh,066h,066h,066h,000h ; Hex #48
101 Db 03Ch,018h,018h,018h,018h,018h,03Ch,000h ; Hex #49
102 Db 01Fh,006h,006h,006h,066h,066h,03Ch,000h ; Hex #4A
103 Db 067h,066h,06Ch,078h,06Ch,066h,067h,000h ; Hex #4B
104 Db 078h,030h,030h,030h,031h,033h,07Fh,000h ; Hex #4C
105 Db 041h,063h,077h,07Fh,06Bh,063h,063h,000h ; Hex #4D
106 Db 043h,063h,073h,07Bh,06Fh,067h,063h,000h ; Hex #4E
107 Db 01Ch,036h,063h,063h,063h,036h,01Ch,000h ; Hex #4F
108 Db 07Eh,033h,033h,03Eh,030h,030h,078h,000h ; Hex #50
109 Db 01Ch,036h,063h,063h,06Bh,036h,01Ch,007h ; Hex #51
110 Db 07Ch,066h,066h,07Ch,06Ch,066h,067h,000h ; Hex #52
111 Db 03Eh,066h,070h,03Ch,00Eh,066h,07Ch,000h ; Hex #53
112 Db 07Eh,05Ah,018h,018h,018h,018h,03Ch,000h ; Hex #54
113 Db 063h,063h,063h,063h,063h,063h,03Eh,000h ; Hex #55
114 Db 077h,062h,036h,034h,01Ch,018h,008h,000h ; Hex #56
115 Db 063h,063h,06Bh,06Bh,03Eh,036h,022h,000h ; Hex #57
116 Db 066h,066h,03Ch,018h,03Ch,066h,066h,000h ; Hex #58
117 Db 0E7h,066h,034h,018h,018h,018h,03Ch,000h ; Hex #59
118 Db 07Eh,066h,04Ch,018h,032h,066h,07Eh,000h ; Hex #5A
119 Db 01Eh,018h,018h,018h,018h,018h,01Eh,000h ; Hex #5B
120 Db 060h,030h,018h,00Ch,006h,003h,001h,000h ; Hex #5C
121 Db 03Ch,00Ch,00Ch,00Ch,00Ch,00Ch,03Ch,000h ; Hex #5D
122 Db 008h,01Ch,036h,000h,000h,000h,000h,000h ; Hex #5E
123 Db 000h,000h,000h,000h,000h,000h,000h,0FFh ; Hex #5F
124 Db 030h,018h,00Ch,000h,000h,000h,000h,000h ; Hex #60
125 Db 000h,000h,03Ch,066h,01Eh,066h,07Bh,000h ; Hex #61
126 Db 070h,030h,03Eh,03Bh,033h,03Bh,06Eh,000h ; Hex #62
127 Db 000h,000h,03Eh,066h,060h,066h,03Ch,000h ; Hex #63
128 Db 00Eh,006h,036h,06Eh,066h,066h,03Bh,000h ; Hex #64
129 Db 000h,000h,03Ch,066h,07Eh,060h,03Eh,000h ; Hex #65
130 Db 00Eh,01Bh,018h,03Eh,018h,018h,03Ch,000h ; Hex #66
131 Db 000h,000h,03Dh,066h,038h,03Eh,063h,03Eh ; Hex #67
132 Db 070h,030h,036h,03Bh,033h,033h,073h,000h ; Hex #68
133 Db 018h,000h,038h,018h,018h,018h,03Ch,000h ; Hex #69
134 Db 00Ch,000h,01Ch,00Ch,00Ch,06Ch,06Ch,038h ; Hex #6A
135 Db 070h,030h,033h,036h,03Ch,036h,077h,000h ; Hex #6B
136 Db 038h,018h,018h,018h,018h,018h,03Ch,000h ; Hex #6C
137 Db 000h,000h,076h,07Fh,06Bh,06Bh,06Bh,000h ; Hex #6D
138 Db 000h,000h,076h,03Bh,033h,033h,073h,000h ; Hex #6E
139 Db 000h,000h,03Ch,066h,066h,066h,03Ch,000h ; Hex #6F
140 Db 000h,000h,06Eh,033h,033h,03Eh,030h,078h ; Hex #70
141 Db 000h,000h,03Ah,066h,066h,03Eh,006h,00Fh ; Hex #71
142 Db 000h,000h,06Eh,03Bh,033h,030h,078h,000h ; Hex #72
143 Db 000h,000h,03Eh,070h,03Ch,00Eh,07Ch,000h ; Hex #73
144 Db 008h,018h,03Eh,018h,018h,01Ah,00Ch,000h ; Hex #74
145 Db 000h,000h,066h,066h,066h,066h,03Bh,000h ; Hex #75
146 Db 000h,000h,073h,032h,036h,01Ch,008h,000h ; Hex #76
147 Db 000h,000h,06Bh,06Bh,07Fh,036h,022h,000h ; Hex #77
148 Db 000h,000h,073h,036h,01Ch,036h,067h,000h ; Hex #78
149 Db 000h,000h,077h,033h,01Ah,00Ch,06Ch,038h ; Hex #79
150 Db 000h,000h,07Eh,04Ch,018h,032h,07Eh,000h ; Hex #7A
151 Db 00Eh,018h,018h,070h,018h,018h,00Eh,000h ; Hex #7B
152 Db 018h,018h,018h,018h,018h,018h,018h,000h ; Hex #7C
153 Db 070h,018h,018h,00Eh,018h,018h,070h,000h ; Hex #7D
154 Db 039h,04Eh,000h,000h,000h,000h,000h,000h ; Hex #7E
155 Db 008h,01Ch,01Ch,036h,026h,063h,07Fh,07Fh ; Hex #7F
156 Db 01Dh,033h,061h,060h,060h,031h,00Eh,01Ch ; Hex #80
157 Db 06Ch,000h,066h,066h,066h,066h,03Bh,000h ; Hex #81
158 Db 00Ch,018h,03Ch,066h,07Eh,060h,03Eh,000h ; Hex #82
159 Db 018h,03Ch,03Ch,066h,01Eh,066h,07Bh,000h ; Hex #83
160 Db 036h,000h,03Ch,066h,01Eh,066h,07Bh,000h ; Hex #84
161 Db 030h,018h,03Ch,066h,01Eh,066h,07Bh,000h ; Hex #85
162 Db 018h,018h,03Ch,066h,01Eh,066h,07Bh,000h ; Hex #86
163 Db 000h,000h,03Eh,066h,060h,036h,01Ch,038h ; Hex #87
164 Db 018h,03Ch,03Ch,066h,07Eh,060h,03Eh,000h ; Hex #88
165 Db 036h,000h,03Ch,066h,07Eh,060h,03Eh,000h ; Hex #89
166 Db 030h,018h,03Ch,066h,07Eh,060h,03Eh,000h ; Hex #8A
167 Db 06Ch,000h,038h,018h,018h,018h,03Ch,000h ; Hex #8B
168 Db 018h,03Ch,000h,038h,018h,018h,03Ch,000h ; Hex #8C
169 Db 030h,018h,000h,038h,018h,018h,03Ch,000h ; Hex #8D
170 Db 036h,008h,01Ch,016h,036h,03Fh,063h,000h ; Hex #8E
171 Db 01Ch,014h,01Ch,01Eh,036h,03Fh,063h,000h ; Hex #8F
172 Db 006h,00Ch,07Fh,031h,03Ch,031h,07Fh,000h ; Hex #90
173 Db 000h,000h,076h,01Bh,03Fh,06Ch,077h,000h ; Hex #91
174 Db 03Fh,03Dh,02Ch,03Eh,06Ch,06Dh,06Fh,000h ; Hex #92
175 Db 018h,03Ch,03Ch,066h,066h,066h,03Ch,000h ; Hex #93
176 Db 066h,000h,03Ch,066h,066h,066h,03Ch,000h ; Hex #94
177 Db 030h,018h,03Ch,066h,066h,066h,03Ch,000h ; Hex #95
178 Db 018h,03Ch,042h,066h,066h,066h,03Bh,000h ; Hex #96
179 Db 030h,018h,066h,066h,066h,066h,03Bh,000h ; Hex #97
180 Db 036h,000h,077h,033h,01Ah,00Ch,06Ch,038h ; Hex #98
181 Db 063h,01Ch,036h,063h,063h,036h,01Ch,000h ; Hex #99
182 Db 036h,041h,063h,063h,063h,063h,03Eh,000h ; Hex #9A
183 Db 000h,004h,03Ch,06Eh,07Eh,076h,03Ch,020h ; Hex #9B
184 Db 01Eh,033h,033h,07Ch,039h,05Bh,076h,000h ; Hex #9C
185 Db 01Dh,036h,067h,06Bh,073h,036h,05Ch,000h ; Hex #9D
186 Db 000h,066h,03Ch,018h,03Ch,066h,000h,000h ; Hex #9E
187 Db 00Eh,01Bh,018h,03Eh,018h,018h,058h,070h ; Hex #9F
188 Db 00Ch,018h,03Ch,066h,01Eh,066h,07Bh,000h ; Hex #A0
189 Db 018h,030h,000h,038h,018h,018h,03Ch,000h ; Hex #A1
190 Db 00Ch,018h,03Ch,066h,066h,066h,03Ch,000h ; Hex #A2
191 Db 00Ch,018h,066h,066h,066h,066h,03Bh,000h ; Hex #A3
192 Db 01Ah,02Ch,076h,03Bh,033h,033h,073h,000h ; Hex #A4
193 Db 01Ah,02Ch,073h,07Bh,06Fh,067h,063h,000h ; Hex #A5
194 Db 01Eh,036h,036h,01Fh,000h,03Fh,000h,000h ; Hex #A6
195 Db 01Ch,036h,036h,01Ch,000h,03Eh,000h,000h ; Hex #A7
196 Db 018h,000h,018h,030h,064h,066h,03Ch,000h ; Hex #A8
197 Db 03Eh,07Bh,055h,059h,05Dh,077h,03Eh,000h ; Hex #A9
198 Db 000h,000h,000h,07Eh,006h,006h,000h,000h ; Hex #AA
199 Db 060h,066h,06Ch,07Eh,03Bh,066h,04Ch,00Fh ; Hex #AB
200 Db 060h,066h,06Ch,07Bh,037h,06Bh,04Fh,003h ; Hex #AC
201 Db 018h,000h,018h,018h,018h,018h,018h,000h ; Hex #AD
202 Db 000h,01Bh,036h,06Ch,06Ch,036h,01Bh,000h ; Hex #AE
203 Db 000h,06Ch,036h,01Bh,01Bh,036h,06Ch,000h ; Hex #AF
204 Db 011h,044h,011h,044h,011h,044h,011h,044h ; Hex #B0
205 Db 055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh ; Hex #B1
206 Db 0EEh,0BBh,0EEh,0BBh,0EEh,0BBh,0EEh,0BBh ; Hex #B2
207 Db 018h,018h,018h,018h,018h,018h,018h,018h ; Hex #B3
208 Db 018h,018h,018h,0F8h,0F8h,018h,018h,018h ; Hex #B4
209 Db 00Ch,018h,01Ch,016h,036h,03Fh,063h,000h ; Hex #B5
210 Db 01Ch,036h,008h,01Eh,036h,03Fh,063h,000h ; Hex #B6
211 Db 01Ch,006h,01Ch,016h,036h,03Fh,063h,000h ; Hex #B7
212 Db 03Eh,06Bh,05Dh,051h,05Dh,06Bh,03Eh,000h ; Hex #B8
213 Db 034h,034h,0F4h,0F4h,004h,0F4h,034h,034h ; Hex #B9
214 Db 034h,034h,034h,034h,034h,034h,034h,034h ; Hex #BA
215 Db 000h,000h,0F8h,0FCh,004h,0F4h,034h,034h ; Hex #BB
216 Db 034h,034h,0F4h,0F4h,004h,0FCh,000h,000h ; Hex #BC
217 Db 006h,004h,03Ch,06Eh,068h,06Ah,03Ch,030h ; Hex #BD
218 Db 066h,066h,03Ch,07Eh,018h,07Eh,018h,000h ; Hex #BE
219 Db 000h,000h,000h,0F8h,0F8h,018h,018h,018h ; Hex #BF
220 Db 018h,018h,018h,01Fh,01Fh,000h,000h,000h ; Hex #C0
221 Db 018h,018h,018h,0FFh,0FFh,000h,000h,000h ; Hex #C1
222 Db 000h,000h,000h,0FFh,0FFh,018h,018h,018h ; Hex #C2
223 Db 018h,018h,018h,01Fh,01Fh,018h,018h,018h ; Hex #C3
224 Db 000h,000h,000h,0FFh,0FFh,000h,000h,000h ; Hex #C4
225 Db 018h,018h,018h,0FFh,0FFh,018h,018h,018h ; Hex #C5
226 Db 039h,04Eh,03Ch,066h,01Eh,066h,07Bh,000h ; Hex #C6
227 Db 03Bh,06Eh,01Ch,016h,036h,03Fh,063h,000h ; Hex #C7
228 Db 034h,034h,037h,037h,030h,01Fh,000h,000h ; Hex #C8
229 Db 000h,000h,03Fh,03Fh,030h,037h,034h,034h ; Hex #C9
230 Db 034h,034h,0F7h,0F7h,000h,0FFh,000h,000h ; Hex #CA
231 Db 000h,000h,0FFh,0FFh,000h,0F7h,034h,034h ; Hex #CB
232 Db 034h,034h,037h,037h,030h,037h,034h,034h ; Hex #CC
233 Db 000h,000h,0FFh,0FFh,000h,0FFh,000h,000h ; Hex #CD
234 Db 034h,034h,0F7h,0F7h,000h,0F7h,034h,034h ; Hex #CE
235 Db 000h,066h,07Eh,024h,024h,07Eh,066h,000h ; Hex #CF
236 Db 036h,018h,06Ch,036h,066h,066h,03Ch,000h ; Hex #D0
237 Db 07Ch,036h,033h,07Bh,033h,036h,07Ch,000h ; Hex #D1
238 Db 01Ch,036h,07Fh,031h,03Ch,031h,07Fh,000h ; Hex #D2
239 Db 036h,000h,07Fh,031h,03Ch,031h,07Fh,000h ; Hex #D3
240 Db 018h,00Ch,07Fh,031h,03Ch,031h,07Fh,000h ; Hex #D4
241 Db 000h,000h,038h,018h,018h,018h,03Ch,000h ; Hex #D5
242 Db 00Ch,018h,03Ch,018h,018h,018h,03Ch,000h ; Hex #D6
243 Db 018h,024h,03Ch,018h,018h,018h,03Ch,000h ; Hex #D7
244 Db 066h,000h,03Ch,018h,018h,018h,03Ch,000h ; Hex #D8
245 Db 018h,018h,018h,0F8h,0F8h,000h,000h,000h ; Hex #D9
246 Db 000h,000h,000h,01Fh,01Fh,018h,018h,018h ; Hex #DA
247 Db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh ; Hex #DB
248 Db 000h,000h,000h,000h,0FFh,0FFh,0FFh,0FFh ; Hex #DC
249 Db 018h,018h,018h,000h,000h,018h,018h,018h ; Hex #DD
250 Db 030h,018h,03Ch,018h,018h,018h,03Ch,000h ; Hex #DE
251 Db 0FFh,0FFh,0FFh,0FFh,000h,000h,000h,000h ; Hex #DF
252 Db 006h,00Ch,036h,063h,063h,036h,01Ch,000h ; Hex #E0
253 Db 03Ch,066h,06Ch,06Eh,063h,07Bh,06Eh,000h ; Hex #E1
254 Db 01Ch,036h,03Eh,063h,063h,036h,01Ch,000h ; Hex #E2
255 Db 018h,00Ch,036h,063h,063h,036h,01Ch,000h ; Hex #E3
256 Db 03Ah,06Eh,03Ch,066h,066h,066h,03Ch,000h ; Hex #E4
257 Db 03Bh,06Eh,036h,063h,063h,036h,01Ch,000h ; Hex #E5
258 Db 000h,000h,033h,033h,033h,037h,06Dh,060h ; Hex #E6
259 Db 070h,030h,03Eh,033h,033h,03Eh,030h,078h ; Hex #E7
260 Db 078h,03Eh,033h,033h,03Eh,030h,078h,000h ; Hex #E8
261 Db 00Ch,05Bh,063h,063h,063h,063h,03Eh,000h ; Hex #E9
262 Db 01Ch,077h,063h,063h,063h,063h,03Eh,000h ; Hex #EA
263 Db 018h,06Dh,063h,063h,063h,063h,03Eh,000h ; Hex #EB
264 Db 006h,00Ch,077h,033h,01Ah,00Ch,06Ch,038h ; Hex #EC
265 Db 00Ch,0DBh,066h,034h,018h,018h,03Ch,000h ; Hex #ED
266 Db 0FFh,000h,000h,000h,000h,000h,000h,000h ; Hex #EE
267 Db 00Ch,018h,030h,000h,000h,000h,000h,000h ; Hex #EF
268 Db 000h,000h,000h,07Eh,000h,000h,000h,000h ; Hex #F0
269 Db 018h,018h,07Eh,018h,018h,000h,07Eh,000h ; Hex #F1
270 Db 000h,000h,000h,000h,000h,0FFh,000h,0FFh ; Hex #F2
271 Db 070h,05Bh,036h,05Fh,07Fh,03Bh,06Fh,043h ; Hex #F3
272 Db 03Fh,06Ah,06Ah,03Ah,00Ah,00Ah,01Ah,000h ; Hex #F4
273 Db 03Ch,076h,038h,06Ch,036h,01Ch,06Eh,03Ch ; Hex #F5
274 Db 018h,018h,000h,07Eh,000h,018h,018h,000h ; Hex #F6
275 Db 000h,000h,000h,000h,000h,000h,00Eh,01Ch ; Hex #F7
276 Db 01Ch,036h,036h,01Ch,000h,000h,000h,000h ; Hex #F8
277 Db 036h,000h,000h,000h,000h,000h,000h,000h ; Hex #F9
278 Db 000h,000h,000h,018h,000h,000h,000h,000h ; Hex #FA
279 Db 018h,038h,018h,018h,03Ch,000h,000h,000h ; Hex #FB
280 Db 03Ch,066h,01Ch,066h,03Ch,000h,000h,000h ; Hex #FC
281 Db 03Ch,066h,00Ch,038h,07Eh,000h,000h,000h ; Hex #FD
282 Db 000h,000h,03Ch,03Ch,03Ch,03Ch,000h,000h ; Hex #FE
283 Db 000h,000h,000h,000h,000h,000h,000h,000h ; Hex #FF
284LEN_D850 EQU ($-D850)
285 ;
286POST_EGA850 EQU $ ;
287 ;
288CODE ENDS
289 END
290 \ No newline at end of file
diff --git a/v4.0/src/DEV/DISPLAY/LCD/860-CPI.ASM b/v4.0/src/DEV/DISPLAY/LCD/860-CPI.ASM
new file mode 100644
index 0000000..0c3e76c
--- /dev/null
+++ b/v4.0/src/DEV/DISPLAY/LCD/860-CPI.ASM
@@ -0,0 +1,290 @@
1CODE SEGMENT BYTE PUBLIC 'CODE'
2 ASSUME CS:CODE,DS:CODE
3
4IF1
5 %OUT EGA.CPI creation file
6 %OUT .
7 %OUT CP SRC files:
8 %OUT .
9 %OUT . CODE PAGE: 860
10ENDIF
11 ;
12EGA860: DW LEN_860 ;SIZE OF ENTRY HEADER
13 DW POST_EGA860,0 ;POINTER TO NEXT HEADER
14 DW 1 ;DEVICE TYPE
15 DB "LCD " ;DEVICE SUBTYPE ID
16 DW 860 ;CODE PAGE ID
17 DW 3 DUP(0) ;RESERVED
18 DW OFFSET DATA860,0 ;POINTER TO FONTS
19LEN_860 EQU ($-EGA860)
20
21DATA860:DW 1 ;CART/NON-CART
22 DW 1 ;# OF FONTS
23 DW LEN_D860 ;LENGTH OF DATA
24D860: ;
25 DB 8,8 ;CHARACTER BOX SIZE
26 DB 0,0 ;ASPECT RATIO (UNUSED)
27 DW 256 ;NUMBER OF CHARACTERS
28 Db 000h,000h,000h,000h,000h,000h,000h,000h ; Hex #0
29 Db 03Ch,042h,0A5h,0A5h,081h,0BDh,05Ah,03Ch ; Hex #1
30 Db 03Ch,07Eh,0DBh,0DBh,0FFh,0C3h,066h,03Ch ; Hex #2
31 Db 036h,07Fh,07Fh,07Fh,03Eh,01Ch,008h,000h ; Hex #3
32 Db 008h,01Ch,03Eh,07Fh,03Eh,01Ch,008h,000h ; Hex #4
33 Db 01Ch,03Eh,01Ch,07Fh,07Fh,036h,008h,01Ch ; Hex #5
34 Db 008h,01Ch,03Eh,07Fh,07Fh,036h,008h,01Ch ; Hex #6
35 Db 000h,000h,018h,03Ch,03Ch,018h,000h,000h ; Hex #7
36 Db 0FFh,0FFh,0E7h,0C3h,0C3h,0E7h,0FFh,0FFh ; Hex #8
37 Db 000h,000h,03Ch,066h,066h,03Ch,000h,000h ; Hex #9
38 Db 0FFh,0FFh,0C3h,099h,099h,0C3h,0FFh,0FFh ; Hex #A
39 Db 007h,003h,03Eh,066h,066h,066h,03Ch,000h ; Hex #B
40 Db 03Ch,066h,066h,066h,03Ch,018h,03Ch,018h ; Hex #C
41 Db 008h,00Ch,00Eh,00Ah,00Ah,008h,038h,030h ; Hex #D
42 Db 018h,016h,019h,017h,071h,061h,007h,006h ; Hex #E
43 Db 048h,06Bh,03Eh,0E4h,027h,07Ch,0D6h,012h ; Hex #F
44 Db 040h,070h,07Ch,07Fh,07Ch,070h,040h,000h ; Hex #10
45 Db 001h,007h,01Fh,07Fh,01Fh,007h,001h,000h ; Hex #11
46 Db 018h,03Ch,07Eh,018h,018h,07Eh,03Ch,018h ; Hex #12
47 Db 036h,036h,036h,036h,036h,000h,036h,000h ; Hex #13
48 Db 03Fh,06Ah,06Ah,03Ah,00Ah,00Ah,01Ah,000h ; Hex #14
49 Db 03Ch,076h,038h,06Ch,036h,01Ch,06Eh,03Ch ; Hex #15
50 Db 000h,000h,000h,07Fh,07Fh,07Fh,000h,000h ; Hex #16
51 Db 018h,03Ch,07Eh,018h,07Eh,03Ch,018h,0FFh ; Hex #17
52 Db 018h,03Ch,07Eh,05Ah,018h,018h,018h,000h ; Hex #18
53 Db 018h,018h,018h,05Ah,07Eh,03Ch,018h,000h ; Hex #19
54 Db 000h,00Ch,006h,07Fh,07Fh,006h,00Ch,000h ; Hex #1A
55 Db 000h,018h,030h,07Fh,07Fh,030h,018h,000h ; Hex #1B
56 Db 000h,000h,060h,060h,07Fh,07Fh,000h,000h ; Hex #1C
57 Db 000h,014h,036h,07Fh,07Fh,036h,014h,000h ; Hex #1D
58 Db 008h,008h,01Ch,01Ch,03Eh,03Eh,07Fh,000h ; Hex #1E
59 Db 07Fh,03Eh,03Eh,01Ch,01Ch,008h,008h,000h ; Hex #1F
60 Db 000h,000h,000h,000h,000h,000h,000h,000h ; Hex #20
61 Db 018h,018h,018h,018h,018h,000h,018h,000h ; Hex #21
62 Db 036h,036h,014h,000h,000h,000h,000h,000h ; Hex #22
63 Db 00Ah,00Ah,03Fh,014h,07Eh,028h,028h,000h ; Hex #23
64 Db 008h,03Eh,068h,03Eh,00Bh,07Eh,008h,000h ; Hex #24
65 Db 001h,03Fh,052h,06Ch,01Bh,035h,076h,000h ; Hex #25
66 Db 01Ch,036h,01Ch,03Bh,06Eh,066h,03Bh,000h ; Hex #26
67 Db 018h,018h,030h,000h,000h,000h,000h,000h ; Hex #27
68 Db 006h,00Ch,018h,018h,018h,00Ch,006h,000h ; Hex #28
69 Db 030h,018h,00Ch,00Ch,00Ch,018h,030h,000h ; Hex #29
70 Db 000h,036h,01Ch,07Fh,01Ch,036h,000h,000h ; Hex #2A
71 Db 000h,018h,018h,07Eh,018h,018h,000h,000h ; Hex #2B
72 Db 000h,000h,000h,000h,000h,018h,018h,030h ; Hex #2C
73 Db 000h,000h,000h,07Eh,000h,000h,000h,000h ; Hex #2D
74 Db 000h,000h,000h,000h,000h,018h,018h,000h ; Hex #2E
75 Db 003h,006h,00Ch,018h,030h,060h,040h,000h ; Hex #2F
76 Db 018h,02Ch,066h,066h,066h,034h,018h,000h ; Hex #30
77 Db 018h,018h,038h,018h,018h,018h,03Ch,000h ; Hex #31
78 Db 03Ch,066h,066h,00Ch,018h,032h,07Eh,000h ; Hex #32
79 Db 03Ch,066h,00Ch,01Ch,006h,066h,03Ch,000h ; Hex #33
80 Db 00Ch,01Ch,02Ch,06Ch,07Eh,00Ch,01Eh,000h ; Hex #34
81 Db 07Eh,060h,07Ch,066h,006h,066h,03Ch,000h ; Hex #35
82 Db 01Ch,030h,060h,07Ch,066h,066h,03Ch,000h ; Hex #36
83 Db 07Eh,066h,04Ch,00Ch,018h,018h,038h,000h ; Hex #37
84 Db 03Ch,066h,076h,03Ch,06Eh,066h,03Ch,000h ; Hex #38
85 Db 03Ch,066h,066h,03Eh,006h,00Ch,038h,000h ; Hex #39
86 Db 000h,018h,018h,000h,000h,018h,018h,000h ; Hex #3A
87 Db 000h,018h,018h,000h,000h,018h,018h,030h ; Hex #3B
88 Db 006h,00Ch,018h,030h,018h,00Ch,006h,000h ; Hex #3C
89 Db 000h,000h,07Eh,000h,07Eh,000h,000h,000h ; Hex #3D
90 Db 030h,018h,00Ch,006h,00Ch,018h,030h,000h ; Hex #3E
91 Db 03Ch,066h,026h,00Ch,018h,000h,018h,000h ; Hex #3F
92 Db 03Eh,041h,05Dh,055h,05Fh,040h,03Eh,000h ; Hex #40
93 Db 01Ch,00Ch,01Ch,016h,03Eh,023h,063h,000h ; Hex #41
94 Db 07Ch,036h,036h,03Eh,033h,033h,07Eh,000h ; Hex #42
95 Db 01Dh,033h,061h,060h,060h,031h,01Eh,000h ; Hex #43
96 Db 07Ch,036h,033h,033h,033h,036h,07Ch,000h ; Hex #44
97 Db 07Fh,031h,034h,03Ch,034h,031h,07Fh,000h ; Hex #45
98 Db 07Fh,031h,034h,03Ch,034h,030h,078h,000h ; Hex #46
99 Db 01Dh,033h,061h,060h,067h,033h,01Fh,000h ; Hex #47
100 Db 066h,066h,066h,07Eh,066h,066h,066h,000h ; Hex #48
101 Db 03Ch,018h,018h,018h,018h,018h,03Ch,000h ; Hex #49
102 Db 01Fh,006h,006h,006h,066h,066h,03Ch,000h ; Hex #4A
103 Db 067h,066h,06Ch,078h,06Ch,066h,067h,000h ; Hex #4B
104 Db 078h,030h,030h,030h,031h,033h,07Fh,000h ; Hex #4C
105 Db 041h,063h,077h,07Fh,06Bh,063h,063h,000h ; Hex #4D
106 Db 043h,063h,073h,07Bh,06Fh,067h,063h,000h ; Hex #4E
107 Db 01Ch,036h,063h,063h,063h,036h,01Ch,000h ; Hex #4F
108 Db 07Eh,033h,033h,03Eh,030h,030h,078h,000h ; Hex #50
109 Db 01Ch,036h,063h,063h,06Bh,036h,01Ch,007h ; Hex #51
110 Db 07Ch,066h,066h,07Ch,06Ch,066h,067h,000h ; Hex #52
111 Db 03Eh,066h,070h,03Ch,00Eh,066h,07Ch,000h ; Hex #53
112 Db 07Eh,05Ah,018h,018h,018h,018h,03Ch,000h ; Hex #54
113 Db 063h,063h,063h,063h,063h,063h,03Eh,000h ; Hex #55
114 Db 077h,062h,036h,034h,01Ch,018h,008h,000h ; Hex #56
115 Db 063h,063h,06Bh,06Bh,03Eh,036h,022h,000h ; Hex #57
116 Db 066h,066h,03Ch,018h,03Ch,066h,066h,000h ; Hex #58
117 Db 0E7h,066h,034h,018h,018h,018h,03Ch,000h ; Hex #59
118 Db 07Eh,066h,04Ch,018h,032h,066h,07Eh,000h ; Hex #5A
119 Db 01Eh,018h,018h,018h,018h,018h,01Eh,000h ; Hex #5B
120 Db 060h,030h,018h,00Ch,006h,003h,001h,000h ; Hex #5C
121 Db 03Ch,00Ch,00Ch,00Ch,00Ch,00Ch,03Ch,000h ; Hex #5D
122 Db 008h,01Ch,036h,000h,000h,000h,000h,000h ; Hex #5E
123 Db 000h,000h,000h,000h,000h,000h,000h,0FFh ; Hex #5F
124 Db 030h,018h,00Ch,000h,000h,000h,000h,000h ; Hex #60
125 Db 000h,000h,03Ch,066h,01Eh,066h,07Bh,000h ; Hex #61
126 Db 070h,030h,03Eh,03Bh,033h,03Bh,06Eh,000h ; Hex #62
127 Db 000h,000h,03Eh,066h,060h,066h,03Ch,000h ; Hex #63
128 Db 00Eh,006h,036h,06Eh,066h,066h,03Bh,000h ; Hex #64
129 Db 000h,000h,03Ch,066h,07Eh,060h,03Eh,000h ; Hex #65
130 Db 00Eh,01Bh,018h,03Eh,018h,018h,03Ch,000h ; Hex #66
131 Db 000h,000h,03Dh,066h,038h,03Eh,063h,03Eh ; Hex #67
132 Db 070h,030h,036h,03Bh,033h,033h,073h,000h ; Hex #68
133 Db 018h,000h,038h,018h,018h,018h,03Ch,000h ; Hex #69
134 Db 00Ch,000h,01Ch,00Ch,00Ch,06Ch,06Ch,038h ; Hex #6A
135 Db 070h,030h,033h,036h,03Ch,036h,077h,000h ; Hex #6B
136 Db 038h,018h,018h,018h,018h,018h,03Ch,000h ; Hex #6C
137 Db 000h,000h,076h,07Fh,06Bh,06Bh,06Bh,000h ; Hex #6D
138 Db 000h,000h,076h,03Bh,033h,033h,073h,000h ; Hex #6E
139 Db 000h,000h,03Ch,066h,066h,066h,03Ch,000h ; Hex #6F
140 Db 000h,000h,06Eh,033h,033h,03Eh,030h,078h ; Hex #70
141 Db 000h,000h,03Ah,066h,066h,03Eh,006h,00Fh ; Hex #71
142 Db 000h,000h,06Eh,03Bh,033h,030h,078h,000h ; Hex #72
143 Db 000h,000h,03Eh,070h,03Ch,00Eh,07Ch,000h ; Hex #73
144 Db 008h,018h,03Eh,018h,018h,01Ah,00Ch,000h ; Hex #74
145 Db 000h,000h,066h,066h,066h,066h,03Bh,000h ; Hex #75
146 Db 000h,000h,073h,032h,036h,01Ch,008h,000h ; Hex #76
147 Db 000h,000h,06Bh,06Bh,07Fh,036h,022h,000h ; Hex #77
148 Db 000h,000h,073h,036h,01Ch,036h,067h,000h ; Hex #78
149 Db 000h,000h,077h,033h,01Ah,00Ch,06Ch,038h ; Hex #79
150 Db 000h,000h,07Eh,04Ch,018h,032h,07Eh,000h ; Hex #7A
151 Db 00Eh,018h,018h,070h,018h,018h,00Eh,000h ; Hex #7B
152 Db 018h,018h,018h,018h,018h,018h,018h,000h ; Hex #7C
153 Db 070h,018h,018h,00Eh,018h,018h,070h,000h ; Hex #7D
154 Db 039h,04Eh,000h,000h,000h,000h,000h,000h ; Hex #7E
155 Db 008h,01Ch,01Ch,036h,026h,063h,07Fh,07Fh ; Hex #7F
156 Db 01Dh,033h,061h,060h,060h,031h,00Eh,01Ch ; Hex #80
157 Db 06Ch,000h,066h,066h,066h,066h,03Bh,000h ; Hex #81
158 Db 00Ch,018h,03Ch,066h,07Eh,060h,03Eh,000h ; Hex #82
159 Db 018h,03Ch,03Ch,066h,01Eh,066h,07Bh,000h ; Hex #83
160 Db 039h,04Eh,03Ch,066h,01Eh,066h,07Bh,000h ; Hex #84
161 Db 030h,018h,03Ch,066h,01Eh,066h,07Bh,000h ; Hex #85
162 Db 00Ch,018h,01Ch,016h,036h,03Fh,063h,000h ; Hex #86
163 Db 000h,000h,03Eh,066h,060h,036h,01Ch,038h ; Hex #87
164 Db 018h,03Ch,03Ch,066h,07Eh,060h,03Eh,000h ; Hex #88
165 Db 01Ch,036h,07Fh,031h,03Ch,031h,07Fh,000h ; Hex #89
166 Db 030h,018h,03Ch,066h,07Eh,060h,03Eh,000h ; Hex #8A
167 Db 00Ch,018h,03Ch,018h,018h,018h,03Ch,000h ; Hex #8B
168 Db 01Ch,036h,03Eh,063h,063h,036h,01Ch,000h ; Hex #8C
169 Db 030h,018h,000h,038h,018h,018h,03Ch,000h ; Hex #8D
170 Db 03Bh,06Eh,01Ch,016h,036h,03Fh,063h,000h ; Hex #8E
171 Db 01Ch,036h,008h,01Eh,036h,03Fh,063h,000h ; Hex #8F
172 Db 006h,00Ch,07Fh,031h,03Ch,031h,07Fh,000h ; Hex #90
173 Db 01Ch,006h,01Ch,016h,036h,03Fh,063h,000h ; Hex #91
174 Db 018h,00Ch,07Fh,031h,03Ch,031h,07Fh,000h ; Hex #92
175 Db 018h,03Ch,03Ch,066h,066h,066h,03Ch,000h ; Hex #93
176 Db 03Ah,06Eh,03Ch,066h,066h,066h,03Ch,000h ; Hex #94
177 Db 030h,018h,03Ch,066h,066h,066h,03Ch,000h ; Hex #95
178 Db 00Ch,05Bh,063h,063h,063h,063h,03Eh,000h ; Hex #96
179 Db 030h,018h,066h,066h,066h,066h,03Bh,000h ; Hex #97
180 Db 030h,018h,03Ch,018h,018h,018h,03Ch,000h ; Hex #98
181 Db 03Bh,06Eh,036h,063h,063h,036h,01Ch,000h ; Hex #99
182 Db 036h,041h,063h,063h,063h,063h,03Eh,000h ; Hex #9A
183 Db 006h,004h,03Ch,06Eh,068h,06Ah,03Ch,030h ; Hex #9B
184 Db 01Eh,033h,033h,07Ch,039h,05Bh,076h,000h ; Hex #9C
185 Db 018h,06Dh,063h,063h,063h,063h,03Eh,000h ; Hex #9D
186 Db 078h,06Ch,06Ch,07Ah,066h,06Fh,066h,003h ; Hex #9E
187 Db 006h,00Ch,036h,063h,063h,036h,01Ch,000h ; Hex #9F
188 Db 00Ch,018h,03Ch,066h,01Eh,066h,07Bh,000h ; Hex #A0
189 Db 018h,030h,000h,038h,018h,018h,03Ch,000h ; Hex #A1
190 Db 00Ch,018h,03Ch,066h,066h,066h,03Ch,000h ; Hex #A2
191 Db 00Ch,018h,066h,066h,066h,066h,03Bh,000h ; Hex #A3
192 Db 01Ah,02Ch,076h,03Bh,033h,033h,073h,000h ; Hex #A4
193 Db 01Ah,02Ch,073h,07Bh,06Fh,067h,063h,000h ; Hex #A5
194 Db 01Eh,036h,036h,01Fh,000h,03Fh,000h,000h ; Hex #A6
195 Db 01Ch,036h,036h,01Ch,000h,03Eh,000h,000h ; Hex #A7
196 Db 018h,000h,018h,030h,064h,066h,03Ch,000h ; Hex #A8
197 Db 018h,00Ch,036h,063h,063h,036h,01Ch,000h ; Hex #A9
198 Db 000h,000h,000h,07Eh,006h,006h,000h,000h ; Hex #AA
199 Db 060h,066h,06Ch,07Eh,03Bh,066h,04Ch,00Fh ; Hex #AB
200 Db 060h,066h,06Ch,07Bh,037h,06Bh,04Fh,003h ; Hex #AC
201 Db 018h,000h,018h,018h,018h,018h,018h,000h ; Hex #AD
202 Db 000h,01Bh,036h,06Ch,06Ch,036h,01Bh,000h ; Hex #AE
203 Db 000h,06Ch,036h,01Bh,01Bh,036h,06Ch,000h ; Hex #AF
204 Db 011h,044h,011h,044h,011h,044h,011h,044h ; Hex #B0
205 Db 055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh ; Hex #B1
206 Db 0EEh,0BBh,0EEh,0BBh,0EEh,0BBh,0EEh,0BBh ; Hex #B2
207 Db 018h,018h,018h,018h,018h,018h,018h,018h ; Hex #B3
208 Db 018h,018h,018h,0F8h,0F8h,018h,018h,018h ; Hex #B4
209 Db 018h,018h,0F8h,0F8h,018h,0F8h,018h,018h ; Hex #B5
210 Db 034h,034h,034h,0F4h,0F4h,034h,034h,034h ; Hex #B6
211 Db 000h,000h,000h,0F8h,0FCh,034h,034h,034h ; Hex #B7
212 Db 000h,000h,0F0h,0F8h,018h,0F8h,018h,018h ; Hex #B8
213 Db 034h,034h,0F4h,0F4h,004h,0F4h,034h,034h ; Hex #B9
214 Db 034h,034h,034h,034h,034h,034h,034h,034h ; Hex #BA
215 Db 000h,000h,0F8h,0FCh,004h,0F4h,034h,034h ; Hex #BB
216 Db 034h,034h,0F4h,0F4h,004h,0FCh,000h,000h ; Hex #BC
217 Db 034h,034h,034h,0FCh,0FCh,000h,000h,000h ; Hex #BD
218 Db 018h,018h,0F8h,0F8h,018h,0F8h,000h,000h ; Hex #BE
219 Db 000h,000h,000h,0F8h,0F8h,018h,018h,018h ; Hex #BF
220 Db 018h,018h,018h,01Fh,01Fh,000h,000h,000h ; Hex #C0
221 Db 018h,018h,018h,0FFh,0FFh,000h,000h,000h ; Hex #C1
222 Db 000h,000h,000h,0FFh,0FFh,018h,018h,018h ; Hex #C2
223 Db 018h,018h,018h,01Fh,01Fh,018h,018h,018h ; Hex #C3
224 Db 000h,000h,000h,0FFh,0FFh,000h,000h,000h ; Hex #C4
225 Db 018h,018h,018h,0FFh,0FFh,018h,018h,018h ; Hex #C5
226 Db 018h,018h,01Fh,01Fh,018h,01Fh,018h,018h ; Hex #C6
227 Db 034h,034h,034h,037h,037h,034h,034h,034h ; Hex #C7
228 Db 034h,034h,037h,037h,030h,01Fh,000h,000h ; Hex #C8
229 Db 000h,000h,03Fh,03Fh,030h,037h,034h,034h ; Hex #C9
230 Db 034h,034h,0F7h,0F7h,000h,0FFh,000h,000h ; Hex #CA
231 Db 000h,000h,0FFh,0FFh,000h,0F7h,034h,034h ; Hex #CB
232 Db 034h,034h,037h,037h,030h,037h,034h,034h ; Hex #CC
233 Db 000h,000h,0FFh,0FFh,000h,0FFh,000h,000h ; Hex #CD
234 Db 034h,034h,0F7h,0F7h,000h,0F7h,034h,034h ; Hex #CE
235 Db 018h,018h,0FFh,0FFh,000h,0FFh,000h,000h ; Hex #CF
236 Db 034h,034h,034h,0FFh,0FFh,000h,000h,000h ; Hex #D0
237 Db 000h,000h,0FFh,0FFh,000h,0FFh,018h,018h ; Hex #D1
238 Db 000h,000h,000h,0FFh,0FFh,034h,034h,034h ; Hex #D2
239 Db 034h,034h,034h,03Fh,01Fh,000h,000h,000h ; Hex #D3
240 Db 018h,018h,01Fh,01Fh,018h,00Fh,000h,000h ; Hex #D4
241 Db 000h,000h,01Fh,01Fh,018h,01Fh,018h,018h ; Hex #D5
242 Db 000h,000h,000h,03Fh,03Fh,034h,034h,034h ; Hex #D6
243 Db 034h,034h,034h,0FFh,0FFh,034h,034h,034h ; Hex #D7
244 Db 018h,018h,0FFh,0FFh,018h,0FFh,018h,018h ; Hex #D8
245 Db 018h,018h,018h,0F8h,0F8h,000h,000h,000h ; Hex #D9
246 Db 000h,000h,000h,01Fh,01Fh,018h,018h,018h ; Hex #DA
247 Db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh ; Hex #DB
248 Db 000h,000h,000h,000h,0FFh,0FFh,0FFh,0FFh ; Hex #DC
249 Db 0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h ; Hex #DD
250 Db 00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh ; Hex #DE
251 Db 0FFh,0FFh,0FFh,0FFh,000h,000h,000h,000h ; Hex #DF
252 Db 000h,000h,03Dh,06Eh,066h,06Eh,03Bh,000h ; Hex #E0
253 Db 03Ch,066h,06Ch,066h,063h,07Bh,06Eh,000h ; Hex #E1
254 Db 07Fh,033h,031h,030h,030h,030h,078h,000h ; Hex #E2
255 Db 000h,03Fh,07Eh,054h,014h,036h,066h,000h ; Hex #E3
256 Db 07Fh,033h,018h,00Ch,018h,033h,07Fh,000h ; Hex #E4
257 Db 000h,000h,03Fh,06Ch,06Ch,06Ch,038h,000h ; Hex #E5
258 Db 000h,000h,033h,033h,033h,037h,06Dh,060h ; Hex #E6
259 Db 000h,03Fh,07Eh,050h,018h,01Ch,00Ch,000h ; Hex #E7
260 Db 01Ch,008h,03Eh,06Bh,03Eh,008h,01Ch,000h ; Hex #E8
261 Db 01Ch,036h,063h,07Fh,063h,036h,01Ch,000h ; Hex #E9
262 Db 01Ch,036h,063h,063h,036h,055h,077h,000h ; Hex #EA
263 Db 01Ch,030h,018h,02Ch,066h,066h,03Ch,000h ; Hex #EB
264 Db 000h,036h,07Fh,04Dh,059h,07Fh,036h,000h ; Hex #EC
265 Db 000h,000h,036h,06Fh,06Bh,03Eh,008h,00Ch ; Hex #ED
266 Db 000h,000h,01Eh,030h,03Eh,030h,01Eh,000h ; Hex #EE
267 Db 03Ch,066h,066h,066h,066h,066h,066h,000h ; Hex #EF
268 Db 000h,07Eh,000h,07Eh,000h,07Eh,000h,000h ; Hex #F0
269 Db 018h,018h,07Eh,018h,018h,000h,07Eh,000h ; Hex #F1
270 Db 060h,038h,00Eh,038h,060h,000h,07Eh,000h ; Hex #F2
271 Db 006h,01Ch,070h,01Ch,006h,000h,07Eh,000h ; Hex #F3
272 Db 00Eh,01Bh,01Ah,018h,018h,018h,018h,018h ; Hex #F4
273 Db 018h,018h,018h,018h,058h,0D8h,070h,000h ; Hex #F5
274 Db 018h,018h,000h,07Eh,000h,018h,018h,000h ; Hex #F6
275 Db 000h,03Bh,06Eh,000h,03Bh,06Eh,000h,000h ; Hex #F7
276 Db 01Ch,036h,036h,01Ch,000h,000h,000h,000h ; Hex #F8
277 Db 000h,000h,018h,03Ch,018h,000h,000h,000h ; Hex #F9
278 Db 000h,000h,000h,018h,000h,000h,000h,000h ; Hex #FA
279 Db 003h,002h,006h,024h,06Ch,038h,018h,010h ; Hex #FB
280 Db 076h,03Bh,033h,033h,033h,000h,000h,000h ; Hex #FC
281 Db 03Ch,066h,00Ch,038h,07Eh,000h,000h,000h ; Hex #FD
282 Db 000h,000h,03Ch,03Ch,03Ch,03Ch,000h,000h ; Hex #FE
283 Db 000h,000h,000h,000h,000h,000h,000h,000h ; Hex #FF
284LEN_D860 EQU ($-D860)
285 ;
286POST_EGA860 EQU $ ;
287 ;
288CODE ENDS
289 END
290 \ No newline at end of file
diff --git a/v4.0/src/DEV/DISPLAY/LCD/863-CPI.ASM b/v4.0/src/DEV/DISPLAY/LCD/863-CPI.ASM
new file mode 100644
index 0000000..90bd0ec
--- /dev/null
+++ b/v4.0/src/DEV/DISPLAY/LCD/863-CPI.ASM
@@ -0,0 +1,290 @@
1CODE SEGMENT BYTE PUBLIC 'CODE'
2 ASSUME CS:CODE,DS:CODE
3
4IF1
5 %OUT EGA.CPI creation file
6 %OUT .
7 %OUT CP SRC files:
8 %OUT .
9 %OUT . CODE PAGE: 863
10ENDIF
11
12EGA863: DW LEN_863 ;SIZE OF ENTRY HEADER
13 DW POST_EGA863,0 ;POINTER TO NEXT HEADER
14 DW 1 ;DEVICE TYPE
15 DB "LCD " ;DEVICE SUBTYPE ID
16 DW 863 ;CODE PAGE ID
17 DW 3 DUP(0) ;RESERVED
18 DW OFFSET DATA863,0 ;POINTER TO FONTS
19LEN_863 EQU ($-EGA863)
20
21DATA863:DW 1 ;CART/NON-CART
22 DW 1 ;# OF FONTS
23 DW LEN_D863 ;LENGTH OF DATA
24D863: ;
25 DB 8,8 ;CHARACTER BOX SIZE
26 DB 0,0 ;ASPECT RATIO (UNUSED)
27 DW 256 ;NUMBER OF CHARACTERS
28 Db 000h,000h,000h,000h,000h,000h,000h,000h ; Hex #0
29 Db 03Ch,042h,0A5h,0A5h,081h,0BDh,05Ah,03Ch ; Hex #1
30 Db 03Ch,07Eh,0DBh,0DBh,0FFh,0C3h,066h,03Ch ; Hex #2
31 Db 036h,07Fh,07Fh,07Fh,03Eh,01Ch,008h,000h ; Hex #3
32 Db 008h,01Ch,03Eh,07Fh,03Eh,01Ch,008h,000h ; Hex #4
33 Db 01Ch,03Eh,01Ch,07Fh,07Fh,036h,008h,01Ch ; Hex #5
34 Db 008h,01Ch,03Eh,07Fh,07Fh,036h,008h,01Ch ; Hex #6
35 Db 000h,000h,018h,03Ch,03Ch,018h,000h,000h ; Hex #7
36 Db 0FFh,0FFh,0E7h,0C3h,0C3h,0E7h,0FFh,0FFh ; Hex #8
37 Db 000h,000h,03Ch,066h,066h,03Ch,000h,000h ; Hex #9
38 Db 0FFh,0FFh,0C3h,099h,099h,0C3h,0FFh,0FFh ; Hex #A
39 Db 007h,003h,03Eh,066h,066h,066h,03Ch,000h ; Hex #B
40 Db 03Ch,066h,066h,066h,03Ch,018h,03Ch,018h ; Hex #C
41 Db 008h,00Ch,00Eh,00Ah,00Ah,008h,038h,030h ; Hex #D
42 Db 018h,016h,019h,017h,071h,061h,007h,006h ; Hex #E
43 Db 048h,06Bh,03Eh,0E4h,027h,07Ch,0D6h,012h ; Hex #F
44 Db 040h,070h,07Ch,07Fh,07Ch,070h,040h,000h ; Hex #10
45 Db 001h,007h,01Fh,07Fh,01Fh,007h,001h,000h ; Hex #11
46 Db 018h,03Ch,07Eh,018h,018h,07Eh,03Ch,018h ; Hex #12
47 Db 036h,036h,036h,036h,036h,000h,036h,000h ; Hex #13
48 Db 03Fh,06Ah,06Ah,03Ah,00Ah,00Ah,01Ah,000h ; Hex #14
49 Db 03Ch,076h,038h,06Ch,036h,01Ch,06Eh,03Ch ; Hex #15
50 Db 000h,000h,000h,07Fh,07Fh,07Fh,000h,000h ; Hex #16
51 Db 018h,03Ch,07Eh,018h,07Eh,03Ch,018h,0FFh ; Hex #17
52 Db 018h,03Ch,07Eh,05Ah,018h,018h,018h,000h ; Hex #18
53 Db 018h,018h,018h,05Ah,07Eh,03Ch,018h,000h ; Hex #19
54 Db 000h,00Ch,006h,07Fh,07Fh,006h,00Ch,000h ; Hex #1A
55 Db 000h,018h,030h,07Fh,07Fh,030h,018h,000h ; Hex #1B
56 Db 000h,000h,060h,060h,07Fh,07Fh,000h,000h ; Hex #1C
57 Db 000h,014h,036h,07Fh,07Fh,036h,014h,000h ; Hex #1D
58 Db 008h,008h,01Ch,01Ch,03Eh,03Eh,07Fh,000h ; Hex #1E
59 Db 07Fh,03Eh,03Eh,01Ch,01Ch,008h,008h,000h ; Hex #1F
60 Db 000h,000h,000h,000h,000h,000h,000h,000h ; Hex #20
61 Db 018h,018h,018h,018h,018h,000h,018h,000h ; Hex #21
62 Db 036h,036h,014h,000h,000h,000h,000h,000h ; Hex #22
63 Db 00Ah,00Ah,03Fh,014h,07Eh,028h,028h,000h ; Hex #23
64 Db 008h,03Eh,068h,03Eh,00Bh,07Eh,008h,000h ; Hex #24
65 Db 001h,03Fh,052h,06Ch,01Bh,035h,076h,000h ; Hex #25
66 Db 01Ch,036h,01Ch,03Bh,06Eh,066h,03Bh,000h ; Hex #26
67 Db 018h,018h,030h,000h,000h,000h,000h,000h ; Hex #27
68 Db 006h,00Ch,018h,018h,018h,00Ch,006h,000h ; Hex #28
69 Db 030h,018h,00Ch,00Ch,00Ch,018h,030h,000h ; Hex #29
70 Db 000h,036h,01Ch,07Fh,01Ch,036h,000h,000h ; Hex #2A
71 Db 000h,018h,018h,07Eh,018h,018h,000h,000h ; Hex #2B
72 Db 000h,000h,000h,000h,000h,018h,018h,030h ; Hex #2C
73 Db 000h,000h,000h,07Eh,000h,000h,000h,000h ; Hex #2D
74 Db 000h,000h,000h,000h,000h,018h,018h,000h ; Hex #2E
75 Db 003h,006h,00Ch,018h,030h,060h,040h,000h ; Hex #2F
76 Db 018h,02Ch,066h,066h,066h,034h,018h,000h ; Hex #30
77 Db 018h,018h,038h,018h,018h,018h,03Ch,000h ; Hex #31
78 Db 03Ch,066h,066h,00Ch,018h,032h,07Eh,000h ; Hex #32
79 Db 03Ch,066h,00Ch,01Ch,006h,066h,03Ch,000h ; Hex #33
80 Db 00Ch,01Ch,02Ch,06Ch,07Eh,00Ch,01Eh,000h ; Hex #34
81 Db 07Eh,060h,07Ch,066h,006h,066h,03Ch,000h ; Hex #35
82 Db 01Ch,030h,060h,07Ch,066h,066h,03Ch,000h ; Hex #36
83 Db 07Eh,066h,04Ch,00Ch,018h,018h,038h,000h ; Hex #37
84 Db 03Ch,066h,076h,03Ch,06Eh,066h,03Ch,000h ; Hex #38
85 Db 03Ch,066h,066h,03Eh,006h,00Ch,038h,000h ; Hex #39
86 Db 000h,018h,018h,000h,000h,018h,018h,000h ; Hex #3A
87 Db 000h,018h,018h,000h,000h,018h,018h,030h ; Hex #3B
88 Db 006h,00Ch,018h,030h,018h,00Ch,006h,000h ; Hex #3C
89 Db 000h,000h,07Eh,000h,07Eh,000h,000h,000h ; Hex #3D
90 Db 030h,018h,00Ch,006h,00Ch,018h,030h,000h ; Hex #3E
91 Db 03Ch,066h,026h,00Ch,018h,000h,018h,000h ; Hex #3F
92 Db 03Eh,041h,05Dh,055h,05Fh,040h,03Eh,000h ; Hex #40
93 Db 01Ch,00Ch,01Ch,016h,03Eh,023h,063h,000h ; Hex #41
94 Db 07Ch,036h,036h,03Eh,033h,033h,07Eh,000h ; Hex #42
95 Db 01Dh,033h,061h,060h,060h,031h,01Eh,000h ; Hex #43
96 Db 07Ch,036h,033h,033h,033h,036h,07Ch,000h ; Hex #44
97 Db 07Fh,031h,034h,03Ch,034h,031h,07Fh,000h ; Hex #45
98 Db 07Fh,031h,034h,03Ch,034h,030h,078h,000h ; Hex #46
99 Db 01Dh,033h,061h,060h,067h,033h,01Fh,000h ; Hex #47
100 Db 066h,066h,066h,07Eh,066h,066h,066h,000h ; Hex #48
101 Db 03Ch,018h,018h,018h,018h,018h,03Ch,000h ; Hex #49
102 Db 01Fh,006h,006h,006h,066h,066h,03Ch,000h ; Hex #4A
103 Db 067h,066h,06Ch,078h,06Ch,066h,067h,000h ; Hex #4B
104 Db 078h,030h,030h,030h,031h,033h,07Fh,000h ; Hex #4C
105 Db 041h,063h,077h,07Fh,06Bh,063h,063h,000h ; Hex #4D
106 Db 043h,063h,073h,07Bh,06Fh,067h,063h,000h ; Hex #4E
107 Db 01Ch,036h,063h,063h,063h,036h,01Ch,000h ; Hex #4F
108 Db 07Eh,033h,033h,03Eh,030h,030h,078h,000h ; Hex #50
109 Db 01Ch,036h,063h,063h,06Bh,036h,01Ch,007h ; Hex #51
110 Db 07Ch,066h,066h,07Ch,06Ch,066h,067h,000h ; Hex #52
111 Db 03Eh,066h,070h,03Ch,00Eh,066h,07Ch,000h ; Hex #53
112 Db 07Eh,05Ah,018h,018h,018h,018h,03Ch,000h ; Hex #54
113 Db 063h,063h,063h,063h,063h,063h,03Eh,000h ; Hex #55
114 Db 077h,062h,036h,034h,01Ch,018h,008h,000h ; Hex #56
115 Db 063h,063h,06Bh,06Bh,03Eh,036h,022h,000h ; Hex #57
116 Db 066h,066h,03Ch,018h,03Ch,066h,066h,000h ; Hex #58
117 Db 0E7h,066h,034h,018h,018h,018h,03Ch,000h ; Hex #59
118 Db 07Eh,066h,04Ch,018h,032h,066h,07Eh,000h ; Hex #5A
119 Db 01Eh,018h,018h,018h,018h,018h,01Eh,000h ; Hex #5B
120 Db 060h,030h,018h,00Ch,006h,003h,001h,000h ; Hex #5C
121 Db 03Ch,00Ch,00Ch,00Ch,00Ch,00Ch,03Ch,000h ; Hex #5D
122 Db 008h,01Ch,036h,000h,000h,000h,000h,000h ; Hex #5E
123 Db 000h,000h,000h,000h,000h,000h,000h,0FFh ; Hex #5F
124 Db 030h,018h,00Ch,000h,000h,000h,000h,000h ; Hex #60
125 Db 000h,000h,03Ch,066h,01Eh,066h,07Bh,000h ; Hex #61
126 Db 070h,030h,03Eh,03Bh,033h,03Bh,06Eh,000h ; Hex #62
127 Db 000h,000h,03Eh,066h,060h,066h,03Ch,000h ; Hex #63
128 Db 00Eh,006h,036h,06Eh,066h,066h,03Bh,000h ; Hex #64
129 Db 000h,000h,03Ch,066h,07Eh,060h,03Eh,000h ; Hex #65
130 Db 00Eh,01Bh,018h,03Eh,018h,018h,03Ch,000h ; Hex #66
131 Db 000h,000h,03Dh,066h,038h,03Eh,063h,03Eh ; Hex #67
132 Db 070h,030h,036h,03Bh,033h,033h,073h,000h ; Hex #68
133 Db 018h,000h,038h,018h,018h,018h,03Ch,000h ; Hex #69
134 Db 00Ch,000h,01Ch,00Ch,00Ch,06Ch,06Ch,038h ; Hex #6A
135 Db 070h,030h,033h,036h,03Ch,036h,077h,000h ; Hex #6B
136 Db 038h,018h,018h,018h,018h,018h,03Ch,000h ; Hex #6C
137 Db 000h,000h,076h,07Fh,06Bh,06Bh,06Bh,000h ; Hex #6D
138 Db 000h,000h,076h,03Bh,033h,033h,073h,000h ; Hex #6E
139 Db 000h,000h,03Ch,066h,066h,066h,03Ch,000h ; Hex #6F
140 Db 000h,000h,06Eh,033h,033h,03Eh,030h,078h ; Hex #70
141 Db 000h,000h,03Ah,066h,066h,03Eh,006h,00Fh ; Hex #71
142 Db 000h,000h,06Eh,03Bh,033h,030h,078h,000h ; Hex #72
143 Db 000h,000h,03Eh,070h,03Ch,00Eh,07Ch,000h ; Hex #73
144 Db 008h,018h,03Eh,018h,018h,01Ah,00Ch,000h ; Hex #74
145 Db 000h,000h,066h,066h,066h,066h,03Bh,000h ; Hex #75
146 Db 000h,000h,073h,032h,036h,01Ch,008h,000h ; Hex #76
147 Db 000h,000h,06Bh,06Bh,07Fh,036h,022h,000h ; Hex #77
148 Db 000h,000h,073h,036h,01Ch,036h,067h,000h ; Hex #78
149 Db 000h,000h,077h,033h,01Ah,00Ch,06Ch,038h ; Hex #79
150 Db 000h,000h,07Eh,04Ch,018h,032h,07Eh,000h ; Hex #7A
151 Db 00Eh,018h,018h,070h,018h,018h,00Eh,000h ; Hex #7B
152 Db 018h,018h,018h,018h,018h,018h,018h,000h ; Hex #7C
153 Db 070h,018h,018h,00Eh,018h,018h,070h,000h ; Hex #7D
154 Db 039h,04Eh,000h,000h,000h,000h,000h,000h ; Hex #7E
155 Db 008h,01Ch,01Ch,036h,026h,063h,07Fh,07Fh ; Hex #7F
156 Db 01Dh,033h,061h,060h,060h,031h,00Eh,01Ch ; Hex #80
157 Db 06Ch,000h,066h,066h,066h,066h,03Bh,000h ; Hex #81
158 Db 00Ch,018h,03Ch,066h,07Eh,060h,03Eh,000h ; Hex #82
159 Db 018h,03Ch,03Ch,066h,01Eh,066h,07Bh,000h ; Hex #83
160 Db 01Ch,036h,008h,01Eh,036h,03Fh,063h,000h ; Hex #84
161 Db 030h,018h,03Ch,066h,01Eh,066h,07Bh,000h ; Hex #85
162 Db 03Fh,06Ah,06Ah,03Ah,00Ah,00Ah,01Ah,000h ; Hex #86
163 Db 000h,000h,03Eh,066h,060h,036h,01Ch,038h ; Hex #87
164 Db 018h,03Ch,03Ch,066h,07Eh,060h,03Eh,000h ; Hex #88
165 Db 036h,000h,03Ch,066h,07Eh,060h,03Eh,000h ; Hex #89
166 Db 030h,018h,03Ch,066h,07Eh,060h,03Eh,000h ; Hex #8A
167 Db 06Ch,000h,038h,018h,018h,018h,03Ch,000h ; Hex #8B
168 Db 018h,03Ch,000h,038h,018h,018h,03Ch,000h ; Hex #8C
169 Db 000h,000h,000h,000h,000h,0FFh,000h,0FFh ; Hex #8D
170 Db 01Ch,006h,01Ch,016h,036h,03Fh,063h,000h ; Hex #8E
171 Db 03Ch,076h,038h,06Ch,036h,01Ch,06Eh,03Ch ; Hex #8F
172 Db 006h,00Ch,07Fh,031h,03Ch,031h,07Fh,000h ; Hex #90
173 Db 018h,00Ch,07Fh,031h,03Ch,031h,07Fh,000h ; Hex #91
174 Db 01Ch,036h,07Fh,031h,03Ch,031h,07Fh,000h ; Hex #92
175 Db 018h,03Ch,03Ch,066h,066h,066h,03Ch,000h ; Hex #93
176 Db 036h,000h,07Fh,031h,03Ch,031h,07Fh,000h ; Hex #94
177 Db 066h,000h,03Ch,018h,018h,018h,03Ch,000h ; Hex #95
178 Db 018h,03Ch,042h,066h,066h,066h,03Bh,000h ; Hex #96
179 Db 030h,018h,066h,066h,066h,066h,03Bh,000h ; Hex #97
180 Db 000h,066h,07Eh,024h,024h,07Eh,066h,000h ; Hex #98
181 Db 01Ch,036h,03Eh,063h,063h,036h,01Ch,000h ; Hex #99
182 Db 036h,041h,063h,063h,063h,063h,03Eh,000h ; Hex #9A
183 Db 006h,004h,03Ch,06Eh,068h,06Ah,03Ch,030h ; Hex #9B
184 Db 01Eh,033h,033h,07Ch,039h,05Bh,076h,000h ; Hex #9C
185 Db 018h,06Dh,063h,063h,063h,063h,03Eh,000h ; Hex #9D
186 Db 01Ch,036h,041h,063h,063h,063h,03Eh,000h ; Hex #9E
187 Db 00Eh,01Bh,018h,03Eh,018h,018h,058h,070h ; Hex #9F
188 Db 018h,018h,018h,000h,000h,018h,018h,018h ; Hex #A0
189 Db 00Ch,018h,030h,000h,000h,000h,000h,000h ; Hex #A1
190 Db 00Ch,018h,03Ch,066h,066h,066h,03Ch,000h ; Hex #A2
191 Db 00Ch,018h,066h,066h,066h,066h,03Bh,000h ; Hex #A3
192 Db 036h,000h,000h,000h,000h,000h,000h,000h ; Hex #A4
193 Db 000h,000h,000h,000h,000h,000h,00Eh,01Ch ; Hex #A5
194 Db 03Ch,066h,01Ch,066h,03Ch,000h,000h,000h ; Hex #A6
195 Db 0FFh,000h,000h,000h,000h,000h,000h,000h ; Hex #A7
196 Db 018h,024h,03Ch,018h,018h,018h,03Ch,000h ; Hex #A8
197 Db 000h,000h,000h,07Eh,060h,060h,000h,000h ; Hex #A9
198 Db 000h,000h,000h,07Eh,006h,006h,000h,000h ; Hex #AA
199 Db 060h,066h,06Ch,07Eh,03Bh,066h,04Ch,00Fh ; Hex #AB
200 Db 060h,066h,06Ch,07Bh,037h,06Bh,04Fh,003h ; Hex #AC
201 Db 070h,05Bh,036h,05Fh,07Fh,03Bh,06Fh,043h ; Hex #AD
202 Db 000h,01Bh,036h,06Ch,06Ch,036h,01Bh,000h ; Hex #AE
203 Db 000h,06Ch,036h,01Bh,01Bh,036h,06Ch,000h ; Hex #AF
204 Db 011h,044h,011h,044h,011h,044h,011h,044h ; Hex #B0
205 Db 055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh ; Hex #B1
206 Db 0EEh,0BBh,0EEh,0BBh,0EEh,0BBh,0EEh,0BBh ; Hex #B2
207 Db 018h,018h,018h,018h,018h,018h,018h,018h ; Hex #B3
208 Db 018h,018h,018h,0F8h,0F8h,018h,018h,018h ; Hex #B4
209 Db 018h,018h,0F8h,0F8h,018h,0F8h,018h,018h ; Hex #B5
210 Db 034h,034h,034h,0F4h,0F4h,034h,034h,034h ; Hex #B6
211 Db 000h,000h,000h,0F8h,0FCh,034h,034h,034h ; Hex #B7
212 Db 000h,000h,0F0h,0F8h,018h,0F8h,018h,018h ; Hex #B8
213 Db 034h,034h,0F4h,0F4h,004h,0F4h,034h,034h ; Hex #B9
214 Db 034h,034h,034h,034h,034h,034h,034h,034h ; Hex #BA
215 Db 000h,000h,0F8h,0FCh,004h,0F4h,034h,034h ; Hex #BB
216 Db 034h,034h,0F4h,0F4h,004h,0FCh,000h,000h ; Hex #BC
217 Db 034h,034h,034h,0FCh,0FCh,000h,000h,000h ; Hex #BD
218 Db 018h,018h,0F8h,0F8h,018h,0F8h,000h,000h ; Hex #BE
219 Db 000h,000h,000h,0F8h,0F8h,018h,018h,018h ; Hex #BF
220 Db 018h,018h,018h,01Fh,01Fh,000h,000h,000h ; Hex #C0
221 Db 018h,018h,018h,0FFh,0FFh,000h,000h,000h ; Hex #C1
222 Db 000h,000h,000h,0FFh,0FFh,018h,018h,018h ; Hex #C2
223 Db 018h,018h,018h,01Fh,01Fh,018h,018h,018h ; Hex #C3
224 Db 000h,000h,000h,0FFh,0FFh,000h,000h,000h ; Hex #C4
225 Db 018h,018h,018h,0FFh,0FFh,018h,018h,018h ; Hex #C5
226 Db 018h,018h,01Fh,01Fh,018h,01Fh,018h,018h ; Hex #C6
227 Db 034h,034h,034h,037h,037h,034h,034h,034h ; Hex #C7
228 Db 034h,034h,037h,037h,030h,01Fh,000h,000h ; Hex #C8
229 Db 000h,000h,03Fh,03Fh,030h,037h,034h,034h ; Hex #C9
230 Db 034h,034h,0F7h,0F7h,000h,0FFh,000h,000h ; Hex #CA
231 Db 000h,000h,0FFh,0FFh,000h,0F7h,034h,034h ; Hex #CB
232 Db 034h,034h,037h,037h,030h,037h,034h,034h ; Hex #CC
233 Db 000h,000h,0FFh,0FFh,000h,0FFh,000h,000h ; Hex #CD
234 Db 034h,034h,0F7h,0F7h,000h,0F7h,034h,034h ; Hex #CE
235 Db 018h,018h,0FFh,0FFh,000h,0FFh,000h,000h ; Hex #CF
236 Db 034h,034h,034h,0FFh,0FFh,000h,000h,000h ; Hex #D0
237 Db 000h,000h,0FFh,0FFh,000h,0FFh,018h,018h ; Hex #D1
238 Db 000h,000h,000h,0FFh,0FFh,034h,034h,034h ; Hex #D2
239 Db 034h,034h,034h,03Fh,01Fh,000h,000h,000h ; Hex #D3
240 Db 018h,018h,01Fh,01Fh,018h,00Fh,000h,000h ; Hex #D4
241 Db 000h,000h,01Fh,01Fh,018h,01Fh,018h,018h ; Hex #D5
242 Db 000h,000h,000h,03Fh,03Fh,034h,034h,034h ; Hex #D6
243 Db 034h,034h,034h,0FFh,0FFh,034h,034h,034h ; Hex #D7
244 Db 018h,018h,0FFh,0FFh,018h,0FFh,018h,018h ; Hex #D8
245 Db 018h,018h,018h,0F8h,0F8h,000h,000h,000h ; Hex #D9
246 Db 000h,000h,000h,01Fh,01Fh,018h,018h,018h ; Hex #DA
247 Db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh ; Hex #DB
248 Db 000h,000h,000h,000h,0FFh,0FFh,0FFh,0FFh ; Hex #DC
249 Db 0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h ; Hex #DD
250 Db 00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh ; Hex #DE
251 Db 0FFh,0FFh,0FFh,0FFh,000h,000h,000h,000h ; Hex #DF
252 Db 000h,000h,03Dh,06Eh,066h,06Eh,03Bh,000h ; Hex #E0
253 Db 03Ch,066h,06Ch,066h,063h,07Bh,06Eh,000h ; Hex #E1
254 Db 07Fh,033h,031h,030h,030h,030h,078h,000h ; Hex #E2
255 Db 000h,03Fh,07Eh,054h,014h,036h,066h,000h ; Hex #E3
256 Db 07Fh,033h,018h,00Ch,018h,033h,07Fh,000h ; Hex #E4
257 Db 000h,000h,03Fh,06Ch,06Ch,06Ch,038h,000h ; Hex #E5
258 Db 000h,000h,033h,033h,033h,037h,06Dh,060h ; Hex #E6
259 Db 000h,03Fh,07Eh,050h,018h,01Ch,00Ch,000h ; Hex #E7
260 Db 01Ch,008h,03Eh,06Bh,03Eh,008h,01Ch,000h ; Hex #E8
261 Db 01Ch,036h,063h,07Fh,063h,036h,01Ch,000h ; Hex #E9
262 Db 01Ch,036h,063h,063h,036h,055h,077h,000h ; Hex #EA
263 Db 01Ch,030h,018h,02Ch,066h,066h,03Ch,000h ; Hex #EB
264 Db 000h,036h,07Fh,04Dh,059h,07Fh,036h,000h ; Hex #EC
265 Db 000h,000h,036h,06Fh,06Bh,03Eh,008h,00Ch ; Hex #ED
266 Db 000h,000h,01Eh,030h,03Eh,030h,01Eh,000h ; Hex #EE
267 Db 03Ch,066h,066h,066h,066h,066h,066h,000h ; Hex #EF
268 Db 000h,07Eh,000h,07Eh,000h,07Eh,000h,000h ; Hex #F0
269 Db 018h,018h,07Eh,018h,018h,000h,07Eh,000h ; Hex #F1
270 Db 060h,038h,00Eh,038h,060h,000h,07Eh,000h ; Hex #F2
271 Db 006h,01Ch,070h,01Ch,006h,000h,07Eh,000h ; Hex #F3
272 Db 00Eh,01Bh,01Ah,018h,018h,018h,018h,018h ; Hex #F4
273 Db 018h,018h,018h,018h,058h,0D8h,070h,000h ; Hex #F5
274 Db 018h,018h,000h,07Eh,000h,018h,018h,000h ; Hex #F6
275 Db 000h,03Bh,06Eh,000h,03Bh,06Eh,000h,000h ; Hex #F7
276 Db 01Ch,036h,036h,01Ch,000h,000h,000h,000h ; Hex #F8
277 Db 000h,000h,018h,03Ch,018h,000h,000h,000h ; Hex #F9
278 Db 000h,000h,000h,018h,000h,000h,000h,000h ; Hex #FA
279 Db 003h,002h,006h,024h,06Ch,038h,018h,010h ; Hex #FB
280 Db 076h,03Bh,033h,033h,033h,000h,000h,000h ; Hex #FC
281 Db 03Ch,066h,00Ch,038h,07Eh,000h,000h,000h ; Hex #FD
282 Db 000h,000h,03Ch,03Ch,03Ch,03Ch,000h,000h ; Hex #FE
283 Db 000h,000h,000h,000h,000h,000h,000h,000h ; Hex #FF
284LEN_D863 EQU ($-D863)
285 ;
286POST_EGA863 EQU $ ;
287 ;
288 ;
289CODE ENDS ;
290 END ;
diff --git a/v4.0/src/DEV/DISPLAY/LCD/865-CPI.ASM b/v4.0/src/DEV/DISPLAY/LCD/865-CPI.ASM
new file mode 100644
index 0000000..3dff339
--- /dev/null
+++ b/v4.0/src/DEV/DISPLAY/LCD/865-CPI.ASM
@@ -0,0 +1,292 @@
1CODE SEGMENT BYTE PUBLIC 'CODE'
2 ASSUME CS:CODE,DS:CODE
3
4IF1
5 %OUT EGA.CPI creation file
6 %OUT .
7 %OUT CP SRC files:
8 %OUT .
9 %OUT . CODE PAGE: 865
10ENDIF
11
12EGA865: DW LEN_865 ;SIZE OF ENTRY HEADER
13;;;;;;;;DW POST_EGA865,0 ;POINTER TO NEXT HEADER
14 DW -1,-1 ;NO MORE TO COME......LAST ENTRY
15 DW 1 ;DEVICE TYPE
16 DB "LCD " ;DEVICE SUBTYPE ID
17 DW 865 ;CODE PAGE ID
18 DW 3 DUP(0) ;RESERVED
19 DW OFFSET DATA865,0 ;POINTER TO FONTS
20LEN_865 EQU ($-EGA865)
21
22DATA865:DW 1 ;CART/NON-CART
23 DW 1 ;# OF FONTS
24 DW LEN_D865 ;LENGTH OF DATA
25D865: ;
26 DB 8,8 ;CHARACTER BOX SIZE
27 DB 0,0 ;ASPECT RATIO (UNUSED)
28 DW 256 ;NUMBER OF CHARACTERS
29 Db 000h,000h,000h,000h,000h,000h,000h,000h ; Hex #0
30 Db 03Ch,042h,0A5h,0A5h,081h,0BDh,05Ah,03Ch ; Hex #1
31 Db 03Ch,07Eh,0DBh,0DBh,0FFh,0C3h,066h,03Ch ; Hex #2
32 Db 036h,07Fh,07Fh,07Fh,03Eh,01Ch,008h,000h ; Hex #3
33 Db 008h,01Ch,03Eh,07Fh,03Eh,01Ch,008h,000h ; Hex #4
34 Db 01Ch,03Eh,01Ch,07Fh,07Fh,036h,008h,01Ch ; Hex #5
35 Db 008h,01Ch,03Eh,07Fh,07Fh,036h,008h,01Ch ; Hex #6
36 Db 000h,000h,018h,03Ch,03Ch,018h,000h,000h ; Hex #7
37 Db 0FFh,0FFh,0E7h,0C3h,0C3h,0E7h,0FFh,0FFh ; Hex #8
38 Db 000h,000h,03Ch,066h,066h,03Ch,000h,000h ; Hex #9
39 Db 0FFh,0FFh,0C3h,099h,099h,0C3h,0FFh,0FFh ; Hex #A
40 Db 007h,003h,03Eh,066h,066h,066h,03Ch,000h ; Hex #B
41 Db 03Ch,066h,066h,066h,03Ch,018h,03Ch,018h ; Hex #C
42 Db 008h,00Ch,00Eh,00Ah,00Ah,008h,038h,030h ; Hex #D
43 Db 018h,016h,019h,017h,071h,061h,007h,006h ; Hex #E
44 Db 048h,06Bh,03Eh,0E4h,027h,07Ch,0D6h,012h ; Hex #F
45 Db 040h,070h,07Ch,07Fh,07Ch,070h,040h,000h ; Hex #10
46 Db 001h,007h,01Fh,07Fh,01Fh,007h,001h,000h ; Hex #11
47 Db 018h,03Ch,07Eh,018h,018h,07Eh,03Ch,018h ; Hex #12
48 Db 036h,036h,036h,036h,036h,000h,036h,000h ; Hex #13
49 Db 03Fh,06Ah,06Ah,03Ah,00Ah,00Ah,01Ah,000h ; Hex #14
50 Db 03Ch,076h,038h,06Ch,036h,01Ch,06Eh,03Ch ; Hex #15
51 Db 000h,000h,000h,07Fh,07Fh,07Fh,000h,000h ; Hex #16
52 Db 018h,03Ch,07Eh,018h,07Eh,03Ch,018h,0FFh ; Hex #17
53 Db 018h,03Ch,07Eh,05Ah,018h,018h,018h,000h ; Hex #18
54 Db 018h,018h,018h,05Ah,07Eh,03Ch,018h,000h ; Hex #19
55 Db 000h,00Ch,006h,07Fh,07Fh,006h,00Ch,000h ; Hex #1A
56 Db 000h,018h,030h,07Fh,07Fh,030h,018h,000h ; Hex #1B
57 Db 000h,000h,060h,060h,07Fh,07Fh,000h,000h ; Hex #1C
58 Db 000h,014h,036h,07Fh,07Fh,036h,014h,000h ; Hex #1D
59 Db 008h,008h,01Ch,01Ch,03Eh,03Eh,07Fh,000h ; Hex #1E
60 Db 07Fh,03Eh,03Eh,01Ch,01Ch,008h,008h,000h ; Hex #1F
61 Db 000h,000h,000h,000h,000h,000h,000h,000h ; Hex #20
62 Db 018h,018h,018h,018h,018h,000h,018h,000h ; Hex #21
63 Db 036h,036h,014h,000h,000h,000h,000h,000h ; Hex #22
64 Db 00Ah,00Ah,03Fh,014h,07Eh,028h,028h,000h ; Hex #23
65 Db 008h,03Eh,068h,03Eh,00Bh,07Eh,008h,000h ; Hex #24
66 Db 001h,03Fh,052h,06Ch,01Bh,035h,076h,000h ; Hex #25
67 Db 01Ch,036h,01Ch,03Bh,06Eh,066h,03Bh,000h ; Hex #26
68 Db 018h,018h,030h,000h,000h,000h,000h,000h ; Hex #27
69 Db 006h,00Ch,018h,018h,018h,00Ch,006h,000h ; Hex #28
70 Db 030h,018h,00Ch,00Ch,00Ch,018h,030h,000h ; Hex #29
71 Db 000h,036h,01Ch,07Fh,01Ch,036h,000h,000h ; Hex #2A
72 Db 000h,018h,018h,07Eh,018h,018h,000h,000h ; Hex #2B
73 Db 000h,000h,000h,000h,000h,018h,018h,030h ; Hex #2C
74 Db 000h,000h,000h,07Eh,000h,000h,000h,000h ; Hex #2D
75 Db 000h,000h,000h,000h,000h,018h,018h,000h ; Hex #2E
76 Db 003h,006h,00Ch,018h,030h,060h,040h,000h ; Hex #2F
77 Db 018h,02Ch,066h,066h,066h,034h,018h,000h ; Hex #30
78 Db 018h,018h,038h,018h,018h,018h,03Ch,000h ; Hex #31
79 Db 03Ch,066h,066h,00Ch,018h,032h,07Eh,000h ; Hex #32
80 Db 03Ch,066h,00Ch,01Ch,006h,066h,03Ch,000h ; Hex #33
81 Db 00Ch,01Ch,02Ch,06Ch,07Eh,00Ch,01Eh,000h ; Hex #34
82 Db 07Eh,060h,07Ch,066h,006h,066h,03Ch,000h ; Hex #35
83 Db 01Ch,030h,060h,07Ch,066h,066h,03Ch,000h ; Hex #36
84 Db 07Eh,066h,04Ch,00Ch,018h,018h,038h,000h ; Hex #37
85 Db 03Ch,066h,076h,03Ch,06Eh,066h,03Ch,000h ; Hex #38
86 Db 03Ch,066h,066h,03Eh,006h,00Ch,038h,000h ; Hex #39
87 Db 000h,018h,018h,000h,000h,018h,018h,000h ; Hex #3A
88 Db 000h,018h,018h,000h,000h,018h,018h,030h ; Hex #3B
89 Db 006h,00Ch,018h,030h,018h,00Ch,006h,000h ; Hex #3C
90 Db 000h,000h,07Eh,000h,07Eh,000h,000h,000h ; Hex #3D
91 Db 030h,018h,00Ch,006h,00Ch,018h,030h,000h ; Hex #3E
92 Db 03Ch,066h,026h,00Ch,018h,000h,018h,000h ; Hex #3F
93 Db 03Eh,041h,05Dh,055h,05Fh,040h,03Eh,000h ; Hex #40
94 Db 01Ch,00Ch,01Ch,016h,03Eh,023h,063h,000h ; Hex #41
95 Db 07Ch,036h,036h,03Eh,033h,033h,07Eh,000h ; Hex #42
96 Db 01Dh,033h,061h,060h,060h,031h,01Eh,000h ; Hex #43
97 Db 07Ch,036h,033h,033h,033h,036h,07Ch,000h ; Hex #44
98 Db 07Fh,031h,034h,03Ch,034h,031h,07Fh,000h ; Hex #45
99 Db 07Fh,031h,034h,03Ch,034h,030h,078h,000h ; Hex #46
100 Db 01Dh,033h,061h,060h,067h,033h,01Fh,000h ; Hex #47
101 Db 066h,066h,066h,07Eh,066h,066h,066h,000h ; Hex #48
102 Db 03Ch,018h,018h,018h,018h,018h,03Ch,000h ; Hex #49
103 Db 01Fh,006h,006h,006h,066h,066h,03Ch,000h ; Hex #4A
104 Db 067h,066h,06Ch,078h,06Ch,066h,067h,000h ; Hex #4B
105 Db 078h,030h,030h,030h,031h,033h,07Fh,000h ; Hex #4C
106 Db 041h,063h,077h,07Fh,06Bh,063h,063h,000h ; Hex #4D
107 Db 043h,063h,073h,07Bh,06Fh,067h,063h,000h ; Hex #4E
108 Db 01Ch,036h,063h,063h,063h,036h,01Ch,000h ; Hex #4F
109 Db 07Eh,033h,033h,03Eh,030h,030h,078h,000h ; Hex #50
110 Db 01Ch,036h,063h,063h,06Bh,036h,01Ch,007h ; Hex #51
111 Db 07Ch,066h,066h,07Ch,06Ch,066h,067h,000h ; Hex #52
112 Db 03Eh,066h,070h,03Ch,00Eh,066h,07Ch,000h ; Hex #53
113 Db 07Eh,05Ah,018h,018h,018h,018h,03Ch,000h ; Hex #54
114 Db 063h,063h,063h,063h,063h,063h,03Eh,000h ; Hex #55
115 Db 077h,062h,036h,034h,01Ch,018h,008h,000h ; Hex #56
116 Db 063h,063h,06Bh,06Bh,03Eh,036h,022h,000h ; Hex #57
117 Db 066h,066h,03Ch,018h,03Ch,066h,066h,000h ; Hex #58
118 Db 0E7h,066h,034h,018h,018h,018h,03Ch,000h ; Hex #59
119 Db 07Eh,066h,04Ch,018h,032h,066h,07Eh,000h ; Hex #5A
120 Db 01Eh,018h,018h,018h,018h,018h,01Eh,000h ; Hex #5B
121 Db 060h,030h,018h,00Ch,006h,003h,001h,000h ; Hex #5C
122 Db 03Ch,00Ch,00Ch,00Ch,00Ch,00Ch,03Ch,000h ; Hex #5D
123 Db 008h,01Ch,036h,000h,000h,000h,000h,000h ; Hex #5E
124 Db 000h,000h,000h,000h,000h,000h,000h,0FFh ; Hex #5F
125 Db 030h,018h,00Ch,000h,000h,000h,000h,000h ; Hex #60
126 Db 000h,000h,03Ch,066h,01Eh,066h,07Bh,000h ; Hex #61
127 Db 070h,030h,03Eh,03Bh,033h,03Bh,06Eh,000h ; Hex #62
128 Db 000h,000h,03Eh,066h,060h,066h,03Ch,000h ; Hex #63
129 Db 00Eh,006h,036h,06Eh,066h,066h,03Bh,000h ; Hex #64
130 Db 000h,000h,03Ch,066h,07Eh,060h,03Eh,000h ; Hex #65
131 Db 00Eh,01Bh,018h,03Eh,018h,018h,03Ch,000h ; Hex #66
132 Db 000h,000h,03Dh,066h,038h,03Eh,063h,03Eh ; Hex #67
133 Db 070h,030h,036h,03Bh,033h,033h,073h,000h ; Hex #68
134 Db 018h,000h,038h,018h,018h,018h,03Ch,000h ; Hex #69
135 Db 00Ch,000h,01Ch,00Ch,00Ch,06Ch,06Ch,038h ; Hex #6A
136 Db 070h,030h,033h,036h,03Ch,036h,077h,000h ; Hex #6B
137 Db 038h,018h,018h,018h,018h,018h,03Ch,000h ; Hex #6C
138 Db 000h,000h,076h,07Fh,06Bh,06Bh,06Bh,000h ; Hex #6D
139 Db 000h,000h,076h,03Bh,033h,033h,073h,000h ; Hex #6E
140 Db 000h,000h,03Ch,066h,066h,066h,03Ch,000h ; Hex #6F
141 Db 000h,000h,06Eh,033h,033h,03Eh,030h,078h ; Hex #70
142 Db 000h,000h,03Ah,066h,066h,03Eh,006h,00Fh ; Hex #71
143 Db 000h,000h,06Eh,03Bh,033h,030h,078h,000h ; Hex #72
144 Db 000h,000h,03Eh,070h,03Ch,00Eh,07Ch,000h ; Hex #73
145 Db 008h,018h,03Eh,018h,018h,01Ah,00Ch,000h ; Hex #74
146 Db 000h,000h,066h,066h,066h,066h,03Bh,000h ; Hex #75
147 Db 000h,000h,073h,032h,036h,01Ch,008h,000h ; Hex #76
148 Db 000h,000h,06Bh,06Bh,07Fh,036h,022h,000h ; Hex #77
149 Db 000h,000h,073h,036h,01Ch,036h,067h,000h ; Hex #78
150 Db 000h,000h,077h,033h,01Ah,00Ch,06Ch,038h ; Hex #79
151 Db 000h,000h,07Eh,04Ch,018h,032h,07Eh,000h ; Hex #7A
152 Db 00Eh,018h,018h,070h,018h,018h,00Eh,000h ; Hex #7B
153 Db 018h,018h,018h,018h,018h,018h,018h,000h ; Hex #7C
154 Db 070h,018h,018h,00Eh,018h,018h,070h,000h ; Hex #7D
155 Db 039h,04Eh,000h,000h,000h,000h,000h,000h ; Hex #7E
156 Db 008h,01Ch,01Ch,036h,026h,063h,07Fh,07Fh ; Hex #7F
157 Db 01Dh,033h,061h,060h,060h,031h,00Eh,01Ch ; Hex #80
158 Db 06Ch,000h,066h,066h,066h,066h,03Bh,000h ; Hex #81
159 Db 00Ch,018h,03Ch,066h,07Eh,060h,03Eh,000h ; Hex #82
160 Db 018h,03Ch,03Ch,066h,01Eh,066h,07Bh,000h ; Hex #83
161 Db 036h,000h,03Ch,066h,01Eh,066h,07Bh,000h ; Hex #84
162 Db 030h,018h,03Ch,066h,01Eh,066h,07Bh,000h ; Hex #85
163 Db 018h,018h,03Ch,066h,01Eh,066h,07Bh,000h ; Hex #86
164 Db 000h,000h,03Eh,066h,060h,036h,01Ch,038h ; Hex #87
165 Db 018h,03Ch,03Ch,066h,07Eh,060h,03Eh,000h ; Hex #88
166 Db 036h,000h,03Ch,066h,07Eh,060h,03Eh,000h ; Hex #89
167 Db 030h,018h,03Ch,066h,07Eh,060h,03Eh,000h ; Hex #8A
168 Db 06Ch,000h,038h,018h,018h,018h,03Ch,000h ; Hex #8B
169 Db 018h,03Ch,000h,038h,018h,018h,03Ch,000h ; Hex #8C
170 Db 030h,018h,000h,038h,018h,018h,03Ch,000h ; Hex #8D
171 Db 036h,008h,01Ch,016h,036h,03Fh,063h,000h ; Hex #8E
172 Db 01Ch,014h,01Ch,01Eh,036h,03Fh,063h,000h ; Hex #8F
173 Db 006h,00Ch,07Fh,031h,03Ch,031h,07Fh,000h ; Hex #90
174 Db 000h,000h,076h,01Bh,03Fh,06Ch,077h,000h ; Hex #91
175 Db 03Fh,03Dh,02Ch,03Eh,06Ch,06Dh,06Fh,000h ; Hex #92
176 Db 018h,03Ch,03Ch,066h,066h,066h,03Ch,000h ; Hex #93
177 Db 066h,000h,03Ch,066h,066h,066h,03Ch,000h ; Hex #94
178 Db 030h,018h,03Ch,066h,066h,066h,03Ch,000h ; Hex #95
179 Db 018h,03Ch,042h,066h,066h,066h,03Bh,000h ; Hex #96
180 Db 030h,018h,066h,066h,066h,066h,03Bh,000h ; Hex #97
181 Db 036h,000h,077h,033h,01Ah,00Ch,06Ch,038h ; Hex #98
182 Db 063h,01Ch,036h,063h,063h,036h,01Ch,000h ; Hex #99
183 Db 036h,041h,063h,063h,063h,063h,03Eh,000h ; Hex #9A
184 Db 000h,004h,03Ch,06Eh,07Eh,076h,03Ch,020h ; Hex #9B
185 Db 01Eh,033h,033h,07Ch,039h,05Bh,076h,000h ; Hex #9C
186 Db 01Dh,036h,067h,06Bh,073h,036h,05Ch,000h ; Hex #9D
187 Db 078h,06Ch,06Ch,07Ah,066h,06Fh,066h,003h ; Hex #9E
188 Db 00Eh,01Bh,018h,03Eh,018h,018h,058h,070h ; Hex #9F
189 Db 00Ch,018h,03Ch,066h,01Eh,066h,07Bh,000h ; Hex #A0
190 Db 018h,030h,000h,038h,018h,018h,03Ch,000h ; Hex #A1
191 Db 00Ch,018h,03Ch,066h,066h,066h,03Ch,000h ; Hex #A2
192 Db 00Ch,018h,066h,066h,066h,066h,03Bh,000h ; Hex #A3
193 Db 01Ah,02Ch,076h,03Bh,033h,033h,073h,000h ; Hex #A4
194 Db 01Ah,02Ch,073h,07Bh,06Fh,067h,063h,000h ; Hex #A5
195 Db 01Eh,036h,036h,01Fh,000h,03Fh,000h,000h ; Hex #A6
196 Db 01Ch,036h,036h,01Ch,000h,03Eh,000h,000h ; Hex #A7
197 Db 018h,000h,018h,030h,064h,066h,03Ch,000h ; Hex #A8
198 Db 000h,000h,000h,07Eh,060h,060h,000h,000h ; Hex #A9
199 Db 000h,000h,000h,07Eh,006h,006h,000h,000h ; Hex #AA
200 Db 060h,066h,06Ch,07Eh,03Bh,066h,04Ch,00Fh ; Hex #AB
201 Db 060h,066h,06Ch,07Bh,037h,06Bh,04Fh,003h ; Hex #AC
202 Db 018h,000h,018h,018h,018h,018h,018h,000h ; Hex #AD
203 Db 000h,01Bh,036h,06Ch,06Ch,036h,01Bh,000h ; Hex #AE
204 Db 000h,066h,07Eh,024h,024h,07Eh,066h,000h ; Hex #AF
205 Db 011h,044h,011h,044h,011h,044h,011h,044h ; Hex #B0
206 Db 055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh ; Hex #B1
207 Db 0EEh,0BBh,0EEh,0BBh,0EEh,0BBh,0EEh,0BBh ; Hex #B2
208 Db 018h,018h,018h,018h,018h,018h,018h,018h ; Hex #B3
209 Db 018h,018h,018h,0F8h,0F8h,018h,018h,018h ; Hex #B4
210 Db 018h,018h,0F8h,0F8h,018h,0F8h,018h,018h ; Hex #B5
211 Db 034h,034h,034h,0F4h,0F4h,034h,034h,034h ; Hex #B6
212 Db 000h,000h,000h,0F8h,0FCh,034h,034h,034h ; Hex #B7
213 Db 000h,000h,0F0h,0F8h,018h,0F8h,018h,018h ; Hex #B8
214 Db 034h,034h,0F4h,0F4h,004h,0F4h,034h,034h ; Hex #B9
215 Db 034h,034h,034h,034h,034h,034h,034h,034h ; Hex #BA
216 Db 000h,000h,0F8h,0FCh,004h,0F4h,034h,034h ; Hex #BB
217 Db 034h,034h,0F4h,0F4h,004h,0FCh,000h,000h ; Hex #BC
218 Db 034h,034h,034h,0FCh,0FCh,000h,000h,000h ; Hex #BD
219 Db 018h,018h,0F8h,0F8h,018h,0F8h,000h,000h ; Hex #BE
220 Db 000h,000h,000h,0F8h,0F8h,018h,018h,018h ; Hex #BF
221 Db 018h,018h,018h,01Fh,01Fh,000h,000h,000h ; Hex #C0
222 Db 018h,018h,018h,0FFh,0FFh,000h,000h,000h ; Hex #C1
223 Db 000h,000h,000h,0FFh,0FFh,018h,018h,018h ; Hex #C2
224 Db 018h,018h,018h,01Fh,01Fh,018h,018h,018h ; Hex #C3
225 Db 000h,000h,000h,0FFh,0FFh,000h,000h,000h ; Hex #C4
226 Db 018h,018h,018h,0FFh,0FFh,018h,018h,018h ; Hex #C5
227 Db 018h,018h,01Fh,01Fh,018h,01Fh,018h,018h ; Hex #C6
228 Db 034h,034h,034h,037h,037h,034h,034h,034h ; Hex #C7
229 Db 034h,034h,037h,037h,030h,01Fh,000h,000h ; Hex #C8
230 Db 000h,000h,03Fh,03Fh,030h,037h,034h,034h ; Hex #C9
231 Db 034h,034h,0F7h,0F7h,000h,0FFh,000h,000h ; Hex #CA
232 Db 000h,000h,0FFh,0FFh,000h,0F7h,034h,034h ; Hex #CB
233 Db 034h,034h,037h,037h,030h,037h,034h,034h ; Hex #CC
234 Db 000h,000h,0FFh,0FFh,000h,0FFh,000h,000h ; Hex #CD
235 Db 034h,034h,0F7h,0F7h,000h,0F7h,034h,034h ; Hex #CE
236 Db 018h,018h,0FFh,0FFh,000h,0FFh,000h,000h ; Hex #CF
237 Db 034h,034h,034h,0FFh,0FFh,000h,000h,000h ; Hex #D0
238 Db 000h,000h,0FFh,0FFh,000h,0FFh,018h,018h ; Hex #D1
239 Db 000h,000h,000h,0FFh,0FFh,034h,034h,034h ; Hex #D2
240 Db 034h,034h,034h,03Fh,01Fh,000h,000h,000h ; Hex #D3
241 Db 018h,018h,01Fh,01Fh,018h,00Fh,000h,000h ; Hex #D4
242 Db 000h,000h,01Fh,01Fh,018h,01Fh,018h,018h ; Hex #D5
243 Db 000h,000h,000h,03Fh,03Fh,034h,034h,034h ; Hex #D6
244 Db 034h,034h,034h,0FFh,0FFh,034h,034h,034h ; Hex #D7
245 Db 018h,018h,0FFh,0FFh,018h,0FFh,018h,018h ; Hex #D8
246 Db 018h,018h,018h,0F8h,0F8h,000h,000h,000h ; Hex #D9
247 Db 000h,000h,000h,01Fh,01Fh,018h,018h,018h ; Hex #DA
248 Db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh ; Hex #DB
249 Db 000h,000h,000h,000h,0FFh,0FFh,0FFh,0FFh ; Hex #DC
250 Db 0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h ; Hex #DD
251 Db 00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh ; Hex #DE
252 Db 0FFh,0FFh,0FFh,0FFh,000h,000h,000h,000h ; Hex #DF
253 Db 000h,000h,03Dh,06Eh,066h,06Eh,03Bh,000h ; Hex #E0
254 Db 03Ch,066h,06Ch,066h,063h,07Bh,06Eh,000h ; Hex #E1
255 Db 07Fh,033h,031h,030h,030h,030h,078h,000h ; Hex #E2
256 Db 000h,03Fh,07Eh,054h,014h,036h,066h,000h ; Hex #E3
257 Db 07Fh,033h,018h,00Ch,018h,033h,07Fh,000h ; Hex #E4
258 Db 000h,000h,03Fh,06Ch,06Ch,06Ch,038h,000h ; Hex #E5
259 Db 000h,000h,033h,033h,033h,037h,06Dh,060h ; Hex #E6
260 Db 000h,03Fh,07Eh,050h,018h,01Ch,00Ch,000h ; Hex #E7
261 Db 01Ch,008h,03Eh,06Bh,03Eh,008h,01Ch,000h ; Hex #E8
262 Db 01Ch,036h,063h,07Fh,063h,036h,01Ch,000h ; Hex #E9
263 Db 01Ch,036h,063h,063h,036h,055h,077h,000h ; Hex #EA
264 Db 01Ch,030h,018h,02Ch,066h,066h,03Ch,000h ; Hex #EB
265 Db 000h,036h,07Fh,04Dh,059h,07Fh,036h,000h ; Hex #EC
266 Db 001h,003h,03Eh,067h,06Bh,073h,03Eh,040h ; Hex #ED
267 Db 000h,000h,01Eh,030h,03Eh,030h,01Eh,000h ; Hex #EE
268 Db 03Ch,066h,066h,066h,066h,066h,066h,000h ; Hex #EF
269 Db 000h,07Eh,000h,07Eh,000h,07Eh,000h,000h ; Hex #F0
270 Db 018h,018h,07Eh,018h,018h,000h,07Eh,000h ; Hex #F1
271 Db 060h,038h,00Eh,038h,060h,000h,07Eh,000h ; Hex #F2
272 Db 006h,01Ch,070h,01Ch,006h,000h,07Eh,000h ; Hex #F3
273 Db 00Eh,01Bh,01Ah,018h,018h,018h,018h,018h ; Hex #F4
274 Db 018h,018h,018h,018h,058h,0D8h,070h,000h ; Hex #F5
275 Db 018h,018h,000h,07Eh,000h,018h,018h,000h ; Hex #F6
276 Db 000h,03Bh,06Eh,000h,03Bh,06Eh,000h,000h ; Hex #F7
277 Db 01Ch,036h,036h,01Ch,000h,000h,000h,000h ; Hex #F8
278 Db 000h,000h,018h,03Ch,018h,000h,000h,000h ; Hex #F9
279 Db 000h,000h,000h,018h,000h,000h,000h,000h ; Hex #FA
280 Db 003h,002h,006h,024h,06Ch,038h,018h,010h ; Hex #FB
281 Db 076h,03Bh,033h,033h,033h,000h,000h,000h ; Hex #FC
282 Db 03Ch,066h,00Ch,038h,07Eh,000h,000h,000h ; Hex #FD
283 Db 000h,000h,03Ch,03Ch,03Ch,03Ch,000h,000h ; Hex #FE
284 Db 000h,000h,000h,000h,000h,000h,000h,000h ; Hex #FF
285LEN_D865 EQU ($-D865)
286 ;
287POST_EGA865 EQU $ ;
288 ;
289include copyrigh.inc
290
291CODE ENDS
292 END
diff --git a/v4.0/src/DEV/DISPLAY/LCD/COPYRIGH.ASM b/v4.0/src/DEV/DISPLAY/LCD/COPYRIGH.ASM
new file mode 100644
index 0000000..d144cf9
--- /dev/null
+++ b/v4.0/src/DEV/DISPLAY/LCD/COPYRIGH.ASM
@@ -0,0 +1,10 @@
1CODE SEGMENT BYTE PUBLIC 'CODE'
2 ASSUME CS:CODE,DS:CODE
3
4 DB 13,10
5 DB "Microsoft MS-DOS (R) LCD Display Font File",13,10
6include copyrigh.inc
7 DB 1Ah
8
9CODE ENDS
10 END
diff --git a/v4.0/src/DEV/DISPLAY/LCD/FONT-R3.ASM b/v4.0/src/DEV/DISPLAY/LCD/FONT-R3.ASM
new file mode 100644
index 0000000..b450e61
--- /dev/null
+++ b/v4.0/src/DEV/DISPLAY/LCD/FONT-R3.ASM
@@ -0,0 +1,15 @@
1CODE SEGMENT BYTE PUBLIC 'CODE'
2 ASSUME CS:CODE,DS:CODE
3
4BEGIN: ORG 0
5
6FNTHEAD:DB 0FFH,"FONT " ;FILE TAG
7 DB 8 DUP(0) ;RESERVED
8 DW 1 ;CNT OF POINTERS IN HEADER
9 DB 1 ;TYPE FOR INFO POINTER
10 DW OFFSET INFO,0 ;POINTER TO INFO IN FILE
11INFO: DW 5 ;COUNT OF ENTRIES
12
13CODE ENDS
14 END
15 \ No newline at end of file
diff --git a/v4.0/src/DEV/DISPLAY/LCD/LCD.LNK b/v4.0/src/DEV/DISPLAY/LCD/LCD.LNK
new file mode 100644
index 0000000..ef24e8f
--- /dev/null
+++ b/v4.0/src/DEV/DISPLAY/LCD/LCD.LNK
@@ -0,0 +1,8 @@
1FONT-R3+
2437-CPI+
3850-CPI+
4860-CPI+
5863-CPI+
6865-CPI+
7COPYRIGH;
8 \ No newline at end of file
diff --git a/v4.0/src/DEV/DISPLAY/LCD/MAKEFILE b/v4.0/src/DEV/DISPLAY/LCD/MAKEFILE
new file mode 100644
index 0000000..18ba576
--- /dev/null
+++ b/v4.0/src/DEV/DISPLAY/LCD/MAKEFILE
@@ -0,0 +1,32 @@
1#************************ Makefile for Display\LCD ************************
2
3inc =..\..\..\inc
4msg =..\..\..\message
5dos =..\..\..\dos
6hinc =..\..\..\h
7
8#
9######################### Dependencies Begin Here #########################
10#
11
12all: lcd.cpi
13
14865-cpi.obj: 865-cpi.asm
15
16860-cpi.obj: 860-cpi.asm
17
18437-cpi.obj: 437-cpi.asm
19
20863-cpi.obj: 863-cpi.asm
21
22850-cpi.obj: 850-cpi.asm
23
24copyrigh.obj: copyrigh.asm $(inc)\copyrigh.inc
25
26font-r3.obj: font-r3.asm
27
28lcd.cpi: font-r3.obj 437-cpi.obj 850-cpi.obj 860-cpi.obj \
29 863-cpi.obj 865-cpi.obj copyrigh.obj lcd.lnk makefile
30 link @lcd.lnk
31 exe2bin font-r3.exe lcd.cpi
32 del font-r3.exe
diff --git a/v4.0/src/DEV/DISPLAY/MACROS.INC b/v4.0/src/DEV/DISPLAY/MACROS.INC
new file mode 100644
index 0000000..6e316ac
--- /dev/null
+++ b/v4.0/src/DEV/DISPLAY/MACROS.INC
@@ -0,0 +1,29 @@
1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2; *** MACROS **** MACROS **** MACROS ****
3;
4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
5IF1 ;
6 %OUT . ®MACROS .INC¯
7ENDIF ;
8 ;
9JUMP MACRO LBL ;
10 LOCAL A ;
11.XCREF ;
12 IFNDEF LBL&_J ; IS THIS FIRST INVOKATION
13A: JMP LBL ;
14 ELSE ;
15 IF (LBL&_J GE $) OR ($-LBL&_J GT 126)
16A: JMP LBL ; IS THE JUMP TOO FAR AWAY?
17 ELSE ;
18A: JMP LBL&_J ; PERFORM SHORT JUMP
19 ENDIF ;
20 ENDIF ;
21LBL&_J=A ;
22.CREF ;
23 ENDM ;
24.XCREF JUMP ;
25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
26;
27; *** MACROS **** MACROS **** MACROS ****
28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
29 \ No newline at end of file
diff --git a/v4.0/src/DEV/DISPLAY/MAKEFILE b/v4.0/src/DEV/DISPLAY/MAKEFILE
new file mode 100644
index 0000000..a0eb06e
--- /dev/null
+++ b/v4.0/src/DEV/DISPLAY/MAKEFILE
@@ -0,0 +1,53 @@
1#************************* Makefile for Display ***************************
2
3inc =..\..\inc
4msg =..\..\messages
5dos =..\..\dos
6hinc =..\..\h
7make =nmake
8
9#
10######################## Dependencies Begin Here ##########################
11
12all: display.sys ega.cpi lcd.cpi
13
14display.ctl: display.skl $(msg)\$(COUNTRY).msg
15
16display.obj: display.asm makefile \
17 macros.inc \
18 def-equ.inc \
19 int2fcom.inc \
20 int10com.inc \
21 cps-func.inc \
22 write.inc \
23 f-parser.inc
24
25init.obj: init.asm makefile \
26 macros.inc \
27 def-equ.inc \
28 $(inc)\sysmsg.inc \
29 $(inc)\versiona.inc \
30 display.ctl \
31 tables.inc
32
33parser.obj: parser.asm makefile \
34 def-equ.inc \
35 $(inc)\struc.inc \
36 $(inc)\parse.asm
37
38display.sys: display.obj init.obj parser.obj display.lnk makefile zero.dat
39 link @display.lnk
40 exe2bin display.exe display.sys < zero.dat
41 del display.exe
42
43ega.cpi:
44 cd ega
45 $(make)
46 cd ..
47
48lcd.cpi:
49 cd lcd
50 $(make)
51 cd ..
52
53
diff --git a/v4.0/src/DEV/DISPLAY/PARSER.ASM b/v4.0/src/DEV/DISPLAY/PARSER.ASM
new file mode 100644
index 0000000..d72a40e
--- /dev/null
+++ b/v4.0/src/DEV/DISPLAY/PARSER.ASM
@@ -0,0 +1,809 @@
1PAGE ,132
2TITLE PARSE CODE AND CONTROL BLOCKS FOR DISPLAY.SYS
3
4;****************** START OF SPECIFICATIONS **************************
5;
6; MODULE NAME: PARSER.ASM
7;
8; DESCRIPTIVE NAME: PARSES THE DEVICE= STATEMENT IN CONFIG.SYS FOR
9; DISPLAY.SYS
10;
11; FUNCTION: THE COMMAND LINE PASSED TO DISPLAY.SYS IN THE CONFIG.SYS
12; STATEMENT IS PARSED TO CHECK FOR CORRECT SYNTAX. A TABLE
13; IS SETUP CONTAINING THE VALUES FOUND.
14;
15; ENTRY POINT: PARSER
16;
17; INPUT: ES:DI POINTS TO REQUEST HEADER
18;
19; AT EXIT:
20; NORMAL: TABLE SET UP WITH VALUES FOUND.
21;
22; ERROR: 0 RETURNED IN FIRST WORD OF TABLE.
23;
24; INTERNAL REFERENCES:
25;
26; ROUTINES: SYSPARSE - PARSING CODE
27;
28; DATA AREAS: PARMSx - PARSE CONTROL BLOCK FOR SYSPARSE
29; TABLE - TO CONTAIN VALUES FOUND IN DEVICE= LINE
30;
31; EXTERNAL REFERENCES:
32;
33; ROUTINES: N/A
34;
35; DATA AREAS: N/A
36;
37; NOTES:
38;
39; REVISION HISTORY:
40; AN000; - DOS Version 4.00
41; AN001 - GHG P897 - Changes to the parser forced the inclusion
42; of the '=' in the device ID.
43;
44; Label: "The DOS DISPLAY.SYS Device Driver"
45; "Version 4.00 (C) Copyright 1988 Microsoft
46; "Licensed Material - Program Property of Microsoft"
47;
48;****************** END OF SPECIFICATIONS ****************************
49;Modification history *********************************************************
50;AN002; P1895 DISPLAY.SYS rejects command CON=(cga,(437),(0,0)) 10/22/87 J.K.
51;******************************************************************************
52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
53;
54; The following is the table structure of the parser. All fields are
55; two bytes field (accept for the device and id name)
56;
57; TABLE HEADER :
58; ÍÍÍÍÍÍÍÍÍÍÍÍÍÍ
59; ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
60; ³ N = Number of devices. ³
61; ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
62; ³ Device # 1 offset ÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ>ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
63; ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ ³
64; ³ Device # 2 offset ³ ³ Table_1 (a) ³
65; ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ ³
66; ³ Device # 3 offset ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
67; ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
68; ³ Device # 4 offset ³
69; ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
70;
71;
72; N = 1,2,3 or 4. A two bytes number indicating the number of device specified.
73; DEVICE # N OFFSET : a two bytes offset address to table_1. (ie. Device #1 offset
74; is a pointer to table_1 (a). Device #2 offset is a pointer to table_1
75; (b)...etc.). If an error was detected in the command N is set to zero.
76;
77;
78;
79; TABLE_1 :
80; ÍÍÍÍÍÍÍÍÍ
81;
82; ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
83; ³ N = Number of Offsets. ³ ³ ³
84; ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ÚÄÄÄÄÄij Table_2 (a) ³
85; ³ Device Name offset ÄÅÄÄÄÄÙ ³ ³
86; ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
87; ³ Device Id offset ÄÅÄÄÄÄÄÄ¿
88; ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
89; ³ Device HWCP offset ÄÅÄÄÄÄ¿ ³ ³ ³
90; ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ ÀÄÄÄij Table_3 (a) ³
91; ³ Device Desg offset ÄÅÄÄ¿ ³ ³ ³
92; ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
93; ³ "Reserved" ³ ³ ³
94; ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ³ ³ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
95; ³ ³ ³ ³
96; ³ ÀÄÄÄÄÄij Table_4 (a) ³
97; ³ ³ ³
98; ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
99; ³ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
100; ³ ³ ³
101; ÀÄÄÄÄÄÄÄij Table_5 (a) ³
102; ³ ³
103; ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
104;
105;
106; N=Length of table_1, or the number of offsets contained in table_1.
107; The offsets are pointers (two bytes) to the parameters value of the device.
108; "Reserved" : a two byte memory reserved for future use of the "PARMS" option.
109;
110;
111; TABLE_2 :
112; ÍÍÍÍÍÍÍÍÍ
113;
114; ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
115; ³ N = Length of devices name ³
116; ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
117; ³ Device name ³
118; ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
119;
120; N = Length of device name. Device length is always 8 byte long.
121; Device Name : the name of the device (eg. LPT1, CON, PRN). The name
122; is paded with spaces to make up the rest of the 8 characters.
123;
124;
125;
126; TABLE_3 :
127; ÍÍÍÍÍÍÍÍÍ
128;
129; ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
130; ³ N = Length of Id name. ³
131; ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
132; ³ Id Name ³
133; ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
134;
135; N = Length of id name. Id name length is always 8 byte long.
136; Id Name : the name of the id (eg. EGA, VGA). The name
137; is paded with spaces to make up the rest of the 8 character.
138;
139;
140;
141; TABLE_4 :
142; ÍÍÍÍÍÍÍÍÍ
143;
144; ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
145; ³ N = Length of table. ³
146; ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
147; ³ HWCP # 1 ³
148; ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
149; ³ HWCP # 2 ³
150; ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
151; ³ . ³
152; ³ . ³
153; ³ . ³
154; ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
155; ³ HWCP # 10 ³
156; ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
157;
158;
159; N = Length of table in words. Or the number of HWCP's.
160; HWCP # N : a hardware code page number converted to binary. The maximum
161; number of pages allowed is 10.
162;
163;
164;
165; TABLE_5 :
166; ÍÍÍÍÍÍÍÍÍ
167;
168; ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
169; ³ N = Length of table. ³
170; ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
171; ³ Designate ³
172; ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
173; ³ Font ³
174; ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
175;
176; N = Lenght of table. 0 - nothing was specified
177; 1 - Only a designate was specified.
178; 2 - Designate and font were given. If the Desg field
179; was left empty in the DEVICE command then the
180; Designate field is filled with 0FFFFH.
181; Designate, Font : Are the Desg. and Font binary numbers.
182;
183;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
184
185INCLUDE DEF-EQU.INC ; structures and equates ;AN000;
186
187.XLIST
188INCLUDE STRUC.INC ; Structured macros ;AN000;
189.LIST
190
191PUBLIC PARSER ; near procedure for parsing DEVICE= statement ;AN000;
192PUBLIC TABLE ; table for variable storage used by INIT module. ;AN000;
193PUBLIC GET_DEVICE_ID ; procedure to determine device adapter ;AN000;
194
195;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
196;
197; Set assemble switches for parse code
198;
199;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
200
201DateSW EQU 0 ;AN000;
202DrvSW EQU 0 ;AN000;
203SwSW EQU 0 ;AN000;
204Val1SW EQU 0 ;AN000;
205Val2SW EQU 0 ;AN000;
206Val3SW EQU 0 ;AN000;
207
208
209CODE SEGMENT PUBLIC BYTE 'CODE'
210 ASSUME CS:CODE
211
212
213.XLIST
214INCLUDE PARSE.ASM ; Parsing code ;AN000;
215.LIST
216
217
218;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
219;
220; PARM control block for DISPLAY.SYS - DEVICE= command statement.
221; Command line looks like:
222;
223; DEVICE=[d:][path]DISPLAY.SYS CON[:]=(type[,[hwcp][,n]])
224; or
225; DEVICE=[d:][path]DISPLAY.SYS CON[:]=(type[,[hwcp][,(n,m)]])
226; or, for compatibility with DOS 3.3; PTM P1895
227; DEVICE=[d:][path]DISPLAY.SYS CON[:]=(type[,[(hwcp)][,n|(n,m)]])
228;
229; The command line will be parsed from left to right, taking care of the
230; nesting of complex lists as they occur.
231;
232; The first level of control blocks is shown below.
233; Complex list control blocks follow.
234; Null VALUE LIST and RESULT BUFFER are placed after all other PARSE control
235; blocks.
236;
237; d:\path\DISPLAY.SYS CON=(complex list)
238;
239;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
240
241PARMS1 LABEL WORD ;AN000;
242 DW PARMSX1 ;AN000;
243 DB 0 ; no extra delimeters or EOLs. ;AN000;
244
245PARMSX1 LABEL BYTE ;AN000;
246 DB 1,1 ; min,max positional operands ;AN000;
247 DW D_NAME ; pointer to control block ;AN000;
248 DB 0 ; no switches ;AN000;
249 DB 1 ; 1 keywords ;AN000;
250 DW DSP_LIST ; pointer to control block ;AN000;
251
252D_NAME LABEL WORD ;AN000;
253 DW 0200H ; file spec ;AN000;
254 DW 0001H ; cap result by file table ;AN000;
255 DW RESULT_BUF ; result ;AN000;
256 DW NOVALS ; no value checking done ;AN000;
257 DB 0 ; no keyword/switch synonyms ;AN000;
258
259DSP_LIST LABEL WORD ;AN000;
260 DW 0400H ; complex list, ignore colon ;AN000;
261 DW 0012H ; cap result by char table ;AN000;
262 DW RESULT_BUF ; result ;AN000;
263 DW NOVALS ; no value checking done ;AN000;
264 DB 2 ; 1 keyword ;AN000;
265 DB "CON=",0 ;GHG CON[:]= keyword ;AN001;
266 DB "CON:=",0 ;GHG ;AN001;
267
268;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
269;
270; PARM control block for second level of nesting.
271; ie. complex list from first level of nesting
272;
273; (type, hwcp, n or complex list)
274;or,
275; (type, (hwcp), n or complex list)
276;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
277
278PARMS2 LABEL WORD ;AN000;
279 DW PARMSX2 ;AN000;
280 DB 0 ; no extra delimeters or EOLs. ;AN000;
281
282PARMSX2 LABEL BYTE ;AN000;
283 DB 0,3 ; min,max positional operands ;AN000;
284 DW DSP_TYPE ; pointer to control block ;AN000;
285 DW HWCP ; pointer to control block ;AN000;
286 DW CP_PREPS ; pointer to control block ;AN000;
287 DB 0 ; no switches ;AN000;
288 DB 0 ; no keywords ;AN000;
289
290DSP_TYPE LABEL BYTE ;AN000;
291 DW 2001H ; sstring (optional) ;AN000;
292 DW 0002H ; cap by char table ;AN000;
293 DW RESULT_BUF ; result ;AN000;
294 DW NOVALS ; value list ;AN000;
295 DB 0 ; no keyword/switch synonyms ;AN000;
296
297
298HWCP LABEL BYTE ;AN000;
299 DW 8401H ;AN002; numeric or complex list (optional)
300 DW 0 ; no functions ;AN000;
301 DW RESULT_BUF ; result ;AN000;
302 DW NOVALS ; no value checking done ;AN000;
303 DB 0 ; no keyword/switch synonyms ;AN000;
304
305CP_PREPS LABEL BYTE ;AN000;
306 DW 8401H ; numeric or complex list (optional) ;AN000;
307 DW 0 ; no functions ;AN000;
308 DW RESULT_BUF ; result ;AN000;
309 DW NOVALS ; value list ;AN000;
310 DB 0 ; no keyword/switch synonyms ;AN000;
311
312
313;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
314;
315; PARM control block for third level of nesting.
316; ie. complex list from second nesting level
317;
318; (hwcp)
319;
320;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
321
322PARMS3_X LABEL WORD ;AN002;
323 DW PARMSX3_X ;AN002;
324 DB 0 ;AN002; no extra delimeters or EOLs.
325
326PARMSX3_X LABEL BYTE ;AN002;
327 DB 1,1 ;AN002; min,max positional operands
328 DW PREPS ;AN002; pointer to control block
329 DB 0 ;AN002; no switches
330 DB 0 ;AN002; no keywords
331
332;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
333;
334; PARM control block for third level of nesting.
335; ie. complex list from second nesting level
336;
337; (n,m)
338;
339;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
340
341PARMS3 LABEL WORD ;AN000;
342 DW PARMSX3 ;AN000;
343 DB 0 ; no extra delimeters or EOLs. ;AN000;
344
345PARMSX3 LABEL BYTE ;AN000;
346 DB 1,2 ; min,max positional operands ;AN000;
347 DW PREPS ; pointer to control block ;AN000;
348 DW SUBFONTS ; pointer to control block ;AN000;
349 DB 0 ; no switches ;AN000;
350 DB 0 ; no keywords ;AN000;
351
352PREPS LABEL BYTE ;AN000;
353 DW 8000H ; numeric ;AN000;
354 DW 0 ; no functions ;AN000;
355 DW RESULT_BUF ; result ;AN000;
356 DW NOVALS ; value list ;AN000;
357 DB 0 ; no keyword/switch synonyms ;AN000;
358
359SUBFONTS LABEL BYTE ;AN000;
360 DW 8001H ; numeric (optional) ;AN000;
361 DW 0 ; no functions ;AN000;
362 DW RESULT_BUF ; result ;AN000;
363 DW NOVALS ; no value checking done ;AN000;
364 DB 0 ; no keyword/switch synonyms ;AN000;
365
366; Null VALUE LIST and RESULT BUFFER for all PARSE control blocks ;AN000;
367
368NOVALS LABEL BYTE ;AN000;
369 DB 0 ; no value checking done ;AN000;
370
371RESULT_BUF LABEL BYTE ;AN000;
372RESULT_TYPE DB ? ; type returned (number, string, etc.) ;AN000;
373 DB ? ; matched item tag (if applicable) ;AN000;
374 DW ? ; synonym ptr (if applicable) ;AN000;
375RESULT_VAL DD ? ; value ;AN000;
376
377;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
378;
379; TABLE STRUCTURE FOR RETURNING VALUES TO THE INIT MODULE
380; (ADAPTED FROM VERSION 1.0 DISPLAY.SYS)
381;
382;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
383
384TABLE LABEL BYTE ; table header ;AN000;
385DEVICE_NUM DW ONE ; should only be one device ;AN000;
386TABLE2_PTR DW TABLE2 ; pointer to table 2 ;AN000;
387
388TABLE2 LABEL WORD ;AN000;
389OFFSET_NUM DW FOUR ; 4 pointer follow ;AN000;
390TABLE3_PTR DW TABLE3 ; pointer to table 3 (device name) ;AN000;
391TABLE4_PTR DW TABLE4 ; pointer to table 4 (device id) ;AN000;
392TABLE5_PTR DW TABLE5 ; pointer to table 5 (hwcp's) ;AN000;
393TABLE6_PTR DW TABLE6 ; pointer to table 6 (num desg's and fonts) ;AN000;
394
395TABLE3 LABEL WORD ; device name (ie. CON) ;AN000;
396T3_LENGTH DW EIGHT ; length ;AN000;
397T3_NAME DB "CON " ; value ;AN000;
398
399TABLE4 LABEL WORD ; device id. (eg. EGA,MONO...) ;AN000;
400T4_LENGTH DW ZERO ; length ;AN000;
401T4_NAME DB " " ; value ;AN000;
402
403TABLE5 LABEL WORD ; hardware code pages ;AN000;
404T5_NUM DW ZERO ; only 1 for CON ;AN000;
405T5_VALUE DW ? ; value ;AN000;
406
407TABLE6 LABEL WORD ; Designates and fonts ;AN000;
408T6_NUM DW ZERO ; values given (0 - 2 valid) ;AN000;
409T6_DESG DW ? ; n value ;AN000;
410T6_FONT DW ? ; m value ;AN000;
411
412
413OK_FLAG DB ON ; FLAG INDICATING PARSE STATUS ;AN000;
414LOOP1 DB ZERO ;AN000;
415LOOP2 DB ZERO ;AN000;
416
417;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
418;
419; PROCEDURE_NAME: PARSER
420;
421; FUNCTION:
422; THIS PROCEDURE PARSES THE DEVICE= PARAMETERS FROM THE INIT REQUEST
423; BLOCK.
424;
425; AT ENTRY: ES:DI POINTS TO REQUEST HEADER
426;
427; AT EXIT:
428; NORMAL: TABLE SET UP WITH VALUES FOUND
429;
430; ERROR: 0 LOADED IN FIRST WORD OF TABLE
431;
432; AUTHOR: WGR
433;
434;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
435
436PARSER PROC NEAR ;AN000;
437 PUSH ES ;AN000;
438 PUSH BX ;AN000;
439 PUSH DS ; ;AN000;
440 PUSH SI ; ;AN000;
441 LDS SI,RH.RH0_BPBA ; ;AN000;
442 PUSH CS ; establish ES .. ;AN000;
443 POP ES ; addressability to data ;AN000;
444 LEA DI,PARMS1 ; point to PARMS control block ;AN000;
445 XOR CX,CX ; clear both CX and DX for ;AN000;
446 XOR DX,DX ; SYSPARSE ;AN000;
447 CALL SYSPARSE ; move pointer past file spec ;AN000;
448 CALL SYSPARSE ; do first parse ;AN000;
449 .WHILE <AX NE RC_EOL> AND ; EOL?...then end parse...and.. ;AN000;
450 .WHILE <OK_FLAG EQ ON> ; make sure that flag still ok.. ;AN000;
451 .IF <AX NE RC_NO_ERROR> ; parse error? ;AN000;
452 MOV OK_FLAG,OFF ; yes...reset flag ;AN000;
453 .ELSE ; no...process.. ;AN000;
454 .SELECT ; ;AN000;
455 .WHEN <RESULT_TYPE EQ COMPLEX> ; complex string found? ;AN000;
456 INC LOOP1 ; increment count ;AN000;
457 .IF <LOOP1 GT ONE> ; more than one? ;AN000;
458 MOV OK_FLAG,OFF ; yes....we have an error ;AN000;
459 .ELSE ; no .. ;AN000;
460 CALL PARSE_MAIN ; process complex string.. ;AN000;
461 .ENDIF ; ;AN000;
462 .OTHERWISE ; not a complex string so.. ;AN000;
463 MOV OK_FLAG,OFF ; we have a problem...reset flag ;AN000;
464 .ENDSELECT ; ;AN000;
465 CALL SYSPARSE ; continue parsing.. ;AN000;
466 .ENDIF ; ;AN000;
467 .ENDWHILE ; ;AN000;
468 .IF <OK_FLAG EQ OFF> OR ; flag indicating error? ;AN000;
469 .IF <LOOP1 EQ ZERO> ; or no parameters specified? ;AN000;
470 MOV DEVICE_NUM,ZERO ; yes...set device number to 0 ;AN000;
471 STC ; ;AN000;
472 .ELSE ; ;AN000;
473 CLC ; ;AN000;
474 .ENDIF ; ;AN000;
475 POP SI ; ;AN000;
476 POP DS ; ;AN000;
477 POP BX ; ;AN000;
478 POP ES ; ;AN000;
479 RET ; ;AN000;
480PARSER ENDP ;AN000;
481
482
483;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
484;
485; PROCEDURE_NAME: PARSE_MAIN
486;
487; FUNCTION:
488; THIS PROCEDURE PARSES THE CON=( ) COMPLEX LIST DEVICE= LINE FOUND
489; IN CONFIG.SYS
490;
491; AT ENTRY: RESULT BUFFER CONTAINS POINTER TO COMPLEX STRING
492;
493; AT EXIT:
494; NORMAL: TABLE SET UP WITH VALUES FOUND
495;
496; ERROR: OK_FLAG = 0
497;
498;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
499
500PARSE_MAIN PROC NEAR ;AN000;
501 PUSH DI ; setup to parse the nested.. ;AN000;
502 PUSH DS ; complex string...but save.. ;AN000;
503 PUSH SI ; current parsing status. ;AN000;
504 PUSH CX ; ;AN000;
505 XOR CX,CX ; ;AN000;
506 LEA DI,PARMS2 ; next control block.. ;AN000;
507 LDS SI,RESULT_VAL ; point to stored string ;AN000;
508 CALL SYSPARSE ; ;AN000;
509 .WHILE <AX NE RC_EOL> AND ; not EOL? and.. ;AN000;
510 .WHILE <OK_FLAG EQ ON> ; error flag still ok? ;AN000;
511 .IF <AX NE RC_NO_ERROR> ; check for parse errors ;AN000;
512 MOV OK_FLAG,OFF ; yes....reset error flag ;AN000;
513 .ELSE ; no...process ;AN000;
514 INC LOOP2 ; ;AN000;
515 .SELECT ; ;AN000;
516 .WHEN <RESULT_TYPE EQ STRING> ; simple string ;AN000;
517 CALL PARSE_STR ; yes...process ;AN000;
518 .WHEN <RESULT_TYPE EQ NUMBER> ; number?.. ;AN000;
519 CALL PARSE_NUM ; yes...process ;AN000;
520 .WHEN <RESULT_TYPE EQ COMPLEX> ; complex string? ;AN000;
521 CALL PARSE_COMPLEX ;AN002;
522 .OTHERWISE ; anything else is.. ;AN000;
523 MOV OK_FLAG,OFF ; an error...reset flag. ;AN000;
524 .ENDSELECT ; ;AN000;
525 CALL SYSPARSE ; continue parsing ;AN000;
526 .ENDIF ; ;AN000;
527 .ENDWHILE ; ;AN000;
528 POP CX ; restore original parse.. ;AN000;
529 POP SI ; registers. ;AN000;
530 POP DS ; ;AN000;
531 POP DI ; ;AN000;
532 RET ; ;AN000;
533PARSE_MAIN ENDP
534
535;
536PARSE_COMPLEX PROC ;AN002;
537 .IF <LOOP2 EQ TWO> ;AN002; Should be for HWCP
538 CALL PARSE_COMP_X ;AN002; for (hwcp)
539 .ELSE ;AN002;
540 CALL PARSE_COMP ; yes...process for (n,m) ;AN000;
541 .ENDIF ;AN002;
542 ret ;AN002;
543PARSE_COMPLEX ENDP
544
545;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
546;
547; PROCEDURE_NAME: PARSE_COMP_X
548;
549; FUNCTION:
550; THIS PROCEDURE PARSES A COMPLEX LIST FOUND WITHIN THE CON=( )
551; COMPLEX LIST for (hwcp).
552;
553; AT ENTRY: RESULT BUFFER CONTAINS POINTER TO COMPLEX STRING
554;
555; AT EXIT:
556; NORMAL: TABLE SET UP WITH VALUES FOUND
557;
558; ERROR: OK_FLAG = 0
559;
560;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
561
562PARSE_COMP_X PROC NEAR ;AN002;
563 PUSH DI ;AN002; setup ro parse the nested..
564 PUSH DS ;AN002; complex string..saving the..
565 PUSH SI ;AN002; current parse status.
566 PUSH CX ;AN002;
567 XOR CX,CX ;AN002;
568 LEA DI,PARMS3_X ;AN002; next control block
569 LDS SI,RESULT_VAL ;AN002; point to stored string.
570 CALL SYSPARSE ;AN002;
571 .WHILE <AX NE RC_EOL> AND ;AN002; not EOL?...and..
572 .WHILE <OK_FLAG EQ ON> ;AN002; error flag still okay?
573 .IF <AX NE RC_NO_ERROR> OR ;AN002; parse error?...or..
574 .IF <RESULT_TYPE NE NUMBER> ;AN002; something other than a number..
575 MOV OK_FLAG,OFF ;AN002; found?....yes..reset flag.
576 .ELSE ;AN002; no...process..
577 INC T5_NUM ;AN002; increment counter
578 MOV AX,WORD PTR RESULT_VAL ;AN002; get numeric value into word
579 MOV T5_VALUE,AX ;AN002; yes...number of designates.
580 CALL SYSPARSE ;AN002; continue parsing
581 .ENDIF ;AN002;
582 .ENDWHILE ;AN002;
583 POP CX ;AN002; restore previous parse..
584 POP SI ;AN002; registers.
585 POP DS ;AN002;
586 POP DI ;AN002;
587 RET ;AN002;
588PARSE_COMP_X ENDP ;AN002;
589
590
591;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
592;
593; PROCEDURE_NAME: PARSE_COMP
594;
595; FUNCTION:
596; THIS PROCEDURE PARSES A COMPLEX LIST FOUND WITHIN THE CON=( )
597; COMPLEX LIST for (n,m).
598;
599; AT ENTRY: RESULT BUFFER CONTAINS POINTER TO COMPLEX STRING
600;
601; AT EXIT:
602; NORMAL: TABLE SET UP WITH VALUES FOUND
603;
604; ERROR: OK_FLAG = 0
605;
606;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
607
608PARSE_COMP PROC NEAR ;AN000;
609 PUSH DI ; setup ro parse the nested.. ;AN000;
610 PUSH DS ; complex string..saving the.. ;AN000;
611 PUSH SI ; current parse status. ;AN000;
612 PUSH CX ; ;AN000;
613 XOR CX,CX ; ;AN000;
614 LEA DI,PARMS3 ; next control block ;AN000;
615 LDS SI,RESULT_VAL ; point to stored string. ;AN000;
616 CALL SYSPARSE ; ;AN000;
617 .WHILE <AX NE RC_EOL> AND ; not EOL?...and.. ;AN000;
618 .WHILE <OK_FLAG EQ ON> ; error flag still okay? ;AN000;
619 .IF <AX NE RC_NO_ERROR> OR ; parse error?...or.. ;AN000;
620 .IF <RESULT_TYPE NE NUMBER> ; something other than a number.. ;AN000;
621 MOV OK_FLAG,OFF ; found?....yes..reset flag. ;AN000;
622 .ELSE ; no...process.. ;AN000;
623 INC T6_NUM ; increment counter ;AN000;
624 MOV AX,WORD PTR RESULT_VAL ; get numeric value into word ;AN000;
625 .IF <T6_NUM EQ ONE> ; first value found? ;AN000;
626 MOV T6_DESG,AX ; yes...number of designates. ;AN000;
627 .ELSE ; else.. ;AN000;
628 MOV T6_FONT,AX ; second number...number of fonts. ;AN000;
629 .ENDIF ; ;AN000;
630 CALL SYSPARSE ; continue parsing ;AN000;
631 .ENDIF ; ;AN000;
632 .ENDWHILE ; ;AN000;
633 POP CX ; restore previous parse.. ;AN000;
634 POP SI ; registers. ;AN000;
635 POP DS ; ;AN000;
636 POP DI ; ;AN000;
637 RET ; ;AN000;
638PARSE_COMP ENDP
639
640
641;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
642;
643; PROCEDURE_NAME: PARSE_STR
644;
645; FUNCTION:
646; THIS PROCEDURE PARSES A STRING FOUND WITHIN THE CON=( ) STATEMENT
647;
648; AT ENTRY: RESULT BUFFER POINTS TO ASCIIZ STRING
649;
650; AT EXIT:
651; NORMAL: TABLE SET UP WITH VALUES FOUND
652;
653; ERROR: N/A
654;
655;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
656
657PARSE_STR PROC NEAR ;AN000;
658 PUSH DI ; get source and.. ;AN000;
659 PUSH DS ; destination registers.. ;AN000;
660 PUSH SI ; setup. ;AN000;
661 LDS SI,RESULT_VAL ; ;AN000;
662 .IF <<BYTE PTR DS:[SI]> NE ZERO> ; check for null string ;AN000;
663 LEA DI,T4_NAME ; ;AN000;
664 LODSB ; load first character. ;AN000;
665 .WHILE <AL NE ZERO> ; while not at end of ASCIIZ do.. ;AN000;
666 STOSB ; store.. ;AN000;
667 LODSB ; load next character.. ;AN000;
668 .ENDWHILE ; ;AN000;
669 MOV T4_LENGTH,EIGHT ; value found. ;AN000;
670 .ENDIF ; ;AN000;
671 POP SI ; restore registers. ;AN000;
672 POP DS ; ;AN000;
673 POP DI ; ;AN000;
674 RET ;AN000;
675PARSE_STR ENDP
676
677
678;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
679;
680; PROCEDURE_NAME: PARSE_NUM
681;
682; FUNCTION:
683; THIS PROCEDURE PARSES NUMBERS FOUND IN THE CON=( ) STATEMENT
684; BLOCK.
685;
686; AT ENTRY: RESULT BUFFER CONTAINS A DWORD NUMBER VALUE
687;
688; AT EXIT:
689; NORMAL: TABLE SET UP WITH VALUES FOUND
690;
691; ERROR: N/A
692;
693;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
694
695PARSE_NUM PROC NEAR ;AN000;
696 MOV AX,WORD PTR RESULT_VAL ; get value into word form ;AN000;
697 .IF <LOOP2 EQ TWO> ; if this is the code page then.. ;AN000;
698 MOV T5_VALUE,AX ; load that value. ;AN000;
699 INC T5_NUM ; ;AN000;
700 .ELSEIF <LOOP2 EQ THREE> ; ;AN000;
701 MOV T6_DESG,AX ; must be number of designates.. ;AN000;
702 INC T6_NUM ; load and increment count ;AN000;
703 .ENDIF ; ;AN000;
704 RET ; ;AN000;
705PARSE_NUM ENDP ;AN000;
706
707
708 ASSUME CS:CODE,DS:CODE
709
710;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
711;
712; PROCEDURE_NAME: GET_DEVICE_ID
713;
714; FUNCTION:
715; THIS PROCEDURE RETURNS THE DISPLAY DEVICE TO THE INIT ROUTINE WHEN
716; A DEVICE ID IS NOT SUPPLIED.
717;
718; AT ENTRY: N/A
719;
720; AT EXIT:
721; NORMAL: DEVICE ID PLACED WITHIN THE TABLE. (EGA OR LCD)
722; CARRY IS CLEARED.
723;
724; ERROR: DEVICE ID IS MONO OR CGA
725; CARRY IS SET.
726;
727;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
728
729FUNC_INFO INFO_BLOCK <> ;AN000;
730
731DEVICE_N_LENGTH EQU EIGHT ;AN000;
732
733DEVICE_TYPES DB "EGA " ;AN000;
734 DB "LCD " ;AN000;
735
736NUM_DEVICE_TYPES EQU ($-DEVICE_TYPES)/DEVICE_N_LENGTH ;AN000;
737
738DEVICE_FLAG DB 00000000B ;AN000;
739
740
741GET_DEVICE_ID PROC NEAR ;AN000;
742 PUSH AX ;AN000;
743 PUSH BX ; ;AN000;
744 PUSH CX ; s ;AN000;
745 PUSH DX ; a r ;AN000;
746 PUSH DI ; v e ;AN000;
747 PUSH SI ; e g ;AN000;
748 PUSH ES ; i ;AN000;
749 PUSH DS ; s ;AN000;
750 PUSH CS ; t ;AN000;
751 POP DS ; e ;AN000;
752 PUSH CS ; r ;AN000;
753 POP ES ; s ;AN000;
754 XOR AX,AX ; ;AN000;
755 MOV AH,FUNC_CALL ; ;AN000;
756 LEA DI,FUNC_INFO ; ;AN000;
757 XOR BX,BX ; ;AN000;
758 INT 10H ; try VGA functionality call ;AN000;
759 .IF <AL EQ FUNC_CALL> ; worked?....then ;AN000;
760 OR DEVICE_FLAG,VGA_FOUND ; VGA found. ;AN000;
761 .ELSE ; no VGA...try EGA ;AN000;
762 MOV AH,ALT_SELECT ; ;AN000;
763 MOV BL,EGA_INFO_CALL ; ;AN000;
764 INT 10H ; ;AN000;
765 .IF <BL NE EGA_INFO_CALL> ; if changed then EGA present.. ;AN000;
766 OR DEVICE_FLAG,EGA_FOUND ; mark as found. ;AN000;
767 .ELSE ; no EGA...try LCD. ;AN000;
768 MOV AH,GET_SYS_ID ; get system id.. ;AN000;
769 INT 15H ; yup....its a convertible..so ;AN000;
770 .IF <ES:[BX].MODEL_BYTE EQ LCD_MODEL> AND ;AN000;
771 MOV AH,GET_STATUS ; check for LCD.. ;AN000;
772 INT 15H ; ;AN000;
773 .IF <BIT AL NAND ON> ; yes....bit says LCD..so.. ;AN000;
774 OR DEVICE_FLAG,LCD_FOUND ; mark as LCD. ;AN000;
775 .ENDIF ; ;AN000;
776 .ENDIF ; ;AN000;
777 .ENDIF ; ;AN000;
778 .IF <DEVICE_FLAG NE ZERO> ; nothing found?..then exit (eg. MONO) ;AN000;
779 LEA SI,DEVICE_TYPES ; start of new id's ;AN000;
780 SAR DEVICE_FLAG,ONE ; shift flag into carry bit ;AN000;
781 .WHILE NC ; carry not set yet.. ;AN000;
782 ADD SI,DEVICE_N_LENGTH ; next id ;AN000;
783 SAR DEVICE_FLAG,ONE ; next flag... ;AN000;
784 .ENDWHILE ; ;AN000;
785 PUSH CS ; found....transfer id.. ;AN000;
786 POP ES ; into the table.. ;AN000;
787 LEA DI,T4_NAME ; ;AN000;
788 MOV CX,DEVICE_N_LENGTH ; ;AN000;
789 REP MOVSB ; ;AN000;
790 MOV T4_LENGTH,EIGHT ; ;AN000;
791 CLC ; clear error flag ;AN000;
792 .ELSE ; ;AN000;
793 STC ; set error (ie. MONO or CGA found) ;AN000;
794 .ENDIF ; ;AN000;
795 POP DS ; r ;AN000;
796 POP ES ; e r ;AN000;
797 POP SI ; s e ;AN000;
798 POP DI ; t g ;AN000;
799 POP DX ; o i ;AN000;
800 POP CX ; r s ;AN000;
801 POP BX ; e t ;AN000;
802 POP AX ; e ;AN000;
803 RET ; r ;AN000;
804GET_DEVICE_ID ENDP ; s
805
806
807
808CODE ENDS
809 END
diff --git a/v4.0/src/DEV/DISPLAY/TABLES.INC b/v4.0/src/DEV/DISPLAY/TABLES.INC
new file mode 100644
index 0000000..930762b
--- /dev/null
+++ b/v4.0/src/DEV/DISPLAY/TABLES.INC
@@ -0,0 +1,368 @@
1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2;
3; TABLES.INC
4;
5; THIS FILE CONTAINS THE CONFIGURATION INFORMATION FOR THE CPS CON
6; DEVICE DRIVER. THE INFORMATION IS INDEXED USING THE FULL DEVICE
7; SUB-TYPE ID.
8;
9; THE TABLE STRUCTURE IS AS FOLLOWS:
10;
11; DB "........" device sub-type id
12; DB 00000xxxb encoded font resolution byte
13; DW OFFSET modes pointer to list of display modes
14; DW OFFSET fonts pointer to list of font resolutions
15;
16; ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
17; ³ Loading mechanism bit incoding ³
18; ³ ³
19; ³ USER ? ³
20; ³ ³ BIOS SUPPORT ³
21; ³ ÚÄÄÁÄÄ¿ ÚÄÄÁÄÄ¿ ³
22; ³ ³
23; ³ 7 6 5 4 3 2 1 0 ³
24; ³ x x x x 0 0 x x ³
25; ³ ³ ³ ³ ³ ³ ÀÄÄ 1 - INT 10 - AX=1100H ³
26; ³ ³ ³ ³ ³ ³ ³
27; ³ ³ ³ ³ ³ ÀÄÄÄÄ 1 = INT 10 - AX=1400H ³
28; ³ ³ ³ ³ ³ ³
29; ³ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄ 1 = INT 1FH ³
30; ³ ³ ³ ³ ³
31; ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄ 1 = INT 43H ³
32; ³ ³ ³ ³
33; ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄ 1 = LCD 1FH handling needed ³
34; ³ ³ ³
35; ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ 1 = LCD 44H handling needed ³
36; ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
37;
38; ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
39; ³ Memory Requirements ³
40; ³ ³
41; ³ 7 6 5 4 3 2 1 0 ³
42; ³ 0 0 0 0 x x x x ³
43; ³ ³ ³ ³ ÀÄÄ 200 scan lines ³
44; ³ ³ ³ ÀÄÄÄÄ 350 scan lines ³
45; ³ ³ ÀÄÄÄÄÄÄ 400 scan lines ³
46; ³ ÀÄÄÄÄÄÄÄÄ 480 scan lines ³
47; ³ ³
48; ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
49;
50; THE TABLES ARE FILLED BEYOND THE SUPPORTED MODES. THIS
51; IS 'GUESSING' AT THE APPROACH FOR ANY FUTURE DISPLAY MODES
52; WHICH MAY BE BEYOND THE CON-CPS V1.0 SUPPORT. TO DATE,
53; NO ADAPTER SUPPORTS THE EXTRA MODES - NOT EVEN <insert IBM codeword>.
54;
55; Numerous <insert IBM code words> WOULD USE THE
56; SUBSET OF THE EGA MODES.
57;
58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
59IF1
60 %OUT . ®TABLES .INC¯
61ENDIF
62 ;
63DISPLAY_CONFIG LABEL BYTE ;
64 DB "EGA " ; EGA SUPPORT
65DC_FONT DB 00000111b ;
66 DW OFFSET EGA_MODES ;
67 DW OFFSET EGA_FONT_SIZE ;
68DC_ENTRY EQU ($-DISPLAY_CONFIG) ;
69 DB "EGA 8 " ; EGA (5153)
70 DB 00000001b ;
71 DW OFFSET EGA_MODES ;
72 DW OFFSET EGA8_FONT_SIZE ;
73 DB "EGA 14 " ; EGA (5154)
74 DB 00000011b ;
75 DW OFFSET EGA_MODES ;
76 DW OFFSET EGA14_FONT_SIZE ;
77 DB "EGA 14M " ; EGA (5151)
78 DB 00000011b ; WGR load 8x8 for > 25. ;AN000;
79 DW OFFSET EGAM_MODES ;
80 DW OFFSET EGA14_FONT_SIZE ;
81 DB "LCD " ; CONVERTIBLE
82 DB 00000001b ;
83 DW OFFSET LCD_MODES ;
84 DW OFFSET LCD_FONT_SIZE ;
85 DB "MONO " ; MONOCHROME ADAPTER
86 DB 00000000b ;
87 DW OFFSET MONO_MODES ;
88 DW OFFSET MONO_FONT_SIZE ;
89 DB "CGA " ; COLOUR GRAPHICS ADAPTER
90 DB 00000000b ;
91 DW OFFSET MONO_MODES ;
92 DW OFFSET MONO_FONT_SIZE ;
93NUM_DISPLAY_CONFIG EQU ($-DISPLAY_CONFIG)/DC_ENTRY
94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
95EGA_MODES: ;
96 DB 00000001b ;0
97 DB 00000001b ;1
98 DB 00000001b ;2
99 DB 00000001b ;3
100 DB 00110000b ;4
101 DB 00110000b ;5
102 DB 00110000b ;6
103 DB 00000001b ;7
104 DB 11111111b ;D;8 ÄÄÄÄÄÄ¿
105 DB 11111111b ;D;9 ³
106 DB 11111111b ;D;A RESERVED
107 DB 11111111b ;D;B ³
108 DB 11111111b ;D;C ÄÄÄÄÄÄÙ
109 DB 00110000b ;D
110 DB 00110000b ;E
111 DB 00100000b ;F
112 DB 00100000b ;10
113 DB 00100000b ;11
114 DB 00100000b ;12
115 DB 00110000b ;13
116 DB 00110000b ;14
117 DB 00110000b ;15
118 DB 00110000b ;16
119 DB 00110000b ;17
120 DB 00110000b ;18
121 DB 00110000b ;19
122 DB 00110000b ;1A
123 DB 00110000b ;1B
124 DB 00110000b ;1C
125 DB 00110000b ;1D
126 DB 00110000b ;1E
127 DB 00110000b ;1F
128NUM_MODES EQU ($-EGA_MODES) ;
129;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
130EGAM_MODES: ;
131 DB 11111111b ;0
132 DB 11111111b ;1
133 DB 11111111b ;2
134 DB 11111111b ;3
135 DB 11111111b ;4
136 DB 11111111b ;5
137 DB 11111111b ;6
138 DB 00010001b ;7
139 DB 11111111b ;D;8 ÄÄÄÄÄÄ¿
140 DB 11111111b ;D;9 ³
141 DB 11111111b ;D;A RESERVED
142 DB 11111111b ;D;B ³
143 DB 11111111b ;D;C ÄÄÄÄÄÄÙ
144 DB 11111111b ;D
145 DB 11111111b ;E
146 DB 00100000b ;F
147 DB 11111111b ;10
148 DB 11111111b ;11
149 DB 11111111b ;12
150 DB 11111111b ;13
151 DB 11111111b ;14
152 DB 11111111b ;15
153 DB 11111111b ;16
154 DB 11111111b ;17
155 DB 11111111b ;18
156 DB 11111111b ;19
157 DB 11111111b ;1A
158 DB 11111111b ;1B
159 DB 11111111b ;1C
160 DB 11111111b ;1D
161 DB 11111111b ;1E
162 DB 11111111b ;1F
163;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
164LCD_MODES: ;
165 DB 00000010b ;0
166 DB 00000010b ;1
167 DB 00000010b ;2
168 DB 00000010b ;3
169 DB 11010000b ;4
170 DB 11010000b ;5
171 DB 11010000b ;6
172 DB 00000010b ;7
173 DB 11111111b ;D;8 ÄÄÄÄÄÄ¿
174 DB 11111111b ;D;9 ³
175 DB 11111111b ;D;A RESERVED
176 DB 11111111b ;D;B ³
177 DB 11111111b ;D;C ÄÄÄÄÄÄÙ
178 DB 11010000b ;D
179 DB 11010000b ;E
180 DB 11010000b ;F
181 DB 11010000b ;10
182 DB 11010000b ;11
183 DB 11010000b ;12
184 DB 11010000b ;13
185 DB 11010000b ;14
186 DB 11010000b ;15
187 DB 11010000b ;16
188 DB 11010000b ;17
189 DB 11010000b ;18
190 DB 11010000b ;19
191 DB 11010000b ;1A
192 DB 11010000b ;1B
193 DB 11010000b ;1C
194 DB 11010000b ;1D
195 DB 11010000b ;1E
196 DB 11010000b ;1F
197;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
198MONO_MODES: ;
199MONO_FONT_SIZE: ;
200 DB 11111111b ;0
201 DB 11111111b ;1
202 DB 11111111b ;2
203 DB 11111111b ;3
204 DB 11111111b ;4
205 DB 11111111b ;5
206 DB 11111111b ;6
207 DB 11111111b ;7
208 DB 11111111b ;D;8 ÄÄÄÄÄÄ¿
209 DB 11111111b ;D;9 ³
210 DB 11111111b ;D;A RESERVED
211 DB 11111111b ;D;B ³
212 DB 11111111b ;D;C ÄÄÄÄÄÄÙ
213 DB 11111111b ;D
214 DB 11111111b ;E
215 DB 11111111b ;F
216 DB 11111111b ;10
217 DB 11111111b ;11
218 DB 11111111b ;12
219 DB 11111111b ;13
220 DB 11111111b ;14
221 DB 11111111b ;15
222 DB 11111111b ;16
223 DB 11111111b ;17
224 DB 11111111b ;18
225 DB 11111111b ;19
226 DB 11111111b ;1A
227 DB 11111111b ;1B
228 DB 11111111b ;1C
229 DB 11111111b ;1D
230 DB 11111111b ;1E
231 DB 11111111b ;1F
232;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
233EGA_FONT_SIZE: ; this needs to be adjusted
234 DB 0 ;0 *************************
235 DB 0 ;1 *************************
236 DB 0 ;2
237 DB 0 ;3
238 DB 8 ;4
239 DB 8 ;5
240 DB 8 ;6
241 DB 0 ;7
242 DB 0FFH ;D;8 ÄÄÄÄÄÄ¿
243 DB 0FFH ;D;9 ³
244 DB 0FFH ;D;A RESERVED
245 DB 0FFH ;D;B ³
246 DB 0FFH ;D;C ÄÄÄÄÄÄÙ
247 DB 0 ;D
248 DB 0 ;E
249 DB 0 ;F
250 DB 0 ;10
251 DB 0 ;11
252 DB 0 ;12
253 DB 0 ;13
254 DB 0 ;14
255 DB 0 ;15
256 DB 0 ;16
257 DB 0 ;17
258 DB 0 ;18
259 DB 0 ;19
260 DB 0 ;1A
261 DB 0 ;1B
262 DB 0 ;1C
263 DB 0 ;1D
264 DB 0 ;1E
265 DB 0 ;1F
266;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
267EGA8_FONT_SIZE: ;
268 DB 8 ;0
269 DB 8 ;1
270 DB 8 ;2
271 DB 8 ;3
272 DB 8 ;4
273 DB 8 ;5
274 DB 8 ;6
275 DB 0FFH ;7
276 DB 0FFH ;D;8 ÄÄÄÄÄÄ¿
277 DB 0FFH ;D;9 ³
278 DB 0FFH ;D;A RESERVED
279 DB 0FFH ;D;B ³
280 DB 0FFH ;D;C ÄÄÄÄÄÄÙ
281 DB 8 ;D
282 DB 8 ;E
283 DB 8 ;F
284 DB 0FFH ;10
285 DB 0FFH ;11
286 DB 0FFH ;12
287 DB 0FFH ;13
288 DB 0FFH ;14
289 DB 0FFH ;15
290 DB 0FFH ;16
291 DB 0FFH ;17
292 DB 0FFH ;18
293 DB 0FFH ;19
294 DB 0FFH ;1A
295 DB 0FFH ;1B
296 DB 0FFH ;1C
297 DB 0FFH ;1D
298 DB 0FFH ;1E
299 DB 0FFH ;1F
300;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
301EGA14_FONT_SIZE: ;
302 DB 14 ;0
303 DB 14 ;1
304 DB 14 ;2
305 DB 14 ;3
306 DB 8 ;4
307 DB 8 ;5
308 DB 8 ;6
309 DB 14 ;7
310 DB 0FFH ;D;8 ÄÄÄÄÄÄ¿
311 DB 0FFH ;D;9 ³
312 DB 0FFH ;D;A RESERVED
313 DB 0FFH ;D;B ³
314 DB 0FFH ;D;C ÄÄÄÄÄÄÙ
315 DB 8 ;D
316 DB 8 ;E
317 DB 14 ;F
318 DB 14 ;10
319 DB 0FFH ;11
320 DB 0FFH ;12
321 DB 0FFH ;13
322 DB 0FFH ;14
323 DB 0FFH ;15
324 DB 0FFH ;16
325 DB 0FFH ;17
326 DB 0FFH ;18
327 DB 0FFH ;19
328 DB 0FFH ;1A
329 DB 0FFH ;1B
330 DB 0FFH ;1C
331 DB 0FFH ;1D
332 DB 0FFH ;1E
333 DB 0FFH ;1F
334;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
335LCD_FONT_SIZE: ;
336 DB 8 ;0
337 DB 8 ;1
338 DB 8 ;2
339 DB 8 ;3
340 DB 8 ;4
341 DB 8 ;5
342 DB 8 ;6
343 DB 8 ;7
344 DB 0FFH ;D;8 ÄÄÄÄÄÄ¿
345 DB 0FFH ;D;9 ³
346 DB 0FFH ;D;A RESERVED
347 DB 0FFH ;D;B ³
348 DB 0FFH ;D;C ÄÄÄÄÄÄÙ
349 DB 8 ;D
350 DB 8 ;E
351 DB 8 ;F
352 DB 8 ;10
353 DB 8 ;11
354 DB 8 ;12
355 DB 8 ;13
356 DB 8 ;14
357 DB 8 ;15
358 DB 8 ;16
359 DB 8 ;17
360 DB 8 ;18
361 DB 8 ;19
362 DB 8 ;1A
363 DB 8 ;1B
364 DB 8 ;1C
365 DB 8 ;1D
366 DB 8 ;1E
367 DB 8 ;1F
368;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
diff --git a/v4.0/src/DEV/DISPLAY/WRITE.INC b/v4.0/src/DEV/DISPLAY/WRITE.INC
new file mode 100644
index 0000000..0d6338e
--- /dev/null
+++ b/v4.0/src/DEV/DISPLAY/WRITE.INC
@@ -0,0 +1,373 @@
1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2; WRITE ROUTINE FOR DESIGNATE WRITE
3;
4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
5IF1 ;
6 %OUT . ®WRITE .INC¯
7ENDIF ;
8 PUBLIC REDUCED_SUPPORT ;
9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
10;
11; WRITE DESIGNATE SUPPORT
12;
13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
14DESG_WRITE PROC ;
15 CMP CS:DESG_SEMAPHORE,ZERO ; TEST IF DESIGNATE IS ON...
16 JNE DW_2 ; PASS ONTO DOS
17 CLC ;
18 RET ;
19DW_2: CMP CS:DESG_SEMAPHORE,ONE ; CHECK IF PROPER DESIGNATE
20 JE DW_4 ;
21 OR BUF.STATUS,TEN ; IF NOT, THEN DEVICE ERROR
22 STC ;
23 RET ;
24DW_4: CALL WRITE ;
25 RET ;
26DESG_WRITE ENDP ;
27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
28;
29;
30;
31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
32REDUCED_SUPPORT EQU $ ; THIS IS A MARKER FOR REDUCED CPS
33 ; SUPPORT WITH 0 DESGINATES (CGA,MONO)
34WRITE PROC ;
35 PUSH DS ;
36 ;
37 PUSH CS ;
38 POP DS ;
39 ;
40 PUSH SI ;S;
41 CLI ;S;
42 MOV SI,SP ;S;
43 MOV OLD_STACK_O,SI ;S;
44 MOV SI,SS ;S;
45 MOV OLD_STACK_S,SI ;S;
46 MOV AX,OFFSET STACK_START ;S;
47 MOV SI,CS ;S;
48 MOV SS,SI ;S;
49 MOV SP,AX ;S;
50 STI ;S;
51 ;
52 LES DI,DWORD PTR BUF.RH_PTRO; RESTORE ES:DI AS REQUEST HEADER PTR
53 LEA SI,FTABLE ; GET BASE ADDRESS OF PARSER TABLE
54 ;
55 MOV DS:[SI].FLAG,0 ; NO RESTART
56 MOV AX,RH.RH3_CNT ;
57 MOV DS:[SI].BUFFER_LEN,AX ; LENGTH OF REQUEST PACKET
58 ;
59 PUSH SI ;
60 LEA SI,[SI].BUFFER_ADDR ; PACKET ADDRESS
61 MOV AX,RH.RH3_DTAO ;
62 MOV DS:[SI],AX ;
63 INC SI ;
64 INC SI ;
65 MOV AX,RH.RH3_DTAS ;
66 MOV DS:[SI],AX ;
67 POP SI ;
68 ;
69 CALL FONT_PARSER ;
70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
71;
72; FONT PARSER HAS BEEN CALLED, NOW CHECK ALL OF THE
73; APPROPRIATE TABLES FOR DATA INFORMATION, ERROR
74; CONDITIONS, etc....
75;
76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
77 LEA SI,FTABLE ; GET BASE ADDRESS OF PARSER TABLE
78 MOV CX,[SI].NUM_FTBLK ; CX = NUMBER OF PARSING TABLES
79 LEA SI,FTB1 ; THEN SET SI = FIRST PARSING TABLE
80 ;
81W_1: MOV AX,DS:[SI].FTB_STATUS ;
82 CMP AX,0FFF0H ; CHECK THE PARSER STATUS
83 JNB W_3 ;
84 ;
85 OR BUF.STATUS,FAIL ; IF THE PARSER FAILED ON THE DATA
86 MOV RH.RHC_STA,AX ; FILE, THEN SET FLAG AND...
87 CALL HANDLE_WRITE_ERROR ;
88 JUMP W_7 ; ERROR HAS BEEN FOUND..DON'T CONTINUE
89 ;
90W_3: CMP AX,FSTAT_FONT ;
91 JNE W_6 ;
92 ;
93 MOV AX,DS:[SI].FTB_DLEN ;
94 CALL HANDLE_DATA_WRITE ;
95 ;
96W_6: ADD SI,TYPE FTBLK ; ADVANCE SI POINTER TO NEXT TABLE
97 LOOP W_1 ; CHECK OUT ALL PARSING TABLES
98 ;
99W_7: CLI ;S;
100 MOV SI,OLD_STACK_S ;S;
101 MOV AX,OLD_STACK_O ;S;
102 MOV SS,SI ;S;
103 MOV SP,AX ;S;
104 STI ;S;
105 POP SI ;S;
106 POP DS ;
107 STC ; INDICATE NOT TO PASS ON DATA
108 RET ;
109WRITE ENDP ;
110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
111;
112; THIS IS USED TO SET THE CPS DRIVER IN THE CASE OF A
113; DESIGNATE ERROR. IT WILL RESET THE DESIGNATED CP's
114; TO INVALID, AND IF THE ACTIVE_CP WAS A DESIGNATED CP,
115; THEN IT TOO BECOMES INVALID.
116;
117;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
118HANDLE_WRITE_ERROR PROC ;
119 PUSH DS ;
120 PUSH AX ;
121 PUSH CX ;
122 PUSH SI ;
123 ;
124 MOV AX,-1 ; ...SET DESGINATE LIST TO (-1)'S
125 MOV CX,CPD_REQ_DESG ; GET NUMBER AND
126 MOV SI,2 ; +2
127HWE_3: CMP CPD_REQ_DESG[SI],AX ; CHECK IF REQUESTED PREP WAS VALID
128 JE HWE_4 ; IF REQUESTED WAS VALID, THEN THE ERROR
129 MOV CPD_DESG_N[SI],AX ; SETS ACTUAL PREP LIST ENTRY TO INVALID
130HWE_4: INC SI ;
131 INC SI ;
132 LOOP HWE_3 ; REPEAT FOR #DESIGNATES
133 ;
134 MOV CX,CPD_ACTIVE ;
135 CALL FIND_CP ; CHECK IF ACTIVE_CP=STILL VALID
136 JNC HWE_2 ;
137 MOV CX,-1 ;
138 MOV CPD_ACTIVE,CX ;
139 ;
140HWE_2: POP SI ;
141 POP CX ;
142 POP AX ;
143 POP DS ;
144 RET ;
145HANDLE_WRITE_ERROR ENDP ;
146;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
147;
148; THIS SUBROUTINE TAKES THE DATA INFORMATION ISOLATED
149; BY THE FONT PARSER AND MOVES INTO THE INTERNAL FONT
150; FONT BUFFERS. IT COPIES THE DATA BASED ON THE SIZE
151; OF THE INTERNAL FONTS & THE REQUIRED FONT SIZES.
152;
153;
154; INPUT:
155; AX = LENGTH OF DATA
156; CX = TABLE # TO PARSE
157; DS:SI = POINTER TO 'FTBLK'
158;
159;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
160NUM_DATA_FONTS DW ? ;
161TABLE_INDEX DW ? ;
162LEN_DATA DW ? ;
163INDEX_WRITE_PNTER DW ? ;
164 ;
165HANDLE_DATA_WRITE PROC ;
166 PUSH AX ;
167 PUSH BX ;
168 PUSH CX ;
169 PUSH SI ;
170 PUSH DI ;
171 PUSH DS ;
172 PUSH ES ;
173 ;
174 PUSH CX ;
175 MOV CX,DS:[SI].FTB_FONTS ; READ IN #FONTS FROM DATA FILE
176 MOV CS:NUM_DATA_FONTS,CX ;
177 POP CX ;
178 ;
179;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
180;
181; ROUTINE TO FIND TABLE_INDEX FOR DATA WRITE'S
182; THIS WAS ADDED TO ACCOUNT FOR A REPLACEMENT
183; TECHNIQUE APPROACH.....(Sept 3/86)
184;
185;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
186 PUSH AX ;
187 PUSH CX ;
188 PUSH ES ;
189 ;
190 PUSH CS ;
191 POP ES ;
192 MOV AX,DS:[SI].FTB_CP ; GET THE CODE PAGE OF THIS FONT BLOCK
193 MOV CX,CPD_DESG_N ; GET THE NUMBER OF CP's TO CHECK
194 MOV DI,TWO ;
195BBB_0: CMP AX,CPD_DESG_N[DI] ; LOOKING FOR A MATCHED CODE PAGE
196 JE BBB_1 ;
197 INC DI ;
198 INC DI ;
199 LOOP BBB_0 ;
200 ;
201;;;;;;INVALID???;;;;;;;;;;;;;;;;;;;;;;;;;
202 ;
203BBB_1: MOV DI,CPD_DESG_N ;
204 SUB DI,CX ;
205 MOV CS:TABLE_INDEX,DI ;
206BBB_2: POP ES ;
207 POP CX ;
208 POP AX ;
209;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
210;
211;
212;
213;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
214 PUSH SI ;
215 LEA SI,FTABLE ; GET BASE ADDRESS OF PARSER TABLE
216 SHL DI,1 ;
217 SHL DI,1 ; MULTIPLY INDEX BY FOUR..SEG:OFFSET
218 CALL GET_WRITE_PNTR ; GET LOCATION OF 1ST FONT_WRITE PNTER
219 ADD DI,SI ; DI NOW IS THE POINTER TO WRITE_START
220 POP SI ;
221 ;
222 MOV CS:INDEX_WRITE_PNTER,DI ; SAVE ADDRESS OF INDEX WRITE PNTER
223 ;
224 MOV ES,CS:[DI+2] ; SET ES : DI WITH WRITE POINTER!
225 MOV DI,CS:[DI] ;
226 ;
227 MOV CX,DS:[SI].FTB_DAHI ; GET SEGMENT OF DATA
228 MOV SI,DS:[SI].FTB_DALO ; GET OFFSET OF DATA
229 MOV DS,CX ;
230 ; <<SETUP DESTINATION INFO>>
231 MOV CX,AX ; SAVE LENGTH OF DATA TO COPY
232 MOV CS:LEN_DATA,CX ; SAVE THIS VALUE
233 AND CX,CX ; TEST LENGTH OF DATA
234 JNZ TEMP_0 ;
235 JUMP HDW_8 ;
236;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
237;
238; NOW DS : SI POINTS TO SOURCE DATA INFORMATION,
239; ES : DI POINTS TO THE DESTINATION BUFFER!
240; CX = NUMBER OF INFORMATION BYTES AVAILABLE
241; THE DATA MUST BE CHECKED FOR THE FONT RESOLUTIONS
242; AS THEY ARE TO FIT INTO THE INTERNAL BUFFERS.
243;
244;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
245TEMP_0: PUSH AX ;
246 PUSH BX ;
247 PUSH CX ;
248 PUSH SI ;
249 PUSH DI ;
250 ;
251 LEA BX,CPD_FONT_DATA ; TEST IF THERE IS OUTSTANDING DATA
252 ADD BX,CS:TABLE_INDEX ; FOR INFORMATION TO COPY or SKIP OVER.
253 ADD BX,CS:TABLE_INDEX ; (ACCOUNT FOR WORD VALUE)
254 MOV AX,CS:[BX] ;
255 OR AX,AX ;
256 JE HDW_00 ; IF NOTHING TO CONSIDER, THEN MOVE ON
257 TEST AX,8000H ;;;;SKIP/COPY;;;;; TEST IF OUTSTANDING DATA TO COPY/SKIP
258 JNZ HDW_P0 ;
259 MOV CX,AX ; SET VALUE IN CX....
260 MOV AX,CS:NUM_DATA_FONTS ;
261 PUSH AX ;
262 JUMP HDW_3AA ;
263HDW_P0: AND AX,7FFFH ; STRIP OFF FIRST BIT...
264 MOV CX,AX ;
265 MOV AX,CS:NUM_DATA_FONTS ;
266 PUSH AX ;
267 JUMP HDW_5AA ;
268 ;
269HDW_00: MOV CX,CS:NUM_DATA_FONTS ;
270HDW_0: CMP CS:LEN_DATA,0 ; TEST IF THERE IS ANY DATA LEFT?
271 JNE HDW_0A ;
272 JUMP HDW_6 ; IF 0 LEFT...THEN END...
273 ;
274HDW_0A: MOV AL,[SI] ; GET #ROWS FROM DATA
275 PUSH CX ; SAVE COUNT
276 MOV CX,NUM_FONT_PRIORITY ;
277 LEA BX,FONT_PRIORITY ; SET DI TO START OF TABLE
278HDW_1: CMP AL,CS:[BX] ;
279 JE HDW_3 ; IF EQUAL, THEN ALREADY IN TABLE
280 INC BX ; OTHERWISE, TAKE THIS MODES FONT RES
281 LOOP HDW_1 ; AND COMPARE AGAINST NEXT PRIOR.VALUE
282 JUMP HDW_5 ; IF NO MATCH, THEN IGNORE THIS FONT!!!
283 ;
284HDW_3: XOR AH,AH ; FONT SIZE NEEDED...GET IT!
285 MOV CX,[SI+4] ; GET THE #CHARACTERS IN TABLE
286 PUSH DX ;
287 MUL CX ;
288 POP DX ;
289 ADD AX,SIX ; ACCOUNT FOR DATA HEADER
290 MOV CX,AX ; SET COUNT INTO CX....
291 ;
292HDW_3AA:CMP CX,CS:LEN_DATA ; TEST IF SUPPLIED DATA>=NEEDED
293 JBE HDW_3A ;
294 SUB CX,CS:LEN_DATA ; IF NOT ENOUGH DATA HERE, THEN FORWARD
295 MOV AX,CX ; VALUE TO NEXT DATA CALL.
296 CALL SET_CPD_FONT_DATA ;
297 MOV CX,CS:LEN_DATA ;
298 JUMP HDW_3B ;
299 ;
300HDW_3A: XOR AX,AX ;
301 CALL SET_CPD_FONT_DATA ;
302HDW_3B: SUB CS:LEN_DATA,CX ;
303 CLD ;
304 REP MOVSB ; MOVE THAT RESOLUTION IN...
305 ;
306HDW_4: POP CX ; RESTORE #FONTS IN DATA
307 LOOP HDW_0 ;
308 JUMP HDW_6 ;
309 ;
310HDW_5: XOR AH,AH ; FONT SIZE NEEDED...GET IT!
311 MOV CX,[SI+4] ; GET THE #CHARACTERS IN TABLE
312 PUSH DX ;
313 MUL CX ;
314 POP DX ;
315 ADD AX,SIX ; ACCOUNT FOR DATA HEADER
316 MOV CX,AX ; PUT IN CX FOR NOW
317 ;
318HDW_5AA:CMP CX,CS:LEN_DATA ; TEST IF SUPPLIED DATA>=NEEDED
319 JBE HDW_5A ;
320 SUB CX,CS:LEN_DATA ; IF NOT ENOUGH DATA HERE, THEN FORWARD
321 MOV AX,CX ; VALUE TO NEXT DATA CALL.
322 OR AX,8000H ; SET TO SKIP NEXT DATA....
323 CALL SET_CPD_FONT_DATA ;
324 MOV CX,CS:LEN_DATA ;
325 JUMP HDW_5B ;
326 ;
327HDW_5A: XOR AX,AX ;
328 CALL SET_CPD_FONT_DATA ;
329HDW_5B: SUB CS:LEN_DATA,CX ;
330 ADD SI,CX ; ADVANCE SOURCE POINTER OVER THIS FONT
331 JUMP HDW_4 ;
332 ;
333HDW_6: MOV SI,CS:INDEX_WRITE_PNTER ;
334 MOV CS:[SI],DI ;
335 MOV CS:[SI+2],ES ;
336 ;
337 POP DI ;
338 POP SI ;
339 POP CX ;
340 POP BX ;
341 POP AX ;
342;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
343;
344;
345;
346;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
347HDW_8: POP ES ;
348 POP DS ;
349 POP DI ;
350 POP SI ;
351 POP CX ;
352 POP BX ;
353 POP AX ;
354 RET ;
355HANDLE_DATA_WRITE ENDP ;
356;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
357;
358; SET_CPD_FONT_DATA
359;
360; THIS ROUTINE IS USED TO SET THE COPY/SKIP VALUE
361; CONTAINED IN 'AX'.
362;
363;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
364SET_CPD_FONT_DATA PROC ;
365 PUSH SI ;
366 MOV SI,CS:TABLE_INDEX ;
367 ADD SI,SI ;
368 MOV CS:CPD_FONT_DATA.[SI],AX;
369 POP SI ;
370 RET ;
371SET_CPD_FONT_DATA ENDP ;
372;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
373 \ No newline at end of file
diff --git a/v4.0/src/DEV/DISPLAY/ZERO.DAT b/v4.0/src/DEV/DISPLAY/ZERO.DAT
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/v4.0/src/DEV/DISPLAY/ZERO.DAT
@@ -0,0 +1 @@
0