From 2d04cacc5322951f187bb17e017c12920ac8ebe2 Mon Sep 17 00:00:00 2001 From: Mark Zbikowski Date: Thu, 25 Apr 2024 21:24:10 +0100 Subject: MZ is back! --- v4.0/src/DEV/DISPLAY/CPS-FUNC.INC | 728 ++++++++++++ v4.0/src/DEV/DISPLAY/DEF-EQU.INC | 290 +++++ v4.0/src/DEV/DISPLAY/DISPLAY.ASM | 388 +++++++ v4.0/src/DEV/DISPLAY/DISPLAY.LNK | 4 + v4.0/src/DEV/DISPLAY/DISPLAY.SKL | 15 + v4.0/src/DEV/DISPLAY/DISPMES.ASM | 17 + v4.0/src/DEV/DISPLAY/EGA/437-8X14.ASM | 269 +++++ v4.0/src/DEV/DISPLAY/EGA/437-8X16.ASM | 269 +++++ v4.0/src/DEV/DISPLAY/EGA/437-8X8.ASM | 270 +++++ v4.0/src/DEV/DISPLAY/EGA/437-CPI.ASM | 49 + v4.0/src/DEV/DISPLAY/EGA/850-8X14.ASM | 270 +++++ v4.0/src/DEV/DISPLAY/EGA/850-8X16.ASM | 270 +++++ v4.0/src/DEV/DISPLAY/EGA/850-8X8.ASM | 270 +++++ v4.0/src/DEV/DISPLAY/EGA/850-CPI.ASM | 49 + v4.0/src/DEV/DISPLAY/EGA/860-8X14.ASM | 270 +++++ v4.0/src/DEV/DISPLAY/EGA/860-8X16.ASM | 270 +++++ v4.0/src/DEV/DISPLAY/EGA/860-8X8.ASM | 270 +++++ v4.0/src/DEV/DISPLAY/EGA/860-CPI.ASM | 49 + v4.0/src/DEV/DISPLAY/EGA/863-8X14.ASM | 270 +++++ v4.0/src/DEV/DISPLAY/EGA/863-8X16.ASM | 270 +++++ v4.0/src/DEV/DISPLAY/EGA/863-8X8.ASM | 270 +++++ v4.0/src/DEV/DISPLAY/EGA/863-CPI.ASM | 49 + v4.0/src/DEV/DISPLAY/EGA/865-8X14.ASM | 270 +++++ v4.0/src/DEV/DISPLAY/EGA/865-8X16.ASM | 270 +++++ v4.0/src/DEV/DISPLAY/EGA/865-8X8.ASM | 270 +++++ v4.0/src/DEV/DISPLAY/EGA/865-CPI.ASM | 49 + v4.0/src/DEV/DISPLAY/EGA/COPYRIGH.ASM | 11 + v4.0/src/DEV/DISPLAY/EGA/CPI-HEAD.ASM | 15 + v4.0/src/DEV/DISPLAY/EGA/EGA.LNK | 8 + v4.0/src/DEV/DISPLAY/EGA/MAKEFILE | 55 + v4.0/src/DEV/DISPLAY/F-PARSER.INC | 2040 +++++++++++++++++++++++++++++++++ v4.0/src/DEV/DISPLAY/INIT.ASM | 965 ++++++++++++++++ v4.0/src/DEV/DISPLAY/INT10COM.INC | 1029 +++++++++++++++++ v4.0/src/DEV/DISPLAY/INT2FCOM.INC | 323 ++++++ v4.0/src/DEV/DISPLAY/LCD/437-CPI.ASM | 290 +++++ v4.0/src/DEV/DISPLAY/LCD/850-CPI.ASM | 290 +++++ v4.0/src/DEV/DISPLAY/LCD/860-CPI.ASM | 290 +++++ v4.0/src/DEV/DISPLAY/LCD/863-CPI.ASM | 290 +++++ v4.0/src/DEV/DISPLAY/LCD/865-CPI.ASM | 292 +++++ v4.0/src/DEV/DISPLAY/LCD/COPYRIGH.ASM | 10 + v4.0/src/DEV/DISPLAY/LCD/FONT-R3.ASM | 15 + v4.0/src/DEV/DISPLAY/LCD/LCD.LNK | 8 + v4.0/src/DEV/DISPLAY/LCD/MAKEFILE | 32 + v4.0/src/DEV/DISPLAY/MACROS.INC | 29 + v4.0/src/DEV/DISPLAY/MAKEFILE | 53 + v4.0/src/DEV/DISPLAY/PARSER.ASM | 809 +++++++++++++ v4.0/src/DEV/DISPLAY/TABLES.INC | 368 ++++++ v4.0/src/DEV/DISPLAY/WRITE.INC | 373 ++++++ v4.0/src/DEV/DISPLAY/ZERO.DAT | 1 + 49 files changed, 13331 insertions(+) create mode 100644 v4.0/src/DEV/DISPLAY/CPS-FUNC.INC create mode 100644 v4.0/src/DEV/DISPLAY/DEF-EQU.INC create mode 100644 v4.0/src/DEV/DISPLAY/DISPLAY.ASM create mode 100644 v4.0/src/DEV/DISPLAY/DISPLAY.LNK create mode 100644 v4.0/src/DEV/DISPLAY/DISPLAY.SKL create mode 100644 v4.0/src/DEV/DISPLAY/DISPMES.ASM create mode 100644 v4.0/src/DEV/DISPLAY/EGA/437-8X14.ASM create mode 100644 v4.0/src/DEV/DISPLAY/EGA/437-8X16.ASM create mode 100644 v4.0/src/DEV/DISPLAY/EGA/437-8X8.ASM create mode 100644 v4.0/src/DEV/DISPLAY/EGA/437-CPI.ASM create mode 100644 v4.0/src/DEV/DISPLAY/EGA/850-8X14.ASM create mode 100644 v4.0/src/DEV/DISPLAY/EGA/850-8X16.ASM create mode 100644 v4.0/src/DEV/DISPLAY/EGA/850-8X8.ASM create mode 100644 v4.0/src/DEV/DISPLAY/EGA/850-CPI.ASM create mode 100644 v4.0/src/DEV/DISPLAY/EGA/860-8X14.ASM create mode 100644 v4.0/src/DEV/DISPLAY/EGA/860-8X16.ASM create mode 100644 v4.0/src/DEV/DISPLAY/EGA/860-8X8.ASM create mode 100644 v4.0/src/DEV/DISPLAY/EGA/860-CPI.ASM create mode 100644 v4.0/src/DEV/DISPLAY/EGA/863-8X14.ASM create mode 100644 v4.0/src/DEV/DISPLAY/EGA/863-8X16.ASM create mode 100644 v4.0/src/DEV/DISPLAY/EGA/863-8X8.ASM create mode 100644 v4.0/src/DEV/DISPLAY/EGA/863-CPI.ASM create mode 100644 v4.0/src/DEV/DISPLAY/EGA/865-8X14.ASM create mode 100644 v4.0/src/DEV/DISPLAY/EGA/865-8X16.ASM create mode 100644 v4.0/src/DEV/DISPLAY/EGA/865-8X8.ASM create mode 100644 v4.0/src/DEV/DISPLAY/EGA/865-CPI.ASM create mode 100644 v4.0/src/DEV/DISPLAY/EGA/COPYRIGH.ASM create mode 100644 v4.0/src/DEV/DISPLAY/EGA/CPI-HEAD.ASM create mode 100644 v4.0/src/DEV/DISPLAY/EGA/EGA.LNK create mode 100644 v4.0/src/DEV/DISPLAY/EGA/MAKEFILE create mode 100644 v4.0/src/DEV/DISPLAY/F-PARSER.INC create mode 100644 v4.0/src/DEV/DISPLAY/INIT.ASM create mode 100644 v4.0/src/DEV/DISPLAY/INT10COM.INC create mode 100644 v4.0/src/DEV/DISPLAY/INT2FCOM.INC create mode 100644 v4.0/src/DEV/DISPLAY/LCD/437-CPI.ASM create mode 100644 v4.0/src/DEV/DISPLAY/LCD/850-CPI.ASM create mode 100644 v4.0/src/DEV/DISPLAY/LCD/860-CPI.ASM create mode 100644 v4.0/src/DEV/DISPLAY/LCD/863-CPI.ASM create mode 100644 v4.0/src/DEV/DISPLAY/LCD/865-CPI.ASM create mode 100644 v4.0/src/DEV/DISPLAY/LCD/COPYRIGH.ASM create mode 100644 v4.0/src/DEV/DISPLAY/LCD/FONT-R3.ASM create mode 100644 v4.0/src/DEV/DISPLAY/LCD/LCD.LNK create mode 100644 v4.0/src/DEV/DISPLAY/LCD/MAKEFILE create mode 100644 v4.0/src/DEV/DISPLAY/MACROS.INC create mode 100644 v4.0/src/DEV/DISPLAY/MAKEFILE create mode 100644 v4.0/src/DEV/DISPLAY/PARSER.ASM create mode 100644 v4.0/src/DEV/DISPLAY/TABLES.INC create mode 100644 v4.0/src/DEV/DISPLAY/WRITE.INC create mode 100644 v4.0/src/DEV/DISPLAY/ZERO.DAT (limited to 'v4.0/src/DEV/DISPLAY') 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 @@ +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; CODE PAGE DRIVER FUNCTIONS +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +IF1 ; + %OUT . ®CPS-FUNC.INC¯ +ENDIF ; + ; +CP_FUNCTION LABEL BYTE ; + DW 4CH,OFFSET DESIGNATE_BEGIN ; + DW 4DH,OFFSET DESIGNATE_END ; + DW 4AH,OFFSET INVOKE_CP ; + DW 6AH,OFFSET QUERY_CP ; + DW 6BH,OFFSET QUERY_CP_LIST ; +NUM_CP_FUNCTION EQU ($-CP_FUNCTION)/4 ; + ; +DESG_SEMAPHORE DB 0 ; TEMPORARY +G_IOCTL_SEMA DB 0 ; SEMAPHORE TO INDICATE IF CPS IS BUSY! + ; +CHAR_HEIGHT DB 8 ; + DB 14 ; + DB 16 ; + DB 19 ; + DB 0 ; + DB 0 ; + DB 0 ; + DB 0 ; +NUM_CHAR_HEIGHT EQU ($-CHAR_HEIGHT) ; + ; + ; +GENERIC_IOCTL PROC ; CON OUTPUT + CLI ;S; + MOV SI,SP ;S; + MOV CS:OLD_STACK_O,SI ;S; + MOV SI,SS ;S; + MOV CS:OLD_STACK_S,SI ;S; + MOV AX,OFFSET STACK_START ;S; + MOV SI,CS ;S; + MOV SS,SI ;S; + MOV SP,AX ;S; + STI ;S; + PUSH DS ; + ; + PUSH CS ; + POP DS ; FROM HERE IN, DS=CS + ; + LES DI,DWORD PTR BUF.RH_PTRO; GET RH + ; +GI_1: MOV AL,RH.MINOR_F ; PUT MINOR VERSION IN AL + XOR AH,AH ; CLEAR OUT HIGH BYTE FOR COMPARES + ; + PUSH DI ; SAVE POINTER!!! + PUSH ES ; + PUSH CS ; + POP ES ; + MOV CX,NUM_CP_FUNCTION ; + MOV DI,OFFSET CP_FUNCTION ; +GI_1A: SCASW ; SEARCH THROUGH THE LIST OF VALID FN's + JE GI_2 ; + INC DI ; + INC DI ; + LOOP GI_1A ; + POP ES ; + POP DI ; + JUMP GI_3 ; NOT FOUND! +GI_2: POP ES ; + MOV SI,DI ; + POP DI ; + ; + MOV G_IOCTL_SEMA,ONE ; SEMAPHORE TO INDICATE CALLS ARE BUSY! + CALL [SI] ; JMP OFF TO THE APPROPRIATE CALL! + MOV G_IOCTL_SEMA,ZERO ; SEMAPHORE TO INDICATE CALLS ARE DONE! + STC ; SET CY not TO TRY ATTACHED CON! + JUMP GI_4 ; +GI_3: CLC ; CLEAR CY TO TRY ATTACHED CON! +GI_4: POP DS ; + CLI ;S; + MOV AX,CS:OLD_STACK_O ;S; + MOV SI,CS:OLD_STACK_S ;S; + MOV SS,SI ;S; + MOV SP,AX ;S; + STI ;S; + RET ; +GENERIC_IOCTL ENDP ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; DESIGNATE BEGIN +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +DESIGNATE_BEGIN PROC ; + LES DI,RH.REQUEST_PACKET ; AND DI TO POINT TO REQUEST PACKET + MOV CX,RH.DESG_N ; MOVE THE NUMBER OF CODE PAGES DESIG'ed + ; + OR CX,CX ; + JZ DB_0C ; CHECK IF ZERO CP's DESIGNATED + ; IF SO, THEN THIS IS THE REFRESH CALL +DB_0: CMP CX,CPD_DESG_N ; CHECK IF NUMBER > # CONFIGed + JA DB_0B ; + JUMP DB_1B ; + ; +DB_0D: OR BUF.STATUS,EIGHT ; Error>> KEYBOARD ERROR!! + RET ; +DB_2D: POP CX ; RESTORE STACK ELEMENTS + POP BX ; + POP CX ; RESTORE STACK ELEMENTS + POP BX ; +DB_0B: OR BUF.STATUS,TEN ; Error>> DEVICE ERROR!! + RET ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; REFRESH ACTIVE CODE PAGE TO DISPLAY +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +DB_0C: MOV DESG_SEMAPHORE,TWO ; SET REFRESH COMMENCED + MOV CPD_REQ_DESG,CX ; SAVE NUMBER OF REQUESTED CP'S (0) + MOV DX,CPD_ACTIVE ; THIS IS THE REFRESH CALL + CMP DX,-1 ; CHECK IF THE ACTIVE_CP = INVALID + JE DB_0B ; + CLC ; CLEAR OUT THE CARRY FLAG + CALL SIGNAL_KBD_INVK ; + JC DB_0D ; IF CY SET, THEN KEYBOARD IS WRONG + CALL TEST_CP ; + JC DB_0B ; + CALL INVOKE_DATA ; + JC DB_0B ; + RET ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; THIS SECTION FORMS THE NEW DESIGNATE CP LIST IN THE +; CPD_TEMP_DESG. AT THE SAME TIME THE TOTAL NUMBER OF +; REQUESTED CP's ARE FOUND. +; +; DX will contain the real CP's to load +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +DB_1B: CLD ; SET DIRECTION FORWARD + PUSH ES ; + PUSH CX ; + PUSH DI ; + PUSH CS ; + POP ES ; + MOV CX,CPD_DESG_N ; + INC CX ; ACCOUNT FOR NUMBER OF CPS + LEA SI,CPD_DESG_N ; COPY PREPARED CP LIST TO TEMP BUFFER + LEA DI,CPD_TEMP_DESG ; + REP MOVSW ; + POP DI ; + POP CX ; + POP ES ; + ; + XOR DX,DX ; SET COUNT OF CP's TO PREPARE = 0 + PUSH CX ; + PUSH BX ; + MOV CPD_REQ_DESG,CX ; SAVE NUMBER OF REQUESTED CP'S + MOV SI,2 ; + MOV BX,SI ; +DB_1: MOV AX,RH.DESG_N[BX] ; GET REQUESTED CP + CMP AX,-1 ; TEST IF REQUESTED IS PLACE HOLDER.. + JE DB_1A ; + INC DX ; ADD ONE TO THE # VALID DESG + MOV CPD_TEMP_DESG[SI],AX ; OVERLAY THE NEWER CP INTO TEMP BUFFER +DB_1A: MOV CPD_REQ_DESG[SI],AX ; COPY TO THE REQ DESG LIST + INC SI ; + INC SI ; + INC BX ; + INC BX ; + LOOP DB_1 ; + POP BX ; + POP CX ; + ; + OR DX,DX ; ARE THERE NO CP's TO PREPARE? + JZ DB_0B ; IF NONE TO DESG, THEN ERROR!! +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; THIS SECTION CHECKS THE LIST OF DESIGed CP's IN THE +; TEMP BUFFER AND SETS AN ERROR FOR DUPLICATES. +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +DB_2: PUSH BX ; CHECK THE DESIGNATE LIST FOR DUP's + PUSH CX ; AND FOR INVALIDS + MOV CX,CPD_TEMP_DESG ; + DEC CX ; NORMALIZE + JZ DB_3 ; IF ZERO, THEN NONE TO COMPARE + MOV BX,2 ; SET BX TO START OF LIST.... + MOV SI,2 ; SETUP SI READY TO MOVE DESG LIST IN! +DB_2A: PUSH BX ; + PUSH CX ; + MOV AX,CPD_TEMP_DESG[BX] ; GET CP DESGINATED + CMP AX,-1 ; TEST IF ENTRY = -1 + JE DB_2E ; IF SO, THEN SKIP +DB_2B: CMP CX,1 ; TEST IF IT IS THE ONLY ONE TO COMPARE + JE DB_2E ; AGAINST! + INC BX ; ADVANCE POINTER TO NEXT CP DESIGNATED + INC BX ; + CMP AX,CPD_TEMP_DESG[BX] ; CHECK IF NEXT CP's = ONE TESTED + JNE DB_2C ; IF error, THEN GET OUT + JUMP DB_2D ; + ; +DB_2C: LOOP DB_2B ; +DB_2E: POP CX ; + POP BX ; + INC BX ; + INC BX ; + OR CX,CX ; + JE DB_3 ; TEST IF ONLY ONE CP SPECIFIED + LOOP DB_2A ; + ; +DB_3: POP CX ; + POP BX ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; NOW, THE TEMPORARY BUFFER CONTAINS THE NEW LIST +; OF DESGINATED CODE PAGES. COPY THIS TO THE +; PREPARED CP LIST. +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + PUSH ES ; NOW ALL TESTS ARE SUCCESSFUL, + PUSH CX ; + PUSH DI ; + PUSH CS ; + POP ES ; + MOV CX,CPD_DESG_N ; + INC CX ; ACCOUNT FOR NUMBER OF CPS + LEA SI,CPD_TEMP_DESG ; COPY TEMP BUFFER INTO NEW CP LIST + LEA DI,CPD_DESG_N ; + REP MOVSW ; + POP DI ; + POP CX ; + POP ES ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; NOW THAT THE LIST IS VALID, THE FONT PARSER & PARSING TABLES +; ARE PREPARED FOR INITIALIZATION OF DESIGNATION. +; +; DX is the number of valid CP's +; CX is the number of CP's desginated +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + PUSH BX ; + PUSH ES ; + PUSH DI ; + ; CX=#DESGed, BX=pnter DESG LIST + MOV BX,2 ; SET BX TO POINT TO FIRST CP DESGed + LEA DI,FTABLE ; SET DI TO POINT TO MAIN PARSER TABLE + PUSH CS ; + POP ES ; INITIALIZE ES=CS + MOV [DI].FLAG,FLAG_RESTART ; SETUP UP MAIN TABLE FOR F-PARSER.SRC + MOV [DI].BUFFER_LEN,0 ; PREPARING FOR START OF DESIGNATION + MOV [DI].NUM_FTBLK,DX ; DX=#DESG TO PARSE OUT + ; + LEA SI,CPD_CLASS ; SET DI TO POINT TO (EGA,LCD) CLASSES + LEA DI,FTB1 ; SET DI TO POINT TO FIRST PARSING TABLE + ; +DB_4: MOV AX,CPD_REQ_DESG[BX] ; + CMP AX,-1 ; CHECK FOR PLACE HOLDER + JE DB_5 ; + MOV [DI].FTB_CP,AX ; COPY THE DESG CP VALUE INTO THE TABLE + PUSH CX ; AND ALSO THE CPD_CLASS + PUSH SI ; + PUSH DI ; + LEA DI,[DI].FTB_TID ; + MOV CX,8 ; + REP MOVSB ; + POP DI ; + POP SI ; + POP CX ; + ; + ADD DI,TYPE FTBLK ; MOVE POINTERS TO NEXT PARSING TABLE +DB_5: INC BX ; + INC BX ; ADVANCE BX TO NEXT DESG CP + LOOP DB_4 ; + ; + POP DI ; + POP ES ; + POP BX ; + ; + CALL FONT_PARSER ; CALL FONT PARSER TO INITIALIZE WRITES +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; THIS WILL COPY THE START LOCATION OF THE FONTS (set by INIT) +; INTO THE START LOCATION FOR THE DESIGNATE WRITE, WHICH FOLLOWS! +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + PUSH SI ; + PUSH DI ; + PUSH ES ; + PUSH CS ; + POP ES ; SET EXTRA SEG ES = CS + LEA SI,CPD_FONT_PNTER ; + LEA DI,CPD_FONT_WRITE ; + MOV CX,CPD_DESG_N ; GET NUMBER OF DESIGNATES + ADD CX,CX ; DOUBLE FOR SEG:OFFSET + REP MOVSW ; COPY FONT START LOC's TO START WRITE + XOR DI,DI ; + LEA SI,CPD_FONT_DATA ; SET THE FONT_DATA COUNTERS BACK TO 0 + MOV CX,CPD_DESG_N ; +DB_6: MOV [SI],DI ; + INC SI ; + INC SI ; + LOOP DB_6 ; + POP ES ; + POP DI ; + POP SI ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; CREATE THE FONT_PRIORITY TABLE +; +; THIS IS USED TO PLACE PRIORITY ON THE FONTS BEING DESIGNATED +; ESPECIALLY WHEN THE NUMBER OF DESIGNATED FONTS < FONTS IN THE +; xxx.CPI FILE. THIS IS USED TO SELECT THE NEEDED FONTS FOR +; CP SUPPORT. +; +; RULE: PRIORITY 1 = ACTIVE MODE's FONT RESOLUTION +; PRIORITY 2 = FONT RESOLUTION (non-repeats) OF ALL DISPLAY +; MODES - STARTING FROM MODE (0) - MODE (?) +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + PUSH AX ; + PUSH BX ; + PUSH CX ; + PUSH SI ; + PUSH DI ; + ; + LEA DI,FONT_PRIORITY ; + MOV CX,CPD_FONTS_N ; GET THE NUMBER OF SPECIFIED FONTS + ; + PUSH ES ; + PUSH DI ; + PUSH CX ; OVER-WRITE THE TABLE WITH 0FFH's + PUSH CS ; + POP ES ; + MOV AL,-1 ; + REP STOSB ; + POP CX ; + POP DI ; + POP ES ; + ; + XOR AH,AH ; AH=0 FOR MODE SET, AL=MODE_TYPE + MOV AL,MODE_VALUE ; + MOV SI,AX ; ESTABLISH INDEX INTO LOAD_MECH table + MOV AL,[SI].FONT_SIZE ; GET FONT_SIZE FOR THIS MODE_VALUE + OR AL,AL ; TEST FOR FONT_VALUE=0 + JNZ DB_8 ; + CALL ASK_BIOS_FONT_SIZE ; GET BIOS TO INDICATE FONT_SIZE +DB_8: MOV CS:[DI],AL ; PUT ACTIVE FONT RESOLUTION INTO 1ST! + INC DI ; ADVANCE POINTER TO NEXT POSITION + DEC CX ; SUBTRACT ONE FONT RESOLUTION... + JZ DB_A ; IF THERE WAS ONLY 1 FONT...THEN DONE + ; + XOR SI,SI ; START WITH MODE = 0 +DB_8A: PUSH CX ; + PUSH DI ; + MOV CX,NUM_FONT_PRIORITY ; + LEA DI,FONT_PRIORITY ; SET DI TO START OF TABLE + MOV AL,[SI].FONT_SIZE ; GET FONT SIZE FOR THIS MODE + CMP AL,-1 ; TEST FOR INVALID FONT SIZE + JE DB_9 ; IF SO, THEN TRY NEXT VALUE + OR AL,AL ; TEST FOR FONT_VALUE=0 + JNZ DB_8C ; + ; OTHERWISE, ONLY EGA BIOS WOULD KNOW!!! + CMP SI,EIGHT ; ONLY EIGHT DIFFERENT FONTS PERMITTED!! + JAE DB_9 ; + ; + PUSH CX ; + CALL ASK_BIOS_SCAN_LINES ; GET ENCODED SCAN LINES VALUE!!! + JC DB_9 ; + MOV CX,SI ; PUT INDEX INTO CX + INC CL ; NORMALIZE INDEX VALUE (1-8) + SAR AL,CL ; + POP CX ; + JNC DB_9 ; + MOV AL,CS:CHAR_HEIGHT[SI] ; + ; +DB_8C: CMP AL,CS:[DI] ; + JE DB_9 ; IF EQUAL, THEN ALREADY IN TABLE + INC DI ; OTHERWISE, TAKE THIS MODES FONT RES + LOOP DB_8C ; AND COMPARE AGAINST NEXT PRIOR.VALUE + ; + POP DI ; NEW RESOLUTION FOUND...ADD TO LIST + POP CX ; + MOV CS:[DI],AL ; PUT NEW VALUE IN THE TABLE + INC DI ; AND ADVANCE FOR NEXT FONT RESOLUTION + JUMP DB_9A ; LOOP WILL DECREMENT #FONTS TO FIND +DB_9: POP DI ; + POP CX ; + INC CX ; MATCH FOUND..SO LEAVE #FONT TO PRIOR. +DB_9A: INC SI ; POINT TO NEXT DISPLAY MODE + CMP SI,NUM_FONT_SIZES ; + JAE DB_A ; + LOOP DB_8A ; CONTINUE UNTIL THE #FONTS DESIGNATED + ; HAVE BEEN PRIORITIZED OR ALL MODES +DB_A: POP DI ; ARE CHECKED OUT! + POP SI ; + POP CX ; + POP BX ; + POP AX ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + MOV DESG_SEMAPHORE,ONE ; SET DESIGNATION TO COMMENCE... + RET ; +DESIGNATE_BEGIN ENDP ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; DESIGNATE END +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +DESIGNATE_END PROC ; + CMP DESG_SEMAPHORE,ZERO ; TEST IF DESG_SEMAPHORE = DATA WRITTEN + JE DE_1 ; + ; + CMP CPD_REQ_DESG,ZERO ; TEST IF ZERO CP's REQUESTED (REFRESH) + JE DE_0 ; + ; + CALL VERIFY_FPARSER ; CALL ROUTINE TO VERIFY THAT THE + JC DE_2 ; FONT PARSER FINISHED OK... + ; + PUSH ES ; NOW THE DESIGNATE IS OVER... + PUSH DI ; + MOV CX,CPD_ACTIVE ; CHECK IF ACTIVE_CP IS STILL VALID! + CALL FIND_CP ; TRY AND FIND CPD_ACTIVE? + POP DI ; + POP ES ; + JNC DE_0 ; + MOV CX,-1 ; + MOV CPD_ACTIVE,CX ; +DE_0: MOV DESG_SEMAPHORE,ZERO ; + RET ; + ; +DE_1: OR BUF.STATUS,TWELVE ; Error>> NO DESGINATE START + JUMP DE_0 ; +DE_2: CALL HANDLE_WRITE_ERROR ; RESET ALL DESIGNATED INFORMATION + OR BUF.STATUS,FAIL ; Error>> FONT DATA IS BAD + JUMP DE_0 ; +DESIGNATE_END ENDP ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; INVOKE +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +INVOKE_CP PROC ; + LES DI,RH.REQUEST_PACKET ; AND DI TO POINT TO REQUEST PACKET + MOV CX,RH.INVK_LENGTH ; GET LENGTH OF REMAINING HEADER + ; + CMP CX,TWO ; TEST IF LENGTH OF TABLE IS GREATER + JNE ICP_2 ; THAN ONE CP! + ; + MOV CX,RH.INVK_CP ; GET THE CODE PAGE TO INVOKE + MOV DX,CX ; SAVE CP VALUE + CMP CX,-1 ; TEST FOR INVALID CODE PAGE! + JE ICP_1A ; + ; + PUSH CPD_ACTIVE ; SAVE ACTIVE_CP, FOR POSSIBLE USE... + MOV CPD_ACTIVE,CX ; + CALL TEST_CP ; TRY AND LOAD THE REQUESTED CP + POP CX ; + JC ICP_1AA ; IF ERROR, THEN RESTORE OLD CP + ; + CMP CX,CPD_ACTIVE ; TEST IF OLD CP=ACTIVE!!! + JE ICP_0A ; + ; + CALL INVOKE_DATA ; IF EVERYTHING OK, THEN LOAD DATA + JC ICP_2A ; + ; +ICP_0A: CALL SIGNAL_KBD_INVK ; DX CONTAINS CODEPAGE + JC ICP_1 ; IF CY THEN ERROR + RET ; + ; +ICP_1: OR BUF.STATUS,EIGHT ; Error>> KEYB ERROR + RET ; +ICP_1AA:MOV CPD_ACTIVE,CX ; PUT OLD CP BACK ACTIVE +ICP_1A: OR BUF.STATUS,SEVEN ; Error>> CODE PAGE NOT FOUND + RET ; +ICP_2A: MOV CPD_ACTIVE,CX ; +ICP_2: OR BUF.STATUS,TEN ; Error>> DEVICE ERROR + RET ; +INVOKE_CP ENDP ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; QUERY +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +QUERY_CP PROC ; + LES DI,RH.REQUEST_PACKET ; SETUP ADDRESSING TO HEADER + ; + MOV CX,TWO ; + MOV RH.INVK_LENGTH,CX ; CREATE RETURN 'N' VALUE + ; + CALL TEST_CP ; FIND OUT IF CP DATA IS OK! + MOV CX,CPD_ACTIVE ; + JNC QCP_A ; + MOV CX,-1 ; MAKE THE ACTIVE REPONSE AS INVALID + ; +QCP_A: MOV RH.INVK_CP,CX ; SET THE CODE PAGE IN HEADER + CMP CX,-1 ; TEST IF NO CP SPECIFIED? + JE QCP_0 ; + RET ; + ; +QCP_0: OR BUF.STATUS,SEVEN ; Error>> NOT CODE PAGE SPECIFIED + RET ; +QUERY_CP ENDP ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; QUERY LIST +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +QUERY_CP_LIST PROC ; + LES DI,RH.REQUEST_PACKET ; AND DI TO POINT TO REQUEST PACKET + ; + MOV CX,CPD_HDWR_N ; + MOV RH.QLST_N_HDWR,CX ; + ADD CX,CPD_DESG_N ; + ADD CX,TWO ; ACCOUNT FOR LENGTH OF 'N's + ADD CX,CX ; + MOV RH.QLST_LENGTH,CX ; CREATE RETURN TABLE LENGTH + ; + PUSH AX ; + PUSH BX ; + PUSH SI ; + MOV CX,CPD_HDWR_N ; + MOV BX,2 ; + OR CX,CX ; + JE QCP_3 ; +QCP_2: MOV AX,CPD_HDWR_N[BX] ; + MOV RH.QLST_N_HDWR[BX],AX ; + INC BX ; + INC BX ; + LOOP QCP_2 ; + ; +QCP_3: MOV CX,CPD_DESG_N ; SET TABLE ENTRY FOR DESIGNATE + MOV RH.QLST_N_HDWR[BX],CX ; + INC BX ; + INC BX ; + ; + OR CX,CX ; + JE QCP_4A ; + MOV SI,2 ; +QCP_4: MOV AX,CPD_DESG_N[SI] ; + MOV RH.QLST_N_HDWR[BX],AX ; + INC BX ; + INC BX ; + INC SI ; + INC SI ; + LOOP QCP_4 ; +QCP_4A: POP SI ; + POP BX ; + POP AX ; + RET ; +QCP_5: OR BUF.STATUS,SEVEN ; Error>> NO CODE PAGE INVOKED + RET ; +QCP_6: OR BUF.STATUS,TEN ; Error>> DEVICE ERROR + RET ; +QUERY_CP_LIST ENDP ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; GET HARDWARE CODE PAGE TABLE +; +; INPUT: +; none +; OUTPUT: +; SI = pointer to HARDWARE table (n,h_cp1,h_cp2,...) +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +GET_HDWR_CP PROC ; + LEA SI,CP_PNTER_TABLE ; + MOV SI,[SI].HDWR_CP_STRUC ; + RET ; +GET_HDWR_CP ENDP ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; GET DESIGNATE CODE PAGE TABLE +; +; INPUT: none +; OUTPUT: SI = pointer to DESIGNATE table (n,d_cp1,d_cp2,...) +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +GET_DESG_CP PROC ; + LEA SI,CP_PNTER_TABLE ; + MOV SI,[SI].DESG_CP_STRUC ; + RET ; +GET_DESG_CP ENDP ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; GET FONT POINTER TABLE +; +; INPUT: +; none +; OUTPUT: +; SI = pointer to FONTS table (pnter_cp1,pnter_cp2,...) +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +GET_FONT_CP PROC ; + LEA SI,CP_PNTER_TABLE ; + MOV SI,[SI].FONT_CP_STRUC ; + RET ; +GET_FONT_CP ENDP ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; GET WRITE POINTER +; +; INPUT: +; none +; OUTPUT: +; SI = pointer to WRITE pointers +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +GET_WRITE_PNTR PROC ; + LEA SI,CP_PNTER_TABLE ; + MOV SI,[SI].WRITE_DATA_STRUC; + RET ; +GET_WRITE_PNTR ENDP ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; FIND ACTIVE CODE PAGE +; +; INPUT: +; CX = code page to find +; OUTPUT: +; 'CY' = 0 if found, 1 if NOT +; CX = 0 for hdwr, 1 for designated +; ES : DI = pointer to FONT data table +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +FIND_CP PROC ; + PUSH AX ; + PUSH BX ; + PUSH SI ; + MOV AX,CX ; + CALL GET_DESG_CP ; SET BX TO DESG TABLE INFO + MOV CX,[SI] ; GET THE NUMBER OF DESG CP's + OR CX,CX ; + JZ FCP_1 ; MOVE ONTO DESG TEST WITH 0 CP's + MOV BX,TWO ; ELSE, USE SI TO POINT TO 1ST CP +FCP_0: CMP AX,[SI+BX] ; SEARCH FOR CP MATCH + JE FCP_4 ; CP MATCHED!! SET DESG INFO & EXIT + INC BX ; ADVANCE SI POINTER TO NEXT CP + INC BX ; + LOOP FCP_0 ; CHECK ACROSS ALL CP's IN TABLE +FCP_1: CALL GET_HDWR_CP ; NOW, REPEAT SAME OPERATION + MOV CX,[SI] ; WITH THE HARDWARE CP's + OR CX,CX ; + JZ FCP_3 ; IF THIS FAR, THEN SET ERROR FOR + INC SI ; + INC SI ; ADVANCE POINTER BY TWO...SINCE + MOV BX,ZERO ; PNTER'S DON'T HAVE 'n'... +FCP_2: CMP AX,[SI+BX] ; SEARCH AGAIN FOR CP MATCH + JE FCP_5 ; CP MATCHED!! SET HDWR INFO & EXIT + INC BX ; ADVANCE SI POINTER TO NEXT CP + INC BX ; + LOOP FCP_2 ; REPEAT FOR ALL CP ENTRIES +FCP_3: XOR CX,CX ; SET RETURN VALUES TO ZERO + XOR DI,DI ; + POP SI ; + POP BX ; + POP AX ; + STC ; CY=1 FOR ERROR + RET ; EXIT +FCP_4: MOV CX,ONE ; ®®DESIGNATED CODE PAGE FOUND¯¯ + CALL GET_FONT_CP ; SET THE BX VALUE TO THE FONT DATA + SUB BX,2 ; NORMALIZE BX VALUE;;;;;;;;;;;;;;; + ADD SI,BX ; FORMULATE THE SI INDEX BY ADDING + ADD SI,BX ; BX INDEX x 2 (dword FONT_PNTER) + MOV DI,[SI] ; TAKE OFFSET DATA FROM font_table + MOV ES,[SI+2] ; AND SEGMENT ALSO! + POP SI ; + POP BX ; + POP AX ; + CLC ; CY=0 FOR OK! + RET ; EXIT +FCP_5: XOR CX,CX ; ®®HARDWARE CODE PAGE FOUND¯¯ + XOR DI,DI ; + POP SI ; + POP BX ; + POP AX ; + CLC ; + RET ; EXIT +FIND_CP ENDP ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; VERIFY_FPARSER A ROUTINE THAT CHECKS THE +; FONT_BLOCKS FOR INCOMPLETE DESIGNATES? +; IF SO, THEN AN ERROR OCCURRED... +; +; INPUT: +; FONT_PARSER should be completed parsing +; +; OUTPUT: +; CY = 0 if all is correct +; 1 if one or more designates are incomplete +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +VERIFY_FPARSER PROC ; + PUSH AX ; + PUSH CX ; + PUSH ES ; + PUSH DI ; + ; + PUSH CS ; + POP ES ; + ; + MOV CX,CPD_REQ_DESG ; CX = REQUESTED DESG CP's + LEA DI,FTB1 ; SET DI TO POINT TO FIRST PARSING TABLE + ; +VFP_4: MOV AX,[DI].FTB_STATUS ; GET STATUS OF PARSING TABLE #n + CMP AX,FSTAT_COMPLETE ; FIND OUT IF THIS CP COMPLETED? + JE VFP_6 ; + ; + CMP AX,FSTAT_FONT ; CHECK IF AT LEAST THE FONT DATA FOUND + JNE VFP_8 ; IF NOT, THEN AN ERROR OCCURRED.... + CMP [DI].FTB_DLEFT,ZERO ; IF SO, THEN NO DATA CAN BE LEFT.... + JNE VFP_8 ; OTHERWISE ANOTHER ERROR ? +VFP_6: ADD DI,TYPE FTBLK ; MOVE POINTERS TO NEXT PARSING TABLE + LOOP VFP_4 ; + CLC ; + JUMP VFP_9 ; + ; +VFP_8: STC ; +VFP_9: POP DI ; + POP ES ; + POP CX ; + POP AX ; + RET ; +VERIFY_FPARSER ENDP ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + \ 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 @@ +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; *** DEF-EQU *** DEF-EQU *** DEF-EQU *** +; +; EQU's, STRUC's, and OTHER +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;Modification history ********************************************************* +;AN001; D358 New device driver INIT function package 12/07/87 J.K. +;AN002; D493 Undo D358 02/24/88 J.K. +;AN003; D4934 Change ANSI 2F function number to 1Ah 05/20/88 F.G. +;****************************************************************************** +IF1 ; + %OUT . ®DEF-EQU .INC¯ +ENDIF ; +ZERO EQU 0H ; +ONE EQU 1H ; +TWO EQU 2H ; +THREE EQU 3H ; +FOUR EQU 4H ; +FIVE EQU 5H ; +SIX EQU 6H ; +SEVEN EQU 7H ; +EIGHT EQU 8H ; +NINE EQU 9H ; +TEN EQU 0AH ; +ELEVEN EQU 0BH ; +TWELVE EQU 0CH ; + ; +FAIL EQU 8000H ; fail in designate + ; +NOT_CY EQU 0FFFEH ; +CY EQU ONE ; + ; +ID_IOCTL EQU 5 ; MAJOR FNCT # FOR 'other' DEVICE + ; +RH EQU ES:[DI] ; addressability to Request Header + ; +RHC STRUC ; fields common to all request types + DB ? ; length of Request Header + DB ? ; unit code (subunit) +RHC_CMD DB ? ; command code +RHC_STA DW ? ; status + DQ ? ; reserved for DOS +RHC ENDS ; end of common portion + ; +CMD_INPUT EQU 4 ; RHC_CMD is INPUT request + ; + ; Status values for RHC_STA +STAT_DONE EQU 0001H ; function complete - high order byte +STAT_CMDERR EQU 8000H ; Error code +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; DEVICE Header DS:[SI] -- to locate the next CON header +; NEXT device header ES:[DI] +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +HP EQU DS:[SI] ; +NHD EQU ES:[DI] ; + ; +NAME_LEN EQU 8 ; + ; +DHS STRUC ; +DH_NEXTO DW ? ; offset of pointer to next header +DH_NEXTS DW ? ; segment of pointer to next header + DW ? ; attribute +DH_STRAO DW ? ; offset to strategy routine +DH_INTRO DW ? ; offset to interrupt routine +DH_NAME DB NAME_LEN DUP(0) ; device name in this header +DHS ENDS ; end of common portion +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; Request Header for INIT +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +RH0 STRUC ; + DB (TYPE RHC) DUP (?) ; + ; +RH0_UNIT DB ? ; not used for CHAR devices +RH0_ENDO DW ? ; offset of ending address +RH0_ENDS DW ? ; segment of ending address +RH0_BPBA DD ? ; POINTER TO BPB FOR CHAR DEVICES + db ? ; +RH0 ENDS ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; Request Header for IOCTL +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +RH3 STRUC ; + DB (TYPE RHC) DUP (?) ; common portion + ; + ; + DB ? ; media descriptor +RH3_DTAO DW ? ; offset of transfer address +RH3_DTAS DW ? ; segment of transfer address +RH3_CNT DW ? ; byte count +RH3 ENDS ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; IOCTL header format +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +RH_IOCTL STRUC ; +STATIC_RH DB 13 DUP(?) ; STANDARD STATIC REQUEST HEADER +MAJOR_F DB ? ; MAJOR FUNCTION CALL (SEE DOS 3.30) +MINOR_F DB ? ; MINOR FUNCTION CALL (SEE DOS 3.30) +CONTENT_SI DW ? ; CONTENTS OF SI +CONTENT_DI DW ? ; CONTENTS OF DI +REQUEST_PACKET DD ? ; POINTER TO GENERIC IOCTL REQ. PACKET +RH_IOCTL ENDS ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; DESIGNATE BUFFER FORMAT +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +DESG_BUFFER STRUC ; +DESG_CARTRIDGE DW ? ; 0=NO CARTRIDGE, 1=CARTRIDGE +DESG_LENGTH DW ? ; LENGTH OF REMAINING HEADER +DESG_N DW ? ; NUMBER OF CP's DESIGNATED +DESG_CP DW ? ; FIRST CP DESIGNATED +DESG_BUFFER ENDS ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; INVOKE BUFFER FORMAT +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +INVK_BUFFER STRUC ; +INVK_LENGTH DW ? ; LENGTH OF REMAINING HEADER +INVK_CP DW ? ; CP TO INVOKE +INVK_BUFFER ENDS ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; QUERY LIST BUFFER FORMAT +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +QLST_BUFFER STRUC ; +QLST_LENGTH DW ? ; LENGTH OF REMAINING HEADER +QLST_N_HDWR DW ? ; NUMBER OF HARDWARE CP's +QLST_HDWR_CP DW ? ; FIRST HDWR CODE PAGE +QLST_N_DESG DW ? ; NUMBER OF DESIGNATED CP's +QLST_DESG_CP DW ? ; DESINATED CODE PAGES + ; ...there is more data to be + ; filled in by the DRIVER +QLST_BUFFER ENDS ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; PARSER STRUC STATEMENTS +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +PARSE_TABLE1 STRUC ; [[[ TABLE 1 ]]] +NUM_DEVICES DW ? ; NUMBER OF DEVICES TO SUPPORT +DEVICE1_OFFSET DW ? ; (hopefully) CON!!! +PARSE_TABLE1 ENDS ; + ; +PARSE_TABLE2 STRUC ; [[[ TABLE 2 ]]] +NUM_ITEMS DW ? ; NUMBER OF ITEMS CREATED BY THE +OFFSET_LIST DW ? ; THE 1ST OFFSET OF [ TABLE 2 ] +PARSE_TABLE2 ENDS ; PARSER! +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; CODE PAGE POINTER STRUCTURE +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +CP_PNTER_STRUC STRUC ; +HDWR_CP_STRUC DW ? ; +DESG_CP_STRUC DW ? ; +FONT_CP_STRUC DW ? ; +WRITE_DATA_STRUC DW ? ; +FONT_DATA_STRUC DW ? ; +CP_PNTER_STRUC ENDS ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; CON data structure CS:[BX] +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +BUF EQU CS:[BX] ; + ; STATES +BUF_DATA STRUC ; +DEV_HDRO DW -1 ; device driver header offset +DEV_HDRS DW -1 ; +CON_STRAO DW -1 ; dos CON strategy offset +CON_STRAS DW -1 ; +CON_INTRO DW -1 ; dos CON strategy offset +CON_INTRS DW -1 ; +RH_PTRO DW -1 ; request header offset +RH_PTRS DW -1 ; segment +STATE DW ? ; +STATUS DW ? ; +BUF_DATA ENDS ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; General Constants +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +INT_2F_LOW EQU (4*2FH) ; INTERRUPT 2FH CON/KEYB COMMUNICATION +INT_2F_HI EQU (4*2FH)+2 ; +INT_43_LOW EQU (4*43H) ; INTERRUPT 43H 0-255 CHARACTER VECTOR +INT_43_HI EQU (4*43H)+2 ; +INT_44_LOW EQU (4*44H) ; INTERRUPT 44H 0-255 CHARACTER VECTOR +INT_44_HI EQU (4*44H)+2 ; +INT_1F_LOW EQU (4*1FH) ; INTERRUPT 1FH EXTENDED CHARACTER SUPPORT +INT_1F_HI EQU (4*1FH)+2 ; +INT_10_LOW EQU (4*10H) ; INTERRUPT 10H fix FOR PALACE +INT_10_HI EQU (4*10H)+2 ; +GET_MODE EQU 0FH ; WGR ;AN000; +ON EQU 1 ; WGR ;AN000; +OFF EQU 0 ; WGR ;AN000; +RECALC_ON EQU 0010H ; WGR ;AN000; +VIDEO_CTRL EQU 487H ; WGR ;AN000; +ANSI_BUF_SIZE EQU 14 ; WGR ;AN000; +DEFAULT_LEN EQU 25 ; WGR ;AN000; +NUMBER EQU 1 ; WGR ;AN000; +STRING EQU 3 ; WGR ;AN000; +COMPLEX EQU 4 ; WGR ;AN000; +RC_EOL EQU -1 ; WGR ;AN000; +RC_NO_ERROR EQU 0 ; WGR ;AN000; +FUNC_CALL EQU 1BH ; WGR ;AN000; +VGA_FOUND EQU 00000001B ; WGR ;AN000; +EGA_FOUND EQU 00000001B ; WGR ;AN000; +LCD_FOUND EQU 00000010B ; WGR ;AN000; +CGA_FOUND EQU 00000100B ; WGR ;AN000; +MONO_FOUND EQU 00001000B ; WGR ;AN000; +ALT_SELECT EQU 12H ; WGR ;AN000; +EGA_INFO_CALL EQU 10H ; WGR ;AN000; +GET_SYS_ID EQU 0C0H ; WGR ;AN000; +GET_STATUS EQU 43H ; WGR ;AN000; +LCD_MODEL EQU 0F9H ; WGR ;AN000; +COLOR_ADDRESS EQU 0B800H ; WGR ;AN000; +MONO_ADDRESS EQU 0B000H ; WGR ;AN000; +ERROR_1 EQU 2 ; WGR ;AN000; +ERROR_2 EQU 12 ; WGR ;AN000; +ERROR_3 EQU 8 ; WGR ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; *** INT 2Fh used +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +ANSI_2F EQU 1Ah ; WGR Muliflex number for ANSI ;AC003; +;Catagory code +IOCTL_2F EQU 1h ; +DA_INFO_2F EQU 2h ;J.K. Information passing to ANSI. +;Subfunction code for IOCTL_2F +GET_SUBFUNC EQU 7FH ; WGR Same structure as GET_IOCTL(ANSI);AN000; + +;Info Struture for DA_INFO_2F. (DS:DX point to this packet) +;J.K. Note: For DOS 4.00, DA_INFO_PACKET is used to signal ANSI.SYS that +;DISPLAY.SYS is calling/finishing INT 10h SET MODE call. ANSI.SYS needs this +;infomration since it also hooks INT 10h vector. +;For this DA_SETMODE_FLAG purpose, DA_INFO_LEVEL and DA_INFO_DIRECTION should always be +;set to 0. This can be extended for another information passing scheme between +;DISPLAY.SYS and ANSI.SYS in the future version. +;For DA_SETMODE_FLAG, DISPLAY.SYS should be extremely careful that when it calls +;with DA_SETMODE_FLAG =1, then it should calls with DA_SETMODE_FLAG=0 +;when it finished INT 10h function call. Otherwise, the system goes ..... +DA_INFO_PACKET struc +DA_INFO_LEVEL db 0 ; 0 for DA_SETMODE_FLAG, 1 for DA_OPTION_L_STATE query (for OS2 compat. box). +DA_SETMODE_FLAG db 0 ; 1: DISPLAY.SYS is calling INT 10h call, SET MODE. 0= finished. +DA_OPTION_L_STATE db 0 ; on return from ANSI, 1 = ANSI /L option active, 0 = inactive. +DA_INFO_PACKET ends + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; *** DEF-EQU *** DEF-EQU *** DEF-EQU *** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; Information Block Structure +; (for functionality call) +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +INFO_BLOCK STRUC ; info block for functionality call ;AN000; +STATIC_ADDRESS DD ? ; address of static functionality table;AN000; + DB 33 DUP(?) ; don't care ;AN000; +ACTIVE_DISPLAY DB ? ; active display code ;AN000; +ALT_DISPLAY DB ? ; alternate display code ;AN000; + DB 3 DUP(?) ; don't care ;AN000; +CURRENT_SCANS DB ? ; current number of scan lines ;AN000; + DB 2 DUP(?) ; don't care ;AN000; +MISC_INFO DB ? ; miscellaneous state information ;AN000; + DB 18 DUP(?) ; don't care ;AN000; +INFO_BLOCK ENDS ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; Structure of System ID call return block +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +SYS_ID STRUC ; format of return system config data ;AN000; + DW ? ; don't care ;AN000; +MODEL_BYTE DB ? ; model byte ;AN000; +SYS_ID ENDS ; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 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 @@ +PAGE ,132 +TITLE DOS - CONSOLE Code Page Switching Device Driver +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; FILENAME: DISPLAY.ASM +; PROGRAM: DISPLAY.SYS (Main module) +; LINK PROCEDURE: Linkk +; INSTALLATION: +; +; This routine is structured as a DOS Device Driver. +; IE it is installed via the CONFIG.SYS command: +; DEVICE=DISPLAY.SYS +; +; The following device commands are supported: +; +; 00 hex - INIT +; ------------- +; Install the CON device driver. This is used for downloading of +; the character sets (various Code Pages) according to the respective +; display adapter. The interface provided by the video BIOS is used +; to download a block of 256 characters (in various resolutions - ie. +; 8x8, 8x14, and 8x16). Also, the interrupt 2F hex is chained for +; communication between the CON device driver and the keyboard routine. +; +; Refer to INIT.ASM for code +; +; 13 hex - GENERIC IOCTL +; ---------------------- +; INVOKE +; ------ +; Invoke is use to activate the appropriate CP font. The mechanism +; is based soley on the code page value passed from the MODE & CHCP +; commands. Once a CP ahs benn INVOKED, it is loaded for ALL display +; modes on the respective display adapter - ONLY IF the proper font +; resolution can be accessed. +; +; Refer to CPS-FUNC.INC for code +; +; DESIGNATE START +; --------------- +; Designate start passes the list of designated code pages to load. +; It is sent just prior to the IOCTL WRITE calls containing the 'CPI' +; files. The list of designated code pages is check for duplicates +; and for invalids (-1). +; +; Refer to CPS-FUNC.INC for code +; +; DESIGNATE STOP +; -------------- +; Once the data (for a DESIGNATION) has been routed to the CPS driver, +; it is followed by a DESIGNATE STOP command. This confirms the completion +; of the DESIGNATE procedure. If there was an error detected during the +; DESIGNATE procedure, it must be followed by a DESIGNATE STOP. +; +; Refer to CPS-FUNC.INC for code +; +; +; 0C hex - IOCTL OUTPUT +; --------------------- +; Following a DESIGNATE START, the contents of the specified data file +; (expected .CPI format) is copied by DOS to the CPS driver. This is +; via the GENERIC IOCTL WRITE calls. During these calls, the data is +; parsed by the FONT-PARSER (F-PARSER.SRC) to select the CP and fonts +; required. +; +; Refer to CPS-FUNC.INC for code +; +; +; (C)Copyright 1988 Microsoft +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; Request Header (Common portion) +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +IF1 ; + %OUT .Compiling: DISPLAY.ASM + %OUT . ô CPS-CON driver + %OUT . õ Version 3.30 + %OUT .Include Files: +ENDIF ; + INCLUDE MACROS.INC ; + INCLUDE DEF-EQU.INC ; + ; + PUBLIC EOF_MARKER ; + PUBLIC CPD_ACTIVE ; + PUBLIC CPD_CLASS ; + PUBLIC CPD_HDWR_N_MAX ; + PUBLIC CPD_DESG_N_MAX ; + PUBLIC CPD_HDWR_N ; + PUBLIC CPD_DESG_N ; + PUBLIC CPD_FONTS_N ; + PUBLIC CPD_FONT_PNTER ; + PUBLIC IRPT_2 ; + PUBLIC IRPT_CMD_EXIT ; + PUBLIC DEV_HDR ; + EXTRN INIT:NEAR ; + ; +CODE SEGMENT BYTE PUBLIC 'CODE' ; + ASSUME CS:CODE,DS:CODE ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;**************************************** +;** Resident Code ** +;**************************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +START EQU $ ; begin resident data & code +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; DEVICE HEADER - must be at offset zero within device driver +; (DHS is defined according to this structure) +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ORG 0000H ; + ; +DEV_HDR:DD -1 ; Pointer to next device header + DW 0C053H ; Attribute (Char device) + DW OFFSET STRATEGY ; Pnter to device "strategy" + DW OFFSET INTERRUPT ; Pnter to device "interrupt" + DB 'CON ' ; Device name + ; and of course a descriptive name + ; which can be viewed by a TYPE! +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; Console Description Table +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +.XLIST ; +STACK_END DW 1FFH+60H DUP(0) ; 200H + 'my' needs (re/ DOS 3.30 ref) +STACK_START DW 0 ; +OLD_STACK_S DW ? ; +OLD_STACK_O DW ? ; +.LIST ; + ; +BUF1: BUF_DATA <> ; exclude PAR_EXTRACTO + ; +CP_PNTER_TABLE DW OFFSET CPD_HDWR_N ; TABLE OF POINTERS TO CP INFO + DW OFFSET CPD_DESG_N ; + DW OFFSET CPD_FONT_PNTER; + DW OFFSET CPD_FONT_WRITE; + DW OFFSET CPD_FONT_DATA ; + ; +CPD_TABLE LABEL WORD ; TABLE DATA INFO FOR CP's +CPD_ACTIVE DW -1 ; TEMPORARY +CPD_CLASS DB '........' ; THIS IS SET TO (EGA, LCD) +CPD_FONTS_N DW -1 ; +CPD_HDWR_N DW 0 ; + DW 12 DUP(-1) ; (HDWR_CP's) (MAX=12) +CPD_HDWR_N_MAX EQU ($-CPD_HDWR_N)/2-1 ; +CPD_DESG_N DW -1 ; # OF DESIG CP's + DW 12 DUP(-1) ; (DESG CP's) (MAX=12) +CPD_DESG_N_MAX EQU ($-CPD_DESG_N)/2-1 ; +CPD_FONT_PNTER DW 12 DUP(0,0) ; SEG_OFFSET POINTER TO DATA BUFFERS +CPD_FONT_WRITE DW 12 DUP(0,0) ; SEG_OFFSET OF FONTS BEING WRITTEN +CPD_FONT_DATA DW 12 DUP(0) ; COUNT OF FONT DATA TO SKIP/COPY! +FONT_PRIORITY DB 8 DUP(-1) ; USED TO CLASSIFY FONT PRIORITY +NUM_FONT_PRIORITY EQU ($-FONT_PRIORITY) ; DURING A DESIGNATION +CPD_TEMP_DESG DW 0 ; # OF DESIG CP's TEMP BUFFER + DW 12 DUP(-1) ; (DESG CP's) (MAX=12) +CPD_REQ_DESG DW 0 ; # OF DESIG CP's REQUESTED + DW 12 DUP(-1) ; (DESG CP's) (MAX=12) +;;;;;;; + +ANSI_DA_INFO DA_INFO_PACKET <> ;J.K. Information packet to ANSI used for MODE SET INT10 call. + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; CON Device "strategy" entry point +; Retain the Request Header address for use by Interrupt routine +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ASSUME DS:NOTHING ; +STRATEGY PROC FAR ; + PUSH BX ; + PUSH BX ; + LEA BX, BUF1 ; BUF = BUF1 CS:[BX] + POP BUF.RH_PTRO ; OFFSET OF REQUEST HEADER + MOV BUF.RH_PTRS,ES ; SEGMENT + POP BX ; + RET ; +STRATEGY ENDP ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; Table of command processing routine entry points +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +CMD_TABLE LABEL WORD ; + DW OFFSET INIT ; 0 - Initialization + DW OFFSET NO_OPERATION ; 1 - Media check + DW OFFSET NO_OPERATION ; 2 - Build BPB + DW OFFSET NO_OPERATION ; 3 - IOCTL input + DW OFFSET NO_OPERATION ; 4 - Input + DW OFFSET NO_OPERATION ; 5 - Non destructive input no wait + DW OFFSET NO_OPERATION ; 6 - Input status + DW OFFSET NO_OPERATION ; 7 - Input flush + DW OFFSET NO_OPERATION ; 8 - Write + DW OFFSET NO_OPERATION ; 9 - Output with verify + DW OFFSET NO_OPERATION ; A - Output status + DW OFFSET NO_OPERATION ; B - Output flush + DW OFFSET DESG_WRITE ; C - IOCTL output + DW OFFSET NO_OPERATION ; D - Device OPEN + DW OFFSET NO_OPERATION ; E - Device CLOSE + DW OFFSET NO_OPERATION ; F - Removable media + DW OFFSET NO_OPERATION ; 10 - Removable media + DW OFFSET NO_OPERATION ; 11 - Removable media + DW OFFSET NO_OPERATION ; 12 - Removable media + DW OFFSET GENERIC_IOCTL ; 13 - Removable media +MAX_CMD EQU ($-CMD_TABLE)/2 ; highest valid command follows +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; CON Device "interrupt" entry point +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +INTERRUPT PROC FAR ; device interrupt entry point + PUSH AX ; + PUSH BX ; + PUSH CX ; + PUSH DI ; + PUSH SI ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; Common interrupt entry : +; at entry, BUFn (CS:BX) of CON is defined +; +; Check if header link has to be set +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + LEA BX, BUF1 ; + MOV DI,OFFSET DEV_HDR ; CON Device header + ; + MOV BUF.DEV_HDRO,DI ; + MOV BUF.DEV_HDRS,CS ; + CLD ; all moves forward + ; + CMP BUF.CON_STRAO, -1 ; + JNE L4 ; has been linked to DOS CON + CMP BUF.CON_STRAS, -1 ; + JNE L4 ; has been linked to DOS CON + ; next device header : ES:[DI] + LDS SI,DWORD PTR BUF.DEV_HDRO; + LES DI,DWORD PTR HP.DH_NEXTO; + ; +;$SEARCH WHILE ; pointer to next device header is NOT +L1: ; + PUSH ES ; -1 + POP AX ; + CMP AX,-1 ; +;$LEAVE E, AND ; leave if both offset and segment are + JNE NOT0FFFF ; + ; + CMP DI,-1 ; 0FFFFH +;$LEAVE E ; + JE L4 ; +NOT0FFFF: ; + PUSH DI ; + PUSH SI ; + MOV CX,NAME_LEN ; + LEA DI,NHD.DH_NAME ; + LEA SI,HP.DH_NAME ; + REPE CMPSB ; + POP SI ; + POP DI ; + AND CX,CX ; +;$EXITIF Z ; Exit if name is found in linked hd. + JNZ L3 ; Name is not found + ; Name is found in the linked header + MOV AX,NHD.DH_STRAO ; Get the STRATEGY address + MOV BUF.CON_STRAO,AX ; + MOV AX,ES ; +X1: MOV BUF.CON_STRAS,AX ; + ; + MOV AX,NHD.DH_INTRO ; Get the INTERRUPT address + MOV BUF.CON_INTRO,AX ; + MOV AX,ES ; +X2: MOV BUF.CON_INTRS,AX ; + ; +;$ORELSE ; FInd next header to have the same + JMP L4 ; Device Name +L3: ; + LES DI,DWORD PTR NHD.DH_NEXTO; +;$ENDLOOP ; + JMP L1 ; +L4: ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; COMMAND REQUEST +; ES:DI REQUEST HEADER +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + LES DI,DWORD PTR BUF.RH_PTRO; GET RH ADDRESS PASSED TO + ; "STRATEGY" INTO ES:DI + MOV AL,RH.RHC_CMD ; COMMAND CODE FROM REQUEST HEADER + CBW ; ZERO AH (IF AL > 7FH, NEXT COMPARE + ; WILL CATCH THAT ERROR) + CMP AL,MAX_CMD ; IF COMMAND CODE IS TOO HIGH + JAE L6 ; JUMP TO ERROR ROUTINE + ; + ADD AX,AX ; DOUBLE COMMAND CODE FOR TABLE OFFSET + MOV SI,AX ; PUT INTO INDEX REGISTER FOR JMP + ; + CALL CS:CMD_TABLE[SI] ; CALL ROUTINE TO HANDLE THE COMMAND + JC IRPT_CMD_EXIT ; CY=1 IF NO PASS_CONTROL REQ'D + CALL PASS_CONTROL ; + JUMP IRPT_2 ; + ; +L6: CALL PASS_CONTROL ; CALL ROUTINE TO HANDLE THE COMMAND +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; At entry to command processing routine +; +; ES:DI = Request Header address +; CS:BX = Buffer for CON +; CS = code segment address +; AX = 0 +; +; top of stack is return address, IRPT_CMD_EXIT +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +IRPT_CMD_EXIT: ; RETURN FROM COMMAND ROUTINE + LES DI,DWORD PTR BUF.RH_PTRO; RESTORE ES:DI AS REQUEST HEADER PTR + XOR AX,AX ; + OR AX,BUF.STATUS ; + JE IRPT_0 ; + XOR BUF.STATUS,AX ; SET STATUS BACK TO OK! + OR AX,STAT_CMDERR ; + JUMP IRPT_1 ; +IRPT_0: OR AH,STAT_DONE ; ADD "DONE" BIT TO STATUS WORD +IRPT_1: MOV RH.RHC_STA,AX ; STORE STATUS INTO REQUEST HEADER +IRPT_2: POP SI ; RESTORE REGISTERS + POP DI ; + POP CX ; + POP BX ; + POP AX ; + RET ; +INTERRUPT ENDP ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; PASS CONTROL +; +; This calls the attached device to perform any further +; action on the call! +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +PASS_CONTROL PROC ; + PUSH BX ; + PUSH BX ; + POP SI ; + LES BX,DWORD PTR BUF.RH_PTRO; pass the request header to the + CALL DWORD PTR CS:[SI].CON_STRAO ; CON strategy routine. + POP BX ; + CALL DWORD PTR BUF.CON_INTRO ; interrupt the CON + RET ; +PASS_CONTROL ENDP ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +NO_OPERATION PROC ; + CLC ; + RET ; +NO_OPERATION ENDP ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; PULL IN THE CODE PAGE FUNCTION CODE +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + INCLUDE INT2FCOM.INC ; + INCLUDE INT10COM.INC ; + INCLUDE CPS-FUNC.INC ; + INCLUDE WRITE.INC ; SPECIAL MARKER IN WRITE.INC + INCLUDE F-PARSER.INC ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; Adjust the assembly-time instruction counter to a paragraph +; boundary +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + IF ($-START) MOD 16 ; + ORG ($-START)+16-(($-START) MOD 16); + ENDIF ; +EOF_MARKER EQU $ ; end of resident code +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; END-OF-CODE +; +;;;;;;;;;;;;;;;;; +CODE ENDS ; + END ; +;;;;;;;;;;;;;;;;; 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 @@ +DISPLAY.OBJ+ +INIT.OBJ+ +PARSER.OBJ +DISPLAY.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 @@ +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; Message Skeleton file for DISPLAY.SYS +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +:util DISPLAY ; utility name + +:class A +:use 1 COMMON1 +:def 2 "%1 code page driver cannot be initialized",CR,LF,BELL +:def 8 "Insufficient memory",CR,LF,BELL +:def 12 "Invalid syntax on DISPLAY.SYS code page driver",CR,LF,BELL + +: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 @@ +CODE SEGMENT BYTE PUBLIC 'CODE' ; + ASSUME CS:CODE,DS:CODE ; + ; +CR EQU 13 ; +LF EQU 10 ; + ; + PUBLIC ERROR_1B ; + PUBLIC ERROR_1A ; + PUBLIC ERROR_2 ; + PUBLIC ERROR_3 ; +;; PUBLIC MSG_4 ; + ; +INCLUDE DISPMES.INC + ; +CODE ENDS ; + END ; + \ 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 @@ +;*************************************************** +; CHARACTER FONT FILE +; Source Assembler File +; +; CODE PAGE: 437 +; FONT RESOLUTION: 8 x 14 +; +; DATE CREATED:05-28-1987 +; +; +; Output file from: MULTIFON, Version 1A +; +;*************************************************** + Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #0 + Db 000h,000h,000h,07Eh,081h,0A5h,081h,081h,0BDh,099h,081h,07Eh,000h,000h ; Hex #1 + Db 000h,000h,000h,07Eh,0FFh,0DBh,0FFh,0FFh,0C3h,0E7h,0FFh,07Eh,000h,000h ; Hex #2 + Db 000h,000h,000h,000h,06Ch,0FEh,0FEh,0FEh,0FEh,07Ch,038h,010h,000h,000h ; Hex #3 + Db 000h,000h,000h,000h,010h,038h,07Ch,0FEh,07Ch,038h,010h,000h,000h,000h ; Hex #4 + Db 000h,000h,000h,018h,03Ch,03Ch,0E7h,0E7h,0E7h,018h,018h,03Ch,000h,000h ; Hex #5 + Db 000h,000h,000h,018h,03Ch,07Eh,0FFh,0FFh,07Eh,018h,018h,03Ch,000h,000h ; Hex #6 + Db 000h,000h,000h,000h,000h,000h,018h,03Ch,03Ch,018h,000h,000h,000h,000h ; Hex #7 + Db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0E7h,0C3h,0C3h,0E7h,0FFh,0FFh,0FFh,0FFh ; Hex #8 + Db 000h,000h,000h,000h,000h,03Ch,066h,042h,042h,066h,03Ch,000h,000h,000h ; Hex #9 + Db 0FFh,0FFh,0FFh,0FFh,0FFh,0C3h,099h,0BDh,0BDh,099h,0C3h,0FFh,0FFh,0FFh ; Hex #A + Db 000h,000h,000h,01Eh,00Eh,01Ah,032h,078h,0CCh,0CCh,0CCh,078h,000h,000h ; Hex #B + Db 000h,000h,000h,03Ch,066h,066h,066h,03Ch,018h,07Eh,018h,018h,000h,000h ; Hex #C + Db 000h,000h,000h,03Fh,033h,03Fh,030h,030h,030h,070h,0F0h,0E0h,000h,000h ; Hex #D + Db 000h,000h,000h,07Fh,063h,07Fh,063h,063h,063h,067h,0E7h,0E6h,0C0h,000h ; Hex #E + Db 000h,000h,000h,018h,018h,0DBh,03Ch,0E7h,03Ch,0DBh,018h,018h,000h,000h ; Hex #F + Db 000h,000h,000h,080h,0C0h,0E0h,0F8h,0FEh,0F8h,0E0h,0C0h,080h,000h,000h ; Hex #10 + Db 000h,000h,000h,002h,006h,00Eh,03Eh,0FEh,03Eh,00Eh,006h,002h,000h,000h ; Hex #11 + Db 000h,000h,000h,018h,03Ch,07Eh,018h,018h,018h,07Eh,03Ch,018h,000h,000h ; Hex #12 + Db 000h,000h,000h,066h,066h,066h,066h,066h,066h,000h,066h,066h,000h,000h ; Hex #13 + Db 000h,000h,000h,07Fh,0DBh,0DBh,0DBh,07Bh,01Bh,01Bh,01Bh,01Bh,000h,000h ; Hex #14 + Db 000h,000h,07Ch,0C6h,060h,038h,06Ch,0C6h,0C6h,06Ch,038h,00Ch,0C6h,07Ch ; Hex #15 + Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,0FEh,0FEh,0FEh,000h,000h ; Hex #16 + Db 000h,000h,000h,018h,03Ch,07Eh,018h,018h,018h,07Eh,03Ch,018h,07Eh,000h ; Hex #17 + Db 000h,000h,000h,018h,03Ch,07Eh,018h,018h,018h,018h,018h,018h,000h,000h ; Hex #18 + Db 000h,000h,000h,018h,018h,018h,018h,018h,018h,07Eh,03Ch,018h,000h,000h ; Hex #19 + Db 000h,000h,000h,000h,000h,018h,00Ch,0FEh,00Ch,018h,000h,000h,000h,000h ; Hex #1A + Db 000h,000h,000h,000h,000h,030h,060h,0FEh,060h,030h,000h,000h,000h,000h ; Hex #1B + Db 000h,000h,000h,000h,000h,000h,0C0h,0C0h,0C0h,0FEh,000h,000h,000h,000h ; Hex #1C + Db 000h,000h,000h,000h,000h,028h,06Ch,0FEh,06Ch,028h,000h,000h,000h,000h ; Hex #1D + Db 000h,000h,000h,000h,010h,038h,038h,07Ch,07Ch,0FEh,0FEh,000h,000h,000h ; Hex #1E + Db 000h,000h,000h,000h,0FEh,0FEh,07Ch,07Ch,038h,038h,010h,000h,000h,000h ; Hex #1F + Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #20 + Db 000h,000h,000h,018h,03Ch,03Ch,03Ch,018h,018h,000h,018h,018h,000h,000h ; Hex #21 + Db 000h,066h,066h,066h,024h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #22 + Db 000h,000h,000h,06Ch,06Ch,0FEh,06Ch,06Ch,06Ch,0FEh,06Ch,06Ch,000h,000h ; Hex #23 + Db 000h,018h,018h,07Ch,0C6h,0C2h,0C0h,07Ch,006h,086h,0C6h,07Ch,018h,018h ; Hex #24 + Db 000h,000h,000h,000h,000h,0C2h,0C6h,00Ch,018h,030h,066h,0C6h,000h,000h ; Hex #25 + Db 000h,000h,000h,038h,06Ch,06Ch,038h,076h,0DCh,0CCh,0CCh,076h,000h,000h ; Hex #26 + Db 000h,018h,018h,018h,030h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #27 + Db 000h,000h,000h,00Ch,018h,030h,030h,030h,030h,030h,018h,00Ch,000h,000h ; Hex #28 + Db 000h,000h,000h,030h,018h,00Ch,00Ch,00Ch,00Ch,00Ch,018h,030h,000h,000h ; Hex #29 + Db 000h,000h,000h,000h,000h,066h,03Ch,0FFh,03Ch,066h,000h,000h,000h,000h ; Hex #2A + Db 000h,000h,000h,000h,000h,018h,018h,07Eh,018h,018h,000h,000h,000h,000h ; Hex #2B + Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,018h,018h,018h,030h,000h ; Hex #2C + Db 000h,000h,000h,000h,000h,000h,000h,0FEh,000h,000h,000h,000h,000h,000h ; Hex #2D + Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,018h,018h,000h,000h ; Hex #2E + Db 000h,000h,000h,002h,006h,00Ch,018h,030h,060h,0C0h,080h,000h,000h,000h ; Hex #2F + Db 000h,000h,000h,038h,06Ch,0C6h,0C6h,0D6h,0C6h,0C6h,06Ch,038h,000h,000h ; Hex #30 + Db 000h,000h,000h,018h,038h,078h,018h,018h,018h,018h,018h,07Eh,000h,000h ; Hex #31 + Db 000h,000h,000h,07Ch,0C6h,006h,00Ch,018h,030h,060h,0C6h,0FEh,000h,000h ; Hex #32 + Db 000h,000h,000h,07Ch,0C6h,006h,006h,03Ch,006h,006h,0C6h,07Ch,000h,000h ; Hex #33 + Db 000h,000h,000h,00Ch,01Ch,03Ch,06Ch,0CCh,0FEh,00Ch,00Ch,01Eh,000h,000h ; Hex #34 + Db 000h,000h,000h,0FEh,0C0h,0C0h,0C0h,0FCh,006h,006h,0C6h,07Ch,000h,000h ; Hex #35 + Db 000h,000h,000h,038h,060h,0C0h,0C0h,0FCh,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #36 + Db 000h,000h,000h,0FEh,0C6h,006h,00Ch,018h,030h,030h,030h,030h,000h,000h ; Hex #37 + Db 000h,000h,000h,07Ch,0C6h,0C6h,0C6h,07Ch,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #38 + Db 000h,000h,000h,07Ch,0C6h,0C6h,0C6h,07Eh,006h,006h,00Ch,078h,000h,000h ; Hex #39 + Db 000h,000h,000h,000h,018h,018h,000h,000h,000h,018h,018h,000h,000h,000h ; Hex #3A + Db 000h,000h,000h,000h,018h,018h,000h,000h,000h,018h,018h,030h,000h,000h ; Hex #3B + Db 000h,000h,000h,00Ch,018h,030h,060h,0C0h,060h,030h,018h,00Ch,000h,000h ; Hex #3C + Db 000h,000h,000h,000h,000h,000h,07Eh,000h,000h,07Eh,000h,000h,000h,000h ; Hex #3D + Db 000h,000h,000h,060h,030h,018h,00Ch,006h,00Ch,018h,030h,060h,000h,000h ; Hex #3E + Db 000h,000h,000h,07Ch,0C6h,0C6h,00Ch,018h,018h,000h,018h,018h,000h,000h ; Hex #3F + Db 000h,000h,000h,07Ch,0C6h,0C6h,0DEh,0DEh,0DEh,0DCh,0C0h,07Ch,000h,000h ; Hex #40 + Db 000h,000h,000h,010h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,000h,000h ; Hex #41 + Db 000h,000h,000h,0FCh,066h,066h,066h,07Ch,066h,066h,066h,0FCh,000h,000h ; Hex #42 + Db 000h,000h,000h,03Ch,066h,0C2h,0C0h,0C0h,0C0h,0C2h,066h,03Ch,000h,000h ; Hex #43 + Db 000h,000h,000h,0F8h,06Ch,066h,066h,066h,066h,066h,06Ch,0F8h,000h,000h ; Hex #44 + Db 000h,000h,000h,0FEh,066h,062h,068h,078h,068h,062h,066h,0FEh,000h,000h ; Hex #45 + Db 000h,000h,000h,0FEh,066h,062h,068h,078h,068h,060h,060h,0F0h,000h,000h ; Hex #46 + Db 000h,000h,000h,03Ch,066h,0C2h,0C0h,0C0h,0DEh,0C6h,066h,03Ah,000h,000h ; Hex #47 + Db 000h,000h,000h,0C6h,0C6h,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,0C6h,000h,000h ; Hex #48 + Db 000h,000h,000h,03Ch,018h,018h,018h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #49 + Db 000h,000h,000h,01Eh,00Ch,00Ch,00Ch,00Ch,00Ch,0CCh,0CCh,078h,000h,000h ; Hex #4A + Db 000h,000h,000h,0E6h,066h,06Ch,06Ch,078h,06Ch,06Ch,066h,0E6h,000h,000h ; Hex #4B + Db 000h,000h,000h,0F0h,060h,060h,060h,060h,060h,062h,066h,0FEh,000h,000h ; Hex #4C + Db 000h,000h,000h,0C6h,0EEh,0FEh,0D6h,0C6h,0C6h,0C6h,0C6h,0C6h,000h,000h ; Hex #4D + Db 000h,000h,000h,0C6h,0E6h,0F6h,0FEh,0DEh,0CEh,0C6h,0C6h,0C6h,000h,000h ; Hex #4E + Db 000h,000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #4F + Db 000h,000h,000h,0FCh,066h,066h,066h,07Ch,060h,060h,060h,0F0h,000h,000h ; Hex #50 + Db 000h,000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0D6h,0DEh,07Ch,00Eh,000h ; Hex #51 + Db 000h,000h,000h,0FCh,066h,066h,066h,07Ch,06Ch,066h,066h,0E6h,000h,000h ; Hex #52 + Db 000h,000h,000h,07Ch,0C6h,0C6h,060h,038h,00Ch,0C6h,0C6h,07Ch,000h,000h ; Hex #53 + Db 000h,000h,000h,07Eh,07Eh,05Ah,018h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #54 + Db 000h,000h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #55 + Db 000h,000h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,06Ch,038h,010h,000h,000h ; Hex #56 + Db 000h,000h,000h,0C6h,0C6h,0C6h,0C6h,0D6h,0D6h,0FEh,06Ch,06Ch,000h,000h ; Hex #57 + Db 000h,000h,000h,0C6h,0C6h,0C6h,07Ch,038h,07Ch,0C6h,0C6h,0C6h,000h,000h ; Hex #58 + Db 000h,000h,000h,066h,066h,066h,066h,03Ch,018h,018h,018h,03Ch,000h,000h ; Hex #59 + Db 000h,000h,000h,0FEh,0C6h,08Ch,018h,030h,060h,0C2h,0C6h,0FEh,000h,000h ; Hex #5A + Db 000h,000h,000h,03Ch,030h,030h,030h,030h,030h,030h,030h,03Ch,000h,000h ; Hex #5B + Db 000h,000h,000h,080h,0C0h,0E0h,070h,038h,01Ch,00Eh,006h,002h,000h,000h ; Hex #5C + Db 000h,000h,000h,03Ch,00Ch,00Ch,00Ch,00Ch,00Ch,00Ch,00Ch,03Ch,000h,000h ; Hex #5D + Db 010h,038h,06Ch,0C6h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #5E + Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,0FFh ; Hex #5F + Db 000h,030h,018h,00Ch,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #60 + Db 000h,000h,000h,000h,000h,000h,078h,00Ch,07Ch,0CCh,0CCh,076h,000h,000h ; Hex #61 + Db 000h,000h,000h,0E0h,060h,060h,078h,06Ch,066h,066h,066h,07Ch,000h,000h ; Hex #62 + Db 000h,000h,000h,000h,000h,000h,07Ch,0C6h,0C0h,0C0h,0C6h,07Ch,000h,000h ; Hex #63 + Db 000h,000h,000h,01Ch,00Ch,00Ch,03Ch,06Ch,0CCh,0CCh,0CCh,076h,000h,000h ; Hex #64 + Db 000h,000h,000h,000h,000h,000h,07Ch,0C6h,0FEh,0C0h,0C6h,07Ch,000h,000h ; Hex #65 + Db 000h,000h,000h,01Ch,036h,032h,030h,07Ch,030h,030h,030h,078h,000h,000h ; Hex #66 + Db 000h,000h,000h,000h,000h,000h,076h,0CCh,0CCh,0CCh,07Ch,00Ch,0CCh,078h ; Hex #67 + Db 000h,000h,000h,0E0h,060h,060h,06Ch,076h,066h,066h,066h,0E6h,000h,000h ; Hex #68 + Db 000h,000h,000h,018h,018h,000h,038h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #69 + Db 000h,000h,000h,006h,006h,000h,00Eh,006h,006h,006h,006h,066h,066h,03Ch ; Hex #6A + Db 000h,000h,000h,0E0h,060h,060h,066h,06Ch,078h,06Ch,066h,0E6h,000h,000h ; Hex #6B + Db 000h,000h,000h,038h,018h,018h,018h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #6C + Db 000h,000h,000h,000h,000h,000h,0ECh,0FEh,0D6h,0D6h,0D6h,0D6h,000h,000h ; Hex #6D + Db 000h,000h,000h,000h,000h,000h,0DCh,066h,066h,066h,066h,066h,000h,000h ; Hex #6E + Db 000h,000h,000h,000h,000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #6F + Db 000h,000h,000h,000h,000h,000h,0DCh,066h,066h,066h,07Ch,060h,060h,0F0h ; Hex #70 + Db 000h,000h,000h,000h,000h,000h,076h,0CCh,0CCh,0CCh,07Ch,00Ch,00Ch,01Eh ; Hex #71 + Db 000h,000h,000h,000h,000h,000h,0DCh,076h,066h,060h,060h,0F0h,000h,000h ; Hex #72 + Db 000h,000h,000h,000h,000h,000h,07Ch,0C6h,070h,01Ch,0C6h,07Ch,000h,000h ; Hex #73 + Db 000h,000h,000h,010h,030h,030h,0FCh,030h,030h,030h,036h,01Ch,000h,000h ; Hex #74 + Db 000h,000h,000h,000h,000h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h ; Hex #75 + Db 000h,000h,000h,000h,000h,000h,0C6h,0C6h,0C6h,06Ch,038h,010h,000h,000h ; Hex #76 + Db 000h,000h,000h,000h,000h,000h,0C6h,0C6h,0D6h,0D6h,0FEh,06Ch,000h,000h ; Hex #77 + Db 000h,000h,000h,000h,000h,000h,0C6h,06Ch,038h,038h,06Ch,0C6h,000h,000h ; Hex #78 + Db 000h,000h,000h,000h,000h,000h,0C6h,0C6h,0C6h,0C6h,07Eh,006h,00Ch,078h ; Hex #79 + Db 000h,000h,000h,000h,000h,000h,0FEh,0CCh,018h,030h,066h,0FEh,000h,000h ; Hex #7A + Db 000h,000h,000h,00Eh,018h,018h,018h,070h,018h,018h,018h,00Eh,000h,000h ; Hex #7B + Db 000h,000h,000h,018h,018h,018h,018h,018h,018h,018h,018h,018h,000h,000h ; Hex #7C + Db 000h,000h,000h,070h,018h,018h,018h,00Eh,018h,018h,018h,070h,000h,000h ; Hex #7D + Db 000h,076h,0DCh,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #7E + Db 000h,000h,000h,000h,000h,010h,038h,06Ch,0C6h,0C6h,0FEh,000h,000h,000h ; Hex #7F + Db 000h,000h,000h,03Ch,066h,0C2h,0C0h,0C0h,0C0h,0C2h,066h,03Ch,00Ch,078h ; Hex #80 + Db 000h,000h,000h,0CCh,000h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h ; Hex #81 + Db 000h,000h,00Ch,018h,030h,000h,07Ch,0C6h,0FEh,0C0h,0C6h,07Ch,000h,000h ; Hex #82 + Db 000h,000h,010h,038h,06Ch,000h,078h,00Ch,07Ch,0CCh,0CCh,076h,000h,000h ; Hex #83 + Db 000h,000h,000h,0C6h,000h,000h,078h,00Ch,07Ch,0CCh,0CCh,076h,000h,000h ; Hex #84 + Db 000h,000h,060h,030h,018h,000h,078h,00Ch,07Ch,0CCh,0CCh,076h,000h,000h ; Hex #85 + Db 000h,000h,038h,06Ch,038h,000h,078h,00Ch,07Ch,0CCh,0CCh,076h,000h,000h ; Hex #86 + Db 000h,000h,000h,000h,000h,000h,07Ch,0C6h,0C0h,0C0h,0C6h,07Ch,00Ch,078h ; Hex #87 + Db 000h,000h,010h,038h,06Ch,000h,07Ch,0C6h,0FEh,0C0h,0C6h,07Ch,000h,000h ; Hex #88 + Db 000h,000h,000h,0C6h,000h,000h,07Ch,0C6h,0FEh,0C0h,0C6h,07Ch,000h,000h ; Hex #89 + Db 000h,000h,060h,030h,018h,000h,07Ch,0C6h,0FEh,0C0h,0C6h,07Ch,000h,000h ; Hex #8A + Db 000h,000h,000h,066h,000h,000h,038h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #8B + Db 000h,000h,018h,03Ch,066h,000h,038h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #8C + Db 000h,000h,060h,030h,018h,000h,038h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #8D + Db 000h,0C6h,000h,010h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,000h,000h ; Hex #8E + Db 038h,06Ch,038h,010h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,000h,000h ; Hex #8F + Db 00Ch,018h,000h,0FEh,066h,062h,068h,078h,068h,062h,066h,0FEh,000h,000h ; Hex #90 + Db 000h,000h,000h,000h,000h,000h,0ECh,036h,076h,0DCh,0D8h,06Eh,000h,000h ; Hex #91 + Db 000h,000h,000h,03Eh,06Ch,0CCh,0CCh,0FEh,0CCh,0CCh,0CCh,0CEh,000h,000h ; Hex #92 + Db 000h,000h,010h,038h,06Ch,000h,07Ch,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #93 + Db 000h,000h,000h,0C6h,000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #94 + Db 000h,000h,060h,030h,018h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #95 + Db 000h,000h,030h,078h,0CCh,000h,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h ; Hex #96 + Db 000h,000h,060h,030h,018h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h ; Hex #97 + Db 000h,000h,000h,0C6h,000h,000h,0C6h,0C6h,0C6h,0C6h,07Eh,006h,00Ch,078h ; Hex #98 + Db 000h,0C6h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #99 + Db 000h,0C6h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #9A + Db 000h,000h,018h,018h,07Ch,0C6h,0C0h,0C0h,0C6h,07Ch,018h,018h,000h,000h ; Hex #9B + Db 000h,000h,038h,06Ch,064h,060h,0F0h,060h,060h,060h,0E6h,0FCh,000h,000h ; Hex #9C + Db 000h,000h,000h,066h,066h,03Ch,018h,07Eh,018h,07Eh,018h,018h,000h,000h ; Hex #9D + Db 000h,000h,0FCh,066h,066h,07Ch,062h,066h,06Fh,066h,066h,0F3h,000h,000h ; Hex #9E + Db 000h,000h,00Eh,01Bh,018h,018h,018h,07Eh,018h,018h,018h,0D8h,070h,000h ; Hex #9F + Db 000h,000h,00Ch,018h,030h,000h,078h,00Ch,07Ch,0CCh,0CCh,076h,000h,000h ; Hex #A0 + Db 000h,000h,00Ch,018h,030h,000h,038h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #A1 + Db 000h,000h,00Ch,018h,030h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #A2 + Db 000h,000h,00Ch,018h,030h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h ; Hex #A3 + Db 000h,000h,000h,076h,0DCh,000h,0DCh,066h,066h,066h,066h,066h,000h,000h ; Hex #A4 + Db 076h,0DCh,000h,0C6h,0E6h,0F6h,0FEh,0DEh,0CEh,0C6h,0C6h,0C6h,000h,000h ; Hex #A5 + Db 000h,000h,03Ch,06Ch,06Ch,03Eh,000h,07Eh,000h,000h,000h,000h,000h,000h ; Hex #A6 + Db 000h,000h,038h,06Ch,06Ch,038h,000h,07Ch,000h,000h,000h,000h,000h,000h ; Hex #A7 + Db 000h,000h,000h,030h,030h,000h,030h,030h,060h,0C6h,0C6h,07Ch,000h,000h ; Hex #A8 + Db 000h,000h,000h,000h,000h,000h,000h,0FEh,0C0h,0C0h,0C0h,000h,000h,000h ; Hex #A9 + Db 000h,000h,000h,000h,000h,000h,000h,0FEh,006h,006h,006h,000h,000h,000h ; Hex #AA + Db 000h,000h,060h,0E0h,063h,066h,06Ch,018h,030h,06Eh,0C3h,006h,00Ch,01Fh ; Hex #AB + Db 000h,000h,060h,0E0h,063h,066h,06Ch,01Ah,036h,06Eh,0DAh,03Fh,006h,006h ; Hex #AC + Db 000h,000h,000h,018h,018h,000h,018h,018h,03Ch,03Ch,03Ch,018h,000h,000h ; Hex #AD + Db 000h,000h,000h,000h,000h,036h,06Ch,0D8h,06Ch,036h,000h,000h,000h,000h ; Hex #AE + Db 000h,000h,000h,000h,000h,0D8h,06Ch,036h,06Ch,0D8h,000h,000h,000h,000h ; Hex #AF + Db 011h,044h,011h,044h,011h,044h,011h,044h,011h,044h,011h,044h,011h,044h ; Hex #B0 + Db 055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh ; Hex #B1 + Db 0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h ; Hex #B2 + Db 018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #B3 + Db 018h,018h,018h,018h,018h,018h,018h,0F8h,018h,018h,018h,018h,018h,018h ; Hex #B4 + Db 018h,018h,018h,018h,018h,0F8h,018h,0F8h,018h,018h,018h,018h,018h,018h ; Hex #B5 + Db 036h,036h,036h,036h,036h,036h,036h,0F6h,036h,036h,036h,036h,036h,036h ; Hex #B6 + Db 000h,000h,000h,000h,000h,000h,000h,0FEh,036h,036h,036h,036h,036h,036h ; Hex #B7 + Db 000h,000h,000h,000h,000h,0F8h,018h,0F8h,018h,018h,018h,018h,018h,018h ; Hex #B8 + Db 036h,036h,036h,036h,036h,0F6h,006h,0F6h,036h,036h,036h,036h,036h,036h ; Hex #B9 + Db 036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #BA + Db 000h,000h,000h,000h,000h,0FEh,006h,0F6h,036h,036h,036h,036h,036h,036h ; Hex #BB + Db 036h,036h,036h,036h,036h,0F6h,006h,0FEh,000h,000h,000h,000h,000h,000h ; Hex #BC + Db 036h,036h,036h,036h,036h,036h,036h,0FEh,000h,000h,000h,000h,000h,000h ; Hex #BD + Db 018h,018h,018h,018h,018h,0F8h,018h,0F8h,000h,000h,000h,000h,000h,000h ; Hex #BE + Db 000h,000h,000h,000h,000h,000h,000h,0F8h,018h,018h,018h,018h,018h,018h ; Hex #BF + Db 018h,018h,018h,018h,018h,018h,018h,01Fh,000h,000h,000h,000h,000h,000h ; Hex #C0 + Db 018h,018h,018h,018h,018h,018h,018h,0FFh,000h,000h,000h,000h,000h,000h ; Hex #C1 + Db 000h,000h,000h,000h,000h,000h,000h,0FFh,018h,018h,018h,018h,018h,018h ; Hex #C2 + Db 018h,018h,018h,018h,018h,018h,018h,01Fh,018h,018h,018h,018h,018h,018h ; Hex #C3 + Db 000h,000h,000h,000h,000h,000h,000h,0FFh,000h,000h,000h,000h,000h,000h ; Hex #C4 + Db 018h,018h,018h,018h,018h,018h,018h,0FFh,018h,018h,018h,018h,018h,018h ; Hex #C5 + Db 018h,018h,018h,018h,018h,01Fh,018h,01Fh,018h,018h,018h,018h,018h,018h ; Hex #C6 + Db 036h,036h,036h,036h,036h,036h,036h,037h,036h,036h,036h,036h,036h,036h ; Hex #C7 + Db 036h,036h,036h,036h,036h,037h,030h,03Fh,000h,000h,000h,000h,000h,000h ; Hex #C8 + Db 000h,000h,000h,000h,000h,03Fh,030h,037h,036h,036h,036h,036h,036h,036h ; Hex #C9 + Db 036h,036h,036h,036h,036h,0F7h,000h,0FFh,000h,000h,000h,000h,000h,000h ; Hex #CA + Db 000h,000h,000h,000h,000h,0FFh,000h,0F7h,036h,036h,036h,036h,036h,036h ; Hex #CB + Db 036h,036h,036h,036h,036h,037h,030h,037h,036h,036h,036h,036h,036h,036h ; Hex #CC + Db 000h,000h,000h,000h,000h,0FFh,000h,0FFh,000h,000h,000h,000h,000h,000h ; Hex #CD + Db 036h,036h,036h,036h,036h,0F7h,000h,0F7h,036h,036h,036h,036h,036h,036h ; Hex #CE + Db 018h,018h,018h,018h,018h,0FFh,000h,0FFh,000h,000h,000h,000h,000h,000h ; Hex #CF + Db 036h,036h,036h,036h,036h,036h,036h,0FFh,000h,000h,000h,000h,000h,000h ; Hex #D0 + Db 000h,000h,000h,000h,000h,0FFh,000h,0FFh,018h,018h,018h,018h,018h,018h ; Hex #D1 + Db 000h,000h,000h,000h,000h,000h,000h,0FFh,036h,036h,036h,036h,036h,036h ; Hex #D2 + Db 036h,036h,036h,036h,036h,036h,036h,03Fh,000h,000h,000h,000h,000h,000h ; Hex #D3 + Db 018h,018h,018h,018h,018h,01Fh,018h,01Fh,000h,000h,000h,000h,000h,000h ; Hex #D4 + Db 000h,000h,000h,000h,000h,01Fh,018h,01Fh,018h,018h,018h,018h,018h,018h ; Hex #D5 + Db 000h,000h,000h,000h,000h,000h,000h,03Fh,036h,036h,036h,036h,036h,036h ; Hex #D6 + Db 036h,036h,036h,036h,036h,036h,036h,0FFh,036h,036h,036h,036h,036h,036h ; Hex #D7 + Db 018h,018h,018h,018h,018h,0FFh,018h,0FFh,018h,018h,018h,018h,018h,018h ; Hex #D8 + Db 018h,018h,018h,018h,018h,018h,018h,0F8h,000h,000h,000h,000h,000h,000h ; Hex #D9 + Db 000h,000h,000h,000h,000h,000h,000h,01Fh,018h,018h,018h,018h,018h,018h ; Hex #DA + Db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh ; Hex #DB + Db 000h,000h,000h,000h,000h,000h,000h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh ; Hex #DC + Db 0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h ; Hex #DD + Db 00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh ; Hex #DE + Db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,000h,000h,000h,000h,000h,000h,000h ; Hex #DF + Db 000h,000h,000h,000h,000h,000h,076h,0DCh,0D8h,0D8h,0DCh,076h,000h,000h ; Hex #E0 + Db 000h,000h,000h,078h,0CCh,0CCh,0CCh,0D8h,0CCh,0C6h,0C6h,0CCh,000h,000h ; Hex #E1 + Db 000h,000h,000h,0FEh,0C6h,0C6h,0C0h,0C0h,0C0h,0C0h,0C0h,0C0h,000h,000h ; Hex #E2 + Db 000h,000h,000h,000h,000h,000h,0FEh,06Ch,06Ch,06Ch,06Ch,06Ch,000h,000h ; Hex #E3 + Db 000h,000h,000h,0FEh,0C6h,060h,030h,018h,030h,060h,0C6h,0FEh,000h,000h ; Hex #E4 + Db 000h,000h,000h,000h,000h,000h,07Eh,0D8h,0D8h,0D8h,0D8h,070h,000h,000h ; Hex #E5 + Db 000h,000h,000h,000h,000h,000h,066h,066h,066h,066h,066h,07Ch,060h,0C0h ; Hex #E6 + Db 000h,000h,000h,000h,000h,076h,0DCh,018h,018h,018h,018h,018h,000h,000h ; Hex #E7 + Db 000h,000h,000h,07Eh,018h,03Ch,066h,066h,066h,03Ch,018h,07Eh,000h,000h ; Hex #E8 + Db 000h,000h,000h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,06Ch,038h,000h,000h ; Hex #E9 + Db 000h,000h,000h,038h,06Ch,0C6h,0C6h,0C6h,06Ch,06Ch,06Ch,0EEh,000h,000h ; Hex #EA + Db 000h,000h,000h,01Eh,030h,018h,00Ch,03Eh,066h,066h,066h,03Ch,000h,000h ; Hex #EB + Db 000h,000h,000h,000h,000h,000h,07Eh,0DBh,0DBh,07Eh,000h,000h,000h,000h ; Hex #EC + Db 000h,000h,000h,003h,006h,07Eh,0DBh,0DBh,0F3h,07Eh,060h,0C0h,000h,000h ; Hex #ED + Db 000h,000h,000h,01Eh,030h,060h,060h,07Eh,060h,060h,030h,01Eh,000h,000h ; Hex #EE + Db 000h,000h,000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,000h,000h ; Hex #EF + Db 000h,000h,000h,000h,0FEh,000h,000h,0FEh,000h,000h,0FEh,000h,000h,000h ; Hex #F0 + Db 000h,000h,000h,000h,018h,018h,07Eh,018h,018h,000h,000h,07Eh,000h,000h ; Hex #F1 + Db 000h,000h,000h,030h,018h,00Ch,006h,00Ch,018h,030h,000h,07Eh,000h,000h ; Hex #F2 + Db 000h,000h,000h,00Ch,018h,030h,060h,030h,018h,00Ch,000h,07Eh,000h,000h ; Hex #F3 + Db 000h,000h,00Eh,01Bh,01Bh,018h,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #F4 + Db 018h,018h,018h,018h,018h,018h,018h,018h,0D8h,0D8h,070h,000h,000h,000h ; Hex #F5 + Db 000h,000h,000h,000h,000h,018h,000h,07Eh,000h,018h,000h,000h,000h,000h ; Hex #F6 + Db 000h,000h,000h,000h,000h,076h,0DCh,000h,076h,0DCh,000h,000h,000h,000h ; Hex #F7 + Db 000h,038h,06Ch,06Ch,038h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #F8 + Db 000h,000h,000h,000h,000h,000h,000h,018h,018h,000h,000h,000h,000h,000h ; Hex #F9 + Db 000h,000h,000h,000h,000h,000h,000h,018h,000h,000h,000h,000h,000h,000h ; Hex #FA + Db 000h,00Fh,00Ch,00Ch,00Ch,00Ch,00Ch,00Ch,0ECh,06Ch,03Ch,01Ch,000h,000h ; Hex #FB + Db 000h,06Ch,036h,036h,036h,036h,036h,000h,000h,000h,000h,000h,000h,000h ; Hex #FC + Db 000h,03Ch,066h,00Ch,018h,032h,07Eh,000h,000h,000h,000h,000h,000h,000h ; Hex #FD + Db 000h,000h,000h,000h,000h,07Eh,07Eh,07Eh,07Eh,07Eh,07Eh,000h,000h,000h ; Hex #FE + 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 @@ +;*************************************************** +; CHARACTER FONT FILE +; Source Assembler File +; +; CODE PAGE: 437 +; FONT RESOLUTION: 8 x 16 +; +; DATE CREATED:05-28-1987 +; +; +; Output file from: MULTIFON, Version 1A +; +;*************************************************** + Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #0 + Db 000h,000h,07Eh,081h,0A5h,081h,081h,0BDh,099h,081h,081h,07Eh,000h,000h,000h,000h ; Hex #1 + Db 000h,000h,07Eh,0FFh,0DBh,0FFh,0FFh,0C3h,0E7h,0FFh,0FFh,07Eh,000h,000h,000h,000h ; Hex #2 + Db 000h,000h,000h,000h,06Ch,0FEh,0FEh,0FEh,0FEh,07Ch,038h,010h,000h,000h,000h,000h ; Hex #3 + Db 000h,000h,000h,000h,010h,038h,07Ch,0FEh,07Ch,038h,010h,000h,000h,000h,000h,000h ; Hex #4 + Db 000h,000h,000h,018h,03Ch,03Ch,0E7h,0E7h,0E7h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #5 + Db 000h,000h,000h,018h,03Ch,07Eh,0FFh,0FFh,07Eh,018h,018h,03Ch,000h,000h,000h,000h ; Hex #6 + Db 000h,000h,000h,000h,000h,000h,018h,03Ch,03Ch,018h,000h,000h,000h,000h,000h,000h ; Hex #7 + Db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0E7h,0C3h,0C3h,0E7h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh ; Hex #8 + Db 000h,000h,000h,000h,000h,03Ch,066h,042h,042h,066h,03Ch,000h,000h,000h,000h,000h ; Hex #9 + Db 0FFh,0FFh,0FFh,0FFh,0FFh,0C3h,099h,0BDh,0BDh,099h,0C3h,0FFh,0FFh,0FFh,0FFh,0FFh ; Hex #A + Db 000h,000h,01Eh,00Eh,01Ah,032h,078h,0CCh,0CCh,0CCh,0CCh,078h,000h,000h,000h,000h ; Hex #B + Db 000h,000h,03Ch,066h,066h,066h,066h,03Ch,018h,07Eh,018h,018h,000h,000h,000h,000h ; Hex #C + Db 000h,000h,03Fh,033h,03Fh,030h,030h,030h,030h,070h,0F0h,0E0h,000h,000h,000h,000h ; Hex #D + Db 000h,000h,07Fh,063h,07Fh,063h,063h,063h,063h,067h,0E7h,0E6h,0C0h,000h,000h,000h ; Hex #E + Db 000h,000h,000h,018h,018h,0DBh,03Ch,0E7h,03Ch,0DBh,018h,018h,000h,000h,000h,000h ; Hex #F + Db 000h,080h,0C0h,0E0h,0F0h,0F8h,0FEh,0F8h,0F0h,0E0h,0C0h,080h,000h,000h,000h,000h ; Hex #10 + Db 000h,002h,006h,00Eh,01Eh,03Eh,0FEh,03Eh,01Eh,00Eh,006h,002h,000h,000h,000h,000h ; Hex #11 + Db 000h,000h,018h,03Ch,07Eh,018h,018h,018h,07Eh,03Ch,018h,000h,000h,000h,000h,000h ; Hex #12 + Db 000h,000h,066h,066h,066h,066h,066h,066h,066h,000h,066h,066h,000h,000h,000h,000h ; Hex #13 + Db 000h,000h,07Fh,0DBh,0DBh,0DBh,07Bh,01Bh,01Bh,01Bh,01Bh,01Bh,000h,000h,000h,000h ; Hex #14 + Db 000h,07Ch,0C6h,060h,038h,06Ch,0C6h,0C6h,06Ch,038h,00Ch,0C6h,07Ch,000h,000h,000h ; Hex #15 + Db 000h,000h,000h,000h,000h,000h,000h,000h,0FEh,0FEh,0FEh,0FEh,000h,000h,000h,000h ; Hex #16 + Db 000h,000h,018h,03Ch,07Eh,018h,018h,018h,07Eh,03Ch,018h,07Eh,000h,000h,000h,000h ; Hex #17 + Db 000h,000h,018h,03Ch,07Eh,018h,018h,018h,018h,018h,018h,018h,000h,000h,000h,000h ; Hex #18 + Db 000h,000h,018h,018h,018h,018h,018h,018h,018h,07Eh,03Ch,018h,000h,000h,000h,000h ; Hex #19 + Db 000h,000h,000h,000h,000h,018h,00Ch,0FEh,00Ch,018h,000h,000h,000h,000h,000h,000h ; Hex #1A + Db 000h,000h,000h,000h,000h,030h,060h,0FEh,060h,030h,000h,000h,000h,000h,000h,000h ; Hex #1B + Db 000h,000h,000h,000h,000h,000h,0C0h,0C0h,0C0h,0FEh,000h,000h,000h,000h,000h,000h ; Hex #1C + Db 000h,000h,000h,000h,000h,028h,06Ch,0FEh,06Ch,028h,000h,000h,000h,000h,000h,000h ; Hex #1D + Db 000h,000h,000h,000h,010h,038h,038h,07Ch,07Ch,0FEh,0FEh,000h,000h,000h,000h,000h ; Hex #1E + Db 000h,000h,000h,000h,0FEh,0FEh,07Ch,07Ch,038h,038h,010h,000h,000h,000h,000h,000h ; Hex #1F + Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #20 + Db 000h,000h,018h,03Ch,03Ch,03Ch,018h,018h,018h,000h,018h,018h,000h,000h,000h,000h ; Hex #21 + Db 000h,066h,066h,066h,024h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #22 + Db 000h,000h,000h,06Ch,06Ch,0FEh,06Ch,06Ch,06Ch,0FEh,06Ch,06Ch,000h,000h,000h,000h ; Hex #23 + Db 018h,018h,07Ch,0C6h,0C2h,0C0h,07Ch,006h,006h,086h,0C6h,07Ch,018h,018h,000h,000h ; Hex #24 + Db 000h,000h,000h,000h,0C2h,0C6h,00Ch,018h,030h,060h,0C6h,086h,000h,000h,000h,000h ; Hex #25 + Db 000h,000h,038h,06Ch,06Ch,038h,076h,0DCh,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #26 + Db 000h,030h,030h,030h,060h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #27 + Db 000h,000h,00Ch,018h,030h,030h,030h,030h,030h,030h,018h,00Ch,000h,000h,000h,000h ; Hex #28 + Db 000h,000h,030h,018h,00Ch,00Ch,00Ch,00Ch,00Ch,00Ch,018h,030h,000h,000h,000h,000h ; Hex #29 + Db 000h,000h,000h,000h,000h,066h,03Ch,0FFh,03Ch,066h,000h,000h,000h,000h,000h,000h ; Hex #2A + Db 000h,000h,000h,000h,000h,018h,018h,07Eh,018h,018h,000h,000h,000h,000h,000h,000h ; Hex #2B + Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,018h,018h,018h,030h,000h,000h,000h ; Hex #2C + Db 000h,000h,000h,000h,000h,000h,000h,0FEh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #2D + Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,018h,018h,000h,000h,000h,000h ; Hex #2E + Db 000h,000h,000h,000h,002h,006h,00Ch,018h,030h,060h,0C0h,080h,000h,000h,000h,000h ; Hex #2F + Db 000h,000h,038h,06Ch,0C6h,0C6h,0D6h,0D6h,0C6h,0C6h,06Ch,038h,000h,000h,000h,000h ; Hex #30 + Db 000h,000h,018h,038h,078h,018h,018h,018h,018h,018h,018h,07Eh,000h,000h,000h,000h ; Hex #31 + Db 000h,000h,07Ch,0C6h,006h,00Ch,018h,030h,060h,0C0h,0C6h,0FEh,000h,000h,000h,000h ; Hex #32 + Db 000h,000h,07Ch,0C6h,006h,006h,03Ch,006h,006h,006h,0C6h,07Ch,000h,000h,000h,000h ; Hex #33 + Db 000h,000h,00Ch,01Ch,03Ch,06Ch,0CCh,0FEh,00Ch,00Ch,00Ch,01Eh,000h,000h,000h,000h ; Hex #34 + Db 000h,000h,0FEh,0C0h,0C0h,0C0h,0FCh,006h,006h,006h,0C6h,07Ch,000h,000h,000h,000h ; Hex #35 + Db 000h,000h,038h,060h,0C0h,0C0h,0FCh,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #36 + Db 000h,000h,0FEh,0C6h,006h,006h,00Ch,018h,030h,030h,030h,030h,000h,000h,000h,000h ; Hex #37 + Db 000h,000h,07Ch,0C6h,0C6h,0C6h,07Ch,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #38 + Db 000h,000h,07Ch,0C6h,0C6h,0C6h,07Eh,006h,006h,006h,00Ch,078h,000h,000h,000h,000h ; Hex #39 + Db 000h,000h,000h,000h,018h,018h,000h,000h,000h,018h,018h,000h,000h,000h,000h,000h ; Hex #3A + Db 000h,000h,000h,000h,018h,018h,000h,000h,000h,018h,018h,030h,000h,000h,000h,000h ; Hex #3B + Db 000h,000h,000h,006h,00Ch,018h,030h,060h,030h,018h,00Ch,006h,000h,000h,000h,000h ; Hex #3C + Db 000h,000h,000h,000h,000h,07Eh,000h,000h,07Eh,000h,000h,000h,000h,000h,000h,000h ; Hex #3D + Db 000h,000h,000h,060h,030h,018h,00Ch,006h,00Ch,018h,030h,060h,000h,000h,000h,000h ; Hex #3E + Db 000h,000h,07Ch,0C6h,0C6h,00Ch,018h,018h,018h,000h,018h,018h,000h,000h,000h,000h ; Hex #3F + Db 000h,000h,000h,07Ch,0C6h,0C6h,0DEh,0DEh,0DEh,0DCh,0C0h,07Ch,000h,000h,000h,000h ; Hex #40 + Db 000h,000h,010h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #41 + Db 000h,000h,0FCh,066h,066h,066h,07Ch,066h,066h,066h,066h,0FCh,000h,000h,000h,000h ; Hex #42 + Db 000h,000h,03Ch,066h,0C2h,0C0h,0C0h,0C0h,0C0h,0C2h,066h,03Ch,000h,000h,000h,000h ; Hex #43 + Db 000h,000h,0F8h,06Ch,066h,066h,066h,066h,066h,066h,06Ch,0F8h,000h,000h,000h,000h ; Hex #44 + Db 000h,000h,0FEh,066h,062h,068h,078h,068h,060h,062h,066h,0FEh,000h,000h,000h,000h ; Hex #45 + Db 000h,000h,0FEh,066h,062h,068h,078h,068h,060h,060h,060h,0F0h,000h,000h,000h,000h ; Hex #46 + Db 000h,000h,03Ch,066h,0C2h,0C0h,0C0h,0DEh,0C6h,0C6h,066h,03Ah,000h,000h,000h,000h ; Hex #47 + Db 000h,000h,0C6h,0C6h,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #48 + Db 000h,000h,03Ch,018h,018h,018h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #49 + Db 000h,000h,01Eh,00Ch,00Ch,00Ch,00Ch,00Ch,0CCh,0CCh,0CCh,078h,000h,000h,000h,000h ; Hex #4A + Db 000h,000h,0E6h,066h,066h,06Ch,078h,078h,06Ch,066h,066h,0E6h,000h,000h,000h,000h ; Hex #4B + Db 000h,000h,0F0h,060h,060h,060h,060h,060h,060h,062h,066h,0FEh,000h,000h,000h,000h ; Hex #4C + Db 000h,000h,0C6h,0EEh,0FEh,0FEh,0D6h,0C6h,0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #4D + Db 000h,000h,0C6h,0E6h,0F6h,0FEh,0DEh,0CEh,0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #4E + Db 000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #4F + Db 000h,000h,0FCh,066h,066h,066h,07Ch,060h,060h,060h,060h,0F0h,000h,000h,000h,000h ; Hex #50 + Db 000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0D6h,0DEh,07Ch,00Ch,00Eh,000h,000h ; Hex #51 + Db 000h,000h,0FCh,066h,066h,066h,07Ch,06Ch,066h,066h,066h,0E6h,000h,000h,000h,000h ; Hex #52 + Db 000h,000h,07Ch,0C6h,0C6h,060h,038h,00Ch,006h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #53 + Db 000h,000h,07Eh,07Eh,05Ah,018h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #54 + Db 000h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #55 + Db 000h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,06Ch,038h,010h,000h,000h,000h,000h ; Hex #56 + Db 000h,000h,0C6h,0C6h,0C6h,0C6h,0D6h,0D6h,0D6h,0FEh,0EEh,06Ch,000h,000h,000h,000h ; Hex #57 + Db 000h,000h,0C6h,0C6h,06Ch,07Ch,038h,038h,07Ch,06Ch,0C6h,0C6h,000h,000h,000h,000h ; Hex #58 + Db 000h,000h,066h,066h,066h,066h,03Ch,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #59 + Db 000h,000h,0FEh,0C6h,086h,00Ch,018h,030h,060h,0C2h,0C6h,0FEh,000h,000h,000h,000h ; Hex #5A + Db 000h,000h,03Ch,030h,030h,030h,030h,030h,030h,030h,030h,03Ch,000h,000h,000h,000h ; Hex #5B + Db 000h,000h,000h,080h,0C0h,0E0h,070h,038h,01Ch,00Eh,006h,002h,000h,000h,000h,000h ; Hex #5C + Db 000h,000h,03Ch,00Ch,00Ch,00Ch,00Ch,00Ch,00Ch,00Ch,00Ch,03Ch,000h,000h,000h,000h ; Hex #5D + Db 010h,038h,06Ch,0C6h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #5E + Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,0FFh,000h,000h ; Hex #5F + Db 000h,030h,018h,00Ch,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #60 + Db 000h,000h,000h,000h,000h,078h,00Ch,07Ch,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #61 + Db 000h,000h,0E0h,060h,060h,078h,06Ch,066h,066h,066h,066h,07Ch,000h,000h,000h,000h ; Hex #62 + Db 000h,000h,000h,000h,000h,07Ch,0C6h,0C0h,0C0h,0C0h,0C6h,07Ch,000h,000h,000h,000h ; Hex #63 + Db 000h,000h,01Ch,00Ch,00Ch,03Ch,06Ch,0CCh,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #64 + Db 000h,000h,000h,000h,000h,07Ch,0C6h,0FEh,0C0h,0C0h,0C6h,07Ch,000h,000h,000h,000h ; Hex #65 + Db 000h,000h,01Ch,036h,032h,030h,078h,030h,030h,030h,030h,078h,000h,000h,000h,000h ; Hex #66 + Db 000h,000h,000h,000h,000h,076h,0CCh,0CCh,0CCh,0CCh,0CCh,07Ch,00Ch,0CCh,078h,000h ; Hex #67 + Db 000h,000h,0E0h,060h,060h,06Ch,076h,066h,066h,066h,066h,0E6h,000h,000h,000h,000h ; Hex #68 + Db 000h,000h,018h,018h,000h,038h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #69 + Db 000h,000h,006h,006h,000h,00Eh,006h,006h,006h,006h,006h,006h,066h,066h,03Ch,000h ; Hex #6A + Db 000h,000h,0E0h,060h,060h,066h,06Ch,078h,078h,06Ch,066h,0E6h,000h,000h,000h,000h ; Hex #6B + Db 000h,000h,038h,018h,018h,018h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #6C + Db 000h,000h,000h,000h,000h,0ECh,0FEh,0D6h,0D6h,0D6h,0D6h,0C6h,000h,000h,000h,000h ; Hex #6D + Db 000h,000h,000h,000h,000h,0DCh,066h,066h,066h,066h,066h,066h,000h,000h,000h,000h ; Hex #6E + Db 000h,000h,000h,000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #6F + Db 000h,000h,000h,000h,000h,0DCh,066h,066h,066h,066h,066h,07Ch,060h,060h,0F0h,000h ; Hex #70 + Db 000h,000h,000h,000h,000h,076h,0CCh,0CCh,0CCh,0CCh,0CCh,07Ch,00Ch,00Ch,01Eh,000h ; Hex #71 + Db 000h,000h,000h,000h,000h,0DCh,076h,066h,060h,060h,060h,0F0h,000h,000h,000h,000h ; Hex #72 + Db 000h,000h,000h,000h,000h,07Ch,0C6h,060h,038h,00Ch,0C6h,07Ch,000h,000h,000h,000h ; Hex #73 + Db 000h,000h,010h,030h,030h,0FCh,030h,030h,030h,030h,036h,01Ch,000h,000h,000h,000h ; Hex #74 + Db 000h,000h,000h,000h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #75 + Db 000h,000h,000h,000h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,06Ch,038h,000h,000h,000h,000h ; Hex #76 + Db 000h,000h,000h,000h,000h,0C6h,0C6h,0D6h,0D6h,0D6h,0FEh,06Ch,000h,000h,000h,000h ; Hex #77 + Db 000h,000h,000h,000h,000h,0C6h,06Ch,038h,038h,038h,06Ch,0C6h,000h,000h,000h,000h ; Hex #78 + Db 000h,000h,000h,000h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Eh,006h,00Ch,0F8h,000h ; Hex #79 + Db 000h,000h,000h,000h,000h,0FEh,0CCh,018h,030h,060h,0C6h,0FEh,000h,000h,000h,000h ; Hex #7A + Db 000h,000h,00Eh,018h,018h,018h,070h,018h,018h,018h,018h,00Eh,000h,000h,000h,000h ; Hex #7B + Db 000h,000h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,000h,000h,000h,000h ; Hex #7C + Db 000h,000h,070h,018h,018h,018h,00Eh,018h,018h,018h,018h,070h,000h,000h,000h,000h ; Hex #7D + Db 000h,076h,0DCh,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #7E + Db 000h,000h,000h,000h,010h,038h,06Ch,0C6h,0C6h,0C6h,0FEh,000h,000h,000h,000h,000h ; Hex #7F + Db 000h,000h,03Ch,066h,0C2h,0C0h,0C0h,0C0h,0C0h,0C2h,066h,03Ch,018h,070h,000h,000h ; Hex #80 + Db 000h,000h,0CCh,000h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #81 + Db 000h,00Ch,018h,030h,000h,07Ch,0C6h,0FEh,0C0h,0C0h,0C6h,07Ch,000h,000h,000h,000h ; Hex #82 + Db 000h,010h,038h,06Ch,000h,078h,00Ch,07Ch,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #83 + Db 000h,000h,0CCh,000h,000h,078h,00Ch,07Ch,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #84 + Db 000h,060h,030h,018h,000h,078h,00Ch,07Ch,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #85 + Db 000h,038h,06Ch,038h,000h,078h,00Ch,07Ch,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #86 + Db 000h,000h,000h,000h,000h,07Ch,0C6h,0C0h,0C0h,0C0h,0C6h,07Ch,018h,070h,000h,000h ; Hex #87 + Db 000h,010h,038h,06Ch,000h,07Ch,0C6h,0FEh,0C0h,0C0h,0C6h,07Ch,000h,000h,000h,000h ; Hex #88 + Db 000h,000h,0C6h,000h,000h,07Ch,0C6h,0FEh,0C0h,0C0h,0C6h,07Ch,000h,000h,000h,000h ; Hex #89 + Db 000h,060h,030h,018h,000h,07Ch,0C6h,0FEh,0C0h,0C0h,0C6h,07Ch,000h,000h,000h,000h ; Hex #8A + Db 000h,000h,066h,000h,000h,038h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #8B + Db 000h,018h,03Ch,066h,000h,038h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #8C + Db 000h,060h,030h,018h,000h,038h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #8D + Db 000h,0C6h,000h,010h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #8E + Db 038h,06Ch,038h,010h,038h,06Ch,0C6h,0FEh,0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #8F + Db 00Ch,018h,000h,0FEh,066h,062h,068h,078h,068h,062h,066h,0FEh,000h,000h,000h,000h ; Hex #90 + Db 000h,000h,000h,000h,000h,0ECh,036h,036h,07Eh,0D8h,0D8h,06Eh,000h,000h,000h,000h ; Hex #91 + Db 000h,000h,03Eh,06Ch,0CCh,0CCh,0FEh,0CCh,0CCh,0CCh,0CCh,0CEh,000h,000h,000h,000h ; Hex #92 + Db 000h,010h,038h,06Ch,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #93 + Db 000h,000h,0C6h,000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #94 + Db 000h,060h,030h,018h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #95 + Db 000h,030h,078h,0CCh,000h,0CCh,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #96 + Db 000h,060h,030h,018h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #97 + Db 000h,000h,0C6h,000h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Eh,006h,00Ch,078h,000h ; Hex #98 + Db 000h,0C6h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #99 + Db 000h,0C6h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #9A + Db 000h,018h,018h,07Ch,0C6h,0C0h,0C0h,0C0h,0C6h,07Ch,018h,018h,000h,000h,000h,000h ; Hex #9B + Db 000h,038h,06Ch,064h,060h,0F0h,060h,060h,060h,060h,0E6h,0FCh,000h,000h,000h,000h ; Hex #9C + Db 000h,000h,066h,066h,03Ch,018h,07Eh,018h,07Eh,018h,018h,018h,000h,000h,000h,000h ; Hex #9D + Db 000h,0F8h,0CCh,0CCh,0F8h,0C4h,0CCh,0DEh,0CCh,0CCh,0CCh,0C6h,000h,000h,000h,000h ; Hex #9E + Db 000h,00Eh,01Bh,018h,018h,018h,07Eh,018h,018h,018h,0D8h,070h,000h,000h,000h,000h ; Hex #9F + Db 000h,018h,030h,060h,000h,078h,00Ch,07Ch,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #A0 + Db 000h,00Ch,018h,030h,000h,038h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #A1 + Db 000h,018h,030h,060h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #A2 + Db 000h,018h,030h,060h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #A3 + Db 000h,000h,076h,0DCh,000h,0DCh,066h,066h,066h,066h,066h,066h,000h,000h,000h,000h ; Hex #A4 + Db 076h,0DCh,000h,0C6h,0E6h,0F6h,0FEh,0DEh,0CEh,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #A5 + Db 000h,000h,03Ch,06Ch,06Ch,03Eh,000h,07Eh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #A6 + Db 000h,000h,038h,06Ch,06Ch,038h,000h,07Ch,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #A7 + Db 000h,000h,030h,030h,000h,030h,030h,060h,0C0h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #A8 + Db 000h,000h,000h,000h,000h,000h,0FEh,0C0h,0C0h,0C0h,0C0h,000h,000h,000h,000h,000h ; Hex #A9 + Db 000h,000h,000h,000h,000h,000h,0FEh,006h,006h,006h,006h,000h,000h,000h,000h,000h ; Hex #AA + Db 000h,060h,0E0h,062h,066h,06Ch,018h,030h,060h,0DCh,086h,00Ch,018h,03Eh,000h,000h ; Hex #AB + Db 000h,060h,0E0h,062h,066h,06Ch,018h,030h,066h,0CEh,09Ah,03Fh,006h,006h,000h,000h ; Hex #AC + Db 000h,000h,018h,018h,000h,018h,018h,018h,03Ch,03Ch,03Ch,018h,000h,000h,000h,000h ; Hex #AD + Db 000h,000h,000h,000h,000h,036h,06Ch,0D8h,06Ch,036h,000h,000h,000h,000h,000h,000h ; Hex #AE + Db 000h,000h,000h,000h,000h,0D8h,06Ch,036h,06Ch,0D8h,000h,000h,000h,000h,000h,000h ; Hex #AF + Db 011h,044h,011h,044h,011h,044h,011h,044h,011h,044h,011h,044h,011h,044h,011h,044h ; Hex #B0 + Db 055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh ; Hex #B1 + Db 0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h ; Hex #B2 + Db 018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #B3 + Db 018h,018h,018h,018h,018h,018h,018h,0F8h,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #B4 + Db 018h,018h,018h,018h,018h,0F8h,018h,0F8h,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #B5 + Db 036h,036h,036h,036h,036h,036h,036h,0F6h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #B6 + Db 000h,000h,000h,000h,000h,000h,000h,0FEh,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #B7 + Db 000h,000h,000h,000h,000h,0F8h,018h,0F8h,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #B8 + Db 036h,036h,036h,036h,036h,0F6h,006h,0F6h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #B9 + Db 036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #BA + Db 000h,000h,000h,000h,000h,0FEh,006h,0F6h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #BB + Db 036h,036h,036h,036h,036h,0F6h,006h,0FEh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #BC + Db 036h,036h,036h,036h,036h,036h,036h,0FEh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #BD + Db 018h,018h,018h,018h,018h,0F8h,018h,0F8h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #BE + Db 000h,000h,000h,000h,000h,000h,000h,0F8h,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #BF + Db 018h,018h,018h,018h,018h,018h,018h,01Fh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #C0 + Db 018h,018h,018h,018h,018h,018h,018h,0FFh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #C1 + Db 000h,000h,000h,000h,000h,000h,000h,0FFh,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #C2 + Db 018h,018h,018h,018h,018h,018h,018h,01Fh,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #C3 + Db 000h,000h,000h,000h,000h,000h,000h,0FFh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #C4 + Db 018h,018h,018h,018h,018h,018h,018h,0FFh,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #C5 + Db 018h,018h,018h,018h,018h,01Fh,018h,01Fh,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #C6 + Db 036h,036h,036h,036h,036h,036h,036h,037h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #C7 + Db 036h,036h,036h,036h,036h,037h,030h,03Fh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #C8 + Db 000h,000h,000h,000h,000h,03Fh,030h,037h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #C9 + Db 036h,036h,036h,036h,036h,0F7h,000h,0FFh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #CA + Db 000h,000h,000h,000h,000h,0FFh,000h,0F7h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #CB + Db 036h,036h,036h,036h,036h,037h,030h,037h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #CC + Db 000h,000h,000h,000h,000h,0FFh,000h,0FFh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #CD + Db 036h,036h,036h,036h,036h,0F7h,000h,0F7h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #CE + Db 018h,018h,018h,018h,018h,0FFh,000h,0FFh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #CF + Db 036h,036h,036h,036h,036h,036h,036h,0FFh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #D0 + Db 000h,000h,000h,000h,000h,0FFh,000h,0FFh,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #D1 + Db 000h,000h,000h,000h,000h,000h,000h,0FFh,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #D2 + Db 036h,036h,036h,036h,036h,036h,036h,03Fh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #D3 + Db 018h,018h,018h,018h,018h,01Fh,018h,01Fh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #D4 + Db 000h,000h,000h,000h,000h,01Fh,018h,01Fh,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #D5 + Db 000h,000h,000h,000h,000h,000h,000h,03Fh,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #D6 + Db 036h,036h,036h,036h,036h,036h,036h,0FFh,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #D7 + Db 018h,018h,018h,018h,018h,0FFh,018h,0FFh,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #D8 + Db 018h,018h,018h,018h,018h,018h,018h,0F8h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #D9 + Db 000h,000h,000h,000h,000h,000h,000h,01Fh,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #DA + Db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh ; Hex #DB + Db 000h,000h,000h,000h,000h,000h,000h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh ; Hex #DC + Db 0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h ; Hex #DD + Db 00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh ; Hex #DE + Db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #DF + Db 000h,000h,000h,000h,000h,076h,0DCh,0D8h,0D8h,0D8h,0DCh,076h,000h,000h,000h,000h ; Hex #E0 + Db 000h,000h,078h,0CCh,0CCh,0CCh,0D8h,0CCh,0C6h,0C6h,0C6h,0CCh,000h,000h,000h,000h ; Hex #E1 + Db 000h,000h,0FEh,0C6h,0C6h,0C0h,0C0h,0C0h,0C0h,0C0h,0C0h,0C0h,000h,000h,000h,000h ; Hex #E2 + Db 000h,000h,000h,000h,000h,0FEh,06Ch,06Ch,06Ch,06Ch,06Ch,06Ch,000h,000h,000h,000h ; Hex #E3 + Db 000h,000h,0FEh,0C6h,060h,030h,018h,018h,030h,060h,0C6h,0FEh,000h,000h,000h,000h ; Hex #E4 + Db 000h,000h,000h,000h,000h,07Eh,0D8h,0D8h,0D8h,0D8h,0D8h,070h,000h,000h,000h,000h ; Hex #E5 + Db 000h,000h,000h,000h,000h,066h,066h,066h,066h,066h,066h,07Ch,060h,060h,0C0h,000h ; Hex #E6 + Db 000h,000h,000h,000h,076h,0DCh,018h,018h,018h,018h,018h,018h,000h,000h,000h,000h ; Hex #E7 + Db 000h,000h,07Eh,018h,03Ch,066h,066h,066h,066h,03Ch,018h,07Eh,000h,000h,000h,000h ; Hex #E8 + Db 000h,000h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,06Ch,038h,000h,000h,000h,000h ; Hex #E9 + Db 000h,000h,038h,06Ch,0C6h,0C6h,0C6h,06Ch,06Ch,06Ch,06Ch,0EEh,000h,000h,000h,000h ; Hex #EA + Db 000h,000h,01Eh,030h,018h,00Ch,03Eh,066h,066h,066h,066h,03Ch,000h,000h,000h,000h ; Hex #EB + Db 000h,000h,000h,000h,000h,07Eh,0DBh,0DBh,0DBh,07Eh,000h,000h,000h,000h,000h,000h ; Hex #EC + Db 000h,000h,000h,003h,006h,07Eh,0DBh,0DBh,0F3h,07Eh,060h,0C0h,000h,000h,000h,000h ; Hex #ED + Db 000h,000h,01Ch,030h,060h,060h,07Ch,060h,060h,060h,030h,01Ch,000h,000h,000h,000h ; Hex #EE + Db 000h,000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #EF + Db 000h,000h,000h,000h,0FEh,000h,000h,0FEh,000h,000h,0FEh,000h,000h,000h,000h,000h ; Hex #F0 + Db 000h,000h,000h,000h,018h,018h,07Eh,018h,018h,000h,000h,07Eh,000h,000h,000h,000h ; Hex #F1 + Db 000h,000h,000h,030h,018h,00Ch,006h,00Ch,018h,030h,000h,07Eh,000h,000h,000h,000h ; Hex #F2 + Db 000h,000h,000h,00Ch,018h,030h,060h,030h,018h,00Ch,000h,07Eh,000h,000h,000h,000h ; Hex #F3 + Db 000h,000h,00Eh,01Bh,01Bh,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #F4 + Db 018h,018h,018h,018h,018h,018h,018h,018h,018h,0D8h,0D8h,0D8h,070h,000h,000h,000h ; Hex #F5 + Db 000h,000h,000h,000h,000h,018h,000h,07Eh,000h,018h,000h,000h,000h,000h,000h,000h ; Hex #F6 + Db 000h,000h,000h,000h,000h,076h,0DCh,000h,076h,0DCh,000h,000h,000h,000h,000h,000h ; Hex #F7 + Db 000h,038h,06Ch,06Ch,038h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #F8 + Db 000h,000h,000h,000h,000h,000h,000h,018h,018h,000h,000h,000h,000h,000h,000h,000h ; Hex #F9 + Db 000h,000h,000h,000h,000h,000h,000h,018h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #FA + Db 000h,00Fh,00Ch,00Ch,00Ch,00Ch,00Ch,0ECh,06Ch,06Ch,03Ch,01Ch,000h,000h,000h,000h ; Hex #FB + Db 000h,06Ch,036h,036h,036h,036h,036h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #FC + Db 000h,03Ch,066h,00Ch,018h,032h,07Eh,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #FD + Db 000h,000h,000h,000h,07Eh,07Eh,07Eh,07Eh,07Eh,07Eh,07Eh,000h,000h,000h,000h,000h ; Hex #FE + 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 @@ +;*************************************************** +; CHARACTER FONT FILE +; Source Assembler File +; +; CODE PAGE: 437 +; FONT RESOLUTION: 8 x 8 +; +; DATE CREATED:05-28-1987 +; +; +; Output file from: MULTIFON, Version 1A +; +;*************************************************** + Db 000h,000h,000h,000h,000h,000h,000h,000h ; Hex #0 + Db 07Eh,081h,0A5h,081h,0BDh,099h,081h,07Eh ; Hex #1 + Db 07Eh,0FFh,0DBh,0FFh,0C3h,0E7h,0FFh,07Eh ; Hex #2 + Db 06Ch,0FEh,0FEh,0FEh,07Ch,038h,010h,000h ; Hex #3 + Db 010h,038h,07Ch,0FEh,07Ch,038h,010h,000h ; Hex #4 + Db 038h,07Ch,038h,0FEh,0FEh,0D6h,010h,038h ; Hex #5 + Db 010h,038h,07Ch,0FEh,0FEh,07Ch,010h,038h ; Hex #6 + Db 000h,000h,018h,03Ch,03Ch,018h,000h,000h ; Hex #7 + Db 0FFh,0FFh,0E7h,0C3h,0C3h,0E7h,0FFh,0FFh ; Hex #8 + Db 000h,03Ch,066h,042h,042h,066h,03Ch,000h ; Hex #9 + Db 0FFh,0C3h,099h,0BDh,0BDh,099h,0C3h,0FFh ; Hex #A + Db 00Fh,007h,00Fh,07Dh,0CCh,0CCh,0CCh,078h ; Hex #B + Db 03Ch,066h,066h,066h,03Ch,018h,07Eh,018h ; Hex #C + Db 03Fh,033h,03Fh,030h,030h,070h,0F0h,0E0h ; Hex #D + Db 07Fh,063h,07Fh,063h,063h,067h,0E6h,0C0h ; Hex #E + Db 018h,0DBh,03Ch,0E7h,0E7h,03Ch,0DBh,018h ; Hex #F + Db 080h,0E0h,0F8h,0FEh,0F8h,0E0h,080h,000h ; Hex #10 + Db 002h,00Eh,03Eh,0FEh,03Eh,00Eh,002h,000h ; Hex #11 + Db 018h,03Ch,07Eh,018h,018h,07Eh,03Ch,018h ; Hex #12 + Db 066h,066h,066h,066h,066h,000h,066h,000h ; Hex #13 + Db 07Fh,0DBh,0DBh,07Bh,01Bh,01Bh,01Bh,000h ; Hex #14 + Db 03Eh,061h,03Ch,066h,066h,03Ch,086h,07Ch ; Hex #15 + Db 000h,000h,000h,000h,07Eh,07Eh,07Eh,000h ; Hex #16 + Db 018h,03Ch,07Eh,018h,07Eh,03Ch,018h,0FFh ; Hex #17 + Db 018h,03Ch,07Eh,018h,018h,018h,018h,000h ; Hex #18 + Db 018h,018h,018h,018h,07Eh,03Ch,018h,000h ; Hex #19 + Db 000h,018h,00Ch,0FEh,00Ch,018h,000h,000h ; Hex #1A + Db 000h,030h,060h,0FEh,060h,030h,000h,000h ; Hex #1B + Db 000h,000h,0C0h,0C0h,0C0h,0FEh,000h,000h ; Hex #1C + Db 000h,024h,066h,0FFh,066h,024h,000h,000h ; Hex #1D + Db 000h,018h,03Ch,07Eh,0FFh,0FFh,000h,000h ; Hex #1E + Db 000h,0FFh,0FFh,07Eh,03Ch,018h,000h,000h ; Hex #1F + Db 000h,000h,000h,000h,000h,000h,000h,000h ; Hex #20 + Db 018h,03Ch,03Ch,018h,018h,000h,018h,000h ; Hex #21 + Db 066h,066h,024h,000h,000h,000h,000h,000h ; Hex #22 + Db 06Ch,06Ch,0FEh,06Ch,0FEh,06Ch,06Ch,000h ; Hex #23 + Db 018h,03Eh,060h,03Ch,006h,07Ch,018h,000h ; Hex #24 + Db 000h,0C6h,0CCh,018h,030h,066h,0C6h,000h ; Hex #25 + Db 038h,06Ch,038h,076h,0DCh,0CCh,076h,000h ; Hex #26 + Db 018h,018h,030h,000h,000h,000h,000h,000h ; Hex #27 + Db 00Ch,018h,030h,030h,030h,018h,00Ch,000h ; Hex #28 + Db 030h,018h,00Ch,00Ch,00Ch,018h,030h,000h ; Hex #29 + Db 000h,066h,03Ch,0FFh,03Ch,066h,000h,000h ; Hex #2A + Db 000h,018h,018h,07Eh,018h,018h,000h,000h ; Hex #2B + Db 000h,000h,000h,000h,000h,018h,018h,030h ; Hex #2C + Db 000h,000h,000h,07Eh,000h,000h,000h,000h ; Hex #2D + Db 000h,000h,000h,000h,000h,018h,018h,000h ; Hex #2E + Db 006h,00Ch,018h,030h,060h,0C0h,080h,000h ; Hex #2F + Db 038h,06Ch,0C6h,0D6h,0C6h,06Ch,038h,000h ; Hex #30 + Db 018h,038h,018h,018h,018h,018h,07Eh,000h ; Hex #31 + Db 07Ch,0C6h,006h,01Ch,030h,066h,0FEh,000h ; Hex #32 + Db 07Ch,0C6h,006h,03Ch,006h,0C6h,07Ch,000h ; Hex #33 + Db 01Ch,03Ch,06Ch,0CCh,0FEh,00Ch,01Eh,000h ; Hex #34 + Db 0FEh,0C0h,0C0h,0FCh,006h,0C6h,07Ch,000h ; Hex #35 + Db 038h,060h,0C0h,0FCh,0C6h,0C6h,07Ch,000h ; Hex #36 + Db 0FEh,0C6h,00Ch,018h,030h,030h,030h,000h ; Hex #37 + Db 07Ch,0C6h,0C6h,07Ch,0C6h,0C6h,07Ch,000h ; Hex #38 + Db 07Ch,0C6h,0C6h,07Eh,006h,00Ch,078h,000h ; Hex #39 + Db 000h,018h,018h,000h,000h,018h,018h,000h ; Hex #3A + Db 000h,018h,018h,000h,000h,018h,018h,030h ; Hex #3B + Db 006h,00Ch,018h,030h,018h,00Ch,006h,000h ; Hex #3C + Db 000h,000h,07Eh,000h,000h,07Eh,000h,000h ; Hex #3D + Db 060h,030h,018h,00Ch,018h,030h,060h,000h ; Hex #3E + Db 07Ch,0C6h,00Ch,018h,018h,000h,018h,000h ; Hex #3F + Db 07Ch,0C6h,0DEh,0DEh,0DEh,0C0h,078h,000h ; Hex #40 + Db 038h,06Ch,0C6h,0FEh,0C6h,0C6h,0C6h,000h ; Hex #41 + Db 0FCh,066h,066h,07Ch,066h,066h,0FCh,000h ; Hex #42 + Db 03Ch,066h,0C0h,0C0h,0C0h,066h,03Ch,000h ; Hex #43 + Db 0F8h,06Ch,066h,066h,066h,06Ch,0F8h,000h ; Hex #44 + Db 0FEh,062h,068h,078h,068h,062h,0FEh,000h ; Hex #45 + Db 0FEh,062h,068h,078h,068h,060h,0F0h,000h ; Hex #46 + Db 03Ch,066h,0C0h,0C0h,0CEh,066h,03Ah,000h ; Hex #47 + Db 0C6h,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,000h ; Hex #48 + Db 03Ch,018h,018h,018h,018h,018h,03Ch,000h ; Hex #49 + Db 01Eh,00Ch,00Ch,00Ch,0CCh,0CCh,078h,000h ; Hex #4A + Db 0E6h,066h,06Ch,078h,06Ch,066h,0E6h,000h ; Hex #4B + Db 0F0h,060h,060h,060h,062h,066h,0FEh,000h ; Hex #4C + Db 0C6h,0EEh,0FEh,0FEh,0D6h,0C6h,0C6h,000h ; Hex #4D + Db 0C6h,0E6h,0F6h,0DEh,0CEh,0C6h,0C6h,000h ; Hex #4E + Db 07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h ; Hex #4F + Db 0FCh,066h,066h,07Ch,060h,060h,0F0h,000h ; Hex #50 + Db 07Ch,0C6h,0C6h,0C6h,0C6h,0CEh,07Ch,00Eh ; Hex #51 + Db 0FCh,066h,066h,07Ch,06Ch,066h,0E6h,000h ; Hex #52 + Db 03Ch,066h,030h,018h,00Ch,066h,03Ch,000h ; Hex #53 + Db 07Eh,07Eh,05Ah,018h,018h,018h,03Ch,000h ; Hex #54 + Db 0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h ; Hex #55 + Db 0C6h,0C6h,0C6h,0C6h,0C6h,06Ch,038h,000h ; Hex #56 + Db 0C6h,0C6h,0C6h,0D6h,0D6h,0FEh,06Ch,000h ; Hex #57 + Db 0C6h,0C6h,06Ch,038h,06Ch,0C6h,0C6h,000h ; Hex #58 + Db 066h,066h,066h,03Ch,018h,018h,03Ch,000h ; Hex #59 + Db 0FEh,0C6h,08Ch,018h,032h,066h,0FEh,000h ; Hex #5A + Db 03Ch,030h,030h,030h,030h,030h,03Ch,000h ; Hex #5B + Db 0C0h,060h,030h,018h,00Ch,006h,002h,000h ; Hex #5C + Db 03Ch,00Ch,00Ch,00Ch,00Ch,00Ch,03Ch,000h ; Hex #5D + Db 010h,038h,06Ch,0C6h,000h,000h,000h,000h ; Hex #5E + Db 000h,000h,000h,000h,000h,000h,000h,0FFh ; Hex #5F + Db 030h,018h,00Ch,000h,000h,000h,000h,000h ; Hex #60 + Db 000h,000h,078h,00Ch,07Ch,0CCh,076h,000h ; Hex #61 + Db 0E0h,060h,07Ch,066h,066h,066h,0DCh,000h ; Hex #62 + Db 000h,000h,07Ch,0C6h,0C0h,0C6h,07Ch,000h ; Hex #63 + Db 01Ch,00Ch,07Ch,0CCh,0CCh,0CCh,076h,000h ; Hex #64 + Db 000h,000h,07Ch,0C6h,0FEh,0C0h,07Ch,000h ; Hex #65 + Db 03Ch,066h,060h,0F8h,060h,060h,0F0h,000h ; Hex #66 + Db 000h,000h,076h,0CCh,0CCh,07Ch,00Ch,0F8h ; Hex #67 + Db 0E0h,060h,06Ch,076h,066h,066h,0E6h,000h ; Hex #68 + Db 018h,000h,038h,018h,018h,018h,03Ch,000h ; Hex #69 + Db 006h,000h,006h,006h,006h,066h,066h,03Ch ; Hex #6A + Db 0E0h,060h,066h,06Ch,078h,06Ch,0E6h,000h ; Hex #6B + Db 038h,018h,018h,018h,018h,018h,03Ch,000h ; Hex #6C + Db 000h,000h,0ECh,0FEh,0D6h,0D6h,0D6h,000h ; Hex #6D + Db 000h,000h,0DCh,066h,066h,066h,066h,000h ; Hex #6E + Db 000h,000h,07Ch,0C6h,0C6h,0C6h,07Ch,000h ; Hex #6F + Db 000h,000h,0DCh,066h,066h,07Ch,060h,0F0h ; Hex #70 + Db 000h,000h,076h,0CCh,0CCh,07Ch,00Ch,01Eh ; Hex #71 + Db 000h,000h,0DCh,076h,060h,060h,0F0h,000h ; Hex #72 + Db 000h,000h,07Eh,0C0h,07Ch,006h,0FCh,000h ; Hex #73 + Db 030h,030h,0FCh,030h,030h,036h,01Ch,000h ; Hex #74 + Db 000h,000h,0CCh,0CCh,0CCh,0CCh,076h,000h ; Hex #75 + Db 000h,000h,0C6h,0C6h,0C6h,06Ch,038h,000h ; Hex #76 + Db 000h,000h,0C6h,0D6h,0D6h,0FEh,06Ch,000h ; Hex #77 + Db 000h,000h,0C6h,06Ch,038h,06Ch,0C6h,000h ; Hex #78 + Db 000h,000h,0C6h,0C6h,0C6h,07Eh,006h,0FCh ; Hex #79 + Db 000h,000h,07Eh,04Ch,018h,032h,07Eh,000h ; Hex #7A + Db 00Eh,018h,018h,070h,018h,018h,00Eh,000h ; Hex #7B + Db 018h,018h,018h,018h,018h,018h,018h,000h ; Hex #7C + Db 070h,018h,018h,00Eh,018h,018h,070h,000h ; Hex #7D + Db 076h,0DCh,000h,000h,000h,000h,000h,000h ; Hex #7E + Db 000h,010h,038h,06Ch,0C6h,0C6h,0FEh,000h ; Hex #7F + Db 07Ch,0C6h,0C0h,0C0h,0C6h,07Ch,00Ch,078h ; Hex #80 + Db 0CCh,000h,0CCh,0CCh,0CCh,0CCh,076h,000h ; Hex #81 + Db 00Ch,018h,07Ch,0C6h,0FEh,0C0h,07Ch,000h ; Hex #82 + Db 07Ch,082h,078h,00Ch,07Ch,0CCh,076h,000h ; Hex #83 + Db 0C6h,000h,078h,00Ch,07Ch,0CCh,076h,000h ; Hex #84 + Db 030h,018h,078h,00Ch,07Ch,0CCh,076h,000h ; Hex #85 + Db 030h,030h,078h,00Ch,07Ch,0CCh,076h,000h ; Hex #86 + Db 000h,000h,07Eh,0C0h,0C0h,07Eh,00Ch,038h ; Hex #87 + Db 07Ch,082h,07Ch,0C6h,0FEh,0C0h,07Ch,000h ; Hex #88 + Db 0C6h,000h,07Ch,0C6h,0FEh,0C0h,07Ch,000h ; Hex #89 + Db 030h,018h,07Ch,0C6h,0FEh,0C0h,07Ch,000h ; Hex #8A + Db 066h,000h,038h,018h,018h,018h,03Ch,000h ; Hex #8B + Db 07Ch,082h,038h,018h,018h,018h,03Ch,000h ; Hex #8C + Db 030h,018h,000h,038h,018h,018h,03Ch,000h ; Hex #8D + Db 0C6h,038h,06Ch,0C6h,0FEh,0C6h,0C6h,000h ; Hex #8E + Db 038h,06Ch,07Ch,0C6h,0FEh,0C6h,0C6h,000h ; Hex #8F + Db 018h,030h,0FEh,0C0h,0F8h,0C0h,0FEh,000h ; Hex #90 + Db 000h,000h,07Eh,018h,07Eh,0D8h,07Eh,000h ; Hex #91 + Db 03Eh,06Ch,0CCh,0FEh,0CCh,0CCh,0CEh,000h ; Hex #92 + Db 07Ch,082h,07Ch,0C6h,0C6h,0C6h,07Ch,000h ; Hex #93 + Db 0C6h,000h,07Ch,0C6h,0C6h,0C6h,07Ch,000h ; Hex #94 + Db 030h,018h,07Ch,0C6h,0C6h,0C6h,07Ch,000h ; Hex #95 + Db 078h,084h,000h,0CCh,0CCh,0CCh,076h,000h ; Hex #96 + Db 060h,030h,0CCh,0CCh,0CCh,0CCh,076h,000h ; Hex #97 + Db 0C6h,000h,0C6h,0C6h,0C6h,07Eh,006h,0FCh ; Hex #98 + Db 0C6h,038h,06Ch,0C6h,0C6h,06Ch,038h,000h ; Hex #99 + Db 0C6h,000h,0C6h,0C6h,0C6h,0C6h,07Ch,000h ; Hex #9A + Db 018h,018h,07Eh,0C0h,0C0h,07Eh,018h,018h ; Hex #9B + Db 038h,06Ch,064h,0F0h,060h,066h,0FCh,000h ; Hex #9C + Db 066h,066h,03Ch,07Eh,018h,07Eh,018h,018h ; Hex #9D + Db 0F8h,0CCh,0CCh,0FAh,0C6h,0CFh,0C6h,0C7h ; Hex #9E + Db 00Eh,01Bh,018h,03Ch,018h,0D8h,070h,000h ; Hex #9F + Db 018h,030h,078h,00Ch,07Ch,0CCh,076h,000h ; Hex #A0 + Db 00Ch,018h,000h,038h,018h,018h,03Ch,000h ; Hex #A1 + Db 00Ch,018h,07Ch,0C6h,0C6h,0C6h,07Ch,000h ; Hex #A2 + Db 018h,030h,0CCh,0CCh,0CCh,0CCh,076h,000h ; Hex #A3 + Db 076h,0DCh,000h,0DCh,066h,066h,066h,000h ; Hex #A4 + Db 076h,0DCh,000h,0E6h,0F6h,0DEh,0CEh,000h ; Hex #A5 + Db 03Ch,06Ch,06Ch,03Eh,000h,07Eh,000h,000h ; Hex #A6 + Db 038h,06Ch,06Ch,038h,000h,07Ch,000h,000h ; Hex #A7 + Db 018h,000h,018h,018h,030h,063h,03Eh,000h ; Hex #A8 + Db 000h,000h,000h,0FEh,0C0h,0C0h,000h,000h ; Hex #A9 + Db 000h,000h,000h,0FEh,006h,006h,000h,000h ; Hex #AA + Db 063h,0E6h,06Ch,07Eh,033h,066h,0CCh,00Fh ; Hex #AB + Db 063h,0E6h,06Ch,07Ah,036h,06Ah,0DFh,006h ; Hex #AC + Db 018h,000h,018h,018h,03Ch,03Ch,018h,000h ; Hex #AD + Db 000h,033h,066h,0CCh,066h,033h,000h,000h ; Hex #AE + Db 000h,0CCh,066h,033h,066h,0CCh,000h,000h ; Hex #AF + Db 022h,088h,022h,088h,022h,088h,022h,088h ; Hex #B0 + Db 055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh ; Hex #B1 + Db 077h,0DDh,077h,0DDh,077h,0DDh,077h,0DDh ; Hex #B2 + Db 018h,018h,018h,018h,018h,018h,018h,018h ; Hex #B3 + Db 018h,018h,018h,018h,0F8h,018h,018h,018h ; Hex #B4 + Db 018h,018h,0F8h,018h,0F8h,018h,018h,018h ; Hex #B5 + Db 036h,036h,036h,036h,0F6h,036h,036h,036h ; Hex #B6 + Db 000h,000h,000h,000h,0FEh,036h,036h,036h ; Hex #B7 + Db 000h,000h,0F8h,018h,0F8h,018h,018h,018h ; Hex #B8 + Db 036h,036h,0F6h,006h,0F6h,036h,036h,036h ; Hex #B9 + Db 036h,036h,036h,036h,036h,036h,036h,036h ; Hex #BA + Db 000h,000h,0FEh,006h,0F6h,036h,036h,036h ; Hex #BB + Db 036h,036h,0F6h,006h,0FEh,000h,000h,000h ; Hex #BC + Db 036h,036h,036h,036h,0FEh,000h,000h,000h ; Hex #BD + Db 018h,018h,0F8h,018h,0F8h,000h,000h,000h ; Hex #BE + Db 000h,000h,000h,000h,0F8h,018h,018h,018h ; Hex #BF + Db 018h,018h,018h,018h,01Fh,000h,000h,000h ; Hex #C0 + Db 018h,018h,018h,018h,0FFh,000h,000h,000h ; Hex #C1 + Db 000h,000h,000h,000h,0FFh,018h,018h,018h ; Hex #C2 + Db 018h,018h,018h,018h,01Fh,018h,018h,018h ; Hex #C3 + Db 000h,000h,000h,000h,0FFh,000h,000h,000h ; Hex #C4 + Db 018h,018h,018h,018h,0FFh,018h,018h,018h ; Hex #C5 + Db 018h,018h,01Fh,018h,01Fh,018h,018h,018h ; Hex #C6 + Db 036h,036h,036h,036h,037h,036h,036h,036h ; Hex #C7 + Db 036h,036h,037h,030h,03Fh,000h,000h,000h ; Hex #C8 + Db 000h,000h,03Fh,030h,037h,036h,036h,036h ; Hex #C9 + Db 036h,036h,0F7h,000h,0FFh,000h,000h,000h ; Hex #CA + Db 000h,000h,0FFh,000h,0F7h,036h,036h,036h ; Hex #CB + Db 036h,036h,037h,030h,037h,036h,036h,036h ; Hex #CC + Db 000h,000h,0FFh,000h,0FFh,000h,000h,000h ; Hex #CD + Db 036h,036h,0F7h,000h,0F7h,036h,036h,036h ; Hex #CE + Db 018h,018h,0FFh,000h,0FFh,000h,000h,000h ; Hex #CF + Db 036h,036h,036h,036h,0FFh,000h,000h,000h ; Hex #D0 + Db 000h,000h,0FFh,000h,0FFh,018h,018h,018h ; Hex #D1 + Db 000h,000h,000h,000h,0FFh,036h,036h,036h ; Hex #D2 + Db 036h,036h,036h,036h,03Fh,000h,000h,000h ; Hex #D3 + Db 018h,018h,01Fh,018h,01Fh,000h,000h,000h ; Hex #D4 + Db 000h,000h,01Fh,018h,01Fh,018h,018h,018h ; Hex #D5 + Db 000h,000h,000h,000h,03Fh,036h,036h,036h ; Hex #D6 + Db 036h,036h,036h,036h,0FFh,036h,036h,036h ; Hex #D7 + Db 018h,018h,0FFh,018h,0FFh,018h,018h,018h ; Hex #D8 + Db 018h,018h,018h,018h,0F8h,000h,000h,000h ; Hex #D9 + Db 000h,000h,000h,000h,01Fh,018h,018h,018h ; Hex #DA + Db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh ; Hex #DB + Db 000h,000h,000h,000h,0FFh,0FFh,0FFh,0FFh ; Hex #DC + Db 0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h ; Hex #DD + Db 00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh ; Hex #DE + Db 0FFh,0FFh,0FFh,0FFh,000h,000h,000h,000h ; Hex #DF + Db 000h,000h,076h,0DCh,0C8h,0DCh,076h,000h ; Hex #E0 + Db 078h,0CCh,0CCh,0D8h,0CCh,0C6h,0CCh,000h ; Hex #E1 + Db 0FEh,0C6h,0C0h,0C0h,0C0h,0C0h,0C0h,000h ; Hex #E2 + Db 000h,000h,0FEh,06Ch,06Ch,06Ch,06Ch,000h ; Hex #E3 + Db 0FEh,0C6h,060h,030h,060h,0C6h,0FEh,000h ; Hex #E4 + Db 000h,000h,07Eh,0D8h,0D8h,0D8h,070h,000h ; Hex #E5 + Db 000h,000h,066h,066h,066h,066h,07Ch,0C0h ; Hex #E6 + Db 000h,076h,0DCh,018h,018h,018h,018h,000h ; Hex #E7 + Db 07Eh,018h,03Ch,066h,066h,03Ch,018h,07Eh ; Hex #E8 + Db 038h,06Ch,0C6h,0FEh,0C6h,06Ch,038h,000h ; Hex #E9 + Db 038h,06Ch,0C6h,0C6h,06Ch,06Ch,0EEh,000h ; Hex #EA + Db 00Eh,018h,00Ch,03Eh,066h,066h,03Ch,000h ; Hex #EB + Db 000h,000h,07Eh,0DBh,0DBh,07Eh,000h,000h ; Hex #EC + Db 006h,00Ch,07Eh,0DBh,0DBh,07Eh,060h,0C0h ; Hex #ED + Db 01Eh,030h,060h,07Eh,060h,030h,01Eh,000h ; Hex #EE + Db 000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,000h ; Hex #EF + Db 000h,0FEh,000h,0FEh,000h,0FEh,000h,000h ; Hex #F0 + Db 018h,018h,07Eh,018h,018h,000h,07Eh,000h ; Hex #F1 + Db 030h,018h,00Ch,018h,030h,000h,07Eh,000h ; Hex #F2 + Db 00Ch,018h,030h,018h,00Ch,000h,07Eh,000h ; Hex #F3 + Db 00Eh,01Bh,01Bh,018h,018h,018h,018h,018h ; Hex #F4 + Db 018h,018h,018h,018h,018h,0D8h,0D8h,070h ; Hex #F5 + Db 000h,018h,000h,07Eh,000h,018h,000h,000h ; Hex #F6 + Db 000h,076h,0DCh,000h,076h,0DCh,000h,000h ; Hex #F7 + Db 038h,06Ch,06Ch,038h,000h,000h,000h,000h ; Hex #F8 + Db 000h,000h,000h,018h,018h,000h,000h,000h ; Hex #F9 + Db 000h,000h,000h,018h,000h,000h,000h,000h ; Hex #FA + Db 00Fh,00Ch,00Ch,00Ch,0ECh,06Ch,03Ch,01Ch ; Hex #FB + Db 06Ch,036h,036h,036h,036h,000h,000h,000h ; Hex #FC + Db 078h,00Ch,018h,030h,07Ch,000h,000h,000h ; Hex #FD + Db 000h,000h,03Ch,03Ch,03Ch,03Ch,000h,000h ; Hex #FE + Db 000h,000h,000h,000h,000h,000h,000h,000h ; Hex #FF + 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 @@ +CODE SEGMENT BYTE PUBLIC 'CODE' + ASSUME CS:CODE,DS:CODE + +IF1 + %OUT EGA.CPI creation file + %OUT . + %OUT CP SRC files: + %OUT . + %OUT . CODE PAGE: 437 +ENDIF + +EGA437: DW LEN_437 ; SIZE OF ENTRY HEADER + DW POST_EGA437,0 ; POINTER TO NEXT HEADER + DW 1 ; DEVICE TYPE + DB "EGA " ; DEVICE SUBTYPE ID + DW 437 ; CODE PAGE ID + DW 3 DUP(0) ; RESERVED + DW OFFSET DATA437,0 ; POINTER TO FONTS +LEN_437 EQU ($-EGA437) ; + ; +DATA437:DW 1 ; CART/NON-CART + DW 3 ; # OF FONTS + DW LEN_D437 ; LENGTH OF DATA +D437: ; + DB 16,8 ; CHARACTER BOX SIZE + DB 0,0 ; ASPECT RATIO (UNUSED) + DW 256 ; NUMBER OF CHARACTERS + ; + INCLUDE 437-8X16.ASM ; + ; + DB 14,8 ; CHARACTER BOX SIZE + DB 0,0 ; ASPECT RATIO (UNUSED) + DW 256 ; NUMBER OF CHARACTERS + ; + INCLUDE 437-8X14.ASM ; + ; + DB 8,8 ; CHARACTER BOX SIZE + DB 0,0 ; ASPECT RATIO (UNUSED) + DW 256 ; NUMBER OF CHARACTERS + ; + INCLUDE 437-8X8.ASM ; + ; +LEN_D437 EQU ($-D437) ; + ; +POST_EGA437 EQU $ ; + ; +CODE ENDS ; + END ; + \ 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 @@ +;*************************************************** +; CHARACTER FONT FILE +; Source Assembler File +; +; CODE PAGE: 850 +; FONT RESOLUTION: 8 x 14 +; +; DATE CREATED:05-28-1987 +; +; +; Output file from: MULTIFON, Version 1A +; +;*************************************************** + Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #0 + Db 000h,000h,000h,07Eh,081h,0A5h,081h,081h,0BDh,099h,081h,07Eh,000h,000h ; Hex #1 + Db 000h,000h,000h,07Eh,0FFh,0DBh,0FFh,0FFh,0C3h,0E7h,0FFh,07Eh,000h,000h ; Hex #2 + Db 000h,000h,000h,000h,06Ch,0FEh,0FEh,0FEh,0FEh,07Ch,038h,010h,000h,000h ; Hex #3 + Db 000h,000h,000h,000h,010h,038h,07Ch,0FEh,07Ch,038h,010h,000h,000h,000h ; Hex #4 + Db 000h,000h,000h,018h,03Ch,03Ch,0E7h,0E7h,0E7h,018h,018h,03Ch,000h,000h ; Hex #5 + Db 000h,000h,000h,018h,03Ch,07Eh,0FFh,0FFh,07Eh,018h,018h,03Ch,000h,000h ; Hex #6 + Db 000h,000h,000h,000h,000h,000h,018h,03Ch,03Ch,018h,000h,000h,000h,000h ; Hex #7 + Db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0E7h,0C3h,0C3h,0E7h,0FFh,0FFh,0FFh,0FFh ; Hex #8 + Db 000h,000h,000h,000h,000h,03Ch,066h,042h,042h,066h,03Ch,000h,000h,000h ; Hex #9 + Db 0FFh,0FFh,0FFh,0FFh,0FFh,0C3h,099h,0BDh,0BDh,099h,0C3h,0FFh,0FFh,0FFh ; Hex #A + Db 000h,000h,000h,01Eh,00Eh,01Ah,032h,078h,0CCh,0CCh,0CCh,078h,000h,000h ; Hex #B + Db 000h,000h,000h,03Ch,066h,066h,066h,03Ch,018h,07Eh,018h,018h,000h,000h ; Hex #C + Db 000h,000h,000h,03Fh,033h,03Fh,030h,030h,030h,070h,0F0h,0E0h,000h,000h ; Hex #D + Db 000h,000h,000h,07Fh,063h,07Fh,063h,063h,063h,067h,0E7h,0E6h,0C0h,000h ; Hex #E + Db 000h,000h,000h,018h,018h,0DBh,03Ch,0E7h,03Ch,0DBh,018h,018h,000h,000h ; Hex #F + Db 000h,000h,000h,080h,0C0h,0E0h,0F8h,0FEh,0F8h,0E0h,0C0h,080h,000h,000h ; Hex #10 + Db 000h,000h,000h,002h,006h,00Eh,03Eh,0FEh,03Eh,00Eh,006h,002h,000h,000h ; Hex #11 + Db 000h,000h,000h,018h,03Ch,07Eh,018h,018h,018h,07Eh,03Ch,018h,000h,000h ; Hex #12 + Db 000h,000h,000h,066h,066h,066h,066h,066h,066h,000h,066h,066h,000h,000h ; Hex #13 + Db 000h,000h,000h,07Fh,0DBh,0DBh,0DBh,07Bh,01Bh,01Bh,01Bh,01Bh,000h,000h ; Hex #14 + Db 000h,000h,07Ch,0C6h,060h,038h,06Ch,0C6h,0C6h,06Ch,038h,00Ch,0C6h,07Ch ; Hex #15 + Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,0FEh,0FEh,0FEh,000h,000h ; Hex #16 + Db 000h,000h,000h,018h,03Ch,07Eh,018h,018h,018h,07Eh,03Ch,018h,07Eh,000h ; Hex #17 + Db 000h,000h,000h,018h,03Ch,07Eh,018h,018h,018h,018h,018h,018h,000h,000h ; Hex #18 + Db 000h,000h,000h,018h,018h,018h,018h,018h,018h,07Eh,03Ch,018h,000h,000h ; Hex #19 + Db 000h,000h,000h,000h,000h,018h,00Ch,0FEh,00Ch,018h,000h,000h,000h,000h ; Hex #1A + Db 000h,000h,000h,000h,000h,030h,060h,0FEh,060h,030h,000h,000h,000h,000h ; Hex #1B + Db 000h,000h,000h,000h,000h,000h,0C0h,0C0h,0C0h,0FEh,000h,000h,000h,000h ; Hex #1C + Db 000h,000h,000h,000h,000h,028h,06Ch,0FEh,06Ch,028h,000h,000h,000h,000h ; Hex #1D + Db 000h,000h,000h,000h,010h,038h,038h,07Ch,07Ch,0FEh,0FEh,000h,000h,000h ; Hex #1E + Db 000h,000h,000h,000h,0FEh,0FEh,07Ch,07Ch,038h,038h,010h,000h,000h,000h ; Hex #1F + Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #20 + Db 000h,000h,000h,018h,03Ch,03Ch,03Ch,018h,018h,000h,018h,018h,000h,000h ; Hex #21 + Db 000h,066h,066h,066h,024h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #22 + Db 000h,000h,000h,06Ch,06Ch,0FEh,06Ch,06Ch,06Ch,0FEh,06Ch,06Ch,000h,000h ; Hex #23 + Db 000h,018h,018h,07Ch,0C6h,0C2h,0C0h,07Ch,006h,086h,0C6h,07Ch,018h,018h ; Hex #24 + Db 000h,000h,000h,000h,000h,0C2h,0C6h,00Ch,018h,030h,066h,0C6h,000h,000h ; Hex #25 + Db 000h,000h,000h,038h,06Ch,06Ch,038h,076h,0DCh,0CCh,0CCh,076h,000h,000h ; Hex #26 + Db 000h,018h,018h,018h,030h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #27 + Db 000h,000h,000h,00Ch,018h,030h,030h,030h,030h,030h,018h,00Ch,000h,000h ; Hex #28 + Db 000h,000h,000h,030h,018h,00Ch,00Ch,00Ch,00Ch,00Ch,018h,030h,000h,000h ; Hex #29 + Db 000h,000h,000h,000h,000h,066h,03Ch,0FFh,03Ch,066h,000h,000h,000h,000h ; Hex #2A + Db 000h,000h,000h,000h,000h,018h,018h,07Eh,018h,018h,000h,000h,000h,000h ; Hex #2B + Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,018h,018h,018h,030h,000h ; Hex #2C + Db 000h,000h,000h,000h,000h,000h,000h,0FEh,000h,000h,000h,000h,000h,000h ; Hex #2D + Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,018h,018h,000h,000h ; Hex #2E + Db 000h,000h,000h,002h,006h,00Ch,018h,030h,060h,0C0h,080h,000h,000h,000h ; Hex #2F + Db 000h,000h,000h,038h,06Ch,0C6h,0C6h,0D6h,0C6h,0C6h,06Ch,038h,000h,000h ; Hex #30 + Db 000h,000h,000h,018h,038h,078h,018h,018h,018h,018h,018h,07Eh,000h,000h ; Hex #31 + Db 000h,000h,000h,07Ch,0C6h,006h,00Ch,018h,030h,060h,0C6h,0FEh,000h,000h ; Hex #32 + Db 000h,000h,000h,07Ch,0C6h,006h,006h,03Ch,006h,006h,0C6h,07Ch,000h,000h ; Hex #33 + Db 000h,000h,000h,00Ch,01Ch,03Ch,06Ch,0CCh,0FEh,00Ch,00Ch,01Eh,000h,000h ; Hex #34 + Db 000h,000h,000h,0FEh,0C0h,0C0h,0C0h,0FCh,006h,006h,0C6h,07Ch,000h,000h ; Hex #35 + Db 000h,000h,000h,038h,060h,0C0h,0C0h,0FCh,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #36 + Db 000h,000h,000h,0FEh,0C6h,006h,00Ch,018h,030h,030h,030h,030h,000h,000h ; Hex #37 + Db 000h,000h,000h,07Ch,0C6h,0C6h,0C6h,07Ch,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #38 + Db 000h,000h,000h,07Ch,0C6h,0C6h,0C6h,07Eh,006h,006h,00Ch,078h,000h,000h ; Hex #39 + Db 000h,000h,000h,000h,018h,018h,000h,000h,000h,018h,018h,000h,000h,000h ; Hex #3A + Db 000h,000h,000h,000h,018h,018h,000h,000h,000h,018h,018h,030h,000h,000h ; Hex #3B + Db 000h,000h,000h,00Ch,018h,030h,060h,0C0h,060h,030h,018h,00Ch,000h,000h ; Hex #3C + Db 000h,000h,000h,000h,000h,000h,07Eh,000h,000h,07Eh,000h,000h,000h,000h ; Hex #3D + Db 000h,000h,000h,060h,030h,018h,00Ch,006h,00Ch,018h,030h,060h,000h,000h ; Hex #3E + Db 000h,000h,000h,07Ch,0C6h,0C6h,00Ch,018h,018h,000h,018h,018h,000h,000h ; Hex #3F + Db 000h,000h,000h,07Ch,0C6h,0C6h,0DEh,0DEh,0DEh,0DCh,0C0h,07Ch,000h,000h ; Hex #40 + Db 000h,000h,000h,010h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,000h,000h ; Hex #41 + Db 000h,000h,000h,0FCh,066h,066h,066h,07Ch,066h,066h,066h,0FCh,000h,000h ; Hex #42 + Db 000h,000h,000h,03Ch,066h,0C2h,0C0h,0C0h,0C0h,0C2h,066h,03Ch,000h,000h ; Hex #43 + Db 000h,000h,000h,0F8h,06Ch,066h,066h,066h,066h,066h,06Ch,0F8h,000h,000h ; Hex #44 + Db 000h,000h,000h,0FEh,066h,062h,068h,078h,068h,062h,066h,0FEh,000h,000h ; Hex #45 + Db 000h,000h,000h,0FEh,066h,062h,068h,078h,068h,060h,060h,0F0h,000h,000h ; Hex #46 + Db 000h,000h,000h,03Ch,066h,0C2h,0C0h,0C0h,0DEh,0C6h,066h,03Ah,000h,000h ; Hex #47 + Db 000h,000h,000h,0C6h,0C6h,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,0C6h,000h,000h ; Hex #48 + Db 000h,000h,000h,03Ch,018h,018h,018h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #49 + Db 000h,000h,000h,01Eh,00Ch,00Ch,00Ch,00Ch,00Ch,0CCh,0CCh,078h,000h,000h ; Hex #4A + Db 000h,000h,000h,0E6h,066h,06Ch,06Ch,078h,06Ch,06Ch,066h,0E6h,000h,000h ; Hex #4B + Db 000h,000h,000h,0F0h,060h,060h,060h,060h,060h,062h,066h,0FEh,000h,000h ; Hex #4C + Db 000h,000h,000h,0C6h,0EEh,0FEh,0D6h,0C6h,0C6h,0C6h,0C6h,0C6h,000h,000h ; Hex #4D + Db 000h,000h,000h,0C6h,0E6h,0F6h,0FEh,0DEh,0CEh,0C6h,0C6h,0C6h,000h,000h ; Hex #4E + Db 000h,000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #4F + Db 000h,000h,000h,0FCh,066h,066h,066h,07Ch,060h,060h,060h,0F0h,000h,000h ; Hex #50 + Db 000h,000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0D6h,0DEh,07Ch,00Eh,000h ; Hex #51 + Db 000h,000h,000h,0FCh,066h,066h,066h,07Ch,06Ch,066h,066h,0E6h,000h,000h ; Hex #52 + Db 000h,000h,000h,07Ch,0C6h,0C6h,060h,038h,00Ch,0C6h,0C6h,07Ch,000h,000h ; Hex #53 + Db 000h,000h,000h,07Eh,07Eh,05Ah,018h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #54 + Db 000h,000h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #55 + Db 000h,000h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,06Ch,038h,010h,000h,000h ; Hex #56 + Db 000h,000h,000h,0C6h,0C6h,0C6h,0C6h,0D6h,0D6h,0FEh,06Ch,06Ch,000h,000h ; Hex #57 + Db 000h,000h,000h,0C6h,0C6h,0C6h,07Ch,038h,07Ch,0C6h,0C6h,0C6h,000h,000h ; Hex #58 + Db 000h,000h,000h,066h,066h,066h,066h,03Ch,018h,018h,018h,03Ch,000h,000h ; Hex #59 + Db 000h,000h,000h,0FEh,0C6h,08Ch,018h,030h,060h,0C2h,0C6h,0FEh,000h,000h ; Hex #5A + Db 000h,000h,000h,03Ch,030h,030h,030h,030h,030h,030h,030h,03Ch,000h,000h ; Hex #5B + Db 000h,000h,000h,080h,0C0h,0E0h,070h,038h,01Ch,00Eh,006h,002h,000h,000h ; Hex #5C + Db 000h,000h,000h,03Ch,00Ch,00Ch,00Ch,00Ch,00Ch,00Ch,00Ch,03Ch,000h,000h ; Hex #5D + Db 010h,038h,06Ch,0C6h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #5E + Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,0FFh ; Hex #5F + Db 000h,030h,018h,00Ch,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #60 + Db 000h,000h,000h,000h,000h,000h,078h,00Ch,07Ch,0CCh,0CCh,076h,000h,000h ; Hex #61 + Db 000h,000h,000h,0E0h,060h,060h,078h,06Ch,066h,066h,066h,07Ch,000h,000h ; Hex #62 + Db 000h,000h,000h,000h,000h,000h,07Ch,0C6h,0C0h,0C0h,0C6h,07Ch,000h,000h ; Hex #63 + Db 000h,000h,000h,01Ch,00Ch,00Ch,03Ch,06Ch,0CCh,0CCh,0CCh,076h,000h,000h ; Hex #64 + Db 000h,000h,000h,000h,000h,000h,07Ch,0C6h,0FEh,0C0h,0C6h,07Ch,000h,000h ; Hex #65 + Db 000h,000h,000h,01Ch,036h,032h,030h,07Ch,030h,030h,030h,078h,000h,000h ; Hex #66 + Db 000h,000h,000h,000h,000h,000h,076h,0CCh,0CCh,0CCh,07Ch,00Ch,0CCh,078h ; Hex #67 + Db 000h,000h,000h,0E0h,060h,060h,06Ch,076h,066h,066h,066h,0E6h,000h,000h ; Hex #68 + Db 000h,000h,000h,018h,018h,000h,038h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #69 + Db 000h,000h,000h,006h,006h,000h,00Eh,006h,006h,006h,006h,066h,066h,03Ch ; Hex #6A + Db 000h,000h,000h,0E0h,060h,060h,066h,06Ch,078h,06Ch,066h,0E6h,000h,000h ; Hex #6B + Db 000h,000h,000h,038h,018h,018h,018h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #6C + Db 000h,000h,000h,000h,000h,000h,0ECh,0FEh,0D6h,0D6h,0D6h,0D6h,000h,000h ; Hex #6D + Db 000h,000h,000h,000h,000h,000h,0DCh,066h,066h,066h,066h,066h,000h,000h ; Hex #6E + Db 000h,000h,000h,000h,000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #6F + Db 000h,000h,000h,000h,000h,000h,0DCh,066h,066h,066h,07Ch,060h,060h,0F0h ; Hex #70 + Db 000h,000h,000h,000h,000h,000h,076h,0CCh,0CCh,0CCh,07Ch,00Ch,00Ch,01Eh ; Hex #71 + Db 000h,000h,000h,000h,000h,000h,0DCh,076h,066h,060h,060h,0F0h,000h,000h ; Hex #72 + Db 000h,000h,000h,000h,000h,000h,07Ch,0C6h,070h,01Ch,0C6h,07Ch,000h,000h ; Hex #73 + Db 000h,000h,000h,010h,030h,030h,0FCh,030h,030h,030h,036h,01Ch,000h,000h ; Hex #74 + Db 000h,000h,000h,000h,000h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h ; Hex #75 + Db 000h,000h,000h,000h,000h,000h,0C6h,0C6h,0C6h,06Ch,038h,010h,000h,000h ; Hex #76 + Db 000h,000h,000h,000h,000h,000h,0C6h,0C6h,0D6h,0D6h,0FEh,06Ch,000h,000h ; Hex #77 + Db 000h,000h,000h,000h,000h,000h,0C6h,06Ch,038h,038h,06Ch,0C6h,000h,000h ; Hex #78 + Db 000h,000h,000h,000h,000h,000h,0C6h,0C6h,0C6h,0C6h,07Eh,006h,00Ch,078h ; Hex #79 + Db 000h,000h,000h,000h,000h,000h,0FEh,0CCh,018h,030h,066h,0FEh,000h,000h ; Hex #7A + Db 000h,000h,000h,00Eh,018h,018h,018h,070h,018h,018h,018h,00Eh,000h,000h ; Hex #7B + Db 000h,000h,000h,018h,018h,018h,018h,018h,018h,018h,018h,018h,000h,000h ; Hex #7C + Db 000h,000h,000h,070h,018h,018h,018h,00Eh,018h,018h,018h,070h,000h,000h ; Hex #7D + Db 000h,076h,0DCh,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #7E + Db 000h,000h,000h,000h,000h,010h,038h,06Ch,0C6h,0C6h,0FEh,000h,000h,000h ; Hex #7F + Db 000h,000h,000h,03Ch,066h,0C2h,0C0h,0C0h,0C0h,0C2h,066h,03Ch,00Ch,078h ; Hex #80 + Db 000h,000h,000h,0CCh,000h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h ; Hex #81 + Db 000h,000h,00Ch,018h,030h,000h,07Ch,0C6h,0FEh,0C0h,0C6h,07Ch,000h,000h ; Hex #82 + Db 000h,000h,010h,038h,06Ch,000h,078h,00Ch,07Ch,0CCh,0CCh,076h,000h,000h ; Hex #83 + Db 000h,000h,000h,0C6h,000h,000h,078h,00Ch,07Ch,0CCh,0CCh,076h,000h,000h ; Hex #84 + Db 000h,000h,060h,030h,018h,000h,078h,00Ch,07Ch,0CCh,0CCh,076h,000h,000h ; Hex #85 + Db 000h,000h,038h,06Ch,038h,000h,078h,00Ch,07Ch,0CCh,0CCh,076h,000h,000h ; Hex #86 + Db 000h,000h,000h,000h,000h,000h,07Ch,0C6h,0C0h,0C0h,0C6h,07Ch,00Ch,078h ; Hex #87 + Db 000h,000h,010h,038h,06Ch,000h,07Ch,0C6h,0FEh,0C0h,0C6h,07Ch,000h,000h ; Hex #88 + Db 000h,000h,000h,0C6h,000h,000h,07Ch,0C6h,0FEh,0C0h,0C6h,07Ch,000h,000h ; Hex #89 + Db 000h,000h,060h,030h,018h,000h,07Ch,0C6h,0FEh,0C0h,0C6h,07Ch,000h,000h ; Hex #8A + Db 000h,000h,000h,066h,000h,000h,038h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #8B + Db 000h,000h,018h,03Ch,066h,000h,038h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #8C + Db 000h,000h,060h,030h,018h,000h,038h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #8D + Db 000h,0C6h,000h,010h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,000h,000h ; Hex #8E + Db 038h,06Ch,038h,010h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,000h,000h ; Hex #8F + Db 00Ch,018h,000h,0FEh,066h,062h,068h,078h,068h,062h,066h,0FEh,000h,000h ; Hex #90 + Db 000h,000h,000h,000h,000h,000h,0ECh,036h,076h,0DCh,0D8h,06Eh,000h,000h ; Hex #91 + Db 000h,000h,000h,03Eh,06Ch,0CCh,0CCh,0FEh,0CCh,0CCh,0CCh,0CEh,000h,000h ; Hex #92 + Db 000h,000h,010h,038h,06Ch,000h,07Ch,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #93 + Db 000h,000h,000h,0C6h,000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #94 + Db 000h,000h,060h,030h,018h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #95 + Db 000h,000h,030h,078h,0CCh,000h,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h ; Hex #96 + Db 000h,000h,060h,030h,018h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h ; Hex #97 + Db 000h,000h,000h,0C6h,000h,000h,0C6h,0C6h,0C6h,0C6h,07Eh,006h,00Ch,078h ; Hex #98 + Db 000h,0C6h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #99 + Db 000h,0C6h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #9A + Db 000h,000h,000h,000h,000h,000h,07Ch,0CEh,0DEh,0F6h,0E6h,07Ch,000h,000h ; Hex #9B + Db 000h,000h,038h,06Ch,064h,060h,0F0h,060h,060h,060h,0E6h,0FCh,000h,000h ; Hex #9C + Db 000h,000h,004h,07Ch,0CEh,0CEh,0D6h,0D6h,0D6h,0E6h,0E6h,07Ch,040h,000h ; Hex #9D + Db 000h,000h,000h,000h,000h,0C6h,06Ch,038h,038h,06Ch,0C6h,000h,000h,000h ; Hex #9E + Db 000h,000h,00Eh,01Bh,018h,018h,018h,07Eh,018h,018h,018h,0D8h,070h,000h ; Hex #9F + Db 000h,000h,00Ch,018h,030h,000h,078h,00Ch,07Ch,0CCh,0CCh,076h,000h,000h ; Hex #A0 + Db 000h,000h,00Ch,018h,030h,000h,038h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #A1 + Db 000h,000h,00Ch,018h,030h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #A2 + Db 000h,000h,00Ch,018h,030h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h ; Hex #A3 + Db 000h,000h,000h,076h,0DCh,000h,0DCh,066h,066h,066h,066h,066h,000h,000h ; Hex #A4 + Db 076h,0DCh,000h,0C6h,0E6h,0F6h,0FEh,0DEh,0CEh,0C6h,0C6h,0C6h,000h,000h ; Hex #A5 + Db 000h,000h,03Ch,06Ch,06Ch,03Eh,000h,07Eh,000h,000h,000h,000h,000h,000h ; Hex #A6 + Db 000h,000h,038h,06Ch,06Ch,038h,000h,07Ch,000h,000h,000h,000h,000h,000h ; Hex #A7 + Db 000h,000h,000h,030h,030h,000h,030h,030h,060h,0C6h,0C6h,07Ch,000h,000h ; Hex #A8 + Db 000h,000h,000h,038h,044h,0BAh,0AAh,0B2h,0AAh,0AAh,044h,038h,000h,000h ; Hex #A9 + Db 000h,000h,000h,000h,000h,000h,000h,0FEh,006h,006h,006h,000h,000h,000h ; Hex #AA + Db 000h,000h,060h,0E0h,063h,066h,06Ch,018h,030h,06Eh,0C3h,006h,00Ch,01Fh ; Hex #AB + Db 000h,000h,060h,0E0h,063h,066h,06Ch,01Ah,036h,06Eh,0DAh,03Fh,006h,006h ; Hex #AC + Db 000h,000h,000h,018h,018h,000h,018h,018h,03Ch,03Ch,03Ch,018h,000h,000h ; Hex #AD + Db 000h,000h,000h,000h,000h,036h,06Ch,0D8h,06Ch,036h,000h,000h,000h,000h ; Hex #AE + Db 000h,000h,000h,000h,000h,0D8h,06Ch,036h,06Ch,0D8h,000h,000h,000h,000h ; Hex #AF + Db 011h,044h,011h,044h,011h,044h,011h,044h,011h,044h,011h,044h,011h,044h ; Hex #B0 + Db 055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh ; Hex #B1 + Db 0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h ; Hex #B2 + Db 018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #B3 + Db 018h,018h,018h,018h,018h,018h,018h,0F8h,018h,018h,018h,018h,018h,018h ; Hex #B4 + Db 030h,060h,0C0h,010h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,000h,000h ; Hex #B5 + Db 038h,06Ch,0C6h,010h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,000h,000h ; Hex #B6 + Db 018h,00Ch,006h,010h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,000h,000h ; Hex #B7 + Db 000h,000h,000h,038h,044h,09Ah,0A2h,0A2h,0A2h,09Ah,044h,038h,000h,000h ; Hex #B8 + Db 036h,036h,036h,036h,036h,0F6h,006h,0F6h,036h,036h,036h,036h,036h,036h ; Hex #B9 + Db 036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #BA + Db 000h,000h,000h,000h,000h,0FEh,006h,0F6h,036h,036h,036h,036h,036h,036h ; Hex #BB + Db 036h,036h,036h,036h,036h,0F6h,006h,0FEh,000h,000h,000h,000h,000h,000h ; Hex #BC + Db 000h,000h,018h,018h,07Ch,0C6h,0C0h,0C0h,0C6h,07Ch,018h,018h,000h,000h ; Hex #BD + Db 000h,000h,000h,066h,066h,03Ch,018h,07Eh,018h,07Eh,018h,018h,000h,000h ; Hex #BE + Db 000h,000h,000h,000h,000h,000h,000h,0F8h,018h,018h,018h,018h,018h,018h ; Hex #BF + Db 018h,018h,018h,018h,018h,018h,018h,01Fh,000h,000h,000h,000h,000h,000h ; Hex #C0 + Db 018h,018h,018h,018h,018h,018h,018h,0FFh,000h,000h,000h,000h,000h,000h ; Hex #C1 + Db 000h,000h,000h,000h,000h,000h,000h,0FFh,018h,018h,018h,018h,018h,018h ; Hex #C2 + Db 018h,018h,018h,018h,018h,018h,018h,01Fh,018h,018h,018h,018h,018h,018h ; Hex #C3 + Db 000h,000h,000h,000h,000h,000h,000h,0FFh,000h,000h,000h,000h,000h,000h ; Hex #C4 + Db 018h,018h,018h,018h,018h,018h,018h,0FFh,018h,018h,018h,018h,018h,018h ; Hex #C5 + Db 000h,000h,000h,076h,0DCh,000h,078h,00Ch,07Ch,0CCh,0CCh,076h,000h,000h ; Hex #C6 + Db 076h,0DCh,000h,010h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,000h,000h ; Hex #C7 + Db 036h,036h,036h,036h,036h,037h,030h,03Fh,000h,000h,000h,000h,000h,000h ; Hex #C8 + Db 000h,000h,000h,000h,000h,03Fh,030h,037h,036h,036h,036h,036h,036h,036h ; Hex #C9 + Db 036h,036h,036h,036h,036h,0F7h,000h,0FFh,000h,000h,000h,000h,000h,000h ; Hex #CA + Db 000h,000h,000h,000h,000h,0FFh,000h,0F7h,036h,036h,036h,036h,036h,036h ; Hex #CB + Db 036h,036h,036h,036h,036h,037h,030h,037h,036h,036h,036h,036h,036h,036h ; Hex #CC + Db 000h,000h,000h,000h,000h,0FFh,000h,0FFh,000h,000h,000h,000h,000h,000h ; Hex #CD + Db 036h,036h,036h,036h,036h,0F7h,000h,0F7h,036h,036h,036h,036h,036h,036h ; Hex #CE + Db 000h,000h,000h,000h,000h,0C6h,07Ch,0C6h,0C6h,0C6h,07Ch,0C6h,000h,000h ; Hex #CF + Db 000h,000h,000h,034h,018h,02Ch,006h,03Eh,066h,066h,066h,03Ch,000h,000h ; Hex #D0 + Db 000h,000h,000h,0F8h,06Ch,066h,066h,0F6h,066h,066h,06Ch,0F8h,000h,000h ; Hex #D1 + Db 038h,06Ch,000h,0FEh,066h,062h,068h,078h,068h,062h,066h,0FEh,000h,000h ; Hex #D2 + Db 000h,0C6h,000h,0FEh,066h,062h,068h,078h,068h,062h,066h,0FEh,000h,000h ; Hex #D3 + Db 030h,018h,000h,0FEh,066h,062h,068h,078h,068h,062h,066h,0FEh,000h,000h ; Hex #D4 + Db 000h,000h,000h,000h,000h,000h,038h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #D5 + Db 00Ch,018h,000h,03Ch,018h,018h,018h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #D6 + Db 03Ch,066h,000h,03Ch,018h,018h,018h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #D7 + Db 000h,066h,000h,03Ch,018h,018h,018h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #D8 + Db 018h,018h,018h,018h,018h,018h,018h,0F8h,000h,000h,000h,000h,000h,000h ; Hex #D9 + Db 000h,000h,000h,000h,000h,000h,000h,01Fh,018h,018h,018h,018h,018h,018h ; Hex #DA + Db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh ; Hex #DB + Db 000h,000h,000h,000h,000h,000h,000h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh ; Hex #DC + Db 000h,000h,018h,018h,018h,018h,000h,000h,000h,018h,018h,018h,018h,000h ; Hex #DD + Db 030h,018h,000h,03Ch,018h,018h,018h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #DE + Db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,000h,000h,000h,000h,000h,000h,000h ; Hex #DF + Db 018h,030h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #E0 + Db 000h,000h,000h,078h,0CCh,0CCh,0CCh,0D8h,0CCh,0C6h,0C6h,0CCh,000h,000h ; Hex #E1 + Db 038h,06Ch,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #E2 + Db 030h,018h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #E3 + Db 000h,000h,000h,076h,0DCh,000h,07Ch,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #E4 + Db 076h,0DCh,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #E5 + Db 000h,000h,000h,000h,000h,000h,066h,066h,066h,066h,066h,07Ch,060h,0C0h ; Hex #E6 + Db 000h,000h,000h,0E0h,060h,060h,07Ch,066h,066h,066h,066h,07Ch,060h,0F0h ; Hex #E7 + Db 000h,000h,000h,0F0h,060h,07Ch,066h,066h,066h,07Ch,060h,0F0h,000h,000h ; Hex #E8 + Db 018h,030h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #E9 + Db 038h,06Ch,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #EA + Db 030h,018h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #EB + Db 000h,000h,00Ch,018h,030h,000h,0C6h,0C6h,0C6h,0C6h,07Eh,006h,00Ch,0F8h ; Hex #EC + Db 00Ch,018h,000h,066h,066h,066h,066h,03Ch,018h,018h,018h,03Ch,000h,000h ; Hex #ED + Db 000h,0FFh,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #EE + Db 000h,00Ch,018h,030h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #EF + Db 000h,000h,000h,000h,000h,000h,000h,0FEh,000h,000h,000h,000h,000h,000h ; Hex #F0 + Db 000h,000h,000h,000h,018h,018h,07Eh,018h,018h,000h,000h,07Eh,000h,000h ; Hex #F1 + Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,0FFh,000h,0FFh ; Hex #F2 + Db 000h,0E0h,030h,063h,036h,0ECh,018h,036h,06Eh,0DAh,03Fh,006h,006h,000h ; Hex #F3 + Db 000h,000h,000h,07Fh,0DBh,0DBh,0DBh,07Bh,01Bh,01Bh,01Bh,01Bh,000h,000h ; Hex #F4 + Db 000h,000h,07Ch,0C6h,060h,038h,06Ch,0C6h,0C6h,06Ch,038h,00Ch,0C6h,07Ch ; Hex #F5 + Db 000h,000h,000h,000h,000h,018h,000h,07Eh,000h,018h,000h,000h,000h,000h ; Hex #F6 + Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,018h,00Ch,078h ; Hex #F7 + Db 000h,038h,06Ch,06Ch,038h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #F8 + Db 000h,0C6h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #F9 + Db 000h,000h,000h,000h,000h,000h,000h,018h,000h,000h,000h,000h,000h,000h ; Hex #FA + Db 000h,018h,038h,018h,018h,018h,03Ch,000h,000h,000h,000h,000h,000h,000h ; Hex #FB + Db 000h,078h,00Ch,038h,00Ch,00Ch,078h,000h,000h,000h,000h,000h,000h,000h ; Hex #FC + Db 000h,03Ch,066h,00Ch,018h,032h,07Eh,000h,000h,000h,000h,000h,000h,000h ; Hex #FD + Db 000h,000h,000h,000h,000h,07Eh,07Eh,07Eh,07Eh,07Eh,07Eh,000h,000h,000h ; Hex #FE + 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/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 @@ +;*************************************************** +; CHARACTER FONT FILE +; Source Assembler File +; +; CODE PAGE: 850 +; FONT RESOLUTION: 8 x 16 +; +; DATE CREATED:05-28-1987 +; +; +; Output file from: MULTIFON, Version 1A +; +;*************************************************** + Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #0 + Db 000h,000h,07Eh,081h,0A5h,081h,081h,0BDh,099h,081h,081h,07Eh,000h,000h,000h,000h ; Hex #1 + Db 000h,000h,07Eh,0FFh,0DBh,0FFh,0FFh,0C3h,0E7h,0FFh,0FFh,07Eh,000h,000h,000h,000h ; Hex #2 + Db 000h,000h,000h,000h,06Ch,0FEh,0FEh,0FEh,0FEh,07Ch,038h,010h,000h,000h,000h,000h ; Hex #3 + Db 000h,000h,000h,000h,010h,038h,07Ch,0FEh,07Ch,038h,010h,000h,000h,000h,000h,000h ; Hex #4 + Db 000h,000h,000h,018h,03Ch,03Ch,0E7h,0E7h,0E7h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #5 + Db 000h,000h,000h,018h,03Ch,07Eh,0FFh,0FFh,07Eh,018h,018h,03Ch,000h,000h,000h,000h ; Hex #6 + Db 000h,000h,000h,000h,000h,000h,018h,03Ch,03Ch,018h,000h,000h,000h,000h,000h,000h ; Hex #7 + Db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0E7h,0C3h,0C3h,0E7h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh ; Hex #8 + Db 000h,000h,000h,000h,000h,03Ch,066h,042h,042h,066h,03Ch,000h,000h,000h,000h,000h ; Hex #9 + Db 0FFh,0FFh,0FFh,0FFh,0FFh,0C3h,099h,0BDh,0BDh,099h,0C3h,0FFh,0FFh,0FFh,0FFh,0FFh ; Hex #A + Db 000h,000h,01Eh,00Eh,01Ah,032h,078h,0CCh,0CCh,0CCh,0CCh,078h,000h,000h,000h,000h ; Hex #B + Db 000h,000h,03Ch,066h,066h,066h,066h,03Ch,018h,07Eh,018h,018h,000h,000h,000h,000h ; Hex #C + Db 000h,000h,03Fh,033h,03Fh,030h,030h,030h,030h,070h,0F0h,0E0h,000h,000h,000h,000h ; Hex #D + Db 000h,000h,07Fh,063h,07Fh,063h,063h,063h,063h,067h,0E7h,0E6h,0C0h,000h,000h,000h ; Hex #E + Db 000h,000h,000h,018h,018h,0DBh,03Ch,0E7h,03Ch,0DBh,018h,018h,000h,000h,000h,000h ; Hex #F + Db 000h,080h,0C0h,0E0h,0F0h,0F8h,0FEh,0F8h,0F0h,0E0h,0C0h,080h,000h,000h,000h,000h ; Hex #10 + Db 000h,002h,006h,00Eh,01Eh,03Eh,0FEh,03Eh,01Eh,00Eh,006h,002h,000h,000h,000h,000h ; Hex #11 + Db 000h,000h,018h,03Ch,07Eh,018h,018h,018h,07Eh,03Ch,018h,000h,000h,000h,000h,000h ; Hex #12 + Db 000h,000h,066h,066h,066h,066h,066h,066h,066h,000h,066h,066h,000h,000h,000h,000h ; Hex #13 + Db 000h,000h,07Fh,0DBh,0DBh,0DBh,07Bh,01Bh,01Bh,01Bh,01Bh,01Bh,000h,000h,000h,000h ; Hex #14 + Db 000h,07Ch,0C6h,060h,038h,06Ch,0C6h,0C6h,06Ch,038h,00Ch,0C6h,07Ch,000h,000h,000h ; Hex #15 + Db 000h,000h,000h,000h,000h,000h,000h,000h,0FEh,0FEh,0FEh,0FEh,000h,000h,000h,000h ; Hex #16 + Db 000h,000h,018h,03Ch,07Eh,018h,018h,018h,07Eh,03Ch,018h,07Eh,000h,000h,000h,000h ; Hex #17 + Db 000h,000h,018h,03Ch,07Eh,018h,018h,018h,018h,018h,018h,018h,000h,000h,000h,000h ; Hex #18 + Db 000h,000h,018h,018h,018h,018h,018h,018h,018h,07Eh,03Ch,018h,000h,000h,000h,000h ; Hex #19 + Db 000h,000h,000h,000h,000h,018h,00Ch,0FEh,00Ch,018h,000h,000h,000h,000h,000h,000h ; Hex #1A + Db 000h,000h,000h,000h,000h,030h,060h,0FEh,060h,030h,000h,000h,000h,000h,000h,000h ; Hex #1B + Db 000h,000h,000h,000h,000h,000h,0C0h,0C0h,0C0h,0FEh,000h,000h,000h,000h,000h,000h ; Hex #1C + Db 000h,000h,000h,000h,000h,028h,06Ch,0FEh,06Ch,028h,000h,000h,000h,000h,000h,000h ; Hex #1D + Db 000h,000h,000h,000h,010h,038h,038h,07Ch,07Ch,0FEh,0FEh,000h,000h,000h,000h,000h ; Hex #1E + Db 000h,000h,000h,000h,0FEh,0FEh,07Ch,07Ch,038h,038h,010h,000h,000h,000h,000h,000h ; Hex #1F + Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #20 + Db 000h,000h,018h,03Ch,03Ch,03Ch,018h,018h,018h,000h,018h,018h,000h,000h,000h,000h ; Hex #21 + Db 000h,066h,066h,066h,024h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #22 + Db 000h,000h,000h,06Ch,06Ch,0FEh,06Ch,06Ch,06Ch,0FEh,06Ch,06Ch,000h,000h,000h,000h ; Hex #23 + Db 018h,018h,07Ch,0C6h,0C2h,0C0h,07Ch,006h,006h,086h,0C6h,07Ch,018h,018h,000h,000h ; Hex #24 + Db 000h,000h,000h,000h,0C2h,0C6h,00Ch,018h,030h,060h,0C6h,086h,000h,000h,000h,000h ; Hex #25 + Db 000h,000h,038h,06Ch,06Ch,038h,076h,0DCh,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #26 + Db 000h,030h,030h,030h,060h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #27 + Db 000h,000h,00Ch,018h,030h,030h,030h,030h,030h,030h,018h,00Ch,000h,000h,000h,000h ; Hex #28 + Db 000h,000h,030h,018h,00Ch,00Ch,00Ch,00Ch,00Ch,00Ch,018h,030h,000h,000h,000h,000h ; Hex #29 + Db 000h,000h,000h,000h,000h,066h,03Ch,0FFh,03Ch,066h,000h,000h,000h,000h,000h,000h ; Hex #2A + Db 000h,000h,000h,000h,000h,018h,018h,07Eh,018h,018h,000h,000h,000h,000h,000h,000h ; Hex #2B + Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,018h,018h,018h,030h,000h,000h,000h ; Hex #2C + Db 000h,000h,000h,000h,000h,000h,000h,0FEh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #2D + Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,018h,018h,000h,000h,000h,000h ; Hex #2E + Db 000h,000h,000h,000h,002h,006h,00Ch,018h,030h,060h,0C0h,080h,000h,000h,000h,000h ; Hex #2F + Db 000h,000h,038h,06Ch,0C6h,0C6h,0D6h,0D6h,0C6h,0C6h,06Ch,038h,000h,000h,000h,000h ; Hex #30 + Db 000h,000h,018h,038h,078h,018h,018h,018h,018h,018h,018h,07Eh,000h,000h,000h,000h ; Hex #31 + Db 000h,000h,07Ch,0C6h,006h,00Ch,018h,030h,060h,0C0h,0C6h,0FEh,000h,000h,000h,000h ; Hex #32 + Db 000h,000h,07Ch,0C6h,006h,006h,03Ch,006h,006h,006h,0C6h,07Ch,000h,000h,000h,000h ; Hex #33 + Db 000h,000h,00Ch,01Ch,03Ch,06Ch,0CCh,0FEh,00Ch,00Ch,00Ch,01Eh,000h,000h,000h,000h ; Hex #34 + Db 000h,000h,0FEh,0C0h,0C0h,0C0h,0FCh,006h,006h,006h,0C6h,07Ch,000h,000h,000h,000h ; Hex #35 + Db 000h,000h,038h,060h,0C0h,0C0h,0FCh,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #36 + Db 000h,000h,0FEh,0C6h,006h,006h,00Ch,018h,030h,030h,030h,030h,000h,000h,000h,000h ; Hex #37 + Db 000h,000h,07Ch,0C6h,0C6h,0C6h,07Ch,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #38 + Db 000h,000h,07Ch,0C6h,0C6h,0C6h,07Eh,006h,006h,006h,00Ch,078h,000h,000h,000h,000h ; Hex #39 + Db 000h,000h,000h,000h,018h,018h,000h,000h,000h,018h,018h,000h,000h,000h,000h,000h ; Hex #3A + Db 000h,000h,000h,000h,018h,018h,000h,000h,000h,018h,018h,030h,000h,000h,000h,000h ; Hex #3B + Db 000h,000h,000h,006h,00Ch,018h,030h,060h,030h,018h,00Ch,006h,000h,000h,000h,000h ; Hex #3C + Db 000h,000h,000h,000h,000h,07Eh,000h,000h,07Eh,000h,000h,000h,000h,000h,000h,000h ; Hex #3D + Db 000h,000h,000h,060h,030h,018h,00Ch,006h,00Ch,018h,030h,060h,000h,000h,000h,000h ; Hex #3E + Db 000h,000h,07Ch,0C6h,0C6h,00Ch,018h,018h,018h,000h,018h,018h,000h,000h,000h,000h ; Hex #3F + Db 000h,000h,000h,07Ch,0C6h,0C6h,0DEh,0DEh,0DEh,0DCh,0C0h,07Ch,000h,000h,000h,000h ; Hex #40 + Db 000h,000h,010h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #41 + Db 000h,000h,0FCh,066h,066h,066h,07Ch,066h,066h,066h,066h,0FCh,000h,000h,000h,000h ; Hex #42 + Db 000h,000h,03Ch,066h,0C2h,0C0h,0C0h,0C0h,0C0h,0C2h,066h,03Ch,000h,000h,000h,000h ; Hex #43 + Db 000h,000h,0F8h,06Ch,066h,066h,066h,066h,066h,066h,06Ch,0F8h,000h,000h,000h,000h ; Hex #44 + Db 000h,000h,0FEh,066h,062h,068h,078h,068h,060h,062h,066h,0FEh,000h,000h,000h,000h ; Hex #45 + Db 000h,000h,0FEh,066h,062h,068h,078h,068h,060h,060h,060h,0F0h,000h,000h,000h,000h ; Hex #46 + Db 000h,000h,03Ch,066h,0C2h,0C0h,0C0h,0DEh,0C6h,0C6h,066h,03Ah,000h,000h,000h,000h ; Hex #47 + Db 000h,000h,0C6h,0C6h,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #48 + Db 000h,000h,03Ch,018h,018h,018h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #49 + Db 000h,000h,01Eh,00Ch,00Ch,00Ch,00Ch,00Ch,0CCh,0CCh,0CCh,078h,000h,000h,000h,000h ; Hex #4A + Db 000h,000h,0E6h,066h,066h,06Ch,078h,078h,06Ch,066h,066h,0E6h,000h,000h,000h,000h ; Hex #4B + Db 000h,000h,0F0h,060h,060h,060h,060h,060h,060h,062h,066h,0FEh,000h,000h,000h,000h ; Hex #4C + Db 000h,000h,0C6h,0EEh,0FEh,0FEh,0D6h,0C6h,0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #4D + Db 000h,000h,0C6h,0E6h,0F6h,0FEh,0DEh,0CEh,0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #4E + Db 000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #4F + Db 000h,000h,0FCh,066h,066h,066h,07Ch,060h,060h,060h,060h,0F0h,000h,000h,000h,000h ; Hex #50 + Db 000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0D6h,0DEh,07Ch,00Ch,00Eh,000h,000h ; Hex #51 + Db 000h,000h,0FCh,066h,066h,066h,07Ch,06Ch,066h,066h,066h,0E6h,000h,000h,000h,000h ; Hex #52 + Db 000h,000h,07Ch,0C6h,0C6h,060h,038h,00Ch,006h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #53 + Db 000h,000h,07Eh,07Eh,05Ah,018h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #54 + Db 000h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #55 + Db 000h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,06Ch,038h,010h,000h,000h,000h,000h ; Hex #56 + Db 000h,000h,0C6h,0C6h,0C6h,0C6h,0D6h,0D6h,0D6h,0FEh,0EEh,06Ch,000h,000h,000h,000h ; Hex #57 + Db 000h,000h,0C6h,0C6h,06Ch,07Ch,038h,038h,07Ch,06Ch,0C6h,0C6h,000h,000h,000h,000h ; Hex #58 + Db 000h,000h,066h,066h,066h,066h,03Ch,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #59 + Db 000h,000h,0FEh,0C6h,086h,00Ch,018h,030h,060h,0C2h,0C6h,0FEh,000h,000h,000h,000h ; Hex #5A + Db 000h,000h,03Ch,030h,030h,030h,030h,030h,030h,030h,030h,03Ch,000h,000h,000h,000h ; Hex #5B + Db 000h,000h,000h,080h,0C0h,0E0h,070h,038h,01Ch,00Eh,006h,002h,000h,000h,000h,000h ; Hex #5C + Db 000h,000h,03Ch,00Ch,00Ch,00Ch,00Ch,00Ch,00Ch,00Ch,00Ch,03Ch,000h,000h,000h,000h ; Hex #5D + Db 010h,038h,06Ch,0C6h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #5E + Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,0FFh,000h,000h ; Hex #5F + Db 000h,030h,018h,00Ch,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #60 + Db 000h,000h,000h,000h,000h,078h,00Ch,07Ch,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #61 + Db 000h,000h,0E0h,060h,060h,078h,06Ch,066h,066h,066h,066h,07Ch,000h,000h,000h,000h ; Hex #62 + Db 000h,000h,000h,000h,000h,07Ch,0C6h,0C0h,0C0h,0C0h,0C6h,07Ch,000h,000h,000h,000h ; Hex #63 + Db 000h,000h,01Ch,00Ch,00Ch,03Ch,06Ch,0CCh,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #64 + Db 000h,000h,000h,000h,000h,07Ch,0C6h,0FEh,0C0h,0C0h,0C6h,07Ch,000h,000h,000h,000h ; Hex #65 + Db 000h,000h,01Ch,036h,032h,030h,078h,030h,030h,030h,030h,078h,000h,000h,000h,000h ; Hex #66 + Db 000h,000h,000h,000h,000h,076h,0CCh,0CCh,0CCh,0CCh,0CCh,07Ch,00Ch,0CCh,078h,000h ; Hex #67 + Db 000h,000h,0E0h,060h,060h,06Ch,076h,066h,066h,066h,066h,0E6h,000h,000h,000h,000h ; Hex #68 + Db 000h,000h,018h,018h,000h,038h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #69 + Db 000h,000h,006h,006h,000h,00Eh,006h,006h,006h,006h,006h,006h,066h,066h,03Ch,000h ; Hex #6A + Db 000h,000h,0E0h,060h,060h,066h,06Ch,078h,078h,06Ch,066h,0E6h,000h,000h,000h,000h ; Hex #6B + Db 000h,000h,038h,018h,018h,018h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #6C + Db 000h,000h,000h,000h,000h,0ECh,0FEh,0D6h,0D6h,0D6h,0D6h,0C6h,000h,000h,000h,000h ; Hex #6D + Db 000h,000h,000h,000h,000h,0DCh,066h,066h,066h,066h,066h,066h,000h,000h,000h,000h ; Hex #6E + Db 000h,000h,000h,000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #6F + Db 000h,000h,000h,000h,000h,0DCh,066h,066h,066h,066h,066h,07Ch,060h,060h,0F0h,000h ; Hex #70 + Db 000h,000h,000h,000h,000h,076h,0CCh,0CCh,0CCh,0CCh,0CCh,07Ch,00Ch,00Ch,01Eh,000h ; Hex #71 + Db 000h,000h,000h,000h,000h,0DCh,076h,066h,060h,060h,060h,0F0h,000h,000h,000h,000h ; Hex #72 + Db 000h,000h,000h,000h,000h,07Ch,0C6h,060h,038h,00Ch,0C6h,07Ch,000h,000h,000h,000h ; Hex #73 + Db 000h,000h,010h,030h,030h,0FCh,030h,030h,030h,030h,036h,01Ch,000h,000h,000h,000h ; Hex #74 + Db 000h,000h,000h,000h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #75 + Db 000h,000h,000h,000h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,06Ch,038h,000h,000h,000h,000h ; Hex #76 + Db 000h,000h,000h,000h,000h,0C6h,0C6h,0D6h,0D6h,0D6h,0FEh,06Ch,000h,000h,000h,000h ; Hex #77 + Db 000h,000h,000h,000h,000h,0C6h,06Ch,038h,038h,038h,06Ch,0C6h,000h,000h,000h,000h ; Hex #78 + Db 000h,000h,000h,000h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Eh,006h,00Ch,0F8h,000h ; Hex #79 + Db 000h,000h,000h,000h,000h,0FEh,0CCh,018h,030h,060h,0C6h,0FEh,000h,000h,000h,000h ; Hex #7A + Db 000h,000h,00Eh,018h,018h,018h,070h,018h,018h,018h,018h,00Eh,000h,000h,000h,000h ; Hex #7B + Db 000h,000h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,000h,000h,000h,000h ; Hex #7C + Db 000h,000h,070h,018h,018h,018h,00Eh,018h,018h,018h,018h,070h,000h,000h,000h,000h ; Hex #7D + Db 000h,076h,0DCh,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #7E + Db 000h,000h,000h,000h,010h,038h,06Ch,0C6h,0C6h,0C6h,0FEh,000h,000h,000h,000h,000h ; Hex #7F + Db 000h,000h,03Ch,066h,0C2h,0C0h,0C0h,0C0h,0C0h,0C2h,066h,03Ch,018h,070h,000h,000h ; Hex #80 + Db 000h,000h,0CCh,000h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #81 + Db 000h,00Ch,018h,030h,000h,07Ch,0C6h,0FEh,0C0h,0C0h,0C6h,07Ch,000h,000h,000h,000h ; Hex #82 + Db 000h,010h,038h,06Ch,000h,078h,00Ch,07Ch,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #83 + Db 000h,000h,0CCh,000h,000h,078h,00Ch,07Ch,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #84 + Db 000h,060h,030h,018h,000h,078h,00Ch,07Ch,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #85 + Db 000h,038h,06Ch,038h,000h,078h,00Ch,07Ch,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #86 + Db 000h,000h,000h,000h,000h,07Ch,0C6h,0C0h,0C0h,0C0h,0C6h,07Ch,018h,070h,000h,000h ; Hex #87 + Db 000h,010h,038h,06Ch,000h,07Ch,0C6h,0FEh,0C0h,0C0h,0C6h,07Ch,000h,000h,000h,000h ; Hex #88 + Db 000h,000h,0C6h,000h,000h,07Ch,0C6h,0FEh,0C0h,0C0h,0C6h,07Ch,000h,000h,000h,000h ; Hex #89 + Db 000h,060h,030h,018h,000h,07Ch,0C6h,0FEh,0C0h,0C0h,0C6h,07Ch,000h,000h,000h,000h ; Hex #8A + Db 000h,000h,066h,000h,000h,038h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #8B + Db 000h,018h,03Ch,066h,000h,038h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #8C + Db 000h,060h,030h,018h,000h,038h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #8D + Db 000h,0C6h,000h,010h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #8E + Db 038h,06Ch,038h,010h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #8F + Db 00Ch,018h,000h,0FEh,066h,062h,068h,078h,068h,062h,066h,0FEh,000h,000h,000h,000h ; Hex #90 + Db 000h,000h,000h,000h,000h,0ECh,036h,036h,07Eh,0D8h,0D8h,06Eh,000h,000h,000h,000h ; Hex #91 + Db 000h,000h,03Eh,06Ch,0CCh,0CCh,0FEh,0CCh,0CCh,0CCh,0CCh,0CEh,000h,000h,000h,000h ; Hex #92 + Db 000h,010h,038h,06Ch,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #93 + Db 000h,000h,0C6h,000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #94 + Db 000h,060h,030h,018h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #95 + Db 000h,030h,078h,0CCh,000h,0CCh,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #96 + Db 000h,060h,030h,018h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #97 + Db 000h,000h,0C6h,000h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Eh,006h,00Ch,078h,000h ; Hex #98 + Db 000h,0C6h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #99 + Db 000h,0C6h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #9A + Db 000h,000h,000h,000h,000h,07Ch,0CEh,0DEh,0F6h,0E6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #9B + Db 000h,038h,06Ch,064h,060h,0F0h,060h,060h,060h,060h,0E6h,0FCh,000h,000h,000h,000h ; Hex #9C + Db 000h,004h,07Ch,0CEh,0CEh,0D6h,0D6h,0D6h,0D6h,0E6h,0E6h,07Ch,040h,000h,000h,000h ; Hex #9D + Db 000h,000h,000h,000h,000h,0C6h,06Ch,038h,038h,06Ch,0C6h,000h,000h,000h,000h,000h ; Hex #9E + Db 000h,00Eh,01Bh,018h,018h,018h,07Eh,018h,018h,018h,0D8h,070h,000h,000h,000h,000h ; Hex #9F + Db 000h,018h,030h,060h,000h,078h,00Ch,07Ch,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #A0 + Db 000h,00Ch,018h,030h,000h,038h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #A1 + Db 000h,018h,030h,060h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #A2 + Db 000h,018h,030h,060h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #A3 + Db 000h,000h,076h,0DCh,000h,0DCh,066h,066h,066h,066h,066h,066h,000h,000h,000h,000h ; Hex #A4 + Db 076h,0DCh,000h,0C6h,0E6h,0F6h,0FEh,0DEh,0CEh,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #A5 + Db 000h,000h,03Ch,06Ch,06Ch,03Eh,000h,07Eh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #A6 + Db 000h,000h,038h,06Ch,06Ch,038h,000h,07Ch,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #A7 + Db 000h,000h,030h,030h,000h,030h,030h,060h,0C0h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #A8 + Db 000h,000h,07Ch,082h,0B2h,0AAh,0B2h,0AAh,0AAh,082h,07Ch,000h,000h,000h,000h,000h ; Hex #A9 + Db 000h,000h,000h,000h,000h,000h,0FEh,006h,006h,006h,006h,000h,000h,000h,000h,000h ; Hex #AA + Db 000h,060h,0E0h,062h,066h,06Ch,018h,030h,060h,0DCh,086h,00Ch,018h,03Eh,000h,000h ; Hex #AB + Db 000h,060h,0E0h,062h,066h,06Ch,018h,030h,066h,0CEh,09Ah,03Fh,006h,006h,000h,000h ; Hex #AC + Db 000h,000h,018h,018h,000h,018h,018h,018h,03Ch,03Ch,03Ch,018h,000h,000h,000h,000h ; Hex #AD + Db 000h,000h,000h,000h,000h,036h,06Ch,0D8h,06Ch,036h,000h,000h,000h,000h,000h,000h ; Hex #AE + Db 000h,000h,000h,000h,000h,0D8h,06Ch,036h,06Ch,0D8h,000h,000h,000h,000h,000h,000h ; Hex #AF + Db 011h,044h,011h,044h,011h,044h,011h,044h,011h,044h,011h,044h,011h,044h,011h,044h ; Hex #B0 + Db 055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh ; Hex #B1 + Db 0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h ; Hex #B2 + Db 018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #B3 + Db 018h,018h,018h,018h,018h,018h,018h,0F8h,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #B4 + Db 060h,0C0h,010h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #B5 + Db 07Ch,0C6h,010h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #B6 + Db 00Ch,006h,010h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #B7 + Db 000h,000h,07Ch,082h,09Ah,0A2h,0A2h,0A2h,09Ah,082h,07Ch,000h,000h,000h,000h,000h ; Hex #B8 + Db 036h,036h,036h,036h,036h,0F6h,006h,0F6h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #B9 + Db 036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #BA + Db 000h,000h,000h,000h,000h,0FEh,006h,0F6h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #BB + Db 036h,036h,036h,036h,036h,0F6h,006h,0FEh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #BC + Db 000h,000h,018h,018h,07Ch,0C6h,0C0h,0C0h,0C6h,07Ch,018h,018h,000h,000h,000h,000h ; Hex #BD + Db 000h,000h,000h,066h,066h,03Ch,018h,07Eh,018h,07Eh,018h,018h,000h,000h,000h,000h ; Hex #BE + Db 000h,000h,000h,000h,000h,000h,000h,0F8h,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #BF + Db 018h,018h,018h,018h,018h,018h,018h,01Fh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #C0 + Db 018h,018h,018h,018h,018h,018h,018h,0FFh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #C1 + Db 000h,000h,000h,000h,000h,000h,000h,0FFh,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #C2 + Db 018h,018h,018h,018h,018h,018h,018h,01Fh,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #C3 + Db 000h,000h,000h,000h,000h,000h,000h,0FFh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #C4 + Db 018h,018h,018h,018h,018h,018h,018h,0FFh,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #C5 + Db 000h,000h,076h,0DCh,000h,078h,00Ch,07Ch,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #C6 + Db 076h,0DCh,000h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #C7 + Db 036h,036h,036h,036h,036h,037h,030h,03Fh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #C8 + Db 000h,000h,000h,000h,000h,03Fh,030h,037h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #C9 + Db 036h,036h,036h,036h,036h,0F7h,000h,0FFh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #CA + Db 000h,000h,000h,000h,000h,0FFh,000h,0F7h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #CB + Db 036h,036h,036h,036h,036h,037h,030h,037h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #CC + Db 000h,000h,000h,000h,000h,0FFh,000h,0FFh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #CD + Db 036h,036h,036h,036h,036h,0F7h,000h,0F7h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #CE + Db 000h,000h,000h,000h,0C6h,07Ch,0C6h,0C6h,0C6h,0C6h,07Ch,0C6h,000h,000h,000h,000h ; Hex #CF + Db 000h,000h,034h,018h,02Ch,006h,03Eh,066h,066h,066h,066h,03Ch,000h,000h,000h,000h ; Hex #D0 + Db 000h,000h,0F8h,06Ch,066h,066h,0F6h,066h,066h,066h,06Ch,0F8h,000h,000h,000h,000h ; Hex #D1 + Db 038h,06Ch,000h,0FEh,066h,062h,068h,078h,068h,062h,066h,0FEh,000h,000h,000h,000h ; Hex #D2 + Db 000h,0C6h,000h,0FEh,066h,062h,068h,078h,068h,062h,066h,0FEh,000h,000h,000h,000h ; Hex #D3 + Db 030h,018h,000h,0FEh,066h,062h,068h,078h,068h,062h,066h,0FEh,000h,000h,000h,000h ; Hex #D4 + Db 000h,000h,000h,000h,000h,038h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #D5 + Db 00Ch,018h,000h,03Ch,018h,018h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #D6 + Db 03Ch,066h,000h,03Ch,018h,018h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #D7 + Db 000h,066h,000h,03Ch,018h,018h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #D8 + Db 018h,018h,018h,018h,018h,018h,018h,0F8h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #D9 + Db 000h,000h,000h,000h,000h,000h,000h,01Fh,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #DA + Db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh ; Hex #DB + Db 000h,000h,000h,000h,000h,000h,000h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh ; Hex #DC + Db 000h,018h,018h,018h,018h,018h,000h,000h,018h,018h,018h,018h,018h,000h,000h,000h ; Hex #DD + Db 030h,018h,000h,03Ch,018h,018h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #DE + Db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #DF + Db 018h,030h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #E0 + Db 000h,000h,078h,0CCh,0CCh,0CCh,0D8h,0CCh,0C6h,0C6h,0C6h,0CCh,000h,000h,000h,000h ; Hex #E1 + Db 038h,06Ch,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #E2 + Db 030h,018h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #E3 + Db 000h,000h,076h,0DCh,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #E4 + Db 076h,0DCh,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #E5 + Db 000h,000h,000h,000h,000h,066h,066h,066h,066h,066h,066h,07Ch,060h,060h,0C0h,000h ; Hex #E6 + Db 000h,000h,0E0h,060h,060h,07Ch,066h,066h,066h,066h,066h,07Ch,060h,060h,0F0h,000h ; Hex #E7 + Db 000h,000h,0F0h,060h,07Ch,066h,066h,066h,066h,07Ch,060h,0F0h,000h,000h,000h,000h ; Hex #E8 + Db 018h,030h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #E9 + Db 038h,06Ch,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #EA + Db 030h,018h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #EB + Db 000h,00Ch,018h,030h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Eh,006h,00Ch,0F8h,000h ; Hex #EC + Db 00Ch,018h,000h,066h,066h,066h,066h,03Ch,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #ED + Db 000h,0FFh,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #EE + Db 000h,00Ch,018h,030h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #EF + Db 000h,000h,000h,000h,000h,000h,000h,0FEh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #F0 + Db 000h,000h,000h,000h,018h,018h,07Eh,018h,018h,000h,000h,07Eh,000h,000h,000h,000h ; Hex #F1 + Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,0FFh,000h,0FFh,000h ; Hex #F2 + Db 000h,0E0h,030h,062h,036h,0ECh,018h,030h,066h,0CEh,09Ah,03Fh,006h,006h,000h,000h ; Hex #F3 + Db 000h,000h,07Fh,0DBh,0DBh,0DBh,07Bh,01Bh,01Bh,01Bh,01Bh,01Bh,000h,000h,000h,000h ; Hex #F4 + Db 000h,07Ch,0C6h,060h,038h,06Ch,0C6h,0C6h,06Ch,038h,00Ch,0C6h,07Ch,000h,000h,000h ; Hex #F5 + Db 000h,000h,000h,000h,000h,018h,000h,07Eh,000h,018h,000h,000h,000h,000h,000h,000h ; Hex #F6 + Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,018h,00Ch,078h,000h,000h ; Hex #F7 + Db 000h,038h,06Ch,06Ch,038h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #F8 + Db 000h,0C6h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #F9 + Db 000h,000h,000h,000h,000h,000h,000h,018h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #FA + Db 000h,018h,038h,018h,018h,018h,03Ch,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #FB + Db 000h,07Ch,006h,03Ch,006h,006h,07Ch,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #FC + Db 000h,03Ch,066h,00Ch,018h,032h,07Eh,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #FD + Db 000h,000h,000h,000h,07Eh,07Eh,07Eh,07Eh,07Eh,07Eh,07Eh,000h,000h,000h,000h,000h ; Hex #FE + 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/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 @@ +;*************************************************** +; CHARACTER FONT FILE +; Source Assembler File +; +; CODE PAGE: 850 +; FONT RESOLUTION: 8 x 8 +; +; DATE CREATED:05-28-1987 +; +; +; Output file from: MULTIFON, Version 1A +; +;*************************************************** + Db 000h,000h,000h,000h,000h,000h,000h,000h ; Hex #0 + Db 07Eh,081h,0A5h,081h,0BDh,099h,081h,07Eh ; Hex #1 + Db 07Eh,0FFh,0DBh,0FFh,0C3h,0E7h,0FFh,07Eh ; Hex #2 + Db 06Ch,0FEh,0FEh,0FEh,07Ch,038h,010h,000h ; Hex #3 + Db 010h,038h,07Ch,0FEh,07Ch,038h,010h,000h ; Hex #4 + Db 038h,07Ch,038h,0FEh,0FEh,0D6h,010h,038h ; Hex #5 + Db 010h,038h,07Ch,0FEh,0FEh,07Ch,010h,038h ; Hex #6 + Db 000h,000h,018h,03Ch,03Ch,018h,000h,000h ; Hex #7 + Db 0FFh,0FFh,0E7h,0C3h,0C3h,0E7h,0FFh,0FFh ; Hex #8 + Db 000h,03Ch,066h,042h,042h,066h,03Ch,000h ; Hex #9 + Db 0FFh,0C3h,099h,0BDh,0BDh,099h,0C3h,0FFh ; Hex #A + Db 00Fh,007h,00Fh,07Dh,0CCh,0CCh,0CCh,078h ; Hex #B + Db 03Ch,066h,066h,066h,03Ch,018h,07Eh,018h ; Hex #C + Db 03Fh,033h,03Fh,030h,030h,070h,0F0h,0E0h ; Hex #D + Db 07Fh,063h,07Fh,063h,063h,067h,0E6h,0C0h ; Hex #E + Db 018h,0DBh,03Ch,0E7h,0E7h,03Ch,0DBh,018h ; Hex #F + Db 080h,0E0h,0F8h,0FEh,0F8h,0E0h,080h,000h ; Hex #10 + Db 002h,00Eh,03Eh,0FEh,03Eh,00Eh,002h,000h ; Hex #11 + Db 018h,03Ch,07Eh,018h,018h,07Eh,03Ch,018h ; Hex #12 + Db 066h,066h,066h,066h,066h,000h,066h,000h ; Hex #13 + Db 07Fh,0DBh,0DBh,07Bh,01Bh,01Bh,01Bh,000h ; Hex #14 + Db 03Eh,061h,03Ch,066h,066h,03Ch,086h,07Ch ; Hex #15 + Db 000h,000h,000h,000h,07Eh,07Eh,07Eh,000h ; Hex #16 + Db 018h,03Ch,07Eh,018h,07Eh,03Ch,018h,0FFh ; Hex #17 + Db 018h,03Ch,07Eh,018h,018h,018h,018h,000h ; Hex #18 + Db 018h,018h,018h,018h,07Eh,03Ch,018h,000h ; Hex #19 + Db 000h,018h,00Ch,0FEh,00Ch,018h,000h,000h ; Hex #1A + Db 000h,030h,060h,0FEh,060h,030h,000h,000h ; Hex #1B + Db 000h,000h,0C0h,0C0h,0C0h,0FEh,000h,000h ; Hex #1C + Db 000h,024h,066h,0FFh,066h,024h,000h,000h ; Hex #1D + Db 000h,018h,03Ch,07Eh,0FFh,0FFh,000h,000h ; Hex #1E + Db 000h,0FFh,0FFh,07Eh,03Ch,018h,000h,000h ; Hex #1F + Db 000h,000h,000h,000h,000h,000h,000h,000h ; Hex #20 + Db 018h,03Ch,03Ch,018h,018h,000h,018h,000h ; Hex #21 + Db 066h,066h,024h,000h,000h,000h,000h,000h ; Hex #22 + Db 06Ch,06Ch,0FEh,06Ch,0FEh,06Ch,06Ch,000h ; Hex #23 + Db 018h,03Eh,060h,03Ch,006h,07Ch,018h,000h ; Hex #24 + Db 000h,0C6h,0CCh,018h,030h,066h,0C6h,000h ; Hex #25 + Db 038h,06Ch,038h,076h,0DCh,0CCh,076h,000h ; Hex #26 + Db 018h,018h,030h,000h,000h,000h,000h,000h ; Hex #27 + Db 00Ch,018h,030h,030h,030h,018h,00Ch,000h ; Hex #28 + Db 030h,018h,00Ch,00Ch,00Ch,018h,030h,000h ; Hex #29 + Db 000h,066h,03Ch,0FFh,03Ch,066h,000h,000h ; Hex #2A + Db 000h,018h,018h,07Eh,018h,018h,000h,000h ; Hex #2B + Db 000h,000h,000h,000h,000h,018h,018h,030h ; Hex #2C + Db 000h,000h,000h,07Eh,000h,000h,000h,000h ; Hex #2D + Db 000h,000h,000h,000h,000h,018h,018h,000h ; Hex #2E + Db 006h,00Ch,018h,030h,060h,0C0h,080h,000h ; Hex #2F + Db 038h,06Ch,0C6h,0D6h,0C6h,06Ch,038h,000h ; Hex #30 + Db 018h,038h,018h,018h,018h,018h,07Eh,000h ; Hex #31 + Db 07Ch,0C6h,006h,01Ch,030h,066h,0FEh,000h ; Hex #32 + Db 07Ch,0C6h,006h,03Ch,006h,0C6h,07Ch,000h ; Hex #33 + Db 01Ch,03Ch,06Ch,0CCh,0FEh,00Ch,01Eh,000h ; Hex #34 + Db 0FEh,0C0h,0C0h,0FCh,006h,0C6h,07Ch,000h ; Hex #35 + Db 038h,060h,0C0h,0FCh,0C6h,0C6h,07Ch,000h ; Hex #36 + Db 0FEh,0C6h,00Ch,018h,030h,030h,030h,000h ; Hex #37 + Db 07Ch,0C6h,0C6h,07Ch,0C6h,0C6h,07Ch,000h ; Hex #38 + Db 07Ch,0C6h,0C6h,07Eh,006h,00Ch,078h,000h ; Hex #39 + Db 000h,018h,018h,000h,000h,018h,018h,000h ; Hex #3A + Db 000h,018h,018h,000h,000h,018h,018h,030h ; Hex #3B + Db 006h,00Ch,018h,030h,018h,00Ch,006h,000h ; Hex #3C + Db 000h,000h,07Eh,000h,000h,07Eh,000h,000h ; Hex #3D + Db 060h,030h,018h,00Ch,018h,030h,060h,000h ; Hex #3E + Db 07Ch,0C6h,00Ch,018h,018h,000h,018h,000h ; Hex #3F + Db 07Ch,0C6h,0DEh,0DEh,0DEh,0C0h,078h,000h ; Hex #40 + Db 038h,06Ch,0C6h,0FEh,0C6h,0C6h,0C6h,000h ; Hex #41 + Db 0FCh,066h,066h,07Ch,066h,066h,0FCh,000h ; Hex #42 + Db 03Ch,066h,0C0h,0C0h,0C0h,066h,03Ch,000h ; Hex #43 + Db 0F8h,06Ch,066h,066h,066h,06Ch,0F8h,000h ; Hex #44 + Db 0FEh,062h,068h,078h,068h,062h,0FEh,000h ; Hex #45 + Db 0FEh,062h,068h,078h,068h,060h,0F0h,000h ; Hex #46 + Db 03Ch,066h,0C0h,0C0h,0CEh,066h,03Ah,000h ; Hex #47 + Db 0C6h,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,000h ; Hex #48 + Db 03Ch,018h,018h,018h,018h,018h,03Ch,000h ; Hex #49 + Db 01Eh,00Ch,00Ch,00Ch,0CCh,0CCh,078h,000h ; Hex #4A + Db 0E6h,066h,06Ch,078h,06Ch,066h,0E6h,000h ; Hex #4B + Db 0F0h,060h,060h,060h,062h,066h,0FEh,000h ; Hex #4C + Db 0C6h,0EEh,0FEh,0FEh,0D6h,0C6h,0C6h,000h ; Hex #4D + Db 0C6h,0E6h,0F6h,0DEh,0CEh,0C6h,0C6h,000h ; Hex #4E + Db 07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h ; Hex #4F + Db 0FCh,066h,066h,07Ch,060h,060h,0F0h,000h ; Hex #50 + Db 07Ch,0C6h,0C6h,0C6h,0C6h,0CEh,07Ch,00Eh ; Hex #51 + Db 0FCh,066h,066h,07Ch,06Ch,066h,0E6h,000h ; Hex #52 + Db 03Ch,066h,030h,018h,00Ch,066h,03Ch,000h ; Hex #53 + Db 07Eh,07Eh,05Ah,018h,018h,018h,03Ch,000h ; Hex #54 + Db 0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h ; Hex #55 + Db 0C6h,0C6h,0C6h,0C6h,0C6h,06Ch,038h,000h ; Hex #56 + Db 0C6h,0C6h,0C6h,0D6h,0D6h,0FEh,06Ch,000h ; Hex #57 + Db 0C6h,0C6h,06Ch,038h,06Ch,0C6h,0C6h,000h ; Hex #58 + Db 066h,066h,066h,03Ch,018h,018h,03Ch,000h ; Hex #59 + Db 0FEh,0C6h,08Ch,018h,032h,066h,0FEh,000h ; Hex #5A + Db 03Ch,030h,030h,030h,030h,030h,03Ch,000h ; Hex #5B + Db 0C0h,060h,030h,018h,00Ch,006h,002h,000h ; Hex #5C + Db 03Ch,00Ch,00Ch,00Ch,00Ch,00Ch,03Ch,000h ; Hex #5D + Db 010h,038h,06Ch,0C6h,000h,000h,000h,000h ; Hex #5E + Db 000h,000h,000h,000h,000h,000h,000h,0FFh ; Hex #5F + Db 030h,018h,00Ch,000h,000h,000h,000h,000h ; Hex #60 + Db 000h,000h,078h,00Ch,07Ch,0CCh,076h,000h ; Hex #61 + Db 0E0h,060h,07Ch,066h,066h,066h,0DCh,000h ; Hex #62 + Db 000h,000h,07Ch,0C6h,0C0h,0C6h,07Ch,000h ; Hex #63 + Db 01Ch,00Ch,07Ch,0CCh,0CCh,0CCh,076h,000h ; Hex #64 + Db 000h,000h,07Ch,0C6h,0FEh,0C0h,07Ch,000h ; Hex #65 + Db 03Ch,066h,060h,0F8h,060h,060h,0F0h,000h ; Hex #66 + Db 000h,000h,076h,0CCh,0CCh,07Ch,00Ch,0F8h ; Hex #67 + Db 0E0h,060h,06Ch,076h,066h,066h,0E6h,000h ; Hex #68 + Db 018h,000h,038h,018h,018h,018h,03Ch,000h ; Hex #69 + Db 006h,000h,006h,006h,006h,066h,066h,03Ch ; Hex #6A + Db 0E0h,060h,066h,06Ch,078h,06Ch,0E6h,000h ; Hex #6B + Db 038h,018h,018h,018h,018h,018h,03Ch,000h ; Hex #6C + Db 000h,000h,0ECh,0FEh,0D6h,0D6h,0D6h,000h ; Hex #6D + Db 000h,000h,0DCh,066h,066h,066h,066h,000h ; Hex #6E + Db 000h,000h,07Ch,0C6h,0C6h,0C6h,07Ch,000h ; Hex #6F + Db 000h,000h,0DCh,066h,066h,07Ch,060h,0F0h ; Hex #70 + Db 000h,000h,076h,0CCh,0CCh,07Ch,00Ch,01Eh ; Hex #71 + Db 000h,000h,0DCh,076h,060h,060h,0F0h,000h ; Hex #72 + Db 000h,000h,07Eh,0C0h,07Ch,006h,0FCh,000h ; Hex #73 + Db 030h,030h,0FCh,030h,030h,036h,01Ch,000h ; Hex #74 + Db 000h,000h,0CCh,0CCh,0CCh,0CCh,076h,000h ; Hex #75 + Db 000h,000h,0C6h,0C6h,0C6h,06Ch,038h,000h ; Hex #76 + Db 000h,000h,0C6h,0D6h,0D6h,0FEh,06Ch,000h ; Hex #77 + Db 000h,000h,0C6h,06Ch,038h,06Ch,0C6h,000h ; Hex #78 + Db 000h,000h,0C6h,0C6h,0C6h,07Eh,006h,0FCh ; Hex #79 + Db 000h,000h,07Eh,04Ch,018h,032h,07Eh,000h ; Hex #7A + Db 00Eh,018h,018h,070h,018h,018h,00Eh,000h ; Hex #7B + Db 018h,018h,018h,018h,018h,018h,018h,000h ; Hex #7C + Db 070h,018h,018h,00Eh,018h,018h,070h,000h ; Hex #7D + Db 076h,0DCh,000h,000h,000h,000h,000h,000h ; Hex #7E + Db 000h,010h,038h,06Ch,0C6h,0C6h,0FEh,000h ; Hex #7F + Db 07Ch,0C6h,0C0h,0C0h,0C6h,07Ch,00Ch,078h ; Hex #80 + Db 0CCh,000h,0CCh,0CCh,0CCh,0CCh,076h,000h ; Hex #81 + Db 00Ch,018h,07Ch,0C6h,0FEh,0C0h,07Ch,000h ; Hex #82 + Db 07Ch,082h,078h,00Ch,07Ch,0CCh,076h,000h ; Hex #83 + Db 0C6h,000h,078h,00Ch,07Ch,0CCh,076h,000h ; Hex #84 + Db 030h,018h,078h,00Ch,07Ch,0CCh,076h,000h ; Hex #85 + Db 030h,030h,078h,00Ch,07Ch,0CCh,076h,000h ; Hex #86 + Db 000h,000h,07Eh,0C0h,0C0h,07Eh,00Ch,038h ; Hex #87 + Db 07Ch,082h,07Ch,0C6h,0FEh,0C0h,07Ch,000h ; Hex #88 + Db 0C6h,000h,07Ch,0C6h,0FEh,0C0h,07Ch,000h ; Hex #89 + Db 030h,018h,07Ch,0C6h,0FEh,0C0h,07Ch,000h ; Hex #8A + Db 066h,000h,038h,018h,018h,018h,03Ch,000h ; Hex #8B + Db 07Ch,082h,038h,018h,018h,018h,03Ch,000h ; Hex #8C + Db 030h,018h,000h,038h,018h,018h,03Ch,000h ; Hex #8D + Db 0C6h,038h,06Ch,0C6h,0FEh,0C6h,0C6h,000h ; Hex #8E + Db 038h,06Ch,07Ch,0C6h,0FEh,0C6h,0C6h,000h ; Hex #8F + Db 018h,030h,0FEh,0C0h,0F8h,0C0h,0FEh,000h ; Hex #90 + Db 000h,000h,07Eh,012h,0fEh,090h,0fEh,000h ; Hex #91 + Db 03Eh,06Ch,0CCh,0FEh,0CCh,0CCh,0CEh,000h ; Hex #92 + Db 07Ch,082h,07Ch,0C6h,0C6h,0C6h,07Ch,000h ; Hex #93 + Db 0C6h,000h,07Ch,0C6h,0C6h,0C6h,07Ch,000h ; Hex #94 + Db 030h,018h,07Ch,0C6h,0C6h,0C6h,07Ch,000h ; Hex #95 + Db 078h,084h,000h,0CCh,0CCh,0CCh,076h,000h ; Hex #96 + Db 060h,030h,0CCh,0CCh,0CCh,0CCh,076h,000h ; Hex #97 + Db 0C6h,000h,0C6h,0C6h,0C6h,07Eh,006h,0FCh ; Hex #98 + Db 0C6h,038h,06Ch,0C6h,0C6h,06Ch,038h,000h ; Hex #99 + Db 0C6h,000h,0C6h,0C6h,0C6h,0C6h,07Ch,000h ; Hex #9A + Db 000h,002h,07Ch,0CEh,0D6h,0E6h,07Ch,080h ; Hex #9B + Db 038h,06Ch,064h,0F0h,060h,066h,0FCh,000h ; Hex #9C + Db 03Ah,06Ch,0CEh,0D6h,0E6h,06Ch,0B8h,000h ; Hex #9D + Db 000h,0C6h,06Ch,038h,06Ch,0C6h,000h,000h ; Hex #9E + Db 00Eh,01Bh,018h,03Ch,018h,0D8h,070h,000h ; Hex #9F + Db 018h,030h,078h,00Ch,07Ch,0CCh,076h,000h ; Hex #A0 + Db 00Ch,018h,000h,038h,018h,018h,03Ch,000h ; Hex #A1 + Db 00Ch,018h,07Ch,0C6h,0C6h,0C6h,07Ch,000h ; Hex #A2 + Db 018h,030h,0CCh,0CCh,0CCh,0CCh,076h,000h ; Hex #A3 + Db 076h,0DCh,000h,0DCh,066h,066h,066h,000h ; Hex #A4 + Db 076h,0DCh,000h,0E6h,0F6h,0DEh,0CEh,000h ; Hex #A5 + Db 03Ch,06Ch,06Ch,03Eh,000h,07Eh,000h,000h ; Hex #A6 + Db 038h,06Ch,06Ch,038h,000h,07Ch,000h,000h ; Hex #A7 + Db 018h,000h,018h,018h,030h,063h,03Eh,000h ; Hex #A8 + Db 07Eh,081h,0B9h,0A5h,0B9h,0A5h,081h,07Eh ; Hex #A9 + Db 000h,000h,000h,0FEh,006h,006h,000h,000h ; Hex #AA + Db 063h,0E6h,06Ch,07Eh,033h,066h,0CCh,00Fh ; Hex #AB + Db 063h,0E6h,06Ch,07Ah,036h,06Ah,0DFh,006h ; Hex #AC + Db 018h,000h,018h,018h,03Ch,03Ch,018h,000h ; Hex #AD + Db 000h,033h,066h,0CCh,066h,033h,000h,000h ; Hex #AE + Db 000h,0CCh,066h,033h,066h,0CCh,000h,000h ; Hex #AF + Db 022h,088h,022h,088h,022h,088h,022h,088h ; Hex #B0 + Db 055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh ; Hex #B1 + Db 077h,0DDh,077h,0DDh,077h,0DDh,077h,0DDh ; Hex #B2 + Db 018h,018h,018h,018h,018h,018h,018h,018h ; Hex #B3 + Db 018h,018h,018h,018h,0F8h,018h,018h,018h ; Hex #B4 + Db 030h,060h,038h,06Ch,0C6h,0FEh,0C6h,000h ; Hex #B5 + Db 07Ch,082h,038h,06Ch,0C6h,0FEh,0C6h,000h ; Hex #B6 + Db 018h,00Ch,038h,06Ch,0C6h,0FEh,0C6h,000h ; Hex #B7 + Db 07Eh,081h,09Dh,0A1h,0A1h,09Dh,081h,07Eh ; Hex #B8 + Db 036h,036h,0F6h,006h,0F6h,036h,036h,036h ; Hex #B9 + Db 036h,036h,036h,036h,036h,036h,036h,036h ; Hex #BA + Db 000h,000h,0FEh,006h,0F6h,036h,036h,036h ; Hex #BB + Db 036h,036h,0F6h,006h,0FEh,000h,000h,000h ; Hex #BC + Db 018h,018h,07Eh,0C0h,0C0h,07Eh,018h,018h ; Hex #BD + Db 066h,066h,03Ch,07Eh,018h,07Eh,018h,018h ; Hex #BE + Db 000h,000h,000h,000h,0F8h,018h,018h,018h ; Hex #BF + Db 018h,018h,018h,018h,01Fh,000h,000h,000h ; Hex #C0 + Db 018h,018h,018h,018h,0FFh,000h,000h,000h ; Hex #C1 + Db 000h,000h,000h,000h,0FFh,018h,018h,018h ; Hex #C2 + Db 018h,018h,018h,018h,01Fh,018h,018h,018h ; Hex #C3 + Db 000h,000h,000h,000h,0FFh,000h,000h,000h ; Hex #C4 + Db 018h,018h,018h,018h,0FFh,018h,018h,018h ; Hex #C5 + Db 076h,0DCh,07Ch,006h,07Eh,0C6h,07Eh,000h ; Hex #C6 + Db 076h,0DCh,038h,06Ch,0C6h,0FEh,0C6h,000h ; Hex #C7 + Db 036h,036h,037h,030h,03Fh,000h,000h,000h ; Hex #C8 + Db 000h,000h,03Fh,030h,037h,036h,036h,036h ; Hex #C9 + Db 036h,036h,0F7h,000h,0FFh,000h,000h,000h ; Hex #CA + Db 000h,000h,0FFh,000h,0F7h,036h,036h,036h ; Hex #CB + Db 036h,036h,037h,030h,037h,036h,036h,036h ; Hex #CC + Db 000h,000h,0FFh,000h,0FFh,000h,000h,000h ; Hex #CD + Db 036h,036h,0F7h,000h,0F7h,036h,036h,036h ; Hex #CE + Db 000h,0C6h,07Ch,0C6h,0C6h,07Ch,0C6h,000h ; Hex #CF + Db 030h,07Eh,00Ch,07Ch,0CCh,0CCh,078h,000h ; Hex #D0 + Db 0F8h,06Ch,066h,0F6h,066h,06Ch,0F8h,000h ; Hex #D1 + Db 07Ch,082h,0FEh,0C0h,0FCh,0C0h,0FEh,000h ; Hex #D2 + Db 0C6h,000h,0FEh,0C0h,0FCh,0C0h,0FEh,000h ; Hex #D3 + Db 030h,018h,0FEh,0C0h,0FCh,0C0h,0FEh,000h ; Hex #D4 + Db 000h,000h,038h,018h,018h,018h,03Ch,000h ; Hex #D5 + Db 00Ch,018h,03Ch,018h,018h,018h,03Ch,000h ; Hex #D6 + Db 03Ch,042h,03Ch,018h,018h,018h,03Ch,000h ; Hex #D7 + Db 066h,000h,03Ch,018h,018h,018h,03Ch,000h ; Hex #D8 + Db 018h,018h,018h,018h,0F8h,000h,000h,000h ; Hex #D9 + Db 000h,000h,000h,000h,01Fh,018h,018h,018h ; Hex #DA + Db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh ; Hex #DB + Db 000h,000h,000h,000h,0FFh,0FFh,0FFh,0FFh ; Hex #DC + Db 018h,018h,018h,000h,000h,018h,018h,018h ; Hex #DD + Db 030h,018h,03Ch,018h,018h,018h,03Ch,000h ; Hex #DE + Db 0FFh,0FFh,0FFh,0FFh,000h,000h,000h,000h ; Hex #DF + Db 030h,060h,038h,06Ch,0C6h,06Ch,038h,000h ; Hex #E0 + Db 078h,0CCh,0CCh,0D8h,0CCh,0C6h,0CCh,000h ; Hex #E1 + Db 07Ch,082h,038h,06Ch,0C6h,06Ch,038h,000h ; Hex #E2 + Db 00Ch,006h,038h,06Ch,0C6h,06Ch,038h,000h ; Hex #E3 + Db 076h,0DCh,07Ch,0C6h,0C6h,0C6h,07Ch,000h ; Hex #E4 + Db 076h,0DCh,038h,06Ch,0C6h,06Ch,038h,000h ; Hex #E5 + Db 000h,000h,066h,066h,066h,066h,07Ch,0C0h ; Hex #E6 + Db 0E0h,060h,07Ch,066h,066h,07Ch,060h,0F0h ; Hex #E7 + Db 0F0h,060h,07Ch,066h,07Ch,060h,0F0h,000h ; Hex #E8 + Db 018h,030h,0C6h,0C6h,0C6h,0C6h,07Ch,000h ; Hex #E9 + Db 07Ch,082h,000h,0C6h,0C6h,0C6h,07Ch,000h ; Hex #EA + Db 060h,030h,0C6h,0C6h,0C6h,0C6h,07Ch,000h ; Hex #EB + Db 018h,030h,0C6h,0C6h,0C6h,07Eh,006h,0FCh ; Hex #EC + Db 00Ch,018h,066h,066h,03Ch,018h,03Ch,000h ; Hex #ED + Db 0FFh,000h,000h,000h,000h,000h,000h,000h ; Hex #EE + Db 00Ch,018h,030h,000h,000h,000h,000h,000h ; Hex #EF + Db 000h,000h,000h,07Eh,000h,000h,000h,000h ; Hex #F0 + Db 018h,018h,07Eh,018h,018h,000h,07Eh,000h ; Hex #F1 + Db 000h,000h,000h,000h,000h,0FFh,000h,0FFh ; Hex #F2 + Db 0E1h,032h,0E4h,03Ah,0F6h,02Ah,05Fh,086h ; Hex #F3 + Db 07Fh,0DBh,0DBh,07Bh,01Bh,01Bh,01Bh,000h ; Hex #F4 + Db 03Eh,061h,03Ch,066h,066h,03Ch,086h,07Ch ; Hex #F5 + Db 000h,018h,000h,07Eh,000h,018h,000h,000h ; Hex #F6 + Db 000h,000h,000h,000h,000h,018h,00Ch,038h ; Hex #F7 + Db 038h,06Ch,06Ch,038h,000h,000h,000h,000h ; Hex #F8 + Db 000h,0C6h,000h,000h,000h,000h,000h,000h ; Hex #F9 + Db 000h,000h,000h,018h,000h,000h,000h,000h ; Hex #FA + Db 018h,038h,018h,018h,03Ch,000h,000h,000h ; Hex #FB + Db 078h,00Ch,038h,00Ch,078h,000h,000h,000h ; Hex #FC + Db 078h,00Ch,018h,030h,07Ch,000h,000h,000h ; Hex #FD + Db 000h,000h,03Ch,03Ch,03Ch,03Ch,000h,000h ; Hex #FE + Db 000h,000h,000h,000h,000h,000h,000h,000h ; Hex #FF + 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 @@ +CODE SEGMENT BYTE PUBLIC 'CODE' + ASSUME CS:CODE,DS:CODE + +IF1 + %OUT EGA.CPI creation file + %OUT . + %OUT CP SRC files: + %OUT . + %OUT . CODE PAGE: 850 +ENDIF + +EGA850: DW LEN_850 ; SIZE OF ENTRY HEADER + DW POST_EGA850,0 ; POINTER TO NEXT HEADER + DW 1 ; DEVICE TYPE + DB "EGA " ; DEVICE SUBTYPE ID + DW 850 ; CODE PAGE ID + DW 3 DUP(0) ; RESERVED + DW OFFSET DATA850,0 ; POINTER TO FONTS +LEN_850 EQU ($-EGA850) ; + ; +DATA850:DW 1 ; CART/NON-CART + DW 3 ; # OF FONTS + DW LEN_D850 ; LENGTH OF DATA +D850: ; + DB 16,8 ; CHARACTER BOX SIZE + DB 0,0 ; ASPECT RATIO (UNUSED) + DW 256 ; NUMBER OF CHARACTERS + ; + INCLUDE 850-8X16.ASM ; + ; + DB 14,8 ; CHARACTER BOX SIZE + DB 0,0 ; ASPECT RATIO (UNUSED) + DW 256 ; NUMBER OF CHARACTERS + ; + INCLUDE 850-8X14.ASM ; + ; + DB 8,8 ; CHARACTER BOX SIZE + DB 0,0 ; ASPECT RATIO (UNUSED) + DW 256 ; NUMBER OF CHARACTERS + ; + INCLUDE 850-8X8.ASM ; + ; +LEN_D850 EQU ($-D850) ; + ; +POST_EGA850 EQU $ ; + ; +CODE ENDS ; + END ; + \ 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 @@ +;*************************************************** +; CHARACTER FONT FILE +; Source Assembler File +; +; CODE PAGE: 860 +; FONT RESOLUTION: 8 x 14 +; +; DATE CREATED:05-28-1987 +; +; +; Output file from: MULTIFON, Version 1A +; +;*************************************************** + Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #0 + Db 000h,000h,000h,07Eh,081h,0A5h,081h,081h,0BDh,099h,081h,07Eh,000h,000h ; Hex #1 + Db 000h,000h,000h,07Eh,0FFh,0DBh,0FFh,0FFh,0C3h,0E7h,0FFh,07Eh,000h,000h ; Hex #2 + Db 000h,000h,000h,000h,06Ch,0FEh,0FEh,0FEh,0FEh,07Ch,038h,010h,000h,000h ; Hex #3 + Db 000h,000h,000h,000h,010h,038h,07Ch,0FEh,07Ch,038h,010h,000h,000h,000h ; Hex #4 + Db 000h,000h,000h,018h,03Ch,03Ch,0E7h,0E7h,0E7h,018h,018h,03Ch,000h,000h ; Hex #5 + Db 000h,000h,000h,018h,03Ch,07Eh,0FFh,0FFh,07Eh,018h,018h,03Ch,000h,000h ; Hex #6 + Db 000h,000h,000h,000h,000h,000h,018h,03Ch,03Ch,018h,000h,000h,000h,000h ; Hex #7 + Db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0E7h,0C3h,0C3h,0E7h,0FFh,0FFh,0FFh,0FFh ; Hex #8 + Db 000h,000h,000h,000h,000h,03Ch,066h,042h,042h,066h,03Ch,000h,000h,000h ; Hex #9 + Db 0FFh,0FFh,0FFh,0FFh,0FFh,0C3h,099h,0BDh,0BDh,099h,0C3h,0FFh,0FFh,0FFh ; Hex #A + Db 000h,000h,000h,01Eh,00Eh,01Ah,032h,078h,0CCh,0CCh,0CCh,078h,000h,000h ; Hex #B + Db 000h,000h,000h,03Ch,066h,066h,066h,03Ch,018h,07Eh,018h,018h,000h,000h ; Hex #C + Db 000h,000h,000h,03Fh,033h,03Fh,030h,030h,030h,070h,0F0h,0E0h,000h,000h ; Hex #D + Db 000h,000h,000h,07Fh,063h,07Fh,063h,063h,063h,067h,0E7h,0E6h,0C0h,000h ; Hex #E + Db 000h,000h,000h,018h,018h,0DBh,03Ch,0E7h,03Ch,0DBh,018h,018h,000h,000h ; Hex #F + Db 000h,000h,000h,080h,0C0h,0E0h,0F8h,0FEh,0F8h,0E0h,0C0h,080h,000h,000h ; Hex #10 + Db 000h,000h,000h,002h,006h,00Eh,03Eh,0FEh,03Eh,00Eh,006h,002h,000h,000h ; Hex #11 + Db 000h,000h,000h,018h,03Ch,07Eh,018h,018h,018h,07Eh,03Ch,018h,000h,000h ; Hex #12 + Db 000h,000h,000h,066h,066h,066h,066h,066h,066h,000h,066h,066h,000h,000h ; Hex #13 + Db 000h,000h,000h,07Fh,0DBh,0DBh,0DBh,07Bh,01Bh,01Bh,01Bh,01Bh,000h,000h ; Hex #14 + Db 000h,000h,07Ch,0C6h,060h,038h,06Ch,0C6h,0C6h,06Ch,038h,00Ch,0C6h,07Ch ; Hex #15 + Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,0FEh,0FEh,0FEh,000h,000h ; Hex #16 + Db 000h,000h,000h,018h,03Ch,07Eh,018h,018h,018h,07Eh,03Ch,018h,07Eh,000h ; Hex #17 + Db 000h,000h,000h,018h,03Ch,07Eh,018h,018h,018h,018h,018h,018h,000h,000h ; Hex #18 + Db 000h,000h,000h,018h,018h,018h,018h,018h,018h,07Eh,03Ch,018h,000h,000h ; Hex #19 + Db 000h,000h,000h,000h,000h,018h,00Ch,0FEh,00Ch,018h,000h,000h,000h,000h ; Hex #1A + Db 000h,000h,000h,000h,000h,030h,060h,0FEh,060h,030h,000h,000h,000h,000h ; Hex #1B + Db 000h,000h,000h,000h,000h,000h,0C0h,0C0h,0C0h,0FEh,000h,000h,000h,000h ; Hex #1C + Db 000h,000h,000h,000h,000h,028h,06Ch,0FEh,06Ch,028h,000h,000h,000h,000h ; Hex #1D + Db 000h,000h,000h,000h,010h,038h,038h,07Ch,07Ch,0FEh,0FEh,000h,000h,000h ; Hex #1E + Db 000h,000h,000h,000h,0FEh,0FEh,07Ch,07Ch,038h,038h,010h,000h,000h,000h ; Hex #1F + Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #20 + Db 000h,000h,000h,018h,03Ch,03Ch,03Ch,018h,018h,000h,018h,018h,000h,000h ; Hex #21 + Db 000h,066h,066h,066h,024h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #22 + Db 000h,000h,000h,06Ch,06Ch,0FEh,06Ch,06Ch,06Ch,0FEh,06Ch,06Ch,000h,000h ; Hex #23 + Db 000h,018h,018h,07Ch,0C6h,0C2h,0C0h,07Ch,006h,086h,0C6h,07Ch,018h,018h ; Hex #24 + Db 000h,000h,000h,000h,000h,0C2h,0C6h,00Ch,018h,030h,066h,0C6h,000h,000h ; Hex #25 + Db 000h,000h,000h,038h,06Ch,06Ch,038h,076h,0DCh,0CCh,0CCh,076h,000h,000h ; Hex #26 + Db 000h,018h,018h,018h,030h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #27 + Db 000h,000h,000h,00Ch,018h,030h,030h,030h,030h,030h,018h,00Ch,000h,000h ; Hex #28 + Db 000h,000h,000h,030h,018h,00Ch,00Ch,00Ch,00Ch,00Ch,018h,030h,000h,000h ; Hex #29 + Db 000h,000h,000h,000h,000h,066h,03Ch,0FFh,03Ch,066h,000h,000h,000h,000h ; Hex #2A + Db 000h,000h,000h,000h,000h,018h,018h,07Eh,018h,018h,000h,000h,000h,000h ; Hex #2B + Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,018h,018h,018h,030h,000h ; Hex #2C + Db 000h,000h,000h,000h,000h,000h,000h,0FEh,000h,000h,000h,000h,000h,000h ; Hex #2D + Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,018h,018h,000h,000h ; Hex #2E + Db 000h,000h,000h,002h,006h,00Ch,018h,030h,060h,0C0h,080h,000h,000h,000h ; Hex #2F + Db 000h,000h,000h,038h,06Ch,0C6h,0C6h,0D6h,0C6h,0C6h,06Ch,038h,000h,000h ; Hex #30 + Db 000h,000h,000h,018h,038h,078h,018h,018h,018h,018h,018h,07Eh,000h,000h ; Hex #31 + Db 000h,000h,000h,07Ch,0C6h,006h,00Ch,018h,030h,060h,0C6h,0FEh,000h,000h ; Hex #32 + Db 000h,000h,000h,07Ch,0C6h,006h,006h,03Ch,006h,006h,0C6h,07Ch,000h,000h ; Hex #33 + Db 000h,000h,000h,00Ch,01Ch,03Ch,06Ch,0CCh,0FEh,00Ch,00Ch,01Eh,000h,000h ; Hex #34 + Db 000h,000h,000h,0FEh,0C0h,0C0h,0C0h,0FCh,006h,006h,0C6h,07Ch,000h,000h ; Hex #35 + Db 000h,000h,000h,038h,060h,0C0h,0C0h,0FCh,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #36 + Db 000h,000h,000h,0FEh,0C6h,006h,00Ch,018h,030h,030h,030h,030h,000h,000h ; Hex #37 + Db 000h,000h,000h,07Ch,0C6h,0C6h,0C6h,07Ch,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #38 + Db 000h,000h,000h,07Ch,0C6h,0C6h,0C6h,07Eh,006h,006h,00Ch,078h,000h,000h ; Hex #39 + Db 000h,000h,000h,000h,018h,018h,000h,000h,000h,018h,018h,000h,000h,000h ; Hex #3A + Db 000h,000h,000h,000h,018h,018h,000h,000h,000h,018h,018h,030h,000h,000h ; Hex #3B + Db 000h,000h,000h,00Ch,018h,030h,060h,0C0h,060h,030h,018h,00Ch,000h,000h ; Hex #3C + Db 000h,000h,000h,000h,000h,000h,07Eh,000h,000h,07Eh,000h,000h,000h,000h ; Hex #3D + Db 000h,000h,000h,060h,030h,018h,00Ch,006h,00Ch,018h,030h,060h,000h,000h ; Hex #3E + Db 000h,000h,000h,07Ch,0C6h,0C6h,00Ch,018h,018h,000h,018h,018h,000h,000h ; Hex #3F + Db 000h,000h,000h,07Ch,0C6h,0C6h,0DEh,0DEh,0DEh,0DCh,0C0h,07Ch,000h,000h ; Hex #40 + Db 000h,000h,000h,010h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,000h,000h ; Hex #41 + Db 000h,000h,000h,0FCh,066h,066h,066h,07Ch,066h,066h,066h,0FCh,000h,000h ; Hex #42 + Db 000h,000h,000h,03Ch,066h,0C2h,0C0h,0C0h,0C0h,0C2h,066h,03Ch,000h,000h ; Hex #43 + Db 000h,000h,000h,0F8h,06Ch,066h,066h,066h,066h,066h,06Ch,0F8h,000h,000h ; Hex #44 + Db 000h,000h,000h,0FEh,066h,062h,068h,078h,068h,062h,066h,0FEh,000h,000h ; Hex #45 + Db 000h,000h,000h,0FEh,066h,062h,068h,078h,068h,060h,060h,0F0h,000h,000h ; Hex #46 + Db 000h,000h,000h,03Ch,066h,0C2h,0C0h,0C0h,0DEh,0C6h,066h,03Ah,000h,000h ; Hex #47 + Db 000h,000h,000h,0C6h,0C6h,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,0C6h,000h,000h ; Hex #48 + Db 000h,000h,000h,03Ch,018h,018h,018h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #49 + Db 000h,000h,000h,01Eh,00Ch,00Ch,00Ch,00Ch,00Ch,0CCh,0CCh,078h,000h,000h ; Hex #4A + Db 000h,000h,000h,0E6h,066h,06Ch,06Ch,078h,06Ch,06Ch,066h,0E6h,000h,000h ; Hex #4B + Db 000h,000h,000h,0F0h,060h,060h,060h,060h,060h,062h,066h,0FEh,000h,000h ; Hex #4C + Db 000h,000h,000h,0C6h,0EEh,0FEh,0D6h,0C6h,0C6h,0C6h,0C6h,0C6h,000h,000h ; Hex #4D + Db 000h,000h,000h,0C6h,0E6h,0F6h,0FEh,0DEh,0CEh,0C6h,0C6h,0C6h,000h,000h ; Hex #4E + Db 000h,000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #4F + Db 000h,000h,000h,0FCh,066h,066h,066h,07Ch,060h,060h,060h,0F0h,000h,000h ; Hex #50 + Db 000h,000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0D6h,0DEh,07Ch,00Eh,000h ; Hex #51 + Db 000h,000h,000h,0FCh,066h,066h,066h,07Ch,06Ch,066h,066h,0E6h,000h,000h ; Hex #52 + Db 000h,000h,000h,07Ch,0C6h,0C6h,060h,038h,00Ch,0C6h,0C6h,07Ch,000h,000h ; Hex #53 + Db 000h,000h,000h,07Eh,07Eh,05Ah,018h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #54 + Db 000h,000h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #55 + Db 000h,000h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,06Ch,038h,010h,000h,000h ; Hex #56 + Db 000h,000h,000h,0C6h,0C6h,0C6h,0C6h,0D6h,0D6h,0FEh,06Ch,06Ch,000h,000h ; Hex #57 + Db 000h,000h,000h,0C6h,0C6h,0C6h,07Ch,038h,07Ch,0C6h,0C6h,0C6h,000h,000h ; Hex #58 + Db 000h,000h,000h,066h,066h,066h,066h,03Ch,018h,018h,018h,03Ch,000h,000h ; Hex #59 + Db 000h,000h,000h,0FEh,0C6h,08Ch,018h,030h,060h,0C2h,0C6h,0FEh,000h,000h ; Hex #5A + Db 000h,000h,000h,03Ch,030h,030h,030h,030h,030h,030h,030h,03Ch,000h,000h ; Hex #5B + Db 000h,000h,000h,080h,0C0h,0E0h,070h,038h,01Ch,00Eh,006h,002h,000h,000h ; Hex #5C + Db 000h,000h,000h,03Ch,00Ch,00Ch,00Ch,00Ch,00Ch,00Ch,00Ch,03Ch,000h,000h ; Hex #5D + Db 010h,038h,06Ch,0C6h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #5E + Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,0FFh ; Hex #5F + Db 000h,030h,018h,00Ch,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #60 + Db 000h,000h,000h,000h,000h,000h,078h,00Ch,07Ch,0CCh,0CCh,076h,000h,000h ; Hex #61 + Db 000h,000h,000h,0E0h,060h,060h,078h,06Ch,066h,066h,066h,07Ch,000h,000h ; Hex #62 + Db 000h,000h,000h,000h,000h,000h,07Ch,0C6h,0C0h,0C0h,0C6h,07Ch,000h,000h ; Hex #63 + Db 000h,000h,000h,01Ch,00Ch,00Ch,03Ch,06Ch,0CCh,0CCh,0CCh,076h,000h,000h ; Hex #64 + Db 000h,000h,000h,000h,000h,000h,07Ch,0C6h,0FEh,0C0h,0C6h,07Ch,000h,000h ; Hex #65 + Db 000h,000h,000h,01Ch,036h,032h,030h,07Ch,030h,030h,030h,078h,000h,000h ; Hex #66 + Db 000h,000h,000h,000h,000h,000h,076h,0CCh,0CCh,0CCh,07Ch,00Ch,0CCh,078h ; Hex #67 + Db 000h,000h,000h,0E0h,060h,060h,06Ch,076h,066h,066h,066h,0E6h,000h,000h ; Hex #68 + Db 000h,000h,000h,018h,018h,000h,038h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #69 + Db 000h,000h,000h,006h,006h,000h,00Eh,006h,006h,006h,006h,066h,066h,03Ch ; Hex #6A + Db 000h,000h,000h,0E0h,060h,060h,066h,06Ch,078h,06Ch,066h,0E6h,000h,000h ; Hex #6B + Db 000h,000h,000h,038h,018h,018h,018h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #6C + Db 000h,000h,000h,000h,000h,000h,0ECh,0FEh,0D6h,0D6h,0D6h,0D6h,000h,000h ; Hex #6D + Db 000h,000h,000h,000h,000h,000h,0DCh,066h,066h,066h,066h,066h,000h,000h ; Hex #6E + Db 000h,000h,000h,000h,000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #6F + Db 000h,000h,000h,000h,000h,000h,0DCh,066h,066h,066h,07Ch,060h,060h,0F0h ; Hex #70 + Db 000h,000h,000h,000h,000h,000h,076h,0CCh,0CCh,0CCh,07Ch,00Ch,00Ch,01Eh ; Hex #71 + Db 000h,000h,000h,000h,000h,000h,0DCh,076h,066h,060h,060h,0F0h,000h,000h ; Hex #72 + Db 000h,000h,000h,000h,000h,000h,07Ch,0C6h,070h,01Ch,0C6h,07Ch,000h,000h ; Hex #73 + Db 000h,000h,000h,010h,030h,030h,0FCh,030h,030h,030h,036h,01Ch,000h,000h ; Hex #74 + Db 000h,000h,000h,000h,000h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h ; Hex #75 + Db 000h,000h,000h,000h,000h,000h,0C6h,0C6h,0C6h,06Ch,038h,010h,000h,000h ; Hex #76 + Db 000h,000h,000h,000h,000h,000h,0C6h,0C6h,0D6h,0D6h,0FEh,06Ch,000h,000h ; Hex #77 + Db 000h,000h,000h,000h,000h,000h,0C6h,06Ch,038h,038h,06Ch,0C6h,000h,000h ; Hex #78 + Db 000h,000h,000h,000h,000h,000h,0C6h,0C6h,0C6h,0C6h,07Eh,006h,00Ch,078h ; Hex #79 + Db 000h,000h,000h,000h,000h,000h,0FEh,0CCh,018h,030h,066h,0FEh,000h,000h ; Hex #7A + Db 000h,000h,000h,00Eh,018h,018h,018h,070h,018h,018h,018h,00Eh,000h,000h ; Hex #7B + Db 000h,000h,000h,018h,018h,018h,018h,018h,018h,018h,018h,018h,000h,000h ; Hex #7C + Db 000h,000h,000h,070h,018h,018h,018h,00Eh,018h,018h,018h,070h,000h,000h ; Hex #7D + Db 000h,076h,0DCh,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #7E + Db 000h,000h,000h,000h,000h,010h,038h,06Ch,0C6h,0C6h,0FEh,000h,000h,000h ; Hex #7F + Db 000h,000h,000h,03Ch,066h,0C2h,0C0h,0C0h,0C0h,0C2h,066h,03Ch,00Ch,078h ; Hex #80 + Db 000h,000h,000h,0CCh,000h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h ; Hex #81 + Db 000h,000h,00Ch,018h,030h,000h,07Ch,0C6h,0FEh,0C0h,0C6h,07Ch,000h,000h ; Hex #82 + Db 000h,000h,010h,038h,06Ch,000h,078h,00Ch,07Ch,0CCh,0CCh,076h,000h,000h ; Hex #83 + Db 000h,000h,000h,076h,0DCh,000h,078h,00Ch,07Ch,0CCh,0CCh,076h,000h,000h ; Hex #84 + Db 000h,000h,060h,030h,018h,000h,078h,00Ch,07Ch,0CCh,0CCh,076h,000h,000h ; Hex #85 + Db 030h,060h,0C0h,010h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,000h,000h ; Hex #86 + Db 000h,000h,000h,000h,000h,000h,07Ch,0C6h,0C0h,0C0h,0C6h,07Ch,00Ch,078h ; Hex #87 + Db 000h,000h,010h,038h,06Ch,000h,07Ch,0C6h,0FEh,0C0h,0C6h,07Ch,000h,000h ; Hex #88 + Db 038h,06Ch,000h,0FEh,066h,062h,068h,078h,068h,062h,066h,0FEh,000h,000h ; Hex #89 + Db 000h,000h,060h,030h,018h,000h,07Ch,0C6h,0FEh,0C0h,0C6h,07Ch,000h,000h ; Hex #8A + Db 00Ch,018h,000h,03Ch,018h,018h,018h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #8B + Db 038h,06Ch,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #8C + Db 000h,000h,060h,030h,018h,000h,038h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #8D + Db 076h,0DCh,000h,010h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,000h,000h ; Hex #8E + Db 038h,06Ch,0C6h,010h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,000h,000h ; Hex #8F + Db 00Ch,018h,000h,0FEh,066h,062h,068h,078h,068h,062h,066h,0FEh,000h,000h ; Hex #90 + Db 018h,00Ch,006h,010h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,000h,000h ; Hex #91 + Db 030h,018h,000h,0FEh,066h,062h,068h,078h,068h,062h,066h,0FEh,000h,000h ; Hex #92 + Db 000h,000h,010h,038h,06Ch,000h,07Ch,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #93 + Db 000h,000h,000h,076h,0DCh,000h,07Ch,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #94 + Db 000h,000h,060h,030h,018h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #95 + Db 018h,030h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #96 + Db 000h,000h,060h,030h,018h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h ; Hex #97 + Db 030h,018h,000h,03Ch,018h,018h,018h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #98 + Db 076h,0DCh,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #99 + Db 000h,0C6h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #9A + Db 000h,000h,018h,018h,07Ch,0C6h,0C0h,0C0h,0C6h,07Ch,018h,018h,000h,000h ; Hex #9B + Db 000h,000h,038h,06Ch,064h,060h,0F0h,060h,060h,060h,0E6h,0FCh,000h,000h ; Hex #9C + Db 030h,018h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #9D + Db 000h,000h,0FCh,066h,066h,07Ch,062h,066h,06Fh,066h,066h,0F3h,000h,000h ; Hex #9E + Db 00Ch,018h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #9F + Db 000h,000h,00Ch,018h,030h,000h,078h,00Ch,07Ch,0CCh,0CCh,076h,000h,000h ; Hex #A0 + Db 000h,000h,00Ch,018h,030h,000h,038h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #A1 + Db 000h,000h,00Ch,018h,030h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #A2 + Db 000h,000h,00Ch,018h,030h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h ; Hex #A3 + Db 000h,000h,000h,076h,0DCh,000h,0DCh,066h,066h,066h,066h,066h,000h,000h ; Hex #A4 + Db 076h,0DCh,000h,0C6h,0E6h,0F6h,0FEh,0DEh,0CEh,0C6h,0C6h,0C6h,000h,000h ; Hex #A5 + Db 000h,000h,03Ch,06Ch,06Ch,03Eh,000h,07Eh,000h,000h,000h,000h,000h,000h ; Hex #A6 + Db 000h,000h,038h,06Ch,06Ch,038h,000h,07Ch,000h,000h,000h,000h,000h,000h ; Hex #A7 + Db 000h,000h,000h,030h,030h,000h,030h,030h,060h,0C6h,0C6h,07Ch,000h,000h ; Hex #A8 + Db 030h,018h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #A9 + Db 000h,000h,000h,000h,000h,000h,000h,0FEh,006h,006h,006h,000h,000h,000h ; Hex #AA + Db 000h,000h,060h,0E0h,063h,066h,06Ch,018h,030h,06Eh,0C3h,006h,00Ch,01Fh ; Hex #AB + Db 000h,000h,060h,0E0h,063h,066h,06Ch,01Ah,036h,06Eh,0DAh,03Fh,006h,006h ; Hex #AC + Db 000h,000h,000h,018h,018h,000h,018h,018h,03Ch,03Ch,03Ch,018h,000h,000h ; Hex #AD + Db 000h,000h,000h,000h,000h,036h,06Ch,0D8h,06Ch,036h,000h,000h,000h,000h ; Hex #AE + Db 000h,000h,000h,000h,000h,0D8h,06Ch,036h,06Ch,0D8h,000h,000h,000h,000h ; Hex #AF + Db 011h,044h,011h,044h,011h,044h,011h,044h,011h,044h,011h,044h,011h,044h ; Hex #B0 + Db 055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh ; Hex #B1 + Db 0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h ; Hex #B2 + Db 018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #B3 + Db 018h,018h,018h,018h,018h,018h,018h,0F8h,018h,018h,018h,018h,018h,018h ; Hex #B4 + Db 018h,018h,018h,018h,018h,0F8h,018h,0F8h,018h,018h,018h,018h,018h,018h ; Hex #B5 + Db 036h,036h,036h,036h,036h,036h,036h,0F6h,036h,036h,036h,036h,036h,036h ; Hex #B6 + Db 000h,000h,000h,000h,000h,000h,000h,0FEh,036h,036h,036h,036h,036h,036h ; Hex #B7 + Db 000h,000h,000h,000h,000h,0F8h,018h,0F8h,018h,018h,018h,018h,018h,018h ; Hex #B8 + Db 036h,036h,036h,036h,036h,0F6h,006h,0F6h,036h,036h,036h,036h,036h,036h ; Hex #B9 + Db 036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #BA + Db 000h,000h,000h,000h,000h,0FEh,006h,0F6h,036h,036h,036h,036h,036h,036h ; Hex #BB + Db 036h,036h,036h,036h,036h,0F6h,006h,0FEh,000h,000h,000h,000h,000h,000h ; Hex #BC + Db 036h,036h,036h,036h,036h,036h,036h,0FEh,000h,000h,000h,000h,000h,000h ; Hex #BD + Db 018h,018h,018h,018h,018h,0F8h,018h,0F8h,000h,000h,000h,000h,000h,000h ; Hex #BE + Db 000h,000h,000h,000h,000h,000h,000h,0F8h,018h,018h,018h,018h,018h,018h ; Hex #BF + Db 018h,018h,018h,018h,018h,018h,018h,01Fh,000h,000h,000h,000h,000h,000h ; Hex #C0 + Db 018h,018h,018h,018h,018h,018h,018h,0FFh,000h,000h,000h,000h,000h,000h ; Hex #C1 + Db 000h,000h,000h,000h,000h,000h,000h,0FFh,018h,018h,018h,018h,018h,018h ; Hex #C2 + Db 018h,018h,018h,018h,018h,018h,018h,01Fh,018h,018h,018h,018h,018h,018h ; Hex #C3 + Db 000h,000h,000h,000h,000h,000h,000h,0FFh,000h,000h,000h,000h,000h,000h ; Hex #C4 + Db 018h,018h,018h,018h,018h,018h,018h,0FFh,018h,018h,018h,018h,018h,018h ; Hex #C5 + Db 018h,018h,018h,018h,018h,01Fh,018h,01Fh,018h,018h,018h,018h,018h,018h ; Hex #C6 + Db 036h,036h,036h,036h,036h,036h,036h,037h,036h,036h,036h,036h,036h,036h ; Hex #C7 + Db 036h,036h,036h,036h,036h,037h,030h,03Fh,000h,000h,000h,000h,000h,000h ; Hex #C8 + Db 000h,000h,000h,000h,000h,03Fh,030h,037h,036h,036h,036h,036h,036h,036h ; Hex #C9 + Db 036h,036h,036h,036h,036h,0F7h,000h,0FFh,000h,000h,000h,000h,000h,000h ; Hex #CA + Db 000h,000h,000h,000h,000h,0FFh,000h,0F7h,036h,036h,036h,036h,036h,036h ; Hex #CB + Db 036h,036h,036h,036h,036h,037h,030h,037h,036h,036h,036h,036h,036h,036h ; Hex #CC + Db 000h,000h,000h,000h,000h,0FFh,000h,0FFh,000h,000h,000h,000h,000h,000h ; Hex #CD + Db 036h,036h,036h,036h,036h,0F7h,000h,0F7h,036h,036h,036h,036h,036h,036h ; Hex #CE + Db 018h,018h,018h,018h,018h,0FFh,000h,0FFh,000h,000h,000h,000h,000h,000h ; Hex #CF + Db 036h,036h,036h,036h,036h,036h,036h,0FFh,000h,000h,000h,000h,000h,000h ; Hex #D0 + Db 000h,000h,000h,000h,000h,0FFh,000h,0FFh,018h,018h,018h,018h,018h,018h ; Hex #D1 + Db 000h,000h,000h,000h,000h,000h,000h,0FFh,036h,036h,036h,036h,036h,036h ; Hex #D2 + Db 036h,036h,036h,036h,036h,036h,036h,03Fh,000h,000h,000h,000h,000h,000h ; Hex #D3 + Db 018h,018h,018h,018h,018h,01Fh,018h,01Fh,000h,000h,000h,000h,000h,000h ; Hex #D4 + Db 000h,000h,000h,000h,000h,01Fh,018h,01Fh,018h,018h,018h,018h,018h,018h ; Hex #D5 + Db 000h,000h,000h,000h,000h,000h,000h,03Fh,036h,036h,036h,036h,036h,036h ; Hex #D6 + Db 036h,036h,036h,036h,036h,036h,036h,0FFh,036h,036h,036h,036h,036h,036h ; Hex #D7 + Db 018h,018h,018h,018h,018h,0FFh,018h,0FFh,018h,018h,018h,018h,018h,018h ; Hex #D8 + Db 018h,018h,018h,018h,018h,018h,018h,0F8h,000h,000h,000h,000h,000h,000h ; Hex #D9 + Db 000h,000h,000h,000h,000h,000h,000h,01Fh,018h,018h,018h,018h,018h,018h ; Hex #DA + Db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh ; Hex #DB + Db 000h,000h,000h,000h,000h,000h,000h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh ; Hex #DC + Db 0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h ; Hex #DD + Db 00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh ; Hex #DE + Db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,000h,000h,000h,000h,000h,000h,000h ; Hex #DF + Db 000h,000h,000h,000h,000h,000h,076h,0DCh,0D8h,0D8h,0DCh,076h,000h,000h ; Hex #E0 + Db 000h,000h,000h,078h,0CCh,0CCh,0CCh,0D8h,0CCh,0C6h,0C6h,0CCh,000h,000h ; Hex #E1 + Db 000h,000h,000h,0FEh,0C6h,0C6h,0C0h,0C0h,0C0h,0C0h,0C0h,0C0h,000h,000h ; Hex #E2 + Db 000h,000h,000h,000h,000h,000h,0FEh,06Ch,06Ch,06Ch,06Ch,06Ch,000h,000h ; Hex #E3 + Db 000h,000h,000h,0FEh,0C6h,060h,030h,018h,030h,060h,0C6h,0FEh,000h,000h ; Hex #E4 + Db 000h,000h,000h,000h,000h,000h,07Eh,0D8h,0D8h,0D8h,0D8h,070h,000h,000h ; Hex #E5 + Db 000h,000h,000h,000h,000h,000h,066h,066h,066h,066h,066h,07Ch,060h,0C0h ; Hex #E6 + Db 000h,000h,000h,000h,000h,076h,0DCh,018h,018h,018h,018h,018h,000h,000h ; Hex #E7 + Db 000h,000h,000h,07Eh,018h,03Ch,066h,066h,066h,03Ch,018h,07Eh,000h,000h ; Hex #E8 + Db 000h,000h,000h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,06Ch,038h,000h,000h ; Hex #E9 + Db 000h,000h,000h,038h,06Ch,0C6h,0C6h,0C6h,06Ch,06Ch,06Ch,0EEh,000h,000h ; Hex #EA + Db 000h,000h,000h,01Eh,030h,018h,00Ch,03Eh,066h,066h,066h,03Ch,000h,000h ; Hex #EB + Db 000h,000h,000h,000h,000h,000h,07Eh,0DBh,0DBh,07Eh,000h,000h,000h,000h ; Hex #EC + Db 000h,000h,000h,003h,006h,07Eh,0DBh,0DBh,0F3h,07Eh,060h,0C0h,000h,000h ; Hex #ED + Db 000h,000h,000h,01Eh,030h,060h,060h,07Eh,060h,060h,030h,01Eh,000h,000h ; Hex #EE + Db 000h,000h,000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,000h,000h ; Hex #EF + Db 000h,000h,000h,000h,0FEh,000h,000h,0FEh,000h,000h,0FEh,000h,000h,000h ; Hex #F0 + Db 000h,000h,000h,000h,018h,018h,07Eh,018h,018h,000h,000h,07Eh,000h,000h ; Hex #F1 + Db 000h,000h,000h,030h,018h,00Ch,006h,00Ch,018h,030h,000h,07Eh,000h,000h ; Hex #F2 + Db 000h,000h,000h,00Ch,018h,030h,060h,030h,018h,00Ch,000h,07Eh,000h,000h ; Hex #F3 + Db 000h,000h,00Eh,01Bh,01Bh,018h,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #F4 + Db 018h,018h,018h,018h,018h,018h,018h,018h,0D8h,0D8h,070h,000h,000h,000h ; Hex #F5 + Db 000h,000h,000h,000h,000h,018h,000h,07Eh,000h,018h,000h,000h,000h,000h ; Hex #F6 + Db 000h,000h,000h,000h,000h,076h,0DCh,000h,076h,0DCh,000h,000h,000h,000h ; Hex #F7 + Db 000h,038h,06Ch,06Ch,038h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #F8 + Db 000h,000h,000h,000h,000h,000h,000h,018h,018h,000h,000h,000h,000h,000h ; Hex #F9 + Db 000h,000h,000h,000h,000h,000h,000h,018h,000h,000h,000h,000h,000h,000h ; Hex #FA + Db 000h,00Fh,00Ch,00Ch,00Ch,00Ch,00Ch,00Ch,0ECh,06Ch,03Ch,01Ch,000h,000h ; Hex #FB + Db 000h,06Ch,036h,036h,036h,036h,036h,000h,000h,000h,000h,000h,000h,000h ; Hex #FC + Db 000h,03Ch,066h,00Ch,018h,032h,07Eh,000h,000h,000h,000h,000h,000h,000h ; Hex #FD + Db 000h,000h,000h,000h,000h,07Eh,07Eh,07Eh,07Eh,07Eh,07Eh,000h,000h,000h ; Hex #FE + 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/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 @@ +;*************************************************** +; CHARACTER FONT FILE +; Source Assembler File +; +; CODE PAGE: 860 +; FONT RESOLUTION: 8 x 16 +; +; DATE CREATED:05-28-1987 +; +; +; Output file from: MULTIFON, Version 1A +; +;*************************************************** + Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #0 + Db 000h,000h,07Eh,081h,0A5h,081h,081h,0BDh,099h,081h,081h,07Eh,000h,000h,000h,000h ; Hex #1 + Db 000h,000h,07Eh,0FFh,0DBh,0FFh,0FFh,0C3h,0E7h,0FFh,0FFh,07Eh,000h,000h,000h,000h ; Hex #2 + Db 000h,000h,000h,000h,06Ch,0FEh,0FEh,0FEh,0FEh,07Ch,038h,010h,000h,000h,000h,000h ; Hex #3 + Db 000h,000h,000h,000h,010h,038h,07Ch,0FEh,07Ch,038h,010h,000h,000h,000h,000h,000h ; Hex #4 + Db 000h,000h,000h,018h,03Ch,03Ch,0E7h,0E7h,0E7h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #5 + Db 000h,000h,000h,018h,03Ch,07Eh,0FFh,0FFh,07Eh,018h,018h,03Ch,000h,000h,000h,000h ; Hex #6 + Db 000h,000h,000h,000h,000h,000h,018h,03Ch,03Ch,018h,000h,000h,000h,000h,000h,000h ; Hex #7 + Db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0E7h,0C3h,0C3h,0E7h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh ; Hex #8 + Db 000h,000h,000h,000h,000h,03Ch,066h,042h,042h,066h,03Ch,000h,000h,000h,000h,000h ; Hex #9 + Db 0FFh,0FFh,0FFh,0FFh,0FFh,0C3h,099h,0BDh,0BDh,099h,0C3h,0FFh,0FFh,0FFh,0FFh,0FFh ; Hex #A + Db 000h,000h,01Eh,00Eh,01Ah,032h,078h,0CCh,0CCh,0CCh,0CCh,078h,000h,000h,000h,000h ; Hex #B + Db 000h,000h,03Ch,066h,066h,066h,066h,03Ch,018h,07Eh,018h,018h,000h,000h,000h,000h ; Hex #C + Db 000h,000h,03Fh,033h,03Fh,030h,030h,030h,030h,070h,0F0h,0E0h,000h,000h,000h,000h ; Hex #D + Db 000h,000h,07Fh,063h,07Fh,063h,063h,063h,063h,067h,0E7h,0E6h,0C0h,000h,000h,000h ; Hex #E + Db 000h,000h,000h,018h,018h,0DBh,03Ch,0E7h,03Ch,0DBh,018h,018h,000h,000h,000h,000h ; Hex #F + Db 000h,080h,0C0h,0E0h,0F0h,0F8h,0FEh,0F8h,0F0h,0E0h,0C0h,080h,000h,000h,000h,000h ; Hex #10 + Db 000h,002h,006h,00Eh,01Eh,03Eh,0FEh,03Eh,01Eh,00Eh,006h,002h,000h,000h,000h,000h ; Hex #11 + Db 000h,000h,018h,03Ch,07Eh,018h,018h,018h,07Eh,03Ch,018h,000h,000h,000h,000h,000h ; Hex #12 + Db 000h,000h,066h,066h,066h,066h,066h,066h,066h,000h,066h,066h,000h,000h,000h,000h ; Hex #13 + Db 000h,000h,07Fh,0DBh,0DBh,0DBh,07Bh,01Bh,01Bh,01Bh,01Bh,01Bh,000h,000h,000h,000h ; Hex #14 + Db 000h,07Ch,0C6h,060h,038h,06Ch,0C6h,0C6h,06Ch,038h,00Ch,0C6h,07Ch,000h,000h,000h ; Hex #15 + Db 000h,000h,000h,000h,000h,000h,000h,000h,0FEh,0FEh,0FEh,0FEh,000h,000h,000h,000h ; Hex #16 + Db 000h,000h,018h,03Ch,07Eh,018h,018h,018h,07Eh,03Ch,018h,07Eh,000h,000h,000h,000h ; Hex #17 + Db 000h,000h,018h,03Ch,07Eh,018h,018h,018h,018h,018h,018h,018h,000h,000h,000h,000h ; Hex #18 + Db 000h,000h,018h,018h,018h,018h,018h,018h,018h,07Eh,03Ch,018h,000h,000h,000h,000h ; Hex #19 + Db 000h,000h,000h,000h,000h,018h,00Ch,0FEh,00Ch,018h,000h,000h,000h,000h,000h,000h ; Hex #1A + Db 000h,000h,000h,000h,000h,030h,060h,0FEh,060h,030h,000h,000h,000h,000h,000h,000h ; Hex #1B + Db 000h,000h,000h,000h,000h,000h,0C0h,0C0h,0C0h,0FEh,000h,000h,000h,000h,000h,000h ; Hex #1C + Db 000h,000h,000h,000h,000h,028h,06Ch,0FEh,06Ch,028h,000h,000h,000h,000h,000h,000h ; Hex #1D + Db 000h,000h,000h,000h,010h,038h,038h,07Ch,07Ch,0FEh,0FEh,000h,000h,000h,000h,000h ; Hex #1E + Db 000h,000h,000h,000h,0FEh,0FEh,07Ch,07Ch,038h,038h,010h,000h,000h,000h,000h,000h ; Hex #1F + Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #20 + Db 000h,000h,018h,03Ch,03Ch,03Ch,018h,018h,018h,000h,018h,018h,000h,000h,000h,000h ; Hex #21 + Db 000h,066h,066h,066h,024h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #22 + Db 000h,000h,000h,06Ch,06Ch,0FEh,06Ch,06Ch,06Ch,0FEh,06Ch,06Ch,000h,000h,000h,000h ; Hex #23 + Db 018h,018h,07Ch,0C6h,0C2h,0C0h,07Ch,006h,006h,086h,0C6h,07Ch,018h,018h,000h,000h ; Hex #24 + Db 000h,000h,000h,000h,0C2h,0C6h,00Ch,018h,030h,060h,0C6h,086h,000h,000h,000h,000h ; Hex #25 + Db 000h,000h,038h,06Ch,06Ch,038h,076h,0DCh,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #26 + Db 000h,030h,030h,030h,060h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #27 + Db 000h,000h,00Ch,018h,030h,030h,030h,030h,030h,030h,018h,00Ch,000h,000h,000h,000h ; Hex #28 + Db 000h,000h,030h,018h,00Ch,00Ch,00Ch,00Ch,00Ch,00Ch,018h,030h,000h,000h,000h,000h ; Hex #29 + Db 000h,000h,000h,000h,000h,066h,03Ch,0FFh,03Ch,066h,000h,000h,000h,000h,000h,000h ; Hex #2A + Db 000h,000h,000h,000h,000h,018h,018h,07Eh,018h,018h,000h,000h,000h,000h,000h,000h ; Hex #2B + Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,018h,018h,018h,030h,000h,000h,000h ; Hex #2C + Db 000h,000h,000h,000h,000h,000h,000h,0FEh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #2D + Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,018h,018h,000h,000h,000h,000h ; Hex #2E + Db 000h,000h,000h,000h,002h,006h,00Ch,018h,030h,060h,0C0h,080h,000h,000h,000h,000h ; Hex #2F + Db 000h,000h,038h,06Ch,0C6h,0C6h,0D6h,0D6h,0C6h,0C6h,06Ch,038h,000h,000h,000h,000h ; Hex #30 + Db 000h,000h,018h,038h,078h,018h,018h,018h,018h,018h,018h,07Eh,000h,000h,000h,000h ; Hex #31 + Db 000h,000h,07Ch,0C6h,006h,00Ch,018h,030h,060h,0C0h,0C6h,0FEh,000h,000h,000h,000h ; Hex #32 + Db 000h,000h,07Ch,0C6h,006h,006h,03Ch,006h,006h,006h,0C6h,07Ch,000h,000h,000h,000h ; Hex #33 + Db 000h,000h,00Ch,01Ch,03Ch,06Ch,0CCh,0FEh,00Ch,00Ch,00Ch,01Eh,000h,000h,000h,000h ; Hex #34 + Db 000h,000h,0FEh,0C0h,0C0h,0C0h,0FCh,006h,006h,006h,0C6h,07Ch,000h,000h,000h,000h ; Hex #35 + Db 000h,000h,038h,060h,0C0h,0C0h,0FCh,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #36 + Db 000h,000h,0FEh,0C6h,006h,006h,00Ch,018h,030h,030h,030h,030h,000h,000h,000h,000h ; Hex #37 + Db 000h,000h,07Ch,0C6h,0C6h,0C6h,07Ch,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #38 + Db 000h,000h,07Ch,0C6h,0C6h,0C6h,07Eh,006h,006h,006h,00Ch,078h,000h,000h,000h,000h ; Hex #39 + Db 000h,000h,000h,000h,018h,018h,000h,000h,000h,018h,018h,000h,000h,000h,000h,000h ; Hex #3A + Db 000h,000h,000h,000h,018h,018h,000h,000h,000h,018h,018h,030h,000h,000h,000h,000h ; Hex #3B + Db 000h,000h,000h,006h,00Ch,018h,030h,060h,030h,018h,00Ch,006h,000h,000h,000h,000h ; Hex #3C + Db 000h,000h,000h,000h,000h,07Eh,000h,000h,07Eh,000h,000h,000h,000h,000h,000h,000h ; Hex #3D + Db 000h,000h,000h,060h,030h,018h,00Ch,006h,00Ch,018h,030h,060h,000h,000h,000h,000h ; Hex #3E + Db 000h,000h,07Ch,0C6h,0C6h,00Ch,018h,018h,018h,000h,018h,018h,000h,000h,000h,000h ; Hex #3F + Db 000h,000h,000h,07Ch,0C6h,0C6h,0DEh,0DEh,0DEh,0DCh,0C0h,07Ch,000h,000h,000h,000h ; Hex #40 + Db 000h,000h,010h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #41 + Db 000h,000h,0FCh,066h,066h,066h,07Ch,066h,066h,066h,066h,0FCh,000h,000h,000h,000h ; Hex #42 + Db 000h,000h,03Ch,066h,0C2h,0C0h,0C0h,0C0h,0C0h,0C2h,066h,03Ch,000h,000h,000h,000h ; Hex #43 + Db 000h,000h,0F8h,06Ch,066h,066h,066h,066h,066h,066h,06Ch,0F8h,000h,000h,000h,000h ; Hex #44 + Db 000h,000h,0FEh,066h,062h,068h,078h,068h,060h,062h,066h,0FEh,000h,000h,000h,000h ; Hex #45 + Db 000h,000h,0FEh,066h,062h,068h,078h,068h,060h,060h,060h,0F0h,000h,000h,000h,000h ; Hex #46 + Db 000h,000h,03Ch,066h,0C2h,0C0h,0C0h,0DEh,0C6h,0C6h,066h,03Ah,000h,000h,000h,000h ; Hex #47 + Db 000h,000h,0C6h,0C6h,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #48 + Db 000h,000h,03Ch,018h,018h,018h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #49 + Db 000h,000h,01Eh,00Ch,00Ch,00Ch,00Ch,00Ch,0CCh,0CCh,0CCh,078h,000h,000h,000h,000h ; Hex #4A + Db 000h,000h,0E6h,066h,066h,06Ch,078h,078h,06Ch,066h,066h,0E6h,000h,000h,000h,000h ; Hex #4B + Db 000h,000h,0F0h,060h,060h,060h,060h,060h,060h,062h,066h,0FEh,000h,000h,000h,000h ; Hex #4C + Db 000h,000h,0C6h,0EEh,0FEh,0FEh,0D6h,0C6h,0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #4D + Db 000h,000h,0C6h,0E6h,0F6h,0FEh,0DEh,0CEh,0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #4E + Db 000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #4F + Db 000h,000h,0FCh,066h,066h,066h,07Ch,060h,060h,060h,060h,0F0h,000h,000h,000h,000h ; Hex #50 + Db 000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0D6h,0DEh,07Ch,00Ch,00Eh,000h,000h ; Hex #51 + Db 000h,000h,0FCh,066h,066h,066h,07Ch,06Ch,066h,066h,066h,0E6h,000h,000h,000h,000h ; Hex #52 + Db 000h,000h,07Ch,0C6h,0C6h,060h,038h,00Ch,006h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #53 + Db 000h,000h,07Eh,07Eh,05Ah,018h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #54 + Db 000h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #55 + Db 000h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,06Ch,038h,010h,000h,000h,000h,000h ; Hex #56 + Db 000h,000h,0C6h,0C6h,0C6h,0C6h,0D6h,0D6h,0D6h,0FEh,0EEh,06Ch,000h,000h,000h,000h ; Hex #57 + Db 000h,000h,0C6h,0C6h,06Ch,07Ch,038h,038h,07Ch,06Ch,0C6h,0C6h,000h,000h,000h,000h ; Hex #58 + Db 000h,000h,066h,066h,066h,066h,03Ch,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #59 + Db 000h,000h,0FEh,0C6h,086h,00Ch,018h,030h,060h,0C2h,0C6h,0FEh,000h,000h,000h,000h ; Hex #5A + Db 000h,000h,03Ch,030h,030h,030h,030h,030h,030h,030h,030h,03Ch,000h,000h,000h,000h ; Hex #5B + Db 000h,000h,000h,080h,0C0h,0E0h,070h,038h,01Ch,00Eh,006h,002h,000h,000h,000h,000h ; Hex #5C + Db 000h,000h,03Ch,00Ch,00Ch,00Ch,00Ch,00Ch,00Ch,00Ch,00Ch,03Ch,000h,000h,000h,000h ; Hex #5D + Db 010h,038h,06Ch,0C6h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #5E + Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,0FFh,000h,000h ; Hex #5F + Db 000h,030h,018h,00Ch,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #60 + Db 000h,000h,000h,000h,000h,078h,00Ch,07Ch,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #61 + Db 000h,000h,0E0h,060h,060h,078h,06Ch,066h,066h,066h,066h,07Ch,000h,000h,000h,000h ; Hex #62 + Db 000h,000h,000h,000h,000h,07Ch,0C6h,0C0h,0C0h,0C0h,0C6h,07Ch,000h,000h,000h,000h ; Hex #63 + Db 000h,000h,01Ch,00Ch,00Ch,03Ch,06Ch,0CCh,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #64 + Db 000h,000h,000h,000h,000h,07Ch,0C6h,0FEh,0C0h,0C0h,0C6h,07Ch,000h,000h,000h,000h ; Hex #65 + Db 000h,000h,01Ch,036h,032h,030h,078h,030h,030h,030h,030h,078h,000h,000h,000h,000h ; Hex #66 + Db 000h,000h,000h,000h,000h,076h,0CCh,0CCh,0CCh,0CCh,0CCh,07Ch,00Ch,0CCh,078h,000h ; Hex #67 + Db 000h,000h,0E0h,060h,060h,06Ch,076h,066h,066h,066h,066h,0E6h,000h,000h,000h,000h ; Hex #68 + Db 000h,000h,018h,018h,000h,038h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #69 + Db 000h,000h,006h,006h,000h,00Eh,006h,006h,006h,006h,006h,006h,066h,066h,03Ch,000h ; Hex #6A + Db 000h,000h,0E0h,060h,060h,066h,06Ch,078h,078h,06Ch,066h,0E6h,000h,000h,000h,000h ; Hex #6B + Db 000h,000h,038h,018h,018h,018h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #6C + Db 000h,000h,000h,000h,000h,0ECh,0FEh,0D6h,0D6h,0D6h,0D6h,0C6h,000h,000h,000h,000h ; Hex #6D + Db 000h,000h,000h,000h,000h,0DCh,066h,066h,066h,066h,066h,066h,000h,000h,000h,000h ; Hex #6E + Db 000h,000h,000h,000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #6F + Db 000h,000h,000h,000h,000h,0DCh,066h,066h,066h,066h,066h,07Ch,060h,060h,0F0h,000h ; Hex #70 + Db 000h,000h,000h,000h,000h,076h,0CCh,0CCh,0CCh,0CCh,0CCh,07Ch,00Ch,00Ch,01Eh,000h ; Hex #71 + Db 000h,000h,000h,000h,000h,0DCh,076h,066h,060h,060h,060h,0F0h,000h,000h,000h,000h ; Hex #72 + Db 000h,000h,000h,000h,000h,07Ch,0C6h,060h,038h,00Ch,0C6h,07Ch,000h,000h,000h,000h ; Hex #73 + Db 000h,000h,010h,030h,030h,0FCh,030h,030h,030h,030h,036h,01Ch,000h,000h,000h,000h ; Hex #74 + Db 000h,000h,000h,000h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #75 + Db 000h,000h,000h,000h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,06Ch,038h,000h,000h,000h,000h ; Hex #76 + Db 000h,000h,000h,000h,000h,0C6h,0C6h,0D6h,0D6h,0D6h,0FEh,06Ch,000h,000h,000h,000h ; Hex #77 + Db 000h,000h,000h,000h,000h,0C6h,06Ch,038h,038h,038h,06Ch,0C6h,000h,000h,000h,000h ; Hex #78 + Db 000h,000h,000h,000h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Eh,006h,00Ch,0F8h,000h ; Hex #79 + Db 000h,000h,000h,000h,000h,0FEh,0CCh,018h,030h,060h,0C6h,0FEh,000h,000h,000h,000h ; Hex #7A + Db 000h,000h,00Eh,018h,018h,018h,070h,018h,018h,018h,018h,00Eh,000h,000h,000h,000h ; Hex #7B + Db 000h,000h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,000h,000h,000h,000h ; Hex #7C + Db 000h,000h,070h,018h,018h,018h,00Eh,018h,018h,018h,018h,070h,000h,000h,000h,000h ; Hex #7D + Db 000h,076h,0DCh,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #7E + Db 000h,000h,000h,000h,010h,038h,06Ch,0C6h,0C6h,0C6h,0FEh,000h,000h,000h,000h,000h ; Hex #7F + Db 000h,000h,03Ch,066h,0C2h,0C0h,0C0h,0C0h,0C0h,0C2h,066h,03Ch,018h,070h,000h,000h ; Hex #80 + Db 000h,000h,0CCh,000h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #81 + Db 000h,00Ch,018h,030h,000h,07Ch,0C6h,0FEh,0C0h,0C0h,0C6h,07Ch,000h,000h,000h,000h ; Hex #82 + Db 000h,010h,038h,06Ch,000h,078h,00Ch,07Ch,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #83 + Db 000h,000h,076h,0DCh,000h,078h,00Ch,07Ch,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #84 + Db 000h,060h,030h,018h,000h,078h,00Ch,07Ch,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #85 + Db 060h,0C0h,010h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #86 + Db 000h,000h,000h,000h,000h,07Ch,0C6h,0C0h,0C0h,0C0h,0C6h,07Ch,018h,070h,000h,000h ; Hex #87 + Db 000h,010h,038h,06Ch,000h,07Ch,0C6h,0FEh,0C0h,0C0h,0C6h,07Ch,000h,000h,000h,000h ; Hex #88 + Db 038h,06Ch,000h,0FEh,066h,062h,068h,078h,068h,062h,066h,0FEh,000h,000h,000h,000h ; Hex #89 + Db 000h,060h,030h,018h,000h,07Ch,0C6h,0FEh,0C0h,0C0h,0C6h,07Ch,000h,000h,000h,000h ; Hex #8A + Db 00Ch,018h,000h,03Ch,018h,018h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #8B + Db 038h,06Ch,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #8C + Db 000h,060h,030h,018h,000h,038h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #8D + Db 076h,0DCh,000h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #8E + Db 038h,06Ch,0C6h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #8F + Db 00Ch,018h,000h,0FEh,066h,062h,068h,078h,068h,062h,066h,0FEh,000h,000h,000h,000h ; Hex #90 + Db 00Ch,006h,010h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #91 + Db 030h,018h,000h,0FEh,066h,062h,068h,078h,068h,062h,066h,0FEh,000h,000h,000h,000h ; Hex #92 + Db 000h,010h,038h,06Ch,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #93 + Db 000h,000h,076h,0DCh,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #94 + Db 000h,060h,030h,018h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #95 + Db 018h,030h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #96 + Db 000h,060h,030h,018h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #97 + Db 030h,018h,000h,03Ch,018h,018h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #98 + Db 076h,0DCh,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #99 + Db 000h,0C6h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #9A + Db 000h,018h,018h,07Ch,0C6h,0C0h,0C0h,0C0h,0C6h,07Ch,018h,018h,000h,000h,000h,000h ; Hex #9B + Db 000h,038h,06Ch,064h,060h,0F0h,060h,060h,060h,060h,0E6h,0FCh,000h,000h,000h,000h ; Hex #9C + Db 030h,018h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #9D + Db 000h,0F8h,0CCh,0CCh,0F8h,0C4h,0CCh,0DEh,0CCh,0CCh,0CCh,0C6h,000h,000h,000h,000h ; Hex #9E + Db 018h,030h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #9F + Db 000h,018h,030h,060h,000h,078h,00Ch,07Ch,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #A0 + Db 000h,00Ch,018h,030h,000h,038h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #A1 + Db 000h,018h,030h,060h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #A2 + Db 000h,018h,030h,060h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #A3 + Db 000h,000h,076h,0DCh,000h,0DCh,066h,066h,066h,066h,066h,066h,000h,000h,000h,000h ; Hex #A4 + Db 076h,0DCh,000h,0C6h,0E6h,0F6h,0FEh,0DEh,0CEh,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #A5 + Db 000h,000h,03Ch,06Ch,06Ch,03Eh,000h,07Eh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #A6 + Db 000h,000h,038h,06Ch,06Ch,038h,000h,07Ch,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #A7 + Db 000h,000h,030h,030h,000h,030h,030h,060h,0C0h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #A8 + Db 030h,018h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #A9 + Db 000h,000h,000h,000h,000h,000h,0FEh,006h,006h,006h,006h,000h,000h,000h,000h,000h ; Hex #AA + Db 000h,060h,0E0h,062h,066h,06Ch,018h,030h,060h,0DCh,086h,00Ch,018h,03Eh,000h,000h ; Hex #AB + Db 000h,060h,0E0h,062h,066h,06Ch,018h,030h,066h,0CEh,09Ah,03Fh,006h,006h,000h,000h ; Hex #AC + Db 000h,000h,018h,018h,000h,018h,018h,018h,03Ch,03Ch,03Ch,018h,000h,000h,000h,000h ; Hex #AD + Db 000h,000h,000h,000h,000h,036h,06Ch,0D8h,06Ch,036h,000h,000h,000h,000h,000h,000h ; Hex #AE + Db 000h,000h,000h,000h,000h,0D8h,06Ch,036h,06Ch,0D8h,000h,000h,000h,000h,000h,000h ; Hex #AF + Db 011h,044h,011h,044h,011h,044h,011h,044h,011h,044h,011h,044h,011h,044h,011h,044h ; Hex #B0 + Db 055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh ; Hex #B1 + Db 0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h ; Hex #B2 + Db 018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #B3 + Db 018h,018h,018h,018h,018h,018h,018h,0F8h,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #B4 + Db 018h,018h,018h,018h,018h,0F8h,018h,0F8h,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #B5 + Db 036h,036h,036h,036h,036h,036h,036h,0F6h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #B6 + Db 000h,000h,000h,000h,000h,000h,000h,0FEh,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #B7 + Db 000h,000h,000h,000h,000h,0F8h,018h,0F8h,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #B8 + Db 036h,036h,036h,036h,036h,0F6h,006h,0F6h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #B9 + Db 036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #BA + Db 000h,000h,000h,000h,000h,0FEh,006h,0F6h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #BB + Db 036h,036h,036h,036h,036h,0F6h,006h,0FEh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #BC + Db 036h,036h,036h,036h,036h,036h,036h,0FEh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #BD + Db 018h,018h,018h,018h,018h,0F8h,018h,0F8h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #BE + Db 000h,000h,000h,000h,000h,000h,000h,0F8h,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #BF + Db 018h,018h,018h,018h,018h,018h,018h,01Fh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #C0 + Db 018h,018h,018h,018h,018h,018h,018h,0FFh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #C1 + Db 000h,000h,000h,000h,000h,000h,000h,0FFh,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #C2 + Db 018h,018h,018h,018h,018h,018h,018h,01Fh,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #C3 + Db 000h,000h,000h,000h,000h,000h,000h,0FFh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #C4 + Db 018h,018h,018h,018h,018h,018h,018h,0FFh,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #C5 + Db 018h,018h,018h,018h,018h,01Fh,018h,01Fh,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #C6 + Db 036h,036h,036h,036h,036h,036h,036h,037h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #C7 + Db 036h,036h,036h,036h,036h,037h,030h,03Fh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #C8 + Db 000h,000h,000h,000h,000h,03Fh,030h,037h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #C9 + Db 036h,036h,036h,036h,036h,0F7h,000h,0FFh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #CA + Db 000h,000h,000h,000h,000h,0FFh,000h,0F7h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #CB + Db 036h,036h,036h,036h,036h,037h,030h,037h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #CC + Db 000h,000h,000h,000h,000h,0FFh,000h,0FFh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #CD + Db 036h,036h,036h,036h,036h,0F7h,000h,0F7h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #CE + Db 018h,018h,018h,018h,018h,0FFh,000h,0FFh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #CF + Db 036h,036h,036h,036h,036h,036h,036h,0FFh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #D0 + Db 000h,000h,000h,000h,000h,0FFh,000h,0FFh,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #D1 + Db 000h,000h,000h,000h,000h,000h,000h,0FFh,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #D2 + Db 036h,036h,036h,036h,036h,036h,036h,03Fh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #D3 + Db 018h,018h,018h,018h,018h,01Fh,018h,01Fh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #D4 + Db 000h,000h,000h,000h,000h,01Fh,018h,01Fh,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #D5 + Db 000h,000h,000h,000h,000h,000h,000h,03Fh,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #D6 + Db 036h,036h,036h,036h,036h,036h,036h,0FFh,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #D7 + Db 018h,018h,018h,018h,018h,0FFh,018h,0FFh,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #D8 + Db 018h,018h,018h,018h,018h,018h,018h,0F8h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #D9 + Db 000h,000h,000h,000h,000h,000h,000h,01Fh,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #DA + Db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh ; Hex #DB + Db 000h,000h,000h,000h,000h,000h,000h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh ; Hex #DC + Db 0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h ; Hex #DD + Db 00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh ; Hex #DE + Db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #DF + Db 000h,000h,000h,000h,000h,076h,0DCh,0D8h,0D8h,0D8h,0DCh,076h,000h,000h,000h,000h ; Hex #E0 + Db 000h,000h,078h,0CCh,0CCh,0CCh,0D8h,0CCh,0C6h,0C6h,0C6h,0CCh,000h,000h,000h,000h ; Hex #E1 + Db 000h,000h,0FEh,0C6h,0C6h,0C0h,0C0h,0C0h,0C0h,0C0h,0C0h,0C0h,000h,000h,000h,000h ; Hex #E2 + Db 000h,000h,000h,000h,000h,0FEh,06Ch,06Ch,06Ch,06Ch,06Ch,06Ch,000h,000h,000h,000h ; Hex #E3 + Db 000h,000h,0FEh,0C6h,060h,030h,018h,018h,030h,060h,0C6h,0FEh,000h,000h,000h,000h ; Hex #E4 + Db 000h,000h,000h,000h,000h,07Eh,0D8h,0D8h,0D8h,0D8h,0D8h,070h,000h,000h,000h,000h ; Hex #E5 + Db 000h,000h,000h,000h,000h,066h,066h,066h,066h,066h,066h,07Ch,060h,060h,0C0h,000h ; Hex #E6 + Db 000h,000h,000h,000h,076h,0DCh,018h,018h,018h,018h,018h,018h,000h,000h,000h,000h ; Hex #E7 + Db 000h,000h,07Eh,018h,03Ch,066h,066h,066h,066h,03Ch,018h,07Eh,000h,000h,000h,000h ; Hex #E8 + Db 000h,000h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,06Ch,038h,000h,000h,000h,000h ; Hex #E9 + Db 000h,000h,038h,06Ch,0C6h,0C6h,0C6h,06Ch,06Ch,06Ch,06Ch,0EEh,000h,000h,000h,000h ; Hex #EA + Db 000h,000h,01Eh,030h,018h,00Ch,03Eh,066h,066h,066h,066h,03Ch,000h,000h,000h,000h ; Hex #EB + Db 000h,000h,000h,000h,000h,07Eh,0DBh,0DBh,0DBh,07Eh,000h,000h,000h,000h,000h,000h ; Hex #EC + Db 000h,000h,000h,003h,006h,07Eh,0DBh,0DBh,0F3h,07Eh,060h,0C0h,000h,000h,000h,000h ; Hex #ED + Db 000h,000h,01Ch,030h,060h,060h,07Ch,060h,060h,060h,030h,01Ch,000h,000h,000h,000h ; Hex #EE + Db 000h,000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #EF + Db 000h,000h,000h,000h,0FEh,000h,000h,0FEh,000h,000h,0FEh,000h,000h,000h,000h,000h ; Hex #F0 + Db 000h,000h,000h,000h,018h,018h,07Eh,018h,018h,000h,000h,07Eh,000h,000h,000h,000h ; Hex #F1 + Db 000h,000h,000h,030h,018h,00Ch,006h,00Ch,018h,030h,000h,07Eh,000h,000h,000h,000h ; Hex #F2 + Db 000h,000h,000h,00Ch,018h,030h,060h,030h,018h,00Ch,000h,07Eh,000h,000h,000h,000h ; Hex #F3 + Db 000h,000h,00Eh,01Bh,01Bh,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #F4 + Db 018h,018h,018h,018h,018h,018h,018h,018h,018h,0D8h,0D8h,0D8h,070h,000h,000h,000h ; Hex #F5 + Db 000h,000h,000h,000h,000h,018h,000h,07Eh,000h,018h,000h,000h,000h,000h,000h,000h ; Hex #F6 + Db 000h,000h,000h,000h,000h,076h,0DCh,000h,076h,0DCh,000h,000h,000h,000h,000h,000h ; Hex #F7 + Db 000h,038h,06Ch,06Ch,038h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #F8 + Db 000h,000h,000h,000h,000h,000h,000h,018h,018h,000h,000h,000h,000h,000h,000h,000h ; Hex #F9 + Db 000h,000h,000h,000h,000h,000h,000h,018h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #FA + Db 000h,00Fh,00Ch,00Ch,00Ch,00Ch,00Ch,0ECh,06Ch,06Ch,03Ch,01Ch,000h,000h,000h,000h ; Hex #FB + Db 000h,06Ch,036h,036h,036h,036h,036h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #FC + Db 000h,03Ch,066h,00Ch,018h,032h,07Eh,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #FD + Db 000h,000h,000h,000h,07Eh,07Eh,07Eh,07Eh,07Eh,07Eh,07Eh,000h,000h,000h,000h,000h ; Hex #FE + 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/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 @@ +;*************************************************** +; CHARACTER FONT FILE +; Source Assembler File +; +; CODE PAGE: 860 +; FONT RESOLUTION: 8 x 8 +; +; DATE CREATED:05-28-1987 +; +; +; Output file from: MULTIFON, Version 1A +; +;*************************************************** + Db 000h,000h,000h,000h,000h,000h,000h,000h ; Hex #0 + Db 07Eh,081h,0A5h,081h,0BDh,099h,081h,07Eh ; Hex #1 + Db 07Eh,0FFh,0DBh,0FFh,0C3h,0E7h,0FFh,07Eh ; Hex #2 + Db 06Ch,0FEh,0FEh,0FEh,07Ch,038h,010h,000h ; Hex #3 + Db 010h,038h,07Ch,0FEh,07Ch,038h,010h,000h ; Hex #4 + Db 038h,07Ch,038h,0FEh,0FEh,0D6h,010h,038h ; Hex #5 + Db 010h,038h,07Ch,0FEh,0FEh,07Ch,010h,038h ; Hex #6 + Db 000h,000h,018h,03Ch,03Ch,018h,000h,000h ; Hex #7 + Db 0FFh,0FFh,0E7h,0C3h,0C3h,0E7h,0FFh,0FFh ; Hex #8 + Db 000h,03Ch,066h,042h,042h,066h,03Ch,000h ; Hex #9 + Db 0FFh,0C3h,099h,0BDh,0BDh,099h,0C3h,0FFh ; Hex #A + Db 00Fh,007h,00Fh,07Dh,0CCh,0CCh,0CCh,078h ; Hex #B + Db 03Ch,066h,066h,066h,03Ch,018h,07Eh,018h ; Hex #C + Db 03Fh,033h,03Fh,030h,030h,070h,0F0h,0E0h ; Hex #D + Db 07Fh,063h,07Fh,063h,063h,067h,0E6h,0C0h ; Hex #E + Db 018h,0DBh,03Ch,0E7h,0E7h,03Ch,0DBh,018h ; Hex #F + Db 080h,0E0h,0F8h,0FEh,0F8h,0E0h,080h,000h ; Hex #10 + Db 002h,00Eh,03Eh,0FEh,03Eh,00Eh,002h,000h ; Hex #11 + Db 018h,03Ch,07Eh,018h,018h,07Eh,03Ch,018h ; Hex #12 + Db 066h,066h,066h,066h,066h,000h,066h,000h ; Hex #13 + Db 07Fh,0DBh,0DBh,07Bh,01Bh,01Bh,01Bh,000h ; Hex #14 + Db 03Eh,061h,03Ch,066h,066h,03Ch,086h,07Ch ; Hex #15 + Db 000h,000h,000h,000h,07Eh,07Eh,07Eh,000h ; Hex #16 + Db 018h,03Ch,07Eh,018h,07Eh,03Ch,018h,0FFh ; Hex #17 + Db 018h,03Ch,07Eh,018h,018h,018h,018h,000h ; Hex #18 + Db 018h,018h,018h,018h,07Eh,03Ch,018h,000h ; Hex #19 + Db 000h,018h,00Ch,0FEh,00Ch,018h,000h,000h ; Hex #1A + Db 000h,030h,060h,0FEh,060h,030h,000h,000h ; Hex #1B + Db 000h,000h,0C0h,0C0h,0C0h,0FEh,000h,000h ; Hex #1C + Db 000h,024h,066h,0FFh,066h,024h,000h,000h ; Hex #1D + Db 000h,018h,03Ch,07Eh,0FFh,0FFh,000h,000h ; Hex #1E + Db 000h,0FFh,0FFh,07Eh,03Ch,018h,000h,000h ; Hex #1F + Db 000h,000h,000h,000h,000h,000h,000h,000h ; Hex #20 + Db 018h,03Ch,03Ch,018h,018h,000h,018h,000h ; Hex #21 + Db 066h,066h,024h,000h,000h,000h,000h,000h ; Hex #22 + Db 06Ch,06Ch,0FEh,06Ch,0FEh,06Ch,06Ch,000h ; Hex #23 + Db 018h,03Eh,060h,03Ch,006h,07Ch,018h,000h ; Hex #24 + Db 000h,0C6h,0CCh,018h,030h,066h,0C6h,000h ; Hex #25 + Db 038h,06Ch,038h,076h,0DCh,0CCh,076h,000h ; Hex #26 + Db 018h,018h,030h,000h,000h,000h,000h,000h ; Hex #27 + Db 00Ch,018h,030h,030h,030h,018h,00Ch,000h ; Hex #28 + Db 030h,018h,00Ch,00Ch,00Ch,018h,030h,000h ; Hex #29 + Db 000h,066h,03Ch,0FFh,03Ch,066h,000h,000h ; Hex #2A + Db 000h,018h,018h,07Eh,018h,018h,000h,000h ; Hex #2B + Db 000h,000h,000h,000h,000h,018h,018h,030h ; Hex #2C + Db 000h,000h,000h,07Eh,000h,000h,000h,000h ; Hex #2D + Db 000h,000h,000h,000h,000h,018h,018h,000h ; Hex #2E + Db 006h,00Ch,018h,030h,060h,0C0h,080h,000h ; Hex #2F + Db 038h,06Ch,0C6h,0D6h,0C6h,06Ch,038h,000h ; Hex #30 + Db 018h,038h,018h,018h,018h,018h,07Eh,000h ; Hex #31 + Db 07Ch,0C6h,006h,01Ch,030h,066h,0FEh,000h ; Hex #32 + Db 07Ch,0C6h,006h,03Ch,006h,0C6h,07Ch,000h ; Hex #33 + Db 01Ch,03Ch,06Ch,0CCh,0FEh,00Ch,01Eh,000h ; Hex #34 + Db 0FEh,0C0h,0C0h,0FCh,006h,0C6h,07Ch,000h ; Hex #35 + Db 038h,060h,0C0h,0FCh,0C6h,0C6h,07Ch,000h ; Hex #36 + Db 0FEh,0C6h,00Ch,018h,030h,030h,030h,000h ; Hex #37 + Db 07Ch,0C6h,0C6h,07Ch,0C6h,0C6h,07Ch,000h ; Hex #38 + Db 07Ch,0C6h,0C6h,07Eh,006h,00Ch,078h,000h ; Hex #39 + Db 000h,018h,018h,000h,000h,018h,018h,000h ; Hex #3A + Db 000h,018h,018h,000h,000h,018h,018h,030h ; Hex #3B + Db 006h,00Ch,018h,030h,018h,00Ch,006h,000h ; Hex #3C + Db 000h,000h,07Eh,000h,000h,07Eh,000h,000h ; Hex #3D + Db 060h,030h,018h,00Ch,018h,030h,060h,000h ; Hex #3E + Db 07Ch,0C6h,00Ch,018h,018h,000h,018h,000h ; Hex #3F + Db 07Ch,0C6h,0DEh,0DEh,0DEh,0C0h,078h,000h ; Hex #40 + Db 038h,06Ch,0C6h,0FEh,0C6h,0C6h,0C6h,000h ; Hex #41 + Db 0FCh,066h,066h,07Ch,066h,066h,0FCh,000h ; Hex #42 + Db 03Ch,066h,0C0h,0C0h,0C0h,066h,03Ch,000h ; Hex #43 + Db 0F8h,06Ch,066h,066h,066h,06Ch,0F8h,000h ; Hex #44 + Db 0FEh,062h,068h,078h,068h,062h,0FEh,000h ; Hex #45 + Db 0FEh,062h,068h,078h,068h,060h,0F0h,000h ; Hex #46 + Db 03Ch,066h,0C0h,0C0h,0CEh,066h,03Ah,000h ; Hex #47 + Db 0C6h,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,000h ; Hex #48 + Db 03Ch,018h,018h,018h,018h,018h,03Ch,000h ; Hex #49 + Db 01Eh,00Ch,00Ch,00Ch,0CCh,0CCh,078h,000h ; Hex #4A + Db 0E6h,066h,06Ch,078h,06Ch,066h,0E6h,000h ; Hex #4B + Db 0F0h,060h,060h,060h,062h,066h,0FEh,000h ; Hex #4C + Db 0C6h,0EEh,0FEh,0FEh,0D6h,0C6h,0C6h,000h ; Hex #4D + Db 0C6h,0E6h,0F6h,0DEh,0CEh,0C6h,0C6h,000h ; Hex #4E + Db 07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h ; Hex #4F + Db 0FCh,066h,066h,07Ch,060h,060h,0F0h,000h ; Hex #50 + Db 07Ch,0C6h,0C6h,0C6h,0C6h,0CEh,07Ch,00Eh ; Hex #51 + Db 0FCh,066h,066h,07Ch,06Ch,066h,0E6h,000h ; Hex #52 + Db 03Ch,066h,030h,018h,00Ch,066h,03Ch,000h ; Hex #53 + Db 07Eh,07Eh,05Ah,018h,018h,018h,03Ch,000h ; Hex #54 + Db 0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h ; Hex #55 + Db 0C6h,0C6h,0C6h,0C6h,0C6h,06Ch,038h,000h ; Hex #56 + Db 0C6h,0C6h,0C6h,0D6h,0D6h,0FEh,06Ch,000h ; Hex #57 + Db 0C6h,0C6h,06Ch,038h,06Ch,0C6h,0C6h,000h ; Hex #58 + Db 066h,066h,066h,03Ch,018h,018h,03Ch,000h ; Hex #59 + Db 0FEh,0C6h,08Ch,018h,032h,066h,0FEh,000h ; Hex #5A + Db 03Ch,030h,030h,030h,030h,030h,03Ch,000h ; Hex #5B + Db 0C0h,060h,030h,018h,00Ch,006h,002h,000h ; Hex #5C + Db 03Ch,00Ch,00Ch,00Ch,00Ch,00Ch,03Ch,000h ; Hex #5D + Db 010h,038h,06Ch,0C6h,000h,000h,000h,000h ; Hex #5E + Db 000h,000h,000h,000h,000h,000h,000h,0FFh ; Hex #5F + Db 030h,018h,00Ch,000h,000h,000h,000h,000h ; Hex #60 + Db 000h,000h,078h,00Ch,07Ch,0CCh,076h,000h ; Hex #61 + Db 0E0h,060h,07Ch,066h,066h,066h,0DCh,000h ; Hex #62 + Db 000h,000h,07Ch,0C6h,0C0h,0C6h,07Ch,000h ; Hex #63 + Db 01Ch,00Ch,07Ch,0CCh,0CCh,0CCh,076h,000h ; Hex #64 + Db 000h,000h,07Ch,0C6h,0FEh,0C0h,07Ch,000h ; Hex #65 + Db 03Ch,066h,060h,0F8h,060h,060h,0F0h,000h ; Hex #66 + Db 000h,000h,076h,0CCh,0CCh,07Ch,00Ch,0F8h ; Hex #67 + Db 0E0h,060h,06Ch,076h,066h,066h,0E6h,000h ; Hex #68 + Db 018h,000h,038h,018h,018h,018h,03Ch,000h ; Hex #69 + Db 006h,000h,006h,006h,006h,066h,066h,03Ch ; Hex #6A + Db 0E0h,060h,066h,06Ch,078h,06Ch,0E6h,000h ; Hex #6B + Db 038h,018h,018h,018h,018h,018h,03Ch,000h ; Hex #6C + Db 000h,000h,0ECh,0FEh,0D6h,0D6h,0D6h,000h ; Hex #6D + Db 000h,000h,0DCh,066h,066h,066h,066h,000h ; Hex #6E + Db 000h,000h,07Ch,0C6h,0C6h,0C6h,07Ch,000h ; Hex #6F + Db 000h,000h,0DCh,066h,066h,07Ch,060h,0F0h ; Hex #70 + Db 000h,000h,076h,0CCh,0CCh,07Ch,00Ch,01Eh ; Hex #71 + Db 000h,000h,0DCh,076h,060h,060h,0F0h,000h ; Hex #72 + Db 000h,000h,07Eh,0C0h,07Ch,006h,0FCh,000h ; Hex #73 + Db 030h,030h,0FCh,030h,030h,036h,01Ch,000h ; Hex #74 + Db 000h,000h,0CCh,0CCh,0CCh,0CCh,076h,000h ; Hex #75 + Db 000h,000h,0C6h,0C6h,0C6h,06Ch,038h,000h ; Hex #76 + Db 000h,000h,0C6h,0D6h,0D6h,0FEh,06Ch,000h ; Hex #77 + Db 000h,000h,0C6h,06Ch,038h,06Ch,0C6h,000h ; Hex #78 + Db 000h,000h,0C6h,0C6h,0C6h,07Eh,006h,0FCh ; Hex #79 + Db 000h,000h,07Eh,04Ch,018h,032h,07Eh,000h ; Hex #7A + Db 00Eh,018h,018h,070h,018h,018h,00Eh,000h ; Hex #7B + Db 018h,018h,018h,018h,018h,018h,018h,000h ; Hex #7C + Db 070h,018h,018h,00Eh,018h,018h,070h,000h ; Hex #7D + Db 076h,0DCh,000h,000h,000h,000h,000h,000h ; Hex #7E + Db 000h,010h,038h,06Ch,0C6h,0C6h,0FEh,000h ; Hex #7F + Db 07Ch,0C6h,0C0h,0C0h,0C6h,07Ch,00Ch,078h ; Hex #80 + Db 0CCh,000h,0CCh,0CCh,0CCh,0CCh,076h,000h ; Hex #81 + Db 00Ch,018h,07Ch,0C6h,0FEh,0C0h,07Ch,000h ; Hex #82 + Db 07Ch,082h,078h,00Ch,07Ch,0CCh,076h,000h ; Hex #83 + Db 076h,0DCh,078h,00Ch,07Ch,0CCh,076h,000h ; Hex #84 + Db 030h,018h,078h,00Ch,07Ch,0CCh,076h,000h ; Hex #85 + Db 030h,060h,038h,06Ch,0C6h,0FEh,0C6h,000h ; Hex #86 + Db 000h,000h,07Eh,0C0h,0C0h,07Eh,00Ch,038h ; Hex #87 + Db 07Ch,082h,07Ch,0C6h,0FEh,0C0h,07Ch,000h ; Hex #88 + Db 07Ch,082h,0FEh,0C0h,0F8h,0C0h,0FEh,000h ; Hex #89 + Db 030h,018h,07Ch,0C6h,0FEh,0C0h,07Ch,000h ; Hex #8A + Db 00Ch,018h,03Ch,018h,018h,018h,03Ch,000h ; Hex #8B + Db 07Ch,082h,038h,06Ch,0C6h,06Ch,038h,000h ; Hex #8C + Db 030h,018h,000h,038h,018h,018h,03Ch,000h ; Hex #8D + Db 076h,0DCh,038h,06Ch,0C6h,0FEh,0C6h,000h ; Hex #8E + Db 07Ch,082h,038h,06Ch,0C6h,0FEh,0C6h,000h ; Hex #8F + Db 018h,030h,0FEh,0C0h,0F8h,0C0h,0FEh,000h ; Hex #90 + Db 060h,030h,038h,06Ch,0C6h,0FEh,0C6h,000h ; Hex #91 + Db 030h,018h,0FEh,0C0h,0F8h,0C0h,0FEh,000h ; Hex #92 + Db 07Ch,082h,07Ch,0C6h,0C6h,0C6h,07Ch,000h ; Hex #93 + Db 076h,0DCh,07Ch,0C6h,0C6h,0C6h,07Ch,000h ; Hex #94 + Db 030h,018h,07Ch,0C6h,0C6h,0C6h,07Ch,000h ; Hex #95 + Db 00Ch,018h,0C6h,0C6h,0C6h,0C6h,07Ch,000h ; Hex #96 + Db 060h,030h,0CCh,0CCh,0CCh,0CCh,076h,000h ; Hex #97 + Db 030h,018h,03Ch,018h,018h,018h,03Ch,000h ; Hex #98 + Db 076h,0DCh,038h,06Ch,0C6h,06Ch,038h,000h ; Hex #99 + Db 0C6h,000h,0C6h,0C6h,0C6h,0C6h,07Ch,000h ; Hex #9A + Db 018h,018h,07Eh,0C0h,0C0h,07Eh,018h,018h ; Hex #9B + Db 038h,06Ch,064h,0F0h,060h,066h,0FCh,000h ; Hex #9C + Db 030h,018h,0C6h,0C6h,0C6h,0C6h,07Ch,000h ; Hex #9D + Db 0F8h,0CCh,0CCh,0FAh,0C6h,0CFh,0C6h,0C7h ; Hex #9E + Db 00Ch,018h,038h,06Ch,0C6h,06Ch,038h,000h ; Hex #9F + Db 018h,030h,078h,00Ch,07Ch,0CCh,076h,000h ; Hex #A0 + Db 00Ch,018h,000h,038h,018h,018h,03Ch,000h ; Hex #A1 + Db 00Ch,018h,07Ch,0C6h,0C6h,0C6h,07Ch,000h ; Hex #A2 + Db 018h,030h,0CCh,0CCh,0CCh,0CCh,076h,000h ; Hex #A3 + Db 076h,0DCh,000h,0DCh,066h,066h,066h,000h ; Hex #A4 + Db 076h,0DCh,000h,0E6h,0F6h,0DEh,0CEh,000h ; Hex #A5 + Db 03Ch,06Ch,06Ch,03Eh,000h,07Eh,000h,000h ; Hex #A6 + Db 038h,06Ch,06Ch,038h,000h,07Ch,000h,000h ; Hex #A7 + Db 018h,000h,018h,018h,030h,063h,03Eh,000h ; Hex #A8 + Db 030h,018h,038h,06Ch,0C6h,06Ch,038h,000h ; Hex #A9 + Db 000h,000h,000h,0FEh,006h,006h,000h,000h ; Hex #AA + Db 063h,0E6h,06Ch,07Eh,033h,066h,0CCh,00Fh ; Hex #AB + Db 063h,0E6h,06Ch,07Ah,036h,06Ah,0DFh,006h ; Hex #AC + Db 018h,000h,018h,018h,03Ch,03Ch,018h,000h ; Hex #AD + Db 000h,033h,066h,0CCh,066h,033h,000h,000h ; Hex #AE + Db 000h,0CCh,066h,033h,066h,0CCh,000h,000h ; Hex #AF + Db 022h,088h,022h,088h,022h,088h,022h,088h ; Hex #B0 + Db 055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh ; Hex #B1 + Db 077h,0DDh,077h,0DDh,077h,0DDh,077h,0DDh ; Hex #B2 + Db 018h,018h,018h,018h,018h,018h,018h,018h ; Hex #B3 + Db 018h,018h,018h,018h,0F8h,018h,018h,018h ; Hex #B4 + Db 018h,018h,0F8h,018h,0F8h,018h,018h,018h ; Hex #B5 + Db 036h,036h,036h,036h,0F6h,036h,036h,036h ; Hex #B6 + Db 000h,000h,000h,000h,0FEh,036h,036h,036h ; Hex #B7 + Db 000h,000h,0F8h,018h,0F8h,018h,018h,018h ; Hex #B8 + Db 036h,036h,0F6h,006h,0F6h,036h,036h,036h ; Hex #B9 + Db 036h,036h,036h,036h,036h,036h,036h,036h ; Hex #BA + Db 000h,000h,0FEh,006h,0F6h,036h,036h,036h ; Hex #BB + Db 036h,036h,0F6h,006h,0FEh,000h,000h,000h ; Hex #BC + Db 036h,036h,036h,036h,0FEh,000h,000h,000h ; Hex #BD + Db 018h,018h,0F8h,018h,0F8h,000h,000h,000h ; Hex #BE + Db 000h,000h,000h,000h,0F8h,018h,018h,018h ; Hex #BF + Db 018h,018h,018h,018h,01Fh,000h,000h,000h ; Hex #C0 + Db 018h,018h,018h,018h,0FFh,000h,000h,000h ; Hex #C1 + Db 000h,000h,000h,000h,0FFh,018h,018h,018h ; Hex #C2 + Db 018h,018h,018h,018h,01Fh,018h,018h,018h ; Hex #C3 + Db 000h,000h,000h,000h,0FFh,000h,000h,000h ; Hex #C4 + Db 018h,018h,018h,018h,0FFh,018h,018h,018h ; Hex #C5 + Db 018h,018h,01Fh,018h,01Fh,018h,018h,018h ; Hex #C6 + Db 036h,036h,036h,036h,037h,036h,036h,036h ; Hex #C7 + Db 036h,036h,037h,030h,03Fh,000h,000h,000h ; Hex #C8 + Db 000h,000h,03Fh,030h,037h,036h,036h,036h ; Hex #C9 + Db 036h,036h,0F7h,000h,0FFh,000h,000h,000h ; Hex #CA + Db 000h,000h,0FFh,000h,0F7h,036h,036h,036h ; Hex #CB + Db 036h,036h,037h,030h,037h,036h,036h,036h ; Hex #CC + Db 000h,000h,0FFh,000h,0FFh,000h,000h,000h ; Hex #CD + Db 036h,036h,0F7h,000h,0F7h,036h,036h,036h ; Hex #CE + Db 018h,018h,0FFh,000h,0FFh,000h,000h,000h ; Hex #CF + Db 036h,036h,036h,036h,0FFh,000h,000h,000h ; Hex #D0 + Db 000h,000h,0FFh,000h,0FFh,018h,018h,018h ; Hex #D1 + Db 000h,000h,000h,000h,0FFh,036h,036h,036h ; Hex #D2 + Db 036h,036h,036h,036h,03Fh,000h,000h,000h ; Hex #D3 + Db 018h,018h,01Fh,018h,01Fh,000h,000h,000h ; Hex #D4 + Db 000h,000h,01Fh,018h,01Fh,018h,018h,018h ; Hex #D5 + Db 000h,000h,000h,000h,03Fh,036h,036h,036h ; Hex #D6 + Db 036h,036h,036h,036h,0FFh,036h,036h,036h ; Hex #D7 + Db 018h,018h,0FFh,018h,0FFh,018h,018h,018h ; Hex #D8 + Db 018h,018h,018h,018h,0F8h,000h,000h,000h ; Hex #D9 + Db 000h,000h,000h,000h,01Fh,018h,018h,018h ; Hex #DA + Db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh ; Hex #DB + Db 000h,000h,000h,000h,0FFh,0FFh,0FFh,0FFh ; Hex #DC + Db 0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h ; Hex #DD + Db 00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh ; Hex #DE + Db 0FFh,0FFh,0FFh,0FFh,000h,000h,000h,000h ; Hex #DF + Db 000h,000h,076h,0DCh,0C8h,0DCh,076h,000h ; Hex #E0 + Db 078h,0CCh,0CCh,0D8h,0CCh,0C6h,0CCh,000h ; Hex #E1 + Db 0FEh,0C6h,0C0h,0C0h,0C0h,0C0h,0C0h,000h ; Hex #E2 + Db 000h,000h,0FEh,06Ch,06Ch,06Ch,06Ch,000h ; Hex #E3 + Db 0FEh,0C6h,060h,030h,060h,0C6h,0FEh,000h ; Hex #E4 + Db 000h,000h,07Eh,0D8h,0D8h,0D8h,070h,000h ; Hex #E5 + Db 000h,000h,066h,066h,066h,066h,07Ch,0C0h ; Hex #E6 + Db 000h,076h,0DCh,018h,018h,018h,018h,000h ; Hex #E7 + Db 07Eh,018h,03Ch,066h,066h,03Ch,018h,07Eh ; Hex #E8 + Db 038h,06Ch,0C6h,0FEh,0C6h,06Ch,038h,000h ; Hex #E9 + Db 038h,06Ch,0C6h,0C6h,06Ch,06Ch,0EEh,000h ; Hex #EA + Db 00Eh,018h,00Ch,03Eh,066h,066h,03Ch,000h ; Hex #EB + Db 000h,000h,07Eh,0DBh,0DBh,07Eh,000h,000h ; Hex #EC + Db 006h,00Ch,07Eh,0DBh,0DBh,07Eh,060h,0C0h ; Hex #ED + Db 01Eh,030h,060h,07Eh,060h,030h,01Eh,000h ; Hex #EE + Db 000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,000h ; Hex #EF + Db 000h,0FEh,000h,0FEh,000h,0FEh,000h,000h ; Hex #F0 + Db 018h,018h,07Eh,018h,018h,000h,07Eh,000h ; Hex #F1 + Db 030h,018h,00Ch,018h,030h,000h,07Eh,000h ; Hex #F2 + Db 00Ch,018h,030h,018h,00Ch,000h,07Eh,000h ; Hex #F3 + Db 00Eh,01Bh,01Bh,018h,018h,018h,018h,018h ; Hex #F4 + Db 018h,018h,018h,018h,018h,0D8h,0D8h,070h ; Hex #F5 + Db 000h,018h,000h,07Eh,000h,018h,000h,000h ; Hex #F6 + Db 000h,076h,0DCh,000h,076h,0DCh,000h,000h ; Hex #F7 + Db 038h,06Ch,06Ch,038h,000h,000h,000h,000h ; Hex #F8 + Db 000h,000h,000h,018h,018h,000h,000h,000h ; Hex #F9 + Db 000h,000h,000h,018h,000h,000h,000h,000h ; Hex #FA + Db 00Fh,00Ch,00Ch,00Ch,0ECh,06Ch,03Ch,01Ch ; Hex #FB + Db 06Ch,036h,036h,036h,036h,000h,000h,000h ; Hex #FC + Db 078h,00Ch,018h,030h,07Ch,000h,000h,000h ; Hex #FD + Db 000h,000h,03Ch,03Ch,03Ch,03Ch,000h,000h ; Hex #FE + Db 000h,000h,000h,000h,000h,000h,000h,000h ; Hex #FF + 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 @@ +CODE SEGMENT BYTE PUBLIC 'CODE' + ASSUME CS:CODE,DS:CODE + +IF1 + %OUT EGA.CPI creation file + %OUT . + %OUT CP SRC files: + %OUT . + %OUT . CODE PAGE: 860 +ENDIF + +EGA860: DW LEN_860 ; SIZE OF ENTRY HEADER + DW POST_EGA860,0 ; POINTER TO NEXT HEADER + DW 1 ; DEVICE TYPE + DB "EGA " ; DEVICE SUBTYPE ID + DW 860 ; CODE PAGE ID + DW 3 DUP(0) ; RESERVED + DW OFFSET DATA860,0 ; POINTER TO FONTS +LEN_860 EQU ($-EGA860) ; + ; +DATA860:DW 1 ; CART/NON-CART + DW 3 ; # OF FONTS + DW LEN_D860 ; LENGTH OF DATA +D860: ; + DB 16,8 ; CHARACTER BOX SIZE + DB 0,0 ; ASPECT RATIO (UNUSED) + DW 256 ; NUMBER OF CHARACTERS + ; + INCLUDE 860-8X16.ASM ; + ; + DB 14,8 ; CHARACTER BOX SIZE + DB 0,0 ; ASPECT RATIO (UNUSED) + DW 256 ; NUMBER OF CHARACTERS + ; + INCLUDE 860-8X14.ASM ; + ; + DB 8,8 ; CHARACTER BOX SIZE + DB 0,0 ; ASPECT RATIO (UNUSED) + DW 256 ; NUMBER OF CHARACTERS + ; + INCLUDE 860-8X8.ASM ; + ; +LEN_D860 EQU ($-D860) ; + ; +POST_EGA860 EQU $ ; + ; +CODE ENDS ; + END ; + \ 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 @@ +;*************************************************** +; CHARACTER FONT FILE +; Source Assembler File +; +; CODE PAGE: 863 +; FONT RESOLUTION: 8 x 14 +; +; DATE CREATED:05-28-1987 +; +; +; Output file from: MULTIFON, Version 1A +; +;*************************************************** + Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #0 + Db 000h,000h,000h,07Eh,081h,0A5h,081h,081h,0BDh,099h,081h,07Eh,000h,000h ; Hex #1 + Db 000h,000h,000h,07Eh,0FFh,0DBh,0FFh,0FFh,0C3h,0E7h,0FFh,07Eh,000h,000h ; Hex #2 + Db 000h,000h,000h,000h,06Ch,0FEh,0FEh,0FEh,0FEh,07Ch,038h,010h,000h,000h ; Hex #3 + Db 000h,000h,000h,000h,010h,038h,07Ch,0FEh,07Ch,038h,010h,000h,000h,000h ; Hex #4 + Db 000h,000h,000h,018h,03Ch,03Ch,0E7h,0E7h,0E7h,018h,018h,03Ch,000h,000h ; Hex #5 + Db 000h,000h,000h,018h,03Ch,07Eh,0FFh,0FFh,07Eh,018h,018h,03Ch,000h,000h ; Hex #6 + Db 000h,000h,000h,000h,000h,000h,018h,03Ch,03Ch,018h,000h,000h,000h,000h ; Hex #7 + Db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0E7h,0C3h,0C3h,0E7h,0FFh,0FFh,0FFh,0FFh ; Hex #8 + Db 000h,000h,000h,000h,000h,03Ch,066h,042h,042h,066h,03Ch,000h,000h,000h ; Hex #9 + Db 0FFh,0FFh,0FFh,0FFh,0FFh,0C3h,099h,0BDh,0BDh,099h,0C3h,0FFh,0FFh,0FFh ; Hex #A + Db 000h,000h,000h,01Eh,00Eh,01Ah,032h,078h,0CCh,0CCh,0CCh,078h,000h,000h ; Hex #B + Db 000h,000h,000h,03Ch,066h,066h,066h,03Ch,018h,07Eh,018h,018h,000h,000h ; Hex #C + Db 000h,000h,000h,03Fh,033h,03Fh,030h,030h,030h,070h,0F0h,0E0h,000h,000h ; Hex #D + Db 000h,000h,000h,07Fh,063h,07Fh,063h,063h,063h,067h,0E7h,0E6h,0C0h,000h ; Hex #E + Db 000h,000h,000h,018h,018h,0DBh,03Ch,0E7h,03Ch,0DBh,018h,018h,000h,000h ; Hex #F + Db 000h,000h,000h,080h,0C0h,0E0h,0F8h,0FEh,0F8h,0E0h,0C0h,080h,000h,000h ; Hex #10 + Db 000h,000h,000h,002h,006h,00Eh,03Eh,0FEh,03Eh,00Eh,006h,002h,000h,000h ; Hex #11 + Db 000h,000h,000h,018h,03Ch,07Eh,018h,018h,018h,07Eh,03Ch,018h,000h,000h ; Hex #12 + Db 000h,000h,000h,066h,066h,066h,066h,066h,066h,000h,066h,066h,000h,000h ; Hex #13 + Db 000h,000h,000h,07Fh,0DBh,0DBh,0DBh,07Bh,01Bh,01Bh,01Bh,01Bh,000h,000h ; Hex #14 + Db 000h,000h,07Ch,0C6h,060h,038h,06Ch,0C6h,0C6h,06Ch,038h,00Ch,0C6h,07Ch ; Hex #15 + Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,0FEh,0FEh,0FEh,000h,000h ; Hex #16 + Db 000h,000h,000h,018h,03Ch,07Eh,018h,018h,018h,07Eh,03Ch,018h,07Eh,000h ; Hex #17 + Db 000h,000h,000h,018h,03Ch,07Eh,018h,018h,018h,018h,018h,018h,000h,000h ; Hex #18 + Db 000h,000h,000h,018h,018h,018h,018h,018h,018h,07Eh,03Ch,018h,000h,000h ; Hex #19 + Db 000h,000h,000h,000h,000h,018h,00Ch,0FEh,00Ch,018h,000h,000h,000h,000h ; Hex #1A + Db 000h,000h,000h,000h,000h,030h,060h,0FEh,060h,030h,000h,000h,000h,000h ; Hex #1B + Db 000h,000h,000h,000h,000h,000h,0C0h,0C0h,0C0h,0FEh,000h,000h,000h,000h ; Hex #1C + Db 000h,000h,000h,000h,000h,028h,06Ch,0FEh,06Ch,028h,000h,000h,000h,000h ; Hex #1D + Db 000h,000h,000h,000h,010h,038h,038h,07Ch,07Ch,0FEh,0FEh,000h,000h,000h ; Hex #1E + Db 000h,000h,000h,000h,0FEh,0FEh,07Ch,07Ch,038h,038h,010h,000h,000h,000h ; Hex #1F + Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #20 + Db 000h,000h,000h,018h,03Ch,03Ch,03Ch,018h,018h,000h,018h,018h,000h,000h ; Hex #21 + Db 000h,066h,066h,066h,024h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #22 + Db 000h,000h,000h,06Ch,06Ch,0FEh,06Ch,06Ch,06Ch,0FEh,06Ch,06Ch,000h,000h ; Hex #23 + Db 000h,018h,018h,07Ch,0C6h,0C2h,0C0h,07Ch,006h,086h,0C6h,07Ch,018h,018h ; Hex #24 + Db 000h,000h,000h,000h,000h,0C2h,0C6h,00Ch,018h,030h,066h,0C6h,000h,000h ; Hex #25 + Db 000h,000h,000h,038h,06Ch,06Ch,038h,076h,0DCh,0CCh,0CCh,076h,000h,000h ; Hex #26 + Db 000h,018h,018h,018h,030h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #27 + Db 000h,000h,000h,00Ch,018h,030h,030h,030h,030h,030h,018h,00Ch,000h,000h ; Hex #28 + Db 000h,000h,000h,030h,018h,00Ch,00Ch,00Ch,00Ch,00Ch,018h,030h,000h,000h ; Hex #29 + Db 000h,000h,000h,000h,000h,066h,03Ch,0FFh,03Ch,066h,000h,000h,000h,000h ; Hex #2A + Db 000h,000h,000h,000h,000h,018h,018h,07Eh,018h,018h,000h,000h,000h,000h ; Hex #2B + Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,018h,018h,018h,030h,000h ; Hex #2C + Db 000h,000h,000h,000h,000h,000h,000h,0FEh,000h,000h,000h,000h,000h,000h ; Hex #2D + Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,018h,018h,000h,000h ; Hex #2E + Db 000h,000h,000h,002h,006h,00Ch,018h,030h,060h,0C0h,080h,000h,000h,000h ; Hex #2F + Db 000h,000h,000h,038h,06Ch,0C6h,0C6h,0D6h,0C6h,0C6h,06Ch,038h,000h,000h ; Hex #30 + Db 000h,000h,000h,018h,038h,078h,018h,018h,018h,018h,018h,07Eh,000h,000h ; Hex #31 + Db 000h,000h,000h,07Ch,0C6h,006h,00Ch,018h,030h,060h,0C6h,0FEh,000h,000h ; Hex #32 + Db 000h,000h,000h,07Ch,0C6h,006h,006h,03Ch,006h,006h,0C6h,07Ch,000h,000h ; Hex #33 + Db 000h,000h,000h,00Ch,01Ch,03Ch,06Ch,0CCh,0FEh,00Ch,00Ch,01Eh,000h,000h ; Hex #34 + Db 000h,000h,000h,0FEh,0C0h,0C0h,0C0h,0FCh,006h,006h,0C6h,07Ch,000h,000h ; Hex #35 + Db 000h,000h,000h,038h,060h,0C0h,0C0h,0FCh,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #36 + Db 000h,000h,000h,0FEh,0C6h,006h,00Ch,018h,030h,030h,030h,030h,000h,000h ; Hex #37 + Db 000h,000h,000h,07Ch,0C6h,0C6h,0C6h,07Ch,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #38 + Db 000h,000h,000h,07Ch,0C6h,0C6h,0C6h,07Eh,006h,006h,00Ch,078h,000h,000h ; Hex #39 + Db 000h,000h,000h,000h,018h,018h,000h,000h,000h,018h,018h,000h,000h,000h ; Hex #3A + Db 000h,000h,000h,000h,018h,018h,000h,000h,000h,018h,018h,030h,000h,000h ; Hex #3B + Db 000h,000h,000h,00Ch,018h,030h,060h,0C0h,060h,030h,018h,00Ch,000h,000h ; Hex #3C + Db 000h,000h,000h,000h,000h,000h,07Eh,000h,000h,07Eh,000h,000h,000h,000h ; Hex #3D + Db 000h,000h,000h,060h,030h,018h,00Ch,006h,00Ch,018h,030h,060h,000h,000h ; Hex #3E + Db 000h,000h,000h,07Ch,0C6h,0C6h,00Ch,018h,018h,000h,018h,018h,000h,000h ; Hex #3F + Db 000h,000h,000h,07Ch,0C6h,0C6h,0DEh,0DEh,0DEh,0DCh,0C0h,07Ch,000h,000h ; Hex #40 + Db 000h,000h,000h,010h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,000h,000h ; Hex #41 + Db 000h,000h,000h,0FCh,066h,066h,066h,07Ch,066h,066h,066h,0FCh,000h,000h ; Hex #42 + Db 000h,000h,000h,03Ch,066h,0C2h,0C0h,0C0h,0C0h,0C2h,066h,03Ch,000h,000h ; Hex #43 + Db 000h,000h,000h,0F8h,06Ch,066h,066h,066h,066h,066h,06Ch,0F8h,000h,000h ; Hex #44 + Db 000h,000h,000h,0FEh,066h,062h,068h,078h,068h,062h,066h,0FEh,000h,000h ; Hex #45 + Db 000h,000h,000h,0FEh,066h,062h,068h,078h,068h,060h,060h,0F0h,000h,000h ; Hex #46 + Db 000h,000h,000h,03Ch,066h,0C2h,0C0h,0C0h,0DEh,0C6h,066h,03Ah,000h,000h ; Hex #47 + Db 000h,000h,000h,0C6h,0C6h,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,0C6h,000h,000h ; Hex #48 + Db 000h,000h,000h,03Ch,018h,018h,018h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #49 + Db 000h,000h,000h,01Eh,00Ch,00Ch,00Ch,00Ch,00Ch,0CCh,0CCh,078h,000h,000h ; Hex #4A + Db 000h,000h,000h,0E6h,066h,06Ch,06Ch,078h,06Ch,06Ch,066h,0E6h,000h,000h ; Hex #4B + Db 000h,000h,000h,0F0h,060h,060h,060h,060h,060h,062h,066h,0FEh,000h,000h ; Hex #4C + Db 000h,000h,000h,0C6h,0EEh,0FEh,0D6h,0C6h,0C6h,0C6h,0C6h,0C6h,000h,000h ; Hex #4D + Db 000h,000h,000h,0C6h,0E6h,0F6h,0FEh,0DEh,0CEh,0C6h,0C6h,0C6h,000h,000h ; Hex #4E + Db 000h,000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #4F + Db 000h,000h,000h,0FCh,066h,066h,066h,07Ch,060h,060h,060h,0F0h,000h,000h ; Hex #50 + Db 000h,000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0D6h,0DEh,07Ch,00Eh,000h ; Hex #51 + Db 000h,000h,000h,0FCh,066h,066h,066h,07Ch,06Ch,066h,066h,0E6h,000h,000h ; Hex #52 + Db 000h,000h,000h,07Ch,0C6h,0C6h,060h,038h,00Ch,0C6h,0C6h,07Ch,000h,000h ; Hex #53 + Db 000h,000h,000h,07Eh,07Eh,05Ah,018h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #54 + Db 000h,000h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #55 + Db 000h,000h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,06Ch,038h,010h,000h,000h ; Hex #56 + Db 000h,000h,000h,0C6h,0C6h,0C6h,0C6h,0D6h,0D6h,0FEh,06Ch,06Ch,000h,000h ; Hex #57 + Db 000h,000h,000h,0C6h,0C6h,0C6h,07Ch,038h,07Ch,0C6h,0C6h,0C6h,000h,000h ; Hex #58 + Db 000h,000h,000h,066h,066h,066h,066h,03Ch,018h,018h,018h,03Ch,000h,000h ; Hex #59 + Db 000h,000h,000h,0FEh,0C6h,08Ch,018h,030h,060h,0C2h,0C6h,0FEh,000h,000h ; Hex #5A + Db 000h,000h,000h,03Ch,030h,030h,030h,030h,030h,030h,030h,03Ch,000h,000h ; Hex #5B + Db 000h,000h,000h,080h,0C0h,0E0h,070h,038h,01Ch,00Eh,006h,002h,000h,000h ; Hex #5C + Db 000h,000h,000h,03Ch,00Ch,00Ch,00Ch,00Ch,00Ch,00Ch,00Ch,03Ch,000h,000h ; Hex #5D + Db 010h,038h,06Ch,0C6h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #5E + Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,0FFh ; Hex #5F + Db 000h,030h,018h,00Ch,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #60 + Db 000h,000h,000h,000h,000h,000h,078h,00Ch,07Ch,0CCh,0CCh,076h,000h,000h ; Hex #61 + Db 000h,000h,000h,0E0h,060h,060h,078h,06Ch,066h,066h,066h,07Ch,000h,000h ; Hex #62 + Db 000h,000h,000h,000h,000h,000h,07Ch,0C6h,0C0h,0C0h,0C6h,07Ch,000h,000h ; Hex #63 + Db 000h,000h,000h,01Ch,00Ch,00Ch,03Ch,06Ch,0CCh,0CCh,0CCh,076h,000h,000h ; Hex #64 + Db 000h,000h,000h,000h,000h,000h,07Ch,0C6h,0FEh,0C0h,0C6h,07Ch,000h,000h ; Hex #65 + Db 000h,000h,000h,01Ch,036h,032h,030h,07Ch,030h,030h,030h,078h,000h,000h ; Hex #66 + Db 000h,000h,000h,000h,000h,000h,076h,0CCh,0CCh,0CCh,07Ch,00Ch,0CCh,078h ; Hex #67 + Db 000h,000h,000h,0E0h,060h,060h,06Ch,076h,066h,066h,066h,0E6h,000h,000h ; Hex #68 + Db 000h,000h,000h,018h,018h,000h,038h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #69 + Db 000h,000h,000h,006h,006h,000h,00Eh,006h,006h,006h,006h,066h,066h,03Ch ; Hex #6A + Db 000h,000h,000h,0E0h,060h,060h,066h,06Ch,078h,06Ch,066h,0E6h,000h,000h ; Hex #6B + Db 000h,000h,000h,038h,018h,018h,018h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #6C + Db 000h,000h,000h,000h,000h,000h,0ECh,0FEh,0D6h,0D6h,0D6h,0D6h,000h,000h ; Hex #6D + Db 000h,000h,000h,000h,000h,000h,0DCh,066h,066h,066h,066h,066h,000h,000h ; Hex #6E + Db 000h,000h,000h,000h,000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #6F + Db 000h,000h,000h,000h,000h,000h,0DCh,066h,066h,066h,07Ch,060h,060h,0F0h ; Hex #70 + Db 000h,000h,000h,000h,000h,000h,076h,0CCh,0CCh,0CCh,07Ch,00Ch,00Ch,01Eh ; Hex #71 + Db 000h,000h,000h,000h,000h,000h,0DCh,076h,066h,060h,060h,0F0h,000h,000h ; Hex #72 + Db 000h,000h,000h,000h,000h,000h,07Ch,0C6h,070h,01Ch,0C6h,07Ch,000h,000h ; Hex #73 + Db 000h,000h,000h,010h,030h,030h,0FCh,030h,030h,030h,036h,01Ch,000h,000h ; Hex #74 + Db 000h,000h,000h,000h,000h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h ; Hex #75 + Db 000h,000h,000h,000h,000h,000h,0C6h,0C6h,0C6h,06Ch,038h,010h,000h,000h ; Hex #76 + Db 000h,000h,000h,000h,000h,000h,0C6h,0C6h,0D6h,0D6h,0FEh,06Ch,000h,000h ; Hex #77 + Db 000h,000h,000h,000h,000h,000h,0C6h,06Ch,038h,038h,06Ch,0C6h,000h,000h ; Hex #78 + Db 000h,000h,000h,000h,000h,000h,0C6h,0C6h,0C6h,0C6h,07Eh,006h,00Ch,078h ; Hex #79 + Db 000h,000h,000h,000h,000h,000h,0FEh,0CCh,018h,030h,066h,0FEh,000h,000h ; Hex #7A + Db 000h,000h,000h,00Eh,018h,018h,018h,070h,018h,018h,018h,00Eh,000h,000h ; Hex #7B + Db 000h,000h,000h,018h,018h,018h,018h,018h,018h,018h,018h,018h,000h,000h ; Hex #7C + Db 000h,000h,000h,070h,018h,018h,018h,00Eh,018h,018h,018h,070h,000h,000h ; Hex #7D + Db 000h,076h,0DCh,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #7E + Db 000h,000h,000h,000h,000h,010h,038h,06Ch,0C6h,0C6h,0FEh,000h,000h,000h ; Hex #7F + Db 000h,000h,000h,03Ch,066h,0C2h,0C0h,0C0h,0C0h,0C2h,066h,03Ch,00Ch,078h ; Hex #80 + Db 000h,000h,000h,0CCh,000h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h ; Hex #81 + Db 000h,000h,00Ch,018h,030h,000h,07Ch,0C6h,0FEh,0C0h,0C6h,07Ch,000h,000h ; Hex #82 + Db 000h,000h,010h,038h,06Ch,000h,078h,00Ch,07Ch,0CCh,0CCh,076h,000h,000h ; Hex #83 + Db 038h,06Ch,0C6h,010h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,000h,000h ; Hex #84 + Db 000h,000h,060h,030h,018h,000h,078h,00Ch,07Ch,0CCh,0CCh,076h,000h,000h ; Hex #85 + Db 000h,000h,000h,07Fh,0DBh,0DBh,0DBh,07Bh,01Bh,01Bh,01Bh,01Bh,000h,000h ; Hex #86 + Db 000h,000h,000h,000h,000h,000h,07Ch,0C6h,0C0h,0C0h,0C6h,07Ch,00Ch,078h ; Hex #87 + Db 000h,000h,010h,038h,06Ch,000h,07Ch,0C6h,0FEh,0C0h,0C6h,07Ch,000h,000h ; Hex #88 + Db 000h,000h,000h,0C6h,000h,000h,07Ch,0C6h,0FEh,0C0h,0C6h,07Ch,000h,000h ; Hex #89 + Db 000h,000h,060h,030h,018h,000h,07Ch,0C6h,0FEh,0C0h,0C6h,07Ch,000h,000h ; Hex #8A + Db 000h,000h,000h,066h,000h,000h,038h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #8B + Db 000h,000h,018h,03Ch,066h,000h,038h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #8C + Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,0FFh,000h,0FFh ; Hex #8D + Db 018h,00Ch,006h,010h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,000h,000h ; Hex #8E + Db 000h,07Ch,0C6h,060h,038h,06Ch,0C6h,0C6h,06Ch,038h,00Ch,0C6h,07Ch,000h ; Hex #8F + Db 00Ch,018h,000h,0FEh,066h,062h,068h,078h,068h,062h,066h,0FEh,000h,000h ; Hex #90 + Db 030h,018h,000h,0FEh,066h,062h,068h,078h,068h,062h,066h,0FEh,000h,000h ; Hex #91 + Db 038h,06Ch,000h,0FEh,066h,062h,068h,078h,068h,062h,066h,0FEh,000h,000h ; Hex #92 + Db 000h,000h,010h,038h,06Ch,000h,07Ch,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #93 + Db 000h,0C6h,000h,0FEh,066h,062h,068h,078h,068h,062h,066h,0FEh,000h,000h ; Hex #94 + Db 000h,066h,000h,03Ch,018h,018h,018h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #95 + Db 000h,000h,030h,078h,0CCh,000h,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h ; Hex #96 + Db 000h,000h,060h,030h,018h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h ; Hex #97 + Db 000h,000h,000h,000h,000h,0C6h,07Ch,0C6h,0C6h,0C6h,07Ch,0C6h,000h,000h ; Hex #98 + Db 038h,06Ch,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #99 + Db 000h,0C6h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #9A + Db 000h,000h,018h,018h,07Ch,0C6h,0C0h,0C0h,0C6h,07Ch,018h,018h,000h,000h ; Hex #9B + Db 000h,000h,038h,06Ch,064h,060h,0F0h,060h,060h,060h,0E6h,0FCh,000h,000h ; Hex #9C + Db 030h,018h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #9D + Db 038h,06Ch,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #9E + Db 000h,000h,00Eh,01Bh,018h,018h,018h,07Eh,018h,018h,018h,0D8h,070h,000h ; Hex #9F + Db 000h,000h,018h,018h,018h,018h,000h,000h,000h,018h,018h,018h,018h,000h ; Hex #A0 + Db 000h,00Ch,018h,030h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #A1 + Db 000h,000h,00Ch,018h,030h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #A2 + Db 000h,000h,00Ch,018h,030h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h ; Hex #A3 + Db 000h,0C6h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #A4 + Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,018h,00Ch,078h ; Hex #A5 + Db 000h,078h,00Ch,038h,00Ch,00Ch,078h,000h,000h,000h,000h,000h,000h,000h ; Hex #A6 + Db 000h,0FFh,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #A7 + Db 03Ch,066h,000h,03Ch,018h,018h,018h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #A8 + Db 000h,000h,000h,000h,000h,000h,000h,0FEh,0C0h,0C0h,0C0h,000h,000h,000h ; Hex #A9 + Db 000h,000h,000h,000h,000h,000h,000h,0FEh,006h,006h,006h,000h,000h,000h ; Hex #AA + Db 000h,000h,060h,0E0h,063h,066h,06Ch,018h,030h,06Eh,0C3h,006h,00Ch,01Fh ; Hex #AB + Db 000h,000h,060h,0E0h,063h,066h,06Ch,01Ah,036h,06Eh,0DAh,03Fh,006h,006h ; Hex #AC + Db 000h,0E0h,030h,0E3h,036h,0ECh,018h,036h,06Eh,0DAh,03Fh,006h,006h,000h ; Hex #AD + Db 000h,000h,000h,000h,000h,036h,06Ch,0D8h,06Ch,036h,000h,000h,000h,000h ; Hex #AE + Db 000h,000h,000h,000h,000h,0D8h,06Ch,036h,06Ch,0D8h,000h,000h,000h,000h ; Hex #AF + Db 011h,044h,011h,044h,011h,044h,011h,044h,011h,044h,011h,044h,011h,044h ; Hex #B0 + Db 055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh ; Hex #B1 + Db 0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h ; Hex #B2 + Db 018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #B3 + Db 018h,018h,018h,018h,018h,018h,018h,0F8h,018h,018h,018h,018h,018h,018h ; Hex #B4 + Db 018h,018h,018h,018h,018h,0F8h,018h,0F8h,018h,018h,018h,018h,018h,018h ; Hex #B5 + Db 036h,036h,036h,036h,036h,036h,036h,0F6h,036h,036h,036h,036h,036h,036h ; Hex #B6 + Db 000h,000h,000h,000h,000h,000h,000h,0FEh,036h,036h,036h,036h,036h,036h ; Hex #B7 + Db 000h,000h,000h,000h,000h,0F8h,018h,0F8h,018h,018h,018h,018h,018h,018h ; Hex #B8 + Db 036h,036h,036h,036h,036h,0F6h,006h,0F6h,036h,036h,036h,036h,036h,036h ; Hex #B9 + Db 036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #BA + Db 000h,000h,000h,000h,000h,0FEh,006h,0F6h,036h,036h,036h,036h,036h,036h ; Hex #BB + Db 036h,036h,036h,036h,036h,0F6h,006h,0FEh,000h,000h,000h,000h,000h,000h ; Hex #BC + Db 036h,036h,036h,036h,036h,036h,036h,0FEh,000h,000h,000h,000h,000h,000h ; Hex #BD + Db 018h,018h,018h,018h,018h,0F8h,018h,0F8h,000h,000h,000h,000h,000h,000h ; Hex #BE + Db 000h,000h,000h,000h,000h,000h,000h,0F8h,018h,018h,018h,018h,018h,018h ; Hex #BF + Db 018h,018h,018h,018h,018h,018h,018h,01Fh,000h,000h,000h,000h,000h,000h ; Hex #C0 + Db 018h,018h,018h,018h,018h,018h,018h,0FFh,000h,000h,000h,000h,000h,000h ; Hex #C1 + Db 000h,000h,000h,000h,000h,000h,000h,0FFh,018h,018h,018h,018h,018h,018h ; Hex #C2 + Db 018h,018h,018h,018h,018h,018h,018h,01Fh,018h,018h,018h,018h,018h,018h ; Hex #C3 + Db 000h,000h,000h,000h,000h,000h,000h,0FFh,000h,000h,000h,000h,000h,000h ; Hex #C4 + Db 018h,018h,018h,018h,018h,018h,018h,0FFh,018h,018h,018h,018h,018h,018h ; Hex #C5 + Db 018h,018h,018h,018h,018h,01Fh,018h,01Fh,018h,018h,018h,018h,018h,018h ; Hex #C6 + Db 036h,036h,036h,036h,036h,036h,036h,037h,036h,036h,036h,036h,036h,036h ; Hex #C7 + Db 036h,036h,036h,036h,036h,037h,030h,03Fh,000h,000h,000h,000h,000h,000h ; Hex #C8 + Db 000h,000h,000h,000h,000h,03Fh,030h,037h,036h,036h,036h,036h,036h,036h ; Hex #C9 + Db 036h,036h,036h,036h,036h,0F7h,000h,0FFh,000h,000h,000h,000h,000h,000h ; Hex #CA + Db 000h,000h,000h,000h,000h,0FFh,000h,0F7h,036h,036h,036h,036h,036h,036h ; Hex #CB + Db 036h,036h,036h,036h,036h,037h,030h,037h,036h,036h,036h,036h,036h,036h ; Hex #CC + Db 000h,000h,000h,000h,000h,0FFh,000h,0FFh,000h,000h,000h,000h,000h,000h ; Hex #CD + Db 036h,036h,036h,036h,036h,0F7h,000h,0F7h,036h,036h,036h,036h,036h,036h ; Hex #CE + Db 018h,018h,018h,018h,018h,0FFh,000h,0FFh,000h,000h,000h,000h,000h,000h ; Hex #CF + Db 036h,036h,036h,036h,036h,036h,036h,0FFh,000h,000h,000h,000h,000h,000h ; Hex #D0 + Db 000h,000h,000h,000h,000h,0FFh,000h,0FFh,018h,018h,018h,018h,018h,018h ; Hex #D1 + Db 000h,000h,000h,000h,000h,000h,000h,0FFh,036h,036h,036h,036h,036h,036h ; Hex #D2 + Db 036h,036h,036h,036h,036h,036h,036h,03Fh,000h,000h,000h,000h,000h,000h ; Hex #D3 + Db 018h,018h,018h,018h,018h,01Fh,018h,01Fh,000h,000h,000h,000h,000h,000h ; Hex #D4 + Db 000h,000h,000h,000h,000h,01Fh,018h,01Fh,018h,018h,018h,018h,018h,018h ; Hex #D5 + Db 000h,000h,000h,000h,000h,000h,000h,03Fh,036h,036h,036h,036h,036h,036h ; Hex #D6 + Db 036h,036h,036h,036h,036h,036h,036h,0FFh,036h,036h,036h,036h,036h,036h ; Hex #D7 + Db 018h,018h,018h,018h,018h,0FFh,018h,0FFh,018h,018h,018h,018h,018h,018h ; Hex #D8 + Db 018h,018h,018h,018h,018h,018h,018h,0F8h,000h,000h,000h,000h,000h,000h ; Hex #D9 + Db 000h,000h,000h,000h,000h,000h,000h,01Fh,018h,018h,018h,018h,018h,018h ; Hex #DA + Db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh ; Hex #DB + Db 000h,000h,000h,000h,000h,000h,000h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh ; Hex #DC + Db 0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h ; Hex #DD + Db 00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh ; Hex #DE + Db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,000h,000h,000h,000h,000h,000h,000h ; Hex #DF + Db 000h,000h,000h,000h,000h,000h,076h,0DCh,0D8h,0D8h,0DCh,076h,000h,000h ; Hex #E0 + Db 000h,000h,000h,078h,0CCh,0CCh,0CCh,0D8h,0CCh,0C6h,0C6h,0CCh,000h,000h ; Hex #E1 + Db 000h,000h,000h,0FEh,0C6h,0C6h,0C0h,0C0h,0C0h,0C0h,0C0h,0C0h,000h,000h ; Hex #E2 + Db 000h,000h,000h,000h,000h,000h,0FEh,06Ch,06Ch,06Ch,06Ch,06Ch,000h,000h ; Hex #E3 + Db 000h,000h,000h,0FEh,0C6h,060h,030h,018h,030h,060h,0C6h,0FEh,000h,000h ; Hex #E4 + Db 000h,000h,000h,000h,000h,000h,07Eh,0D8h,0D8h,0D8h,0D8h,070h,000h,000h ; Hex #E5 + Db 000h,000h,000h,000h,000h,000h,066h,066h,066h,066h,066h,07Ch,060h,0C0h ; Hex #E6 + Db 000h,000h,000h,000h,000h,076h,0DCh,018h,018h,018h,018h,018h,000h,000h ; Hex #E7 + Db 000h,000h,000h,07Eh,018h,03Ch,066h,066h,066h,03Ch,018h,07Eh,000h,000h ; Hex #E8 + Db 000h,000h,000h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,06Ch,038h,000h,000h ; Hex #E9 + Db 000h,000h,000h,038h,06Ch,0C6h,0C6h,0C6h,06Ch,06Ch,06Ch,0EEh,000h,000h ; Hex #EA + Db 000h,000h,000h,01Eh,030h,018h,00Ch,03Eh,066h,066h,066h,03Ch,000h,000h ; Hex #EB + Db 000h,000h,000h,000h,000h,000h,07Eh,0DBh,0DBh,07Eh,000h,000h,000h,000h ; Hex #EC + Db 000h,000h,000h,003h,006h,07Eh,0DBh,0DBh,0F3h,07Eh,060h,0C0h,000h,000h ; Hex #ED + Db 000h,000h,000h,01Eh,030h,060h,060h,07Eh,060h,060h,030h,01Eh,000h,000h ; Hex #EE + Db 000h,000h,000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,000h,000h ; Hex #EF + Db 000h,000h,000h,000h,0FEh,000h,000h,0FEh,000h,000h,0FEh,000h,000h,000h ; Hex #F0 + Db 000h,000h,000h,000h,018h,018h,07Eh,018h,018h,000h,000h,07Eh,000h,000h ; Hex #F1 + Db 000h,000h,000h,030h,018h,00Ch,006h,00Ch,018h,030h,000h,07Eh,000h,000h ; Hex #F2 + Db 000h,000h,000h,00Ch,018h,030h,060h,030h,018h,00Ch,000h,07Eh,000h,000h ; Hex #F3 + Db 000h,000h,00Eh,01Bh,01Bh,018h,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #F4 + Db 018h,018h,018h,018h,018h,018h,018h,018h,0D8h,0D8h,070h,000h,000h,000h ; Hex #F5 + Db 000h,000h,000h,000h,000h,018h,000h,07Eh,000h,018h,000h,000h,000h,000h ; Hex #F6 + Db 000h,000h,000h,000h,000h,076h,0DCh,000h,076h,0DCh,000h,000h,000h,000h ; Hex #F7 + Db 000h,038h,06Ch,06Ch,038h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #F8 + Db 000h,000h,000h,000h,000h,000h,000h,018h,018h,000h,000h,000h,000h,000h ; Hex #F9 + Db 000h,000h,000h,000h,000h,000h,000h,018h,000h,000h,000h,000h,000h,000h ; Hex #FA + Db 000h,00Fh,00Ch,00Ch,00Ch,00Ch,00Ch,00Ch,0ECh,06Ch,03Ch,01Ch,000h,000h ; Hex #FB + Db 000h,06Ch,036h,036h,036h,036h,036h,000h,000h,000h,000h,000h,000h,000h ; Hex #FC + Db 000h,03Ch,066h,00Ch,018h,032h,07Eh,000h,000h,000h,000h,000h,000h,000h ; Hex #FD + Db 000h,000h,000h,000h,000h,07Eh,07Eh,07Eh,07Eh,07Eh,07Eh,000h,000h,000h ; Hex #FE + 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/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 @@ +;*************************************************** +; CHARACTER FONT FILE +; Source Assembler File +; +; CODE PAGE: 863 +; FONT RESOLUTION: 8 x 16 +; +; DATE CREATED:05-28-1987 +; +; +; Output file from: MULTIFON, Version 1A +; +;*************************************************** + Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #0 + Db 000h,000h,07Eh,081h,0A5h,081h,081h,0BDh,099h,081h,081h,07Eh,000h,000h,000h,000h ; Hex #1 + Db 000h,000h,07Eh,0FFh,0DBh,0FFh,0FFh,0C3h,0E7h,0FFh,0FFh,07Eh,000h,000h,000h,000h ; Hex #2 + Db 000h,000h,000h,000h,06Ch,0FEh,0FEh,0FEh,0FEh,07Ch,038h,010h,000h,000h,000h,000h ; Hex #3 + Db 000h,000h,000h,000h,010h,038h,07Ch,0FEh,07Ch,038h,010h,000h,000h,000h,000h,000h ; Hex #4 + Db 000h,000h,000h,018h,03Ch,03Ch,0E7h,0E7h,0E7h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #5 + Db 000h,000h,000h,018h,03Ch,07Eh,0FFh,0FFh,07Eh,018h,018h,03Ch,000h,000h,000h,000h ; Hex #6 + Db 000h,000h,000h,000h,000h,000h,018h,03Ch,03Ch,018h,000h,000h,000h,000h,000h,000h ; Hex #7 + Db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0E7h,0C3h,0C3h,0E7h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh ; Hex #8 + Db 000h,000h,000h,000h,000h,03Ch,066h,042h,042h,066h,03Ch,000h,000h,000h,000h,000h ; Hex #9 + Db 0FFh,0FFh,0FFh,0FFh,0FFh,0C3h,099h,0BDh,0BDh,099h,0C3h,0FFh,0FFh,0FFh,0FFh,0FFh ; Hex #A + Db 000h,000h,01Eh,00Eh,01Ah,032h,078h,0CCh,0CCh,0CCh,0CCh,078h,000h,000h,000h,000h ; Hex #B + Db 000h,000h,03Ch,066h,066h,066h,066h,03Ch,018h,07Eh,018h,018h,000h,000h,000h,000h ; Hex #C + Db 000h,000h,03Fh,033h,03Fh,030h,030h,030h,030h,070h,0F0h,0E0h,000h,000h,000h,000h ; Hex #D + Db 000h,000h,07Fh,063h,07Fh,063h,063h,063h,063h,067h,0E7h,0E6h,0C0h,000h,000h,000h ; Hex #E + Db 000h,000h,000h,018h,018h,0DBh,03Ch,0E7h,03Ch,0DBh,018h,018h,000h,000h,000h,000h ; Hex #F + Db 000h,080h,0C0h,0E0h,0F0h,0F8h,0FEh,0F8h,0F0h,0E0h,0C0h,080h,000h,000h,000h,000h ; Hex #10 + Db 000h,002h,006h,00Eh,01Eh,03Eh,0FEh,03Eh,01Eh,00Eh,006h,002h,000h,000h,000h,000h ; Hex #11 + Db 000h,000h,018h,03Ch,07Eh,018h,018h,018h,07Eh,03Ch,018h,000h,000h,000h,000h,000h ; Hex #12 + Db 000h,000h,066h,066h,066h,066h,066h,066h,066h,000h,066h,066h,000h,000h,000h,000h ; Hex #13 + Db 000h,000h,07Fh,0DBh,0DBh,0DBh,07Bh,01Bh,01Bh,01Bh,01Bh,01Bh,000h,000h,000h,000h ; Hex #14 + Db 000h,07Ch,0C6h,060h,038h,06Ch,0C6h,0C6h,06Ch,038h,00Ch,0C6h,07Ch,000h,000h,000h ; Hex #15 + Db 000h,000h,000h,000h,000h,000h,000h,000h,0FEh,0FEh,0FEh,0FEh,000h,000h,000h,000h ; Hex #16 + Db 000h,000h,018h,03Ch,07Eh,018h,018h,018h,07Eh,03Ch,018h,07Eh,000h,000h,000h,000h ; Hex #17 + Db 000h,000h,018h,03Ch,07Eh,018h,018h,018h,018h,018h,018h,018h,000h,000h,000h,000h ; Hex #18 + Db 000h,000h,018h,018h,018h,018h,018h,018h,018h,07Eh,03Ch,018h,000h,000h,000h,000h ; Hex #19 + Db 000h,000h,000h,000h,000h,018h,00Ch,0FEh,00Ch,018h,000h,000h,000h,000h,000h,000h ; Hex #1A + Db 000h,000h,000h,000h,000h,030h,060h,0FEh,060h,030h,000h,000h,000h,000h,000h,000h ; Hex #1B + Db 000h,000h,000h,000h,000h,000h,0C0h,0C0h,0C0h,0FEh,000h,000h,000h,000h,000h,000h ; Hex #1C + Db 000h,000h,000h,000h,000h,028h,06Ch,0FEh,06Ch,028h,000h,000h,000h,000h,000h,000h ; Hex #1D + Db 000h,000h,000h,000h,010h,038h,038h,07Ch,07Ch,0FEh,0FEh,000h,000h,000h,000h,000h ; Hex #1E + Db 000h,000h,000h,000h,0FEh,0FEh,07Ch,07Ch,038h,038h,010h,000h,000h,000h,000h,000h ; Hex #1F + Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #20 + Db 000h,000h,018h,03Ch,03Ch,03Ch,018h,018h,018h,000h,018h,018h,000h,000h,000h,000h ; Hex #21 + Db 000h,066h,066h,066h,024h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #22 + Db 000h,000h,000h,06Ch,06Ch,0FEh,06Ch,06Ch,06Ch,0FEh,06Ch,06Ch,000h,000h,000h,000h ; Hex #23 + Db 018h,018h,07Ch,0C6h,0C2h,0C0h,07Ch,006h,006h,086h,0C6h,07Ch,018h,018h,000h,000h ; Hex #24 + Db 000h,000h,000h,000h,0C2h,0C6h,00Ch,018h,030h,060h,0C6h,086h,000h,000h,000h,000h ; Hex #25 + Db 000h,000h,038h,06Ch,06Ch,038h,076h,0DCh,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #26 + Db 000h,030h,030h,030h,060h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #27 + Db 000h,000h,00Ch,018h,030h,030h,030h,030h,030h,030h,018h,00Ch,000h,000h,000h,000h ; Hex #28 + Db 000h,000h,030h,018h,00Ch,00Ch,00Ch,00Ch,00Ch,00Ch,018h,030h,000h,000h,000h,000h ; Hex #29 + Db 000h,000h,000h,000h,000h,066h,03Ch,0FFh,03Ch,066h,000h,000h,000h,000h,000h,000h ; Hex #2A + Db 000h,000h,000h,000h,000h,018h,018h,07Eh,018h,018h,000h,000h,000h,000h,000h,000h ; Hex #2B + Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,018h,018h,018h,030h,000h,000h,000h ; Hex #2C + Db 000h,000h,000h,000h,000h,000h,000h,0FEh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #2D + Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,018h,018h,000h,000h,000h,000h ; Hex #2E + Db 000h,000h,000h,000h,002h,006h,00Ch,018h,030h,060h,0C0h,080h,000h,000h,000h,000h ; Hex #2F + Db 000h,000h,038h,06Ch,0C6h,0C6h,0D6h,0D6h,0C6h,0C6h,06Ch,038h,000h,000h,000h,000h ; Hex #30 + Db 000h,000h,018h,038h,078h,018h,018h,018h,018h,018h,018h,07Eh,000h,000h,000h,000h ; Hex #31 + Db 000h,000h,07Ch,0C6h,006h,00Ch,018h,030h,060h,0C0h,0C6h,0FEh,000h,000h,000h,000h ; Hex #32 + Db 000h,000h,07Ch,0C6h,006h,006h,03Ch,006h,006h,006h,0C6h,07Ch,000h,000h,000h,000h ; Hex #33 + Db 000h,000h,00Ch,01Ch,03Ch,06Ch,0CCh,0FEh,00Ch,00Ch,00Ch,01Eh,000h,000h,000h,000h ; Hex #34 + Db 000h,000h,0FEh,0C0h,0C0h,0C0h,0FCh,006h,006h,006h,0C6h,07Ch,000h,000h,000h,000h ; Hex #35 + Db 000h,000h,038h,060h,0C0h,0C0h,0FCh,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #36 + Db 000h,000h,0FEh,0C6h,006h,006h,00Ch,018h,030h,030h,030h,030h,000h,000h,000h,000h ; Hex #37 + Db 000h,000h,07Ch,0C6h,0C6h,0C6h,07Ch,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #38 + Db 000h,000h,07Ch,0C6h,0C6h,0C6h,07Eh,006h,006h,006h,00Ch,078h,000h,000h,000h,000h ; Hex #39 + Db 000h,000h,000h,000h,018h,018h,000h,000h,000h,018h,018h,000h,000h,000h,000h,000h ; Hex #3A + Db 000h,000h,000h,000h,018h,018h,000h,000h,000h,018h,018h,030h,000h,000h,000h,000h ; Hex #3B + Db 000h,000h,000h,006h,00Ch,018h,030h,060h,030h,018h,00Ch,006h,000h,000h,000h,000h ; Hex #3C + Db 000h,000h,000h,000h,000h,07Eh,000h,000h,07Eh,000h,000h,000h,000h,000h,000h,000h ; Hex #3D + Db 000h,000h,000h,060h,030h,018h,00Ch,006h,00Ch,018h,030h,060h,000h,000h,000h,000h ; Hex #3E + Db 000h,000h,07Ch,0C6h,0C6h,00Ch,018h,018h,018h,000h,018h,018h,000h,000h,000h,000h ; Hex #3F + Db 000h,000h,000h,07Ch,0C6h,0C6h,0DEh,0DEh,0DEh,0DCh,0C0h,07Ch,000h,000h,000h,000h ; Hex #40 + Db 000h,000h,010h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #41 + Db 000h,000h,0FCh,066h,066h,066h,07Ch,066h,066h,066h,066h,0FCh,000h,000h,000h,000h ; Hex #42 + Db 000h,000h,03Ch,066h,0C2h,0C0h,0C0h,0C0h,0C0h,0C2h,066h,03Ch,000h,000h,000h,000h ; Hex #43 + Db 000h,000h,0F8h,06Ch,066h,066h,066h,066h,066h,066h,06Ch,0F8h,000h,000h,000h,000h ; Hex #44 + Db 000h,000h,0FEh,066h,062h,068h,078h,068h,060h,062h,066h,0FEh,000h,000h,000h,000h ; Hex #45 + Db 000h,000h,0FEh,066h,062h,068h,078h,068h,060h,060h,060h,0F0h,000h,000h,000h,000h ; Hex #46 + Db 000h,000h,03Ch,066h,0C2h,0C0h,0C0h,0DEh,0C6h,0C6h,066h,03Ah,000h,000h,000h,000h ; Hex #47 + Db 000h,000h,0C6h,0C6h,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #48 + Db 000h,000h,03Ch,018h,018h,018h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #49 + Db 000h,000h,01Eh,00Ch,00Ch,00Ch,00Ch,00Ch,0CCh,0CCh,0CCh,078h,000h,000h,000h,000h ; Hex #4A + Db 000h,000h,0E6h,066h,066h,06Ch,078h,078h,06Ch,066h,066h,0E6h,000h,000h,000h,000h ; Hex #4B + Db 000h,000h,0F0h,060h,060h,060h,060h,060h,060h,062h,066h,0FEh,000h,000h,000h,000h ; Hex #4C + Db 000h,000h,0C6h,0EEh,0FEh,0FEh,0D6h,0C6h,0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #4D + Db 000h,000h,0C6h,0E6h,0F6h,0FEh,0DEh,0CEh,0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #4E + Db 000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #4F + Db 000h,000h,0FCh,066h,066h,066h,07Ch,060h,060h,060h,060h,0F0h,000h,000h,000h,000h ; Hex #50 + Db 000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0D6h,0DEh,07Ch,00Ch,00Eh,000h,000h ; Hex #51 + Db 000h,000h,0FCh,066h,066h,066h,07Ch,06Ch,066h,066h,066h,0E6h,000h,000h,000h,000h ; Hex #52 + Db 000h,000h,07Ch,0C6h,0C6h,060h,038h,00Ch,006h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #53 + Db 000h,000h,07Eh,07Eh,05Ah,018h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #54 + Db 000h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #55 + Db 000h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,06Ch,038h,010h,000h,000h,000h,000h ; Hex #56 + Db 000h,000h,0C6h,0C6h,0C6h,0C6h,0D6h,0D6h,0D6h,0FEh,0EEh,06Ch,000h,000h,000h,000h ; Hex #57 + Db 000h,000h,0C6h,0C6h,06Ch,07Ch,038h,038h,07Ch,06Ch,0C6h,0C6h,000h,000h,000h,000h ; Hex #58 + Db 000h,000h,066h,066h,066h,066h,03Ch,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #59 + Db 000h,000h,0FEh,0C6h,086h,00Ch,018h,030h,060h,0C2h,0C6h,0FEh,000h,000h,000h,000h ; Hex #5A + Db 000h,000h,03Ch,030h,030h,030h,030h,030h,030h,030h,030h,03Ch,000h,000h,000h,000h ; Hex #5B + Db 000h,000h,000h,080h,0C0h,0E0h,070h,038h,01Ch,00Eh,006h,002h,000h,000h,000h,000h ; Hex #5C + Db 000h,000h,03Ch,00Ch,00Ch,00Ch,00Ch,00Ch,00Ch,00Ch,00Ch,03Ch,000h,000h,000h,000h ; Hex #5D + Db 010h,038h,06Ch,0C6h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #5E + Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,0FFh,000h,000h ; Hex #5F + Db 000h,030h,018h,00Ch,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #60 + Db 000h,000h,000h,000h,000h,078h,00Ch,07Ch,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #61 + Db 000h,000h,0E0h,060h,060h,078h,06Ch,066h,066h,066h,066h,07Ch,000h,000h,000h,000h ; Hex #62 + Db 000h,000h,000h,000h,000h,07Ch,0C6h,0C0h,0C0h,0C0h,0C6h,07Ch,000h,000h,000h,000h ; Hex #63 + Db 000h,000h,01Ch,00Ch,00Ch,03Ch,06Ch,0CCh,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #64 + Db 000h,000h,000h,000h,000h,07Ch,0C6h,0FEh,0C0h,0C0h,0C6h,07Ch,000h,000h,000h,000h ; Hex #65 + Db 000h,000h,01Ch,036h,032h,030h,078h,030h,030h,030h,030h,078h,000h,000h,000h,000h ; Hex #66 + Db 000h,000h,000h,000h,000h,076h,0CCh,0CCh,0CCh,0CCh,0CCh,07Ch,00Ch,0CCh,078h,000h ; Hex #67 + Db 000h,000h,0E0h,060h,060h,06Ch,076h,066h,066h,066h,066h,0E6h,000h,000h,000h,000h ; Hex #68 + Db 000h,000h,018h,018h,000h,038h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #69 + Db 000h,000h,006h,006h,000h,00Eh,006h,006h,006h,006h,006h,006h,066h,066h,03Ch,000h ; Hex #6A + Db 000h,000h,0E0h,060h,060h,066h,06Ch,078h,078h,06Ch,066h,0E6h,000h,000h,000h,000h ; Hex #6B + Db 000h,000h,038h,018h,018h,018h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #6C + Db 000h,000h,000h,000h,000h,0ECh,0FEh,0D6h,0D6h,0D6h,0D6h,0C6h,000h,000h,000h,000h ; Hex #6D + Db 000h,000h,000h,000h,000h,0DCh,066h,066h,066h,066h,066h,066h,000h,000h,000h,000h ; Hex #6E + Db 000h,000h,000h,000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #6F + Db 000h,000h,000h,000h,000h,0DCh,066h,066h,066h,066h,066h,07Ch,060h,060h,0F0h,000h ; Hex #70 + Db 000h,000h,000h,000h,000h,076h,0CCh,0CCh,0CCh,0CCh,0CCh,07Ch,00Ch,00Ch,01Eh,000h ; Hex #71 + Db 000h,000h,000h,000h,000h,0DCh,076h,066h,060h,060h,060h,0F0h,000h,000h,000h,000h ; Hex #72 + Db 000h,000h,000h,000h,000h,07Ch,0C6h,060h,038h,00Ch,0C6h,07Ch,000h,000h,000h,000h ; Hex #73 + Db 000h,000h,010h,030h,030h,0FCh,030h,030h,030h,030h,036h,01Ch,000h,000h,000h,000h ; Hex #74 + Db 000h,000h,000h,000h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #75 + Db 000h,000h,000h,000h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,06Ch,038h,000h,000h,000h,000h ; Hex #76 + Db 000h,000h,000h,000h,000h,0C6h,0C6h,0D6h,0D6h,0D6h,0FEh,06Ch,000h,000h,000h,000h ; Hex #77 + Db 000h,000h,000h,000h,000h,0C6h,06Ch,038h,038h,038h,06Ch,0C6h,000h,000h,000h,000h ; Hex #78 + Db 000h,000h,000h,000h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Eh,006h,00Ch,0F8h,000h ; Hex #79 + Db 000h,000h,000h,000h,000h,0FEh,0CCh,018h,030h,060h,0C6h,0FEh,000h,000h,000h,000h ; Hex #7A + Db 000h,000h,00Eh,018h,018h,018h,070h,018h,018h,018h,018h,00Eh,000h,000h,000h,000h ; Hex #7B + Db 000h,000h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,000h,000h,000h,000h ; Hex #7C + Db 000h,000h,070h,018h,018h,018h,00Eh,018h,018h,018h,018h,070h,000h,000h,000h,000h ; Hex #7D + Db 000h,076h,0DCh,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #7E + Db 000h,000h,000h,000h,010h,038h,06Ch,0C6h,0C6h,0C6h,0FEh,000h,000h,000h,000h,000h ; Hex #7F + Db 000h,000h,03Ch,066h,0C2h,0C0h,0C0h,0C0h,0C0h,0C2h,066h,03Ch,018h,070h,000h,000h ; Hex #80 + Db 000h,000h,0CCh,000h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #81 + Db 000h,00Ch,018h,030h,000h,07Ch,0C6h,0FEh,0C0h,0C0h,0C6h,07Ch,000h,000h,000h,000h ; Hex #82 + Db 000h,010h,038h,06Ch,000h,078h,00Ch,07Ch,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #83 + Db 038h,06Ch,0C6h,010h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #84 + Db 000h,060h,030h,018h,000h,078h,00Ch,07Ch,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #85 + Db 000h,000h,000h,07Fh,0DBh,0DBh,0DBh,07Bh,01Bh,01Bh,01Bh,01Bh,000h,000h,000h,000h ; Hex #86 + Db 000h,000h,000h,000h,000h,07Ch,0C6h,0C0h,0C0h,0C0h,0C6h,07Ch,018h,070h,000h,000h ; Hex #87 + Db 000h,010h,038h,06Ch,000h,07Ch,0C6h,0FEh,0C0h,0C0h,0C6h,07Ch,000h,000h,000h,000h ; Hex #88 + Db 000h,000h,0C6h,000h,000h,07Ch,0C6h,0FEh,0C0h,0C0h,0C6h,07Ch,000h,000h,000h,000h ; Hex #89 + Db 000h,060h,030h,018h,000h,07Ch,0C6h,0FEh,0C0h,0C0h,0C6h,07Ch,000h,000h,000h,000h ; Hex #8A + Db 000h,000h,066h,000h,000h,038h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #8B + Db 000h,018h,03Ch,066h,000h,038h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #8C + Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,0FFh,000h,0FFh,000h ; Hex #8D + Db 018h,00Ch,006h,010h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #8E + Db 000h,07Ch,0C6h,060h,038h,06Ch,0C6h,0C6h,06Ch,038h,00Ch,0C6h,07Ch,000h,000h,000h ; Hex #8F + Db 00Ch,018h,000h,0FEh,066h,062h,068h,078h,068h,062h,066h,0FEh,000h,000h,000h,000h ; Hex #90 + Db 030h,018h,000h,0FEh,066h,062h,068h,078h,068h,062h,066h,0FEh,000h,000h,000h,000h ; Hex #91 + Db 038h,06Ch,000h,0FEh,066h,062h,068h,078h,068h,062h,066h,0FEh,000h,000h,000h,000h ; Hex #92 + Db 000h,010h,038h,06Ch,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #93 + Db 000h,0C6h,000h,0FEh,066h,062h,068h,078h,068h,062h,066h,0FEh,000h,000h,000h,000h ; Hex #94 + Db 000h,066h,000h,03Ch,018h,018h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #95 + Db 000h,030h,078h,0CCh,000h,0CCh,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #96 + Db 000h,060h,030h,018h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #97 + Db 000h,000h,000h,000h,0C6h,07Ch,0C6h,0C6h,0C6h,0C6h,07Ch,0C6h,000h,000h,000h,000h ; Hex #98 + Db 038h,06Ch,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #99 + Db 000h,0C6h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #9A + Db 000h,018h,018h,07Ch,0C6h,0C0h,0C0h,0C0h,0C6h,07Ch,018h,018h,000h,000h,000h,000h ; Hex #9B + Db 000h,038h,06Ch,064h,060h,0F0h,060h,060h,060h,060h,0E6h,0FCh,000h,000h,000h,000h ; Hex #9C + Db 030h,018h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #9D + Db 038h,06Ch,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #9E + Db 000h,00Eh,01Bh,018h,018h,018h,07Eh,018h,018h,018h,0D8h,070h,000h,000h,000h,000h ; Hex #9F + Db 000h,018h,018h,018h,018h,018h,000h,000h,018h,018h,018h,018h,018h,000h,000h,000h ; Hex #A0 + Db 000h,00Ch,018h,030h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #A1 + Db 000h,018h,030h,060h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #A2 + Db 000h,018h,030h,060h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #A3 + Db 000h,0C6h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #A4 + Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,018h,00Ch,078h,000h,000h ; Hex #A5 + Db 000h,07Ch,006h,03Ch,006h,006h,07Ch,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #A6 + Db 000h,0FFh,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #A7 + Db 03Ch,066h,000h,03Ch,018h,018h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #A8 + Db 000h,000h,000h,000h,000h,000h,0FEh,0C0h,0C0h,0C0h,0C0h,000h,000h,000h,000h,000h ; Hex #A9 + Db 000h,000h,000h,000h,000h,000h,0FEh,006h,006h,006h,006h,000h,000h,000h,000h,000h ; Hex #AA + Db 000h,060h,0E0h,062h,066h,06Ch,018h,030h,060h,0DCh,086h,00Ch,018h,03Eh,000h,000h ; Hex #AB + Db 000h,060h,0E0h,062h,066h,06Ch,018h,030h,066h,0CEh,09Ah,03Fh,006h,006h,000h,000h ; Hex #AC + Db 000h,0E0h,030h,0E2h,036h,0ECh,018h,030h,066h,0CEh,09Ah,03Fh,006h,006h,000h,000h ; Hex #AD + Db 000h,000h,000h,000h,000h,036h,06Ch,0D8h,06Ch,036h,000h,000h,000h,000h,000h,000h ; Hex #AE + Db 000h,000h,000h,000h,000h,0D8h,06Ch,036h,06Ch,0D8h,000h,000h,000h,000h,000h,000h ; Hex #AF + Db 011h,044h,011h,044h,011h,044h,011h,044h,011h,044h,011h,044h,011h,044h,011h,044h ; Hex #B0 + Db 055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh ; Hex #B1 + Db 0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h ; Hex #B2 + Db 018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #B3 + Db 018h,018h,018h,018h,018h,018h,018h,0F8h,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #B4 + Db 018h,018h,018h,018h,018h,0F8h,018h,0F8h,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #B5 + Db 036h,036h,036h,036h,036h,036h,036h,0F6h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #B6 + Db 000h,000h,000h,000h,000h,000h,000h,0FEh,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #B7 + Db 000h,000h,000h,000h,000h,0F8h,018h,0F8h,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #B8 + Db 036h,036h,036h,036h,036h,0F6h,006h,0F6h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #B9 + Db 036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #BA + Db 000h,000h,000h,000h,000h,0FEh,006h,0F6h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #BB + Db 036h,036h,036h,036h,036h,0F6h,006h,0FEh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #BC + Db 036h,036h,036h,036h,036h,036h,036h,0FEh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #BD + Db 018h,018h,018h,018h,018h,0F8h,018h,0F8h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #BE + Db 000h,000h,000h,000h,000h,000h,000h,0F8h,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #BF + Db 018h,018h,018h,018h,018h,018h,018h,01Fh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #C0 + Db 018h,018h,018h,018h,018h,018h,018h,0FFh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #C1 + Db 000h,000h,000h,000h,000h,000h,000h,0FFh,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #C2 + Db 018h,018h,018h,018h,018h,018h,018h,01Fh,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #C3 + Db 000h,000h,000h,000h,000h,000h,000h,0FFh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #C4 + Db 018h,018h,018h,018h,018h,018h,018h,0FFh,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #C5 + Db 018h,018h,018h,018h,018h,01Fh,018h,01Fh,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #C6 + Db 036h,036h,036h,036h,036h,036h,036h,037h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #C7 + Db 036h,036h,036h,036h,036h,037h,030h,03Fh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #C8 + Db 000h,000h,000h,000h,000h,03Fh,030h,037h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #C9 + Db 036h,036h,036h,036h,036h,0F7h,000h,0FFh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #CA + Db 000h,000h,000h,000h,000h,0FFh,000h,0F7h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #CB + Db 036h,036h,036h,036h,036h,037h,030h,037h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #CC + Db 000h,000h,000h,000h,000h,0FFh,000h,0FFh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #CD + Db 036h,036h,036h,036h,036h,0F7h,000h,0F7h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #CE + Db 018h,018h,018h,018h,018h,0FFh,000h,0FFh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #CF + Db 036h,036h,036h,036h,036h,036h,036h,0FFh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #D0 + Db 000h,000h,000h,000h,000h,0FFh,000h,0FFh,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #D1 + Db 000h,000h,000h,000h,000h,000h,000h,0FFh,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #D2 + Db 036h,036h,036h,036h,036h,036h,036h,03Fh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #D3 + Db 018h,018h,018h,018h,018h,01Fh,018h,01Fh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #D4 + Db 000h,000h,000h,000h,000h,01Fh,018h,01Fh,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #D5 + Db 000h,000h,000h,000h,000h,000h,000h,03Fh,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #D6 + Db 036h,036h,036h,036h,036h,036h,036h,0FFh,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #D7 + Db 018h,018h,018h,018h,018h,0FFh,018h,0FFh,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #D8 + Db 018h,018h,018h,018h,018h,018h,018h,0F8h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #D9 + Db 000h,000h,000h,000h,000h,000h,000h,01Fh,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #DA + Db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh ; Hex #DB + Db 000h,000h,000h,000h,000h,000h,000h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh ; Hex #DC + Db 0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h ; Hex #DD + Db 00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh ; Hex #DE + Db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #DF + Db 000h,000h,000h,000h,000h,076h,0DCh,0D8h,0D8h,0D8h,0DCh,076h,000h,000h,000h,000h ; Hex #E0 + Db 000h,000h,078h,0CCh,0CCh,0CCh,0D8h,0CCh,0C6h,0C6h,0C6h,0CCh,000h,000h,000h,000h ; Hex #E1 + Db 000h,000h,0FEh,0C6h,0C6h,0C0h,0C0h,0C0h,0C0h,0C0h,0C0h,0C0h,000h,000h,000h,000h ; Hex #E2 + Db 000h,000h,000h,000h,000h,0FEh,06Ch,06Ch,06Ch,06Ch,06Ch,06Ch,000h,000h,000h,000h ; Hex #E3 + Db 000h,000h,0FEh,0C6h,060h,030h,018h,018h,030h,060h,0C6h,0FEh,000h,000h,000h,000h ; Hex #E4 + Db 000h,000h,000h,000h,000h,07Eh,0D8h,0D8h,0D8h,0D8h,0D8h,070h,000h,000h,000h,000h ; Hex #E5 + Db 000h,000h,000h,000h,000h,066h,066h,066h,066h,066h,066h,07Ch,060h,060h,0C0h,000h ; Hex #E6 + Db 000h,000h,000h,000h,076h,0DCh,018h,018h,018h,018h,018h,018h,000h,000h,000h,000h ; Hex #E7 + Db 000h,000h,07Eh,018h,03Ch,066h,066h,066h,066h,03Ch,018h,07Eh,000h,000h,000h,000h ; Hex #E8 + Db 000h,000h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,06Ch,038h,000h,000h,000h,000h ; Hex #E9 + Db 000h,000h,038h,06Ch,0C6h,0C6h,0C6h,06Ch,06Ch,06Ch,06Ch,0EEh,000h,000h,000h,000h ; Hex #EA + Db 000h,000h,01Eh,030h,018h,00Ch,03Eh,066h,066h,066h,066h,03Ch,000h,000h,000h,000h ; Hex #EB + Db 000h,000h,000h,000h,000h,07Eh,0DBh,0DBh,0DBh,07Eh,000h,000h,000h,000h,000h,000h ; Hex #EC + Db 000h,000h,000h,003h,006h,07Eh,0DBh,0DBh,0F3h,07Eh,060h,0C0h,000h,000h,000h,000h ; Hex #ED + Db 000h,000h,01Ch,030h,060h,060h,07Ch,060h,060h,060h,030h,01Ch,000h,000h,000h,000h ; Hex #EE + Db 000h,000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #EF + Db 000h,000h,000h,000h,0FEh,000h,000h,0FEh,000h,000h,0FEh,000h,000h,000h,000h,000h ; Hex #F0 + Db 000h,000h,000h,000h,018h,018h,07Eh,018h,018h,000h,000h,07Eh,000h,000h,000h,000h ; Hex #F1 + Db 000h,000h,000h,030h,018h,00Ch,006h,00Ch,018h,030h,000h,07Eh,000h,000h,000h,000h ; Hex #F2 + Db 000h,000h,000h,00Ch,018h,030h,060h,030h,018h,00Ch,000h,07Eh,000h,000h,000h,000h ; Hex #F3 + Db 000h,000h,00Eh,01Bh,01Bh,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #F4 + Db 018h,018h,018h,018h,018h,018h,018h,018h,018h,0D8h,0D8h,0D8h,070h,000h,000h,000h ; Hex #F5 + Db 000h,000h,000h,000h,000h,018h,000h,07Eh,000h,018h,000h,000h,000h,000h,000h,000h ; Hex #F6 + Db 000h,000h,000h,000h,000h,076h,0DCh,000h,076h,0DCh,000h,000h,000h,000h,000h,000h ; Hex #F7 + Db 000h,038h,06Ch,06Ch,038h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #F8 + Db 000h,000h,000h,000h,000h,000h,000h,018h,018h,000h,000h,000h,000h,000h,000h,000h ; Hex #F9 + Db 000h,000h,000h,000h,000h,000h,000h,018h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #FA + Db 000h,00Fh,00Ch,00Ch,00Ch,00Ch,00Ch,0ECh,06Ch,06Ch,03Ch,01Ch,000h,000h,000h,000h ; Hex #FB + Db 000h,06Ch,036h,036h,036h,036h,036h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #FC + Db 000h,03Ch,066h,00Ch,018h,032h,07Eh,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #FD + Db 000h,000h,000h,000h,07Eh,07Eh,07Eh,07Eh,07Eh,07Eh,07Eh,000h,000h,000h,000h,000h ; Hex #FE + 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/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 @@ +;*************************************************** +; CHARACTER FONT FILE +; Source Assembler File +; +; CODE PAGE: 863 +; FONT RESOLUTION: 8 x 8 +; +; DATE CREATED:05-28-1987 +; +; +; Output file from: MULTIFON, Version 1A +; +;*************************************************** + Db 000h,000h,000h,000h,000h,000h,000h,000h ; Hex #0 + Db 07Eh,081h,0A5h,081h,0BDh,099h,081h,07Eh ; Hex #1 + Db 07Eh,0FFh,0DBh,0FFh,0C3h,0E7h,0FFh,07Eh ; Hex #2 + Db 06Ch,0FEh,0FEh,0FEh,07Ch,038h,010h,000h ; Hex #3 + Db 010h,038h,07Ch,0FEh,07Ch,038h,010h,000h ; Hex #4 + Db 038h,07Ch,038h,0FEh,0FEh,0D6h,010h,038h ; Hex #5 + Db 010h,038h,07Ch,0FEh,0FEh,07Ch,010h,038h ; Hex #6 + Db 000h,000h,018h,03Ch,03Ch,018h,000h,000h ; Hex #7 + Db 0FFh,0FFh,0E7h,0C3h,0C3h,0E7h,0FFh,0FFh ; Hex #8 + Db 000h,03Ch,066h,042h,042h,066h,03Ch,000h ; Hex #9 + Db 0FFh,0C3h,099h,0BDh,0BDh,099h,0C3h,0FFh ; Hex #A + Db 00Fh,007h,00Fh,07Dh,0CCh,0CCh,0CCh,078h ; Hex #B + Db 03Ch,066h,066h,066h,03Ch,018h,07Eh,018h ; Hex #C + Db 03Fh,033h,03Fh,030h,030h,070h,0F0h,0E0h ; Hex #D + Db 07Fh,063h,07Fh,063h,063h,067h,0E6h,0C0h ; Hex #E + Db 018h,0DBh,03Ch,0E7h,0E7h,03Ch,0DBh,018h ; Hex #F + Db 080h,0E0h,0F8h,0FEh,0F8h,0E0h,080h,000h ; Hex #10 + Db 002h,00Eh,03Eh,0FEh,03Eh,00Eh,002h,000h ; Hex #11 + Db 018h,03Ch,07Eh,018h,018h,07Eh,03Ch,018h ; Hex #12 + Db 066h,066h,066h,066h,066h,000h,066h,000h ; Hex #13 + Db 07Fh,0DBh,0DBh,07Bh,01Bh,01Bh,01Bh,000h ; Hex #14 + Db 03Eh,061h,03Ch,066h,066h,03Ch,086h,07Ch ; Hex #15 + Db 000h,000h,000h,000h,07Eh,07Eh,07Eh,000h ; Hex #16 + Db 018h,03Ch,07Eh,018h,07Eh,03Ch,018h,0FFh ; Hex #17 + Db 018h,03Ch,07Eh,018h,018h,018h,018h,000h ; Hex #18 + Db 018h,018h,018h,018h,07Eh,03Ch,018h,000h ; Hex #19 + Db 000h,018h,00Ch,0FEh,00Ch,018h,000h,000h ; Hex #1A + Db 000h,030h,060h,0FEh,060h,030h,000h,000h ; Hex #1B + Db 000h,000h,0C0h,0C0h,0C0h,0FEh,000h,000h ; Hex #1C + Db 000h,024h,066h,0FFh,066h,024h,000h,000h ; Hex #1D + Db 000h,018h,03Ch,07Eh,0FFh,0FFh,000h,000h ; Hex #1E + Db 000h,0FFh,0FFh,07Eh,03Ch,018h,000h,000h ; Hex #1F + Db 000h,000h,000h,000h,000h,000h,000h,000h ; Hex #20 + Db 018h,03Ch,03Ch,018h,018h,000h,018h,000h ; Hex #21 + Db 066h,066h,024h,000h,000h,000h,000h,000h ; Hex #22 + Db 06Ch,06Ch,0FEh,06Ch,0FEh,06Ch,06Ch,000h ; Hex #23 + Db 018h,03Eh,060h,03Ch,006h,07Ch,018h,000h ; Hex #24 + Db 000h,0C6h,0CCh,018h,030h,066h,0C6h,000h ; Hex #25 + Db 038h,06Ch,038h,076h,0DCh,0CCh,076h,000h ; Hex #26 + Db 018h,018h,030h,000h,000h,000h,000h,000h ; Hex #27 + Db 00Ch,018h,030h,030h,030h,018h,00Ch,000h ; Hex #28 + Db 030h,018h,00Ch,00Ch,00Ch,018h,030h,000h ; Hex #29 + Db 000h,066h,03Ch,0FFh,03Ch,066h,000h,000h ; Hex #2A + Db 000h,018h,018h,07Eh,018h,018h,000h,000h ; Hex #2B + Db 000h,000h,000h,000h,000h,018h,018h,030h ; Hex #2C + Db 000h,000h,000h,07Eh,000h,000h,000h,000h ; Hex #2D + Db 000h,000h,000h,000h,000h,018h,018h,000h ; Hex #2E + Db 006h,00Ch,018h,030h,060h,0C0h,080h,000h ; Hex #2F + Db 038h,06Ch,0C6h,0D6h,0C6h,06Ch,038h,000h ; Hex #30 + Db 018h,038h,018h,018h,018h,018h,07Eh,000h ; Hex #31 + Db 07Ch,0C6h,006h,01Ch,030h,066h,0FEh,000h ; Hex #32 + Db 07Ch,0C6h,006h,03Ch,006h,0C6h,07Ch,000h ; Hex #33 + Db 01Ch,03Ch,06Ch,0CCh,0FEh,00Ch,01Eh,000h ; Hex #34 + Db 0FEh,0C0h,0C0h,0FCh,006h,0C6h,07Ch,000h ; Hex #35 + Db 038h,060h,0C0h,0FCh,0C6h,0C6h,07Ch,000h ; Hex #36 + Db 0FEh,0C6h,00Ch,018h,030h,030h,030h,000h ; Hex #37 + Db 07Ch,0C6h,0C6h,07Ch,0C6h,0C6h,07Ch,000h ; Hex #38 + Db 07Ch,0C6h,0C6h,07Eh,006h,00Ch,078h,000h ; Hex #39 + Db 000h,018h,018h,000h,000h,018h,018h,000h ; Hex #3A + Db 000h,018h,018h,000h,000h,018h,018h,030h ; Hex #3B + Db 006h,00Ch,018h,030h,018h,00Ch,006h,000h ; Hex #3C + Db 000h,000h,07Eh,000h,000h,07Eh,000h,000h ; Hex #3D + Db 060h,030h,018h,00Ch,018h,030h,060h,000h ; Hex #3E + Db 07Ch,0C6h,00Ch,018h,018h,000h,018h,000h ; Hex #3F + Db 07Ch,0C6h,0DEh,0DEh,0DEh,0C0h,078h,000h ; Hex #40 + Db 038h,06Ch,0C6h,0FEh,0C6h,0C6h,0C6h,000h ; Hex #41 + Db 0FCh,066h,066h,07Ch,066h,066h,0FCh,000h ; Hex #42 + Db 03Ch,066h,0C0h,0C0h,0C0h,066h,03Ch,000h ; Hex #43 + Db 0F8h,06Ch,066h,066h,066h,06Ch,0F8h,000h ; Hex #44 + Db 0FEh,062h,068h,078h,068h,062h,0FEh,000h ; Hex #45 + Db 0FEh,062h,068h,078h,068h,060h,0F0h,000h ; Hex #46 + Db 03Ch,066h,0C0h,0C0h,0CEh,066h,03Ah,000h ; Hex #47 + Db 0C6h,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,000h ; Hex #48 + Db 03Ch,018h,018h,018h,018h,018h,03Ch,000h ; Hex #49 + Db 01Eh,00Ch,00Ch,00Ch,0CCh,0CCh,078h,000h ; Hex #4A + Db 0E6h,066h,06Ch,078h,06Ch,066h,0E6h,000h ; Hex #4B + Db 0F0h,060h,060h,060h,062h,066h,0FEh,000h ; Hex #4C + Db 0C6h,0EEh,0FEh,0FEh,0D6h,0C6h,0C6h,000h ; Hex #4D + Db 0C6h,0E6h,0F6h,0DEh,0CEh,0C6h,0C6h,000h ; Hex #4E + Db 07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h ; Hex #4F + Db 0FCh,066h,066h,07Ch,060h,060h,0F0h,000h ; Hex #50 + Db 07Ch,0C6h,0C6h,0C6h,0C6h,0CEh,07Ch,00Eh ; Hex #51 + Db 0FCh,066h,066h,07Ch,06Ch,066h,0E6h,000h ; Hex #52 + Db 03Ch,066h,030h,018h,00Ch,066h,03Ch,000h ; Hex #53 + Db 07Eh,07Eh,05Ah,018h,018h,018h,03Ch,000h ; Hex #54 + Db 0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h ; Hex #55 + Db 0C6h,0C6h,0C6h,0C6h,0C6h,06Ch,038h,000h ; Hex #56 + Db 0C6h,0C6h,0C6h,0D6h,0D6h,0FEh,06Ch,000h ; Hex #57 + Db 0C6h,0C6h,06Ch,038h,06Ch,0C6h,0C6h,000h ; Hex #58 + Db 066h,066h,066h,03Ch,018h,018h,03Ch,000h ; Hex #59 + Db 0FEh,0C6h,08Ch,018h,032h,066h,0FEh,000h ; Hex #5A + Db 03Ch,030h,030h,030h,030h,030h,03Ch,000h ; Hex #5B + Db 0C0h,060h,030h,018h,00Ch,006h,002h,000h ; Hex #5C + Db 03Ch,00Ch,00Ch,00Ch,00Ch,00Ch,03Ch,000h ; Hex #5D + Db 010h,038h,06Ch,0C6h,000h,000h,000h,000h ; Hex #5E + Db 000h,000h,000h,000h,000h,000h,000h,0FFh ; Hex #5F + Db 030h,018h,00Ch,000h,000h,000h,000h,000h ; Hex #60 + Db 000h,000h,078h,00Ch,07Ch,0CCh,076h,000h ; Hex #61 + Db 0E0h,060h,07Ch,066h,066h,066h,0DCh,000h ; Hex #62 + Db 000h,000h,07Ch,0C6h,0C0h,0C6h,07Ch,000h ; Hex #63 + Db 01Ch,00Ch,07Ch,0CCh,0CCh,0CCh,076h,000h ; Hex #64 + Db 000h,000h,07Ch,0C6h,0FEh,0C0h,07Ch,000h ; Hex #65 + Db 03Ch,066h,060h,0F8h,060h,060h,0F0h,000h ; Hex #66 + Db 000h,000h,076h,0CCh,0CCh,07Ch,00Ch,0F8h ; Hex #67 + Db 0E0h,060h,06Ch,076h,066h,066h,0E6h,000h ; Hex #68 + Db 018h,000h,038h,018h,018h,018h,03Ch,000h ; Hex #69 + Db 006h,000h,006h,006h,006h,066h,066h,03Ch ; Hex #6A + Db 0E0h,060h,066h,06Ch,078h,06Ch,0E6h,000h ; Hex #6B + Db 038h,018h,018h,018h,018h,018h,03Ch,000h ; Hex #6C + Db 000h,000h,0ECh,0FEh,0D6h,0D6h,0D6h,000h ; Hex #6D + Db 000h,000h,0DCh,066h,066h,066h,066h,000h ; Hex #6E + Db 000h,000h,07Ch,0C6h,0C6h,0C6h,07Ch,000h ; Hex #6F + Db 000h,000h,0DCh,066h,066h,07Ch,060h,0F0h ; Hex #70 + Db 000h,000h,076h,0CCh,0CCh,07Ch,00Ch,01Eh ; Hex #71 + Db 000h,000h,0DCh,076h,060h,060h,0F0h,000h ; Hex #72 + Db 000h,000h,07Eh,0C0h,07Ch,006h,0FCh,000h ; Hex #73 + Db 030h,030h,0FCh,030h,030h,036h,01Ch,000h ; Hex #74 + Db 000h,000h,0CCh,0CCh,0CCh,0CCh,076h,000h ; Hex #75 + Db 000h,000h,0C6h,0C6h,0C6h,06Ch,038h,000h ; Hex #76 + Db 000h,000h,0C6h,0D6h,0D6h,0FEh,06Ch,000h ; Hex #77 + Db 000h,000h,0C6h,06Ch,038h,06Ch,0C6h,000h ; Hex #78 + Db 000h,000h,0C6h,0C6h,0C6h,07Eh,006h,0FCh ; Hex #79 + Db 000h,000h,07Eh,04Ch,018h,032h,07Eh,000h ; Hex #7A + Db 00Eh,018h,018h,070h,018h,018h,00Eh,000h ; Hex #7B + Db 018h,018h,018h,018h,018h,018h,018h,000h ; Hex #7C + Db 070h,018h,018h,00Eh,018h,018h,070h,000h ; Hex #7D + Db 076h,0DCh,000h,000h,000h,000h,000h,000h ; Hex #7E + Db 000h,010h,038h,06Ch,0C6h,0C6h,0FEh,000h ; Hex #7F + Db 07Ch,0C6h,0C0h,0C0h,0C6h,07Ch,00Ch,078h ; Hex #80 + Db 0CCh,000h,0CCh,0CCh,0CCh,0CCh,076h,000h ; Hex #81 + Db 00Ch,018h,07Ch,0C6h,0FEh,0C0h,07Ch,000h ; Hex #82 + Db 07Ch,082h,078h,00Ch,07Ch,0CCh,076h,000h ; Hex #83 + Db 07Ch,082h,038h,06Ch,0C6h,0FEh,0C6h,000h ; Hex #84 + Db 030h,018h,078h,00Ch,07Ch,0CCh,076h,000h ; Hex #85 + Db 07Fh,0DBh,0DBh,07Bh,01Bh,01Bh,01Bh,000h ; Hex #86 + Db 000h,000h,07Eh,0C0h,0C0h,07Eh,00Ch,038h ; Hex #87 + Db 07Ch,082h,07Ch,0C6h,0FEh,0C0h,07Ch,000h ; Hex #88 + Db 0C6h,000h,07Ch,0C6h,0FEh,0C0h,07Ch,000h ; Hex #89 + Db 030h,018h,07Ch,0C6h,0FEh,0C0h,07Ch,000h ; Hex #8A + Db 066h,000h,038h,018h,018h,018h,03Ch,000h ; Hex #8B + Db 07Ch,082h,038h,018h,018h,018h,03Ch,000h ; Hex #8C + Db 000h,000h,000h,000h,000h,0FFh,000h,0FFh ; Hex #8D + Db 018h,00Ch,038h,06Ch,0C6h,0FEh,0C6h,000h ; Hex #8E + Db 03Eh,061h,03Ch,066h,066h,03Ch,086h,07Ch ; Hex #8F + Db 018h,030h,0FEh,0C0h,0F8h,0C0h,0FEh,000h ; Hex #90 + Db 030h,018h,0FEh,0C0h,0FCh,0C0h,0FEh,000h ; Hex #91 + Db 038h,044h,0FEh,0C0h,0FCh,0C0h,0FEh,000h ; Hex #92 + Db 07Ch,082h,07Ch,0C6h,0C6h,0C6h,07Ch,000h ; Hex #93 + Db 0C6h,000h,0FEh,0C0h,0FCh,0C0h,0FEh,000h ; Hex #94 + Db 066h,000h,03Ch,018h,018h,018h,03Ch,000h ; Hex #95 + Db 078h,084h,000h,0CCh,0CCh,0CCh,076h,000h ; Hex #96 + Db 060h,030h,0CCh,0CCh,0CCh,0CCh,076h,000h ; Hex #97 + Db 000h,0C6h,07Ch,0C6h,0C6h,07Ch,0C6h,000h ; Hex #98 + Db 07Ch,082h,038h,06Ch,0C6h,06Ch,038h,000h ; Hex #99 + Db 0C6h,000h,0C6h,0C6h,0C6h,0C6h,07Ch,000h ; Hex #9A + Db 018h,018h,07Eh,0C0h,0C0h,07Eh,018h,018h ; Hex #9B + Db 038h,06Ch,064h,0F0h,060h,066h,0FCh,000h ; Hex #9C + Db 060h,030h,0C6h,0C6h,0C6h,0C6h,07Ch,000h ; Hex #9D + Db 07Ch,082h,000h,0C6h,0C6h,0C6h,07Ch,000h ; Hex #9E + Db 00Eh,01Bh,018h,03Ch,018h,0D8h,070h,000h ; Hex #9F + Db 018h,018h,018h,000h,000h,018h,018h,018h ; Hex #A0 + Db 00Ch,018h,030h,000h,000h,000h,000h,000h ; Hex #A1 + Db 00Ch,018h,07Ch,0C6h,0C6h,0C6h,07Ch,000h ; Hex #A2 + Db 018h,030h,0CCh,0CCh,0CCh,0CCh,076h,000h ; Hex #A3 + Db 000h,0C6h,000h,000h,000h,000h,000h,000h ; Hex #A4 + Db 000h,000h,000h,000h,000h,018h,00Ch,078h ; Hex #A5 + Db 078h,00Ch,038h,00Ch,078h,000h,000h,000h ; Hex #A6 + Db 0FFh,000h,000h,000h,000h,000h,000h,000h ; Hex #A7 + Db 07Eh,081h,03Ch,018h,018h,018h,03Ch,000h ; Hex #A8 + Db 000h,000h,000h,0FEh,0C0h,0C0h,000h,000h ; Hex #A9 + Db 000h,000h,000h,0FEh,006h,006h,000h,000h ; Hex #AA + Db 063h,0E6h,06Ch,07Eh,033h,066h,0CCh,00Fh ; Hex #AB + Db 063h,0E6h,06Ch,07Ah,036h,06Ah,0DFh,006h ; Hex #AC + Db 0E1h,032h,064h,03Ah,0F6h,02Ah,05Fh,082h ; Hex #AD + Db 000h,033h,066h,0CCh,066h,033h,000h,000h ; Hex #AE + Db 000h,0CCh,066h,033h,066h,0CCh,000h,000h ; Hex #AF + Db 022h,088h,022h,088h,022h,088h,022h,088h ; Hex #B0 + Db 055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh ; Hex #B1 + Db 077h,0DDh,077h,0DDh,077h,0DDh,077h,0DDh ; Hex #B2 + Db 018h,018h,018h,018h,018h,018h,018h,018h ; Hex #B3 + Db 018h,018h,018h,018h,0F8h,018h,018h,018h ; Hex #B4 + Db 018h,018h,0F8h,018h,0F8h,018h,018h,018h ; Hex #B5 + Db 036h,036h,036h,036h,0F6h,036h,036h,036h ; Hex #B6 + Db 000h,000h,000h,000h,0FEh,036h,036h,036h ; Hex #B7 + Db 000h,000h,0F8h,018h,0F8h,018h,018h,018h ; Hex #B8 + Db 036h,036h,0F6h,006h,0F6h,036h,036h,036h ; Hex #B9 + Db 036h,036h,036h,036h,036h,036h,036h,036h ; Hex #BA + Db 000h,000h,0FEh,006h,0F6h,036h,036h,036h ; Hex #BB + Db 036h,036h,0F6h,006h,0FEh,000h,000h,000h ; Hex #BC + Db 036h,036h,036h,036h,0FEh,000h,000h,000h ; Hex #BD + Db 018h,018h,0F8h,018h,0F8h,000h,000h,000h ; Hex #BE + Db 000h,000h,000h,000h,0F8h,018h,018h,018h ; Hex #BF + Db 018h,018h,018h,018h,01Fh,000h,000h,000h ; Hex #C0 + Db 018h,018h,018h,018h,0FFh,000h,000h,000h ; Hex #C1 + Db 000h,000h,000h,000h,0FFh,018h,018h,018h ; Hex #C2 + Db 018h,018h,018h,018h,01Fh,018h,018h,018h ; Hex #C3 + Db 000h,000h,000h,000h,0FFh,000h,000h,000h ; Hex #C4 + Db 018h,018h,018h,018h,0FFh,018h,018h,018h ; Hex #C5 + Db 018h,018h,01Fh,018h,01Fh,018h,018h,018h ; Hex #C6 + Db 036h,036h,036h,036h,037h,036h,036h,036h ; Hex #C7 + Db 036h,036h,037h,030h,03Fh,000h,000h,000h ; Hex #C8 + Db 000h,000h,03Fh,030h,037h,036h,036h,036h ; Hex #C9 + Db 036h,036h,0F7h,000h,0FFh,000h,000h,000h ; Hex #CA + Db 000h,000h,0FFh,000h,0F7h,036h,036h,036h ; Hex #CB + Db 036h,036h,037h,030h,037h,036h,036h,036h ; Hex #CC + Db 000h,000h,0FFh,000h,0FFh,000h,000h,000h ; Hex #CD + Db 036h,036h,0F7h,000h,0F7h,036h,036h,036h ; Hex #CE + Db 018h,018h,0FFh,000h,0FFh,000h,000h,000h ; Hex #CF + Db 036h,036h,036h,036h,0FFh,000h,000h,000h ; Hex #D0 + Db 000h,000h,0FFh,000h,0FFh,018h,018h,018h ; Hex #D1 + Db 000h,000h,000h,000h,0FFh,036h,036h,036h ; Hex #D2 + Db 036h,036h,036h,036h,03Fh,000h,000h,000h ; Hex #D3 + Db 018h,018h,01Fh,018h,01Fh,000h,000h,000h ; Hex #D4 + Db 000h,000h,01Fh,018h,01Fh,018h,018h,018h ; Hex #D5 + Db 000h,000h,000h,000h,03Fh,036h,036h,036h ; Hex #D6 + Db 036h,036h,036h,036h,0FFh,036h,036h,036h ; Hex #D7 + Db 018h,018h,0FFh,018h,0FFh,018h,018h,018h ; Hex #D8 + Db 018h,018h,018h,018h,0F8h,000h,000h,000h ; Hex #D9 + Db 000h,000h,000h,000h,01Fh,018h,018h,018h ; Hex #DA + Db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh ; Hex #DB + Db 000h,000h,000h,000h,0FFh,0FFh,0FFh,0FFh ; Hex #DC + Db 0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h ; Hex #DD + Db 00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh ; Hex #DE + Db 0FFh,0FFh,0FFh,0FFh,000h,000h,000h,000h ; Hex #DF + Db 000h,000h,076h,0DCh,0C8h,0DCh,076h,000h ; Hex #E0 + Db 078h,0CCh,0CCh,0D8h,0CCh,0C6h,0CCh,000h ; Hex #E1 + Db 0FEh,0C6h,0C0h,0C0h,0C0h,0C0h,0C0h,000h ; Hex #E2 + Db 000h,000h,0FEh,06Ch,06Ch,06Ch,06Ch,000h ; Hex #E3 + Db 0FEh,0C6h,060h,030h,060h,0C6h,0FEh,000h ; Hex #E4 + Db 000h,000h,07Eh,0D8h,0D8h,0D8h,070h,000h ; Hex #E5 + Db 000h,000h,066h,066h,066h,066h,07Ch,0C0h ; Hex #E6 + Db 000h,076h,0DCh,018h,018h,018h,018h,000h ; Hex #E7 + Db 07Eh,018h,03Ch,066h,066h,03Ch,018h,07Eh ; Hex #E8 + Db 038h,06Ch,0C6h,0FEh,0C6h,06Ch,038h,000h ; Hex #E9 + Db 038h,06Ch,0C6h,0C6h,06Ch,06Ch,0EEh,000h ; Hex #EA + Db 00Eh,018h,00Ch,03Eh,066h,066h,03Ch,000h ; Hex #EB + Db 000h,000h,07Eh,0DBh,0DBh,07Eh,000h,000h ; Hex #EC + Db 006h,00Ch,07Eh,0DBh,0DBh,07Eh,060h,0C0h ; Hex #ED + Db 01Eh,030h,060h,07Eh,060h,030h,01Eh,000h ; Hex #EE + Db 000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,000h ; Hex #EF + Db 000h,0FEh,000h,0FEh,000h,0FEh,000h,000h ; Hex #F0 + Db 018h,018h,07Eh,018h,018h,000h,07Eh,000h ; Hex #F1 + Db 030h,018h,00Ch,018h,030h,000h,07Eh,000h ; Hex #F2 + Db 00Ch,018h,030h,018h,00Ch,000h,07Eh,000h ; Hex #F3 + Db 00Eh,01Bh,01Bh,018h,018h,018h,018h,018h ; Hex #F4 + Db 018h,018h,018h,018h,018h,0D8h,0D8h,070h ; Hex #F5 + Db 000h,018h,000h,07Eh,000h,018h,000h,000h ; Hex #F6 + Db 000h,076h,0DCh,000h,076h,0DCh,000h,000h ; Hex #F7 + Db 038h,06Ch,06Ch,038h,000h,000h,000h,000h ; Hex #F8 + Db 000h,000h,000h,018h,018h,000h,000h,000h ; Hex #F9 + Db 000h,000h,000h,018h,000h,000h,000h,000h ; Hex #FA + Db 00Fh,00Ch,00Ch,00Ch,0ECh,06Ch,03Ch,01Ch ; Hex #FB + Db 06Ch,036h,036h,036h,036h,000h,000h,000h ; Hex #FC + Db 078h,00Ch,018h,030h,07Ch,000h,000h,000h ; Hex #FD + Db 000h,000h,03Ch,03Ch,03Ch,03Ch,000h,000h ; Hex #FE + Db 000h,000h,000h,000h,000h,000h,000h,000h ; Hex #FF + 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 @@ +CODE SEGMENT BYTE PUBLIC 'CODE' + ASSUME CS:CODE,DS:CODE + +IF1 + %OUT EGA.CPI creation file + %OUT . + %OUT CP SRC files: + %OUT . + %OUT . CODE PAGE: 863 +ENDIF + +EGA863: DW LEN_863 ; SIZE OF ENTRY HEADER + DW POST_EGA863,0 ; POINTER TO NEXT HEADER + DW 1 ; DEVICE TYPE + DB "EGA " ; DEVICE SUBTYPE ID + DW 863 ; CODE PAGE ID + DW 3 DUP(0) ; RESERVED + DW OFFSET DATA863,0 ; POINTER TO FONTS +LEN_863 EQU ($-EGA863) ; + ; +DATA863:DW 1 ; CART/NON-CART + DW 3 ; # OF FONTS + DW LEN_D863 ; LENGTH OF DATA +D863: ; + DB 16,8 ; CHARACTER BOX SIZE + DB 0,0 ; ASPECT RATIO (UNUSED) + DW 256 ; NUMBER OF CHARACTERS + ; + INCLUDE 863-8X16.ASM ; + ; + DB 14,8 ; CHARACTER BOX SIZE + DB 0,0 ; ASPECT RATIO (UNUSED) + DW 256 ; NUMBER OF CHARACTERS + ; + INCLUDE 863-8X14.ASM ; + ; + DB 8,8 ; CHARACTER BOX SIZE + DB 0,0 ; ASPECT RATIO (UNUSED) + DW 256 ; NUMBER OF CHARACTERS + ; + INCLUDE 863-8X8.ASM ; + ; +LEN_D863 EQU ($-D863) ; + ; +POST_EGA863 EQU $ ; + ; +CODE ENDS ; + END ; + \ 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 @@ +;*************************************************** +; CHARACTER FONT FILE +; Source Assembler File +; +; CODE PAGE: 865 +; FONT RESOLUTION: 8 x 14 +; +; DATE CREATED:05-28-1987 +; +; +; Output file from: MULTIFON, Version 1A +; +;*************************************************** + Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #0 + Db 000h,000h,000h,07Eh,081h,0A5h,081h,081h,0BDh,099h,081h,07Eh,000h,000h ; Hex #1 + Db 000h,000h,000h,07Eh,0FFh,0DBh,0FFh,0FFh,0C3h,0E7h,0FFh,07Eh,000h,000h ; Hex #2 + Db 000h,000h,000h,000h,06Ch,0FEh,0FEh,0FEh,0FEh,07Ch,038h,010h,000h,000h ; Hex #3 + Db 000h,000h,000h,000h,010h,038h,07Ch,0FEh,07Ch,038h,010h,000h,000h,000h ; Hex #4 + Db 000h,000h,000h,018h,03Ch,03Ch,0E7h,0E7h,0E7h,018h,018h,03Ch,000h,000h ; Hex #5 + Db 000h,000h,000h,018h,03Ch,07Eh,0FFh,0FFh,07Eh,018h,018h,03Ch,000h,000h ; Hex #6 + Db 000h,000h,000h,000h,000h,000h,018h,03Ch,03Ch,018h,000h,000h,000h,000h ; Hex #7 + Db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0E7h,0C3h,0C3h,0E7h,0FFh,0FFh,0FFh,0FFh ; Hex #8 + Db 000h,000h,000h,000h,000h,03Ch,066h,042h,042h,066h,03Ch,000h,000h,000h ; Hex #9 + Db 0FFh,0FFh,0FFh,0FFh,0FFh,0C3h,099h,0BDh,0BDh,099h,0C3h,0FFh,0FFh,0FFh ; Hex #A + Db 000h,000h,000h,01Eh,00Eh,01Ah,032h,078h,0CCh,0CCh,0CCh,078h,000h,000h ; Hex #B + Db 000h,000h,000h,03Ch,066h,066h,066h,03Ch,018h,07Eh,018h,018h,000h,000h ; Hex #C + Db 000h,000h,000h,03Fh,033h,03Fh,030h,030h,030h,070h,0F0h,0E0h,000h,000h ; Hex #D + Db 000h,000h,000h,07Fh,063h,07Fh,063h,063h,063h,067h,0E7h,0E6h,0C0h,000h ; Hex #E + Db 000h,000h,000h,018h,018h,0DBh,03Ch,0E7h,03Ch,0DBh,018h,018h,000h,000h ; Hex #F + Db 000h,000h,000h,080h,0C0h,0E0h,0F8h,0FEh,0F8h,0E0h,0C0h,080h,000h,000h ; Hex #10 + Db 000h,000h,000h,002h,006h,00Eh,03Eh,0FEh,03Eh,00Eh,006h,002h,000h,000h ; Hex #11 + Db 000h,000h,000h,018h,03Ch,07Eh,018h,018h,018h,07Eh,03Ch,018h,000h,000h ; Hex #12 + Db 000h,000h,000h,066h,066h,066h,066h,066h,066h,000h,066h,066h,000h,000h ; Hex #13 + Db 000h,000h,000h,07Fh,0DBh,0DBh,0DBh,07Bh,01Bh,01Bh,01Bh,01Bh,000h,000h ; Hex #14 + Db 000h,000h,07Ch,0C6h,060h,038h,06Ch,0C6h,0C6h,06Ch,038h,00Ch,0C6h,07Ch ; Hex #15 + Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,0FEh,0FEh,0FEh,000h,000h ; Hex #16 + Db 000h,000h,000h,018h,03Ch,07Eh,018h,018h,018h,07Eh,03Ch,018h,07Eh,000h ; Hex #17 + Db 000h,000h,000h,018h,03Ch,07Eh,018h,018h,018h,018h,018h,018h,000h,000h ; Hex #18 + Db 000h,000h,000h,018h,018h,018h,018h,018h,018h,07Eh,03Ch,018h,000h,000h ; Hex #19 + Db 000h,000h,000h,000h,000h,018h,00Ch,0FEh,00Ch,018h,000h,000h,000h,000h ; Hex #1A + Db 000h,000h,000h,000h,000h,030h,060h,0FEh,060h,030h,000h,000h,000h,000h ; Hex #1B + Db 000h,000h,000h,000h,000h,000h,0C0h,0C0h,0C0h,0FEh,000h,000h,000h,000h ; Hex #1C + Db 000h,000h,000h,000h,000h,028h,06Ch,0FEh,06Ch,028h,000h,000h,000h,000h ; Hex #1D + Db 000h,000h,000h,000h,010h,038h,038h,07Ch,07Ch,0FEh,0FEh,000h,000h,000h ; Hex #1E + Db 000h,000h,000h,000h,0FEh,0FEh,07Ch,07Ch,038h,038h,010h,000h,000h,000h ; Hex #1F + Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #20 + Db 000h,000h,000h,018h,03Ch,03Ch,03Ch,018h,018h,000h,018h,018h,000h,000h ; Hex #21 + Db 000h,066h,066h,066h,024h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #22 + Db 000h,000h,000h,06Ch,06Ch,0FEh,06Ch,06Ch,06Ch,0FEh,06Ch,06Ch,000h,000h ; Hex #23 + Db 000h,018h,018h,07Ch,0C6h,0C2h,0C0h,07Ch,006h,086h,0C6h,07Ch,018h,018h ; Hex #24 + Db 000h,000h,000h,000h,000h,0C2h,0C6h,00Ch,018h,030h,066h,0C6h,000h,000h ; Hex #25 + Db 000h,000h,000h,038h,06Ch,06Ch,038h,076h,0DCh,0CCh,0CCh,076h,000h,000h ; Hex #26 + Db 000h,018h,018h,018h,030h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #27 + Db 000h,000h,000h,00Ch,018h,030h,030h,030h,030h,030h,018h,00Ch,000h,000h ; Hex #28 + Db 000h,000h,000h,030h,018h,00Ch,00Ch,00Ch,00Ch,00Ch,018h,030h,000h,000h ; Hex #29 + Db 000h,000h,000h,000h,000h,066h,03Ch,0FFh,03Ch,066h,000h,000h,000h,000h ; Hex #2A + Db 000h,000h,000h,000h,000h,018h,018h,07Eh,018h,018h,000h,000h,000h,000h ; Hex #2B + Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,018h,018h,018h,030h,000h ; Hex #2C + Db 000h,000h,000h,000h,000h,000h,000h,0FEh,000h,000h,000h,000h,000h,000h ; Hex #2D + Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,018h,018h,000h,000h ; Hex #2E + Db 000h,000h,000h,002h,006h,00Ch,018h,030h,060h,0C0h,080h,000h,000h,000h ; Hex #2F + Db 000h,000h,000h,038h,06Ch,0C6h,0C6h,0D6h,0C6h,0C6h,06Ch,038h,000h,000h ; Hex #30 + Db 000h,000h,000h,018h,038h,078h,018h,018h,018h,018h,018h,07Eh,000h,000h ; Hex #31 + Db 000h,000h,000h,07Ch,0C6h,006h,00Ch,018h,030h,060h,0C6h,0FEh,000h,000h ; Hex #32 + Db 000h,000h,000h,07Ch,0C6h,006h,006h,03Ch,006h,006h,0C6h,07Ch,000h,000h ; Hex #33 + Db 000h,000h,000h,00Ch,01Ch,03Ch,06Ch,0CCh,0FEh,00Ch,00Ch,01Eh,000h,000h ; Hex #34 + Db 000h,000h,000h,0FEh,0C0h,0C0h,0C0h,0FCh,006h,006h,0C6h,07Ch,000h,000h ; Hex #35 + Db 000h,000h,000h,038h,060h,0C0h,0C0h,0FCh,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #36 + Db 000h,000h,000h,0FEh,0C6h,006h,00Ch,018h,030h,030h,030h,030h,000h,000h ; Hex #37 + Db 000h,000h,000h,07Ch,0C6h,0C6h,0C6h,07Ch,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #38 + Db 000h,000h,000h,07Ch,0C6h,0C6h,0C6h,07Eh,006h,006h,00Ch,078h,000h,000h ; Hex #39 + Db 000h,000h,000h,000h,018h,018h,000h,000h,000h,018h,018h,000h,000h,000h ; Hex #3A + Db 000h,000h,000h,000h,018h,018h,000h,000h,000h,018h,018h,030h,000h,000h ; Hex #3B + Db 000h,000h,000h,00Ch,018h,030h,060h,0C0h,060h,030h,018h,00Ch,000h,000h ; Hex #3C + Db 000h,000h,000h,000h,000h,000h,07Eh,000h,000h,07Eh,000h,000h,000h,000h ; Hex #3D + Db 000h,000h,000h,060h,030h,018h,00Ch,006h,00Ch,018h,030h,060h,000h,000h ; Hex #3E + Db 000h,000h,000h,07Ch,0C6h,0C6h,00Ch,018h,018h,000h,018h,018h,000h,000h ; Hex #3F + Db 000h,000h,000h,07Ch,0C6h,0C6h,0DEh,0DEh,0DEh,0DCh,0C0h,07Ch,000h,000h ; Hex #40 + Db 000h,000h,000h,010h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,000h,000h ; Hex #41 + Db 000h,000h,000h,0FCh,066h,066h,066h,07Ch,066h,066h,066h,0FCh,000h,000h ; Hex #42 + Db 000h,000h,000h,03Ch,066h,0C2h,0C0h,0C0h,0C0h,0C2h,066h,03Ch,000h,000h ; Hex #43 + Db 000h,000h,000h,0F8h,06Ch,066h,066h,066h,066h,066h,06Ch,0F8h,000h,000h ; Hex #44 + Db 000h,000h,000h,0FEh,066h,062h,068h,078h,068h,062h,066h,0FEh,000h,000h ; Hex #45 + Db 000h,000h,000h,0FEh,066h,062h,068h,078h,068h,060h,060h,0F0h,000h,000h ; Hex #46 + Db 000h,000h,000h,03Ch,066h,0C2h,0C0h,0C0h,0DEh,0C6h,066h,03Ah,000h,000h ; Hex #47 + Db 000h,000h,000h,0C6h,0C6h,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,0C6h,000h,000h ; Hex #48 + Db 000h,000h,000h,03Ch,018h,018h,018h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #49 + Db 000h,000h,000h,01Eh,00Ch,00Ch,00Ch,00Ch,00Ch,0CCh,0CCh,078h,000h,000h ; Hex #4A + Db 000h,000h,000h,0E6h,066h,06Ch,06Ch,078h,06Ch,06Ch,066h,0E6h,000h,000h ; Hex #4B + Db 000h,000h,000h,0F0h,060h,060h,060h,060h,060h,062h,066h,0FEh,000h,000h ; Hex #4C + Db 000h,000h,000h,0C6h,0EEh,0FEh,0D6h,0C6h,0C6h,0C6h,0C6h,0C6h,000h,000h ; Hex #4D + Db 000h,000h,000h,0C6h,0E6h,0F6h,0FEh,0DEh,0CEh,0C6h,0C6h,0C6h,000h,000h ; Hex #4E + Db 000h,000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #4F + Db 000h,000h,000h,0FCh,066h,066h,066h,07Ch,060h,060h,060h,0F0h,000h,000h ; Hex #50 + Db 000h,000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0D6h,0DEh,07Ch,00Eh,000h ; Hex #51 + Db 000h,000h,000h,0FCh,066h,066h,066h,07Ch,06Ch,066h,066h,0E6h,000h,000h ; Hex #52 + Db 000h,000h,000h,07Ch,0C6h,0C6h,060h,038h,00Ch,0C6h,0C6h,07Ch,000h,000h ; Hex #53 + Db 000h,000h,000h,07Eh,07Eh,05Ah,018h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #54 + Db 000h,000h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #55 + Db 000h,000h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,06Ch,038h,010h,000h,000h ; Hex #56 + Db 000h,000h,000h,0C6h,0C6h,0C6h,0C6h,0D6h,0D6h,0FEh,06Ch,06Ch,000h,000h ; Hex #57 + Db 000h,000h,000h,0C6h,0C6h,0C6h,07Ch,038h,07Ch,0C6h,0C6h,0C6h,000h,000h ; Hex #58 + Db 000h,000h,000h,066h,066h,066h,066h,03Ch,018h,018h,018h,03Ch,000h,000h ; Hex #59 + Db 000h,000h,000h,0FEh,0C6h,08Ch,018h,030h,060h,0C2h,0C6h,0FEh,000h,000h ; Hex #5A + Db 000h,000h,000h,03Ch,030h,030h,030h,030h,030h,030h,030h,03Ch,000h,000h ; Hex #5B + Db 000h,000h,000h,080h,0C0h,0E0h,070h,038h,01Ch,00Eh,006h,002h,000h,000h ; Hex #5C + Db 000h,000h,000h,03Ch,00Ch,00Ch,00Ch,00Ch,00Ch,00Ch,00Ch,03Ch,000h,000h ; Hex #5D + Db 010h,038h,06Ch,0C6h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #5E + Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,0FFh ; Hex #5F + Db 000h,030h,018h,00Ch,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #60 + Db 000h,000h,000h,000h,000h,000h,078h,00Ch,07Ch,0CCh,0CCh,076h,000h,000h ; Hex #61 + Db 000h,000h,000h,0E0h,060h,060h,078h,06Ch,066h,066h,066h,07Ch,000h,000h ; Hex #62 + Db 000h,000h,000h,000h,000h,000h,07Ch,0C6h,0C0h,0C0h,0C6h,07Ch,000h,000h ; Hex #63 + Db 000h,000h,000h,01Ch,00Ch,00Ch,03Ch,06Ch,0CCh,0CCh,0CCh,076h,000h,000h ; Hex #64 + Db 000h,000h,000h,000h,000h,000h,07Ch,0C6h,0FEh,0C0h,0C6h,07Ch,000h,000h ; Hex #65 + Db 000h,000h,000h,01Ch,036h,032h,030h,07Ch,030h,030h,030h,078h,000h,000h ; Hex #66 + Db 000h,000h,000h,000h,000h,000h,076h,0CCh,0CCh,0CCh,07Ch,00Ch,0CCh,078h ; Hex #67 + Db 000h,000h,000h,0E0h,060h,060h,06Ch,076h,066h,066h,066h,0E6h,000h,000h ; Hex #68 + Db 000h,000h,000h,018h,018h,000h,038h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #69 + Db 000h,000h,000h,006h,006h,000h,00Eh,006h,006h,006h,006h,066h,066h,03Ch ; Hex #6A + Db 000h,000h,000h,0E0h,060h,060h,066h,06Ch,078h,06Ch,066h,0E6h,000h,000h ; Hex #6B + Db 000h,000h,000h,038h,018h,018h,018h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #6C + Db 000h,000h,000h,000h,000h,000h,0ECh,0FEh,0D6h,0D6h,0D6h,0D6h,000h,000h ; Hex #6D + Db 000h,000h,000h,000h,000h,000h,0DCh,066h,066h,066h,066h,066h,000h,000h ; Hex #6E + Db 000h,000h,000h,000h,000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #6F + Db 000h,000h,000h,000h,000h,000h,0DCh,066h,066h,066h,07Ch,060h,060h,0F0h ; Hex #70 + Db 000h,000h,000h,000h,000h,000h,076h,0CCh,0CCh,0CCh,07Ch,00Ch,00Ch,01Eh ; Hex #71 + Db 000h,000h,000h,000h,000h,000h,0DCh,076h,066h,060h,060h,0F0h,000h,000h ; Hex #72 + Db 000h,000h,000h,000h,000h,000h,07Ch,0C6h,070h,01Ch,0C6h,07Ch,000h,000h ; Hex #73 + Db 000h,000h,000h,010h,030h,030h,0FCh,030h,030h,030h,036h,01Ch,000h,000h ; Hex #74 + Db 000h,000h,000h,000h,000h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h ; Hex #75 + Db 000h,000h,000h,000h,000h,000h,0C6h,0C6h,0C6h,06Ch,038h,010h,000h,000h ; Hex #76 + Db 000h,000h,000h,000h,000h,000h,0C6h,0C6h,0D6h,0D6h,0FEh,06Ch,000h,000h ; Hex #77 + Db 000h,000h,000h,000h,000h,000h,0C6h,06Ch,038h,038h,06Ch,0C6h,000h,000h ; Hex #78 + Db 000h,000h,000h,000h,000h,000h,0C6h,0C6h,0C6h,0C6h,07Eh,006h,00Ch,078h ; Hex #79 + Db 000h,000h,000h,000h,000h,000h,0FEh,0CCh,018h,030h,066h,0FEh,000h,000h ; Hex #7A + Db 000h,000h,000h,00Eh,018h,018h,018h,070h,018h,018h,018h,00Eh,000h,000h ; Hex #7B + Db 000h,000h,000h,018h,018h,018h,018h,018h,018h,018h,018h,018h,000h,000h ; Hex #7C + Db 000h,000h,000h,070h,018h,018h,018h,00Eh,018h,018h,018h,070h,000h,000h ; Hex #7D + Db 000h,076h,0DCh,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #7E + Db 000h,000h,000h,000h,000h,010h,038h,06Ch,0C6h,0C6h,0FEh,000h,000h,000h ; Hex #7F + Db 000h,000h,000h,03Ch,066h,0C2h,0C0h,0C0h,0C0h,0C2h,066h,03Ch,00Ch,078h ; Hex #80 + Db 000h,000h,000h,0CCh,000h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h ; Hex #81 + Db 000h,000h,00Ch,018h,030h,000h,07Ch,0C6h,0FEh,0C0h,0C6h,07Ch,000h,000h ; Hex #82 + Db 000h,000h,010h,038h,06Ch,000h,078h,00Ch,07Ch,0CCh,0CCh,076h,000h,000h ; Hex #83 + Db 000h,000h,000h,0C6h,000h,000h,078h,00Ch,07Ch,0CCh,0CCh,076h,000h,000h ; Hex #84 + Db 000h,000h,060h,030h,018h,000h,078h,00Ch,07Ch,0CCh,0CCh,076h,000h,000h ; Hex #85 + Db 000h,000h,038h,06Ch,038h,000h,078h,00Ch,07Ch,0CCh,0CCh,076h,000h,000h ; Hex #86 + Db 000h,000h,000h,000h,000h,000h,07Ch,0C6h,0C0h,0C0h,0C6h,07Ch,00Ch,078h ; Hex #87 + Db 000h,000h,010h,038h,06Ch,000h,07Ch,0C6h,0FEh,0C0h,0C6h,07Ch,000h,000h ; Hex #88 + Db 000h,000h,000h,0C6h,000h,000h,07Ch,0C6h,0FEh,0C0h,0C6h,07Ch,000h,000h ; Hex #89 + Db 000h,000h,060h,030h,018h,000h,07Ch,0C6h,0FEh,0C0h,0C6h,07Ch,000h,000h ; Hex #8A + Db 000h,000h,000h,066h,000h,000h,038h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #8B + Db 000h,000h,018h,03Ch,066h,000h,038h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #8C + Db 000h,000h,060h,030h,018h,000h,038h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #8D + Db 000h,0C6h,000h,010h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,000h,000h ; Hex #8E + Db 038h,06Ch,038h,010h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,000h,000h ; Hex #8F + Db 00Ch,018h,000h,0FEh,066h,062h,068h,078h,068h,062h,066h,0FEh,000h,000h ; Hex #90 + Db 000h,000h,000h,000h,000h,000h,0ECh,036h,076h,0DCh,0D8h,06Eh,000h,000h ; Hex #91 + Db 000h,000h,000h,03Eh,06Ch,0CCh,0CCh,0FEh,0CCh,0CCh,0CCh,0CEh,000h,000h ; Hex #92 + Db 000h,000h,010h,038h,06Ch,000h,07Ch,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #93 + Db 000h,000h,000h,0C6h,000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #94 + Db 000h,000h,060h,030h,018h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #95 + Db 000h,000h,030h,078h,0CCh,000h,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h ; Hex #96 + Db 000h,000h,060h,030h,018h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h ; Hex #97 + Db 000h,000h,000h,0C6h,000h,000h,0C6h,0C6h,0C6h,0C6h,07Eh,006h,00Ch,078h ; Hex #98 + Db 000h,0C6h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #99 + Db 000h,0C6h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #9A + Db 000h,000h,000h,000h,000h,000h,07Ch,0CEh,0DEh,0F6h,0E6h,07Ch,000h,000h ; Hex #9B + Db 000h,000h,038h,06Ch,064h,060h,0F0h,060h,060h,060h,0E6h,0FCh,000h,000h ; Hex #9C + Db 000h,000h,004h,07Ch,0CEh,0CEh,0D6h,0D6h,0D6h,0E6h,0E6h,07Ch,040h,000h ; Hex #9D + Db 000h,000h,0FCh,066h,066h,07Ch,062h,066h,06Fh,066h,066h,0F3h,000h,000h ; Hex #9E + Db 000h,000h,00Eh,01Bh,018h,018h,018h,07Eh,018h,018h,018h,0D8h,070h,000h ; Hex #9F + Db 000h,000h,00Ch,018h,030h,000h,078h,00Ch,07Ch,0CCh,0CCh,076h,000h,000h ; Hex #A0 + Db 000h,000h,00Ch,018h,030h,000h,038h,018h,018h,018h,018h,03Ch,000h,000h ; Hex #A1 + Db 000h,000h,00Ch,018h,030h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h ; Hex #A2 + Db 000h,000h,00Ch,018h,030h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h ; Hex #A3 + Db 000h,000h,000h,076h,0DCh,000h,0DCh,066h,066h,066h,066h,066h,000h,000h ; Hex #A4 + Db 076h,0DCh,000h,0C6h,0E6h,0F6h,0FEh,0DEh,0CEh,0C6h,0C6h,0C6h,000h,000h ; Hex #A5 + Db 000h,000h,03Ch,06Ch,06Ch,03Eh,000h,07Eh,000h,000h,000h,000h,000h,000h ; Hex #A6 + Db 000h,000h,038h,06Ch,06Ch,038h,000h,07Ch,000h,000h,000h,000h,000h,000h ; Hex #A7 + Db 000h,000h,000h,030h,030h,000h,030h,030h,060h,0C6h,0C6h,07Ch,000h,000h ; Hex #A8 + Db 000h,000h,000h,000h,000h,000h,000h,0FEh,0C0h,0C0h,0C0h,000h,000h,000h ; Hex #A9 + Db 000h,000h,000h,000h,000h,000h,000h,0FEh,006h,006h,006h,000h,000h,000h ; Hex #AA + Db 000h,000h,060h,0E0h,063h,066h,06Ch,018h,030h,06Eh,0C3h,006h,00Ch,01Fh ; Hex #AB + Db 000h,000h,060h,0E0h,063h,066h,06Ch,01Ah,036h,06Eh,0DAh,03Fh,006h,006h ; Hex #AC + Db 000h,000h,000h,018h,018h,000h,018h,018h,03Ch,03Ch,03Ch,018h,000h,000h ; Hex #AD + Db 000h,000h,000h,000h,000h,036h,06Ch,0D8h,06Ch,036h,000h,000h,000h,000h ; Hex #AE + Db 000h,000h,000h,000h,000h,0C6h,07Ch,0C6h,0C6h,0C6h,07Ch,0C6h,000h,000h ; Hex #AF + Db 011h,044h,011h,044h,011h,044h,011h,044h,011h,044h,011h,044h,011h,044h ; Hex #B0 + Db 055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh ; Hex #B1 + Db 0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h ; Hex #B2 + Db 018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #B3 + Db 018h,018h,018h,018h,018h,018h,018h,0F8h,018h,018h,018h,018h,018h,018h ; Hex #B4 + Db 018h,018h,018h,018h,018h,0F8h,018h,0F8h,018h,018h,018h,018h,018h,018h ; Hex #B5 + Db 036h,036h,036h,036h,036h,036h,036h,0F6h,036h,036h,036h,036h,036h,036h ; Hex #B6 + Db 000h,000h,000h,000h,000h,000h,000h,0FEh,036h,036h,036h,036h,036h,036h ; Hex #B7 + Db 000h,000h,000h,000h,000h,0F8h,018h,0F8h,018h,018h,018h,018h,018h,018h ; Hex #B8 + Db 036h,036h,036h,036h,036h,0F6h,006h,0F6h,036h,036h,036h,036h,036h,036h ; Hex #B9 + Db 036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #BA + Db 000h,000h,000h,000h,000h,0FEh,006h,0F6h,036h,036h,036h,036h,036h,036h ; Hex #BB + Db 036h,036h,036h,036h,036h,0F6h,006h,0FEh,000h,000h,000h,000h,000h,000h ; Hex #BC + Db 036h,036h,036h,036h,036h,036h,036h,0FEh,000h,000h,000h,000h,000h,000h ; Hex #BD + Db 018h,018h,018h,018h,018h,0F8h,018h,0F8h,000h,000h,000h,000h,000h,000h ; Hex #BE + Db 000h,000h,000h,000h,000h,000h,000h,0F8h,018h,018h,018h,018h,018h,018h ; Hex #BF + Db 018h,018h,018h,018h,018h,018h,018h,01Fh,000h,000h,000h,000h,000h,000h ; Hex #C0 + Db 018h,018h,018h,018h,018h,018h,018h,0FFh,000h,000h,000h,000h,000h,000h ; Hex #C1 + Db 000h,000h,000h,000h,000h,000h,000h,0FFh,018h,018h,018h,018h,018h,018h ; Hex #C2 + Db 018h,018h,018h,018h,018h,018h,018h,01Fh,018h,018h,018h,018h,018h,018h ; Hex #C3 + Db 000h,000h,000h,000h,000h,000h,000h,0FFh,000h,000h,000h,000h,000h,000h ; Hex #C4 + Db 018h,018h,018h,018h,018h,018h,018h,0FFh,018h,018h,018h,018h,018h,018h ; Hex #C5 + Db 018h,018h,018h,018h,018h,01Fh,018h,01Fh,018h,018h,018h,018h,018h,018h ; Hex #C6 + Db 036h,036h,036h,036h,036h,036h,036h,037h,036h,036h,036h,036h,036h,036h ; Hex #C7 + Db 036h,036h,036h,036h,036h,037h,030h,03Fh,000h,000h,000h,000h,000h,000h ; Hex #C8 + Db 000h,000h,000h,000h,000h,03Fh,030h,037h,036h,036h,036h,036h,036h,036h ; Hex #C9 + Db 036h,036h,036h,036h,036h,0F7h,000h,0FFh,000h,000h,000h,000h,000h,000h ; Hex #CA + Db 000h,000h,000h,000h,000h,0FFh,000h,0F7h,036h,036h,036h,036h,036h,036h ; Hex #CB + Db 036h,036h,036h,036h,036h,037h,030h,037h,036h,036h,036h,036h,036h,036h ; Hex #CC + Db 000h,000h,000h,000h,000h,0FFh,000h,0FFh,000h,000h,000h,000h,000h,000h ; Hex #CD + Db 036h,036h,036h,036h,036h,0F7h,000h,0F7h,036h,036h,036h,036h,036h,036h ; Hex #CE + Db 018h,018h,018h,018h,018h,0FFh,000h,0FFh,000h,000h,000h,000h,000h,000h ; Hex #CF + Db 036h,036h,036h,036h,036h,036h,036h,0FFh,000h,000h,000h,000h,000h,000h ; Hex #D0 + Db 000h,000h,000h,000h,000h,0FFh,000h,0FFh,018h,018h,018h,018h,018h,018h ; Hex #D1 + Db 000h,000h,000h,000h,000h,000h,000h,0FFh,036h,036h,036h,036h,036h,036h ; Hex #D2 + Db 036h,036h,036h,036h,036h,036h,036h,03Fh,000h,000h,000h,000h,000h,000h ; Hex #D3 + Db 018h,018h,018h,018h,018h,01Fh,018h,01Fh,000h,000h,000h,000h,000h,000h ; Hex #D4 + Db 000h,000h,000h,000h,000h,01Fh,018h,01Fh,018h,018h,018h,018h,018h,018h ; Hex #D5 + Db 000h,000h,000h,000h,000h,000h,000h,03Fh,036h,036h,036h,036h,036h,036h ; Hex #D6 + Db 036h,036h,036h,036h,036h,036h,036h,0FFh,036h,036h,036h,036h,036h,036h ; Hex #D7 + Db 018h,018h,018h,018h,018h,0FFh,018h,0FFh,018h,018h,018h,018h,018h,018h ; Hex #D8 + Db 018h,018h,018h,018h,018h,018h,018h,0F8h,000h,000h,000h,000h,000h,000h ; Hex #D9 + Db 000h,000h,000h,000h,000h,000h,000h,01Fh,018h,018h,018h,018h,018h,018h ; Hex #DA + Db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh ; Hex #DB + Db 000h,000h,000h,000h,000h,000h,000h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh ; Hex #DC + Db 0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h ; Hex #DD + Db 00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh ; Hex #DE + Db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,000h,000h,000h,000h,000h,000h,000h ; Hex #DF + Db 000h,000h,000h,000h,000h,000h,076h,0DCh,0D8h,0D8h,0DCh,076h,000h,000h ; Hex #E0 + Db 000h,000h,000h,078h,0CCh,0CCh,0CCh,0D8h,0CCh,0C6h,0C6h,0CCh,000h,000h ; Hex #E1 + Db 000h,000h,000h,0FEh,0C6h,0C6h,0C0h,0C0h,0C0h,0C0h,0C0h,0C0h,000h,000h ; Hex #E2 + Db 000h,000h,000h,000h,000h,000h,0FEh,06Ch,06Ch,06Ch,06Ch,06Ch,000h,000h ; Hex #E3 + Db 000h,000h,000h,0FEh,0C6h,060h,030h,018h,030h,060h,0C6h,0FEh,000h,000h ; Hex #E4 + Db 000h,000h,000h,000h,000h,000h,07Eh,0D8h,0D8h,0D8h,0D8h,070h,000h,000h ; Hex #E5 + Db 000h,000h,000h,000h,000h,000h,066h,066h,066h,066h,066h,07Ch,060h,0C0h ; Hex #E6 + Db 000h,000h,000h,000h,000h,076h,0DCh,018h,018h,018h,018h,018h,000h,000h ; Hex #E7 + Db 000h,000h,000h,07Eh,018h,03Ch,066h,066h,066h,03Ch,018h,07Eh,000h,000h ; Hex #E8 + Db 000h,000h,000h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,06Ch,038h,000h,000h ; Hex #E9 + Db 000h,000h,000h,038h,06Ch,0C6h,0C6h,0C6h,06Ch,06Ch,06Ch,0EEh,000h,000h ; Hex #EA + Db 000h,000h,000h,01Eh,030h,018h,00Ch,03Eh,066h,066h,066h,03Ch,000h,000h ; Hex #EB + Db 000h,000h,000h,000h,000h,000h,07Eh,0DBh,0DBh,07Eh,000h,000h,000h,000h ; Hex #EC + Db 000h,000h,000h,003h,006h,07Eh,0DBh,0DBh,0F3h,07Eh,060h,0C0h,000h,000h ; Hex #ED + Db 000h,000h,000h,01Eh,030h,060h,060h,07Eh,060h,060h,030h,01Eh,000h,000h ; Hex #EE + Db 000h,000h,000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,000h,000h ; Hex #EF + Db 000h,000h,000h,000h,0FEh,000h,000h,0FEh,000h,000h,0FEh,000h,000h,000h ; Hex #F0 + Db 000h,000h,000h,000h,018h,018h,07Eh,018h,018h,000h,000h,07Eh,000h,000h ; Hex #F1 + Db 000h,000h,000h,030h,018h,00Ch,006h,00Ch,018h,030h,000h,07Eh,000h,000h ; Hex #F2 + Db 000h,000h,000h,00Ch,018h,030h,060h,030h,018h,00Ch,000h,07Eh,000h,000h ; Hex #F3 + Db 000h,000h,00Eh,01Bh,01Bh,018h,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #F4 + Db 018h,018h,018h,018h,018h,018h,018h,018h,0D8h,0D8h,070h,000h,000h,000h ; Hex #F5 + Db 000h,000h,000h,000h,000h,018h,000h,07Eh,000h,018h,000h,000h,000h,000h ; Hex #F6 + Db 000h,000h,000h,000h,000h,076h,0DCh,000h,076h,0DCh,000h,000h,000h,000h ; Hex #F7 + Db 000h,038h,06Ch,06Ch,038h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #F8 + Db 000h,000h,000h,000h,000h,000h,000h,018h,018h,000h,000h,000h,000h,000h ; Hex #F9 + Db 000h,000h,000h,000h,000h,000h,000h,018h,000h,000h,000h,000h,000h,000h ; Hex #FA + Db 000h,00Fh,00Ch,00Ch,00Ch,00Ch,00Ch,00Ch,0ECh,06Ch,03Ch,01Ch,000h,000h ; Hex #FB + Db 000h,06Ch,036h,036h,036h,036h,036h,000h,000h,000h,000h,000h,000h,000h ; Hex #FC + Db 000h,03Ch,066h,00Ch,018h,032h,07Eh,000h,000h,000h,000h,000h,000h,000h ; Hex #FD + Db 000h,000h,000h,000h,000h,07Eh,07Eh,07Eh,07Eh,07Eh,07Eh,000h,000h,000h ; Hex #FE + 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/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 @@ +;*************************************************** +; CHARACTER FONT FILE +; Source Assembler File +; +; CODE PAGE: 865 +; FONT RESOLUTION: 8 x 16 +; +; DATE CREATED:05-28-1987 +; +; +; Output file from: MULTIFON, Version 1A +; +;*************************************************** + Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #0 + Db 000h,000h,07Eh,081h,0A5h,081h,081h,0BDh,099h,081h,081h,07Eh,000h,000h,000h,000h ; Hex #1 + Db 000h,000h,07Eh,0FFh,0DBh,0FFh,0FFh,0C3h,0E7h,0FFh,0FFh,07Eh,000h,000h,000h,000h ; Hex #2 + Db 000h,000h,000h,000h,06Ch,0FEh,0FEh,0FEh,0FEh,07Ch,038h,010h,000h,000h,000h,000h ; Hex #3 + Db 000h,000h,000h,000h,010h,038h,07Ch,0FEh,07Ch,038h,010h,000h,000h,000h,000h,000h ; Hex #4 + Db 000h,000h,000h,018h,03Ch,03Ch,0E7h,0E7h,0E7h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #5 + Db 000h,000h,000h,018h,03Ch,07Eh,0FFh,0FFh,07Eh,018h,018h,03Ch,000h,000h,000h,000h ; Hex #6 + Db 000h,000h,000h,000h,000h,000h,018h,03Ch,03Ch,018h,000h,000h,000h,000h,000h,000h ; Hex #7 + Db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0E7h,0C3h,0C3h,0E7h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh ; Hex #8 + Db 000h,000h,000h,000h,000h,03Ch,066h,042h,042h,066h,03Ch,000h,000h,000h,000h,000h ; Hex #9 + Db 0FFh,0FFh,0FFh,0FFh,0FFh,0C3h,099h,0BDh,0BDh,099h,0C3h,0FFh,0FFh,0FFh,0FFh,0FFh ; Hex #A + Db 000h,000h,01Eh,00Eh,01Ah,032h,078h,0CCh,0CCh,0CCh,0CCh,078h,000h,000h,000h,000h ; Hex #B + Db 000h,000h,03Ch,066h,066h,066h,066h,03Ch,018h,07Eh,018h,018h,000h,000h,000h,000h ; Hex #C + Db 000h,000h,03Fh,033h,03Fh,030h,030h,030h,030h,070h,0F0h,0E0h,000h,000h,000h,000h ; Hex #D + Db 000h,000h,07Fh,063h,07Fh,063h,063h,063h,063h,067h,0E7h,0E6h,0C0h,000h,000h,000h ; Hex #E + Db 000h,000h,000h,018h,018h,0DBh,03Ch,0E7h,03Ch,0DBh,018h,018h,000h,000h,000h,000h ; Hex #F + Db 000h,080h,0C0h,0E0h,0F0h,0F8h,0FEh,0F8h,0F0h,0E0h,0C0h,080h,000h,000h,000h,000h ; Hex #10 + Db 000h,002h,006h,00Eh,01Eh,03Eh,0FEh,03Eh,01Eh,00Eh,006h,002h,000h,000h,000h,000h ; Hex #11 + Db 000h,000h,018h,03Ch,07Eh,018h,018h,018h,07Eh,03Ch,018h,000h,000h,000h,000h,000h ; Hex #12 + Db 000h,000h,066h,066h,066h,066h,066h,066h,066h,000h,066h,066h,000h,000h,000h,000h ; Hex #13 + Db 000h,000h,07Fh,0DBh,0DBh,0DBh,07Bh,01Bh,01Bh,01Bh,01Bh,01Bh,000h,000h,000h,000h ; Hex #14 + Db 000h,07Ch,0C6h,060h,038h,06Ch,0C6h,0C6h,06Ch,038h,00Ch,0C6h,07Ch,000h,000h,000h ; Hex #15 + Db 000h,000h,000h,000h,000h,000h,000h,000h,0FEh,0FEh,0FEh,0FEh,000h,000h,000h,000h ; Hex #16 + Db 000h,000h,018h,03Ch,07Eh,018h,018h,018h,07Eh,03Ch,018h,07Eh,000h,000h,000h,000h ; Hex #17 + Db 000h,000h,018h,03Ch,07Eh,018h,018h,018h,018h,018h,018h,018h,000h,000h,000h,000h ; Hex #18 + Db 000h,000h,018h,018h,018h,018h,018h,018h,018h,07Eh,03Ch,018h,000h,000h,000h,000h ; Hex #19 + Db 000h,000h,000h,000h,000h,018h,00Ch,0FEh,00Ch,018h,000h,000h,000h,000h,000h,000h ; Hex #1A + Db 000h,000h,000h,000h,000h,030h,060h,0FEh,060h,030h,000h,000h,000h,000h,000h,000h ; Hex #1B + Db 000h,000h,000h,000h,000h,000h,0C0h,0C0h,0C0h,0FEh,000h,000h,000h,000h,000h,000h ; Hex #1C + Db 000h,000h,000h,000h,000h,028h,06Ch,0FEh,06Ch,028h,000h,000h,000h,000h,000h,000h ; Hex #1D + Db 000h,000h,000h,000h,010h,038h,038h,07Ch,07Ch,0FEh,0FEh,000h,000h,000h,000h,000h ; Hex #1E + Db 000h,000h,000h,000h,0FEh,0FEh,07Ch,07Ch,038h,038h,010h,000h,000h,000h,000h,000h ; Hex #1F + Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #20 + Db 000h,000h,018h,03Ch,03Ch,03Ch,018h,018h,018h,000h,018h,018h,000h,000h,000h,000h ; Hex #21 + Db 000h,066h,066h,066h,024h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #22 + Db 000h,000h,000h,06Ch,06Ch,0FEh,06Ch,06Ch,06Ch,0FEh,06Ch,06Ch,000h,000h,000h,000h ; Hex #23 + Db 018h,018h,07Ch,0C6h,0C2h,0C0h,07Ch,006h,006h,086h,0C6h,07Ch,018h,018h,000h,000h ; Hex #24 + Db 000h,000h,000h,000h,0C2h,0C6h,00Ch,018h,030h,060h,0C6h,086h,000h,000h,000h,000h ; Hex #25 + Db 000h,000h,038h,06Ch,06Ch,038h,076h,0DCh,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #26 + Db 000h,030h,030h,030h,060h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #27 + Db 000h,000h,00Ch,018h,030h,030h,030h,030h,030h,030h,018h,00Ch,000h,000h,000h,000h ; Hex #28 + Db 000h,000h,030h,018h,00Ch,00Ch,00Ch,00Ch,00Ch,00Ch,018h,030h,000h,000h,000h,000h ; Hex #29 + Db 000h,000h,000h,000h,000h,066h,03Ch,0FFh,03Ch,066h,000h,000h,000h,000h,000h,000h ; Hex #2A + Db 000h,000h,000h,000h,000h,018h,018h,07Eh,018h,018h,000h,000h,000h,000h,000h,000h ; Hex #2B + Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,018h,018h,018h,030h,000h,000h,000h ; Hex #2C + Db 000h,000h,000h,000h,000h,000h,000h,0FEh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #2D + Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,018h,018h,000h,000h,000h,000h ; Hex #2E + Db 000h,000h,000h,000h,002h,006h,00Ch,018h,030h,060h,0C0h,080h,000h,000h,000h,000h ; Hex #2F + Db 000h,000h,038h,06Ch,0C6h,0C6h,0D6h,0D6h,0C6h,0C6h,06Ch,038h,000h,000h,000h,000h ; Hex #30 + Db 000h,000h,018h,038h,078h,018h,018h,018h,018h,018h,018h,07Eh,000h,000h,000h,000h ; Hex #31 + Db 000h,000h,07Ch,0C6h,006h,00Ch,018h,030h,060h,0C0h,0C6h,0FEh,000h,000h,000h,000h ; Hex #32 + Db 000h,000h,07Ch,0C6h,006h,006h,03Ch,006h,006h,006h,0C6h,07Ch,000h,000h,000h,000h ; Hex #33 + Db 000h,000h,00Ch,01Ch,03Ch,06Ch,0CCh,0FEh,00Ch,00Ch,00Ch,01Eh,000h,000h,000h,000h ; Hex #34 + Db 000h,000h,0FEh,0C0h,0C0h,0C0h,0FCh,006h,006h,006h,0C6h,07Ch,000h,000h,000h,000h ; Hex #35 + Db 000h,000h,038h,060h,0C0h,0C0h,0FCh,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #36 + Db 000h,000h,0FEh,0C6h,006h,006h,00Ch,018h,030h,030h,030h,030h,000h,000h,000h,000h ; Hex #37 + Db 000h,000h,07Ch,0C6h,0C6h,0C6h,07Ch,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #38 + Db 000h,000h,07Ch,0C6h,0C6h,0C6h,07Eh,006h,006h,006h,00Ch,078h,000h,000h,000h,000h ; Hex #39 + Db 000h,000h,000h,000h,018h,018h,000h,000h,000h,018h,018h,000h,000h,000h,000h,000h ; Hex #3A + Db 000h,000h,000h,000h,018h,018h,000h,000h,000h,018h,018h,030h,000h,000h,000h,000h ; Hex #3B + Db 000h,000h,000h,006h,00Ch,018h,030h,060h,030h,018h,00Ch,006h,000h,000h,000h,000h ; Hex #3C + Db 000h,000h,000h,000h,000h,07Eh,000h,000h,07Eh,000h,000h,000h,000h,000h,000h,000h ; Hex #3D + Db 000h,000h,000h,060h,030h,018h,00Ch,006h,00Ch,018h,030h,060h,000h,000h,000h,000h ; Hex #3E + Db 000h,000h,07Ch,0C6h,0C6h,00Ch,018h,018h,018h,000h,018h,018h,000h,000h,000h,000h ; Hex #3F + Db 000h,000h,000h,07Ch,0C6h,0C6h,0DEh,0DEh,0DEh,0DCh,0C0h,07Ch,000h,000h,000h,000h ; Hex #40 + Db 000h,000h,010h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #41 + Db 000h,000h,0FCh,066h,066h,066h,07Ch,066h,066h,066h,066h,0FCh,000h,000h,000h,000h ; Hex #42 + Db 000h,000h,03Ch,066h,0C2h,0C0h,0C0h,0C0h,0C0h,0C2h,066h,03Ch,000h,000h,000h,000h ; Hex #43 + Db 000h,000h,0F8h,06Ch,066h,066h,066h,066h,066h,066h,06Ch,0F8h,000h,000h,000h,000h ; Hex #44 + Db 000h,000h,0FEh,066h,062h,068h,078h,068h,060h,062h,066h,0FEh,000h,000h,000h,000h ; Hex #45 + Db 000h,000h,0FEh,066h,062h,068h,078h,068h,060h,060h,060h,0F0h,000h,000h,000h,000h ; Hex #46 + Db 000h,000h,03Ch,066h,0C2h,0C0h,0C0h,0DEh,0C6h,0C6h,066h,03Ah,000h,000h,000h,000h ; Hex #47 + Db 000h,000h,0C6h,0C6h,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #48 + Db 000h,000h,03Ch,018h,018h,018h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #49 + Db 000h,000h,01Eh,00Ch,00Ch,00Ch,00Ch,00Ch,0CCh,0CCh,0CCh,078h,000h,000h,000h,000h ; Hex #4A + Db 000h,000h,0E6h,066h,066h,06Ch,078h,078h,06Ch,066h,066h,0E6h,000h,000h,000h,000h ; Hex #4B + Db 000h,000h,0F0h,060h,060h,060h,060h,060h,060h,062h,066h,0FEh,000h,000h,000h,000h ; Hex #4C + Db 000h,000h,0C6h,0EEh,0FEh,0FEh,0D6h,0C6h,0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #4D + Db 000h,000h,0C6h,0E6h,0F6h,0FEh,0DEh,0CEh,0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #4E + Db 000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #4F + Db 000h,000h,0FCh,066h,066h,066h,07Ch,060h,060h,060h,060h,0F0h,000h,000h,000h,000h ; Hex #50 + Db 000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0D6h,0DEh,07Ch,00Ch,00Eh,000h,000h ; Hex #51 + Db 000h,000h,0FCh,066h,066h,066h,07Ch,06Ch,066h,066h,066h,0E6h,000h,000h,000h,000h ; Hex #52 + Db 000h,000h,07Ch,0C6h,0C6h,060h,038h,00Ch,006h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #53 + Db 000h,000h,07Eh,07Eh,05Ah,018h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #54 + Db 000h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #55 + Db 000h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,06Ch,038h,010h,000h,000h,000h,000h ; Hex #56 + Db 000h,000h,0C6h,0C6h,0C6h,0C6h,0D6h,0D6h,0D6h,0FEh,0EEh,06Ch,000h,000h,000h,000h ; Hex #57 + Db 000h,000h,0C6h,0C6h,06Ch,07Ch,038h,038h,07Ch,06Ch,0C6h,0C6h,000h,000h,000h,000h ; Hex #58 + Db 000h,000h,066h,066h,066h,066h,03Ch,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #59 + Db 000h,000h,0FEh,0C6h,086h,00Ch,018h,030h,060h,0C2h,0C6h,0FEh,000h,000h,000h,000h ; Hex #5A + Db 000h,000h,03Ch,030h,030h,030h,030h,030h,030h,030h,030h,03Ch,000h,000h,000h,000h ; Hex #5B + Db 000h,000h,000h,080h,0C0h,0E0h,070h,038h,01Ch,00Eh,006h,002h,000h,000h,000h,000h ; Hex #5C + Db 000h,000h,03Ch,00Ch,00Ch,00Ch,00Ch,00Ch,00Ch,00Ch,00Ch,03Ch,000h,000h,000h,000h ; Hex #5D + Db 010h,038h,06Ch,0C6h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #5E + Db 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,0FFh,000h,000h ; Hex #5F + Db 000h,030h,018h,00Ch,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #60 + Db 000h,000h,000h,000h,000h,078h,00Ch,07Ch,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #61 + Db 000h,000h,0E0h,060h,060h,078h,06Ch,066h,066h,066h,066h,07Ch,000h,000h,000h,000h ; Hex #62 + Db 000h,000h,000h,000h,000h,07Ch,0C6h,0C0h,0C0h,0C0h,0C6h,07Ch,000h,000h,000h,000h ; Hex #63 + Db 000h,000h,01Ch,00Ch,00Ch,03Ch,06Ch,0CCh,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #64 + Db 000h,000h,000h,000h,000h,07Ch,0C6h,0FEh,0C0h,0C0h,0C6h,07Ch,000h,000h,000h,000h ; Hex #65 + Db 000h,000h,01Ch,036h,032h,030h,078h,030h,030h,030h,030h,078h,000h,000h,000h,000h ; Hex #66 + Db 000h,000h,000h,000h,000h,076h,0CCh,0CCh,0CCh,0CCh,0CCh,07Ch,00Ch,0CCh,078h,000h ; Hex #67 + Db 000h,000h,0E0h,060h,060h,06Ch,076h,066h,066h,066h,066h,0E6h,000h,000h,000h,000h ; Hex #68 + Db 000h,000h,018h,018h,000h,038h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #69 + Db 000h,000h,006h,006h,000h,00Eh,006h,006h,006h,006h,006h,006h,066h,066h,03Ch,000h ; Hex #6A + Db 000h,000h,0E0h,060h,060h,066h,06Ch,078h,078h,06Ch,066h,0E6h,000h,000h,000h,000h ; Hex #6B + Db 000h,000h,038h,018h,018h,018h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #6C + Db 000h,000h,000h,000h,000h,0ECh,0FEh,0D6h,0D6h,0D6h,0D6h,0C6h,000h,000h,000h,000h ; Hex #6D + Db 000h,000h,000h,000h,000h,0DCh,066h,066h,066h,066h,066h,066h,000h,000h,000h,000h ; Hex #6E + Db 000h,000h,000h,000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #6F + Db 000h,000h,000h,000h,000h,0DCh,066h,066h,066h,066h,066h,07Ch,060h,060h,0F0h,000h ; Hex #70 + Db 000h,000h,000h,000h,000h,076h,0CCh,0CCh,0CCh,0CCh,0CCh,07Ch,00Ch,00Ch,01Eh,000h ; Hex #71 + Db 000h,000h,000h,000h,000h,0DCh,076h,066h,060h,060h,060h,0F0h,000h,000h,000h,000h ; Hex #72 + Db 000h,000h,000h,000h,000h,07Ch,0C6h,060h,038h,00Ch,0C6h,07Ch,000h,000h,000h,000h ; Hex #73 + Db 000h,000h,010h,030h,030h,0FCh,030h,030h,030h,030h,036h,01Ch,000h,000h,000h,000h ; Hex #74 + Db 000h,000h,000h,000h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #75 + Db 000h,000h,000h,000h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,06Ch,038h,000h,000h,000h,000h ; Hex #76 + Db 000h,000h,000h,000h,000h,0C6h,0C6h,0D6h,0D6h,0D6h,0FEh,06Ch,000h,000h,000h,000h ; Hex #77 + Db 000h,000h,000h,000h,000h,0C6h,06Ch,038h,038h,038h,06Ch,0C6h,000h,000h,000h,000h ; Hex #78 + Db 000h,000h,000h,000h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Eh,006h,00Ch,0F8h,000h ; Hex #79 + Db 000h,000h,000h,000h,000h,0FEh,0CCh,018h,030h,060h,0C6h,0FEh,000h,000h,000h,000h ; Hex #7A + Db 000h,000h,00Eh,018h,018h,018h,070h,018h,018h,018h,018h,00Eh,000h,000h,000h,000h ; Hex #7B + Db 000h,000h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,000h,000h,000h,000h ; Hex #7C + Db 000h,000h,070h,018h,018h,018h,00Eh,018h,018h,018h,018h,070h,000h,000h,000h,000h ; Hex #7D + Db 000h,076h,0DCh,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #7E + Db 000h,000h,000h,000h,010h,038h,06Ch,0C6h,0C6h,0C6h,0FEh,000h,000h,000h,000h,000h ; Hex #7F + Db 000h,000h,03Ch,066h,0C2h,0C0h,0C0h,0C0h,0C0h,0C2h,066h,03Ch,018h,070h,000h,000h ; Hex #80 + Db 000h,000h,0CCh,000h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #81 + Db 000h,00Ch,018h,030h,000h,07Ch,0C6h,0FEh,0C0h,0C0h,0C6h,07Ch,000h,000h,000h,000h ; Hex #82 + Db 000h,010h,038h,06Ch,000h,078h,00Ch,07Ch,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #83 + Db 000h,000h,0CCh,000h,000h,078h,00Ch,07Ch,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #84 + Db 000h,060h,030h,018h,000h,078h,00Ch,07Ch,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #85 + Db 000h,038h,06Ch,038h,000h,078h,00Ch,07Ch,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #86 + Db 000h,000h,000h,000h,000h,07Ch,0C6h,0C0h,0C0h,0C0h,0C6h,07Ch,018h,070h,000h,000h ; Hex #87 + Db 000h,010h,038h,06Ch,000h,07Ch,0C6h,0FEh,0C0h,0C0h,0C6h,07Ch,000h,000h,000h,000h ; Hex #88 + Db 000h,000h,0C6h,000h,000h,07Ch,0C6h,0FEh,0C0h,0C0h,0C6h,07Ch,000h,000h,000h,000h ; Hex #89 + Db 000h,060h,030h,018h,000h,07Ch,0C6h,0FEh,0C0h,0C0h,0C6h,07Ch,000h,000h,000h,000h ; Hex #8A + Db 000h,000h,066h,000h,000h,038h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #8B + Db 000h,018h,03Ch,066h,000h,038h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #8C + Db 000h,060h,030h,018h,000h,038h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #8D + Db 000h,0C6h,000h,010h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #8E + Db 038h,06Ch,038h,010h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #8F + Db 00Ch,018h,000h,0FEh,066h,062h,068h,078h,068h,062h,066h,0FEh,000h,000h,000h,000h ; Hex #90 + Db 000h,000h,000h,000h,000h,0ECh,036h,036h,07Eh,0D8h,0D8h,06Eh,000h,000h,000h,000h ; Hex #91 + Db 000h,000h,03Eh,06Ch,0CCh,0CCh,0FEh,0CCh,0CCh,0CCh,0CCh,0CEh,000h,000h,000h,000h ; Hex #92 + Db 000h,010h,038h,06Ch,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #93 + Db 000h,000h,0C6h,000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #94 + Db 000h,060h,030h,018h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #95 + Db 000h,030h,078h,0CCh,000h,0CCh,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #96 + Db 000h,060h,030h,018h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #97 + Db 000h,000h,0C6h,000h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Eh,006h,00Ch,078h,000h ; Hex #98 + Db 000h,0C6h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #99 + Db 000h,0C6h,000h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #9A + Db 000h,000h,000h,000h,000h,07Ch,0C6h,0CEh,0D6h,0E6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #9B + Db 000h,038h,06Ch,064h,060h,0F0h,060h,060h,060h,060h,0E6h,0FCh,000h,000h,000h,000h ; Hex #9C + Db 000h,004h,07Ch,0CEh,0CEh,0D6h,0D6h,0D6h,0D6h,0E6h,0E6h,07Ch,040h,000h,000h,000h ; Hex #9D + Db 000h,0F8h,0CCh,0CCh,0F8h,0C4h,0CCh,0DEh,0CCh,0CCh,0CCh,0C6h,000h,000h,000h,000h ; Hex #9E + Db 000h,00Eh,01Bh,018h,018h,018h,07Eh,018h,018h,018h,0D8h,070h,000h,000h,000h,000h ; Hex #9F + Db 000h,018h,030h,060h,000h,078h,00Ch,07Ch,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #A0 + Db 000h,00Ch,018h,030h,000h,038h,018h,018h,018h,018h,018h,03Ch,000h,000h,000h,000h ; Hex #A1 + Db 000h,018h,030h,060h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #A2 + Db 000h,018h,030h,060h,000h,0CCh,0CCh,0CCh,0CCh,0CCh,0CCh,076h,000h,000h,000h,000h ; Hex #A3 + Db 000h,000h,076h,0DCh,000h,0DCh,066h,066h,066h,066h,066h,066h,000h,000h,000h,000h ; Hex #A4 + Db 076h,0DCh,000h,0C6h,0E6h,0F6h,0FEh,0DEh,0CEh,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #A5 + Db 000h,000h,03Ch,06Ch,06Ch,03Eh,000h,07Eh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #A6 + Db 000h,000h,038h,06Ch,06Ch,038h,000h,07Ch,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #A7 + Db 000h,000h,030h,030h,000h,030h,030h,060h,0C0h,0C6h,0C6h,07Ch,000h,000h,000h,000h ; Hex #A8 + Db 000h,000h,000h,000h,000h,000h,0FEh,0C0h,0C0h,0C0h,0C0h,000h,000h,000h,000h,000h ; Hex #A9 + Db 000h,000h,000h,000h,000h,000h,0FEh,006h,006h,006h,006h,000h,000h,000h,000h,000h ; Hex #AA + Db 000h,060h,0E0h,062h,066h,06Ch,018h,030h,060h,0DCh,086h,00Ch,018h,03Eh,000h,000h ; Hex #AB + Db 000h,060h,0E0h,062h,066h,06Ch,018h,030h,066h,0CEh,09Ah,03Fh,006h,006h,000h,000h ; Hex #AC + Db 000h,000h,018h,018h,000h,018h,018h,018h,03Ch,03Ch,03Ch,018h,000h,000h,000h,000h ; Hex #AD + Db 000h,000h,000h,000h,000h,036h,06Ch,0D8h,06Ch,036h,000h,000h,000h,000h,000h,000h ; Hex #AE + Db 000h,000h,000h,000h,0C6h,07Ch,0C6h,0C6h,0C6h,0C6h,07Ch,0C6h,000h,000h,000h,000h ; Hex #AF + Db 011h,044h,011h,044h,011h,044h,011h,044h,011h,044h,011h,044h,011h,044h,011h,044h ; Hex #B0 + Db 055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh ; Hex #B1 + Db 0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h,0DDh,077h ; Hex #B2 + Db 018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #B3 + Db 018h,018h,018h,018h,018h,018h,018h,0F8h,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #B4 + Db 018h,018h,018h,018h,018h,0F8h,018h,0F8h,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #B5 + Db 036h,036h,036h,036h,036h,036h,036h,0F6h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #B6 + Db 000h,000h,000h,000h,000h,000h,000h,0FEh,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #B7 + Db 000h,000h,000h,000h,000h,0F8h,018h,0F8h,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #B8 + Db 036h,036h,036h,036h,036h,0F6h,006h,0F6h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #B9 + Db 036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #BA + Db 000h,000h,000h,000h,000h,0FEh,006h,0F6h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #BB + Db 036h,036h,036h,036h,036h,0F6h,006h,0FEh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #BC + Db 036h,036h,036h,036h,036h,036h,036h,0FEh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #BD + Db 018h,018h,018h,018h,018h,0F8h,018h,0F8h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #BE + Db 000h,000h,000h,000h,000h,000h,000h,0F8h,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #BF + Db 018h,018h,018h,018h,018h,018h,018h,01Fh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #C0 + Db 018h,018h,018h,018h,018h,018h,018h,0FFh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #C1 + Db 000h,000h,000h,000h,000h,000h,000h,0FFh,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #C2 + Db 018h,018h,018h,018h,018h,018h,018h,01Fh,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #C3 + Db 000h,000h,000h,000h,000h,000h,000h,0FFh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #C4 + Db 018h,018h,018h,018h,018h,018h,018h,0FFh,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #C5 + Db 018h,018h,018h,018h,018h,01Fh,018h,01Fh,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #C6 + Db 036h,036h,036h,036h,036h,036h,036h,037h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #C7 + Db 036h,036h,036h,036h,036h,037h,030h,03Fh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #C8 + Db 000h,000h,000h,000h,000h,03Fh,030h,037h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #C9 + Db 036h,036h,036h,036h,036h,0F7h,000h,0FFh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #CA + Db 000h,000h,000h,000h,000h,0FFh,000h,0F7h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #CB + Db 036h,036h,036h,036h,036h,037h,030h,037h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #CC + Db 000h,000h,000h,000h,000h,0FFh,000h,0FFh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #CD + Db 036h,036h,036h,036h,036h,0F7h,000h,0F7h,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #CE + Db 018h,018h,018h,018h,018h,0FFh,000h,0FFh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #CF + Db 036h,036h,036h,036h,036h,036h,036h,0FFh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #D0 + Db 000h,000h,000h,000h,000h,0FFh,000h,0FFh,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #D1 + Db 000h,000h,000h,000h,000h,000h,000h,0FFh,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #D2 + Db 036h,036h,036h,036h,036h,036h,036h,03Fh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #D3 + Db 018h,018h,018h,018h,018h,01Fh,018h,01Fh,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #D4 + Db 000h,000h,000h,000h,000h,01Fh,018h,01Fh,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #D5 + Db 000h,000h,000h,000h,000h,000h,000h,03Fh,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #D6 + Db 036h,036h,036h,036h,036h,036h,036h,0FFh,036h,036h,036h,036h,036h,036h,036h,036h ; Hex #D7 + Db 018h,018h,018h,018h,018h,0FFh,018h,0FFh,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #D8 + Db 018h,018h,018h,018h,018h,018h,018h,0F8h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #D9 + Db 000h,000h,000h,000h,000h,000h,000h,01Fh,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #DA + Db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh ; Hex #DB + Db 000h,000h,000h,000h,000h,000h,000h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh ; Hex #DC + Db 0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h ; Hex #DD + Db 00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh ; Hex #DE + Db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #DF + Db 000h,000h,000h,000h,000h,076h,0DCh,0D8h,0D8h,0D8h,0DCh,076h,000h,000h,000h,000h ; Hex #E0 + Db 000h,000h,078h,0CCh,0CCh,0CCh,0D8h,0CCh,0C6h,0C6h,0C6h,0CCh,000h,000h,000h,000h ; Hex #E1 + Db 000h,000h,0FEh,0C6h,0C6h,0C0h,0C0h,0C0h,0C0h,0C0h,0C0h,0C0h,000h,000h,000h,000h ; Hex #E2 + Db 000h,000h,000h,000h,000h,0FEh,06Ch,06Ch,06Ch,06Ch,06Ch,06Ch,000h,000h,000h,000h ; Hex #E3 + Db 000h,000h,0FEh,0C6h,060h,030h,018h,018h,030h,060h,0C6h,0FEh,000h,000h,000h,000h ; Hex #E4 + Db 000h,000h,000h,000h,000h,07Eh,0D8h,0D8h,0D8h,0D8h,0D8h,070h,000h,000h,000h,000h ; Hex #E5 + Db 000h,000h,000h,000h,000h,066h,066h,066h,066h,066h,066h,07Ch,060h,060h,0C0h,000h ; Hex #E6 + Db 000h,000h,000h,000h,076h,0DCh,018h,018h,018h,018h,018h,018h,000h,000h,000h,000h ; Hex #E7 + Db 000h,000h,07Eh,018h,03Ch,066h,066h,066h,066h,03Ch,018h,07Eh,000h,000h,000h,000h ; Hex #E8 + Db 000h,000h,038h,06Ch,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,06Ch,038h,000h,000h,000h,000h ; Hex #E9 + Db 000h,000h,038h,06Ch,0C6h,0C6h,0C6h,06Ch,06Ch,06Ch,06Ch,0EEh,000h,000h,000h,000h ; Hex #EA + Db 000h,000h,01Eh,030h,018h,00Ch,03Eh,066h,066h,066h,066h,03Ch,000h,000h,000h,000h ; Hex #EB + Db 000h,000h,000h,000h,000h,07Eh,0DBh,0DBh,0DBh,07Eh,000h,000h,000h,000h,000h,000h ; Hex #EC + Db 000h,000h,000h,003h,006h,07Eh,0DBh,0DBh,0F3h,07Eh,060h,0C0h,000h,000h,000h,000h ; Hex #ED + Db 000h,000h,01Ch,030h,060h,060h,07Ch,060h,060h,060h,030h,01Ch,000h,000h,000h,000h ; Hex #EE + Db 000h,000h,000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,000h,000h,000h,000h ; Hex #EF + Db 000h,000h,000h,000h,0FEh,000h,000h,0FEh,000h,000h,0FEh,000h,000h,000h,000h,000h ; Hex #F0 + Db 000h,000h,000h,000h,018h,018h,07Eh,018h,018h,000h,000h,07Eh,000h,000h,000h,000h ; Hex #F1 + Db 000h,000h,000h,030h,018h,00Ch,006h,00Ch,018h,030h,000h,07Eh,000h,000h,000h,000h ; Hex #F2 + Db 000h,000h,000h,00Ch,018h,030h,060h,030h,018h,00Ch,000h,07Eh,000h,000h,000h,000h ; Hex #F3 + Db 000h,000h,00Eh,01Bh,01Bh,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h,018h ; Hex #F4 + Db 018h,018h,018h,018h,018h,018h,018h,018h,018h,0D8h,0D8h,0D8h,070h,000h,000h,000h ; Hex #F5 + Db 000h,000h,000h,000h,000h,018h,000h,07Eh,000h,018h,000h,000h,000h,000h,000h,000h ; Hex #F6 + Db 000h,000h,000h,000h,000h,076h,0DCh,000h,076h,0DCh,000h,000h,000h,000h,000h,000h ; Hex #F7 + Db 000h,038h,06Ch,06Ch,038h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #F8 + Db 000h,000h,000h,000h,000h,000h,000h,018h,018h,000h,000h,000h,000h,000h,000h,000h ; Hex #F9 + Db 000h,000h,000h,000h,000h,000h,000h,018h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #FA + Db 000h,00Fh,00Ch,00Ch,00Ch,00Ch,00Ch,0ECh,06Ch,06Ch,03Ch,01Ch,000h,000h,000h,000h ; Hex #FB + Db 000h,06Ch,036h,036h,036h,036h,036h,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #FC + Db 000h,03Ch,066h,00Ch,018h,032h,07Eh,000h,000h,000h,000h,000h,000h,000h,000h,000h ; Hex #FD + Db 000h,000h,000h,000h,07Eh,07Eh,07Eh,07Eh,07Eh,07Eh,07Eh,000h,000h,000h,000h,000h ; Hex #FE + 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/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 @@ +;*************************************************** +; CHARACTER FONT FILE +; Source Assembler File +; +; CODE PAGE: 865 +; FONT RESOLUTION: 8 x 8 +; +; DATE CREATED:05-28-1987 +; +; +; Output file from: MULTIFON, Version 1A +; +;*************************************************** + Db 000h,000h,000h,000h,000h,000h,000h,000h ; Hex #0 + Db 07Eh,081h,0A5h,081h,0BDh,099h,081h,07Eh ; Hex #1 + Db 07Eh,0FFh,0DBh,0FFh,0C3h,0E7h,0FFh,07Eh ; Hex #2 + Db 06Ch,0FEh,0FEh,0FEh,07Ch,038h,010h,000h ; Hex #3 + Db 010h,038h,07Ch,0FEh,07Ch,038h,010h,000h ; Hex #4 + Db 038h,07Ch,038h,0FEh,0FEh,0D6h,010h,038h ; Hex #5 + Db 010h,038h,07Ch,0FEh,0FEh,07Ch,010h,038h ; Hex #6 + Db 000h,000h,018h,03Ch,03Ch,018h,000h,000h ; Hex #7 + Db 0FFh,0FFh,0E7h,0C3h,0C3h,0E7h,0FFh,0FFh ; Hex #8 + Db 000h,03Ch,066h,042h,042h,066h,03Ch,000h ; Hex #9 + Db 0FFh,0C3h,099h,0BDh,0BDh,099h,0C3h,0FFh ; Hex #A + Db 00Fh,007h,00Fh,07Dh,0CCh,0CCh,0CCh,078h ; Hex #B + Db 03Ch,066h,066h,066h,03Ch,018h,07Eh,018h ; Hex #C + Db 03Fh,033h,03Fh,030h,030h,070h,0F0h,0E0h ; Hex #D + Db 07Fh,063h,07Fh,063h,063h,067h,0E6h,0C0h ; Hex #E + Db 018h,0DBh,03Ch,0E7h,0E7h,03Ch,0DBh,018h ; Hex #F + Db 080h,0E0h,0F8h,0FEh,0F8h,0E0h,080h,000h ; Hex #10 + Db 002h,00Eh,03Eh,0FEh,03Eh,00Eh,002h,000h ; Hex #11 + Db 018h,03Ch,07Eh,018h,018h,07Eh,03Ch,018h ; Hex #12 + Db 066h,066h,066h,066h,066h,000h,066h,000h ; Hex #13 + Db 07Fh,0DBh,0DBh,07Bh,01Bh,01Bh,01Bh,000h ; Hex #14 + Db 03Eh,061h,03Ch,066h,066h,03Ch,086h,07Ch ; Hex #15 + Db 000h,000h,000h,000h,07Eh,07Eh,07Eh,000h ; Hex #16 + Db 018h,03Ch,07Eh,018h,07Eh,03Ch,018h,0FFh ; Hex #17 + Db 018h,03Ch,07Eh,018h,018h,018h,018h,000h ; Hex #18 + Db 018h,018h,018h,018h,07Eh,03Ch,018h,000h ; Hex #19 + Db 000h,018h,00Ch,0FEh,00Ch,018h,000h,000h ; Hex #1A + Db 000h,030h,060h,0FEh,060h,030h,000h,000h ; Hex #1B + Db 000h,000h,0C0h,0C0h,0C0h,0FEh,000h,000h ; Hex #1C + Db 000h,024h,066h,0FFh,066h,024h,000h,000h ; Hex #1D + Db 000h,018h,03Ch,07Eh,0FFh,0FFh,000h,000h ; Hex #1E + Db 000h,0FFh,0FFh,07Eh,03Ch,018h,000h,000h ; Hex #1F + Db 000h,000h,000h,000h,000h,000h,000h,000h ; Hex #20 + Db 018h,03Ch,03Ch,018h,018h,000h,018h,000h ; Hex #21 + Db 066h,066h,024h,000h,000h,000h,000h,000h ; Hex #22 + Db 06Ch,06Ch,0FEh,06Ch,0FEh,06Ch,06Ch,000h ; Hex #23 + Db 018h,03Eh,060h,03Ch,006h,07Ch,018h,000h ; Hex #24 + Db 000h,0C6h,0CCh,018h,030h,066h,0C6h,000h ; Hex #25 + Db 038h,06Ch,038h,076h,0DCh,0CCh,076h,000h ; Hex #26 + Db 018h,018h,030h,000h,000h,000h,000h,000h ; Hex #27 + Db 00Ch,018h,030h,030h,030h,018h,00Ch,000h ; Hex #28 + Db 030h,018h,00Ch,00Ch,00Ch,018h,030h,000h ; Hex #29 + Db 000h,066h,03Ch,0FFh,03Ch,066h,000h,000h ; Hex #2A + Db 000h,018h,018h,07Eh,018h,018h,000h,000h ; Hex #2B + Db 000h,000h,000h,000h,000h,018h,018h,030h ; Hex #2C + Db 000h,000h,000h,07Eh,000h,000h,000h,000h ; Hex #2D + Db 000h,000h,000h,000h,000h,018h,018h,000h ; Hex #2E + Db 006h,00Ch,018h,030h,060h,0C0h,080h,000h ; Hex #2F + Db 038h,06Ch,0C6h,0D6h,0C6h,06Ch,038h,000h ; Hex #30 + Db 018h,038h,018h,018h,018h,018h,07Eh,000h ; Hex #31 + Db 07Ch,0C6h,006h,01Ch,030h,066h,0FEh,000h ; Hex #32 + Db 07Ch,0C6h,006h,03Ch,006h,0C6h,07Ch,000h ; Hex #33 + Db 01Ch,03Ch,06Ch,0CCh,0FEh,00Ch,01Eh,000h ; Hex #34 + Db 0FEh,0C0h,0C0h,0FCh,006h,0C6h,07Ch,000h ; Hex #35 + Db 038h,060h,0C0h,0FCh,0C6h,0C6h,07Ch,000h ; Hex #36 + Db 0FEh,0C6h,00Ch,018h,030h,030h,030h,000h ; Hex #37 + Db 07Ch,0C6h,0C6h,07Ch,0C6h,0C6h,07Ch,000h ; Hex #38 + Db 07Ch,0C6h,0C6h,07Eh,006h,00Ch,078h,000h ; Hex #39 + Db 000h,018h,018h,000h,000h,018h,018h,000h ; Hex #3A + Db 000h,018h,018h,000h,000h,018h,018h,030h ; Hex #3B + Db 006h,00Ch,018h,030h,018h,00Ch,006h,000h ; Hex #3C + Db 000h,000h,07Eh,000h,000h,07Eh,000h,000h ; Hex #3D + Db 060h,030h,018h,00Ch,018h,030h,060h,000h ; Hex #3E + Db 07Ch,0C6h,00Ch,018h,018h,000h,018h,000h ; Hex #3F + Db 07Ch,0C6h,0DEh,0DEh,0DEh,0C0h,078h,000h ; Hex #40 + Db 038h,06Ch,0C6h,0FEh,0C6h,0C6h,0C6h,000h ; Hex #41 + Db 0FCh,066h,066h,07Ch,066h,066h,0FCh,000h ; Hex #42 + Db 03Ch,066h,0C0h,0C0h,0C0h,066h,03Ch,000h ; Hex #43 + Db 0F8h,06Ch,066h,066h,066h,06Ch,0F8h,000h ; Hex #44 + Db 0FEh,062h,068h,078h,068h,062h,0FEh,000h ; Hex #45 + Db 0FEh,062h,068h,078h,068h,060h,0F0h,000h ; Hex #46 + Db 03Ch,066h,0C0h,0C0h,0CEh,066h,03Ah,000h ; Hex #47 + Db 0C6h,0C6h,0C6h,0FEh,0C6h,0C6h,0C6h,000h ; Hex #48 + Db 03Ch,018h,018h,018h,018h,018h,03Ch,000h ; Hex #49 + Db 01Eh,00Ch,00Ch,00Ch,0CCh,0CCh,078h,000h ; Hex #4A + Db 0E6h,066h,06Ch,078h,06Ch,066h,0E6h,000h ; Hex #4B + Db 0F0h,060h,060h,060h,062h,066h,0FEh,000h ; Hex #4C + Db 0C6h,0EEh,0FEh,0FEh,0D6h,0C6h,0C6h,000h ; Hex #4D + Db 0C6h,0E6h,0F6h,0DEh,0CEh,0C6h,0C6h,000h ; Hex #4E + Db 07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h ; Hex #4F + Db 0FCh,066h,066h,07Ch,060h,060h,0F0h,000h ; Hex #50 + Db 07Ch,0C6h,0C6h,0C6h,0C6h,0CEh,07Ch,00Eh ; Hex #51 + Db 0FCh,066h,066h,07Ch,06Ch,066h,0E6h,000h ; Hex #52 + Db 03Ch,066h,030h,018h,00Ch,066h,03Ch,000h ; Hex #53 + Db 07Eh,07Eh,05Ah,018h,018h,018h,03Ch,000h ; Hex #54 + Db 0C6h,0C6h,0C6h,0C6h,0C6h,0C6h,07Ch,000h ; Hex #55 + Db 0C6h,0C6h,0C6h,0C6h,0C6h,06Ch,038h,000h ; Hex #56 + Db 0C6h,0C6h,0C6h,0D6h,0D6h,0FEh,06Ch,000h ; Hex #57 + Db 0C6h,0C6h,06Ch,038h,06Ch,0C6h,0C6h,000h ; Hex #58 + Db 066h,066h,066h,03Ch,018h,018h,03Ch,000h ; Hex #59 + Db 0FEh,0C6h,08Ch,018h,032h,066h,0FEh,000h ; Hex #5A + Db 03Ch,030h,030h,030h,030h,030h,03Ch,000h ; Hex #5B + Db 0C0h,060h,030h,018h,00Ch,006h,002h,000h ; Hex #5C + Db 03Ch,00Ch,00Ch,00Ch,00Ch,00Ch,03Ch,000h ; Hex #5D + Db 010h,038h,06Ch,0C6h,000h,000h,000h,000h ; Hex #5E + Db 000h,000h,000h,000h,000h,000h,000h,0FFh ; Hex #5F + Db 030h,018h,00Ch,000h,000h,000h,000h,000h ; Hex #60 + Db 000h,000h,078h,00Ch,07Ch,0CCh,076h,000h ; Hex #61 + Db 0E0h,060h,07Ch,066h,066h,066h,0DCh,000h ; Hex #62 + Db 000h,000h,07Ch,0C6h,0C0h,0C6h,07Ch,000h ; Hex #63 + Db 01Ch,00Ch,07Ch,0CCh,0CCh,0CCh,076h,000h ; Hex #64 + Db 000h,000h,07Ch,0C6h,0FEh,0C0h,07Ch,000h ; Hex #65 + Db 03Ch,066h,060h,0F8h,060h,060h,0F0h,000h ; Hex #66 + Db 000h,000h,076h,0CCh,0CCh,07Ch,00Ch,0F8h ; Hex #67 + Db 0E0h,060h,06Ch,076h,066h,066h,0E6h,000h ; Hex #68 + Db 018h,000h,038h,018h,018h,018h,03Ch,000h ; Hex #69 + Db 006h,000h,006h,006h,006h,066h,066h,03Ch ; Hex #6A + Db 0E0h,060h,066h,06Ch,078h,06Ch,0E6h,000h ; Hex #6B + Db 038h,018h,018h,018h,018h,018h,03Ch,000h ; Hex #6C + Db 000h,000h,0ECh,0FEh,0D6h,0D6h,0D6h,000h ; Hex #6D + Db 000h,000h,0DCh,066h,066h,066h,066h,000h ; Hex #6E + Db 000h,000h,07Ch,0C6h,0C6h,0C6h,07Ch,000h ; Hex #6F + Db 000h,000h,0DCh,066h,066h,07Ch,060h,0F0h ; Hex #70 + Db 000h,000h,076h,0CCh,0CCh,07Ch,00Ch,01Eh ; Hex #71 + Db 000h,000h,0DCh,076h,060h,060h,0F0h,000h ; Hex #72 + Db 000h,000h,07Eh,0C0h,07Ch,006h,0FCh,000h ; Hex #73 + Db 030h,030h,0FCh,030h,030h,036h,01Ch,000h ; Hex #74 + Db 000h,000h,0CCh,0CCh,0CCh,0CCh,076h,000h ; Hex #75 + Db 000h,000h,0C6h,0C6h,0C6h,06Ch,038h,000h ; Hex #76 + Db 000h,000h,0C6h,0D6h,0D6h,0FEh,06Ch,000h ; Hex #77 + Db 000h,000h,0C6h,06Ch,038h,06Ch,0C6h,000h ; Hex #78 + Db 000h,000h,0C6h,0C6h,0C6h,07Eh,006h,0FCh ; Hex #79 + Db 000h,000h,07Eh,04Ch,018h,032h,07Eh,000h ; Hex #7A + Db 00Eh,018h,018h,070h,018h,018h,00Eh,000h ; Hex #7B + Db 018h,018h,018h,018h,018h,018h,018h,000h ; Hex #7C + Db 070h,018h,018h,00Eh,018h,018h,070h,000h ; Hex #7D + Db 076h,0DCh,000h,000h,000h,000h,000h,000h ; Hex #7E + Db 000h,010h,038h,06Ch,0C6h,0C6h,0FEh,000h ; Hex #7F + Db 07Ch,0C6h,0C0h,0C0h,0C6h,07Ch,00Ch,078h ; Hex #80 + Db 0CCh,000h,0CCh,0CCh,0CCh,0CCh,076h,000h ; Hex #81 + Db 00Ch,018h,07Ch,0C6h,0FEh,0C0h,07Ch,000h ; Hex #82 + Db 07Ch,082h,078h,00Ch,07Ch,0CCh,076h,000h ; Hex #83 + Db 0C6h,000h,078h,00Ch,07Ch,0CCh,076h,000h ; Hex #84 + Db 030h,018h,078h,00Ch,07Ch,0CCh,076h,000h ; Hex #85 + Db 030h,030h,078h,00Ch,07Ch,0CCh,076h,000h ; Hex #86 + Db 000h,000h,07Eh,0C0h,0C0h,07Eh,00Ch,038h ; Hex #87 + Db 07Ch,082h,07Ch,0C6h,0FEh,0C0h,07Ch,000h ; Hex #88 + Db 0C6h,000h,07Ch,0C6h,0FEh,0C0h,07Ch,000h ; Hex #89 + Db 030h,018h,07Ch,0C6h,0FEh,0C0h,07Ch,000h ; Hex #8A + Db 066h,000h,038h,018h,018h,018h,03Ch,000h ; Hex #8B + Db 07Ch,082h,038h,018h,018h,018h,03Ch,000h ; Hex #8C + Db 030h,018h,000h,038h,018h,018h,03Ch,000h ; Hex #8D + Db 0C6h,038h,06Ch,0C6h,0FEh,0C6h,0C6h,000h ; Hex #8E + Db 038h,06Ch,07Ch,0C6h,0FEh,0C6h,0C6h,000h ; Hex #8F + Db 018h,030h,0FEh,0C0h,0F8h,0C0h,0FEh,000h ; Hex #90 + Db 000h,000h,07Eh,012h,0feh,090h,0fEh,000h ; Hex #91 + Db 03Eh,06Ch,0CCh,0FEh,0CCh,0CCh,0CEh,000h ; Hex #92 + Db 07Ch,082h,07Ch,0C6h,0C6h,0C6h,07Ch,000h ; Hex #93 + Db 0C6h,000h,07Ch,0C6h,0C6h,0C6h,07Ch,000h ; Hex #94 + Db 030h,018h,07Ch,0C6h,0C6h,0C6h,07Ch,000h ; Hex #95 + Db 078h,084h,000h,0CCh,0CCh,0CCh,076h,000h ; Hex #96 + Db 060h,030h,0CCh,0CCh,0CCh,0CCh,076h,000h ; Hex #97 + Db 0C6h,000h,0C6h,0C6h,0C6h,07Eh,006h,0FCh ; Hex #98 + Db 0C6h,038h,06Ch,0C6h,0C6h,06Ch,038h,000h ; Hex #99 + Db 0C6h,000h,0C6h,0C6h,0C6h,0C6h,07Ch,000h ; Hex #9A + Db 000h,002h,07Ch,0CEh,0D6h,0E6h,07Ch,080h ; Hex #9B + Db 038h,06Ch,064h,0F0h,060h,066h,0FCh,000h ; Hex #9C + Db 03Ah,06Ch,0CEh,0D6h,0E6h,06Ch,0B8h,000h ; Hex #9D + Db 0F8h,0CCh,0CCh,0FAh,0C6h,0CFh,0C6h,0C7h ; Hex #9E + Db 00Eh,01Bh,018h,03Ch,018h,0D8h,070h,000h ; Hex #9F + Db 018h,030h,078h,00Ch,07Ch,0CCh,076h,000h ; Hex #A0 + Db 00Ch,018h,000h,038h,018h,018h,03Ch,000h ; Hex #A1 + Db 00Ch,018h,07Ch,0C6h,0C6h,0C6h,07Ch,000h ; Hex #A2 + Db 018h,030h,0CCh,0CCh,0CCh,0CCh,076h,000h ; Hex #A3 + Db 076h,0DCh,000h,0DCh,066h,066h,066h,000h ; Hex #A4 + Db 076h,0DCh,000h,0E6h,0F6h,0DEh,0CEh,000h ; Hex #A5 + Db 03Ch,06Ch,06Ch,03Eh,000h,07Eh,000h,000h ; Hex #A6 + Db 038h,06Ch,06Ch,038h,000h,07Ch,000h,000h ; Hex #A7 + Db 018h,000h,018h,018h,030h,063h,03Eh,000h ; Hex #A8 + Db 000h,000h,000h,0FEh,0C0h,0C0h,000h,000h ; Hex #A9 + Db 000h,000h,000h,0FEh,006h,006h,000h,000h ; Hex #AA + Db 063h,0E6h,06Ch,07Eh,033h,066h,0CCh,00Fh ; Hex #AB + Db 063h,0E6h,06Ch,07Ah,036h,06Ah,0DFh,006h ; Hex #AC + Db 018h,000h,018h,018h,03Ch,03Ch,018h,000h ; Hex #AD + Db 000h,033h,066h,0CCh,066h,033h,000h,000h ; Hex #AE + Db 000h,0C6h,07Ch,0C6h,0C6h,07Ch,0C6h,000h ; Hex #AF + Db 022h,088h,022h,088h,022h,088h,022h,088h ; Hex #B0 + Db 055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh ; Hex #B1 + Db 077h,0DDh,077h,0DDh,077h,0DDh,077h,0DDh ; Hex #B2 + Db 018h,018h,018h,018h,018h,018h,018h,018h ; Hex #B3 + Db 018h,018h,018h,018h,0F8h,018h,018h,018h ; Hex #B4 + Db 018h,018h,0F8h,018h,0F8h,018h,018h,018h ; Hex #B5 + Db 036h,036h,036h,036h,0F6h,036h,036h,036h ; Hex #B6 + Db 000h,000h,000h,000h,0FEh,036h,036h,036h ; Hex #B7 + Db 000h,000h,0F8h,018h,0F8h,018h,018h,018h ; Hex #B8 + Db 036h,036h,0F6h,006h,0F6h,036h,036h,036h ; Hex #B9 + Db 036h,036h,036h,036h,036h,036h,036h,036h ; Hex #BA + Db 000h,000h,0FEh,006h,0F6h,036h,036h,036h ; Hex #BB + Db 036h,036h,0F6h,006h,0FEh,000h,000h,000h ; Hex #BC + Db 036h,036h,036h,036h,0FEh,000h,000h,000h ; Hex #BD + Db 018h,018h,0F8h,018h,0F8h,000h,000h,000h ; Hex #BE + Db 000h,000h,000h,000h,0F8h,018h,018h,018h ; Hex #BF + Db 018h,018h,018h,018h,01Fh,000h,000h,000h ; Hex #C0 + Db 018h,018h,018h,018h,0FFh,000h,000h,000h ; Hex #C1 + Db 000h,000h,000h,000h,0FFh,018h,018h,018h ; Hex #C2 + Db 018h,018h,018h,018h,01Fh,018h,018h,018h ; Hex #C3 + Db 000h,000h,000h,000h,0FFh,000h,000h,000h ; Hex #C4 + Db 018h,018h,018h,018h,0FFh,018h,018h,018h ; Hex #C5 + Db 018h,018h,01Fh,018h,01Fh,018h,018h,018h ; Hex #C6 + Db 036h,036h,036h,036h,037h,036h,036h,036h ; Hex #C7 + Db 036h,036h,037h,030h,03Fh,000h,000h,000h ; Hex #C8 + Db 000h,000h,03Fh,030h,037h,036h,036h,036h ; Hex #C9 + Db 036h,036h,0F7h,000h,0FFh,000h,000h,000h ; Hex #CA + Db 000h,000h,0FFh,000h,0F7h,036h,036h,036h ; Hex #CB + Db 036h,036h,037h,030h,037h,036h,036h,036h ; Hex #CC + Db 000h,000h,0FFh,000h,0FFh,000h,000h,000h ; Hex #CD + Db 036h,036h,0F7h,000h,0F7h,036h,036h,036h ; Hex #CE + Db 018h,018h,0FFh,000h,0FFh,000h,000h,000h ; Hex #CF + Db 036h,036h,036h,036h,0FFh,000h,000h,000h ; Hex #D0 + Db 000h,000h,0FFh,000h,0FFh,018h,018h,018h ; Hex #D1 + Db 000h,000h,000h,000h,0FFh,036h,036h,036h ; Hex #D2 + Db 036h,036h,036h,036h,03Fh,000h,000h,000h ; Hex #D3 + Db 018h,018h,01Fh,018h,01Fh,000h,000h,000h ; Hex #D4 + Db 000h,000h,01Fh,018h,01Fh,018h,018h,018h ; Hex #D5 + Db 000h,000h,000h,000h,03Fh,036h,036h,036h ; Hex #D6 + Db 036h,036h,036h,036h,0FFh,036h,036h,036h ; Hex #D7 + Db 018h,018h,0FFh,018h,0FFh,018h,018h,018h ; Hex #D8 + Db 018h,018h,018h,018h,0F8h,000h,000h,000h ; Hex #D9 + Db 000h,000h,000h,000h,01Fh,018h,018h,018h ; Hex #DA + Db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh ; Hex #DB + Db 000h,000h,000h,000h,0FFh,0FFh,0FFh,0FFh ; Hex #DC + Db 0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h ; Hex #DD + Db 00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh ; Hex #DE + Db 0FFh,0FFh,0FFh,0FFh,000h,000h,000h,000h ; Hex #DF + Db 000h,000h,076h,0DCh,0C8h,0DCh,076h,000h ; Hex #E0 + Db 078h,0CCh,0CCh,0D8h,0CCh,0C6h,0CCh,000h ; Hex #E1 + Db 0FEh,0C6h,0C0h,0C0h,0C0h,0C0h,0C0h,000h ; Hex #E2 + Db 000h,000h,0FEh,06Ch,06Ch,06Ch,06Ch,000h ; Hex #E3 + Db 0FEh,0C6h,060h,030h,060h,0C6h,0FEh,000h ; Hex #E4 + Db 000h,000h,07Eh,0D8h,0D8h,0D8h,070h,000h ; Hex #E5 + Db 000h,000h,066h,066h,066h,066h,07Ch,0C0h ; Hex #E6 + Db 000h,076h,0DCh,018h,018h,018h,018h,000h ; Hex #E7 + Db 07Eh,018h,03Ch,066h,066h,03Ch,018h,07Eh ; Hex #E8 + Db 038h,06Ch,0C6h,0FEh,0C6h,06Ch,038h,000h ; Hex #E9 + Db 038h,06Ch,0C6h,0C6h,06Ch,06Ch,0EEh,000h ; Hex #EA + Db 00Eh,018h,00Ch,03Eh,066h,066h,03Ch,000h ; Hex #EB + Db 000h,000h,07Eh,0DBh,0DBh,07Eh,000h,000h ; Hex #EC + Db 006h,00Ch,07Eh,0DBh,0DBh,07Eh,060h,0C0h ; Hex #ED + Db 01Eh,030h,060h,07Eh,060h,030h,01Eh,000h ; Hex #EE + Db 000h,07Ch,0C6h,0C6h,0C6h,0C6h,0C6h,000h ; Hex #EF + Db 000h,0FEh,000h,0FEh,000h,0FEh,000h,000h ; Hex #F0 + Db 018h,018h,07Eh,018h,018h,000h,07Eh,000h ; Hex #F1 + Db 030h,018h,00Ch,018h,030h,000h,07Eh,000h ; Hex #F2 + Db 00Ch,018h,030h,018h,00Ch,000h,07Eh,000h ; Hex #F3 + Db 00Eh,01Bh,01Bh,018h,018h,018h,018h,018h ; Hex #F4 + Db 018h,018h,018h,018h,018h,0D8h,0D8h,070h ; Hex #F5 + Db 000h,018h,000h,07Eh,000h,018h,000h,000h ; Hex #F6 + Db 000h,076h,0DCh,000h,076h,0DCh,000h,000h ; Hex #F7 + Db 038h,06Ch,06Ch,038h,000h,000h,000h,000h ; Hex #F8 + Db 000h,000h,000h,018h,018h,000h,000h,000h ; Hex #F9 + Db 000h,000h,000h,018h,000h,000h,000h,000h ; Hex #FA + Db 00Fh,00Ch,00Ch,00Ch,0ECh,06Ch,03Ch,01Ch ; Hex #FB + Db 06Ch,036h,036h,036h,036h,000h,000h,000h ; Hex #FC + Db 078h,00Ch,018h,030h,07Ch,000h,000h,000h ; Hex #FD + Db 000h,000h,03Ch,03Ch,03Ch,03Ch,000h,000h ; Hex #FE + Db 000h,000h,000h,000h,000h,000h,000h,000h ; Hex #FF + 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 @@ +CODE SEGMENT BYTE PUBLIC 'CODE' + ASSUME CS:CODE,DS:CODE + +IF1 + %OUT EGA.CPI creation file + %OUT . + %OUT CP SRC files: + %OUT . + %OUT . CODE PAGE: 865 +ENDIF + +EGA865: DW LEN_865 ; SIZE OF ENTRY HEADER + DW POST_EGA865,0 ; POINTER TO NEXT HEADER + DW 1 ; DEVICE TYPE + DB "EGA " ; DEVICE SUBTYPE ID + DW 865 ; CODE PAGE ID + DW 3 DUP(0) ; RESERVED + DW OFFSET DATA865,0 ; POINTER TO FONTS +LEN_865 EQU ($-EGA865) ; + ; +DATA865:DW 1 ; CART/NON-CART + DW 3 ; # OF FONTS + DW LEN_D865 ; LENGTH OF DATA +D865: ; + DB 16,8 ; CHARACTER BOX SIZE + DB 0,0 ; ASPECT RATIO (UNUSED) + DW 256 ; NUMBER OF CHARACTERS + ; + INCLUDE 865-8X16.ASM ; + ; + DB 14,8 ; CHARACTER BOX SIZE + DB 0,0 ; ASPECT RATIO (UNUSED) + DW 256 ; NUMBER OF CHARACTERS + ; + INCLUDE 865-8X14.ASM ; + ; + DB 8,8 ; CHARACTER BOX SIZE + DB 0,0 ; ASPECT RATIO (UNUSED) + DW 256 ; NUMBER OF CHARACTERS + ; + INCLUDE 865-8X8.ASM ; + ; +LEN_D865 EQU ($-D865) ; + ; +POST_EGA865 EQU $ ; + ; +CODE ENDS ; + END ; + \ 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 @@ +CODE SEGMENT BYTE PUBLIC 'CODE' + ASSUME CS:CODE,DS:CODE + + DB 13,10 + DB "Microsoft MS-DOS (R) EGA Display Font File",13,10 +include copyrigh.inc + DB 1Ah + +CODE ENDS + END + 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 @@ +CODE SEGMENT BYTE PUBLIC 'CODE' + ASSUME CS:CODE,DS:CODE + +BEGIN: ORG 0 + +FNTHEAD:DB 0FFH,"FONT " ;FILE TAG + DB 8 DUP(0) ;RESERVED + DW 1 ;CNT OF POINTERS IN HEADER + DB 1 ;TYPE FOR INFO POINTER + DW OFFSET INFO,0 ;POINTER TO INFO IN FILE +INFO: DW 5 ;COUNT OF ENTRIES + +CODE ENDS + END + \ 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 @@ +cpi-head+ +437-CPI+ +850-CPI+ +860-CPI+ +863-CPI+ +865-CPI+ +COPYRIGH; + \ 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 @@ +#*********************** Makefile for Display\EGA ************************ + +inc =..\..\..\inc +dos =..\..\..\dos +msg =..\..\..\messages +hinc =..\..\..\h + +# +######################## Dependencies begin here ######################### +# + +all: ega.cpi + +cpi-head.obj: cpi-head.asm \ + makefile + +437-cpi.obj: 437-cpi.asm \ + 437-8x16.asm \ + 437-8x14.asm \ + makefile \ + 437-8x8.asm + +850-cpi.obj: 850-cpi.asm \ + 850-8x16.asm \ + 850-8x14.asm \ + makefile \ + 850-8x8.asm + +860-cpi.obj: 860-cpi.asm \ + 860-8x16.asm \ + 860-8x14.asm \ + makefile \ + 860-8x8.asm + +863-cpi.obj: 863-cpi.asm \ + 863-8x16.asm \ + 863-8x14.asm \ + makefile \ + 863-8x8.asm + +865-cpi.obj: 865-cpi.asm \ + 865-8x16.asm \ + 865-8x14.asm \ + makefile \ + 865-8x8.asm + +copyrigh.obj: copyrigh.asm $(inc)\copyrigh.inc \ + makefile + +ega.cpi: cpi-head.obj 437-cpi.obj 850-cpi.obj 860-cpi.obj \ + 863-cpi.obj 865-cpi.obj copyrigh.obj makefile ega.lnk \ + makefile + link @ega.lnk + exe2bin cpi-head.exe ega.cpi + 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 @@ + + PAGE ,132 + +IF1 + %OUT . ®F-PARSER.SRC¯ +ENDIF +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; +;; FILENAME: CPS Device Driver -- Font Parser +;; MODULE NAME: CPSFONT +;; TYPE: Font Parser Module +;; LINK PROCEDURE: Link CPSPMnn+CPSFONTn+PTRMSGn+CPSPInn into .EXE format. +;; CPSPM must be first. CPSPInn must be last. Everything +;; before CPSPInn will be resident. +;; INCLUDE FILES: +;; CPSPEQU.INC +;; Remarks : +;; +;; changes are made in stages : PTRSELLO, PTRSELHI, PTRLENLO, PTRLENHI +;; as for Display-type of DEVICE_ID, there will be no printer-type of +;; of DEVICE_TYPE. And these four stages are for the DEVICE_TYPE with +;; the value of printer-type. +;; +;; (most codes in the four stages are masked out as comments than real +;; codes to save spaces. Also mask out lines that contain the +;; following varaibles : +;; -- PTR_SEL_WORD +;; -- PTR_SELOB +;; -- PTR_SEHIB +;; -- PTR_LEN_WORD +;; -- PTR_LNLOB +;; -- PTR_LNHIB +;; -- PRE_FONT_P0 +;; -- PRE_FONT_P +;; -- FTB_SELECT +;; -- FTB_SELLEN +;; +;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +;INCLUDE CPSPEQU.INC ;; + ;; +STAT_DELETE EQU 08000H ; previous degignate deleted (DST) + ; STAT_DELETE : only for FIFO +STAT_NOFIND EQU 08008H ; codepage,device not found (DST) +STAT_DEVERR EQU 0800AH ; Device error (DST, IVK, QIV, QLS) +STAT_BADATA EQU 0800CH ; bad font file (DST) +STAT_BADDEN EQU 0800CH ; no DST (DEN) +STAT_TOMANY EQU 0800CH ; too manay codepages (DST) +STAT_DUPLCP EQU 0800CH ; too manay codepages (DST) +STAT_NOCPIV EQU 08007H ; no codepage designated/invoked +STAT_NOCP EQU 08007H ; no codepage designated/invoked + ; (IVK, QIV, QLS) +TYPE_DISPLAY EQU 01H ;; display type device +FLAG_RESTART EQU 000001H ;; bit 1 = restart the parsing + +FPKT EQU DS:[SI] ; +FTP EQU ES:[BX] ; + ; ( I=Input O=Output ) +FTBLK STRUC ; +FTB_LENGTH DW TYPE FTBLK ; (NOT TO BE CHANGED) +FTB_STATUS DW 0FFFFH ; (O) parsing compelte +FTB_TYPE DW 0 ; (O) +FTB_TID DB '........' ; (I) +FTB_CP DW 0FFFFH ; (I) +FTB_MOD DW 0 ; (O) +FTB_FONTS DW 0 ; (O) +FTB_ROWS DB 0 ;; (O) DISPLAY TYPE DEVICE +FTB_COLS DB 0 ;; (O) DISPLAY TYPE DEVICE +FTB_X DB 0 ;; (O) DISPLAY TYPE DEVICE +FTB_Y DB 0 ;; (O) DISPLAY TYPE DEVICE +FTB_COUNT DW 0 ;; (O) DISPLAY TYPE DEVICE +FTB_DLEFT DW 0 ; (O) =0, none to come +FTB_DLEN DW 0 ; (O) =0, not in this packet +FTB_DALO DW 0 ; (O) in the DOS "packet" buffer +FTB_DAHI DW 0 ; (O) " " " " " +TARGET_LO DW 0 ; internal registers +TARGET_HI DW 0 ; internal registers +FTBLK ENDS ; + ; +FBUFS STRUC ; +FLAG DW 0 ; +BUFFER_LEN DW 0 ; +BUFFER_ADDR DD 0 ; +NUM_FTBLK DW 0 ; no. of FTBKL entries +FBUFS ENDS ; + ; STATUS : (in FTB_STATUS) +FSTAT_COMPLETE EQU 0FFFFH ; parsing compeleted. (good status) +FSTAT_FONT EQU 0FFFEH ; font data is defined and returned +FSTAT_FOUND EQU 0FFFDH ; informations including font-length +FSTAT_MATCH EQU 0FFFCH ; font header matches FTBLK +FSTAT_SEARCH EQU 0FFFBH ; seraching for header & font +FSTAT_BOTTOM EQU 0FFF0H ; below this are the DOS_STATUS. + ; +;; the FSTAT with value lower than 0FFF0H is to be returned to the DOS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +PUBLIC FTABLE,FONT_PARSER ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; +;; ************************************ +;; ** ** +;; ** Resident Code ** +;; ** ** +;; ************************************ +;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; +;; FONT_PARSER data +;; +;; -- Interface table : FTABLE +;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +FTABLE: FBUFS <0FFFFH,,,> ;; for temporary testing +FTB1 FTBLK <,,,,,,,,,,,,> ;; -- at most 12 entries +FTB2 FTBLK <,,,,,,,,,,,,> ;; +FTB3 FTBLK <,,,,,,,,,,,,> ;; +FTB4 FTBLK <,,,,,,,,,,,,> ;; +FTB5 FTBLK <,,,,,,,,,,,,> ;; +FTB6 FTBLK <,,,,,,,,,,,,> ;; +FTB7 FTBLK <,,,,,,,,,,,,> ;; +FTB8 FTBLK <,,,,,,,,,,,,> ;; +FTB9 FTBLK <,,,,,,,,,,,,> ;; +FTBa FTBLK <,,,,,,,,,,,,> ;; +FTBb FTBLK <,,,,,,,,,,,,> ;; +FTBc FTBLK <,,,,,,,,,,,,> ;; + ;; +FP_ERROR DW 0000H ;; internal error register + ;; + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; the followings are bytes accumulated + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +FTAG_LEN EQU 8 ;; FILE TAGE in the font file header +FTAG_COUNT DW 0000H ;; + ;; +FTAG_PATTERN LABEL BYTE ;; + DB 0FFH ;; + DB 'FONT ' ;; + ;; + ;; + ;; POINTER in the font file header +fptr_LOW LABEL WORD ;; +fptr_LOL DB 00H ;; NEXT +fptr_LOH DB 00H ;; +fptr_HIGH LABEL WORD ;; +fptr_HIL DB 00H ;; +fptr_HIH DB 00H ;; + ;; + ;; + ;; +ENTRY_WORD LABEL WORD ;; +ENTRY_LOB DB 00H ;; ENTRY COUNT +ENTRY_HIB DB 00H ;; +NEXT_LOW LABEL WORD ;; +NEXT_LOL DB 00H ;; NEXT +NEXT_LOH DB 00H ;; +NEXT_HIGH LABEL WORD ;; +NEXT_HIL DB 00H ;; +NEXT_HIH DB 00H ;; +TYPE_WORD LABEL WORD ;; +TYPE_LOB DB 00H ;; TYPE +TYPE_HIB DB 00H ;; +TID_CNT DW 00000H ;; TYPEID COUNT(0 to 8) +TYPE_ID : DB ' ' ;; TYPEID +CPG_WORD LABEL WORD ;; +CPG_LOB DB 00H ;; CODE PAGE +CPG_HIB DB 00H ;; +FONT_LOW LABEL WORD ;; +FONT_LOL DB 00H ;; FONT ADDRESS +FONT_LOH DB 00H ;; +FONT_HIGH LABEL WORD ;; +FONT_HIL DB 00H ;; +FONT_HIH DB 00H ;; +;; the followings are contained in the font-block in the exact order & length +MOD_WORD LABEL WORD ;; +MOD_LOB DB 00H ;; MODIFIER +MOD_HIB DB 00H ;; +FONTS_WORD LABEL WORD ;; +FONTS_LOB DB 00H ;; FONTS +FONTS_HIB DB 00H ;; +FDLEN_WORD LABEL WORD ;; +FDLEN_LOB DB 00H ;; FONT DATA LENGTH +FDLEN_HIB DB 00H ;; +PRE_FONT_ND EQU ($-MOD_WORD) ;; used to update target for font data + ;; to follow. -- for NON-DISPLAY +;DISP_ROWS DB 00H ;; DISPLAY's parameters : +;DISP_COLS DB 00H ;; BOX SIZE +;DISP_X DB 00H ;; ASPECT RATIO +;DISP_Y DB 00H ;; +;COUNT_WORD LABEL WORD ;; NO. OF DISPLAY CHARACTERS +;COUNT_LOB DB 00H ;; +;COUNT_HIB DB 00H ;; +;PRE_FONT_D EQU ($-MOD_WORD) ;; used to update target for font data + ;; to follow. -- for DISPLAY + ;; +;PTR_SEL_WORD LABEL WORD ;; +;PTR_SELOB DB 00H ;; +;PTR_SEHIB DB 00H ;; +;PRE_FONT_P0 EQU ($-PTR_SELOB+PRE_FONT_ND) ;; to update target for font data + ;; to follow -- for PRINTER with + ;; selection type = 0. + ;; +;PTR_LEN_WORD LABEL WORD ;; +;PTR_LNLOB DB 00H ;; +;PTR_LNHIB DB 00H ;; +;PRE_FONT_P EQU ($-PTR_SELOB+PRE_FONT_ND) ;; to update target for font data + ;; to follow -- for PRINTER with + ;; selection type <> 0. + ;; + ;; +;; also update STAGE_CASES and indexing constants + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; the stage the parsing is in : ;;;;; + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +STAGE_CASES LABEL WORD ;; the stage the parsing is in : + ;; + ;; *** INDEXED BY STAGE-INDEX + ;; + DW OFFSET ENTRYLO ;; 0 + DW OFFSET ENTRYHI ;; 1 + DW OFFSET NEXTLOL ;; 2 + DW OFFSET NEXTLOH ;; 3 + DW OFFSET NEXTHIL ;; 4 + DW OFFSET NEXTHIH ;; 5 + DW OFFSET TYPELO ;; 6 + DW OFFSET TYPEHI ;; 7 + DW OFFSET TYPEIDS ;; 8 + DW OFFSET CPGLO ;; 9 + DW OFFSET CPGHI ;; A + DW OFFSET FONTLOL ;; B + DW OFFSET FONTLOH ;; C + DW OFFSET FONTHIL ;; D + DW OFFSET FONTHIH ;; E + DW 00H ;; MATCH case -- end of SEARCH stages + DW 00H ;; SCAN case -- before PRE-FOUND stage + DW OFFSET MODLO ;; 11 + DW OFFSET MODHI ;; 12 + DW OFFSET FONTSLO ;; 13 + DW OFFSET FONTSHI ;; 14 + DW OFFSET FDLENLO ;; 15 + DW OFFSET FDLENHI ;; 16 -- lead to FONT case,NON- DISPLAY + DW OFFSET DSPROWS ;; 17 -- DISPLAY only + DW OFFSET DSPCOLS ;; 18 + DW OFFSET DSPX ;; 19 + DW OFFSET DSPY ;; 1A + DW OFFSET DSPCOUNTLO ;; 1B + DW OFFSET DSPCOUNTHI ;; 1C -- lead to FONT case, DISPLAY + DW OFFSET PTRSELLO ;; 1D -- PRINTER only + DW OFFSET PTRSELHI ;; 1E + DW OFFSET PTRLENLO ;; 1F + DW OFFSET PTRLENHI ;; 20 -- lead to FONT case, PRINTER + DW 00H ;; FOUND case + DW 00H ;; GET_FONT case + DW 00H ;; PASS special stage + DW OFFSET FILETAG ;; 24 + DW OFFSET fptrLOL ;; 25 + DW OFFSET fptrLOH ;; 26 + DW OFFSET fptrHIL ;; 27 + DW OFFSET fptrHIH ;; 28 + DW 00H ;; FPTR_SKIP_CASE + ;; + ;; The followings are individual stage +STAGE_MAX EQU ($-STAGE_CASES)/2 ;; number of stages + ;; + ;; STAGE-INDEX + ;; + ;; **** INDEX TO STAGE_CASES **** +ENTRY_LOX EQU 00H ;; +ENTRY_HIX EQU 01H ;; +NEXT_LOLX EQU 02H ;; NEXT +NEXT_LOHX EQU 03H ;; +NEXT_HILX EQU 04H ;; +NEXT_HIHX EQU 05H ;; +TYPE_LOBX EQU 06H ;; TYPE +TYPE_HIBX EQU 07H ;; +TYPE_IDX EQU 08H ;; TYPEID +CPG_LOBX EQU 09H ;; CODE PAGE +CPG_HIBX EQU 0AH ;; +FONT_LOLX EQU 0BH ;; FONT ADDRESS +FONT_LOHX EQU 0CH ;; +FONT_HILX EQU 0DH ;; +FONT_HIHX EQU 0EH ;; + ;; ------------------------------ +MATCHX EQU 0FH ;; MATCH is the end of SEARCH's stages +SCANX EQU 10H ;; SCANX is before the PRE-FOUND stages + ;; ------------------------------ +MOD_LOBX EQU 11H ;; MODIFIER +MOD_HIBX EQU 12H ;; +FONTS_LOBX EQU 13H ;; FONTS +FONTS_HIBX EQU 14H ;; +FDLEN_LOBX EQU 15H ;; FONT DATA LENGTH +FDLEN_HIBX EQU 16H ;; +DISP_ROWSX EQU 17H ;; DISPLAY -- CHAR. SIZE +DISP_COLSX EQU 18H ;; +DISP_XX EQU 19H ;; DISPLAY -- ASPECT RATIO +DISP_YX EQU 1AH ;; +COUNT_LOBX EQU 1BH ;; DISPLAY -- COUNT +COUNT_HIBX EQU 1CH ;; +PTRSELLOX EQU 1DH ;; +PTRSELHIX EQU 1EH ;; +PTRLENLOX EQU 1FH ;; +PTRLENHIX EQU 20H ;; + ;; + ;; ------------------------------ +FOUNDX EQU 21H ;; GET_FX is the end of PRE-FOUND stage +GET_FX EQU 22H ;; + ;; ------------------------------ +PASSX EQU 23H ;; see pass_brk table + ;; ------------------------------ +FTAGX EQU 24H ;; RESTART ==> FILE TAG + ;; +fptr_LOLX EQU 25H ;; POINTER in font file header +fptr_LOHX EQU 26H ;; +fptr_HILX EQU 27H ;; +fptr_HIHX EQU 28H ;; --------------------------------- + ;; +fptr_SKIPX EQU 29H ;; ==> ENTRY_LOX + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; PASS -- to skip some bytes ;;;;;; + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; the PASS mechanism is used to skip + ;; a number of bytes between two fields + ;; The numbers are tabulated in + ;; PASS_BRK table in the accumulative + ;; sum. The PASS_POSTX(and PASS_POSTXX) + ;; are used to tell what is the stage + ;; after all the bytes have skipped. + ;; +PASS_POSTX DW STAGE_MAX ;; the stage after pass-stage + ;; +FILE_OFFSET EQU 0BH ;; spaces to be skipped in font file : + ;; ( after TAG, before POINTER) + ;; +PASS_CNT DW 0 ;; +PASS_BRK LABEL WORD ;; + DW FILE_OFFSET ;; skip in the font file header + DW FILE_OFFSET+2 ;; pass header-length, needs to reset + ;; PASS_CNT for each of the font_header + DW FILE_OFFSET+8 ;; pass header-reserved bytes +PASS_INDX EQU ($-PASS_BRK)/2 ;; + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; the control variables : ;;;;;;;; + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +STAGE DW STAGE_MAX ;; of the STAGE-INDEX + ;; +Pre_font_len DW 00000H ;; no. of bytes before the FONT DATA + ;; + ;; +COUNT_LO DW 00000H ;; no. of bytes parsed so far +COUNT_hI DW 00000H ;; + ;; +HIT_LO DW 00000H ;; the next byte that is addressed by : +HIT_HI DW 00000H ;; either NEXT or TARGET in FTBLK. + ;; +HIT_FLAG DW 00000H ;; IF ZERO, the NEXT is approaching +HIT_BX DW 00000H ;; where FTB is found for nearest hit + ;; +NUM_FTB DW 00000H ;; as defined in the FP_BUFFER + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; +;; FONT_PARSER routine +;; +;; -- to be called at every packet received to extract informations +;; from Font File on byte basis. +;; +;; -- Interface though FTABLE +;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +FONT_PARSER PROC ;; + PUSH DS ;; save all registers Revised + PUSH ES ;; + PUSH AX ;; + PUSH BX ;; + PUSH CX ;; + PUSH DX ;; + PUSH DI ;; + PUSH SI ;; + ;; BP isn't used, so it isn't saved + LEA BX,FTABLE ;; + PUSH CS ;; + POP ES ;; ES:[BX] + LDS SI,FTP.BUFFER_ADDR ;; DS:[SI] + MOV CX,FTP.BUFFER_LEN ;; CX = length of packet + MOV DX,FTP.NUM_FTBLK ;; DX = number of FTB + MOV cs:num_ftb,DX ;; + AND DX,DX ;; + JNZ VALID_BUFFER ;; + MOV cs:fp_error,0020H ;; ERROR 0020H + JMP FP_RET ;; +VALID_BUFFER : ;; + MOV AX,FTP.FLAG ;; + AND AX,FLAG_RESTART ;; + Jnz has_RESTART ;; + JMP NO_RESTART ;; + ;; + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +has_restart : ;; + PUSH BX ;; reset all the output fields + ADD BX,TYPE FBUFS ;; FTP = FONT BLOCK + XOR AX,AX ;; + ;; + MOV cs:ftag_count,AX ;; + MOV cs:fptr_low,AX ;; + MOV cs:fptr_high,AX ;; + MOV cs:pre_font_len,AX ;; + MOV cs:count_lo,AX ;; + MOV cs:count_hi,AX ;; + MOV cs:next_low,AX ;; + MOV cs:next_high,AX ;; + MOV cs:hit_lo,AX ;; + MOV cs:hit_hi,AX ;; + MOV cs:hit_flag,AX ;; + MOV cs:pass_cnt,AX ;; + MOV cs:pass_postx,STAGE_MAX ;; + ;; + MOV cs:stage,STAGE_MAX ;; + ;; +RESET_FTB : ;; + MOV FTP.FTB_STATUS,FSTAT_SEARCH + MOV FTP.FTB_TYPE,AX ;; + MOV FTP.FTB_MOD,AX ;; + MOV FTP.FTB_FONTS,AX ;; + MOV FTP.FTB_ROWS,AL ;; + MOV FTP.FTB_COLS,AL ;; + MOV FTP.FTB_X,AL ;; + MOV FTP.FTB_Y,AL ;; + MOV FTP.FTB_COUNT,AX ;; + MOV FTP.FTB_DLEFT,AX ;; + MOV FTP.FTB_DLEN,AX ;; + MOV FTP.FTB_DALO,AX ;; + MOV FTP.FTB_DAHI,AX ;; + MOV FTP.TARGET_LO,AX ;; + MOV FTP.TARGET_HI,AX ;; + ;; + ADD BX, TYPE FTBLK ;; + ;; + DEC DX ;; + AND DX,DX ;; + JNZ RESET_FTB ;; + ;; + POP BX ;; +NO_RESTART : ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; any FTBLKs have their data all + ;; returned ? if so set their status + ;; from FOUND to COMPLETE + PUSH BX ;; + ADD BX,TYPE FBUFS ;; FTP = FONT BLOCK + ;; + MOV DX,cs:num_ftb ;; + ;; +SET_COMPLETE : ;; + MOV AX,FTP.FTB_STATUS ;; + CMP AX,FSTAT_FONT ;; + JNE SET_NEXT ;; + ;; + MOV AX,FTP.FTB_DLEFT ;; + AND AX,AX ;; + JNZ SET_NEXT ;; + ;; + MOV FTP.FTB_STATUS,FSTAT_COMPLETE + ;; +SET_NEXT : ;; + ;; + ADD BX,TYPE FTBLK ;; + ;; + DEC DX ;; + AND DX,DX ;; + JNZ SET_COMPLETE ;; + ;; + POP BX ;; + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ADD BX,TYPE FBUFS ;; FTP = FONT BLOCK + ;; + PUSH CX ;; STACK 1 = CX +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; +;; DO WHILE CX is not zero : +;; +;; -- on each loop, the CX, COUNTs are updated +;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; + ;; +FTB_LOOP : ;; + POP AX ;; STACK -1 + SUB AX,CX ;; + ADD cs:count_lo,AX ;; + JNC NO_CARRY ;; + ADD cs:count_hi,1000H ;; +NO_CARRY : ;; + PUSH CX ;; STACK 1 = CX + AND CX,CX ;; + JNZ FTB_CONT ;; + JMP FTB_LPEND ;; + ;; DO CASES : +FTB_CONT : ;; ========== + ;; + MOV AX,cs:stage ;; + ;; + CMP AX,STAGE_MAX ;; + JNE FTB_010 ;; + JMP START_CASE ;; ** RESTART ** + ;; +FTB_010 : ;; + CMP AX,MATCHX ;; + JAE FTB_020 ;; + JMP SEARCH_CASE ;; ** SEARCH ** + ;; +FTB_020 : ;; + CMP AX,MATCHX ;; + JNE FTB_030 ;; + JMP MATCH_CASE ;; ** MATCH ** + ;; +FTB_030 : ;; + CMP AX,SCANX ;; + JNE FTB_040 ;; + JMP SCAN_CASE ;; ** SCAN ** + ;; +FTB_040 : ;; + CMP AX,FOUNDX ;; + JAE FTB_050 ;; + JMP PRE_FOUND_CASE ;; ** PRE-FOUND ** + ;; +FTB_050 : ;; + CMP AX,FOUNDX ;; + JNE FTB_060 ;; + JMP FOUND_CASE ;; ** FOUND ** + ;; +FTB_060 : ;; + CMP AX,GET_FX ;; + JNE FTB_070 ;; + JMP GETFONT_CASE ;; ** GET_FONT ** + ;; +FTB_070 : ;; + CMP AX,PASSX ;; + JNE FTB_080 ;; + JMP PASS ;; ** PASS ** + ;; +FTB_080 : ;; + CMP AX,FPTR_SKIPX ;; + JAE FTB_090 ;; + JMP SEARCH_CASE ;; ** SEARCH ** + ;; +FTB_090 : ;; + CMP AX,FPTR_SKIPX ;; + JNE FTB_FFF ;; + JMP FPTR_SKIP_CASE ;; ** SEARCH ** + ;; +FTB_FFF : ;; + MOV FTP.FTB_STATUS,STAT_DEVERR + JMP FTB_LPEND ;; ** DEVICE ERROR ** + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; +;; at the entry of each STAGES /CASES +;; +;; -- DS:[SI] (FPKT) points to PACKET, of DOS's buffer +;; -- CX remaining packet length +;; -- ES:[BX] points to the first FTBLK +;; -- COUNT_LO, COUNT_HI, upto but and including the address pointed by FPKT +;; +;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +;============================================================================ +START_CASE : ;; pass the FILE leading bytes + ;; + MOV cs:ftag_count,0 ;; + MOV cs:stage,ftagx ;; + JMP FTB_LOOP ;; + ;; +;============================================================================= +FPTR_SKIP_CASE : ;; skip until the ENTRY pointed by + ;; POINTER (in FPTR) is reached. + ;; + ;; ************** + MOV AX,cs:fptr_low ;; * HIT = FPTR * + MOV cs:hit_lo,AX ;; ************** + MOV DX,cs:fptr_high ;; + MOV cs:hit_hi,DX ;; + ;; + CMP AX,0FFFFH ;; + JNE FPTR_SKIP_VALID ;; + CMP DX,0FFFFH ;; + JNE FPTR_SKIP_VALID ;; + ;; + MOV FTP.FTB_STATUS,STAT_BADATA ;; returned at the first FTBLK + JMP FPTR_SKIP_MORE ;; + ;; +FPTR_SKIP_VALID : ;; + ;; normalised HIT_HI, HIT_LO + MOV AX,DX ;; + AND AX,00FFFH ;; + PUSH CX ;; + MOV CX,4 ;; + SHL AX,CL ;; + POP CX ;; + AND DX,0F000H ;; + ADD AX,cs:hit_lo ;; + JNC NO_CARRY10 ;; + ADD DX,01000H ;; +NO_CARRY10: ;; + MOV cs:hit_lo,AX ;; + MOV cs:hit_hi,DX ;; + ;; ************************** + ;; * compare FPTR and COUNT * + ;; ************************** + ;; DX:AX = HIT_HI:HIT_LO (normalised) + ;; + SUB AX,cs:count_lo ;; + Jnc more_fptrlo ;; + sub dx,01000h ;; + jc fptr_bad ;; + ;; +more_fptrlo : ;; + SUB DX,cs:count_hi ;; + JC fptr_BAD ;; + ;; + INC AX ;; COUNT can be at the HIT, then AX=0 + JNC NO_CARRY11 ;; INC AX to make AX comparable to CX + ADD DX,01000H ;; i.e. AX = offset + 1 + ;; +NO_CARRY11: ;; + CMP AX,CX ;; + JA fptr_skip_more ;; AX > CX, whole CX to be skipped + ;; + PUSH DX ;; normalise dx:ax + AND DX,00FFFH ;; + PUSH CX ;; + MOV CX,4 ;; + SHL DX,CL ;; + POP CX ;; + ADD AX,DX ;; + POP DX ;; + JNC NO_CARRY13 ;; + ADD DX,01000H ;; +NO_CARRY13: ;; + AND DX,0F000H ;; + ;; + PUSH AX ;; + PUSH DX ;; STACK +1 : normalosed DX:AX + SUB AX,CX ;; + JNC NO_BORROW11 ;; + SUB DX,1000H ;; + JC fptr_MORE_CXp ;; dx:ax < cx +NO_BORROW11: ;; + ;; dx:ax >= cx + AND AX,AX ;; + JNE fptr_skip_MOREP ;; + AND DX,DX ;; + JNE fptr_skip_MOREP ;; + ;; dx:ax = cx, or + ;; offset + 1 = CX + ;; + ;; ************************************ + ;; * POINTER is within the current CX * + ;; ************************************ +fptr_MORE_CXP : ;; + POP DX ;; + POP AX ;; STACK -1 + ;; +fptr_MORE_CX : ;; DX = 0,to have more CX than offset+1 + DEC AX ;; = offset : 0 and above + SUB CX,AX ;; + ADD SI,AX ;; where the first byte is + ;; + MOV cs:stage,entry_lox ;; ENTRIES in the font file + ;; + JMP FTB_LOOP ;; ****** RETURN ******* + ;; + ;; *********************************** + ;; * more to skip ==> FPTR_SKIP_CASE * + ;; *********************************** +fptr_skip_morep: ;; + POP DX ;; + POP AX ;; STACK -1 + ;; +fptr_skip_more : ;; + ADD SI,CX ;; + SUB CX,CX ;; + JMP FTB_LOOP ;; ****** RETURN ***** + ;; + ;; *********************************** + ;; * bad POINTER in font file header * + ;; *********************************** + ;; +fptr_bad : ;; + MOV cs:fptr_low,0FFFFH ;; + MOV cs:fptr_high,0FFFFH ;; + ;; + MOV FTP.FTB_STATUS,STAT_BADATA ;; returned at the first FTBLK + ;; + JMP FPTR_SKIP_MORE ;; + ;; +;============================================================================= +SEARCH_CASE : ;; + ;; still looking for header to match + ;; the input : codepage and typeid + ;; + MOV DI,cs:stage ;; + ;; + ADD DI,DI ;; double to index to WORD-offset + ;; + JMP CS:STAGE_CASES[DI] ;; call routine to process the stage + ;; + ;; +;=========================================================================== +MATCH_CASE : ;; + ;; + PUSH BX ;; + MOV DX,cs:num_ftb ;; + ;; + ;; +MATCH_LOOP : ;; + MOV AX,FTP.FTB_STATUS ;; + CMP AX,FSTAT_SEARCH ;; + JE MATCH_SEARCH ;; + JMP MATCH_NEXT ;; + ;; +MATCH_SEARCH : ;; + MOV AX,FTP.FTB_CP ;; check the FTB with SEARCH status + CMP AX,cs:cpg_word ;; + JNE MATCH_MORE ;; + PUSH DS ;; code page matched + PUSH SI ;; + PUSH CX ;; + ;; + PUSH CS ;; + POP DS ;; + MOV SI,OFFSET TYPE_ID ;; + LEA DI,[BX].FTB_TID ;; + MOV CX,8 ;; + REPE CMPSB ;; + ;; + POP CX ;; + POP SI ;; + POP DS ;; + ;; + JNE MATCH_MORE ;; + ;; MATCH !!!!! (type_id matched) + MOV FTP.FTB_STATUS,FSTAT_MATCH + MOV AX,cs:type_word ;; + MOV FTP.FTB_TYPE,AX ;; + MOV AX,cs:font_low ;; + MOV FTP.TARGET_LO,AX ;; + MOV AX,cs:font_high ;; + MOV FTP.TARGET_HI,AX ;; + ;; + JMP MATCH_NEXT ;; + ;; +MATCH_MORE : ;; if this is the last rounf ? + ;; + MOV AX,cs:next_low ;; NEXT = FFFF:FFFF means no more + CMP AX,-1 ;; header to come. + JNE MATCH_NEXT ;; + ;; + MOV AX,cs:next_high ;; + CMP AX,-1 ;; + JNE MATCH_NEXT ;; + ;; + MOV FTP.FTB_STATUS,STAT_NOFIND ;; ERROR : no match + ;; +MATCH_NEXT : ;; + ADD BX,FTP.FTB_LENGTH ;; + DEC DX ;; + AND DX,DX ;; + JZ MATCH_ALL ;; + JMP MATCH_LOOP ;; + ;; +MATCH_ALL : ;; + MOV cs:stage,SCANX ;; + ;; +MATCH_DONE : ;; + POP BX ;; + JMP FTB_LOOP ;; + ;; +;=========================================================================== +SCAN_CASE : ;; + ;; ********************************** + ;; * determine whether it the font * + ;; * data(TARGET),or the next font * + ;; * header(NEXT) that is approaching + ;; ********************************** + ;; + MOV AX,cs:next_low ;; + MOV cs:hit_lo,AX ;; + MOV AX,cs:next_high ;; + MOV cs:hit_hi,AX ;; + XOR AX,AX ;; + MOV cs:hit_flag,AX ;; + ;; + MOV DI,cs:hit_hi ;; normalised HIT_HI, HIT_LO + MOV AX,DI ;; + AND AX,00FFFH ;; + PUSH CX ;; + MOV CX,4 ;; + SHL AX,CL ;; + POP CX ;; + AND DI,0F000H ;; + ADD AX,cs:hit_lo ;; + JNC NO_CARRY2 ;; + ADD DI,01000H ;; +NO_CARRY2 : ;; + MOV cs:hit_lo,AX ;; + MOV cs:hit_hi,DI ;; + ;; + MOV DX,cs:num_ftb ;; + ;; + PUSH BX ;; +SCAN_LOOP : ;; + MOV AX,FTP.FTB_STATUS ;; + CMP AX,FSTAT_MATCH ;; + JNE SCAN_NEXT ;; + ;; + ;; + MOV DI,FTP.TARGET_HI ;; NORMALISED TARGET + MOV AX,DI ;; + AND AX,00FFFH ;; + PUSH CX ;; + MOV CX,4 ;; + SHL AX,CL ;; + POP CX ;; + AND DI,0F000H ;; + ADD AX,FTP.TARGET_LO ;; + JNC NO_CARRY1 ;; + ADD DI,01000H ;; +NO_CARRY1 : ;; DI:AX = NORMALISED TARGET + ;; + ;; ** compare the TARGET and the NEXT + ;; + CMP DI,cs:hit_hi ;; + JA SCAN_NEXT ;; + ;; + JE SCAN_EQU ;; + JMP NEAR_FONT ;; + ;; +SCAN_EQU : ;; + CMP AX,cs:hit_lo ;; + JA SCAN_NEXT ;; + JE SCAN_ERROR_CHK ;; + ;; ********************************** + ;; * the font data is approaching * + ;; ********************************** +NEAR_FONT : ;; + MOV cs:hit_flag,-1 ;; + MOV cs:hit_lo,AX ;; + MOV cs:hit_hi,DI ;; + MOV cs:hit_bx,BX ;; used for BAD_BX and in FOUND_CASE + JMP SCAN_NEXT ;; + ;; + ;; ********************************** + ;; * the NEXT header is approaching * + ;; ********************************** +SCAN_ERROR_CHK : ;; + MOV AX,cs:hit_flag ;; + AND AX,AX ;; + JNZ SCAN_NEXT ;; + MOV FTP.FTB_STATUS,STAT_BADATA ;; next header and font cannot be the + ;; same + ;; +SCAN_NEXT : ;; + DEC DX ;; + AND DX,DX ;; + JZ SCAN_DONE ;; + ;; + ADD BX,FTP.FTB_LENGTH ;; + JMP SCAN_LOOP ;; ** is there any closer font data ? + ;; + ;; ************************************ + ;; * the HIT is either font data(TARGET + ;; * or the font block (NEXT). * + ;; ************************************ +SCAN_DONE : ;; + POP BX ;; + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + MOV DX,cs:hit_hi ;; HIT_FLAG, HIT_LO, HIT_HI defined + MOV AX,cs:hit_lo ;; + ;; + CMP AX,0FFFFH ;; + JNE NOT_FFFF_HIT ;; + CMP DX,0FFFFH ;; + JNE NOT_FFFF_HIT ;; + JMP SCAN_MORE ;; stage remained as SCAN, discard data + ;; +NOT_FFFF_HIT : ;; + ;; DX:AX = HIT_HI:HIT_LO (normalised) + SUB AX,cs:count_lo ;; + JNC NO_BORROW ;; + SUB DX,01000H ;; + JC SCAN_BAD ;; +NO_BORROW: ;; + SUB DX,cs:count_hi ;; + JC SCAN_BAD ;; + ;; + INC AX ;; COUNT can be at the HIT, then AX=0 + JNC NO_CARRYX ;; INC AX to make AX comparable to CX + ADD DX,01000H ;; i.e. AX = offset + 1 + ;; +NO_CARRYX : ;; + CMP AX,CX ;; + JA SCAN_MORE ;; + ;; + PUSH DX ;; + AND DX,00FFFH ;; + PUSH CX ;; + MOV CX,4 ;; + SHL DX,CL ;; + POP CX ;; + ADD AX,DX ;; + POP DX ;; + JNC NO_CARRY3 ;; + ADD DX,01000H ;; +NO_CARRY3 : ;; + AND DX,0F000H ;; + ;; + ;; + PUSH AX ;; + PUSH DX ;; + SUB AX,CX ;; + JNC NO_BORROW1 ;; + SUB DX,1000H ;; + JC MORE_CXp ;; +NO_BORROW1 : ;; + ;; dx:ax >= cx + AND AX,AX ;; + JNE SCAN_MOREP ;; + AND DX,DX ;; + JNE SCAN_MOREP ;; + ;; + ;; offset + 1 = CX + ;; +MORE_CXP : ;; + POP DX ;; + POP AX ;; + ;; +MORE_CX : ;; DX = 0,to have more CX than offset+1 + DEC AX ;; = offset : 0 and above + SUB CX,AX ;; + ADD SI,AX ;; where the first byte is + MOV AX,cs:hit_flag ;; + AND AX,AX ;; + JE NEXT_REACHED ;; + ;; + MOV cs:stage,MOD_LOBX ;; font-data reached, + ;; + JMP FTB_LOOP ;; ****** RETURN ******* + ;; +NEXT_REACHED : ;; + MOV cs:stage,PASSX ;; + MOV cs:pass_postx,next_lolX ;; + MOV cs:pass_cnt,FILE_OFFSET ;; + ;; + ;; + JMP FTB_LOOP ;; ****** RETURN ******* + ;; + ;; *********************************** +SCAN_MOREP : ;; * scan more FTBLK for the nearest * + ;; * font data * + ;; *********************************** + POP DX ;; + POP AX ;; + ;; +SCAN_MORE : ;; + ADD SI,CX ;; + SUB CX,CX ;; + JMP FTB_LOOP ;; more SCAN stage + ;; +SCAN_BAD: ;; ************************* + MOV AX,cs:hit_flag ;; * scan is bad * + AND AX,AX ;; ************************* + JNZ BAD_BX ;; + MOV AX,-1 ;; NEXT is pointing backwards + MOV cs:next_low,AX ;; + MOV cs:next_high,AX ;; no more NEXT + MOV FTP.FTB_STATUS,STAT_BADATA ;; returned at the first FTBLK + JMP FTB_LOOP ;; + ;; +BAD_BX : ;; + PUSH BX ;; FONT is pointing backwards + MOV BX,cs:hit_bx ;; + MOV FTP.FTB_STATUS,STAT_BADATA + POP BX ;; + JMP FTB_LOOP ;; + ;; +;=========================================================================== +PRE_FOUND_CASE : ;; + ;; extract informations from the font + ;; block until font_length is defined + ;; + MOV DI,cs:stage ;; + ;; + ADD DI,DI ;; double to index to WORD-offset + ;; + JMP CS:STAGE_CASES[DI] ;; call routine to process the stage + ;; +;=========================================================================== +FOUND_CASE : ;; + MOV DI,OFFSET FTB_LOOP ;; as FOUND has two places to return to + PUSH DI ;; +;=========================================================================== +FOUND_DO : ;; + ;; define informations into FTBLK of + ;; HIT_BX defined in the SCAN case + PUSH BX ;; + MOV BX,cs:hit_bx ;; + ;; FTBLK : + MOV AX,cs:mod_word ;; + MOV FTP.FTB_MOD,AX ;; + MOV AX,cs:fonts_word ;; + MOV FTP.FTB_FONTS,AX ;; + ;; + MOV AX,cs:fdlen_word ;; + MOV FTP.FTB_DLEFT,AX ;; + MOV FTP.FTB_DLEN,0 ;; + MOV FTP.FTB_DALO,0 ;; + MOV FTP.FTB_DAHI,0 ;; + ;; + MOV FTP.FTB_STATUS,FSTAT_FOUND + ;; +; CMP FTP.FTB_TYPE,TYPE_DISPLAY; +; JNE CHECK_PTR_TYPE ;; +; CMP cs:pre_font_len,PRE_FONT_D ;; +; JNE DISPLAY_BAD ;; +; JMP DISPLAY_DONE ;; +; ;; +;CHECK_PTR_TYPE : ;; +; CMP FTP.FTB_TYPE,TYPE_PRINTER; +; JNE SET_STAGE ;; +; CMP cs:ptr_sel_word,0 ;; +; JNE PRINTER_HAS_SEL ;; +; CMP cs:pre_font_len,PRE_FONT_P0;; +; JNE PRINTER_BAD ;; +; JMP PRINTER_DONE ;; +; ;; +;PRINTER_HAS_SEL : ;; +; CMP cs:pre_font_len,PRE_FONT_P ;; +; JNE PRINTER_BAD ;; +; JMP PRINTER_DONE ;; +; ;; +;DISPLAY_BAD : ;; +; ;; +; MOV FTP.FTB_STATUS,STAT_BADATA ;the FDLEN_WORD should be 0. +; ;; +;DISPLAY_DONE : ;; +; MOV AL,cs:disp_rows ;; +; MOV FTP.FTB_ROWS,AL ;; +; MOV AL,cs:disp_cols ;; +; MOV FTP.FTB_COLS,AL ;; +; MOV AL,cs:disp_x ;; +; MOV FTP.FTB_X,AL ;; +; MOV AL,cs:disp_y ;; +; MOV FTP.FTB_Y,AL ;; +; MOV AX,cs:count_word ;; +; MOV FTP.FTB_COUNT,AX ;; +; JMP SET_STAGE ;; + ;; +;PRINTER_BAD : ;; +; ;; +; MOV FTP.FTB_STATUS,STAT_BADATA ;the FDLEN_WORD should be 0. +; ;; +;PRINTER_DONE : ;; +; MOV AX,cs:ptr_sel_word ;; +; MOV FTP.FTB_SELECT,AX ;; +; MOV AX,cs:ptr_len_word ;; +; MOV FTP.FTB_SELLEN,AX ;; +; ;; +;SET_STAGE : ;; STAGE : + MOV AX,cs:fdlen_word ;; if no font data to follow + AND AX,AX ;; + JNZ GET_FDATA ;; + MOV cs:stage,SCANX ;; then scan for next header or font + JMP FONT_RET ;; + ;; +GET_FDATA : ;; update the moving target + MOV cs:stage,GET_FX ;; + MOV AX,cs:pre_font_len ;; + ADD FTP.TARGET_LO,AX ;; + JNC FONT_RET ;; + ADD FTP.TARGET_HI,01000H ;; + ;; +FONT_RET : ;; + POP BX ;; + RET ;; + ;; +;=========================================================================== +GETFONT_CASE : ;; as ES:[SI], at COUNT, there is font + ;; data + MOV DX,cs:num_ftb ;; + PUSH BX ;; + ;; + MOV cs:hit_hi,0 ;; temp. register + MOV cs:hit_flag,0 ;; assumed can be changed to SCAN stage + ;; + MOV DI,cs:count_hi ;; normalised COUNT_HI,COUNT_LO + MOV AX,DI ;; + AND AX,00FFFH ;; + PUSH CX ;; + MOV CX,4 ;; + SHL AX,CL ;; + POP CX ;; + AND DI,0F000H ;; + ADD AX,cs:count_lo ;; + JNC NO_CARRY4 ;; + ADD DI,01000H ;; +NO_CARRY4 : ;; + MOV cs:count_lo,AX ;; + MOV cs:count_hi,DI ;; + ;; + ;; +GETFONT_LOOP : ;; + MOV AX,FTP.FTB_STATUS ;; + CMP AX,FSTAT_FONT ;; + JE GETFONT_CONT ;; + ;; + CMP AX,FSTAT_FOUND ;; + JE GETFONT_FOUND ;; + ;; + JMP NEXT_GETFONT ;; + ;; +GETFONT_FOUND : ;; + MOV AX,FTP.FTB_DLEFT ;; + AND AX,AX ;; + JZ NEXT_GF ;; + MOV FTP.FTB_STATUS,FSTAT_FONT; + JMP GETFONT_CONT1 ;; + ;; + ;; +GETFONT_CONT : ;; + MOV AX,FTP.FTB_DLEFT ;; + AND AX,AX ;; + JNZ GETFONT_CONT1 ;; +NEXT_GF : ;; + JMP NEXT_GETFONT ;; + ;; only on FOUND and DLEFT <> 0 +GETFONT_CONT1: ;; + MOV DI,FTP.TARGET_HI ;; normalised TARGET + MOV AX,DI ;; + AND AX,00FFFH ;; + PUSH CX ;; + MOV CX,4 ;; + SHL AX,CL ;; + POP CX ;; + AND DI,0F000H ;; + ADD AX,FTP.TARGET_LO ;; + JNC NO_CARRY5 ;; + ADD DI,01000H ;; +NO_CARRY5 : ;; DI:AX = TARGET (normalised) + ;; + CMP DI,cs:count_hi ;; + JB GETFONT_BAD ;; + JNE NEXT_GETFONT ;; + CMP AX,cs:count_lo ;; + JB GETFONT_BAD ;; + JNE NEXT_GETFONT ;; + ;; + MOV FTP.FTB_DALO,SI ;; where the font data is in the packet + MOV FTP.FTB_DAHI,DS ;; + ;; + MOV AX,FTP.FTB_DLEFT ;; + CMP AX,CX ;; + JAE UPTO_CX ;; + ;; upto FDLEFT + MOV FTP.FTB_DLEFT,0 ;; + MOV FTP.FTB_DLEN,AX ;; + CMP cs:hit_hi,AX ;; + JNB NOT_HIGHER0 ;; + MOV cs:hit_hi,AX ;; +NOT_HIGHER0 : ;; + ADD FTP.TARGET_LO,AX ;; + JNC NEXT_GETFONT ;; + ADD FTP.TARGET_HI,01000H ;; + JMP NEXT_GETFONT ;; + ;; +GETFONT_BAD : ;; + MOV FTP.FTB_STATUS,STAT_BADATA ;; pointing backwards + JMP NEXT_GETFONT ;; + ;; +UPTO_CX : ;; + SUB AX,CX ;; + MOV FTP.FTB_DLEFT,AX ;; + MOV FTP.FTB_DLEN,CX ;; + MOV cs:hit_hi,CX ;; + ADD FTP.TARGET_LO,CX ;; + JNC NO_CARRYOVER ;; + ADD FTP.TARGET_HI,01000H ;; +NO_CARRYOVER : ;; + AND AX,AX ;; all data have been returned ? + JZ NEXT_GETFONT ;; + ;; + MOV cs:hit_flag,-1 ;; no ! stay in the GET_FONT stage + ;; +NEXT_GETFONT : ;; + ADD BX,FTP.FTB_LENGTH ;; + DEC DX ;; + AND DX,DX ;; + JZ GETFONT_END ;; + JMP GETFONT_LOOP ;; + ;; +GETFONT_END : ;; + MOV AX,cs:hit_hi ;; + ADD SI,AX ;; + SUB CX,AX ;; + ;; + CMP cs:hit_flag,0 ;; + Jne GETFONT_DONE ;; + MOV cs:stage,SCANX ;; no more in the GET_FONT stage + ;; + ;; +GETFONT_DONE : ;; + POP BX ;; + JMP FTB_LOOP ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; +;; STAGES -- "called by" SERACH_CASE +;; +;; -- DS:[SI] (FPKT) points to PACKET, of DOS's buffer +;; -- CX remaining packet length +;; -- ES:[BX] points to the first FTBLK +;; -- COUNT_LO, COUNT_HI, upto but not including the address pointed by FPKT +;; +;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;;+++++++++++++++++++++++++++++++++ +filetag : ;; + ;; +; mov ax,ftag_len ;; + cmp cs:ftag_count,ftag_len ;; + jB valid_ftag ;; + JE FTAG_FAILED ;; + ;; + mov ftp.ftb_status,stat_deverr + mov cs:fp_error,00022H ;; ERROR 0022H + ;; +FTAG_FAILED : ;; discard all the bytes, while + ADD SI,CX ;; stage stays as FTAGX + SUB CX,CX ;; + JMP FTB_LOOP ;; **** RETURN (bytes discarded) **** + ;; +VALID_FTAG : ;; + MOV AX,FPKT ;; + INC SI ;; + DEC CX ;; + ;; + MOV DI,cs:ftag_count ;; + CMP AL,cs:ftag_pattern[DI] ;; + JE FTAG_NEXTB ;; + ;; + mov ftp.ftb_status,stat_badata + MOV ax,ftag_len ;; stays in FTAGX to consume all bytes + MOV cs:ftag_count,ax ;; stays in FTAGX to consume all bytes + JMP FTB_LOOP ;; **** RETURN (FAILED !) **** + ;; +FTAG_NEXTB : ;; + INC DI ;; + MOV cs:ftag_count,DI ;; + ;; + CMP DI,ftag_len ;; + JE FTAG_DONE ;; + ;; + JMP FTB_LOOP ;; **** RETURN ( MORE TO COME) **** + ;; +FTAG_DONE : ;; + MOV cs:pass_cnt,0 ;; + MOV cs:stage,PASSX ;; + MOV cs:pass_postx,fptr_lolx ;; + ;; + JMP FTB_LOOP ;; **** NEXT STAGE **** + ;; + ;;+++++++++++++++++++++++++++++++++ +fptrLOL : ;; STAGE the low byte of the low fptr + MOV AX,FPKT ;; + INC SI ;; byte by byte + DEC CX ;; + AND CX,CX ;; + JNZ WORD_fptrLO ;; + MOV cs:fptr_lol,AL ;; + MOV cs:stage,fptr_lohX ;; + JMP FTB_LOOP ;; +WORD_fptrLO : ;; + INC SI ;; + DEC CX ;; + MOV cs:fptr_low,AX ;; + MOV cs:stage,fptr_HILX ;; + JMP FTB_LOOP ;; + ;;+++++++++++++++++++++++++++++++++ +fptrLOH : ;; STAGE the high byte of the low fptr + MOV AX,FPKT ;; + INC SI ;; byte by byte + DEC CX ;; + MOV cs:fptr_loh,AL ;; + MOV cs:stage,fptr_HILX ;; + JMP FTB_LOOP ;; + ;;+++++++++++++++++++++++++++++++++ +fptrHIL : ;; STAGE the low byte of the high fptr + MOV AX,FPKT ;; + INC SI ;; byte by byte + DEC CX ;; + AND CX,CX ;; + JNZ WORD_fptrHI ;; + MOV cs:fptr_hil,AL ;; + MOV cs:stage,fptr_hihX ;; + JMP FTB_LOOP ;; +WORD_fptrHI : ;; + INC SI ;; + DEC CX ;; + MOV cs:fptr_high,AX ;; + MOV cs:stage,FPTR_SKIPX ;; + JMP FTB_LOOP ;; + ;;+++++++++++++++++++++++++++++++++ +fptrHIH : ;; STAGE the high byte of the high fptr + MOV AX,FPKT ;; + INC SI ;; byte by byte + DEC CX ;; + MOV cs:fptr_hih,AL ;; + MOV cs:stage,FPTR_SKIPX ;; + JMP FTB_LOOP ;; + ;;+++++++++++++++++++++++++++++++++ +ENTRYLO : ;; STAGE - ENTRY LOW BYTE + MOV AX,FPKT ;; + INC SI ;; byte by byte + DEC CX ;; + AND CX,CX ;; + JNZ WORD_ENTRY ;; + MOV cs:entry_lob,AL ;; + MOV cs:stage,ENTRY_HIX ;; + JMP FTB_LOOP ;; +WORD_ENTRY : ;; + INC SI ;; + DEC CX ;; + MOV cs:entry_word,AX ;; + MOV cs:stage,PASSX ;; 2 bytes to be passed + MOV cs:pass_postx,NEXT_LOLX ;; + JMP FTB_LOOP ;; + ;;+++++++++++++++++++++++++++++++++ +ENTRYHI : ;; stage - ENTRY HIGN BYTE + MOV AX,FPKT ;; + INC SI ;; byte by byte + DEC CX ;; + MOV cs:entry_hib,AL ;; + MOV cs:stage,PASSX ;; 2 bytes to be passed + MOV cs:pass_postx,NEXT_LOLX ;; + AND CX,CX ;; + JNZ ENTHI_PASS1 ;; + JMP FTB_LOOP ;; +ENTHI_PASS1 : ;; + INC SI ;; + INC cs:pass_cnt ;; + DEC CX ;; + AND CX,CX ;; + JNZ ENTHI_PASS2 ;; + JMP FTB_LOOP ;; +ENTHI_PASS2 : ;; + INC SI ;; + INC cs:pass_cnt ;; + DEC CX ;; + MOV cs:stage,NEXT_LOLX ;; + JMP FTB_LOOP ;; + ;;+++++++++++++++++++++++++++++++++ +NEXTLOL : ;; STAGE the low byte of the low NEXT + MOV AX,FPKT ;; + INC SI ;; byte by byte + DEC CX ;; + AND CX,CX ;; + JNZ WORD_NEXTLO ;; + MOV cs:next_lol,AL ;; + MOV cs:stage,NEXT_LOHX ;; + JMP FTB_LOOP ;; +WORD_NEXTLO : ;; + INC SI ;; + DEC CX ;; + MOV cs:next_low,AX ;; + MOV cs:stage,next_hilX ;; + JMP FTB_LOOP ;; + ;;+++++++++++++++++++++++++++++++++ +NEXTLOH : ;; STAGE the high byte of the low NEXT + MOV AX,FPKT ;; + INC SI ;; byte by byte + DEC CX ;; + MOV cs:next_loh,AL ;; + MOV cs:stage,next_hilX ;; + JMP FTB_LOOP ;; + ;;+++++++++++++++++++++++++++++++++ +NEXTHIL : ;; STAGE the low byte of the high NEXT + MOV AX,FPKT ;; + INC SI ;; byte by byte + DEC CX ;; + AND CX,CX ;; + JNZ WORD_NEXTHI ;; + MOV cs:next_hil,AL ;; + MOV cs:stage,NEXT_HIHX ;; + JMP FTB_LOOP ;; +WORD_NEXTHI : ;; + INC SI ;; + DEC CX ;; + MOV cs:next_high,AX ;; + MOV cs:stage,type_lobX ;; + JMP FTB_LOOP ;; + ;;+++++++++++++++++++++++++++++++++ +NEXTHIH : ;; STAGE the high byte of the high NEXT + MOV AX,FPKT ;; + INC SI ;; byte by byte + DEC CX ;; + MOV cs:next_hih,AL ;; + MOV cs:stage,type_lobX ;; + JMP FTB_LOOP ;; + ;;+++++++++++++++++++++++++++++++++ +TYPELO : ;; STAGE the low byte of the TYPE + MOV AX,FPKT ;; + INC SI ;; byte by byte + DEC CX ;; + AND CX,CX ;; + JNZ WORD_TYPE ;; + MOV cs:type_lob,AL ;; + MOV cs:stage,type_hibX ;; + JMP FTB_LOOP ;; +WORD_TYPE : ;; + INC SI ;; + DEC CX ;; + MOV cs:type_word,AX ;; + MOV cs:stage,type_idX ;; + MOV cs:tid_cnt,0 ;; + JMP FTB_LOOP ;; + ;;+++++++++++++++++++++++++++++++++ +TYPEHI : ;; STAGE the high byte of the TYPE + MOV AX,FPKT ;; + INC SI ;; byte by byte + DEC CX ;; + MOV cs:type_hib,AL ;; + MOV cs:stage,TYPE_IDX ;; + MOV cs:tid_cnt,0 ;; + JMP FTB_LOOP ;; + ;;+++++++++++++++++++++++++++++++++ +TYPEIDS : ;; STAGE the type id + CMP cs:tid_cnt,8 ;; + JNA VALID_TID ;; + MOV FTP.FTB_STATUS,STAT_DEVERR + MOV cs:fp_error,00021H ;; ERROR 0021H + ADD SI,CX ;; + SUB CX,CX ;; + JMP FTB_LOOP ;; + ;; +VALID_TID : ;; + MOV AX,8 ;; + SUB AX,cs:tid_cnt ;; + CMP CX,AX ;; + JNB TID_ALL ;; + ;; all data in FPKT are stored + PUSH ES ;; + PUSH CS ;; + POP ES ;; + ;; + MOV DI,OFFSET TYPE_ID ;; + ADD DI,cs:tid_cnt ;; + ADD cs:tid_cnt,CX ;; + REP MOVSB ;; SI is incremented accordingly + POP ES ;; + ;; + MOV CX,0 ;; STAGE remained + JMP FTB_LOOP ;; +TID_ALL : ;; + PUSH CX ;; + ;; + PUSH ES ;; + PUSH CS ;; + POP ES ;; + ;; + MOV DI,OFFSET TYPE_ID ;; + ADD DI,cs:tid_cnt ;; + MOV CX,AX ;; + REP MOVSB ;; SI is incremented accordingly + POP ES ;; + ;; + ADD cs:tid_cnt,AX ;; + POP CX ;; + SUB CX,AX ;; + ;; + MOV cs:stage,CPG_LOBX ;; + JMP FTB_LOOP ;; + ;;+++++++++++++++++++++++++++++++++ +CPGLO : ;; STAGE the low byte of the CODE PAGE + MOV AX,FPKT ;; + INC SI ;; byte by byte + DEC CX ;; + AND CX,CX ;; + JNZ WORD_CPG ;; + MOV cs:cpg_lob,AL ;; + MOV cs:stage,CPG_HIBX ;; + JMP FTB_LOOP ;; +WORD_CPG : ;; + INC SI ;; + DEC CX ;; + MOV cs:cpg_word,AX ;; + MOV cs:stage,PASSX ;; + MOV cs:pass_postx,font_lolX ;; + JMP FTB_LOOP ;; + ;;+++++++++++++++++++++++++++++++++ +CPGHI : ;; STAGE the high byte of the CODE PAGE + MOV AX,FPKT ;; + INC SI ;; byte by byte + DEC CX ;; + MOV cs:cpg_hib,AL ;; + MOV cs:stage,PASSX ;; + MOV cs:pass_postx,font_lolX ;; + JMP FTB_LOOP ;; + ;;+++++++++++++++++++++++++++++++++ +FONTLOL : ;; STAGE the low byte of the low FONT + MOV AX,FPKT ;; + INC SI ;; byte by byte + DEC CX ;; + AND CX,CX ;; + JNZ WORD_FONTLO ;; + MOV cs:font_lol,AL ;; + MOV cs:stage,FONT_LOHX ;; + JMP FTB_LOOP ;; +WORD_FONTLO : ;; + INC SI ;; + DEC CX ;; + MOV cs:font_low,AX ;; + MOV cs:stage,FONT_HILX ;; + JMP FTB_LOOP ;; + ;;+++++++++++++++++++++++++++++++++ +FONTLOH : ;; STAGE the high byte of the low FONT + MOV AX,FPKT ;; + INC SI ;; byte by byte + DEC CX ;; + MOV cs:font_loh,AL ;; + MOV cs:stage,FONT_HILX ;; + JMP FTB_LOOP ;; + ;;+++++++++++++++++++++++++++++++++ +FONTHIL : ;; STAGE the low byte of the high FONT + MOV AX,FPKT ;; + INC SI ;; byte by byte + DEC CX ;; + AND CX,CX ;; + JNZ WORD_FONTHI ;; + MOV cs:font_hil,AL ;; + MOV cs:stage,FONT_HIHX ;; + JMP FTB_LOOP ;; +WORD_FONTHI : ;; + INC SI ;; + DEC CX ;; + MOV cs:font_high,AX ;; +;;;;;; MOV cs:stage,MOD_LOBX ;; end of SCAN + ;; anymore headers to be processed ? + MOV cs:stage,MATCHX ;; + MOV AX,cs:entry_word ;; + DEC AX ;; + MOV cs:entry_word,AX ;; + AND AX,AX ;; + JNZ CHECK_NEXT ;; + ;; no more header to be processed ! + MOV AX,-1 ;; + MOV cs:next_low,AX ;; + MOV cs:next_high,AX ;; as ENTRY has been consumed + JMP FTB_LOOP ;; + ;; +CHECK_NEXT : ;; + MOV AX,cs:next_low ;; + AND AX,AX ;; + JNZ MORE_HEADER ;; + MOV AX,cs:next_high ;; + AND AX,AX ;; + JNZ MORE_HEADER ;; + ;; no more header to be processed ! + MOV AX,-1 ;; + MOV cs:next_low,AX ;; as NEXT is nil + MOV cs:next_high,AX ;; + ;; +MORE_HEADER : ;; + JMP FTB_LOOP ;; + ;;+++++++++++++++++++++++++++++++++ +FONTHIH : ;; STAGE the high byte of the high FONT + MOV AX,FPKT ;; + INC SI ;; byte by byte + DEC CX ;; + MOV cs:font_hih,AL ;; +;;;;; MOV cs:stage,MOD_LOBX ;; end of SCAN + ;; + MOV cs:stage,MATCHX ;; + ;; anymore headers to be processed ? + MOV AX,cs:entry_word ;; + DEC AX ;; + MOV cs:entry_word,AX ;; + AND AX,AX ;; + JNZ CHECK_NEXT0 ;; + ;; no more header to be processed ! + MOV AX,-1 ;; + MOV cs:next_low,AX ;; + MOV cs:next_high,AX ;; as ENTRY has been consumed + JMP FTB_LOOP ;; + ;; +CHECK_NEXT0 : ;; + MOV AX,cs:next_low ;; + AND AX,AX ;; + JNZ MORE_HEADER0 ;; + MOV AX,cs:next_high ;; + AND AX,AX ;; + JNZ MORE_HEADER0 ;; + ;; no more header to be processed ! + MOV AX,-1 ;; + MOV cs:next_low,AX ;; as NEXT is nil + MOV cs:next_high,AX ;; + ;; +MORE_HEADER0 : ;; + JMP FTB_LOOP ;; + ;; + ;;+++++++++++++++++++++++++++++++++ +MODLO : ;; STAGE the low byte of the MODIFIER + MOV AX,FPKT ;; + INC SI ;; byte by byte + DEC CX ;; + AND CX,CX ;; + JNZ WORD_MOD ;; + MOV MOD_LOB,AL ;; + MOV cs:stage,MOD_HIBX ;; + JMP FTB_LOOP ;; +WORD_MOD : ;; + INC SI ;; + DEC CX ;; + MOV cs:mod_word,AX ;; + MOV cs:stage,fonts_lobX ;; + JMP FTB_LOOP ;; + ;;+++++++++++++++++++++++++++++++++ +MODHI : ;; STAGE the high byte of the MODIFIER + MOV AX,FPKT ;; + INC SI ;; byte by byte + DEC CX ;; + MOV cs:mod_hib,AL ;; + MOV cs:stage,FONTS_LOBX ;; + JMP FTB_LOOP ;; + ;;+++++++++++++++++++++++++++++++++ +FONTSLO : ;; STAGE the low byte of the FONTS + MOV AX,FPKT ;; + INC SI ;; byte by byte + DEC CX ;; + AND CX,CX ;; + JNZ WORD_FONTS ;; + MOV cs:fonts_lob,AL ;; + MOV cs:stage,FONTS_HIBX ;; + JMP FTB_LOOP ;; +WORD_FONTS : ;; + INC SI ;; + DEC CX ;; + MOV cs:fonts_word,AX ;; + MOV cs:stage,FDLEN_LOBX ;; + JMP FTB_LOOP ;; + ;;+++++++++++++++++++++++++++++++++ +FONTSHI : ;; STAGE the high byte of the FONTS + MOV AX,FPKT ;; + INC SI ;; byte by byte + DEC CX ;; + MOV cs:fonts_hib,AL ;; + MOV cs:stage,FDLEN_LOBX ;; + JMP FTB_LOOP ;; + ;;+++++++++++++++++++++++++++++++++ +FDLENLO : ;; the low byte of the FONT-LENGTH + MOV AX,FPKT ;; + INC SI ;; byte by byte + DEC CX ;; + AND CX,CX ;; + JNZ WORD_FDLEN ;; + MOV cs:fdlen_lob,AL ;; + MOV cs:stage,FDLEN_HIBX ;; + JMP FTB_LOOP ;; +WORD_FDLEN : ;; + INC SI ;; + DEC CX ;; + MOV cs:pre_font_len,PRE_FONT_ND;; + MOV cs:fdlen_word,AX ;; +; AND AX,AX ;; +; JZ NO_DISP_PTR ;; +; CMP cs:type_word,TYPE_DISPLAY ;; +; JE DISPLAY_TYPE1 ;; +; CMP cs:type_word,TYPE_PRINTER ;; +; JE PRINTER_TYPE1 ;; + ;; +;NO_DISP_PTR : ;; + MOV cs:stage,FOUNDX ;; FSTAT is to be changed + JMP FTB_LOOP ;; +;DISPLAY_TYPE1 : ;; +; MOV cs:stage,DISP_ROWSX ;; +; JMP FTB_LOOP ;; +;PRINTER_TYPE1 : ;; +; MOV cs:stage,PTRSELLOX ;; +; JMP FTB_LOOP ;; + ;; + ;;+++++++++++++++++++++++++++++++++ +FDLENHI : ;; STAGE the high byte of the F-LENGTH + MOV cs:pre_font_len,PRE_FONT_ND + MOV AX,FPKT ;; + INC SI ;; byte by byte + DEC CX ;; + MOV cs:fdlen_hib,AL ;; + MOV AX,cs:fdlen_word ;; +; AND AX,AX ;; +; JZ NO_DISP_PTR2 ;; +; CMP cs:type_word,TYPE_DISPLAY ;; +; JE DISPLAY_TYPE2 ;; +; CMP cs:type_word,TYPE_PRINTER ;; +; JE PRINTER_TYPE2 ;; +;NO_DISP_PTR2: ;; + MOV cs:stage,FOUNDX ;; FSTAT is to be changed + JMP FTB_LOOP ;; +;DISPLAY_TYPE2 : ;; +; MOV cs:stage,DISP_ROWSX ;; +; JMP FTB_LOOP ;; +;PRINTER_TYPE2 : ;; +; MOV cs:stage,PTRSELLOX ;; +; JMP FTB_LOOP ;; + ;; + ;;+++++++++++++++++++++++++++++++++ +DSPROWS : ;; STAGE : get the rows +; XOR AX,AX ;; +; MOV cs:disp_rows,AL ;; +; MOV cs:disp_cols,AL ;; +; MOV cs:DISP_X,AL ;; +; MOV cs:disp_y,AL ;; +; MOV cs:count_word,AX ;; +; ;; +; INC cs:pre_font_len ;; +; MOV AX,FPKT ;; +; INC SI ;; +; DEC CX ;; +; MOV cs:disp_rows,AL ;; +; MOV AX,cs:fdlen_word ;; +; DEC AX ;; +; MOV cs:fdlen_word,AX ;; +; JZ NO_DISP_FONT3 ;; +; MOV cs:stage,disp_colsX ;; +; JMP FTB_LOOP ;; +;NO_DISP_FONT3 : ;; +; MOV cs:stage,FOUNDX ;; FSTAT is to be changed +; JMP FTB_LOOP ;; +; ;;+++++++++++++++++++++++++++++++++ +DSPCOLS : ;; STAGE : get the COLS +; INC cs:pre_font_len ;; +; MOV AX,FPKT ;; +; INC SI ;; +; DEC CX ;; +; MOV cs:disp_cols,AL ;; +; MOV AX,cs:fdlen_word ;; +; DEC AX ;; +; MOV cs:fdlen_word,AX ;; +; JZ NO_DISP_FONT3 ;; +; MOV cs:stage,DISP_XX ;; +; JMP FTB_LOOP ;; + ;;+++++++++++++++++++++++++++++++++ + DSPX : ;; STAGE : get the aspect X +; INC cs:pre_font_len ;; +; MOV AX,FPKT ;; +; INC SI ;; +; DEC CX ;; +; MOV DISP_X,AL ;; +; MOV AX,cs:fdlen_word ;; +; DEC AX ;; +; MOV cs:fdlen_word,AX ;; +; JZ NO_DISP_FONT3 ;; +; MOV cs:stage,DISP_YX ;; +; JMP FTB_LOOP ;; +; ;;+++++++++++++++++++++++++++++++++ + DSPY : ;; STAGE : get the aspect Y +; INC cs:pre_font_len ;; +; MOV AX,FPKT ;; +; INC SI ;; +; DEC CX ;; +; MOV cs:disp_y,AL ;; +; MOV AX,cs:fdlen_word ;; +; DEC AX ;; +; MOV cs:fdlen_word,AX ;; +; JZ NO_DISP_FONT3 ;; +; MOV cs:stage,COUNT_LOBX ;; +; JMP FTB_LOOP ;; +; ;; + ;;+++++++++++++++++++++++++++++++++ + DSPCOUNTLO : ;; the low byte of the FONT-LENGTH +; INC cs:pre_font_len ;; +; MOV AX,FPKT ;; +; INC SI ;; byte by byte +; DEC CX ;; +; PUSH AX ;; check if length is enough +; MOV AX,cs:fdlen_word ;; +; DEC AX ;; +; MOV cs:fdlen_word,AX ;; +; POP AX ;; +; JNZ A_WORD_COUNT ;; +; JMP NO_DISP_FONT3 ;; +;A_WORD_COUNT : ;; +; AND CX,CX ;; +; JNZ WORD_COUNT ;; +; MOV cs:count_lob,AL ;; +; MOV cs:stage,COUNT_HIBX ;; +; JMP FTB_LOOP ;; +;WORD_COUNT : ;; +; INC cs:pre_font_len ;; +; INC SI ;; +; DEC CX ;; +; MOV cs:count_word,AX ;; +; MOV cs:pre_font_len,PRE_FONT_D; + ;; +; MOV AX,cs:fdlen_word ;; +; DEC AX ;; +; MOV cs:fdlen_word,AX ;; +; MOV cs:stage,FOUNDX ;; FSTAT is to be changed +; JMP FTB_LOOP ;; +; ;; +; ;;+++++++++++++++++++++++++++++++++ + DSPCOUNTHI : ;; STAGE the high byte of the F-LENGTH +; INC cs:pre_font_len ;; +; MOV AX,FPKT ;; +; INC SI ;; byte by byte +; DEC CX ;; +; MOV cs:count_hib,AL ;; +; MOV cs:pre_font_len,PRE_FONT_D; + ;; +; MOV AX,cs:fdlen_word ;; +; DEC AX ;; +; MOV cs:fdlen_word,AX ;; +; MOV cs:stage,FOUNDX ;; FSTAT is to be changed +; JMP FTB_LOOP ;; +; ;; + ;; + ;;+++++++++++++++++++++++++++++++++ +PTRSELLO : ;; the low byte of the SELECTION_TYPE + ;; +; INC cs:pre_font_len ;; +; MOV AX,FPKT ;; +; INC SI ;; byte by byte +; DEC CX ;; +; PUSH AX ;; check if length is enough +; MOV AX,cs:fdlen_word ;; +; DEC AX ;; +; MOV cs:fdlen_word,AX ;; +; POP AX ;; +; JNZ A_WORD_SEL ;; +; JMP NO_PTR_FONT3 ;; +;A_WORD_SEL : ;; +; AND CX,CX ;; +; JNZ WORD_SEL ;; +; MOV cs:ptr_selob,AL ;; +; MOV cs:stage,PTRSELHIX ;; +; JMP FTB_LOOP ;; +;WORD_SEL : ;; +; INC cs:pre_font_len ;; +; INC SI ;; +; DEC CX ;; +; MOV cs:ptr_sel_word,AX ;; +; ;; +; MOV AX,cs:fdlen_word ;; +; DEC AX ;; +; MOV cs:fdlen_word,AX ;; +; ;; +; CMP cs:ptr_sel_word,0 ;; +; JNE PTR_SEL_NOT0 ;; +; ;; +; ;; +; MOV cs:stage,FOUNDX ;; FSTAT is to be changed +; JMP FTB_LOOP ;; +; ;; +;PTR_SEL_NOT0 : ;; +; MOV cs:stage,PTRLENLOX ;; +; JMP FTB_LOOP ;; +; ;; + ;;+++++++++++++++++++++++++++++++++ +PTRSELHI: ;; STAGE the high byte of SELECT_TYPE + ;; +; INC cs:pre_font_len ;; +; MOV AX,FPKT ;; +; INC SI ;; byte by byte +; DEC CX ;; +; MOV cs:ptr_sehib,AL ;; +; ;; +; MOV AX,cs:fdlen_word ;; +; DEC AX ;; +; MOV cs:fdlen_word,AX ;; +; ;; +; CMP cs:ptr_sel_word,0 ;; +; JNE PTR_SEL_NOT0 ;; +; ;; +; ;; +; MOV cs:stage,FOUNDX ;; FSTAT is to be changed +; JMP FTB_LOOP ;; +; ;; +; ;; + ;;+++++++++++++++++++++++++++++++++ +PTRLENLO : ;; the low byte of SELECTION_LENGTH + ;; +; INC cs:pre_font_len ;; +; MOV AX,FPKT ;; +; INC SI ;; byte by byte +; DEC CX ;; +; PUSH AX ;; check if length is enough +; MOV AX,cs:fdlen_word ;; +; DEC AX ;; +; MOV cs:fdlen_word,AX ;; +; POP AX ;; +; JNZ A_WORD_SELEN ;; +; JMP NO_PTR_FONT3 ;; +;A_WORD_SELEN : ;; +; AND CX,CX ;; +; JNZ WORD_SELEN ;; +; MOV cs:ptr_lnlob,AL ;; +; MOV cs:stage,PTRLENHIX ;; +; JMP FTB_LOOP ;; +;WORD_SELEN : ;; +; INC cs:pre_font_len ;; +; INC SI ;; +; DEC CX ;; +; MOV cs:ptr_len_word,AX ;; +; ;; +; MOV AX,cs:fdlen_word ;; +; DEC AX ;; +; MOV cs:fdlen_word,AX ;; +; MOV cs:stage,FOUNDX ;; FSTAT is to be changed +; JMP FTB_LOOP ;; +; ;; + ;;+++++++++++++++++++++++++++++++++ + PTRLENHI : ;; STAGE the high byte of SELECT_LENGTH + ;; + SUB CX,CX ;D; added for DISPLAY.SYS version + MOV CS:STAGE,STAGE_MAX+1 ;D; added for DISPLAY.SYS version + JMP FTB_LOOP ;D; added for DISPLAY.SYS version + ;; + ;; +; INC cs:pre_font_len ;; +; MOV AX,FPKT ;; +; INC SI ;; byte by byte +; DEC CX ;; +; MOV cs:ptr_lnhib,AL ;; +; ;; +; MOV AX,cs:fdlen_word ;; +; DEC AX ;; +; MOV cs:fdlen_word,AX ;; +; MOV cs:stage,FOUNDX ;; FSTAT is to be changed +; JMP FTB_LOOP ;; +; ;; +;NO_PTR_FONT3 : ;; +; MOV cs:stage,FOUNDX ;; FSTAT is to be changed +; JMP FTB_LOOP ;; + ;;+++++++++++++++++++++++++++++++++ +PASS : ;; STAGE - PASS DUMMY BYTES + ;; + PUSH DX ;; + PUSH ES ;; + PUSH DI ;; + ;; + PUSH CS ;; + POP ES ;; + MOV DI,OFFSET PASS_BRK ;; + MOV DX,PASS_INDX ;; + MOV AX,cs:pass_cnt ;; + ;; +NEXT_BRK: ;; find the next pass-break + CMP AX,ES:[DI] ;; + ;; + JB UPTO_BRK ;; + ;; + DEC DX ;; + JZ PASS_ERR ;; + INC DI ;; + INC DI ;; + JMP NEXT_BRK ;; + ;; +UPTO_BRK : ;; next break point found + MOV DX,ES:[DI] ;; + SUB DX,AX ;; bytes to be skipped + CMP CX,DX ;; all to be skipped ? + JAE PASS_ALL ;; + ;; + ADD cs:pass_cnt,CX ;; + ADD SI,CX ;; + SUB CX,CX ;; + JMP PASS_END ;; + ;; +PASS_ALL : ;; + ADD cs:pass_cnt,DX ;; + ADD SI,DX ;; + SUB CX,DX ;; + ;; + MOV AX,cs:pass_postx ;; + MOV cs:stage,AX ;; + ;; +; cmp ax,passx ;; is the next stage a pass-stage ? +; jne not_passx ;; +; mov ax,pass_postxx ;; +; mov pass_postx,ax ;; +; mov pass_postxx,stage_max ;; can support only 2 consecutive pass + ;; +;not_passx : ;; + ;; + JMP PASS_END ;; + ;; +PASS_ERR : ;; DEVICE ERROR, wrong stage + POP DI ;; + POP ES ;; + POP DX ;; + MOV FTP.FTB_STATUS,STAT_DEVERR + SUB CX,CX ;; ignore all the input string + JMP PASS_DONE ;; + ;; +PASS_END : ;; + POP DI ;; + POP ES ;; + POP DX ;; +PASS_DONE : ;; + JMP FTB_LOOP ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; +FTB_LPEND : ;; + ;; + CMP cs:stage,FOUNDX ;; + JNE NOT_FOUNDX ;; + ;; + CALL FOUND_DO ;; + ;; +NOT_FOUNDX : ;; + ;; + POP CX ;; STACK -1 + ;; +FP_RET : ;; + POP SI ;; restore registers + POP DI ;; + POP DX ;; + POP CX ;; + POP BX ;; + POP AX ;; + POP ES ;; + POP DS ;; + ;; + RET ;; +FONT_PARSER ENDP ;; + ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 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 @@ +PAGE ,132 +TITLE DOS - CON Code Page Switching Device Driver (INIT) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; FILENAME: INIT.ASM +; PROGRAM: DISPLAY.SYS (Load module) +; LINK PROCEDURE: Linkk +; INSTALLATION: +; +; This is the routine used to initialize the DOS CPS +; (Code Page Switching) device driver. It is linked into the +; DISPLAY.SYS file at the very end. +; +; PSEUDO CODE: +; INIT PROC +; +; not specified yet....patience is a virtue!!! +; +; INIT ENDP +; +; +; (C)Copyright 1988 Microsoft +; +; DATE: August 28, 1986 +; +;Modification history ********************************************************* +;AN001; D358 New device driver INIT function package 12/07/87 J.K. +;AN002; D493 Undo D358. 02/24/88 J.K. +;****************************************************************************** + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +IF1 ; + %OUT .COMPILING: INIT.ASM + %OUT . ô INSTALL CPS-CON DRIVER + %OUT . õ VERSION 3.30 + %OUT .INCLUDE FILES: +ENDIF ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; REFERENCES +; +; THESE REFERENCES ARE FOR VARIABLES SET WITHIN THE +; MAIN-LINE PROGRAM, NOT CONTAINED IN THIS MODULE. +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ; +.XLIST ; +INCLUDE SYSMSG.INC ; WGR ;AN000; +MSG_UTILNAME ; WGR ;AN000; +.LIST ; + ; + ; +CODE SEGMENT PUBLIC BYTE 'CODE' ; + ASSUME CS:CODE,DS:CODE ; + PUBLIC INIT ; + ; + EXTRN ROM_INT_2F:WORD ; + EXTRN ROM_INT_10:WORD ; + EXTRN ROM_INT_1F:WORD ; + EXTRN OLD_INT_1F:WORD ; + EXTRN ROM_INT_44:WORD ; + EXTRN INT_2F_COM:NEAR ; + EXTRN INT_10_COM:NEAR ; + EXTRN EOF_MARKER:BYTE ; + EXTRN ABORT:BYTE ; + EXTRN CPD_ACTIVE:WORD ; + EXTRN CPD_CLASS:BYTE ; + EXTRN CPD_HDWR_N_MAX:ABS ; + EXTRN CPD_DESG_N_MAX:ABS ; + EXTRN CPD_HDWR_N:WORD ; + EXTRN CPD_DESG_N:WORD ; + EXTRN CPD_FONTS_N:WORD ; + EXTRN IRPT_2:NEAR ; + EXTRN IRPT_CMD_EXIT:NEAR ; + EXTRN FONT_SIZE:BYTE ; + EXTRN LOAD_MECH:BYTE ; + EXTRN CPD_FONT_PNTER:WORD ; + EXTRN PARSER:NEAR ; + EXTRN GET_DEVICE_ID:NEAR ; + EXTRN TABLE:BYTE ; + EXTRN ASK_BIOS_FONT_SIZE:NEAR ; + EXTRN ASK_BIOS_SCAN_LINES:NEAR; + EXTRN REDUCED_SUPPORT:ABS ; + EXTRN DEV_HDR:WORD ; + EXTRN MODE_VALUE:BYTE ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; LOCAL VARIABLES +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +HANDLE_ROUTINES LABEL WORD ; INDEX TABLE OF 'FUNCTIONS' TO + DW OFFSET HANDLE_DEVICE_NAME ; OPERATE ON THE COMMAND_LINE + DW OFFSET HANDLE_DEVICE_ID ; + DW OFFSET HANDLE_HDWR_CP ; + DW OFFSET HANDLE_DESG_CP ; +LEN_HANDLE_ROUTINES EQU ($-HANDLE_ROUTINES)/2 + ; +RESIDENT_END DW OFFSET EOF_MARKER ; POINTER TO SEG:OFFSET OF CODE END! +RESIDENT_ENDS DW SEG CODE ; + ; +DEVICE_ID_INDEX DW 0 ; INDEX VALUE FOR DEVICE SUB-TYPE +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; INCLUDE FILES +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + INCLUDE MACROS.INC ; GENERAL PURPOSE 'MACROs' + INCLUDE DEF-EQU.INC ; CPS DRIVER STRUCTURES AND EQUATES + INCLUDE TABLES.INC ; DEVICE SUB-TYPE CONFIGURATION TABLES +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; INITIALIZATION ROUTINE +; +; THE INIT PROC IS CALLED BY THE DEVICE DRIVER DURING DOS BOOT TIME! +; THE CALL WILL BE MADE ONCE, AND ONLY ONCE. THEREFORE, WHEN THIS +; CODE IS COMPLETED, IT IS DISCARDED INTO THAT 'great bit bucket +; in the sky! +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +INIT PROC ; + PUSH DS ; + ; + PUSH CS ; + POP DS ; FIRST SET DS = CS + ; + PUSH BX ; WGR ;AN000; + CALL SYSLOADMSG ; WGR load messages ;AN000; + JNC INIT_00 ; WGR if no error then continue.. ;AN000; + CALL SYSDISPMSG ; WGR display error message.. ;AN000; + POP BX ; WGR ;AN000; + JMP INIT_1 ; WGR exit with error status ;AN000; +INIT_00: ; WGR ;AN000; + POP BX ; WGR ;AN000; + MOV RESIDENT_ENDS,CS ; SET INITIAL RESIDENT END SEGMENT + ; + LES DI,DWORD PTR BUF.RH_PTRO; GET RH + CALL PARSER ; + JC INIT_1A ; + ; + MOV SI,OFFSET TABLE ; ADDRESS [ TABLE 1 ] + MOV CX,[SI].NUM_DEVICES ; CHECK THE NUMBER OF DEVICES SPECIFIED + CMP CX,ONE ; IF <> 1, THEN WE HAVE A PROBLEM... + JNE INIT_1A ; ERROR + MOV SI,[SI].DEVICE1_OFFSET ; MOVE FROM [ TABLE 1 ] TO [ TABLE 2 ] + MOV CX,[SI].NUM_ITEMS ; + LEA DI,HANDLE_ROUTINES ; + ; +INIT_0: CALL CS:[DI] ; CALL ROUTINE WITH '[SI].OFFSET_LIST' + ; + JC INIT_1 ; ERROR IN ROUTINE (COMMAND_LINE) + INC SI ; ADVANCE POINTERS FOR CALL AND + INC SI ; THE OFFSET_LIST! + INC DI ; + INC DI ; + LOOP INIT_0 ; + ; + CALL INSTALL_ID ; CONFIGURE DEVICE DRIVER FOR MATCHED + JC INIT_1 ; DISPLAY ADAPTER! + ; + PUSH BX ; + MOV AH,15 ; PERFORM CALL TO GET ACTIVE MODE + INT 10H ; + MOV MODE_VALUE,AL ; SET IT IN THE INT10COM.INC ROUTINE + POP BX ; + ; + JUMP INIT_2 ; + ; +INIT_1A: ; + PUSH AX ; WGR ;AN000; + PUSH DX ; WGR ;AN000; + MOV AX,ERROR_2 ; PARSING ERROR CONDITION ;AN000; + MOV DH,UTILITY_MSG_CLASS ; WGR ;AN000; + CALL ISSUE_MESSAGE ; WGR ;AN000; + POP DX ; WGR ;AN000; + POP AX ; WGR ;AN000; + ; +INIT_1: XOR AX,AX ; CLEAR ERROR CODE TO BE RETURNED + LES DI,DWORD PTR BUF.RH_PTRO; GET RH + MOV RH.RH0_ENDO,AX ; OFFSET = 0 + MOV RH.RH0_ENDS,CS ; + MOV RH.RH0_UNIT,AL ; SET 0 UNITS.... + ; + CMP NOT_CPS_ID,OFF ; WGR did we find a non-CPS id? ;AN000; + JNE INIT_1B ; WGR yes....do not set an error ;AN000; + OR BUF.STATUS,103H ; SET INIT ERROR OCCURRED + JMP INIT_1C ; WGR ;AN000; + ; +INIT_1B: ; + OR BUF.STATUS,AX ; WGR no error code..but do not load ;AN000; +; mov RH.RH0_SYSINIT_MSG, 0 ;AN001;AN002; Ask IBMBIO not to show "Error in CONFIG.SYS lines= #" message +INIT_1C: ; + PUSH DI ; 'DETACH' THE LINK LIST TO THE + MOV AX,-1 ; NEXT DEVICE NAME....THIS MAY not + LEA DI,DEV_HDR ; NEED TO BE RESET FOR INIT ERROR.... + MOV CS:[DI],AX ; + MOV CS:[DI+2],AX ; + POP DI ; + STC ; SET CY TO INDICATE FNC DONE + POP DS ; + RET ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; NOW MOVE ONTO INSTALLATION OF INT 2F HEX +; +; SINCE WE ARE GOING TO CHAIN THE INTERRUPT 2FH VECTOR, +; IT IS IMPORTANT THAT THE lower LEVEL IS VALID! THIS +; IS VERIFIED BY SEEING IF THE ORIGINAL VECTOR <> 0000:0000. +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +INIT_2: PUSH ES ; + XOR AX,AX ; SET ES TO INTERRUPT REGION + MOV ES,AX ; + MOV AX,ES:WORD PTR INT_2F_LOW;GET OFFSET VALUE OF INT 2F hex + MOV CS:ROM_INT_2F,AX ; & + MOV CX,ES:WORD PTR INT_2F_HI; ALSO THE SEGMENT VALUE + MOV CS:ROM_INT_2F+2,CX ; + OR AX,CX ; IS INT 2F hex = 0 ? + JNE INIT_6 ; + MOV AX,OFFSET ABORT ; YES: USE IRET AS THE LOWER CODE + MOV CS:ROM_INT_2F,AX ; REFER TO ABORT LABEL FOR IRET! + MOV AX,CS ; + MOV CS:ROM_INT_2F+2,AX ; +INIT_6: CLI ; NEXT CHANGE THE ACTIVE INT 2F hex + MOV ES:WORD PTR INT_2F_LOW,OFFSET INT_2F_COM; + MOV ES:WORD PTR INT_2F_HI,CS; TO THE NEWLY LOADED CODE (INT2FCOM) + STI ; (with interrupts off, of course) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; READ THE INTERRUPT 1F HEX FOR INT10COM MODULE +; THIS IS READ DURING INITIAL LOAD TO RECORD THE +; DEFAULT VALUE. THE CPS SUPPORT WILL not CHANGE +; THE INT 1F HEX VECTOR IF IT WAS CHANGED FROM +; THIS VALUE....ie. GRAFTABL.COM or other HAS THE +; VECTOR. +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + MOV CX,ES:WORD PTR INT_1F_LOW; GET OFFSET OF INTERRUPT 1FH + MOV CS:ROM_INT_1F,CX ; & + MOV CS:OLD_INT_1F,CX ; + MOV CX,ES:WORD PTR INT_1F_HI; SEGMENT OF INTERRUPT 1FH + MOV CS:ROM_INT_1F+2,CX ; + MOV CS:OLD_INT_1F+2,CX ; + ; + MOV CX,ES:WORD PTR INT_44_LOW; GET OFFSET OF INTERRUPT 44H + MOV CS:ROM_INT_44,CX ; & + MOV CX,ES:WORD PTR INT_44_HI; SEGMENT OF INTERRUPT 44H + MOV CS:ROM_INT_44+2,CX ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; NOW MOVE ONTO INSTALLATION OF INT 10 HEX +; THE INT 10H VECTOR IS TAKEN TO MONITOR THE +; MODE_SET INTERFACE (AH=0). THIS IS THE KEY +; TO THE CPS SUPPORT MECHANISM...ie. THE ACTIVE +; CODE PAGE IS LOADED EVERYTIME A MODE_SET OCCURS! +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + MOV CX,ES:WORD PTR INT_10_LOW; GET OFFSET OF INT 10H + MOV CS:ROM_INT_10,CX ; & + MOV CX,ES:WORD PTR INT_10_HI; SEGMENT OF INT 10H + MOV CS:ROM_INT_10+2,CX ; + CLI ; INSTALL THE NEW INT 10H CODE + MOV ES:WORD PTR INT_10_LOW,OFFSET INT_10_COM; + MOV ES:WORD PTR INT_10_HI,CS; + STI ; (with interrupts off, of course) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; INSTALL THE DEVICE DRIVER CODE. THE RESIDENT_END +; VALUE HAS BEEN SET TO: +; +; 1 - REDUCED_SUPPORT used when #DESG = 0 (CGA, MONO) +; 2 - LAST DESIGNATED BUFFER - calculated by #DESG x #FONTS +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + POP ES ; RESTORE THE ES REGISTER + LES DI,DWORD PTR BUF.RH_PTRO; GET REQUEST HEADER ADDRESS + MOV AX,RESIDENT_END ; GET OFFSET OF RESIDENT END + MOV RH.RH0_ENDO,AX ; +INIT_7: MOV AX,RESIDENT_ENDS ; GET SEGMENT OF RESIDENT END + MOV RH.RH0_ENDS,AX ; + STC ; CY = 1, CALL FULLY SERVICED = ON + POP DS ; + RET ; +INIT ENDP ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; DEVICE NAME PARSING IS LIMITED ONLY TO 1 DEVICE NAME +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +DEVICE_NAMES DB "CON " ; ONLY ONE VALID NAME FOR DEVICE... +L_DEVICE_NAMES EQU ($-DEVICE_NAMES) ; +N_DEVICE_NAMES EQU ($-DEVICE_NAMES)/L_DEVICE_NAMES + ; +HANDLE_DEVICE_NAME PROC ; [ TABLE 3 ] + PUSH CX ; + PUSH SI ; + ; + MOV SI,[SI].OFFSET_LIST ; + MOV CX,[SI] ; TEST THAT DEVICE NAME IS 8 BYTES + ; + CMP CX,L_DEVICE_NAMES ; + JNE H_DN_0 ; LEN(DEVICE_NAME) <> 8, THEN ERROR + ; + PUSH ES ; + PUSH DI ; + ; + PUSH CS ; + POP ES ; + LEA DI,DEVICE_NAMES ; SET COMPARE STRING TO "CON " + INC SI ; + INC SI ; ADVANCE SI TO POINT TO DEVICE_NAME + REPE CMPSB ; CHECK OUT THE 1 NAME..... + POP DI ; + POP ES ; + JNE H_DN_0 ; + ; + POP SI ; + POP CX ; + CLC ; + RET ; +H_DN_0: POP SI ; + POP CX ; + CALL ISSUE_ERROR_1 ; ERROR OCCURRED...NOW ISSUE THE MESG + ; + STC ; TELL CALLER ABOUT ERROR! + RET ; +HANDLE_DEVICE_NAME ENDP ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; THIS ROUTINE IS USED TO VERIFY THE ADAPTER 'NAME' AGAINST +; THE SUPPORTED ONES. IF A MATCH IS FOUND THEN THE APPROPRIATE +; CONFIGURATION TABLE IS LOADED INTO RESIDENT MEMORY, ELSE THE +; 'CY' FLAG IS SET AND AN ERROR IS ISSUED. +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +ID_NAMES DB "EGA " ; +L_ID_NAMES EQU ($-ID_NAMES) ; + DB "EGA 8 " ; INTERNAL USE ONLY + DB "EGA 14 " ; INTERNAL USE ONLY + DB "EGA 14M " ; INTERNAL USE ONLY + DB "LCD " ; + DB "MONO " ; + DB "CGA " ; +N_ID_NAMES EQU ($-ID_NAMES)/L_ID_NAMES + ; +HANDLE_DEVICE_ID PROC ; [ TABLE 4 ] + PUSH DI ; + PUSH CX ; + PUSH SI ; + ; + CALL MODIFY_ID_NAME ; THIS CALL IS USED TO CONVERT THE + JC HDID_4 ; 'EGA' CLASS TYPE INTO SUB-CATEGORY'S + ; + MOV SI,[SI].OFFSET_LIST ; + MOV CX,[SI] ; TEST THAT ID_NAME IS 8 BYTES + CMP CX,L_ID_NAMES ; + JNE HDID_4 ; + ; + INC SI ; + INC SI ; ADVANCE SI TO POINT TO ID_NAME + ; + LEA DI,ID_NAMES ; SET COMPARE STRING TO "DEVICEID" + MOV CX,N_ID_NAMES ; + ; +HDID_0: PUSH DI ; SAVE REGISTERS BETWEEN PASSES + PUSH ES ; + PUSH SI ; + PUSH CX ; + ; + PUSH CS ; + POP ES ; + MOV CX,L_ID_NAMES ; + REPE CMPSB ; TEST NAME (ALL 8 BYTES) AGAINST + ; THE NEXT NAME! + POP CX ; + POP SI ; + POP ES ; + POP DI ; + JE HDID_1 ; + ADD DI,L_ID_NAMES ; + LOOP HDID_0 ; TRY ALL ENTRIES FOR A MATCH... +HDID_4: ; + CMP NOT_CPS_ID,ON ; WGR did we find a non-CPS id? ;AN000; + JNE HDID_5 ; WGR no...not the problem..continue ;AN000; + STC ; WGR yes...so no message...but.. ;AN000; + JMP HDID_6 ; WGR set error for return ;AN000; + ; +HDID_5: ; WGR ;AN000; + POP SI ; IF NONE WERE FOUND, THEN ERROR... + POP CX ; + POP DI ; + ; + DEC SI ; BACK TO SUB-TYPE ID AND ISSUE + DEC SI ; THE ERROR MESSAGE. + CALL ISSUE_ERROR_1 ; + STC ; INFORM CALLER ABOUT THE ERROR! + RET ; +HDID_1: SUB CX,N_ID_NAMES ; ID NAME HAS BEEN FOUND + NEG CX ; NORMALIZE CX FOR TABLE INDEXING!! + ; + MOV DEVICE_ID_INDEX,CX ; + CLC ; +HDID_6: ; WGR ;AN000; + POP SI ; + POP CX ; + POP DI ; + RET ; +HANDLE_DEVICE_ID ENDP ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; THIS ROUTINE CHECKS THE HARDWARE CP VALUE (if specified)! +; THE VALUE OF THE HARDWARE CP IS NOT VERIFIED, ALLOWING +; FUTURE ADAPTERS WITH non-437 HARDWARE PAGES. +; +; IF #HDWR_CP > 1 (FOR ANY DEVICES IN RELEASE 1.00) THEM +; ERROR +; ELSE +; RECORD VALUE (1 WORD) +; ENDIF +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +HANDLE_HDWR_CP PROC ; [ TABLE 5 ] + PUSH CX ; + PUSH SI ; + MOV SI,[SI].OFFSET_LIST ; + MOV CX,[SI] ; GET THE NUMBER OF HDWR_CP'S + CMP CX,CPD_HDWR_N_MAX ; TEST IF GREATER THAN MAX ALLOWED! + JA H_HC_0 ; + ; + CMP CX,1 ; CHECK THE NUMBER OF HDWR CP's + JA H_HC_0 ; IF MORE THAN ONE..THEN WE HAVE A + ; PROBLEM....TELL USER! + PUSH CX ; + MOV CX,[SI+2] ; GET THE ACTUAL HARDWARE CP + CMP CX,-1 ; IS IT INVALID??? + POP CX ; + JE H_HC_0 ; + ; + PUSH ES ; + PUSH DI ; + ; + PUSH CS ; + POP ES ; + LEA DI,CPD_HDWR_N ; POINT DESTINATION TO INTERNAL TABLE + INC CX ; ALSO ACCOUNT FOR COUNT N + REP MOVSW ; SI ALREADY POINTS TO 'N,CP1,CP2..' + ; + POP DI ; + POP ES ; + ; + POP SI ; + POP CX ; + CLC ; + RET ; +H_HC_0: POP SI ; + POP CX ; + ; + PUSH SI ; HARDWARE CP IN ERROR, PUT 'SI' + DEC SI ; BACK TO SUB-TYPE ID AND ISSUE + DEC SI ; THE ERROR MESSAGE. + DEC SI ; BACK TO SUB-TYPE ID AND ISSUE + DEC SI ; THE ERROR MESSAGE. + CALL ISSUE_ERROR_1 ; + POP SI ; + STC ; + RET ; +HANDLE_HDWR_CP ENDP ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; THIS ROUTINE CHECKS THE LAST PARAMETER IN THE COMMAND LINE +; IT CONTAINS THE INFORMATION FOR THE NUMBER OF DESIGNATES AND +; AND THE NUMBER OF DISPLAY FONTS TO BE USED. ONLY MINIMAL +; ERROR CHECKING OCCURS HERE. +; +; THE FOLLOWING IS A LIST OF THE POSSIBLE VALUE IN 'OFFSET_LIST' +; ============================================================== +; +; COND: # 1 # 2 # 3 +; -----------------|--------------------|----------------- +; TABLE: DW 0 DW 1 DW 2 +; DW ? DW n DW n +; DW ? DW ? DW m +; +; DETAILS: no parameters only #desg both #desg +; specified. specified & #font specified +; +; RESULT: #DESG = 0 #DESG = n #DESG = n +; #FONT = 0 (maximum) #FONT = 0 (maximum) #FONT = m +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +HANDLE_DESG_CP PROC ; [ TABLE 6 ] + PUSH AX ; + PUSH CX ; + PUSH DX ; + PUSH SI ; + MOV SI,[SI].OFFSET_LIST ; + ; + MOV CX,-1 ; SET #DESG DEFAULT = 1 + MOV DX,-1 ; SET #FONT DEFAULT = 0 (maximum) + MOV AX,[SI] ; GET DESCRIPTOR FOR PARAMETER LIST + ; + OR AX,AX ; CHECK FOR + JE H_DC_2 ; SET DRIVER TO DEFAULTS + ; + MOV CX,[SI+2] ; + CMP CX,CPD_DESG_N_MAX ; CHECK IF THIS VALUE IS ABOVE MAXIMUM! + JA H_DC_5 ; + CMP AX,ONE ; CHECK FOR + JE H_DC_2 ; SET DRIVER TO DEFAULTS + ; + MOV DX,[SI+4] ; HAS TO BE + ; +H_DC_2: MOV CPD_DESG_N,CX ; RECORD THE #DESG & THE + MOV CPD_FONTS_N,DX ; THE #FONT FROM THE SET VALUES + ; + POP SI ; + POP DX ; + POP CX ; + POP AX ; + CLC ; + RET ; +H_DC_5: POP SI ; + POP DX ; + POP CX ; + PUSH DX ; WGR ;AN000; + MOV AX,ERROR_3 ; WGR ;AN000; + MOV DH,UTILITY_MSG_CLASS ; WGR ;AN000; + CALL ISSUE_MESSAGE ; WGR ;AN000; + POP DX ; WGR ;AN000; + POP AX ; WGR ;AN000; + STC ; + RET ; +HANDLE_DESG_CP ENDP ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; INSTALL_ID +; +; THIS ROUTINE PERFORMS THE DISPLAY_CONFIG TABLE +; LOAD WHICH IS USED FOR THE REMAINDER OF THE SESSION +; +; INPUT: +; DEVICE_ID_INDEX = INDEX TO LIST OF SUPPORTED DEVICES +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +INSTALL_ID PROC ; ROUTINE TO INSTALL INFO FOR DEVICE + CALL INSTALL_TABLE ; + JNC INSI_3 ; + ; + PUSH SI ; + MOV SI,OFFSET TABLE ; ADDRESS [ TABLE 1 ] + MOV SI,[SI].DEVICE1_OFFSET ; MOVE FROM [ TABLE 1 ] TO [ TABLE 2 ] +; INC SI ; +; INC SI ; + CALL ISSUE_ERROR_1 ; + POP SI ; + STC ; +INSI_3: RET ; +INSTALL_ID ENDP ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +INSTALL_TABLE PROC ; + PUSH AX ; + PUSH CX ; + PUSH DX ; + PUSH DI ; + PUSH SI ; + PUSH DS ; + PUSH ES ; + ; + PUSH CS ; + POP DS ; + PUSH CS ; + POP ES ; + ; + MOV AX,DEVICE_ID_INDEX ; + MOV CX,DC_ENTRY ; + MUL CX ; + LEA CX,DISPLAY_CONFIG ; + ADD CX,AX ; + ADD CX,8 ; ACCOUNT FOR 8 CHARACTER NAME + MOV DI,CX ; + ; + CALL INSTALL_MEMORY ; + JC IT_5 ; + ; + INC DI ; ACCOUNT FOR ENCODED MEMORY BYTES + MOV SI,[DI] ; + PUSH DI ; + MOV CX,NUM_MODES ; + LEA DI,LOAD_MECH ; DUPLICATE LOAD_MECH TABLE + REP MOVSB ; + POP DI ; + MOV SI,[DI+2] ; + MOV CX,NUM_MODES ; + LEA DI,FONT_SIZE ; DUPLICATE FONT_SIZE TABLE + REP MOVSB ; + CLC ; + ; +IT_5: POP ES ; + POP DS ; + POP SI ; + POP DI ; + POP DX ; + POP CX ; + POP AX ; + RET ; +INSTALL_TABLE ENDP ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; INSTALL MEMORY +; +; ENTRY: +; ES : DI = POINTER TO ENCODED SCAN LINES ALLOWED +; EXIT: +; CREATION OF CPD_FONT_PNTER TABLE +; CALCULATION OF RESIDENT_END VALUE +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +MEMORY_SIZE_INDEX LABEL WORD ; THIS CORRESPONDS TO THE MEM RQMENTS + DW 0,0,0,0 ; + DW 19*256+6 ; + DW 16*256+6 ; + DW 14*256+6 ; + DW 8*256+6 ; BYTE IN 'TABLES.SRC'. +NUM_MEMORY_SIZE EQU ($-MEMORY_SIZE_INDEX)/2 + ; +INSTALL_MEMORY PROC ; + PUSH AX ; + PUSH BX ; + PUSH CX ; + PUSH DX ; + PUSH SI ; + PUSH DI ; + PUSH ES ; + ; + PUSH CS ; + POP ES ; SET EXTRA SEGMENT + ; + MOV AL,[DI] ; GET ENCODED VALUE FROM TABLE + CALL ASK_BIOS_SCAN_LINES ; IF PERMITTED...BIOS KNOWS SCAN LINES + ; +IM_0Y: PUSH AX ; + PUSH CX ; + MOV CX,NUM_MEMORY_SIZE ; COUNT THE NUMBER OF FONTS POSSIBLE + XOR DX,DX ; DX (INIT=0) WILL = #DIF FONT TYPES +IM_0A: SAL AL,1 ; + JNC IM_0B ; + INC DX ; +IM_0B: LOOP IM_0A ; + POP CX ; + POP AX ; + ; ELSE, STAY WITH INITIAL VALUE!!!! + MOV CX,CPD_FONTS_N ; FIRST CHECK TO SEE IF #FONTS>TYPE + CMP CX,DX ; FIND OUT IF > ALLOWED... + JBE IM_0P ; IF NOT, THEN + MOV CX,-1 ; SET BACK TO DEFAULT VALUE + ; +IM_0P: CMP CX,-1 ; CHECK FOR FONTS = DEFAULT VALUE + JNE IM_0R ; + MOV CPD_FONTS_N,DX ; SET TO THE MAXIMUM FOR THE HARDWARE + ; +IM_0R: MOV CX,CPD_DESG_N ; + CMP CX,-1 ; CHECK FOR #DESG = DEFAULT VALUE + JNE IM_0T ; + MOV CPD_DESG_N,DX ; DX = #FONTS ALLOWED FOR THIS DEVICE + OR DX,DX ; TEST IF > 0 ? + JZ IM_0T ; + MOV CPD_DESG_N,ONE ; + ; +IM_0T: CMP CPD_DESG_N,ZERO ; TEST VALUE OF DESIGNATED CP's + JE IM_8 ; IF THE #DESG=0, THEN REDUCED SUPPORT + ; + CMP CPD_FONTS_N,ZERO ; TEST VALUE OF FONTS, (knowing DESG>0) + JE IM_9 ; ERROR OCCURRED!!! + ; +IM_0: MOV BX,CPD_FONTS_N ; BX=#FONTS REQUESTED + MOV CX,NUM_MEMORY_SIZE ; CX = 8 BITS + LEA SI,MEMORY_SIZE_INDEX ; SI SETUP FOR MEMORY VALUES, CX=#FONTS + XOR DX,DX ; DX=buffer size (INIT=0) +IM_1: SAL AL,1 ; TEST NEXT BIT FOR ACTIVATION + JNC IM_2 ; IF NOT ON...THEN IGNORE + OR BX,BX ; TEST IF MORE FONTS REQUESTED... + JE IM_2 ; + DEC BX ; LESS #FONTS REQUESTED BY ONE + ADD DX,[SI] ; AND ADD THE LARGEST BUFFER SIZE ON +IM_2: INC SI ; ADVANCE MEMORY INDEX POINTER + INC SI ; ADVANCE MEMORY INDEX POINTER + LOOP IM_1 ; + ; + MOV AX,DX ; SET AX=completed buffer size + ; +IM_5: MOV CX,CPD_DESG_N ; NOW, SETUP POINTERS & CALC FONT BUFFER + LEA SI,CPD_FONT_PNTER ; FIND THE DATA_POINTERS + MOV DX,RESIDENT_END ; GET LAST USEABLE ADDRESS + ; + PUSH BX ; SAVE VALUE OF BX FOR RESTORATION... + MOV BX,ES ; SET ES TO BX SO PNTER IS 'BX:DX' +IM_6: PUSH DX ; SET SEGMENT:OFFSET OF BUFFER 'X' + SHR DX,1 ; STRIP OFF LOW 4 BITS OF OFFSET.... + SHR DX,1 ; TO TOP OFF THE 'ES' SEGMENT REGISTER + SHR DX,1 ; + SHR DX,1 ; + ADD BX,DX ; AND MINIMIZE VALUE OF OFFSET + POP DX ; + AND DX,000FH ; THIS IS DONE TO PREVENT STRADDLING + MOV [SI],DX ; A SEGMENT BOUNDARY WITH THE DATA BUF + MOV [SI+2],BX ; + ; + ADD SI,4 ; + ADD DX,AX ; + LOOP IM_6 ; + ; +IM_7A: MOV RESIDENT_END,DX ; SET FINAL OFFSET & SEGMENT TO + MOV RESIDENT_ENDS,BX ; TERMINATE THE 'INIT' WITH + POP BX ; + CLC ; + JUMP IM_A ; + ; +IM_8: MOV DX,REDUCED_SUPPORT ; SET POINTER TO REDUCED SUPPORT + PUSH BX ; + MOV BX,ES ; + JUMP IM_7A ; + ; +IM_9: STC ; +IM_A: POP ES ; + POP DI ; + POP SI ; + POP DX ; + POP CX ; + POP BX ; + POP AX ; + RET ; +INSTALL_MEMORY ENDP ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; WGR +; ; WGR +; ISSUE MESSAGE ; WGR +; ; WGR +; THIS ROUTINE IS USED TO PERFORM THE MESSAGE ; WGR +; RETRIVER. ; WGR +; ; WGR +; INPUT: ; WGR +; AX = MESSAGE NUMBER ; WGR +; DH = MESSAGE CLASS ; WGR +; ; WGR +; OUTPUT: ; WGR +; none ; WGR +; ; WGR +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; WGR +ISSUE_MESSAGE PROC ; ; WGR ;AN000; + PUSH DS ; WGR ;AN000; + PUSH BX ; WGR ;AN000; + PUSH CX ; WGR ;AN000; + PUSH CS ; WGR ;AN000; + POP DS ; WGR ;AN000; + MOV BX,STDERR ; WGR ;AN000; + XOR CX,CX ; WGR ;AN000; + XOR DL,DL ; WGR ;AN000; + CALL SYSDISPMSG ; WGR ;AN000; + POP CX ; WGR ;AN000; + POP BX ; WGR ;AN000; + POP DS ; WGR ;AN000; + RET ; WGR ;AN000; +ISSUE_MESSAGE ENDP ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; ISSUE_ERROR_1 +; +; THIS IS USED TO CONSTRUCT AND OUTPUT THE ERROR MESSAGE; +; +; DEVICE_ID + 'code page driver cannot be initialized' +; +; THE DEVICE_ID IS PULLED FROM THE COMMAND_PARSER. IF ONE +; IS NOT DEFINED OR UNREADABLE, THEN A CONDENSED MESSAGE +; WITHOUT THE DEVICE_ID IS USED. +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +SUB_SIZE EQU 11 ; WGR sublist size ;AN000; +LEFT_ASCIIZ EQU 00010000B ; WGR left-aligned asciiz string ;AN000; +UNLIMITED EQU 0 ; WGR unlimited message size. ;AN000; + ; WGR ;AN000; +SUBLIST LABEL DWORD ; WGR ;AN000; + DB SUB_SIZE ; WGR ;AN000; + DB 0 ; WGR ;AN000; +MSG_PTR DW ? ; WGR ;AN000; +MSG_SEG DW SEG CODE ; WGR ;AN000; + DB 1 ; WGR ;AN000; + DB LEFT_ASCIIZ ; WGR ;AN000; + DB UNLIMITED ; WGR ;AN000; + DB 1 ; WGR ;AN000; + DB " " ; WGR ;AN000; + ; +ISSUE_ERROR_1 PROC ; + PUSH AX ; + PUSH BX ; WGR ;AN000; + PUSH CX ; + PUSH DX ; + PUSH SI ; + ; + MOV SI,[SI].OFFSET_LIST ; POINT TO NAME TO PRINTOUT + INC SI ; + INC SI ; + ; + PUSH SI ; + MOV CX,8 ; MAX LENGTH OF NAME + MOV AL,' ' ; +IN_0: CMP [SI],AL ; + JBE IN_3 ; + INC SI ; + LOOP IN_0 ; +IN_3: MOV AL,ZERO ; SET 0 TO TERMINATE ASCII STRING + MOV [SI],AL ; OVERWRITE LAST BYTE - THIS AFFECTS + ; DATA IMMEDIATELY AFTER NAME. NOT + ; IMPORTANT SINCE FOLLOWING DATA IS IN + ; ERROR + POP SI ; GET START OF NAME + MOV MSG_PTR,SI ; WGR ;AN000; + MOV MSG_SEG,CS ; WGR ;AN000; + MOV AX,ERROR_1 ; WGR ;AN000; + MOV BX,STDERR ; WGR ;AN000; + MOV CX,ONE ; WGR ;AN000; + XOR DL,DL ; WGR ;AN000; + LEA SI,SUBLIST ; WGR ;AN000; + MOV DH,UTILITY_MSG_CLASS ; WGR ;AN000; + CALL SYSDISPMSG ; WGR ;AN000; + ; WGR ;AN000; + POP SI ; + POP DX ; + POP CX ; + POP BX ; WGR ;AN000; + POP AX ; + RET ; +ISSUE_ERROR_1 ENDP ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; MODIFY_ID_NAME +; +; THE USER NEED ONLY SPECIFY THE CLASS OF THE DISPLAY ADAPTER. +; THE AVAILABLE DESCRIPTIONS ARE 'EGA, LCD, CGA, and MONO'. +; THIS ROUTINE IS USED TO FURTHER DETAIL WHAT TYPE OF 'EGA' +; CLASS. THIS IS USED SPECIFICALLY FOR THE EGA (1501200) ADAPTER +; AND ITS MANY CONFIGURATION SETTINGS. +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +MODIFY_NAME DB "EGA " ; +NEW_NAME DB "EGA 14M " ; + DB "EGA 14 " ; + DB "EGA 8 " ; +NUM_NEW_NAME EQU ($-NEW_NAME)/L_ID_NAMES + ; +NOT_CPS_ID DB OFF ; WGR device id does not support CPS ;AN000; + ; +MODIFY_ID_NAME PROC ; + PUSH DI ; + PUSH AX ; + PUSH BX ; + PUSH CX ; + PUSH SI ; + ; + MOV SI,[SI].OFFSET_LIST ; GET START OF ID_NAME + CMP WORD PTR [SI],EIGHT ; WGR ;AN000; + JE MIN_00 ; WGR ;AN000; + CALL GET_DEVICE_ID ; WGR ;AN000; + JNC MIN_00 ; WGR CPS id?...yes continue ;AN000; + MOV NOT_CPS_ID,ON ; WGR no....set flag ;AN000; + JMP MIN_4 ; WGR exit with carry set ;AN000; +MIN_00: ; WGR ;AN000; + INC SI ; + INC SI ; ADVANCE SI TO POINT TO ID_NAME + ; + PUSH SI ; MOVE A COPY OF THE NAME TO CPD_CLASS + PUSH ES ; BEFORE IT IS Revised.... + PUSH CX ; + PUSH CS ; + POP ES ; + MOV CX,L_ID_NAMES ; + LEA DI,CPD_CLASS ; + REP MOVSB ; + POP CX ; + POP ES ; + POP SI ; + ; + LEA DI,MODIFY_NAME ; SET COMPARE STRING TO "EGA " + ; + PUSH DI ; SAVE REGISTERS BETWEEN PASSES + PUSH ES ; + PUSH SI ; + ; + PUSH CS ; + POP ES ; + MOV CX,L_ID_NAMES ; + REPE CMPSB ; TEST NAME (ALL 8 BYTES) AGAINST + ; THE NEXT NAME! + POP SI ; + POP ES ; + POP DI ; + JNE MIN_1 ; THIS MAY NOT BE THE MATCH.... + ; + CALL ASK_BIOS_FONT_SIZE ; CHECK IF THIS IS AN ADVANCED EGA? + JNC MIN_1 ; IF CY=0, THEN ADVANCED...ELSE, +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + MOV AH,12H ; SET FOR ALTERNATE SELECT, EGA INFO + MOV BL,10H ; + INT 10H ; ASK BIOS FOR INFORMATION + CMP BL,10H ; (CHECK IF THIS CALL IS INVALID?) + JE MIN_4 ; IF BL UNCHANGED, THEN NOT EGA! + ; ELSE, CL=SWITCH SETTINGS + MOV AX,L_ID_NAMES ; SET DEFAULT SUB-TYPE TO 1ST ENTRY + CMP BH,ONE ; IF ZERO THEN COLOUR, IF ONE THEN MONO + JE MIN_0 ; + ADD AX,L_ID_NAMES ; MOVE TO NEXT SUB-TYPE + AND CL,0FH ; STRIP OFF LEADING NIBBLE FROM SWITCH + CMP CL,9 ; SETTINGS AND TEST FOR 5154 CONFIG + JE MIN_0 ; + CMP CL,THREE ; + JE MIN_0 ; IF NOT 5154, 5151; THEN MUST BE 5153! + ADD AX,L_ID_NAMES ; + ; +MIN_0: ADD DI,AX ; SET UP INDEX REGISTER TO NEW SUBTYPE + PUSH DS ; + PUSH ES ; + ; + PUSH CS ; + POP ES ; + XCHG SI,DI ; SWITCH SOURCE-DESTINATION REGISTERS + MOV CX,L_ID_NAMES ; + REP MOVSB ; MOVE IN NEW STRING + POP ES ; + POP DS ; + ; +MIN_1: CLC ; + JUMP MIN_5 ; +MIN_4: STC ; +MIN_5: POP SI ; IF NOT FOUND, THEN ERROR... + POP CX ; + POP BX ; + POP AX ; + POP DI ; + RET ; +MODIFY_ID_NAME ENDP ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +.XLIST +MSG_SERVICES ; WGR ;AN000; +MSG_SERVICES ; WGR ;AN000; +MSG_SERVICES ; WGR ;AN000; +MSG_SERVICES ; WGR ;AN000; +MSG_SERVICES ; WGR ;AN000; +.LIST ; + ; +include msgdcl.inc ; + ; +CODE ENDS ; + END ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + 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 @@ +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; INT10COM.INC +; +; THESE FOLLOWING ROUTINES ARE USED TO LOCATE AND LOAD +; THE FONTS FOR THE SPECIFIED CODE PAGE. IT IS DESIGNED +; TO WORK ON THE FOLLOWING DISPLAY ADAPTERS; +; +; - EGA 1501200 (minimal configuration) no expansion card needed +; - PC Convertible (with LCD display adapter) +; - plus literally a half-dozen code-named unreleased IBM products +; +; SUPPORT FOR THE 'CGA' (Colour Graphics Adapter) and +; 'MONO' (Monochrome/Printer Adapter) IS LIMITED TO THE +; HARDWARE CODE PAGE ONLY (ie. not soft-loadable devices). +; +; PSEUDO CODE: +; =========== +; INT_10_PROC STARTS +; GET MODE (AL=?) +; CALL rom_int_10 +; GET FONT_SIZE +; if FONT_SIZE <> 0FFH +; if FONT_SIZE = available +; GET LOAD_MECHANISM +; if LOAD_MECHANISM = BIOS technique +; CALL LOAD_BIOS_CHAR +; endif +; if LOAD_MECHANISM = VECTOR technique +; CALL LOAD_VECTOR_CHAR +; endif +; endif +; endif +; IRET +; INT_10_PROC ENDS +; +; (C)Copyright 1988 Microsoft +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +IF1 ; + %OUT . �INT10COM.INC� +ENDIF + +;Modification history ********************************************************* +;AN001; P1497 Cursor disappearance problem after codepage switch 10/9/87 J.K. +;****************************************************************************** + PUBLIC MODE_VALUE ; + PUBLIC ROM_INT_10 ; + PUBLIC ROM_INT_1F ; + PUBLIC OLD_INT_1F ; + PUBLIC ROM_INT_44 ; + PUBLIC INT_10_COM ; + PUBLIC ASK_BIOS_FONT_SIZE ; + PUBLIC ASK_BIOS_SCAN_LINES ; + ; +ROM_INT_10 DW ? ; Int 10H vector offset + DW ? ; Int 10H vector segment +ROM_INT_1F DW ? ; Int 1FH vector offset + DW ? ; Int 1FH vector segment +OLD_INT_1F DW ? ; OLD Int 1FH vector offset + DW ? ; OLD Int 1FH vector segment +ROM_INT_44 DW ? ; Int 44H vector offset + DW ? ; Int 44H vector segment +MODE_VALUE DB ? ; VALUE OF AL DURING INT 10H (AH=0) +BYTES_PER_CHAR DB ? ; VALUE OF BYTES/CHARACTER IN MODES +LOAD_MECHANISM DB ? ; SUPPORT SCHEME FOR ACTIVE MODE +CHARACTER_SOURCE DB ? ; FLAG TO INDICATE: 0 = HDWR + ; 1 = DESG +INVALID_MODE EQU 0FFH ; +MASK_BIOS_LOAD EQU 00000011b ; +MASK_VECTOR_LOAD EQU 00110000B ; +MODE_MASK EQU 01111111B ; GHG Emulator Problem +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; CONFIGURATION TABLES FOR CHARACTER LOADING +; +; TABLE WILL BE FILLED IN BY INIT.ASM +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + PUBLIC LOAD_MECH ; +LOAD_MECH LABEL BYTE ; RESERVE 32 MODE SETTINGS + DB 32 DUP(?) ; REFER TO TABLES.INC FOR DETAILS +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; CONFIGURATION TABLES FOR CHARACTER SIZES +; +; TABLE WILL BE FILLED IN BY INIT.ASM +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + PUBLIC FONT_SIZE ; +FONT_SIZE LABEL BYTE ; RESERVE 32 MODE SETTINGS + DB 32 DUP(?) ; REFER TO TABLES.INC FOR DETAILS +NUM_FONT_SIZES EQU ($-FONT_SIZE) ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; INTERRUPT 10H SUPPORT CODE +; +; THE INIT ROUTINE WILL INSTALL THIS CODE INTO THE +; INTERRUPT 10H VIDEO BIOS CALL. IT CHAINS TO THE +; LOWER LEVEL (usually BIOS for Device Drivers). +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +INT_10_COM PROC FAR ; + STI ; + OR AH,AH ; TEST THE SUBFUNCTION CALL=0 + JE INT_1 ; RESERVED FOR THE COM PATH! + JMP DWORD PTR CS:ROM_INT_10 ; + ; +INT_1: ; + PUSHF ; PREPARE FOR IRET! + CALL DWORD PTR CS:ROM_INT_10 ; call routine to handle the command + PUSH AX ; + PUSH BX ; WGR ;AN000; + MOV AH,GET_MODE ; WGR get actual mode set ;AN000; + PUSHF ; WGR ;AN000; + CALL DWORD PTR CS:ROM_INT_10 ; WGR ;AN000; + MOV CS:MODE_VALUE,AL ; SAVE MODE_VALUE BEFORE CALL + and CS:MODE_VALUE,mode_mask ; GHG Emulator Problem..... + POP BX ; WGR ;AN000; + ; + CALL TEST_CP ; FIND OUT IF CP CAN BE SUPPORTED? + JNC INT_2 ; + ; + MOV CS:CHARACTER_SOURCE,0 ; IF AN ERROR OCCURRED IN FINDING THE + MOV AL,INTER_1FH ; FONT DATA INFORMATION...THEN THE + CALL VECTOR_LOAD ; INTERRUPT 1F hex VECTOR MUST BE + JUMP INT_3 ; SET TO THE HDWR CP - ELSE WRONG + ; DATA MAY BE DISPLAYED +INT_2: MOV CS:SETMODE_FLAG,OFF ; WGR ;AN000; + CALL INVOKE_DATA ; IF SO, THEN LOAD THE DATA +INT_3: POP AX ; + ; + IRET ; +INT_10_COM ENDP ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; SET BLOCK SPECIFIER = 0 +; +; THIS IS USED TO ACTIVATE BLOCK = 0 FONT. THIS PERFORMS +; DIFFERENT OPERATIONS ON VARIOUS DISPLAY ADAPTERS. THE +; RESULTS OF WHICH ARE TO ACTIVATE THE DESIGNATED FONT. +; +; INPUT: +; none +; OUTPUT: +; none +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +SET_BLOCK_SP0 PROC ; + PUSH AX ; + PUSH BX ; + MOV AX,1103H ; SET BLOCK SPECIFIER + MOV BL,ZERO ; CHAR GEN BLOCK SPECIFIER + INT 10H ; PERFORM CALL... + POP BX ; + POP AX ; + RET ; +SET_BLOCK_SP0 ENDP ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; FIND_FONT +; +; THE ROUTINE STARTS WITH THE FONT DATA POINTER, AND +; TRIES TO FIND THE FONT RESOLUTION THAT IS NEEDED. +; THIS FONT RESOLUTION IS BASED ON THE PRESENT SCREEN +; MODE WHICH IS ACTIVE. +; +; INPUT: +; ES : DI points to beginning +; of font data +; OUTPUT: +; ES : DI points to font data +; for needed resolution +; CY = 0 if found +; = 1 if not found +; +; DS = CS assumed +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +FIND_FONT PROC ; + PUSH AX ; + PUSH CX ; + PUSH DX ; + ; + MOV CX,CPD_FONTS_N ; GET NUMBER OF FONT STYLES +FF_0: MOV AH,BYTES_PER_CHAR ; GET BYTES_PER_CHAR FOR COMPARISON + ; + MOV AL,ES:[DI] ; GET #ROWS OF POINTED DATA + CMP AL,AH ; COMPARE BYTES_PER_CHAR AGAINST #ROWS + JE FF_3 ; IF MATCHED...THEN ADJUST ES:DI (CY=0) + ; + PUSH CX ; ELSE, MOVE ES:DI TO NEXT FONT START + MOV CX,ES:[DI+4] ; GET count OF CHARACTERS IN LIST + XOR AH,AH ; PREPARE AX FOR MULT + MUL CX ; CALCULATE DELTA TO NEXT FONT START + POP CX ; + ; + ADD AX,SIX ; ADD FONT STYLE HEADER OF SIX BYTES + ADD DI,AX ; ADJUST THE DI POINTER + ; THERE CAN BE NO CARRY DUE TO STRUCTURE + LOOP FF_0 ; OF FONT DATA (ie. no straddling) + STC ; + JUMP FF_4 ; +FF_3: ADD DI,SIX ; POINT TO VERY START OF DATA + CLC ; SET FLAG TO OK! +FF_4: POP DX ; + POP CX ; + POP AX ; + RET ; +FIND_FONT ENDP ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; BIOS_LOAD +; +; THIS CALL IS USED TO LOAD THE ACTIVE CP. IT LOADS +; THE ACTIVE CP WHETHER IT IS DESIGNATED OR HDWR. THE +; ACTUAL LOADING OF THE FONT IS PERFORMED BY THE 'EGA CLASS' +; BIOS ROUTINES (different for some adapters). +; +; INPUT: +; AL = ? load mechanism +; +; 7 6 5 4 3 2 1 0 +; 0 0 0 0 0 0 x x +; � ��� 1 - AX=1100H +; ����� 1 = AX=1400H +; +; ES : DI points to start of font data +; CX = ? count of characters to load +; BH = bytes per character +; DS = CS assumed... +; +; OUTPUT: +; none +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +AX_1100H EQU 00000001b ; +AX_1400H EQU 00000010b ; +EGA_INFO EQU 0487H ; ADDRESS OF INFO BYTE +EGA_ACTIVE EQU 00001000b ; MASK FOR EGA_ACTIVE/NON-ACTIVE + ; +BIOS_LOAD PROC ; + CALL GET_CURSOR_POS ; ONE MUST RECORD THE CURSOR POS DURING + ; A FONT LOAD...ELSE CURSOR TO (1,1) + PUSH BX ; + PUSH DX ; + ; + MOV DX,ZERO ; CHARACTER OFFSET INTO TABLE + MOV BL,ZERO ; BLOCK TO LOAD (Block=0) + ; + TEST AL,AX_1100H ; DETERMINE IF EGA_TYPE LOAD? + JNZ BL_00 ; IF NOT, THEN TRY FOR LCD_TYPE... + JMP BL_3 ; + ; +BL_00: PUSH BP ; SAVE REGISTERS TO BE USED + PUSH AX ; + CMP CHARACTER_SOURCE,ZERO ; TEST IF CP = HDWR + JE BL_0 ; + ; + MOV BP,DI ; POINTER TO USER TABLE (ES:BP) + MOV AX,1100H ; USER ALPHA LOAD + JUMP BL_2 ; + ; +BL_0: MOV AX,1102H ; ROM 8X8 DOUBLE DOT + CMP BYTES_PER_CHAR,8 ; + JE BL_2 ; +BL_1: MOV AL,01H ; ROM MONOCHROME SET + CMP BYTES_PER_CHAR,14 ; + JE BL_2 ; + MOV AL,04H ; ROM 8X16 SET + CMP BYTES_PER_CHAR,16 ; + JE BL_2 ; + JUMP BL_2A ; PERFORM BIOS CALL... + ; +BL_2: PUSH DS ; THIS TEST VERIFIES THAT THE EGA + PUSH AX ; ADAPTER IS PRESENTLY ACTIVE. + XOR AX,AX ; IF IT IS NOT, THEN THE EGA WILL + MOV DS,AX ; REPROGRAM THE ACTIVE CRT TO THE EGA + MOV AL,DS:EGA_INFO ; SPECIFICATION....HAZARDOUS RESULTS! + AND AL,EGA_ACTIVE ; MASK FOR EGA ACTIVE/NON-ACTIVE + POP AX ; + POP DS ; + ; + JZ BL_2AA ; IF ZERO, THE EGA IS ACTIVE...AND OK! + STC ; ELSE, EGA IS NOT ACTIVE + POP AX ; + POP BP ; AND WE MUST + JUMP BL_7 ; LEAVE WITH AN ERROR.... + ; +BL_2AA: + CMP CS:SETMODE_FLAG,OFF ; WGR MODE SET REQUIRED?.. ;AN000; + JE BL_2B ; WGR NO...JUMP TO CHARACTER LOAD. ;AN000; + PUSH AX ; WGR ;AN000; + PUSH DS ; WGR ;AN000; + XOR AX,AX ; WGR ;AN000; + MOV DS,AX ; WGR ;AN000; + PUSH DS:[VIDEO_CTRL] ; WGR ;AN000; + MOV AL,CS:MODE_VALUE ; WGR GET CURRENT MODE ;AN000; + OR AL,NOT MODE_MASK ; WGR MODE SET WITHOUT BUFFER CLEARED ;AN000; + + call Info_Ansi_ModeSet ;J.K.Tell ANSI that DISPLAY.SYS is going to call INT 10h, SET MODE function. + + XOR AH,AH ; WGR MODE SET CALL.. ;AN000; + PUSHF ; WGR ;AN000; + CALL DWORD PTR CS:ROM_INT_10 ; WGR ;AN000; + + call Info_Ansi_ModeDone ;J.K.Tell ANSI that it is through. + + POP DS:[VIDEO_CTRL] ; WGR ;AN000; + POP DS ; WGR ;AN000; + POP AX ; WGR ;AN000; +BL_2B: ; WGR WAS ISSUED (BY ME) ;AN000; + OR AX,CS:RE_CALC ; WGR INCASE RECALC IS NEEDED. ;AN000; + INT 10H ; +;AN001; EGA ROM BIOS has a bug when AX=1110h, INT 10h is issued. +; Cursor type is changed to 0C0Dh which causes the cursor to +; disappear!!! +; We are going to set Cursor type back to 0607h for EGA. + + cmp ax, 1110h ;AN001; + jne Skip_Cursor_Problem ;AN001; + push cx ;AN001; + mov ah, 1 ;AN001; + mov cx, 0607h ;AN001; + int 10h ;AN001; + pop cx ;AN001; + +Skip_Cursor_Problem: + MOV CS:RE_CALC,OFF ; WGR RESET RE_CALC VALUE ;AN000; + CALL SET_BLOCK_SP0 ; AND THEN SET_BLOCK_SPECIFIER (0) +BL_2A: POP AX ; + POP BP ; + ; +BL_3: TEST AL,AX_1400H ; + JZ BL_6 ; + ; + PUSH AX ; SAVE INDICATOR + ; + CMP CHARACTER_SOURCE,ZERO ; TEST IF CP = HDWR + JE BL_4 ; + ; + MOV AX,1400H ; LOAD USER SPECIFIED FONT + JUMP BL_5 ; + ; +BL_4: MOV AX,1401H ; ASK FOR ROM LOAD FONT + MOV BL,ZERO ; +BL_5: INT 10H ; PERFORM THE LOAD! + CALL SET_BLOCK_SP0 ; AND ALSO DO THE SET BLOCK SPECIFIER + POP AX ; + ; +BL_6: CLC ; +BL_7: POP DX ; + POP BX ; + ; + CALL SET_CURSOR_POS ; RESTORE THE CURSOR POSITION + RET ; +BIOS_LOAD ENDP ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; ASK_BIOS_INFO +; +; THIS ROUTINE IS DESIGNED TO MAKE USE OF THE NEW BIOS +; CALL IN THE '???????' AND FOLLOW-ONS. REFER TO THE +; 'Personal Systems Architecture' DCR #405 (written +; by DD). IF THIS SUPPORT IS NOT FOUND ON THE +; DISPLAY ADAPTER, THEN THE CARRY FLAG IS SET! +; +; INPUT: +; none +; OUTPUT: +; CY = 0 if found +; 1 if not supported +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +RETURN_INFO LABEL BYTE ; + DW ? ; OFFSET TO STATIC FUNCTIONALITY INFO + DW ? ; SEGMENT TO STATIC FUNCTIONALITY INFO + DB ? ; VIDEO MODE + DW ? ; COLUMNS ON SCREEN + DW ? ; LEN OF REGEN BUFFER + DW ? ; START ADDRESS IN REGEN BUFFER + DW ? ; CURSOR POSITION OF PAGE #0 + DW ? ; CURSOR POSITION OF PAGE #1 + DW ? ; CURSOR POSITION OF PAGE #2 + DW ? ; CURSOR POSITION OF PAGE #3 + DW ? ; CURSOR POSITION OF PAGE #4 + DW ? ; CURSOR POSITION OF PAGE #5 + DW ? ; CURSOR POSITION OF PAGE #6 + DW ? ; CURSOR POSITION OF PAGE #7 + DW ? ; CURSOR MODE SETTING + DB ? ; ACTIVE DISPLAY PAGE + DW ? ; CRT CONTROLLER ADDRESS + DB ? ; CRT_MODE_SET + DB ? ; CRT_PALETTE + DB ? ; ROWS ON SCREEN +CHAR_H LABEL WORD ; + DW ? ; CHARACTER HEIGHT + DB ? ; DISPLAY COMBINATION (ACTIVE) + DB ? ; DISPLAY COMBINATION (ALTERNATE) +L_RET_INFO EQU ($-RETURN_INFO) ; + DB (40h-L_RET_INFO) DUP (?) ; REMAINING DATA.... + ; +STATIC_INFO STRUC ; + DB ? ; VIDEO MODES (part 1) + DB ? ; VIDEO MODES (part 2) + DB ? ; VIDEO MODES (part 3) + DB ? ; RESERVED + DB ? ; RESERVED + DB ? ; RESERVED + DB ? ; RESERVED +SI_LINE DB ? ; SCAN LINES AVAILABLE IN TEXT MODES +STATIC_INFO ENDS ; + ; +ASK_BIOS_INFO PROC ; + PUSH ES ; + PUSH DI ; + PUSH BX ; + PUSH AX ; + ; + MOV AX,1B00H ; BIOS CALL FOR 'EGA +' INFORMATION + MOV BX,0 ; + MOV DI,OFFSET RETURN_INFO ; SETUP THE RETURN ADDRESS (above) + PUSH CS ; + POP ES ; + INT 10H ; + ; + CMP AL,1BH ; IF AL <> 1BH, THEN ADAPTER DOES + JNZ ABI_3 ; NOT SUPPORT THIS CALL...EXIT w/ERROR + CLC ; + JUMP ABI_4 ; ELSE, LEAVE w/o ERROR + ; WITH THE TABLE ALL FILLED IN.... +ABI_3: STC ; +ABI_4: POP AX ; + POP BX ; + POP DI ; + POP ES ; + RET ; +ASK_BIOS_INFO ENDP ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; ASK_BIOS_FONT_SIZE +; +; THIS ROUTINE RETURNS THE PRESENT FONT RESOLUTION. +; IT IS SUPPORTED VIA THE ENHANCED INT 10H BIOS CALL. +; REFER TO THE 'ASK_BIOS_INFO' FOR DETAILS. +; +; INPUT: +; none +; OUTPUT: +; AL = bytes/character +; CY = 0 if found +; 1 if not supported (and AL = unchanged) +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +ASK_BIOS_FONT_SIZE PROC ; + PUSH BX ; + CALL ASK_BIOS_INFO ; + JC ABFS_1 ; + MOV BX,CHAR_H ; + MOV AL,BL ; + CMP AL,ZERO ; PERFORM CHECK FOR BIOS ERROR! + JNZ ABFS_0 ; + STC ; + JUMP ABFS_1 ; +ABFS_0: CLC ; +ABFS_1: POP BX ; + RET ; +ASK_BIOS_FONT_SIZE ENDP ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; ASK_BIOS_SCAN_LINES +; +; THIS IS SIMILAR TO THE ASK_BIOS_FONT_SIZE, EXCEPT IT +; WILL RETURN THE AVAILABLE VERTICAL SCAN LINES FOR ALL +; TEXT MODES. REFER TO REFERENCED DCR #405. +; +; INPUT: +; none +; OUTPUT: +; AL = encoded SCAN LINES (in text modes) +; CY = 0 if found +; 1 if not supported +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +ASK_BIOS_SCAN_LINES PROC ; + CALL ASK_BIOS_INFO ; ASK BIOS FOR DETAILED INFO... + JC ABSL_0 ; IF CY = 1, THEN BIOS NOT SMART ENOUGH! + PUSH BX ; + PUSH SI ; + PUSH ES ; + LEA SI,RETURN_INFO ; GET POINTERS TO STATIC TABLE.... + MOV BX,CS:[SI+2] ; GET STATIC INFO SEGMENT + MOV ES,BX ; & + MOV SI,CS:[SI] ; GET STATIC INFO OFFSET + MOV AL,ES:[SI].SI_LINE ; THEN, FINALLY THE ENCODED SCAN_LINES + POP ES ; + POP SI ; + POP BX ; +ABSL_0: RET ; +ASK_BIOS_SCAN_LINES ENDP ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; VECTOR_LOAD +; +; THIS ROUTINE WORKS SIMILARLY TO THE BIOS_LOAD, EXCEPT THAT +; THE FONT SUPPORT IS LOADED VIA A VECTOR MECHANISM...RATHER +; THAN USING BIOS. THE BIOS_LOAD METHOD IS USED EXCLUSIVELY +; FOR TEXT MODES ONLY....WHILE THE VECTOR_LOAD IS FOR APA +; (all points addressable). +; +; THE VECTOR SUPPORT IS BASED ON THE INTERRUPT VECTORS 1F hex +; AND 43 hex. THE INTERRUPT 1F hex HAS SPECIAL CONSIDERATIONS +; DUE TO THE 'GRAFTABL.COM' PROGRAM PROVIDED ON DOS. REFER +; TO THE 'CPS DESIGN DOCUMENT' (written by IBM Canada Lab) FOR +; DETAILS. +; +; INPUT: +; AL = ? load mechanism +; +; 7 6 5 4 3 2 1 0 +; x x x x 0 0 0 0 +; � ����������� 1 = INT 1FH +; ������������� 1 = INT 43H +; 1 = int 1FH special handling +; +; +; ES : DI points to start of font data +; CX = ? count of characters to load +; BH = bytes per character +; +; DS = CS assumed +; +; *********************************************************** +; ************** SCHEDULED FOR OPTIMIZATION ***************** +; *********************************************************** +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +VECTOR_MODE DB ? ; +INTER_43H EQU 00100000b ; +INTER_1FH EQU 00010000b ; +LCD_1FH EQU 01000000b ; +INTER_44H EQU 10000000b ; + ; +VECTOR_LOAD PROC ; + TEST AL,INTER_1FH ; CHECK IF ANY INTERRUPT 1FH PROCESSING + JNZ VL_00 ; IS NEEDED. + JUMP VL_3 ; IS NEEDED. + ; +VL_00: MOV CS:VECTOR_MODE,AL ; + PUSH AX ; SAVE AX REGISTER.... + MOV AX,0B000H ; INTERFACE CALL TO GRAFTABL TO SEE + INT 2FH ; IF SUPPORT IS LOADED. + CMP AL,0FFH ; IF SO, THEN EXIT! + POP AX ; RESTORE AX REGISTER.. + JNE VL_2AA ; IF NOT 0FFH=AL, THEN NOT LOADED! + JUMP VL_3 ; EXIT, GRAFTABL HAS CONTROL + ; +VL_2AA: CMP CHARACTER_SOURCE,0 ; TEST IF CP = HDWR + JE VL_1 ; + ; + PUSH DS ; + PUSH AX ; + XOR AX,AX ; + MOV DS,AX ; + MOV AX,DI ; PUT DI INTO AX FOR ADJUSTMENT + ADD AX,8*128 ; + ; + CLI ; + MOV DS:WORD PTR INT_1F_LOW,AX; SET THE HIGH 128 CHARACTERS + MOV DS:WORD PTR INT_1F_HI,ES; + STI ; + MOV CS:OLD_INT_1F,AX ; SAVE VALUE TO INTERNAL STORAGE + MOV CS:OLD_INT_1F+2,ES ; + POP AX ; + POP DS ; + JUMP VL_3 ; + ; +VL_1: TEST CS:VECTOR_MODE,LCD_1FH ; CHECK IF LCD ACTIVE + JZ VL_11A ; + ; + PUSH DS ; SET INT 44 hex WITH HDWR CP + PUSH DI ; + PUSH AX ; + XOR AX,AX ; + MOV DS,AX ; + CLI ; + MOV DI,CS:ROM_INT_1F ; + MOV DS:WORD PTR INT_1F_LOW,DI; SET NEW VECTOR + MOV CS:OLD_INT_1F,DI ; SAVE VALUE TO INTERNAL STORAGE + MOV DI,CS:ROM_INT_1F+2 ; + MOV DS:WORD PTR INT_1F_HI,DI; + MOV CS:OLD_INT_1F+2,DI ; + STI ; + POP AX ; + POP DI ; + POP DS ; + JUMP VL_3 ; + ; +VL_11A: PUSH ES ; SET INT 1F hex WITH HDWR CP + PUSH DS ; + PUSH BP ; + PUSH AX ; + PUSH BX ; + PUSH CX ; + PUSH DX ; + MOV AX,1130H ; GET EGA INFORMATION + MOV BH,4 ; GET ROM DOUBLE DOT PTR (TOP) + INT 10H ; + XOR AX,AX ; + MOV DS,AX ; + CLI ; + MOV DS:WORD PTR INT_1F_LOW,BP; SET THE HIGH 128 CHARACTERS + MOV DS:WORD PTR INT_1F_HI,ES; + STI ; + MOV CS:OLD_INT_1F,BP ; SAVE VALUE TO INTERNAL STORAGE + MOV CS:OLD_INT_1F+2,ES ; + POP DX ; + POP CX ; + POP BX ; + POP AX ; + POP BP ; + POP DS ; + POP ES ; + ; +VL_3: TEST AL,INTER_43H ; + JZ VL_8 ; + ; + CMP CHARACTER_SOURCE,0 ; TEST IF CP = HDWR + JE VL_5 ; + ; + PUSH DS ; SET INT 43 hex WITH USER TABLE + PUSH AX ; + XOR AX,AX ; + MOV DS,AX ; + CLI ; + MOV DS:WORD PTR INT_43_LOW,DI; + MOV DS:WORD PTR INT_43_HI,ES; + STI ; + POP AX ; + POP DS ; + JUMP VL_9 ; + ; +VL_5: PUSH BX ; SET INT 43 hex WITH HDWR CP + MOV BH,3 ; RETURN ROM DOUBLE DOT PTR + CMP BYTES_PER_CHAR,8 ; WORK FOR HARDWARE CP's + JE VL_6 ; + ; + MOV BH,2 ; RETURN ROM 8X14 PTR + CMP BYTES_PER_CHAR,14 ; + JE VL_6 ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; THIS IS BH=6 (??????? WAS IN ERROR). THE ?????? HAS +; THE LATEST FIX SUPPORT. +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + MOV BH,6 ; SET FOR ROM 8X16 PTR + CMP BYTES_PER_CHAR,16 ; + JNE VL_7 ; + ; +VL_6: PUSH AX ; YES, ONCE AGAIN, SAVE THOSE REG'ies + PUSH CX ; + PUSH DX ; + PUSH DS ; + PUSH ES ; + PUSH BP ; + MOV AX,1130H ; GET EGA INFORMATION (PTR=ES:DI) + INT 10H ; + XOR AX,AX ; + MOV DS,AX ; + CLI ; + MOV DS:WORD PTR INT_43_LOW,BP; SET THE FULL CHARACTER SET + MOV DS:WORD PTR INT_43_HI,ES; + STI ; + POP BP ; + POP ES ; + POP DS ; + POP DX ; + POP CX ; + POP AX ; +VL_7: POP BX ; + ; +VL_8: TEST AL,INTER_44H ; Test for INTERRUPT 44 Hex + JZ VL_9 ; + ; + CMP CHARACTER_SOURCE,0 ; TEST IF CP = HDWR + JE VL_8A ; + ; + PUSH DS ; SET INT 43 hex WITH USER TABLE + PUSH AX ; + XOR AX,AX ; + MOV DS,AX ; + CLI ; + MOV DS:WORD PTR INT_44_LOW,DI; + MOV DS:WORD PTR INT_44_HI,ES; + STI ; + POP AX ; + POP DS ; + JUMP VL_9 ; + ; +VL_8A: PUSH DS ; SET INT 44 hex WITH HDWR CP + PUSH DI ; + PUSH AX ; + XOR AX,AX ; + MOV DS,AX ; + CLI ; + MOV DI,CS:ROM_INT_44 ; + MOV DS:WORD PTR INT_44_LOW,DI; + MOV DI,CS:ROM_INT_44+2 ; + MOV DS:WORD PTR INT_44_HI,DI; + STI ; + POP AX ; + POP DI ; + POP DS ; + ; +VL_9: RET ; +VECTOR_LOAD ENDP ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; LOAD CODE PAGE +; +; This routine is called by INVOKE_DATA and +; by the INT_10H code. +; +; EXIT: +; CP_ES points to the final CP data segment +; CP_DI points to the final CP data offset +; +; CY = 0 if no error detected +; 1 if error occurred +; AX = 0000 if hardware code page matched +; AX = 0001 if routine is presently busy +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +CP_ES DW ? ; +CP_DI DW ? ; +LOAD_CP_SEMA DB 0 ; SEMAPHORE TO TELL IF ROUTINE IS + ; ALREADY ACTIVE.... + ; +ANSI_BUFFER LABEL BYTE ; WGR BUFFER FOR ANSI ;AN000; + DB ZERO ; WGR INFO LEVEL ;AN000; + DB ZERO ; WGR ;AN000; + DW ANSI_BUF_SIZE ; WGR LENGTH OF DATA ;AN000; + DW ? ; WGR CONTROL FLAGS ;AN000; +D_MODE LABEL BYTE ; WGR DISPLAY MODE ;AN000; + DB ? ; WGR ;AN000; + DB ? ; WGR RESERVED ;AN000; + DW ? ; WGR COLORS ;AN000; + DW ? ; WGR WIDTH ;AN000; + DW ? ; WGR LENGTH ;AN000; + DW ? ; WGR COLUMNS ;AN000; +SCR_ROWS LABEL WORD ; WGR ROWS ;AN000; + DW ? ; WGR ;AN000; + ; +RE_CALC DW OFF ; WGR VALUE TO OR IN CHARACTER LOAD ;AN000; +SETMODE_FLAG DB OFF ; WGR FLAG INDICATING A MODE SET IS REQUIRED ;AN000; + ; +TEST_CP PROC ; + CMP CS:LOAD_CP_SEMA,ZERO ; TEST IF ALREADY ACTIVE! + JE I10_0 ; + STC ; IF ALREADY ACTIVE, THEN SET ERROR + MOV AX,ONE ; TO INDICATE THAT ACTIVE.... + RET ; + ; +I10_0: MOV CS:LOAD_CP_SEMA,ONE ; SET ROUTINE NOW ACTIVE... + PUSH BX ; + PUSH CX ; + PUSH DX ; WGR ;AN000; + PUSH SI ; + PUSH DI ; + PUSH DS ; + PUSH ES ; + ; + PUSH CS ; + POP DS ; SETUP DS SEGMENT TO CS + PUSH CS ; + POP ES ; SETUP ES SEGMENT TO CS + ; + XOR AH,AH ; AH=0 FOR MODE SET, AL=MODE_TYPE + MOV AL,MODE_VALUE ; + MOV SI,AX ; ESTABLISH INDEX INTO LOAD_MECH table + MOV AL,[SI].FONT_SIZE ; GET FONT_SIZE FOR THIS MODE_VALUE + OR AL,AL ; TEST FOR MODE_VALUE=0 + JNZ I10_2 ; + ; + CALL ASK_BIOS_FONT_SIZE ; GET BIOS TO INDICATE FONT_SIZE + JC I10_A ; IF CY=1 THEN ERROR OCCURRED + ; +I10_2: PUSH AX ; WGR SAVE FONT SIZE ;AN000; + MOV Ah,ANSI_2F ; WGR REQUEST TO ANSI FOR SCREEN SIZE ;AN000; + mov al,IOCTL_2F ; IOCTL request + MOV CL,GET_SUBFUNC ; WGR GET CHARACTERISTICS FUNCTION ;AN000; + LEA DX,ANSI_BUFFER ; WGR BUFFER FOR REQUEST STORAGE ;AN000; + INT 2FH ; WGR ;AN000; + JC I10_3 ; WGR IF CARRY THEN ERROR..CONT AS BEFORE ;AN000; + CMP AL,16H ; WGR ENSURE THAT ANSI WAS THERE.. ;AN000; + JNE I10_3 ; WGR NO....CONT AS BEFORE ;AN000; + CMP D_MODE,ON ; WGR ARE WE IN A TEXT MODE? ;AN000; + JNE I10_3 ; WGR NO...CONT AS BEFORE.. ;AN000; + CMP SCR_ROWS,DEFAULT_LEN ; WGR IS IT JUST 25 LINES?.. ;AN000; + JE I10_3 ; WGR THEN...CONT AS BEFORE.. ;AN000; + POP AX ; WGR GREATER THAN 25 LINES SO...POP OFF.. ;AN000; + MOV CS:RE_CALC,RECALC_ON ; WGR RECALCULATION REQUIRED ;AN000; + MOV CS:SETMODE_FLAG,ON ; WGR A MODE SET IS REQUIRED ;AN000; + MOV AL,EIGHT ; WGR OLD FONT SIZE AND USE AN 8 HIGH BOX. ;AN000; + JMP I10_4 ; WGR ;AN000; + ; +I10_3: POP AX ; WGR RESTORE OLD VALUE ;AN000; + MOV CS:SETMODE_FLAG,OFF ; WGR NO MODE SET IS REQUIRED. ;AN000; + ; +I10_4: MOV BYTES_PER_CHAR,AL ; SAVE VALUE DETERMINED + ; + MOV CX,CPD_ACTIVE ; + CMP CX,-1 ; CHECK IF ACTIVE CP=PLACE_HOLDER + JE I10_A ; IF SO, THEN STAY SLEEPING + ; + PUSH CX ; + CALL FIND_CP ; DETERMINE IF THE CODE PAGE=HDWR + MOV BL,CL ; + POP CX ; RESTORE CP VALUE FOR FUTURE REF + JC I10_A ; + MOV CHARACTER_SOURCE,BL ; + OR BL,BL ; TEST TYPE OF CP? + JE I10_B ; IF CODE PAGE=HDWR THEN RESOLUTION OK! + ; + CALL FIND_FONT ; CHECK IF THE FONT RESOLUTION IS HERE + JC I10_A ; IF CY=0 THEN ES:DI POINT TO FONT + MOV CS:CP_DI,DI ; + MOV DI,ES ; + MOV CS:CP_ES,DI ; + JUMP I10_B ; + ; +I10_A: XOR AX,AX ; + STC ; +I10_B: POP ES ; + POP DS ; + POP DI ; + POP SI ; + POP DX ; WGR ;AN000; + POP CX ; + POP BX ; + MOV CS:LOAD_CP_SEMA,ZERO ; SET ROUTINE NOW COMPLETED.... + RET ; +TEST_CP ENDP ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; INVOKE DATA +; +; THIS ROUTINE PERFORMS THE LOADING OF THE CODE PAGE +; INFORMATION. IT USES THE POINTERS FROM THE TEST_CP +; ROUTINE. +; +; ENTRY: +; CP_ES points to the actual data of CP segment +; CP_DI points to the actual data of CP offset +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +INVOKE_DATA PROC ; + PUSH BX ; + PUSH CX ; + PUSH SI ; + PUSH DI ; + PUSH DS ; + PUSH ES ; + ; + MOV DI,CS:CP_ES ; GET THE ES:DI COMBO FROM TEST_CP + MOV ES,DI ; + MOV DI,CS:CP_DI ; + ; + XOR AH,AH ; + MOV AL,MODE_VALUE ; CREATE INDEX TO GET LOAD_MECH + MOV SI,AX ; + MOV AL,[SI].LOAD_MECH ; + MOV LOAD_MECHANISM,AL ; SAVE THIS VALUE FOR OTHER ROUTINES + TEST AL,MASK_BIOS_LOAD ; FIND OUT IF INT 10H SUPPORTS + JZ INV_7 ; + ; + MOV CX,256 ; **** HARD CODED COUNT **** + MOV BH,BYTES_PER_CHAR ; + CALL BIOS_LOAD ; GET BIOS CODE TO GIVE THE CP SUPPORT + JC INV_A ; + ; +INV_7: TEST AL,MASK_VECTOR_LOAD ; + JZ INV_8 ; + ; + CALL VECTOR_LOAD ; ESTABLISH THE VECTORS FOR CP SUPPORT + JC INV_A ; + ; +INV_8: CLC ; + JUMP INV_B ; +INV_A: XOR AX,AX ; + STC ; +INV_B: POP ES ; + POP DS ; + POP DI ; + POP SI ; + POP CX ; + POP BX ; + RET ; +INVOKE_DATA ENDP ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; GET_CURSOR_POSITION +; +; This routine is called by BIOS_LOAD. It is used +; to ask for the cursor position before a character +; download...since BIOS puts the cursor to (1,1). +; +; +; INPUT: +; none +; OUTPUT: +; BX = page number +; DX = cursor position +; +; DS = CS assumed +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +ACTIVE_PAGE DW ? ; +CURSOR_POS DW ? ; + ; +GET_CURSOR_POS PROC ; + PUSHF ; + PUSH DX ; + PUSH CX ; + PUSH BX ; + PUSH AX ; + MOV AH,15 ; CALL TO GET CURRENT_VIDEO_STATE + PUSHF ; + CALL DWORD PTR CS:ROM_INT_10 ; call routine to handle the command + MOV ACTIVE_PAGE,BX ; + ; + MOV AH,3 ; + PUSHF ; + CALL DWORD PTR CS:ROM_INT_10 ; call routine to handle the command + MOV CURSOR_POS,DX ; + POP AX ; + POP BX ; + POP CX ; + POP DX ; + POPF ; + RET ; +GET_CURSOR_POS ENDP ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; SET_CURSOR_POSITION +; +; This routine is called by BIOS_LOAD. It is used +; to tell BIOS where to put the cursor. +; +; INPUT: +; BX = page number +; DX = cursor position +; OUTPUT: +; none +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +SET_CURSOR_POS PROC ; + PUSHF ; + PUSH DX ; + PUSH BX ; + PUSH AX ; + MOV AH,2 ; + MOV BX,ACTIVE_PAGE ; + MOV DX,CURSOR_POS ; + PUSHF ; + CALL DWORD PTR CS:ROM_INT_10 ; call routine to handle the command + POP AX ; + POP BX ; + POP DX ; + POPF ; + RET ; +SET_CURSOR_POS ENDP ; + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Info_Ansi_ModeSet +; +; INPUT:None +; OUTPUT:None +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +Info_Ansi_ModeSet proc near + push ax + push dx + push ds + push si + pushf + push cs + pop ds + lea si, ANSI_DA_INFO + mov [si].DA_SETMODE_FLAG, 1 ;Tell ANSI we are calling int10h, Set Mode funciton + mov dx, si + mov ah, ANSI_2F + mov al, DA_INFO_2F + int 2fh ;We don't worry about whether ANSI installed or not. + popf + pop si + pop ds + pop dx + pop ax + ret +Info_Ansi_ModeSet endp + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Info_Ansi_ModeDone +; +; INPUT:None +; OUTPUT:None +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +Info_Ansi_ModeDone proc near + push ax + push dx + push ds + push si + pushf + push cs + pop ds + lea si, ANSI_DA_INFO + mov [si].DA_SETMODE_FLAG, 0 ;Tell ANSI we are done with int10h, Set Mode funciton + mov dx, si + mov ah, ANSI_2F + mov al, DA_INFO_2F + int 2fh ;We don't worry about whether ANSI installed or not. + popf + pop si + pop ds + pop dx + pop ax + ret +Info_Ansi_ModeDone endp + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 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 @@ +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; INTERRUPT 2F HEX COMMUNICATION ROUTINE +; +; This routine is used to communicate between the CON driver +; and the Keyboard routine. The various calls are as follows: +; +; 1) not yet defined +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +IF1 ; + %OUT . ®INT2FCOM.INC¯ +ENDIF ; + PUBLIC ROM_INT_2F ; + PUBLIC INT_2F_COM ; + PUBLIC ABORT ; + ; +CON_REQ LABEL WORD ; THESE CALLS START AT '00H' + DW OFFSET CON_INSTALL ; + DW OFFSET CON_INVOKE ; + DW OFFSET CON_QUERY_CP ; + DW OFFSET CON_QUERY_PARAMETER ; +CON_MAX EQU ($-CON_REQ)/2 ; + ; +QPARM_TABLE LABEL WORD ; + DW OFFSET CPD_DESG_N ; + DW OFFSET CPD_FONTS_N ; + DW OFFSET CPD_HDWR_N ; +QPARM_ENTRY EQU ($-QPARM_TABLE)/2 ; + ; +ROM_INT_2F DW ? ; Int 2FH vector offset + DW ? ; Int 2FH vector segment +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; INTERRUPT 2F HEX +; +; Communication between the KEYBOARD (KEYB.COM) and the +; CON Device Driver. +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +INT_2F_COM PROC FAR ; + STI ; + CMP AH,0ADH ; TEST THE SUBFUNCTION CALL + JNE I2C_6 ; RESERVED FOR THE COM PATH! + ; + CMP AL,10H ; WGR ;AN000; + JNE I2C_0 ; WGR ;AN000; + CALL CHECK_VALID ; WGR ;AN000; + PUSH SI ; WGR ;AN000; + JMP I2C_1 ; WGR ;AN000; +I2C_0: ; WGR + CMP AL,CON_MAX ; TEST IF IT IS ABOVE HIGH + JAE I2C_6 ; CON CALL? + ; + PUSH SI ; FORMULATE THE JUMP POINTER + PUSH AX ; + XOR AH,AH ; + MOV SI,AX ; + POP AX ; + ADD SI,SI ; + CALL CS:CON_REQ[SI] ; call routine to handle the command +I2C_1: ; + PUSH AX ; SAVE AX REGISTER TO PLAY WITH STACK + MOV SI,SP ; + MOV AX,SS:[SI+8] ; ACCOUNT FOR SI & AX ON STACK + JC I2C_2 ; + AND AX,NOT_CY ; + JUMP I2C_3 ; +I2C_2: OR AX,CY ; +I2C_3: MOV SS:[SI+8],AX ; + POP AX ; + POP SI ; +ABORT: IRET ; +I2C_6: JMP DWORD PTR CS:ROM_INT_2F ; +INT_2F_COM ENDP ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; CON_INSTALL +; +; A STRAIGHT FORWARD ROUTINE WHICH INDICATES WHETHER OR NOT +; ANY PC DOS CPS-CON SUPPORT WAS LOADED DURING BOOTSTRAP. +; THE INTERFACE IS AS PER 'DOS FUNCTIONAL SPEC' +; (Program Interfaces). +; +; INPUT: +; none +; +; OUTPUT: +; AX = (-1) if loaded +; no change if not....since this is not even loaded! +; BX = [upper nibble][lower nibble] = MAJOR - MINOR +; release number. +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +CON_INSTALL PROC ; + MOV AX,-1 ; CHANGE AX TO '0FFFFH' AND BX TO + MOV BX,0100H ; MAJOR - MINOR VERSION # + CLC ; NO ERROR TO INDICATE.... + RET ; +CON_INSTALL ENDP ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; CHECK_VALID +; +; THIS ROUTINE CHECKS TO SEE IF THE CURRENT CODE PAGE HAS BEEN +; PREPARED FOR AN 8X8 RAM FONT. THIS IS AN INTERFACE TO ANSI.SYS +; TO ENSURE THAT A REQUEST FOR > 25 LINES IS VALID. +; +; INPUT: +; none +; +; OUTPUT: +; CF = 1 IF NOT FONT NOT AVAILABLE +; = 0 IF FONT IS AVAILABLE. +; +; AUTHOR: WGR +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +CHECK_VALID PROC ; ;AN000; + CMP CS:CPD_ACTIVE,-1 ; see if a code page has been.. ;AN000; + JNE CV_1 ; selected? ;AN000; + CLC ; no..therefore hardware code page.. ;AN000; + JMP CV_4 ; okay...exit with carry clear. ;AN000; +CV_1: ; ;AN000; + PUSH BX ; s ;AN000; + PUSH CX ; a ;AN000; + PUSH DX ; v ;AN000; + PUSH DI ; e ;AN000; + PUSH SI ; r ;AN000; + PUSH DS ; e ;AN000; + PUSH ES ; g ;AN000; + PUSH CS ; s. ;AN000; + POP DS ; establish addressibility to data ;AN000; + MOV CX,CPD_ACTIVE ; use active code page... ;AN000; + CALL FIND_CP ; is the code page prepared? ;AN000; + JC CV_3 ; no....problem..exit with carry set. ;AN000; + CMP CX,0 ; okay...check if hardware code page? ;AN000; + JNE CV_2 ; ;AN000; + CLC ; yes...so okay...exit with carry clear;AN000; + JMP CV_3 ; ;AN000; +CV_2: ; ;AN000; + MOV DL,CS:BYTES_PER_CHAR ; save current box size.. ;AN000; + PUSH DX ; ;AN000; + MOV CS:BYTES_PER_CHAR,8 ; check for 8x8 box (>25 line support) ;AN000; + CALL FIND_FONT ; is font size there?? ;AN000; + POP DX ; ;AN000; + MOV CS:BYTES_PER_CHAR,DL ; restore old box size...FIND_FONT... ;AN000; +CV_3: ; will have returned.. ;AN000; + POP ES ; with carry set appropriately ;AN000; + POP DS ; ;AN000; + POP SI ; restore ;AN000; + POP DI ; ;AN000; + POP DX ; registers. ;AN000; + POP CX ; ;AN000; + POP BX ; ;AN000; +CV_4: ; ;AN000; + RET ; return. ;AN000; +CHECK_VALID ENDP ; ;AN000; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; CON_INVOKE +; +; THIS ROUTINE IS A SECOND INTERFACE TO THE CPS CON DEVICE +; TO ACTIVATE A PARTICULAR CODE PAGE. THIS MAKE USE OF THE +; SAME ROUTINES AS THE GENERIC IOCTL CALLS (via INT 21H). +; A SEMAPHORE IS PROVIDED BY THE IOCTL CALLS TO PREVENT +; RE-ENTRANCY....WHICH MAY CAUSE INTERESTING RESULTS!! +; +; INPUT: +; BX = code page to activate +; +; OUTPUT: +; CY = 0 if CP was activated +; 1 if an error occurred during activation +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +CON_INVOKE PROC ; + PUSH DS ; + PUSH ES ; + CMP CS:G_IOCTL_SEMA,ONE ; ARE GENERIC IOCTL ROUTINES ACTIVE??? + JE CI_3 ; IF SO, THEN EXIT WITH ERROR... + ; + PUSH CS ; + POP DS ; + PUSH CS ; + POP ES ; + PUSH CPD_ACTIVE ; + MOV CPD_ACTIVE,BX ; SET THE ACTIVE CP = REQUESTED + CALL TEST_CP ; FIND OUT IF CP IS THERE.... + POP CPD_ACTIVE ; + JC CI_3 ; IF CY=1, THEN LEAVE OLD CP ALONE! + CALL INVOKE_DATA ; LOAD THE DATA.... + JC CI_3 ; IF ERROR, THEN FONT NOT AVAILABLE + MOV CPD_ACTIVE,BX ; + PUSH DX ; + MOV DX,BX ; + CALL SIGNAL_KBD_INVK ; + POP DX ; + JC CI_3 ; SET CARRY IF KEYBOARD ERROR OCCURRED. + CLC ; NO ERROR TO INDICATE.... + POP ES ; + POP DS ; + RET ; +CI_3: STC ; + POP ES ; + POP DS ; + RET ; +CON_INVOKE ENDP ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; CON_QUERY_CP +; +; RETURNS THE ACTIVE CODE PAGE VALUE....CPD_ACTIVE VALUE +; CHECKED FOR INVALID. +; +; INPUT: +; none +; OUTPUT: +; BX = CODE PAGE ACTIVATED <-1 IF NONE ACTIVE> +; CY = 1 IF CP INVALID (BX = -1) +; 0 IF CP VALID +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +CON_QUERY_CP PROC ; + MOV BX,CS:CPD_ACTIVE ; + CMP BX,-1 ; + JNE CQCP_0 ; + MOV AX,ONE ; SET ERROR CONDITION TO (non-active) + STC ; + RET ; +CQCP_0: CLC ; + RET ; +CON_QUERY_CP ENDP ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; QUERY PARAMETER INFORMATION +; +; ENTRY: ES:DI points to data table +; CX = max size of table to fill (in bytes) +; EXIT: ES:DI filled with formatted data; DW #DESG,#FONTS,#HDWR,CPx's +; CY = 1 if problem with table creation +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +CON_QUERY_PARAMETER PROC ; + PUSH DS ; + PUSH AX ; + PUSH BX ; + PUSH CX ; + PUSH DI ; + ; + PUSH CS ; + POP DS ; + ; PERFORM CHECK ON LGTH OF BUFFER + MOV BX,THREE ; MANDATORY THREE WORD-STARTER + ADD BX,CPD_HDWR_N ; ADD # CP's IN HARDWARE + ADD BX,CPD_DESG_N ; ADD # CP's IN DESIGNATION + SHL BX,1 ; CONVERT TO BYTES + CMP BX,CX ; VERIFY THAT TABLE WILL FIT... + JG CQP_3 ; SET ERROR CONDITION! + ; + LEA BX,QPARM_TABLE ; + MOV CX,QPARM_ENTRY ; +CQP_0: MOV SI,[BX] ; + MOV AX,[SI] ; + MOV ES:[DI],AX ; + INC BX ; + INC BX ; + INC DI ; + INC DI ; + LOOP CQP_0 ; + ; + CALL GET_HDWR_CP ; + MOV CX,[SI] ; + OR CX,CX ; + JZ CQP_1 ; + INC SI ; + INC SI ; + REP MOVSW ; + ; +CQP_1: CALL GET_DESG_CP ; + MOV CX,[SI] ; + OR CX,CX ; + JE CQP_2 ; + INC SI ; + INC SI ; + REP MOVSW ; + ; +CQP_2: POP DI ; + POP CX ; + POP BX ; + POP AX ; + POP DS ; + CLC ; CLEAR ERROR CONDITION! + RET ; + ; +CQP_3: POP DI ; + POP CX ; + POP BX ; + POP AX ; + POP DS ; + STC ; TELL CALLER THAT ERROR OCCURRED! + RET ; +CON_QUERY_PARAMETER ENDP ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; SIGNAL KEYBOARD THAT INVOKE JUST OCCURRED! +; +; INPUT: +; DX = code page just invoked! +; OUTPUT: +; none +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +SIGNAL_KBD_INVK PROC ; + PUSH AX ; + PUSH BX ; + MOV AX,0AD81H ; + MOV BX,DX ; + CLC ; CLEAR THE CARRY IN CASE NOT THERE + INT 2FH ; + POP BX ; + POP AX ; + RET ; +SIGNAL_KBD_INVK ENDP ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 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 @@ +CODE SEGMENT BYTE PUBLIC 'CODE' + ASSUME CS:CODE,DS:CODE + +IF1 + %OUT EGA.CPI creation file + %OUT . + %OUT CP SRC files: + %OUT . + %OUT . CODE PAGE: 437 +ENDIF + +EGA437: DW LEN_437 ;SIZE OF ENTRY HEADER + DW POST_EGA437,0 ;POINTER TO NEXT HEADER + DW 1 ;DEVICE TYPE + DB "LCD " ;DEVICE SUBTYPE ID + DW 437 ;CODE PAGE ID + DW 3 DUP(0) ;RESERVED + DW OFFSET DATA437,0 ;POINTER TO FONTS +LEN_437 EQU ($-EGA437) + +DATA437:DW 1 ;CART/NON-CART + DW 1 ;# OF FONTS + DW LEN_D437 ;LENGTH OF DATA +D437: ; + DB 8,8 ;CHARACTER BOX SIZE + DB 0,0 ;ASPECT RATIO (UNUSED) + DW 256 ;NUMBER OF CHARACTERS + Db 000h,000h,000h,000h,000h,000h,000h,000h ; Hex #0 + Db 03Ch,042h,0A5h,0A5h,081h,0BDh,05Ah,03Ch ; Hex #1 + Db 03Ch,07Eh,0DBh,0DBh,0FFh,0C3h,066h,03Ch ; Hex #2 + Db 036h,07Fh,07Fh,07Fh,03Eh,01Ch,008h,000h ; Hex #3 + Db 008h,01Ch,03Eh,07Fh,03Eh,01Ch,008h,000h ; Hex #4 + Db 01Ch,03Eh,01Ch,07Fh,07Fh,036h,008h,01Ch ; Hex #5 + Db 008h,01Ch,03Eh,07Fh,07Fh,036h,008h,01Ch ; Hex #6 + Db 000h,000h,018h,03Ch,03Ch,018h,000h,000h ; Hex #7 + Db 0FFh,0FFh,0E7h,0C3h,0C3h,0E7h,0FFh,0FFh ; Hex #8 + Db 000h,000h,03Ch,066h,066h,03Ch,000h,000h ; Hex #9 + Db 0FFh,0FFh,0C3h,099h,099h,0C3h,0FFh,0FFh ; Hex #A + Db 007h,003h,03Eh,066h,066h,066h,03Ch,000h ; Hex #B + Db 03Ch,066h,066h,066h,03Ch,018h,03Ch,018h ; Hex #C + Db 008h,00Ch,00Eh,00Ah,00Ah,008h,038h,030h ; Hex #D + Db 018h,016h,019h,017h,071h,061h,007h,006h ; Hex #E + Db 048h,06Bh,03Eh,0E4h,027h,07Ch,0D6h,012h ; Hex #F + Db 040h,070h,07Ch,07Fh,07Ch,070h,040h,000h ; Hex #10 + Db 001h,007h,01Fh,07Fh,01Fh,007h,001h,000h ; Hex #11 + Db 018h,03Ch,07Eh,018h,018h,07Eh,03Ch,018h ; Hex #12 + Db 036h,036h,036h,036h,036h,000h,036h,000h ; Hex #13 + Db 03Fh,06Ah,06Ah,03Ah,00Ah,00Ah,01Ah,000h ; Hex #14 + Db 03Ch,076h,038h,06Ch,036h,01Ch,06Eh,03Ch ; Hex #15 + Db 000h,000h,000h,07Fh,07Fh,07Fh,000h,000h ; Hex #16 + Db 018h,03Ch,07Eh,018h,07Eh,03Ch,018h,0FFh ; Hex #17 + Db 018h,03Ch,07Eh,05Ah,018h,018h,018h,000h ; Hex #18 + Db 018h,018h,018h,05Ah,07Eh,03Ch,018h,000h ; Hex #19 + Db 000h,00Ch,006h,07Fh,07Fh,006h,00Ch,000h ; Hex #1A + Db 000h,018h,030h,07Fh,07Fh,030h,018h,000h ; Hex #1B + Db 000h,000h,060h,060h,07Fh,07Fh,000h,000h ; Hex #1C + Db 000h,014h,036h,07Fh,07Fh,036h,014h,000h ; Hex #1D + Db 008h,008h,01Ch,01Ch,03Eh,03Eh,07Fh,000h ; Hex #1E + Db 07Fh,03Eh,03Eh,01Ch,01Ch,008h,008h,000h ; Hex #1F + Db 000h,000h,000h,000h,000h,000h,000h,000h ; Hex #20 + Db 018h,018h,018h,018h,018h,000h,018h,000h ; Hex #21 + Db 036h,036h,014h,000h,000h,000h,000h,000h ; Hex #22 + Db 00Ah,00Ah,03Fh,014h,07Eh,028h,028h,000h ; Hex #23 + Db 008h,03Eh,068h,03Eh,00Bh,07Eh,008h,000h ; Hex #24 + Db 001h,03Fh,052h,06Ch,01Bh,035h,076h,000h ; Hex #25 + Db 01Ch,036h,01Ch,03Bh,06Eh,066h,03Bh,000h ; Hex #26 + Db 018h,018h,030h,000h,000h,000h,000h,000h ; Hex #27 + Db 006h,00Ch,018h,018h,018h,00Ch,006h,000h ; Hex #28 + Db 030h,018h,00Ch,00Ch,00Ch,018h,030h,000h ; Hex #29 + Db 000h,036h,01Ch,07Fh,01Ch,036h,000h,000h ; Hex #2A + Db 000h,018h,018h,07Eh,018h,018h,000h,000h ; Hex #2B + Db 000h,000h,000h,000h,000h,018h,018h,030h ; Hex #2C + Db 000h,000h,000h,07Eh,000h,000h,000h,000h ; Hex #2D + Db 000h,000h,000h,000h,000h,018h,018h,000h ; Hex #2E + Db 003h,006h,00Ch,018h,030h,060h,040h,000h ; Hex #2F + Db 018h,02Ch,066h,066h,066h,034h,018h,000h ; Hex #30 + Db 018h,018h,038h,018h,018h,018h,03Ch,000h ; Hex #31 + Db 03Ch,066h,066h,00Ch,018h,032h,07Eh,000h ; Hex #32 + Db 03Ch,066h,00Ch,01Ch,006h,066h,03Ch,000h ; Hex #33 + Db 00Ch,01Ch,02Ch,06Ch,07Eh,00Ch,01Eh,000h ; Hex #34 + Db 07Eh,060h,07Ch,066h,006h,066h,03Ch,000h ; Hex #35 + Db 01Ch,030h,060h,07Ch,066h,066h,03Ch,000h ; Hex #36 + Db 07Eh,066h,04Ch,00Ch,018h,018h,038h,000h ; Hex #37 + Db 03Ch,066h,076h,03Ch,06Eh,066h,03Ch,000h ; Hex #38 + Db 03Ch,066h,066h,03Eh,006h,00Ch,038h,000h ; Hex #39 + Db 000h,018h,018h,000h,000h,018h,018h,000h ; Hex #3A + Db 000h,018h,018h,000h,000h,018h,018h,030h ; Hex #3B + Db 006h,00Ch,018h,030h,018h,00Ch,006h,000h ; Hex #3C + Db 000h,000h,07Eh,000h,07Eh,000h,000h,000h ; Hex #3D + Db 030h,018h,00Ch,006h,00Ch,018h,030h,000h ; Hex #3E + Db 03Ch,066h,026h,00Ch,018h,000h,018h,000h ; Hex #3F + Db 03Eh,041h,05Dh,055h,05Fh,040h,03Eh,000h ; Hex #40 + Db 01Ch,00Ch,01Ch,016h,03Eh,023h,063h,000h ; Hex #41 + Db 07Ch,036h,036h,03Eh,033h,033h,07Eh,000h ; Hex #42 + Db 01Dh,033h,061h,060h,060h,031h,01Eh,000h ; Hex #43 + Db 07Ch,036h,033h,033h,033h,036h,07Ch,000h ; Hex #44 + Db 07Fh,031h,034h,03Ch,034h,031h,07Fh,000h ; Hex #45 + Db 07Fh,031h,034h,03Ch,034h,030h,078h,000h ; Hex #46 + Db 01Dh,033h,061h,060h,067h,033h,01Fh,000h ; Hex #47 + Db 066h,066h,066h,07Eh,066h,066h,066h,000h ; Hex #48 + Db 03Ch,018h,018h,018h,018h,018h,03Ch,000h ; Hex #49 + Db 01Fh,006h,006h,006h,066h,066h,03Ch,000h ; Hex #4A + Db 067h,066h,06Ch,078h,06Ch,066h,067h,000h ; Hex #4B + Db 078h,030h,030h,030h,031h,033h,07Fh,000h ; Hex #4C + Db 041h,063h,077h,07Fh,06Bh,063h,063h,000h ; Hex #4D + Db 043h,063h,073h,07Bh,06Fh,067h,063h,000h ; Hex #4E + Db 01Ch,036h,063h,063h,063h,036h,01Ch,000h ; Hex #4F + Db 07Eh,033h,033h,03Eh,030h,030h,078h,000h ; Hex #50 + Db 01Ch,036h,063h,063h,06Bh,036h,01Ch,007h ; Hex #51 + Db 07Ch,066h,066h,07Ch,06Ch,066h,067h,000h ; Hex #52 + Db 03Eh,066h,070h,03Ch,00Eh,066h,07Ch,000h ; Hex #53 + Db 07Eh,05Ah,018h,018h,018h,018h,03Ch,000h ; Hex #54 + Db 063h,063h,063h,063h,063h,063h,03Eh,000h ; Hex #55 + Db 077h,062h,036h,034h,01Ch,018h,008h,000h ; Hex #56 + Db 063h,063h,06Bh,06Bh,03Eh,036h,022h,000h ; Hex #57 + Db 066h,066h,03Ch,018h,03Ch,066h,066h,000h ; Hex #58 + Db 0E7h,066h,034h,018h,018h,018h,03Ch,000h ; Hex #59 + Db 07Eh,066h,04Ch,018h,032h,066h,07Eh,000h ; Hex #5A + Db 01Eh,018h,018h,018h,018h,018h,01Eh,000h ; Hex #5B + Db 060h,030h,018h,00Ch,006h,003h,001h,000h ; Hex #5C + Db 03Ch,00Ch,00Ch,00Ch,00Ch,00Ch,03Ch,000h ; Hex #5D + Db 008h,01Ch,036h,000h,000h,000h,000h,000h ; Hex #5E + Db 000h,000h,000h,000h,000h,000h,000h,0FFh ; Hex #5F + Db 030h,018h,00Ch,000h,000h,000h,000h,000h ; Hex #60 + Db 000h,000h,03Ch,066h,01Eh,066h,07Bh,000h ; Hex #61 + Db 070h,030h,03Eh,03Bh,033h,03Bh,06Eh,000h ; Hex #62 + Db 000h,000h,03Eh,066h,060h,066h,03Ch,000h ; Hex #63 + Db 00Eh,006h,036h,06Eh,066h,066h,03Bh,000h ; Hex #64 + Db 000h,000h,03Ch,066h,07Eh,060h,03Eh,000h ; Hex #65 + Db 00Eh,01Bh,018h,03Eh,018h,018h,03Ch,000h ; Hex #66 + Db 000h,000h,03Dh,066h,038h,03Eh,063h,03Eh ; Hex #67 + Db 070h,030h,036h,03Bh,033h,033h,073h,000h ; Hex #68 + Db 018h,000h,038h,018h,018h,018h,03Ch,000h ; Hex #69 + Db 00Ch,000h,01Ch,00Ch,00Ch,06Ch,06Ch,038h ; Hex #6A + Db 070h,030h,033h,036h,03Ch,036h,077h,000h ; Hex #6B + Db 038h,018h,018h,018h,018h,018h,03Ch,000h ; Hex #6C + Db 000h,000h,076h,07Fh,06Bh,06Bh,06Bh,000h ; Hex #6D + Db 000h,000h,076h,03Bh,033h,033h,073h,000h ; Hex #6E + Db 000h,000h,03Ch,066h,066h,066h,03Ch,000h ; Hex #6F + Db 000h,000h,06Eh,033h,033h,03Eh,030h,078h ; Hex #70 + Db 000h,000h,03Ah,066h,066h,03Eh,006h,00Fh ; Hex #71 + Db 000h,000h,06Eh,03Bh,033h,030h,078h,000h ; Hex #72 + Db 000h,000h,03Eh,070h,03Ch,00Eh,07Ch,000h ; Hex #73 + Db 008h,018h,03Eh,018h,018h,01Ah,00Ch,000h ; Hex #74 + Db 000h,000h,066h,066h,066h,066h,03Bh,000h ; Hex #75 + Db 000h,000h,073h,032h,036h,01Ch,008h,000h ; Hex #76 + Db 000h,000h,06Bh,06Bh,07Fh,036h,022h,000h ; Hex #77 + Db 000h,000h,073h,036h,01Ch,036h,067h,000h ; Hex #78 + Db 000h,000h,077h,033h,01Ah,00Ch,06Ch,038h ; Hex #79 + Db 000h,000h,07Eh,04Ch,018h,032h,07Eh,000h ; Hex #7A + Db 00Eh,018h,018h,070h,018h,018h,00Eh,000h ; Hex #7B + Db 018h,018h,018h,018h,018h,018h,018h,000h ; Hex #7C + Db 070h,018h,018h,00Eh,018h,018h,070h,000h ; Hex #7D + Db 039h,04Eh,000h,000h,000h,000h,000h,000h ; Hex #7E + Db 008h,01Ch,01Ch,036h,026h,063h,07Fh,07Fh ; Hex #7F + Db 01Dh,033h,061h,060h,060h,031h,00Eh,01Ch ; Hex #80 + Db 06Ch,000h,066h,066h,066h,066h,03Bh,000h ; Hex #81 + Db 00Eh,018h,03Ch,066h,07Eh,060h,03Eh,000h ; Hex #82 + Db 018h,03Ch,03Ch,066h,01Eh,066h,07Bh,000h ; Hex #83 + Db 036h,000h,03Ch,066h,01Eh,066h,07Bh,000h ; Hex #84 + Db 030h,018h,03Ch,066h,01Eh,066h,07Bh,000h ; Hex #85 + Db 018h,018h,03Ch,066h,01Eh,066h,07Bh,000h ; Hex #86 + Db 000h,000h,03Eh,066h,060h,036h,01Ch,038h ; Hex #87 + Db 018h,03Ch,03Ch,066h,07Eh,060h,03Eh,000h ; Hex #88 + Db 036h,000h,03Ch,066h,07Eh,060h,03Eh,000h ; Hex #89 + Db 030h,018h,03Ch,066h,07Eh,060h,03Eh,000h ; Hex #8A + Db 06Ch,000h,038h,018h,018h,018h,03Ch,000h ; Hex #8B + Db 018h,03Ch,000h,038h,018h,018h,03Ch,000h ; Hex #8C + Db 030h,018h,000h,038h,018h,018h,03Ch,000h ; Hex #8D + Db 036h,008h,01Ch,016h,036h,03Fh,063h,000h ; Hex #8E + Db 01Ch,014h,01Ch,01Eh,036h,03Fh,063h,000h ; Hex #8F + Db 007h,00Ch,07Fh,031h,03Ch,031h,07Fh,000h ; Hex #90 + Db 000h,000h,076h,01Bh,03Fh,06Ch,077h,000h ; Hex #91 + Db 03Fh,03Dh,02Ch,03Eh,06Ch,06Dh,06Fh,000h ; Hex #92 + Db 018h,03Ch,03Ch,066h,066h,066h,03Ch,000h ; Hex #93 + Db 066h,000h,03Ch,066h,066h,066h,03Ch,000h ; Hex #94 + Db 070h,018h,03Ch,066h,066h,066h,03Ch,000h ; Hex #95 + Db 018h,03Ch,042h,066h,066h,066h,03Bh,000h ; Hex #96 + Db 070h,018h,066h,066h,066h,066h,03Bh,000h ; Hex #97 + Db 036h,000h,077h,033h,01Ah,00Ch,06Ch,038h ; Hex #98 + Db 063h,01Ch,036h,063h,063h,036h,01Ch,000h ; Hex #99 + Db 036h,041h,063h,063h,063h,063h,03Eh,000h ; Hex #9A + Db 006h,004h,03Ch,06Eh,068h,06Ah,03Ch,030h ; Hex #9B + Db 01Eh,033h,033h,07Ch,039h,05Bh,076h,000h ; Hex #9C + Db 066h,066h,03Ch,07Eh,018h,07Eh,018h,000h ; Hex #9D + Db 078h,06Ch,06Ch,07Ah,066h,06Fh,066h,003h ; Hex #9E + Db 00Eh,01Bh,018h,03Eh,018h,018h,058h,070h ; Hex #9F + Db 00Eh,018h,03Ch,066h,01Eh,066h,07Bh,000h ; Hex #A0 + Db 01Ch,030h,000h,038h,018h,018h,03Ch,000h ; Hex #A1 + Db 00Eh,018h,03Ch,066h,066h,066h,03Ch,000h ; Hex #A2 + Db 00Eh,018h,066h,066h,066h,066h,03Bh,000h ; Hex #A3 + Db 01Ah,02Ch,076h,03Bh,033h,033h,073h,000h ; Hex #A4 + Db 01Ah,02Ch,073h,07Bh,06Fh,067h,063h,000h ; Hex #A5 + Db 01Eh,036h,036h,01Fh,000h,03Fh,000h,000h ; Hex #A6 + Db 01Ch,036h,036h,01Ch,000h,03Eh,000h,000h ; Hex #A7 + Db 018h,000h,018h,030h,064h,066h,03Ch,000h ; Hex #A8 + Db 000h,000h,000h,07Eh,060h,060h,000h,000h ; Hex #A9 + Db 000h,000h,000h,07Eh,006h,006h,000h,000h ; Hex #AA + Db 060h,066h,06Ch,07Eh,03Bh,066h,04Ch,00Fh ; Hex #AB + Db 060h,066h,06Ch,07Bh,037h,06Bh,04Fh,003h ; Hex #AC + Db 018h,000h,018h,018h,018h,018h,018h,000h ; Hex #AD + Db 000h,01Bh,036h,06Ch,06Ch,036h,01Bh,000h ; Hex #AE + Db 000h,06Ch,036h,01Bh,01Bh,036h,06Ch,000h ; Hex #AF + Db 011h,044h,011h,044h,011h,044h,011h,044h ; Hex #B0 + Db 055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh ; Hex #B1 + Db 0EEh,0BBh,0EEh,0BBh,0EEh,0BBh,0EEh,0BBh ; Hex #B2 + Db 018h,018h,018h,018h,018h,018h,018h,018h ; Hex #B3 + Db 018h,018h,018h,0F8h,0F8h,018h,018h,018h ; Hex #B4 + Db 018h,018h,0F8h,0F8h,018h,0F8h,018h,018h ; Hex #B5 + Db 034h,034h,034h,0F4h,0F4h,034h,034h,034h ; Hex #B6 + Db 000h,000h,000h,0F8h,0FCh,034h,034h,034h ; Hex #B7 + Db 000h,000h,0F0h,0F8h,018h,0F8h,018h,018h ; Hex #B8 + Db 034h,034h,0F4h,0F4h,004h,0F4h,034h,034h ; Hex #B9 + Db 034h,034h,034h,034h,034h,034h,034h,034h ; Hex #BA + Db 000h,000h,0F8h,0FCh,004h,0F4h,034h,034h ; Hex #BB + Db 034h,034h,0F4h,0F4h,004h,0FCh,000h,000h ; Hex #BC + Db 034h,034h,034h,0FCh,0FCh,000h,000h,000h ; Hex #BD + Db 018h,018h,0F8h,0F8h,018h,0F8h,000h,000h ; Hex #BE + Db 000h,000h,000h,0F8h,0F8h,018h,018h,018h ; Hex #BF + Db 018h,018h,018h,01Fh,01Fh,000h,000h,000h ; Hex #C0 + Db 018h,018h,018h,0FFh,0FFh,000h,000h,000h ; Hex #C1 + Db 000h,000h,000h,0FFh,0FFh,018h,018h,018h ; Hex #C2 + Db 018h,018h,018h,01Fh,01Fh,018h,018h,018h ; Hex #C3 + Db 000h,000h,000h,0FFh,0FFh,000h,000h,000h ; Hex #C4 + Db 018h,018h,018h,0FFh,0FFh,018h,018h,018h ; Hex #C5 + Db 018h,018h,01Fh,01Fh,018h,01Fh,018h,018h ; Hex #C6 + Db 034h,034h,034h,037h,037h,034h,034h,034h ; Hex #C7 + Db 034h,034h,037h,037h,030h,01Fh,000h,000h ; Hex #C8 + Db 000h,000h,03Fh,03Fh,030h,037h,034h,034h ; Hex #C9 + Db 034h,034h,0F7h,0F7h,000h,0FFh,000h,000h ; Hex #CA + Db 000h,000h,0FFh,0FFh,000h,0F7h,034h,034h ; Hex #CB + Db 034h,034h,037h,037h,030h,037h,034h,034h ; Hex #CC + Db 000h,000h,0FFh,0FFh,000h,0FFh,000h,000h ; Hex #CD + Db 034h,034h,0F7h,0F7h,000h,0F7h,034h,034h ; Hex #CE + Db 018h,018h,0FFh,0FFh,000h,0FFh,000h,000h ; Hex #CF + Db 034h,034h,034h,0FFh,0FFh,000h,000h,000h ; Hex #D0 + Db 000h,000h,0FFh,0FFh,000h,0FFh,018h,018h ; Hex #D1 + Db 000h,000h,000h,0FFh,0FFh,034h,034h,034h ; Hex #D2 + Db 034h,034h,034h,03Fh,01Fh,000h,000h,000h ; Hex #D3 + Db 018h,018h,01Fh,01Fh,018h,00Fh,000h,000h ; Hex #D4 + Db 000h,000h,01Fh,01Fh,018h,01Fh,018h,018h ; Hex #D5 + Db 000h,000h,000h,03Fh,03Fh,034h,034h,034h ; Hex #D6 + Db 034h,034h,034h,0FFh,0FFh,034h,034h,034h ; Hex #D7 + Db 018h,018h,0FFh,0FFh,018h,0FFh,018h,018h ; Hex #D8 + Db 018h,018h,018h,0F8h,0F8h,000h,000h,000h ; Hex #D9 + Db 000h,000h,000h,01Fh,01Fh,018h,018h,018h ; Hex #DA + Db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh ; Hex #DB + Db 000h,000h,000h,000h,0FFh,0FFh,0FFh,0FFh ; Hex #DC + Db 0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h ; Hex #DD + Db 00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh ; Hex #DE + Db 0FFh,0FFh,0FFh,0FFh,000h,000h,000h,000h ; Hex #DF + Db 000h,000h,03Dh,06Eh,066h,06Eh,03Bh,000h ; Hex #E0 + Db 03Ch,066h,06Ch,066h,063h,07Bh,06Eh,000h ; Hex #E1 + Db 07Fh,033h,031h,030h,030h,030h,078h,000h ; Hex #E2 + Db 000h,03Fh,07Eh,054h,014h,036h,066h,000h ; Hex #E3 + Db 07Fh,033h,018h,00Ch,018h,033h,07Fh,000h ; Hex #E4 + Db 000h,000h,03Fh,06Ch,06Ch,06Ch,038h,000h ; Hex #E5 + Db 000h,000h,033h,033h,033h,037h,06Dh,060h ; Hex #E6 + Db 000h,03Fh,07Eh,050h,018h,01Ch,00Ch,000h ; Hex #E7 + Db 01Ch,008h,03Eh,06Bh,03Eh,008h,01Ch,000h ; Hex #E8 + Db 01Ch,036h,063h,07Fh,063h,036h,01Ch,000h ; Hex #E9 + Db 01Ch,036h,063h,063h,036h,055h,077h,000h ; Hex #EA + Db 01Ch,030h,018h,02Ch,066h,066h,03Ch,000h ; Hex #EB + Db 000h,036h,07Fh,04Dh,059h,07Fh,036h,000h ; Hex #EC + Db 001h,003h,03Eh,067h,06Bh,073h,03Eh,040h ; Hex #ED + Db 000h,000h,01Eh,030h,03Eh,030h,01Eh,000h ; Hex #EE + Db 03Ch,066h,066h,066h,066h,066h,066h,000h ; Hex #EF + Db 000h,07Eh,000h,07Eh,000h,07Eh,000h,000h ; Hex #F0 + Db 018h,018h,07Eh,018h,018h,000h,07Eh,000h ; Hex #F1 + Db 060h,038h,00Eh,038h,060h,000h,07Eh,000h ; Hex #F2 + Db 006h,01Ch,070h,01Ch,006h,000h,07Eh,000h ; Hex #F3 + Db 00Eh,01Bh,01Ah,018h,018h,018h,018h,018h ; Hex #F4 + Db 018h,018h,018h,018h,058h,0D8h,070h,000h ; Hex #F5 + Db 018h,018h,000h,07Eh,000h,018h,018h,000h ; Hex #F6 + Db 000h,03Bh,06Eh,000h,03Bh,06Eh,000h,000h ; Hex #F7 + Db 01Ch,036h,036h,01Ch,000h,000h,000h,000h ; Hex #F8 + Db 000h,000h,018h,03Ch,018h,000h,000h,000h ; Hex #F9 + Db 000h,000h,000h,018h,000h,000h,000h,000h ; Hex #FA + Db 003h,002h,006h,024h,06Ch,038h,018h,010h ; Hex #FB + Db 076h,03Bh,033h,033h,033h,000h,000h,000h ; Hex #FC + Db 03Ch,066h,00Ch,038h,07Eh,000h,000h,000h ; Hex #FD + Db 000h,000h,03Ch,03Ch,03Ch,03Ch,000h,000h ; Hex #FE + Db 000h,000h,000h,000h,000h,000h,000h,000h ; Hex #FF +LEN_D437 EQU ($-D437) + ; +POST_EGA437 EQU $ ; + ; +CODE ENDS + END + \ 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 @@ +CODE SEGMENT BYTE PUBLIC 'CODE' + ASSUME CS:CODE,DS:CODE + +IF1 + %OUT EGA.CPI creation file + %OUT . + %OUT CP SRC files: + %OUT . + %OUT . CODE PAGE: 850 +ENDIF + +EGA850: DW LEN_850 ;SIZE OF ENTRY HEADER + DW POST_EGA850,0 ;POINTER TO NEXT HEADER + DW 1 ;DEVICE TYPE + DB "LCD " ;DEVICE SUBTYPE ID + DW 850 ;CODE PAGE ID + DW 3 DUP(0) ;RESERVED + DW OFFSET DATA850,0 ;POINTER TO FONTS +LEN_850 EQU ($-EGA850) + +DATA850:DW 1 ;CART/NON-CART + DW 1 ;# OF FONTS + DW LEN_D850 ;LENGTH OF DATA +D850: ; + DB 8,8 ;CHARACTER BOX SIZE + DB 0,0 ;ASPECT RATIO (UNUSED) + DW 256 ;NUMBER OF CHARACTERS + Db 000h,000h,000h,000h,000h,000h,000h,000h ; Hex #0 + Db 03Ch,042h,0A5h,0A5h,081h,0BDh,05Ah,03Ch ; Hex #1 + Db 03Ch,07Eh,0DBh,0DBh,0FFh,0C3h,066h,03Ch ; Hex #2 + Db 036h,07Fh,07Fh,07Fh,03Eh,01Ch,008h,000h ; Hex #3 + Db 008h,01Ch,03Eh,07Fh,03Eh,01Ch,008h,000h ; Hex #4 + Db 01Ch,03Eh,01Ch,07Fh,07Fh,036h,008h,01Ch ; Hex #5 + Db 008h,01Ch,03Eh,07Fh,07Fh,036h,008h,01Ch ; Hex #6 + Db 000h,000h,018h,03Ch,03Ch,018h,000h,000h ; Hex #7 + Db 0FFh,0FFh,0E7h,0C3h,0C3h,0E7h,0FFh,0FFh ; Hex #8 + Db 000h,000h,03Ch,066h,066h,03Ch,000h,000h ; Hex #9 + Db 0FFh,0FFh,0C3h,099h,099h,0C3h,0FFh,0FFh ; Hex #A + Db 007h,003h,03Eh,066h,066h,066h,03Ch,000h ; Hex #B + Db 03Ch,066h,066h,066h,03Ch,018h,03Ch,018h ; Hex #C + Db 008h,00Ch,00Eh,00Ah,00Ah,008h,038h,030h ; Hex #D + Db 018h,016h,019h,017h,071h,061h,007h,006h ; Hex #E + Db 048h,06Bh,03Eh,0E4h,027h,07Ch,0D6h,012h ; Hex #F + Db 040h,070h,07Ch,07Fh,07Ch,070h,040h,000h ; Hex #10 + Db 001h,007h,01Fh,07Fh,01Fh,007h,001h,000h ; Hex #11 + Db 018h,03Ch,07Eh,018h,018h,07Eh,03Ch,018h ; Hex #12 + Db 036h,036h,036h,036h,036h,000h,036h,000h ; Hex #13 + Db 03Fh,06Ah,06Ah,03Ah,00Ah,00Ah,01Ah,000h ; Hex #14 + Db 03Ch,076h,038h,06Ch,036h,01Ch,06Eh,03Ch ; Hex #15 + Db 000h,000h,000h,07Fh,07Fh,07Fh,000h,000h ; Hex #16 + Db 018h,03Ch,07Eh,018h,07Eh,03Ch,018h,0FFh ; Hex #17 + Db 018h,03Ch,07Eh,05Ah,018h,018h,018h,000h ; Hex #18 + Db 018h,018h,018h,05Ah,07Eh,03Ch,018h,000h ; Hex #19 + Db 000h,00Ch,006h,07Fh,07Fh,006h,00Ch,000h ; Hex #1A + Db 000h,018h,030h,07Fh,07Fh,030h,018h,000h ; Hex #1B + Db 000h,000h,060h,060h,07Fh,07Fh,000h,000h ; Hex #1C + Db 000h,014h,036h,07Fh,07Fh,036h,014h,000h ; Hex #1D + Db 008h,008h,01Ch,01Ch,03Eh,03Eh,07Fh,000h ; Hex #1E + Db 07Fh,03Eh,03Eh,01Ch,01Ch,008h,008h,000h ; Hex #1F + Db 000h,000h,000h,000h,000h,000h,000h,000h ; Hex #20 + Db 018h,018h,018h,018h,018h,000h,018h,000h ; Hex #21 + Db 036h,036h,014h,000h,000h,000h,000h,000h ; Hex #22 + Db 00Ah,00Ah,03Fh,014h,07Eh,028h,028h,000h ; Hex #23 + Db 008h,03Eh,068h,03Eh,00Bh,07Eh,008h,000h ; Hex #24 + Db 001h,03Fh,052h,06Ch,01Bh,035h,076h,000h ; Hex #25 + Db 01Ch,036h,01Ch,03Bh,06Eh,066h,03Bh,000h ; Hex #26 + Db 018h,018h,030h,000h,000h,000h,000h,000h ; Hex #27 + Db 006h,00Ch,018h,018h,018h,00Ch,006h,000h ; Hex #28 + Db 030h,018h,00Ch,00Ch,00Ch,018h,030h,000h ; Hex #29 + Db 000h,036h,01Ch,07Fh,01Ch,036h,000h,000h ; Hex #2A + Db 000h,018h,018h,07Eh,018h,018h,000h,000h ; Hex #2B + Db 000h,000h,000h,000h,000h,018h,018h,030h ; Hex #2C + Db 000h,000h,000h,07Eh,000h,000h,000h,000h ; Hex #2D + Db 000h,000h,000h,000h,000h,018h,018h,000h ; Hex #2E + Db 003h,006h,00Ch,018h,030h,060h,040h,000h ; Hex #2F + Db 018h,02Ch,066h,066h,066h,034h,018h,000h ; Hex #30 + Db 018h,018h,038h,018h,018h,018h,03Ch,000h ; Hex #31 + Db 03Ch,066h,066h,00Ch,018h,032h,07Eh,000h ; Hex #32 + Db 03Ch,066h,00Ch,01Ch,006h,066h,03Ch,000h ; Hex #33 + Db 00Ch,01Ch,02Ch,06Ch,07Eh,00Ch,01Eh,000h ; Hex #34 + Db 07Eh,060h,07Ch,066h,006h,066h,03Ch,000h ; Hex #35 + Db 01Ch,030h,060h,07Ch,066h,066h,03Ch,000h ; Hex #36 + Db 07Eh,066h,04Ch,00Ch,018h,018h,038h,000h ; Hex #37 + Db 03Ch,066h,076h,03Ch,06Eh,066h,03Ch,000h ; Hex #38 + Db 03Ch,066h,066h,03Eh,006h,00Ch,038h,000h ; Hex #39 + Db 000h,018h,018h,000h,000h,018h,018h,000h ; Hex #3A + Db 000h,018h,018h,000h,000h,018h,018h,030h ; Hex #3B + Db 006h,00Ch,018h,030h,018h,00Ch,006h,000h ; Hex #3C + Db 000h,000h,07Eh,000h,07Eh,000h,000h,000h ; Hex #3D + Db 030h,018h,00Ch,006h,00Ch,018h,030h,000h ; Hex #3E + Db 03Ch,066h,026h,00Ch,018h,000h,018h,000h ; Hex #3F + Db 03Eh,041h,05Dh,055h,05Fh,040h,03Eh,000h ; Hex #40 + Db 01Ch,00Ch,01Ch,016h,03Eh,023h,063h,000h ; Hex #41 + Db 07Ch,036h,036h,03Eh,033h,033h,07Eh,000h ; Hex #42 + Db 01Dh,033h,061h,060h,060h,031h,01Eh,000h ; Hex #43 + Db 07Ch,036h,033h,033h,033h,036h,07Ch,000h ; Hex #44 + Db 07Fh,031h,034h,03Ch,034h,031h,07Fh,000h ; Hex #45 + Db 07Fh,031h,034h,03Ch,034h,030h,078h,000h ; Hex #46 + Db 01Dh,033h,061h,060h,067h,033h,01Fh,000h ; Hex #47 + Db 066h,066h,066h,07Eh,066h,066h,066h,000h ; Hex #48 + Db 03Ch,018h,018h,018h,018h,018h,03Ch,000h ; Hex #49 + Db 01Fh,006h,006h,006h,066h,066h,03Ch,000h ; Hex #4A + Db 067h,066h,06Ch,078h,06Ch,066h,067h,000h ; Hex #4B + Db 078h,030h,030h,030h,031h,033h,07Fh,000h ; Hex #4C + Db 041h,063h,077h,07Fh,06Bh,063h,063h,000h ; Hex #4D + Db 043h,063h,073h,07Bh,06Fh,067h,063h,000h ; Hex #4E + Db 01Ch,036h,063h,063h,063h,036h,01Ch,000h ; Hex #4F + Db 07Eh,033h,033h,03Eh,030h,030h,078h,000h ; Hex #50 + Db 01Ch,036h,063h,063h,06Bh,036h,01Ch,007h ; Hex #51 + Db 07Ch,066h,066h,07Ch,06Ch,066h,067h,000h ; Hex #52 + Db 03Eh,066h,070h,03Ch,00Eh,066h,07Ch,000h ; Hex #53 + Db 07Eh,05Ah,018h,018h,018h,018h,03Ch,000h ; Hex #54 + Db 063h,063h,063h,063h,063h,063h,03Eh,000h ; Hex #55 + Db 077h,062h,036h,034h,01Ch,018h,008h,000h ; Hex #56 + Db 063h,063h,06Bh,06Bh,03Eh,036h,022h,000h ; Hex #57 + Db 066h,066h,03Ch,018h,03Ch,066h,066h,000h ; Hex #58 + Db 0E7h,066h,034h,018h,018h,018h,03Ch,000h ; Hex #59 + Db 07Eh,066h,04Ch,018h,032h,066h,07Eh,000h ; Hex #5A + Db 01Eh,018h,018h,018h,018h,018h,01Eh,000h ; Hex #5B + Db 060h,030h,018h,00Ch,006h,003h,001h,000h ; Hex #5C + Db 03Ch,00Ch,00Ch,00Ch,00Ch,00Ch,03Ch,000h ; Hex #5D + Db 008h,01Ch,036h,000h,000h,000h,000h,000h ; Hex #5E + Db 000h,000h,000h,000h,000h,000h,000h,0FFh ; Hex #5F + Db 030h,018h,00Ch,000h,000h,000h,000h,000h ; Hex #60 + Db 000h,000h,03Ch,066h,01Eh,066h,07Bh,000h ; Hex #61 + Db 070h,030h,03Eh,03Bh,033h,03Bh,06Eh,000h ; Hex #62 + Db 000h,000h,03Eh,066h,060h,066h,03Ch,000h ; Hex #63 + Db 00Eh,006h,036h,06Eh,066h,066h,03Bh,000h ; Hex #64 + Db 000h,000h,03Ch,066h,07Eh,060h,03Eh,000h ; Hex #65 + Db 00Eh,01Bh,018h,03Eh,018h,018h,03Ch,000h ; Hex #66 + Db 000h,000h,03Dh,066h,038h,03Eh,063h,03Eh ; Hex #67 + Db 070h,030h,036h,03Bh,033h,033h,073h,000h ; Hex #68 + Db 018h,000h,038h,018h,018h,018h,03Ch,000h ; Hex #69 + Db 00Ch,000h,01Ch,00Ch,00Ch,06Ch,06Ch,038h ; Hex #6A + Db 070h,030h,033h,036h,03Ch,036h,077h,000h ; Hex #6B + Db 038h,018h,018h,018h,018h,018h,03Ch,000h ; Hex #6C + Db 000h,000h,076h,07Fh,06Bh,06Bh,06Bh,000h ; Hex #6D + Db 000h,000h,076h,03Bh,033h,033h,073h,000h ; Hex #6E + Db 000h,000h,03Ch,066h,066h,066h,03Ch,000h ; Hex #6F + Db 000h,000h,06Eh,033h,033h,03Eh,030h,078h ; Hex #70 + Db 000h,000h,03Ah,066h,066h,03Eh,006h,00Fh ; Hex #71 + Db 000h,000h,06Eh,03Bh,033h,030h,078h,000h ; Hex #72 + Db 000h,000h,03Eh,070h,03Ch,00Eh,07Ch,000h ; Hex #73 + Db 008h,018h,03Eh,018h,018h,01Ah,00Ch,000h ; Hex #74 + Db 000h,000h,066h,066h,066h,066h,03Bh,000h ; Hex #75 + Db 000h,000h,073h,032h,036h,01Ch,008h,000h ; Hex #76 + Db 000h,000h,06Bh,06Bh,07Fh,036h,022h,000h ; Hex #77 + Db 000h,000h,073h,036h,01Ch,036h,067h,000h ; Hex #78 + Db 000h,000h,077h,033h,01Ah,00Ch,06Ch,038h ; Hex #79 + Db 000h,000h,07Eh,04Ch,018h,032h,07Eh,000h ; Hex #7A + Db 00Eh,018h,018h,070h,018h,018h,00Eh,000h ; Hex #7B + Db 018h,018h,018h,018h,018h,018h,018h,000h ; Hex #7C + Db 070h,018h,018h,00Eh,018h,018h,070h,000h ; Hex #7D + Db 039h,04Eh,000h,000h,000h,000h,000h,000h ; Hex #7E + Db 008h,01Ch,01Ch,036h,026h,063h,07Fh,07Fh ; Hex #7F + Db 01Dh,033h,061h,060h,060h,031h,00Eh,01Ch ; Hex #80 + Db 06Ch,000h,066h,066h,066h,066h,03Bh,000h ; Hex #81 + Db 00Ch,018h,03Ch,066h,07Eh,060h,03Eh,000h ; Hex #82 + Db 018h,03Ch,03Ch,066h,01Eh,066h,07Bh,000h ; Hex #83 + Db 036h,000h,03Ch,066h,01Eh,066h,07Bh,000h ; Hex #84 + Db 030h,018h,03Ch,066h,01Eh,066h,07Bh,000h ; Hex #85 + Db 018h,018h,03Ch,066h,01Eh,066h,07Bh,000h ; Hex #86 + Db 000h,000h,03Eh,066h,060h,036h,01Ch,038h ; Hex #87 + Db 018h,03Ch,03Ch,066h,07Eh,060h,03Eh,000h ; Hex #88 + Db 036h,000h,03Ch,066h,07Eh,060h,03Eh,000h ; Hex #89 + Db 030h,018h,03Ch,066h,07Eh,060h,03Eh,000h ; Hex #8A + Db 06Ch,000h,038h,018h,018h,018h,03Ch,000h ; Hex #8B + Db 018h,03Ch,000h,038h,018h,018h,03Ch,000h ; Hex #8C + Db 030h,018h,000h,038h,018h,018h,03Ch,000h ; Hex #8D + Db 036h,008h,01Ch,016h,036h,03Fh,063h,000h ; Hex #8E + Db 01Ch,014h,01Ch,01Eh,036h,03Fh,063h,000h ; Hex #8F + Db 006h,00Ch,07Fh,031h,03Ch,031h,07Fh,000h ; Hex #90 + Db 000h,000h,076h,01Bh,03Fh,06Ch,077h,000h ; Hex #91 + Db 03Fh,03Dh,02Ch,03Eh,06Ch,06Dh,06Fh,000h ; Hex #92 + Db 018h,03Ch,03Ch,066h,066h,066h,03Ch,000h ; Hex #93 + Db 066h,000h,03Ch,066h,066h,066h,03Ch,000h ; Hex #94 + Db 030h,018h,03Ch,066h,066h,066h,03Ch,000h ; Hex #95 + Db 018h,03Ch,042h,066h,066h,066h,03Bh,000h ; Hex #96 + Db 030h,018h,066h,066h,066h,066h,03Bh,000h ; Hex #97 + Db 036h,000h,077h,033h,01Ah,00Ch,06Ch,038h ; Hex #98 + Db 063h,01Ch,036h,063h,063h,036h,01Ch,000h ; Hex #99 + Db 036h,041h,063h,063h,063h,063h,03Eh,000h ; Hex #9A + Db 000h,004h,03Ch,06Eh,07Eh,076h,03Ch,020h ; Hex #9B + Db 01Eh,033h,033h,07Ch,039h,05Bh,076h,000h ; Hex #9C + Db 01Dh,036h,067h,06Bh,073h,036h,05Ch,000h ; Hex #9D + Db 000h,066h,03Ch,018h,03Ch,066h,000h,000h ; Hex #9E + Db 00Eh,01Bh,018h,03Eh,018h,018h,058h,070h ; Hex #9F + Db 00Ch,018h,03Ch,066h,01Eh,066h,07Bh,000h ; Hex #A0 + Db 018h,030h,000h,038h,018h,018h,03Ch,000h ; Hex #A1 + Db 00Ch,018h,03Ch,066h,066h,066h,03Ch,000h ; Hex #A2 + Db 00Ch,018h,066h,066h,066h,066h,03Bh,000h ; Hex #A3 + Db 01Ah,02Ch,076h,03Bh,033h,033h,073h,000h ; Hex #A4 + Db 01Ah,02Ch,073h,07Bh,06Fh,067h,063h,000h ; Hex #A5 + Db 01Eh,036h,036h,01Fh,000h,03Fh,000h,000h ; Hex #A6 + Db 01Ch,036h,036h,01Ch,000h,03Eh,000h,000h ; Hex #A7 + Db 018h,000h,018h,030h,064h,066h,03Ch,000h ; Hex #A8 + Db 03Eh,07Bh,055h,059h,05Dh,077h,03Eh,000h ; Hex #A9 + Db 000h,000h,000h,07Eh,006h,006h,000h,000h ; Hex #AA + Db 060h,066h,06Ch,07Eh,03Bh,066h,04Ch,00Fh ; Hex #AB + Db 060h,066h,06Ch,07Bh,037h,06Bh,04Fh,003h ; Hex #AC + Db 018h,000h,018h,018h,018h,018h,018h,000h ; Hex #AD + Db 000h,01Bh,036h,06Ch,06Ch,036h,01Bh,000h ; Hex #AE + Db 000h,06Ch,036h,01Bh,01Bh,036h,06Ch,000h ; Hex #AF + Db 011h,044h,011h,044h,011h,044h,011h,044h ; Hex #B0 + Db 055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh ; Hex #B1 + Db 0EEh,0BBh,0EEh,0BBh,0EEh,0BBh,0EEh,0BBh ; Hex #B2 + Db 018h,018h,018h,018h,018h,018h,018h,018h ; Hex #B3 + Db 018h,018h,018h,0F8h,0F8h,018h,018h,018h ; Hex #B4 + Db 00Ch,018h,01Ch,016h,036h,03Fh,063h,000h ; Hex #B5 + Db 01Ch,036h,008h,01Eh,036h,03Fh,063h,000h ; Hex #B6 + Db 01Ch,006h,01Ch,016h,036h,03Fh,063h,000h ; Hex #B7 + Db 03Eh,06Bh,05Dh,051h,05Dh,06Bh,03Eh,000h ; Hex #B8 + Db 034h,034h,0F4h,0F4h,004h,0F4h,034h,034h ; Hex #B9 + Db 034h,034h,034h,034h,034h,034h,034h,034h ; Hex #BA + Db 000h,000h,0F8h,0FCh,004h,0F4h,034h,034h ; Hex #BB + Db 034h,034h,0F4h,0F4h,004h,0FCh,000h,000h ; Hex #BC + Db 006h,004h,03Ch,06Eh,068h,06Ah,03Ch,030h ; Hex #BD + Db 066h,066h,03Ch,07Eh,018h,07Eh,018h,000h ; Hex #BE + Db 000h,000h,000h,0F8h,0F8h,018h,018h,018h ; Hex #BF + Db 018h,018h,018h,01Fh,01Fh,000h,000h,000h ; Hex #C0 + Db 018h,018h,018h,0FFh,0FFh,000h,000h,000h ; Hex #C1 + Db 000h,000h,000h,0FFh,0FFh,018h,018h,018h ; Hex #C2 + Db 018h,018h,018h,01Fh,01Fh,018h,018h,018h ; Hex #C3 + Db 000h,000h,000h,0FFh,0FFh,000h,000h,000h ; Hex #C4 + Db 018h,018h,018h,0FFh,0FFh,018h,018h,018h ; Hex #C5 + Db 039h,04Eh,03Ch,066h,01Eh,066h,07Bh,000h ; Hex #C6 + Db 03Bh,06Eh,01Ch,016h,036h,03Fh,063h,000h ; Hex #C7 + Db 034h,034h,037h,037h,030h,01Fh,000h,000h ; Hex #C8 + Db 000h,000h,03Fh,03Fh,030h,037h,034h,034h ; Hex #C9 + Db 034h,034h,0F7h,0F7h,000h,0FFh,000h,000h ; Hex #CA + Db 000h,000h,0FFh,0FFh,000h,0F7h,034h,034h ; Hex #CB + Db 034h,034h,037h,037h,030h,037h,034h,034h ; Hex #CC + Db 000h,000h,0FFh,0FFh,000h,0FFh,000h,000h ; Hex #CD + Db 034h,034h,0F7h,0F7h,000h,0F7h,034h,034h ; Hex #CE + Db 000h,066h,07Eh,024h,024h,07Eh,066h,000h ; Hex #CF + Db 036h,018h,06Ch,036h,066h,066h,03Ch,000h ; Hex #D0 + Db 07Ch,036h,033h,07Bh,033h,036h,07Ch,000h ; Hex #D1 + Db 01Ch,036h,07Fh,031h,03Ch,031h,07Fh,000h ; Hex #D2 + Db 036h,000h,07Fh,031h,03Ch,031h,07Fh,000h ; Hex #D3 + Db 018h,00Ch,07Fh,031h,03Ch,031h,07Fh,000h ; Hex #D4 + Db 000h,000h,038h,018h,018h,018h,03Ch,000h ; Hex #D5 + Db 00Ch,018h,03Ch,018h,018h,018h,03Ch,000h ; Hex #D6 + Db 018h,024h,03Ch,018h,018h,018h,03Ch,000h ; Hex #D7 + Db 066h,000h,03Ch,018h,018h,018h,03Ch,000h ; Hex #D8 + Db 018h,018h,018h,0F8h,0F8h,000h,000h,000h ; Hex #D9 + Db 000h,000h,000h,01Fh,01Fh,018h,018h,018h ; Hex #DA + Db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh ; Hex #DB + Db 000h,000h,000h,000h,0FFh,0FFh,0FFh,0FFh ; Hex #DC + Db 018h,018h,018h,000h,000h,018h,018h,018h ; Hex #DD + Db 030h,018h,03Ch,018h,018h,018h,03Ch,000h ; Hex #DE + Db 0FFh,0FFh,0FFh,0FFh,000h,000h,000h,000h ; Hex #DF + Db 006h,00Ch,036h,063h,063h,036h,01Ch,000h ; Hex #E0 + Db 03Ch,066h,06Ch,06Eh,063h,07Bh,06Eh,000h ; Hex #E1 + Db 01Ch,036h,03Eh,063h,063h,036h,01Ch,000h ; Hex #E2 + Db 018h,00Ch,036h,063h,063h,036h,01Ch,000h ; Hex #E3 + Db 03Ah,06Eh,03Ch,066h,066h,066h,03Ch,000h ; Hex #E4 + Db 03Bh,06Eh,036h,063h,063h,036h,01Ch,000h ; Hex #E5 + Db 000h,000h,033h,033h,033h,037h,06Dh,060h ; Hex #E6 + Db 070h,030h,03Eh,033h,033h,03Eh,030h,078h ; Hex #E7 + Db 078h,03Eh,033h,033h,03Eh,030h,078h,000h ; Hex #E8 + Db 00Ch,05Bh,063h,063h,063h,063h,03Eh,000h ; Hex #E9 + Db 01Ch,077h,063h,063h,063h,063h,03Eh,000h ; Hex #EA + Db 018h,06Dh,063h,063h,063h,063h,03Eh,000h ; Hex #EB + Db 006h,00Ch,077h,033h,01Ah,00Ch,06Ch,038h ; Hex #EC + Db 00Ch,0DBh,066h,034h,018h,018h,03Ch,000h ; Hex #ED + Db 0FFh,000h,000h,000h,000h,000h,000h,000h ; Hex #EE + Db 00Ch,018h,030h,000h,000h,000h,000h,000h ; Hex #EF + Db 000h,000h,000h,07Eh,000h,000h,000h,000h ; Hex #F0 + Db 018h,018h,07Eh,018h,018h,000h,07Eh,000h ; Hex #F1 + Db 000h,000h,000h,000h,000h,0FFh,000h,0FFh ; Hex #F2 + Db 070h,05Bh,036h,05Fh,07Fh,03Bh,06Fh,043h ; Hex #F3 + Db 03Fh,06Ah,06Ah,03Ah,00Ah,00Ah,01Ah,000h ; Hex #F4 + Db 03Ch,076h,038h,06Ch,036h,01Ch,06Eh,03Ch ; Hex #F5 + Db 018h,018h,000h,07Eh,000h,018h,018h,000h ; Hex #F6 + Db 000h,000h,000h,000h,000h,000h,00Eh,01Ch ; Hex #F7 + Db 01Ch,036h,036h,01Ch,000h,000h,000h,000h ; Hex #F8 + Db 036h,000h,000h,000h,000h,000h,000h,000h ; Hex #F9 + Db 000h,000h,000h,018h,000h,000h,000h,000h ; Hex #FA + Db 018h,038h,018h,018h,03Ch,000h,000h,000h ; Hex #FB + Db 03Ch,066h,01Ch,066h,03Ch,000h,000h,000h ; Hex #FC + Db 03Ch,066h,00Ch,038h,07Eh,000h,000h,000h ; Hex #FD + Db 000h,000h,03Ch,03Ch,03Ch,03Ch,000h,000h ; Hex #FE + Db 000h,000h,000h,000h,000h,000h,000h,000h ; Hex #FF +LEN_D850 EQU ($-D850) + ; +POST_EGA850 EQU $ ; + ; +CODE ENDS + END + \ 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 @@ +CODE SEGMENT BYTE PUBLIC 'CODE' + ASSUME CS:CODE,DS:CODE + +IF1 + %OUT EGA.CPI creation file + %OUT . + %OUT CP SRC files: + %OUT . + %OUT . CODE PAGE: 860 +ENDIF + ; +EGA860: DW LEN_860 ;SIZE OF ENTRY HEADER + DW POST_EGA860,0 ;POINTER TO NEXT HEADER + DW 1 ;DEVICE TYPE + DB "LCD " ;DEVICE SUBTYPE ID + DW 860 ;CODE PAGE ID + DW 3 DUP(0) ;RESERVED + DW OFFSET DATA860,0 ;POINTER TO FONTS +LEN_860 EQU ($-EGA860) + +DATA860:DW 1 ;CART/NON-CART + DW 1 ;# OF FONTS + DW LEN_D860 ;LENGTH OF DATA +D860: ; + DB 8,8 ;CHARACTER BOX SIZE + DB 0,0 ;ASPECT RATIO (UNUSED) + DW 256 ;NUMBER OF CHARACTERS + Db 000h,000h,000h,000h,000h,000h,000h,000h ; Hex #0 + Db 03Ch,042h,0A5h,0A5h,081h,0BDh,05Ah,03Ch ; Hex #1 + Db 03Ch,07Eh,0DBh,0DBh,0FFh,0C3h,066h,03Ch ; Hex #2 + Db 036h,07Fh,07Fh,07Fh,03Eh,01Ch,008h,000h ; Hex #3 + Db 008h,01Ch,03Eh,07Fh,03Eh,01Ch,008h,000h ; Hex #4 + Db 01Ch,03Eh,01Ch,07Fh,07Fh,036h,008h,01Ch ; Hex #5 + Db 008h,01Ch,03Eh,07Fh,07Fh,036h,008h,01Ch ; Hex #6 + Db 000h,000h,018h,03Ch,03Ch,018h,000h,000h ; Hex #7 + Db 0FFh,0FFh,0E7h,0C3h,0C3h,0E7h,0FFh,0FFh ; Hex #8 + Db 000h,000h,03Ch,066h,066h,03Ch,000h,000h ; Hex #9 + Db 0FFh,0FFh,0C3h,099h,099h,0C3h,0FFh,0FFh ; Hex #A + Db 007h,003h,03Eh,066h,066h,066h,03Ch,000h ; Hex #B + Db 03Ch,066h,066h,066h,03Ch,018h,03Ch,018h ; Hex #C + Db 008h,00Ch,00Eh,00Ah,00Ah,008h,038h,030h ; Hex #D + Db 018h,016h,019h,017h,071h,061h,007h,006h ; Hex #E + Db 048h,06Bh,03Eh,0E4h,027h,07Ch,0D6h,012h ; Hex #F + Db 040h,070h,07Ch,07Fh,07Ch,070h,040h,000h ; Hex #10 + Db 001h,007h,01Fh,07Fh,01Fh,007h,001h,000h ; Hex #11 + Db 018h,03Ch,07Eh,018h,018h,07Eh,03Ch,018h ; Hex #12 + Db 036h,036h,036h,036h,036h,000h,036h,000h ; Hex #13 + Db 03Fh,06Ah,06Ah,03Ah,00Ah,00Ah,01Ah,000h ; Hex #14 + Db 03Ch,076h,038h,06Ch,036h,01Ch,06Eh,03Ch ; Hex #15 + Db 000h,000h,000h,07Fh,07Fh,07Fh,000h,000h ; Hex #16 + Db 018h,03Ch,07Eh,018h,07Eh,03Ch,018h,0FFh ; Hex #17 + Db 018h,03Ch,07Eh,05Ah,018h,018h,018h,000h ; Hex #18 + Db 018h,018h,018h,05Ah,07Eh,03Ch,018h,000h ; Hex #19 + Db 000h,00Ch,006h,07Fh,07Fh,006h,00Ch,000h ; Hex #1A + Db 000h,018h,030h,07Fh,07Fh,030h,018h,000h ; Hex #1B + Db 000h,000h,060h,060h,07Fh,07Fh,000h,000h ; Hex #1C + Db 000h,014h,036h,07Fh,07Fh,036h,014h,000h ; Hex #1D + Db 008h,008h,01Ch,01Ch,03Eh,03Eh,07Fh,000h ; Hex #1E + Db 07Fh,03Eh,03Eh,01Ch,01Ch,008h,008h,000h ; Hex #1F + Db 000h,000h,000h,000h,000h,000h,000h,000h ; Hex #20 + Db 018h,018h,018h,018h,018h,000h,018h,000h ; Hex #21 + Db 036h,036h,014h,000h,000h,000h,000h,000h ; Hex #22 + Db 00Ah,00Ah,03Fh,014h,07Eh,028h,028h,000h ; Hex #23 + Db 008h,03Eh,068h,03Eh,00Bh,07Eh,008h,000h ; Hex #24 + Db 001h,03Fh,052h,06Ch,01Bh,035h,076h,000h ; Hex #25 + Db 01Ch,036h,01Ch,03Bh,06Eh,066h,03Bh,000h ; Hex #26 + Db 018h,018h,030h,000h,000h,000h,000h,000h ; Hex #27 + Db 006h,00Ch,018h,018h,018h,00Ch,006h,000h ; Hex #28 + Db 030h,018h,00Ch,00Ch,00Ch,018h,030h,000h ; Hex #29 + Db 000h,036h,01Ch,07Fh,01Ch,036h,000h,000h ; Hex #2A + Db 000h,018h,018h,07Eh,018h,018h,000h,000h ; Hex #2B + Db 000h,000h,000h,000h,000h,018h,018h,030h ; Hex #2C + Db 000h,000h,000h,07Eh,000h,000h,000h,000h ; Hex #2D + Db 000h,000h,000h,000h,000h,018h,018h,000h ; Hex #2E + Db 003h,006h,00Ch,018h,030h,060h,040h,000h ; Hex #2F + Db 018h,02Ch,066h,066h,066h,034h,018h,000h ; Hex #30 + Db 018h,018h,038h,018h,018h,018h,03Ch,000h ; Hex #31 + Db 03Ch,066h,066h,00Ch,018h,032h,07Eh,000h ; Hex #32 + Db 03Ch,066h,00Ch,01Ch,006h,066h,03Ch,000h ; Hex #33 + Db 00Ch,01Ch,02Ch,06Ch,07Eh,00Ch,01Eh,000h ; Hex #34 + Db 07Eh,060h,07Ch,066h,006h,066h,03Ch,000h ; Hex #35 + Db 01Ch,030h,060h,07Ch,066h,066h,03Ch,000h ; Hex #36 + Db 07Eh,066h,04Ch,00Ch,018h,018h,038h,000h ; Hex #37 + Db 03Ch,066h,076h,03Ch,06Eh,066h,03Ch,000h ; Hex #38 + Db 03Ch,066h,066h,03Eh,006h,00Ch,038h,000h ; Hex #39 + Db 000h,018h,018h,000h,000h,018h,018h,000h ; Hex #3A + Db 000h,018h,018h,000h,000h,018h,018h,030h ; Hex #3B + Db 006h,00Ch,018h,030h,018h,00Ch,006h,000h ; Hex #3C + Db 000h,000h,07Eh,000h,07Eh,000h,000h,000h ; Hex #3D + Db 030h,018h,00Ch,006h,00Ch,018h,030h,000h ; Hex #3E + Db 03Ch,066h,026h,00Ch,018h,000h,018h,000h ; Hex #3F + Db 03Eh,041h,05Dh,055h,05Fh,040h,03Eh,000h ; Hex #40 + Db 01Ch,00Ch,01Ch,016h,03Eh,023h,063h,000h ; Hex #41 + Db 07Ch,036h,036h,03Eh,033h,033h,07Eh,000h ; Hex #42 + Db 01Dh,033h,061h,060h,060h,031h,01Eh,000h ; Hex #43 + Db 07Ch,036h,033h,033h,033h,036h,07Ch,000h ; Hex #44 + Db 07Fh,031h,034h,03Ch,034h,031h,07Fh,000h ; Hex #45 + Db 07Fh,031h,034h,03Ch,034h,030h,078h,000h ; Hex #46 + Db 01Dh,033h,061h,060h,067h,033h,01Fh,000h ; Hex #47 + Db 066h,066h,066h,07Eh,066h,066h,066h,000h ; Hex #48 + Db 03Ch,018h,018h,018h,018h,018h,03Ch,000h ; Hex #49 + Db 01Fh,006h,006h,006h,066h,066h,03Ch,000h ; Hex #4A + Db 067h,066h,06Ch,078h,06Ch,066h,067h,000h ; Hex #4B + Db 078h,030h,030h,030h,031h,033h,07Fh,000h ; Hex #4C + Db 041h,063h,077h,07Fh,06Bh,063h,063h,000h ; Hex #4D + Db 043h,063h,073h,07Bh,06Fh,067h,063h,000h ; Hex #4E + Db 01Ch,036h,063h,063h,063h,036h,01Ch,000h ; Hex #4F + Db 07Eh,033h,033h,03Eh,030h,030h,078h,000h ; Hex #50 + Db 01Ch,036h,063h,063h,06Bh,036h,01Ch,007h ; Hex #51 + Db 07Ch,066h,066h,07Ch,06Ch,066h,067h,000h ; Hex #52 + Db 03Eh,066h,070h,03Ch,00Eh,066h,07Ch,000h ; Hex #53 + Db 07Eh,05Ah,018h,018h,018h,018h,03Ch,000h ; Hex #54 + Db 063h,063h,063h,063h,063h,063h,03Eh,000h ; Hex #55 + Db 077h,062h,036h,034h,01Ch,018h,008h,000h ; Hex #56 + Db 063h,063h,06Bh,06Bh,03Eh,036h,022h,000h ; Hex #57 + Db 066h,066h,03Ch,018h,03Ch,066h,066h,000h ; Hex #58 + Db 0E7h,066h,034h,018h,018h,018h,03Ch,000h ; Hex #59 + Db 07Eh,066h,04Ch,018h,032h,066h,07Eh,000h ; Hex #5A + Db 01Eh,018h,018h,018h,018h,018h,01Eh,000h ; Hex #5B + Db 060h,030h,018h,00Ch,006h,003h,001h,000h ; Hex #5C + Db 03Ch,00Ch,00Ch,00Ch,00Ch,00Ch,03Ch,000h ; Hex #5D + Db 008h,01Ch,036h,000h,000h,000h,000h,000h ; Hex #5E + Db 000h,000h,000h,000h,000h,000h,000h,0FFh ; Hex #5F + Db 030h,018h,00Ch,000h,000h,000h,000h,000h ; Hex #60 + Db 000h,000h,03Ch,066h,01Eh,066h,07Bh,000h ; Hex #61 + Db 070h,030h,03Eh,03Bh,033h,03Bh,06Eh,000h ; Hex #62 + Db 000h,000h,03Eh,066h,060h,066h,03Ch,000h ; Hex #63 + Db 00Eh,006h,036h,06Eh,066h,066h,03Bh,000h ; Hex #64 + Db 000h,000h,03Ch,066h,07Eh,060h,03Eh,000h ; Hex #65 + Db 00Eh,01Bh,018h,03Eh,018h,018h,03Ch,000h ; Hex #66 + Db 000h,000h,03Dh,066h,038h,03Eh,063h,03Eh ; Hex #67 + Db 070h,030h,036h,03Bh,033h,033h,073h,000h ; Hex #68 + Db 018h,000h,038h,018h,018h,018h,03Ch,000h ; Hex #69 + Db 00Ch,000h,01Ch,00Ch,00Ch,06Ch,06Ch,038h ; Hex #6A + Db 070h,030h,033h,036h,03Ch,036h,077h,000h ; Hex #6B + Db 038h,018h,018h,018h,018h,018h,03Ch,000h ; Hex #6C + Db 000h,000h,076h,07Fh,06Bh,06Bh,06Bh,000h ; Hex #6D + Db 000h,000h,076h,03Bh,033h,033h,073h,000h ; Hex #6E + Db 000h,000h,03Ch,066h,066h,066h,03Ch,000h ; Hex #6F + Db 000h,000h,06Eh,033h,033h,03Eh,030h,078h ; Hex #70 + Db 000h,000h,03Ah,066h,066h,03Eh,006h,00Fh ; Hex #71 + Db 000h,000h,06Eh,03Bh,033h,030h,078h,000h ; Hex #72 + Db 000h,000h,03Eh,070h,03Ch,00Eh,07Ch,000h ; Hex #73 + Db 008h,018h,03Eh,018h,018h,01Ah,00Ch,000h ; Hex #74 + Db 000h,000h,066h,066h,066h,066h,03Bh,000h ; Hex #75 + Db 000h,000h,073h,032h,036h,01Ch,008h,000h ; Hex #76 + Db 000h,000h,06Bh,06Bh,07Fh,036h,022h,000h ; Hex #77 + Db 000h,000h,073h,036h,01Ch,036h,067h,000h ; Hex #78 + Db 000h,000h,077h,033h,01Ah,00Ch,06Ch,038h ; Hex #79 + Db 000h,000h,07Eh,04Ch,018h,032h,07Eh,000h ; Hex #7A + Db 00Eh,018h,018h,070h,018h,018h,00Eh,000h ; Hex #7B + Db 018h,018h,018h,018h,018h,018h,018h,000h ; Hex #7C + Db 070h,018h,018h,00Eh,018h,018h,070h,000h ; Hex #7D + Db 039h,04Eh,000h,000h,000h,000h,000h,000h ; Hex #7E + Db 008h,01Ch,01Ch,036h,026h,063h,07Fh,07Fh ; Hex #7F + Db 01Dh,033h,061h,060h,060h,031h,00Eh,01Ch ; Hex #80 + Db 06Ch,000h,066h,066h,066h,066h,03Bh,000h ; Hex #81 + Db 00Ch,018h,03Ch,066h,07Eh,060h,03Eh,000h ; Hex #82 + Db 018h,03Ch,03Ch,066h,01Eh,066h,07Bh,000h ; Hex #83 + Db 039h,04Eh,03Ch,066h,01Eh,066h,07Bh,000h ; Hex #84 + Db 030h,018h,03Ch,066h,01Eh,066h,07Bh,000h ; Hex #85 + Db 00Ch,018h,01Ch,016h,036h,03Fh,063h,000h ; Hex #86 + Db 000h,000h,03Eh,066h,060h,036h,01Ch,038h ; Hex #87 + Db 018h,03Ch,03Ch,066h,07Eh,060h,03Eh,000h ; Hex #88 + Db 01Ch,036h,07Fh,031h,03Ch,031h,07Fh,000h ; Hex #89 + Db 030h,018h,03Ch,066h,07Eh,060h,03Eh,000h ; Hex #8A + Db 00Ch,018h,03Ch,018h,018h,018h,03Ch,000h ; Hex #8B + Db 01Ch,036h,03Eh,063h,063h,036h,01Ch,000h ; Hex #8C + Db 030h,018h,000h,038h,018h,018h,03Ch,000h ; Hex #8D + Db 03Bh,06Eh,01Ch,016h,036h,03Fh,063h,000h ; Hex #8E + Db 01Ch,036h,008h,01Eh,036h,03Fh,063h,000h ; Hex #8F + Db 006h,00Ch,07Fh,031h,03Ch,031h,07Fh,000h ; Hex #90 + Db 01Ch,006h,01Ch,016h,036h,03Fh,063h,000h ; Hex #91 + Db 018h,00Ch,07Fh,031h,03Ch,031h,07Fh,000h ; Hex #92 + Db 018h,03Ch,03Ch,066h,066h,066h,03Ch,000h ; Hex #93 + Db 03Ah,06Eh,03Ch,066h,066h,066h,03Ch,000h ; Hex #94 + Db 030h,018h,03Ch,066h,066h,066h,03Ch,000h ; Hex #95 + Db 00Ch,05Bh,063h,063h,063h,063h,03Eh,000h ; Hex #96 + Db 030h,018h,066h,066h,066h,066h,03Bh,000h ; Hex #97 + Db 030h,018h,03Ch,018h,018h,018h,03Ch,000h ; Hex #98 + Db 03Bh,06Eh,036h,063h,063h,036h,01Ch,000h ; Hex #99 + Db 036h,041h,063h,063h,063h,063h,03Eh,000h ; Hex #9A + Db 006h,004h,03Ch,06Eh,068h,06Ah,03Ch,030h ; Hex #9B + Db 01Eh,033h,033h,07Ch,039h,05Bh,076h,000h ; Hex #9C + Db 018h,06Dh,063h,063h,063h,063h,03Eh,000h ; Hex #9D + Db 078h,06Ch,06Ch,07Ah,066h,06Fh,066h,003h ; Hex #9E + Db 006h,00Ch,036h,063h,063h,036h,01Ch,000h ; Hex #9F + Db 00Ch,018h,03Ch,066h,01Eh,066h,07Bh,000h ; Hex #A0 + Db 018h,030h,000h,038h,018h,018h,03Ch,000h ; Hex #A1 + Db 00Ch,018h,03Ch,066h,066h,066h,03Ch,000h ; Hex #A2 + Db 00Ch,018h,066h,066h,066h,066h,03Bh,000h ; Hex #A3 + Db 01Ah,02Ch,076h,03Bh,033h,033h,073h,000h ; Hex #A4 + Db 01Ah,02Ch,073h,07Bh,06Fh,067h,063h,000h ; Hex #A5 + Db 01Eh,036h,036h,01Fh,000h,03Fh,000h,000h ; Hex #A6 + Db 01Ch,036h,036h,01Ch,000h,03Eh,000h,000h ; Hex #A7 + Db 018h,000h,018h,030h,064h,066h,03Ch,000h ; Hex #A8 + Db 018h,00Ch,036h,063h,063h,036h,01Ch,000h ; Hex #A9 + Db 000h,000h,000h,07Eh,006h,006h,000h,000h ; Hex #AA + Db 060h,066h,06Ch,07Eh,03Bh,066h,04Ch,00Fh ; Hex #AB + Db 060h,066h,06Ch,07Bh,037h,06Bh,04Fh,003h ; Hex #AC + Db 018h,000h,018h,018h,018h,018h,018h,000h ; Hex #AD + Db 000h,01Bh,036h,06Ch,06Ch,036h,01Bh,000h ; Hex #AE + Db 000h,06Ch,036h,01Bh,01Bh,036h,06Ch,000h ; Hex #AF + Db 011h,044h,011h,044h,011h,044h,011h,044h ; Hex #B0 + Db 055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh ; Hex #B1 + Db 0EEh,0BBh,0EEh,0BBh,0EEh,0BBh,0EEh,0BBh ; Hex #B2 + Db 018h,018h,018h,018h,018h,018h,018h,018h ; Hex #B3 + Db 018h,018h,018h,0F8h,0F8h,018h,018h,018h ; Hex #B4 + Db 018h,018h,0F8h,0F8h,018h,0F8h,018h,018h ; Hex #B5 + Db 034h,034h,034h,0F4h,0F4h,034h,034h,034h ; Hex #B6 + Db 000h,000h,000h,0F8h,0FCh,034h,034h,034h ; Hex #B7 + Db 000h,000h,0F0h,0F8h,018h,0F8h,018h,018h ; Hex #B8 + Db 034h,034h,0F4h,0F4h,004h,0F4h,034h,034h ; Hex #B9 + Db 034h,034h,034h,034h,034h,034h,034h,034h ; Hex #BA + Db 000h,000h,0F8h,0FCh,004h,0F4h,034h,034h ; Hex #BB + Db 034h,034h,0F4h,0F4h,004h,0FCh,000h,000h ; Hex #BC + Db 034h,034h,034h,0FCh,0FCh,000h,000h,000h ; Hex #BD + Db 018h,018h,0F8h,0F8h,018h,0F8h,000h,000h ; Hex #BE + Db 000h,000h,000h,0F8h,0F8h,018h,018h,018h ; Hex #BF + Db 018h,018h,018h,01Fh,01Fh,000h,000h,000h ; Hex #C0 + Db 018h,018h,018h,0FFh,0FFh,000h,000h,000h ; Hex #C1 + Db 000h,000h,000h,0FFh,0FFh,018h,018h,018h ; Hex #C2 + Db 018h,018h,018h,01Fh,01Fh,018h,018h,018h ; Hex #C3 + Db 000h,000h,000h,0FFh,0FFh,000h,000h,000h ; Hex #C4 + Db 018h,018h,018h,0FFh,0FFh,018h,018h,018h ; Hex #C5 + Db 018h,018h,01Fh,01Fh,018h,01Fh,018h,018h ; Hex #C6 + Db 034h,034h,034h,037h,037h,034h,034h,034h ; Hex #C7 + Db 034h,034h,037h,037h,030h,01Fh,000h,000h ; Hex #C8 + Db 000h,000h,03Fh,03Fh,030h,037h,034h,034h ; Hex #C9 + Db 034h,034h,0F7h,0F7h,000h,0FFh,000h,000h ; Hex #CA + Db 000h,000h,0FFh,0FFh,000h,0F7h,034h,034h ; Hex #CB + Db 034h,034h,037h,037h,030h,037h,034h,034h ; Hex #CC + Db 000h,000h,0FFh,0FFh,000h,0FFh,000h,000h ; Hex #CD + Db 034h,034h,0F7h,0F7h,000h,0F7h,034h,034h ; Hex #CE + Db 018h,018h,0FFh,0FFh,000h,0FFh,000h,000h ; Hex #CF + Db 034h,034h,034h,0FFh,0FFh,000h,000h,000h ; Hex #D0 + Db 000h,000h,0FFh,0FFh,000h,0FFh,018h,018h ; Hex #D1 + Db 000h,000h,000h,0FFh,0FFh,034h,034h,034h ; Hex #D2 + Db 034h,034h,034h,03Fh,01Fh,000h,000h,000h ; Hex #D3 + Db 018h,018h,01Fh,01Fh,018h,00Fh,000h,000h ; Hex #D4 + Db 000h,000h,01Fh,01Fh,018h,01Fh,018h,018h ; Hex #D5 + Db 000h,000h,000h,03Fh,03Fh,034h,034h,034h ; Hex #D6 + Db 034h,034h,034h,0FFh,0FFh,034h,034h,034h ; Hex #D7 + Db 018h,018h,0FFh,0FFh,018h,0FFh,018h,018h ; Hex #D8 + Db 018h,018h,018h,0F8h,0F8h,000h,000h,000h ; Hex #D9 + Db 000h,000h,000h,01Fh,01Fh,018h,018h,018h ; Hex #DA + Db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh ; Hex #DB + Db 000h,000h,000h,000h,0FFh,0FFh,0FFh,0FFh ; Hex #DC + Db 0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h ; Hex #DD + Db 00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh ; Hex #DE + Db 0FFh,0FFh,0FFh,0FFh,000h,000h,000h,000h ; Hex #DF + Db 000h,000h,03Dh,06Eh,066h,06Eh,03Bh,000h ; Hex #E0 + Db 03Ch,066h,06Ch,066h,063h,07Bh,06Eh,000h ; Hex #E1 + Db 07Fh,033h,031h,030h,030h,030h,078h,000h ; Hex #E2 + Db 000h,03Fh,07Eh,054h,014h,036h,066h,000h ; Hex #E3 + Db 07Fh,033h,018h,00Ch,018h,033h,07Fh,000h ; Hex #E4 + Db 000h,000h,03Fh,06Ch,06Ch,06Ch,038h,000h ; Hex #E5 + Db 000h,000h,033h,033h,033h,037h,06Dh,060h ; Hex #E6 + Db 000h,03Fh,07Eh,050h,018h,01Ch,00Ch,000h ; Hex #E7 + Db 01Ch,008h,03Eh,06Bh,03Eh,008h,01Ch,000h ; Hex #E8 + Db 01Ch,036h,063h,07Fh,063h,036h,01Ch,000h ; Hex #E9 + Db 01Ch,036h,063h,063h,036h,055h,077h,000h ; Hex #EA + Db 01Ch,030h,018h,02Ch,066h,066h,03Ch,000h ; Hex #EB + Db 000h,036h,07Fh,04Dh,059h,07Fh,036h,000h ; Hex #EC + Db 000h,000h,036h,06Fh,06Bh,03Eh,008h,00Ch ; Hex #ED + Db 000h,000h,01Eh,030h,03Eh,030h,01Eh,000h ; Hex #EE + Db 03Ch,066h,066h,066h,066h,066h,066h,000h ; Hex #EF + Db 000h,07Eh,000h,07Eh,000h,07Eh,000h,000h ; Hex #F0 + Db 018h,018h,07Eh,018h,018h,000h,07Eh,000h ; Hex #F1 + Db 060h,038h,00Eh,038h,060h,000h,07Eh,000h ; Hex #F2 + Db 006h,01Ch,070h,01Ch,006h,000h,07Eh,000h ; Hex #F3 + Db 00Eh,01Bh,01Ah,018h,018h,018h,018h,018h ; Hex #F4 + Db 018h,018h,018h,018h,058h,0D8h,070h,000h ; Hex #F5 + Db 018h,018h,000h,07Eh,000h,018h,018h,000h ; Hex #F6 + Db 000h,03Bh,06Eh,000h,03Bh,06Eh,000h,000h ; Hex #F7 + Db 01Ch,036h,036h,01Ch,000h,000h,000h,000h ; Hex #F8 + Db 000h,000h,018h,03Ch,018h,000h,000h,000h ; Hex #F9 + Db 000h,000h,000h,018h,000h,000h,000h,000h ; Hex #FA + Db 003h,002h,006h,024h,06Ch,038h,018h,010h ; Hex #FB + Db 076h,03Bh,033h,033h,033h,000h,000h,000h ; Hex #FC + Db 03Ch,066h,00Ch,038h,07Eh,000h,000h,000h ; Hex #FD + Db 000h,000h,03Ch,03Ch,03Ch,03Ch,000h,000h ; Hex #FE + Db 000h,000h,000h,000h,000h,000h,000h,000h ; Hex #FF +LEN_D860 EQU ($-D860) + ; +POST_EGA860 EQU $ ; + ; +CODE ENDS + END + \ 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 @@ +CODE SEGMENT BYTE PUBLIC 'CODE' + ASSUME CS:CODE,DS:CODE + +IF1 + %OUT EGA.CPI creation file + %OUT . + %OUT CP SRC files: + %OUT . + %OUT . CODE PAGE: 863 +ENDIF + +EGA863: DW LEN_863 ;SIZE OF ENTRY HEADER + DW POST_EGA863,0 ;POINTER TO NEXT HEADER + DW 1 ;DEVICE TYPE + DB "LCD " ;DEVICE SUBTYPE ID + DW 863 ;CODE PAGE ID + DW 3 DUP(0) ;RESERVED + DW OFFSET DATA863,0 ;POINTER TO FONTS +LEN_863 EQU ($-EGA863) + +DATA863:DW 1 ;CART/NON-CART + DW 1 ;# OF FONTS + DW LEN_D863 ;LENGTH OF DATA +D863: ; + DB 8,8 ;CHARACTER BOX SIZE + DB 0,0 ;ASPECT RATIO (UNUSED) + DW 256 ;NUMBER OF CHARACTERS + Db 000h,000h,000h,000h,000h,000h,000h,000h ; Hex #0 + Db 03Ch,042h,0A5h,0A5h,081h,0BDh,05Ah,03Ch ; Hex #1 + Db 03Ch,07Eh,0DBh,0DBh,0FFh,0C3h,066h,03Ch ; Hex #2 + Db 036h,07Fh,07Fh,07Fh,03Eh,01Ch,008h,000h ; Hex #3 + Db 008h,01Ch,03Eh,07Fh,03Eh,01Ch,008h,000h ; Hex #4 + Db 01Ch,03Eh,01Ch,07Fh,07Fh,036h,008h,01Ch ; Hex #5 + Db 008h,01Ch,03Eh,07Fh,07Fh,036h,008h,01Ch ; Hex #6 + Db 000h,000h,018h,03Ch,03Ch,018h,000h,000h ; Hex #7 + Db 0FFh,0FFh,0E7h,0C3h,0C3h,0E7h,0FFh,0FFh ; Hex #8 + Db 000h,000h,03Ch,066h,066h,03Ch,000h,000h ; Hex #9 + Db 0FFh,0FFh,0C3h,099h,099h,0C3h,0FFh,0FFh ; Hex #A + Db 007h,003h,03Eh,066h,066h,066h,03Ch,000h ; Hex #B + Db 03Ch,066h,066h,066h,03Ch,018h,03Ch,018h ; Hex #C + Db 008h,00Ch,00Eh,00Ah,00Ah,008h,038h,030h ; Hex #D + Db 018h,016h,019h,017h,071h,061h,007h,006h ; Hex #E + Db 048h,06Bh,03Eh,0E4h,027h,07Ch,0D6h,012h ; Hex #F + Db 040h,070h,07Ch,07Fh,07Ch,070h,040h,000h ; Hex #10 + Db 001h,007h,01Fh,07Fh,01Fh,007h,001h,000h ; Hex #11 + Db 018h,03Ch,07Eh,018h,018h,07Eh,03Ch,018h ; Hex #12 + Db 036h,036h,036h,036h,036h,000h,036h,000h ; Hex #13 + Db 03Fh,06Ah,06Ah,03Ah,00Ah,00Ah,01Ah,000h ; Hex #14 + Db 03Ch,076h,038h,06Ch,036h,01Ch,06Eh,03Ch ; Hex #15 + Db 000h,000h,000h,07Fh,07Fh,07Fh,000h,000h ; Hex #16 + Db 018h,03Ch,07Eh,018h,07Eh,03Ch,018h,0FFh ; Hex #17 + Db 018h,03Ch,07Eh,05Ah,018h,018h,018h,000h ; Hex #18 + Db 018h,018h,018h,05Ah,07Eh,03Ch,018h,000h ; Hex #19 + Db 000h,00Ch,006h,07Fh,07Fh,006h,00Ch,000h ; Hex #1A + Db 000h,018h,030h,07Fh,07Fh,030h,018h,000h ; Hex #1B + Db 000h,000h,060h,060h,07Fh,07Fh,000h,000h ; Hex #1C + Db 000h,014h,036h,07Fh,07Fh,036h,014h,000h ; Hex #1D + Db 008h,008h,01Ch,01Ch,03Eh,03Eh,07Fh,000h ; Hex #1E + Db 07Fh,03Eh,03Eh,01Ch,01Ch,008h,008h,000h ; Hex #1F + Db 000h,000h,000h,000h,000h,000h,000h,000h ; Hex #20 + Db 018h,018h,018h,018h,018h,000h,018h,000h ; Hex #21 + Db 036h,036h,014h,000h,000h,000h,000h,000h ; Hex #22 + Db 00Ah,00Ah,03Fh,014h,07Eh,028h,028h,000h ; Hex #23 + Db 008h,03Eh,068h,03Eh,00Bh,07Eh,008h,000h ; Hex #24 + Db 001h,03Fh,052h,06Ch,01Bh,035h,076h,000h ; Hex #25 + Db 01Ch,036h,01Ch,03Bh,06Eh,066h,03Bh,000h ; Hex #26 + Db 018h,018h,030h,000h,000h,000h,000h,000h ; Hex #27 + Db 006h,00Ch,018h,018h,018h,00Ch,006h,000h ; Hex #28 + Db 030h,018h,00Ch,00Ch,00Ch,018h,030h,000h ; Hex #29 + Db 000h,036h,01Ch,07Fh,01Ch,036h,000h,000h ; Hex #2A + Db 000h,018h,018h,07Eh,018h,018h,000h,000h ; Hex #2B + Db 000h,000h,000h,000h,000h,018h,018h,030h ; Hex #2C + Db 000h,000h,000h,07Eh,000h,000h,000h,000h ; Hex #2D + Db 000h,000h,000h,000h,000h,018h,018h,000h ; Hex #2E + Db 003h,006h,00Ch,018h,030h,060h,040h,000h ; Hex #2F + Db 018h,02Ch,066h,066h,066h,034h,018h,000h ; Hex #30 + Db 018h,018h,038h,018h,018h,018h,03Ch,000h ; Hex #31 + Db 03Ch,066h,066h,00Ch,018h,032h,07Eh,000h ; Hex #32 + Db 03Ch,066h,00Ch,01Ch,006h,066h,03Ch,000h ; Hex #33 + Db 00Ch,01Ch,02Ch,06Ch,07Eh,00Ch,01Eh,000h ; Hex #34 + Db 07Eh,060h,07Ch,066h,006h,066h,03Ch,000h ; Hex #35 + Db 01Ch,030h,060h,07Ch,066h,066h,03Ch,000h ; Hex #36 + Db 07Eh,066h,04Ch,00Ch,018h,018h,038h,000h ; Hex #37 + Db 03Ch,066h,076h,03Ch,06Eh,066h,03Ch,000h ; Hex #38 + Db 03Ch,066h,066h,03Eh,006h,00Ch,038h,000h ; Hex #39 + Db 000h,018h,018h,000h,000h,018h,018h,000h ; Hex #3A + Db 000h,018h,018h,000h,000h,018h,018h,030h ; Hex #3B + Db 006h,00Ch,018h,030h,018h,00Ch,006h,000h ; Hex #3C + Db 000h,000h,07Eh,000h,07Eh,000h,000h,000h ; Hex #3D + Db 030h,018h,00Ch,006h,00Ch,018h,030h,000h ; Hex #3E + Db 03Ch,066h,026h,00Ch,018h,000h,018h,000h ; Hex #3F + Db 03Eh,041h,05Dh,055h,05Fh,040h,03Eh,000h ; Hex #40 + Db 01Ch,00Ch,01Ch,016h,03Eh,023h,063h,000h ; Hex #41 + Db 07Ch,036h,036h,03Eh,033h,033h,07Eh,000h ; Hex #42 + Db 01Dh,033h,061h,060h,060h,031h,01Eh,000h ; Hex #43 + Db 07Ch,036h,033h,033h,033h,036h,07Ch,000h ; Hex #44 + Db 07Fh,031h,034h,03Ch,034h,031h,07Fh,000h ; Hex #45 + Db 07Fh,031h,034h,03Ch,034h,030h,078h,000h ; Hex #46 + Db 01Dh,033h,061h,060h,067h,033h,01Fh,000h ; Hex #47 + Db 066h,066h,066h,07Eh,066h,066h,066h,000h ; Hex #48 + Db 03Ch,018h,018h,018h,018h,018h,03Ch,000h ; Hex #49 + Db 01Fh,006h,006h,006h,066h,066h,03Ch,000h ; Hex #4A + Db 067h,066h,06Ch,078h,06Ch,066h,067h,000h ; Hex #4B + Db 078h,030h,030h,030h,031h,033h,07Fh,000h ; Hex #4C + Db 041h,063h,077h,07Fh,06Bh,063h,063h,000h ; Hex #4D + Db 043h,063h,073h,07Bh,06Fh,067h,063h,000h ; Hex #4E + Db 01Ch,036h,063h,063h,063h,036h,01Ch,000h ; Hex #4F + Db 07Eh,033h,033h,03Eh,030h,030h,078h,000h ; Hex #50 + Db 01Ch,036h,063h,063h,06Bh,036h,01Ch,007h ; Hex #51 + Db 07Ch,066h,066h,07Ch,06Ch,066h,067h,000h ; Hex #52 + Db 03Eh,066h,070h,03Ch,00Eh,066h,07Ch,000h ; Hex #53 + Db 07Eh,05Ah,018h,018h,018h,018h,03Ch,000h ; Hex #54 + Db 063h,063h,063h,063h,063h,063h,03Eh,000h ; Hex #55 + Db 077h,062h,036h,034h,01Ch,018h,008h,000h ; Hex #56 + Db 063h,063h,06Bh,06Bh,03Eh,036h,022h,000h ; Hex #57 + Db 066h,066h,03Ch,018h,03Ch,066h,066h,000h ; Hex #58 + Db 0E7h,066h,034h,018h,018h,018h,03Ch,000h ; Hex #59 + Db 07Eh,066h,04Ch,018h,032h,066h,07Eh,000h ; Hex #5A + Db 01Eh,018h,018h,018h,018h,018h,01Eh,000h ; Hex #5B + Db 060h,030h,018h,00Ch,006h,003h,001h,000h ; Hex #5C + Db 03Ch,00Ch,00Ch,00Ch,00Ch,00Ch,03Ch,000h ; Hex #5D + Db 008h,01Ch,036h,000h,000h,000h,000h,000h ; Hex #5E + Db 000h,000h,000h,000h,000h,000h,000h,0FFh ; Hex #5F + Db 030h,018h,00Ch,000h,000h,000h,000h,000h ; Hex #60 + Db 000h,000h,03Ch,066h,01Eh,066h,07Bh,000h ; Hex #61 + Db 070h,030h,03Eh,03Bh,033h,03Bh,06Eh,000h ; Hex #62 + Db 000h,000h,03Eh,066h,060h,066h,03Ch,000h ; Hex #63 + Db 00Eh,006h,036h,06Eh,066h,066h,03Bh,000h ; Hex #64 + Db 000h,000h,03Ch,066h,07Eh,060h,03Eh,000h ; Hex #65 + Db 00Eh,01Bh,018h,03Eh,018h,018h,03Ch,000h ; Hex #66 + Db 000h,000h,03Dh,066h,038h,03Eh,063h,03Eh ; Hex #67 + Db 070h,030h,036h,03Bh,033h,033h,073h,000h ; Hex #68 + Db 018h,000h,038h,018h,018h,018h,03Ch,000h ; Hex #69 + Db 00Ch,000h,01Ch,00Ch,00Ch,06Ch,06Ch,038h ; Hex #6A + Db 070h,030h,033h,036h,03Ch,036h,077h,000h ; Hex #6B + Db 038h,018h,018h,018h,018h,018h,03Ch,000h ; Hex #6C + Db 000h,000h,076h,07Fh,06Bh,06Bh,06Bh,000h ; Hex #6D + Db 000h,000h,076h,03Bh,033h,033h,073h,000h ; Hex #6E + Db 000h,000h,03Ch,066h,066h,066h,03Ch,000h ; Hex #6F + Db 000h,000h,06Eh,033h,033h,03Eh,030h,078h ; Hex #70 + Db 000h,000h,03Ah,066h,066h,03Eh,006h,00Fh ; Hex #71 + Db 000h,000h,06Eh,03Bh,033h,030h,078h,000h ; Hex #72 + Db 000h,000h,03Eh,070h,03Ch,00Eh,07Ch,000h ; Hex #73 + Db 008h,018h,03Eh,018h,018h,01Ah,00Ch,000h ; Hex #74 + Db 000h,000h,066h,066h,066h,066h,03Bh,000h ; Hex #75 + Db 000h,000h,073h,032h,036h,01Ch,008h,000h ; Hex #76 + Db 000h,000h,06Bh,06Bh,07Fh,036h,022h,000h ; Hex #77 + Db 000h,000h,073h,036h,01Ch,036h,067h,000h ; Hex #78 + Db 000h,000h,077h,033h,01Ah,00Ch,06Ch,038h ; Hex #79 + Db 000h,000h,07Eh,04Ch,018h,032h,07Eh,000h ; Hex #7A + Db 00Eh,018h,018h,070h,018h,018h,00Eh,000h ; Hex #7B + Db 018h,018h,018h,018h,018h,018h,018h,000h ; Hex #7C + Db 070h,018h,018h,00Eh,018h,018h,070h,000h ; Hex #7D + Db 039h,04Eh,000h,000h,000h,000h,000h,000h ; Hex #7E + Db 008h,01Ch,01Ch,036h,026h,063h,07Fh,07Fh ; Hex #7F + Db 01Dh,033h,061h,060h,060h,031h,00Eh,01Ch ; Hex #80 + Db 06Ch,000h,066h,066h,066h,066h,03Bh,000h ; Hex #81 + Db 00Ch,018h,03Ch,066h,07Eh,060h,03Eh,000h ; Hex #82 + Db 018h,03Ch,03Ch,066h,01Eh,066h,07Bh,000h ; Hex #83 + Db 01Ch,036h,008h,01Eh,036h,03Fh,063h,000h ; Hex #84 + Db 030h,018h,03Ch,066h,01Eh,066h,07Bh,000h ; Hex #85 + Db 03Fh,06Ah,06Ah,03Ah,00Ah,00Ah,01Ah,000h ; Hex #86 + Db 000h,000h,03Eh,066h,060h,036h,01Ch,038h ; Hex #87 + Db 018h,03Ch,03Ch,066h,07Eh,060h,03Eh,000h ; Hex #88 + Db 036h,000h,03Ch,066h,07Eh,060h,03Eh,000h ; Hex #89 + Db 030h,018h,03Ch,066h,07Eh,060h,03Eh,000h ; Hex #8A + Db 06Ch,000h,038h,018h,018h,018h,03Ch,000h ; Hex #8B + Db 018h,03Ch,000h,038h,018h,018h,03Ch,000h ; Hex #8C + Db 000h,000h,000h,000h,000h,0FFh,000h,0FFh ; Hex #8D + Db 01Ch,006h,01Ch,016h,036h,03Fh,063h,000h ; Hex #8E + Db 03Ch,076h,038h,06Ch,036h,01Ch,06Eh,03Ch ; Hex #8F + Db 006h,00Ch,07Fh,031h,03Ch,031h,07Fh,000h ; Hex #90 + Db 018h,00Ch,07Fh,031h,03Ch,031h,07Fh,000h ; Hex #91 + Db 01Ch,036h,07Fh,031h,03Ch,031h,07Fh,000h ; Hex #92 + Db 018h,03Ch,03Ch,066h,066h,066h,03Ch,000h ; Hex #93 + Db 036h,000h,07Fh,031h,03Ch,031h,07Fh,000h ; Hex #94 + Db 066h,000h,03Ch,018h,018h,018h,03Ch,000h ; Hex #95 + Db 018h,03Ch,042h,066h,066h,066h,03Bh,000h ; Hex #96 + Db 030h,018h,066h,066h,066h,066h,03Bh,000h ; Hex #97 + Db 000h,066h,07Eh,024h,024h,07Eh,066h,000h ; Hex #98 + Db 01Ch,036h,03Eh,063h,063h,036h,01Ch,000h ; Hex #99 + Db 036h,041h,063h,063h,063h,063h,03Eh,000h ; Hex #9A + Db 006h,004h,03Ch,06Eh,068h,06Ah,03Ch,030h ; Hex #9B + Db 01Eh,033h,033h,07Ch,039h,05Bh,076h,000h ; Hex #9C + Db 018h,06Dh,063h,063h,063h,063h,03Eh,000h ; Hex #9D + Db 01Ch,036h,041h,063h,063h,063h,03Eh,000h ; Hex #9E + Db 00Eh,01Bh,018h,03Eh,018h,018h,058h,070h ; Hex #9F + Db 018h,018h,018h,000h,000h,018h,018h,018h ; Hex #A0 + Db 00Ch,018h,030h,000h,000h,000h,000h,000h ; Hex #A1 + Db 00Ch,018h,03Ch,066h,066h,066h,03Ch,000h ; Hex #A2 + Db 00Ch,018h,066h,066h,066h,066h,03Bh,000h ; Hex #A3 + Db 036h,000h,000h,000h,000h,000h,000h,000h ; Hex #A4 + Db 000h,000h,000h,000h,000h,000h,00Eh,01Ch ; Hex #A5 + Db 03Ch,066h,01Ch,066h,03Ch,000h,000h,000h ; Hex #A6 + Db 0FFh,000h,000h,000h,000h,000h,000h,000h ; Hex #A7 + Db 018h,024h,03Ch,018h,018h,018h,03Ch,000h ; Hex #A8 + Db 000h,000h,000h,07Eh,060h,060h,000h,000h ; Hex #A9 + Db 000h,000h,000h,07Eh,006h,006h,000h,000h ; Hex #AA + Db 060h,066h,06Ch,07Eh,03Bh,066h,04Ch,00Fh ; Hex #AB + Db 060h,066h,06Ch,07Bh,037h,06Bh,04Fh,003h ; Hex #AC + Db 070h,05Bh,036h,05Fh,07Fh,03Bh,06Fh,043h ; Hex #AD + Db 000h,01Bh,036h,06Ch,06Ch,036h,01Bh,000h ; Hex #AE + Db 000h,06Ch,036h,01Bh,01Bh,036h,06Ch,000h ; Hex #AF + Db 011h,044h,011h,044h,011h,044h,011h,044h ; Hex #B0 + Db 055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh ; Hex #B1 + Db 0EEh,0BBh,0EEh,0BBh,0EEh,0BBh,0EEh,0BBh ; Hex #B2 + Db 018h,018h,018h,018h,018h,018h,018h,018h ; Hex #B3 + Db 018h,018h,018h,0F8h,0F8h,018h,018h,018h ; Hex #B4 + Db 018h,018h,0F8h,0F8h,018h,0F8h,018h,018h ; Hex #B5 + Db 034h,034h,034h,0F4h,0F4h,034h,034h,034h ; Hex #B6 + Db 000h,000h,000h,0F8h,0FCh,034h,034h,034h ; Hex #B7 + Db 000h,000h,0F0h,0F8h,018h,0F8h,018h,018h ; Hex #B8 + Db 034h,034h,0F4h,0F4h,004h,0F4h,034h,034h ; Hex #B9 + Db 034h,034h,034h,034h,034h,034h,034h,034h ; Hex #BA + Db 000h,000h,0F8h,0FCh,004h,0F4h,034h,034h ; Hex #BB + Db 034h,034h,0F4h,0F4h,004h,0FCh,000h,000h ; Hex #BC + Db 034h,034h,034h,0FCh,0FCh,000h,000h,000h ; Hex #BD + Db 018h,018h,0F8h,0F8h,018h,0F8h,000h,000h ; Hex #BE + Db 000h,000h,000h,0F8h,0F8h,018h,018h,018h ; Hex #BF + Db 018h,018h,018h,01Fh,01Fh,000h,000h,000h ; Hex #C0 + Db 018h,018h,018h,0FFh,0FFh,000h,000h,000h ; Hex #C1 + Db 000h,000h,000h,0FFh,0FFh,018h,018h,018h ; Hex #C2 + Db 018h,018h,018h,01Fh,01Fh,018h,018h,018h ; Hex #C3 + Db 000h,000h,000h,0FFh,0FFh,000h,000h,000h ; Hex #C4 + Db 018h,018h,018h,0FFh,0FFh,018h,018h,018h ; Hex #C5 + Db 018h,018h,01Fh,01Fh,018h,01Fh,018h,018h ; Hex #C6 + Db 034h,034h,034h,037h,037h,034h,034h,034h ; Hex #C7 + Db 034h,034h,037h,037h,030h,01Fh,000h,000h ; Hex #C8 + Db 000h,000h,03Fh,03Fh,030h,037h,034h,034h ; Hex #C9 + Db 034h,034h,0F7h,0F7h,000h,0FFh,000h,000h ; Hex #CA + Db 000h,000h,0FFh,0FFh,000h,0F7h,034h,034h ; Hex #CB + Db 034h,034h,037h,037h,030h,037h,034h,034h ; Hex #CC + Db 000h,000h,0FFh,0FFh,000h,0FFh,000h,000h ; Hex #CD + Db 034h,034h,0F7h,0F7h,000h,0F7h,034h,034h ; Hex #CE + Db 018h,018h,0FFh,0FFh,000h,0FFh,000h,000h ; Hex #CF + Db 034h,034h,034h,0FFh,0FFh,000h,000h,000h ; Hex #D0 + Db 000h,000h,0FFh,0FFh,000h,0FFh,018h,018h ; Hex #D1 + Db 000h,000h,000h,0FFh,0FFh,034h,034h,034h ; Hex #D2 + Db 034h,034h,034h,03Fh,01Fh,000h,000h,000h ; Hex #D3 + Db 018h,018h,01Fh,01Fh,018h,00Fh,000h,000h ; Hex #D4 + Db 000h,000h,01Fh,01Fh,018h,01Fh,018h,018h ; Hex #D5 + Db 000h,000h,000h,03Fh,03Fh,034h,034h,034h ; Hex #D6 + Db 034h,034h,034h,0FFh,0FFh,034h,034h,034h ; Hex #D7 + Db 018h,018h,0FFh,0FFh,018h,0FFh,018h,018h ; Hex #D8 + Db 018h,018h,018h,0F8h,0F8h,000h,000h,000h ; Hex #D9 + Db 000h,000h,000h,01Fh,01Fh,018h,018h,018h ; Hex #DA + Db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh ; Hex #DB + Db 000h,000h,000h,000h,0FFh,0FFh,0FFh,0FFh ; Hex #DC + Db 0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h ; Hex #DD + Db 00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh ; Hex #DE + Db 0FFh,0FFh,0FFh,0FFh,000h,000h,000h,000h ; Hex #DF + Db 000h,000h,03Dh,06Eh,066h,06Eh,03Bh,000h ; Hex #E0 + Db 03Ch,066h,06Ch,066h,063h,07Bh,06Eh,000h ; Hex #E1 + Db 07Fh,033h,031h,030h,030h,030h,078h,000h ; Hex #E2 + Db 000h,03Fh,07Eh,054h,014h,036h,066h,000h ; Hex #E3 + Db 07Fh,033h,018h,00Ch,018h,033h,07Fh,000h ; Hex #E4 + Db 000h,000h,03Fh,06Ch,06Ch,06Ch,038h,000h ; Hex #E5 + Db 000h,000h,033h,033h,033h,037h,06Dh,060h ; Hex #E6 + Db 000h,03Fh,07Eh,050h,018h,01Ch,00Ch,000h ; Hex #E7 + Db 01Ch,008h,03Eh,06Bh,03Eh,008h,01Ch,000h ; Hex #E8 + Db 01Ch,036h,063h,07Fh,063h,036h,01Ch,000h ; Hex #E9 + Db 01Ch,036h,063h,063h,036h,055h,077h,000h ; Hex #EA + Db 01Ch,030h,018h,02Ch,066h,066h,03Ch,000h ; Hex #EB + Db 000h,036h,07Fh,04Dh,059h,07Fh,036h,000h ; Hex #EC + Db 000h,000h,036h,06Fh,06Bh,03Eh,008h,00Ch ; Hex #ED + Db 000h,000h,01Eh,030h,03Eh,030h,01Eh,000h ; Hex #EE + Db 03Ch,066h,066h,066h,066h,066h,066h,000h ; Hex #EF + Db 000h,07Eh,000h,07Eh,000h,07Eh,000h,000h ; Hex #F0 + Db 018h,018h,07Eh,018h,018h,000h,07Eh,000h ; Hex #F1 + Db 060h,038h,00Eh,038h,060h,000h,07Eh,000h ; Hex #F2 + Db 006h,01Ch,070h,01Ch,006h,000h,07Eh,000h ; Hex #F3 + Db 00Eh,01Bh,01Ah,018h,018h,018h,018h,018h ; Hex #F4 + Db 018h,018h,018h,018h,058h,0D8h,070h,000h ; Hex #F5 + Db 018h,018h,000h,07Eh,000h,018h,018h,000h ; Hex #F6 + Db 000h,03Bh,06Eh,000h,03Bh,06Eh,000h,000h ; Hex #F7 + Db 01Ch,036h,036h,01Ch,000h,000h,000h,000h ; Hex #F8 + Db 000h,000h,018h,03Ch,018h,000h,000h,000h ; Hex #F9 + Db 000h,000h,000h,018h,000h,000h,000h,000h ; Hex #FA + Db 003h,002h,006h,024h,06Ch,038h,018h,010h ; Hex #FB + Db 076h,03Bh,033h,033h,033h,000h,000h,000h ; Hex #FC + Db 03Ch,066h,00Ch,038h,07Eh,000h,000h,000h ; Hex #FD + Db 000h,000h,03Ch,03Ch,03Ch,03Ch,000h,000h ; Hex #FE + Db 000h,000h,000h,000h,000h,000h,000h,000h ; Hex #FF +LEN_D863 EQU ($-D863) + ; +POST_EGA863 EQU $ ; + ; + ; +CODE ENDS ; + 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 @@ +CODE SEGMENT BYTE PUBLIC 'CODE' + ASSUME CS:CODE,DS:CODE + +IF1 + %OUT EGA.CPI creation file + %OUT . + %OUT CP SRC files: + %OUT . + %OUT . CODE PAGE: 865 +ENDIF + +EGA865: DW LEN_865 ;SIZE OF ENTRY HEADER +;;;;;;;;DW POST_EGA865,0 ;POINTER TO NEXT HEADER + DW -1,-1 ;NO MORE TO COME......LAST ENTRY + DW 1 ;DEVICE TYPE + DB "LCD " ;DEVICE SUBTYPE ID + DW 865 ;CODE PAGE ID + DW 3 DUP(0) ;RESERVED + DW OFFSET DATA865,0 ;POINTER TO FONTS +LEN_865 EQU ($-EGA865) + +DATA865:DW 1 ;CART/NON-CART + DW 1 ;# OF FONTS + DW LEN_D865 ;LENGTH OF DATA +D865: ; + DB 8,8 ;CHARACTER BOX SIZE + DB 0,0 ;ASPECT RATIO (UNUSED) + DW 256 ;NUMBER OF CHARACTERS + Db 000h,000h,000h,000h,000h,000h,000h,000h ; Hex #0 + Db 03Ch,042h,0A5h,0A5h,081h,0BDh,05Ah,03Ch ; Hex #1 + Db 03Ch,07Eh,0DBh,0DBh,0FFh,0C3h,066h,03Ch ; Hex #2 + Db 036h,07Fh,07Fh,07Fh,03Eh,01Ch,008h,000h ; Hex #3 + Db 008h,01Ch,03Eh,07Fh,03Eh,01Ch,008h,000h ; Hex #4 + Db 01Ch,03Eh,01Ch,07Fh,07Fh,036h,008h,01Ch ; Hex #5 + Db 008h,01Ch,03Eh,07Fh,07Fh,036h,008h,01Ch ; Hex #6 + Db 000h,000h,018h,03Ch,03Ch,018h,000h,000h ; Hex #7 + Db 0FFh,0FFh,0E7h,0C3h,0C3h,0E7h,0FFh,0FFh ; Hex #8 + Db 000h,000h,03Ch,066h,066h,03Ch,000h,000h ; Hex #9 + Db 0FFh,0FFh,0C3h,099h,099h,0C3h,0FFh,0FFh ; Hex #A + Db 007h,003h,03Eh,066h,066h,066h,03Ch,000h ; Hex #B + Db 03Ch,066h,066h,066h,03Ch,018h,03Ch,018h ; Hex #C + Db 008h,00Ch,00Eh,00Ah,00Ah,008h,038h,030h ; Hex #D + Db 018h,016h,019h,017h,071h,061h,007h,006h ; Hex #E + Db 048h,06Bh,03Eh,0E4h,027h,07Ch,0D6h,012h ; Hex #F + Db 040h,070h,07Ch,07Fh,07Ch,070h,040h,000h ; Hex #10 + Db 001h,007h,01Fh,07Fh,01Fh,007h,001h,000h ; Hex #11 + Db 018h,03Ch,07Eh,018h,018h,07Eh,03Ch,018h ; Hex #12 + Db 036h,036h,036h,036h,036h,000h,036h,000h ; Hex #13 + Db 03Fh,06Ah,06Ah,03Ah,00Ah,00Ah,01Ah,000h ; Hex #14 + Db 03Ch,076h,038h,06Ch,036h,01Ch,06Eh,03Ch ; Hex #15 + Db 000h,000h,000h,07Fh,07Fh,07Fh,000h,000h ; Hex #16 + Db 018h,03Ch,07Eh,018h,07Eh,03Ch,018h,0FFh ; Hex #17 + Db 018h,03Ch,07Eh,05Ah,018h,018h,018h,000h ; Hex #18 + Db 018h,018h,018h,05Ah,07Eh,03Ch,018h,000h ; Hex #19 + Db 000h,00Ch,006h,07Fh,07Fh,006h,00Ch,000h ; Hex #1A + Db 000h,018h,030h,07Fh,07Fh,030h,018h,000h ; Hex #1B + Db 000h,000h,060h,060h,07Fh,07Fh,000h,000h ; Hex #1C + Db 000h,014h,036h,07Fh,07Fh,036h,014h,000h ; Hex #1D + Db 008h,008h,01Ch,01Ch,03Eh,03Eh,07Fh,000h ; Hex #1E + Db 07Fh,03Eh,03Eh,01Ch,01Ch,008h,008h,000h ; Hex #1F + Db 000h,000h,000h,000h,000h,000h,000h,000h ; Hex #20 + Db 018h,018h,018h,018h,018h,000h,018h,000h ; Hex #21 + Db 036h,036h,014h,000h,000h,000h,000h,000h ; Hex #22 + Db 00Ah,00Ah,03Fh,014h,07Eh,028h,028h,000h ; Hex #23 + Db 008h,03Eh,068h,03Eh,00Bh,07Eh,008h,000h ; Hex #24 + Db 001h,03Fh,052h,06Ch,01Bh,035h,076h,000h ; Hex #25 + Db 01Ch,036h,01Ch,03Bh,06Eh,066h,03Bh,000h ; Hex #26 + Db 018h,018h,030h,000h,000h,000h,000h,000h ; Hex #27 + Db 006h,00Ch,018h,018h,018h,00Ch,006h,000h ; Hex #28 + Db 030h,018h,00Ch,00Ch,00Ch,018h,030h,000h ; Hex #29 + Db 000h,036h,01Ch,07Fh,01Ch,036h,000h,000h ; Hex #2A + Db 000h,018h,018h,07Eh,018h,018h,000h,000h ; Hex #2B + Db 000h,000h,000h,000h,000h,018h,018h,030h ; Hex #2C + Db 000h,000h,000h,07Eh,000h,000h,000h,000h ; Hex #2D + Db 000h,000h,000h,000h,000h,018h,018h,000h ; Hex #2E + Db 003h,006h,00Ch,018h,030h,060h,040h,000h ; Hex #2F + Db 018h,02Ch,066h,066h,066h,034h,018h,000h ; Hex #30 + Db 018h,018h,038h,018h,018h,018h,03Ch,000h ; Hex #31 + Db 03Ch,066h,066h,00Ch,018h,032h,07Eh,000h ; Hex #32 + Db 03Ch,066h,00Ch,01Ch,006h,066h,03Ch,000h ; Hex #33 + Db 00Ch,01Ch,02Ch,06Ch,07Eh,00Ch,01Eh,000h ; Hex #34 + Db 07Eh,060h,07Ch,066h,006h,066h,03Ch,000h ; Hex #35 + Db 01Ch,030h,060h,07Ch,066h,066h,03Ch,000h ; Hex #36 + Db 07Eh,066h,04Ch,00Ch,018h,018h,038h,000h ; Hex #37 + Db 03Ch,066h,076h,03Ch,06Eh,066h,03Ch,000h ; Hex #38 + Db 03Ch,066h,066h,03Eh,006h,00Ch,038h,000h ; Hex #39 + Db 000h,018h,018h,000h,000h,018h,018h,000h ; Hex #3A + Db 000h,018h,018h,000h,000h,018h,018h,030h ; Hex #3B + Db 006h,00Ch,018h,030h,018h,00Ch,006h,000h ; Hex #3C + Db 000h,000h,07Eh,000h,07Eh,000h,000h,000h ; Hex #3D + Db 030h,018h,00Ch,006h,00Ch,018h,030h,000h ; Hex #3E + Db 03Ch,066h,026h,00Ch,018h,000h,018h,000h ; Hex #3F + Db 03Eh,041h,05Dh,055h,05Fh,040h,03Eh,000h ; Hex #40 + Db 01Ch,00Ch,01Ch,016h,03Eh,023h,063h,000h ; Hex #41 + Db 07Ch,036h,036h,03Eh,033h,033h,07Eh,000h ; Hex #42 + Db 01Dh,033h,061h,060h,060h,031h,01Eh,000h ; Hex #43 + Db 07Ch,036h,033h,033h,033h,036h,07Ch,000h ; Hex #44 + Db 07Fh,031h,034h,03Ch,034h,031h,07Fh,000h ; Hex #45 + Db 07Fh,031h,034h,03Ch,034h,030h,078h,000h ; Hex #46 + Db 01Dh,033h,061h,060h,067h,033h,01Fh,000h ; Hex #47 + Db 066h,066h,066h,07Eh,066h,066h,066h,000h ; Hex #48 + Db 03Ch,018h,018h,018h,018h,018h,03Ch,000h ; Hex #49 + Db 01Fh,006h,006h,006h,066h,066h,03Ch,000h ; Hex #4A + Db 067h,066h,06Ch,078h,06Ch,066h,067h,000h ; Hex #4B + Db 078h,030h,030h,030h,031h,033h,07Fh,000h ; Hex #4C + Db 041h,063h,077h,07Fh,06Bh,063h,063h,000h ; Hex #4D + Db 043h,063h,073h,07Bh,06Fh,067h,063h,000h ; Hex #4E + Db 01Ch,036h,063h,063h,063h,036h,01Ch,000h ; Hex #4F + Db 07Eh,033h,033h,03Eh,030h,030h,078h,000h ; Hex #50 + Db 01Ch,036h,063h,063h,06Bh,036h,01Ch,007h ; Hex #51 + Db 07Ch,066h,066h,07Ch,06Ch,066h,067h,000h ; Hex #52 + Db 03Eh,066h,070h,03Ch,00Eh,066h,07Ch,000h ; Hex #53 + Db 07Eh,05Ah,018h,018h,018h,018h,03Ch,000h ; Hex #54 + Db 063h,063h,063h,063h,063h,063h,03Eh,000h ; Hex #55 + Db 077h,062h,036h,034h,01Ch,018h,008h,000h ; Hex #56 + Db 063h,063h,06Bh,06Bh,03Eh,036h,022h,000h ; Hex #57 + Db 066h,066h,03Ch,018h,03Ch,066h,066h,000h ; Hex #58 + Db 0E7h,066h,034h,018h,018h,018h,03Ch,000h ; Hex #59 + Db 07Eh,066h,04Ch,018h,032h,066h,07Eh,000h ; Hex #5A + Db 01Eh,018h,018h,018h,018h,018h,01Eh,000h ; Hex #5B + Db 060h,030h,018h,00Ch,006h,003h,001h,000h ; Hex #5C + Db 03Ch,00Ch,00Ch,00Ch,00Ch,00Ch,03Ch,000h ; Hex #5D + Db 008h,01Ch,036h,000h,000h,000h,000h,000h ; Hex #5E + Db 000h,000h,000h,000h,000h,000h,000h,0FFh ; Hex #5F + Db 030h,018h,00Ch,000h,000h,000h,000h,000h ; Hex #60 + Db 000h,000h,03Ch,066h,01Eh,066h,07Bh,000h ; Hex #61 + Db 070h,030h,03Eh,03Bh,033h,03Bh,06Eh,000h ; Hex #62 + Db 000h,000h,03Eh,066h,060h,066h,03Ch,000h ; Hex #63 + Db 00Eh,006h,036h,06Eh,066h,066h,03Bh,000h ; Hex #64 + Db 000h,000h,03Ch,066h,07Eh,060h,03Eh,000h ; Hex #65 + Db 00Eh,01Bh,018h,03Eh,018h,018h,03Ch,000h ; Hex #66 + Db 000h,000h,03Dh,066h,038h,03Eh,063h,03Eh ; Hex #67 + Db 070h,030h,036h,03Bh,033h,033h,073h,000h ; Hex #68 + Db 018h,000h,038h,018h,018h,018h,03Ch,000h ; Hex #69 + Db 00Ch,000h,01Ch,00Ch,00Ch,06Ch,06Ch,038h ; Hex #6A + Db 070h,030h,033h,036h,03Ch,036h,077h,000h ; Hex #6B + Db 038h,018h,018h,018h,018h,018h,03Ch,000h ; Hex #6C + Db 000h,000h,076h,07Fh,06Bh,06Bh,06Bh,000h ; Hex #6D + Db 000h,000h,076h,03Bh,033h,033h,073h,000h ; Hex #6E + Db 000h,000h,03Ch,066h,066h,066h,03Ch,000h ; Hex #6F + Db 000h,000h,06Eh,033h,033h,03Eh,030h,078h ; Hex #70 + Db 000h,000h,03Ah,066h,066h,03Eh,006h,00Fh ; Hex #71 + Db 000h,000h,06Eh,03Bh,033h,030h,078h,000h ; Hex #72 + Db 000h,000h,03Eh,070h,03Ch,00Eh,07Ch,000h ; Hex #73 + Db 008h,018h,03Eh,018h,018h,01Ah,00Ch,000h ; Hex #74 + Db 000h,000h,066h,066h,066h,066h,03Bh,000h ; Hex #75 + Db 000h,000h,073h,032h,036h,01Ch,008h,000h ; Hex #76 + Db 000h,000h,06Bh,06Bh,07Fh,036h,022h,000h ; Hex #77 + Db 000h,000h,073h,036h,01Ch,036h,067h,000h ; Hex #78 + Db 000h,000h,077h,033h,01Ah,00Ch,06Ch,038h ; Hex #79 + Db 000h,000h,07Eh,04Ch,018h,032h,07Eh,000h ; Hex #7A + Db 00Eh,018h,018h,070h,018h,018h,00Eh,000h ; Hex #7B + Db 018h,018h,018h,018h,018h,018h,018h,000h ; Hex #7C + Db 070h,018h,018h,00Eh,018h,018h,070h,000h ; Hex #7D + Db 039h,04Eh,000h,000h,000h,000h,000h,000h ; Hex #7E + Db 008h,01Ch,01Ch,036h,026h,063h,07Fh,07Fh ; Hex #7F + Db 01Dh,033h,061h,060h,060h,031h,00Eh,01Ch ; Hex #80 + Db 06Ch,000h,066h,066h,066h,066h,03Bh,000h ; Hex #81 + Db 00Ch,018h,03Ch,066h,07Eh,060h,03Eh,000h ; Hex #82 + Db 018h,03Ch,03Ch,066h,01Eh,066h,07Bh,000h ; Hex #83 + Db 036h,000h,03Ch,066h,01Eh,066h,07Bh,000h ; Hex #84 + Db 030h,018h,03Ch,066h,01Eh,066h,07Bh,000h ; Hex #85 + Db 018h,018h,03Ch,066h,01Eh,066h,07Bh,000h ; Hex #86 + Db 000h,000h,03Eh,066h,060h,036h,01Ch,038h ; Hex #87 + Db 018h,03Ch,03Ch,066h,07Eh,060h,03Eh,000h ; Hex #88 + Db 036h,000h,03Ch,066h,07Eh,060h,03Eh,000h ; Hex #89 + Db 030h,018h,03Ch,066h,07Eh,060h,03Eh,000h ; Hex #8A + Db 06Ch,000h,038h,018h,018h,018h,03Ch,000h ; Hex #8B + Db 018h,03Ch,000h,038h,018h,018h,03Ch,000h ; Hex #8C + Db 030h,018h,000h,038h,018h,018h,03Ch,000h ; Hex #8D + Db 036h,008h,01Ch,016h,036h,03Fh,063h,000h ; Hex #8E + Db 01Ch,014h,01Ch,01Eh,036h,03Fh,063h,000h ; Hex #8F + Db 006h,00Ch,07Fh,031h,03Ch,031h,07Fh,000h ; Hex #90 + Db 000h,000h,076h,01Bh,03Fh,06Ch,077h,000h ; Hex #91 + Db 03Fh,03Dh,02Ch,03Eh,06Ch,06Dh,06Fh,000h ; Hex #92 + Db 018h,03Ch,03Ch,066h,066h,066h,03Ch,000h ; Hex #93 + Db 066h,000h,03Ch,066h,066h,066h,03Ch,000h ; Hex #94 + Db 030h,018h,03Ch,066h,066h,066h,03Ch,000h ; Hex #95 + Db 018h,03Ch,042h,066h,066h,066h,03Bh,000h ; Hex #96 + Db 030h,018h,066h,066h,066h,066h,03Bh,000h ; Hex #97 + Db 036h,000h,077h,033h,01Ah,00Ch,06Ch,038h ; Hex #98 + Db 063h,01Ch,036h,063h,063h,036h,01Ch,000h ; Hex #99 + Db 036h,041h,063h,063h,063h,063h,03Eh,000h ; Hex #9A + Db 000h,004h,03Ch,06Eh,07Eh,076h,03Ch,020h ; Hex #9B + Db 01Eh,033h,033h,07Ch,039h,05Bh,076h,000h ; Hex #9C + Db 01Dh,036h,067h,06Bh,073h,036h,05Ch,000h ; Hex #9D + Db 078h,06Ch,06Ch,07Ah,066h,06Fh,066h,003h ; Hex #9E + Db 00Eh,01Bh,018h,03Eh,018h,018h,058h,070h ; Hex #9F + Db 00Ch,018h,03Ch,066h,01Eh,066h,07Bh,000h ; Hex #A0 + Db 018h,030h,000h,038h,018h,018h,03Ch,000h ; Hex #A1 + Db 00Ch,018h,03Ch,066h,066h,066h,03Ch,000h ; Hex #A2 + Db 00Ch,018h,066h,066h,066h,066h,03Bh,000h ; Hex #A3 + Db 01Ah,02Ch,076h,03Bh,033h,033h,073h,000h ; Hex #A4 + Db 01Ah,02Ch,073h,07Bh,06Fh,067h,063h,000h ; Hex #A5 + Db 01Eh,036h,036h,01Fh,000h,03Fh,000h,000h ; Hex #A6 + Db 01Ch,036h,036h,01Ch,000h,03Eh,000h,000h ; Hex #A7 + Db 018h,000h,018h,030h,064h,066h,03Ch,000h ; Hex #A8 + Db 000h,000h,000h,07Eh,060h,060h,000h,000h ; Hex #A9 + Db 000h,000h,000h,07Eh,006h,006h,000h,000h ; Hex #AA + Db 060h,066h,06Ch,07Eh,03Bh,066h,04Ch,00Fh ; Hex #AB + Db 060h,066h,06Ch,07Bh,037h,06Bh,04Fh,003h ; Hex #AC + Db 018h,000h,018h,018h,018h,018h,018h,000h ; Hex #AD + Db 000h,01Bh,036h,06Ch,06Ch,036h,01Bh,000h ; Hex #AE + Db 000h,066h,07Eh,024h,024h,07Eh,066h,000h ; Hex #AF + Db 011h,044h,011h,044h,011h,044h,011h,044h ; Hex #B0 + Db 055h,0AAh,055h,0AAh,055h,0AAh,055h,0AAh ; Hex #B1 + Db 0EEh,0BBh,0EEh,0BBh,0EEh,0BBh,0EEh,0BBh ; Hex #B2 + Db 018h,018h,018h,018h,018h,018h,018h,018h ; Hex #B3 + Db 018h,018h,018h,0F8h,0F8h,018h,018h,018h ; Hex #B4 + Db 018h,018h,0F8h,0F8h,018h,0F8h,018h,018h ; Hex #B5 + Db 034h,034h,034h,0F4h,0F4h,034h,034h,034h ; Hex #B6 + Db 000h,000h,000h,0F8h,0FCh,034h,034h,034h ; Hex #B7 + Db 000h,000h,0F0h,0F8h,018h,0F8h,018h,018h ; Hex #B8 + Db 034h,034h,0F4h,0F4h,004h,0F4h,034h,034h ; Hex #B9 + Db 034h,034h,034h,034h,034h,034h,034h,034h ; Hex #BA + Db 000h,000h,0F8h,0FCh,004h,0F4h,034h,034h ; Hex #BB + Db 034h,034h,0F4h,0F4h,004h,0FCh,000h,000h ; Hex #BC + Db 034h,034h,034h,0FCh,0FCh,000h,000h,000h ; Hex #BD + Db 018h,018h,0F8h,0F8h,018h,0F8h,000h,000h ; Hex #BE + Db 000h,000h,000h,0F8h,0F8h,018h,018h,018h ; Hex #BF + Db 018h,018h,018h,01Fh,01Fh,000h,000h,000h ; Hex #C0 + Db 018h,018h,018h,0FFh,0FFh,000h,000h,000h ; Hex #C1 + Db 000h,000h,000h,0FFh,0FFh,018h,018h,018h ; Hex #C2 + Db 018h,018h,018h,01Fh,01Fh,018h,018h,018h ; Hex #C3 + Db 000h,000h,000h,0FFh,0FFh,000h,000h,000h ; Hex #C4 + Db 018h,018h,018h,0FFh,0FFh,018h,018h,018h ; Hex #C5 + Db 018h,018h,01Fh,01Fh,018h,01Fh,018h,018h ; Hex #C6 + Db 034h,034h,034h,037h,037h,034h,034h,034h ; Hex #C7 + Db 034h,034h,037h,037h,030h,01Fh,000h,000h ; Hex #C8 + Db 000h,000h,03Fh,03Fh,030h,037h,034h,034h ; Hex #C9 + Db 034h,034h,0F7h,0F7h,000h,0FFh,000h,000h ; Hex #CA + Db 000h,000h,0FFh,0FFh,000h,0F7h,034h,034h ; Hex #CB + Db 034h,034h,037h,037h,030h,037h,034h,034h ; Hex #CC + Db 000h,000h,0FFh,0FFh,000h,0FFh,000h,000h ; Hex #CD + Db 034h,034h,0F7h,0F7h,000h,0F7h,034h,034h ; Hex #CE + Db 018h,018h,0FFh,0FFh,000h,0FFh,000h,000h ; Hex #CF + Db 034h,034h,034h,0FFh,0FFh,000h,000h,000h ; Hex #D0 + Db 000h,000h,0FFh,0FFh,000h,0FFh,018h,018h ; Hex #D1 + Db 000h,000h,000h,0FFh,0FFh,034h,034h,034h ; Hex #D2 + Db 034h,034h,034h,03Fh,01Fh,000h,000h,000h ; Hex #D3 + Db 018h,018h,01Fh,01Fh,018h,00Fh,000h,000h ; Hex #D4 + Db 000h,000h,01Fh,01Fh,018h,01Fh,018h,018h ; Hex #D5 + Db 000h,000h,000h,03Fh,03Fh,034h,034h,034h ; Hex #D6 + Db 034h,034h,034h,0FFh,0FFh,034h,034h,034h ; Hex #D7 + Db 018h,018h,0FFh,0FFh,018h,0FFh,018h,018h ; Hex #D8 + Db 018h,018h,018h,0F8h,0F8h,000h,000h,000h ; Hex #D9 + Db 000h,000h,000h,01Fh,01Fh,018h,018h,018h ; Hex #DA + Db 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh ; Hex #DB + Db 000h,000h,000h,000h,0FFh,0FFh,0FFh,0FFh ; Hex #DC + Db 0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h,0F0h ; Hex #DD + Db 00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh,00Fh ; Hex #DE + Db 0FFh,0FFh,0FFh,0FFh,000h,000h,000h,000h ; Hex #DF + Db 000h,000h,03Dh,06Eh,066h,06Eh,03Bh,000h ; Hex #E0 + Db 03Ch,066h,06Ch,066h,063h,07Bh,06Eh,000h ; Hex #E1 + Db 07Fh,033h,031h,030h,030h,030h,078h,000h ; Hex #E2 + Db 000h,03Fh,07Eh,054h,014h,036h,066h,000h ; Hex #E3 + Db 07Fh,033h,018h,00Ch,018h,033h,07Fh,000h ; Hex #E4 + Db 000h,000h,03Fh,06Ch,06Ch,06Ch,038h,000h ; Hex #E5 + Db 000h,000h,033h,033h,033h,037h,06Dh,060h ; Hex #E6 + Db 000h,03Fh,07Eh,050h,018h,01Ch,00Ch,000h ; Hex #E7 + Db 01Ch,008h,03Eh,06Bh,03Eh,008h,01Ch,000h ; Hex #E8 + Db 01Ch,036h,063h,07Fh,063h,036h,01Ch,000h ; Hex #E9 + Db 01Ch,036h,063h,063h,036h,055h,077h,000h ; Hex #EA + Db 01Ch,030h,018h,02Ch,066h,066h,03Ch,000h ; Hex #EB + Db 000h,036h,07Fh,04Dh,059h,07Fh,036h,000h ; Hex #EC + Db 001h,003h,03Eh,067h,06Bh,073h,03Eh,040h ; Hex #ED + Db 000h,000h,01Eh,030h,03Eh,030h,01Eh,000h ; Hex #EE + Db 03Ch,066h,066h,066h,066h,066h,066h,000h ; Hex #EF + Db 000h,07Eh,000h,07Eh,000h,07Eh,000h,000h ; Hex #F0 + Db 018h,018h,07Eh,018h,018h,000h,07Eh,000h ; Hex #F1 + Db 060h,038h,00Eh,038h,060h,000h,07Eh,000h ; Hex #F2 + Db 006h,01Ch,070h,01Ch,006h,000h,07Eh,000h ; Hex #F3 + Db 00Eh,01Bh,01Ah,018h,018h,018h,018h,018h ; Hex #F4 + Db 018h,018h,018h,018h,058h,0D8h,070h,000h ; Hex #F5 + Db 018h,018h,000h,07Eh,000h,018h,018h,000h ; Hex #F6 + Db 000h,03Bh,06Eh,000h,03Bh,06Eh,000h,000h ; Hex #F7 + Db 01Ch,036h,036h,01Ch,000h,000h,000h,000h ; Hex #F8 + Db 000h,000h,018h,03Ch,018h,000h,000h,000h ; Hex #F9 + Db 000h,000h,000h,018h,000h,000h,000h,000h ; Hex #FA + Db 003h,002h,006h,024h,06Ch,038h,018h,010h ; Hex #FB + Db 076h,03Bh,033h,033h,033h,000h,000h,000h ; Hex #FC + Db 03Ch,066h,00Ch,038h,07Eh,000h,000h,000h ; Hex #FD + Db 000h,000h,03Ch,03Ch,03Ch,03Ch,000h,000h ; Hex #FE + Db 000h,000h,000h,000h,000h,000h,000h,000h ; Hex #FF +LEN_D865 EQU ($-D865) + ; +POST_EGA865 EQU $ ; + ; +include copyrigh.inc + +CODE ENDS + 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 @@ +CODE SEGMENT BYTE PUBLIC 'CODE' + ASSUME CS:CODE,DS:CODE + + DB 13,10 + DB "Microsoft MS-DOS (R) LCD Display Font File",13,10 +include copyrigh.inc + DB 1Ah + +CODE ENDS + 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 @@ +CODE SEGMENT BYTE PUBLIC 'CODE' + ASSUME CS:CODE,DS:CODE + +BEGIN: ORG 0 + +FNTHEAD:DB 0FFH,"FONT " ;FILE TAG + DB 8 DUP(0) ;RESERVED + DW 1 ;CNT OF POINTERS IN HEADER + DB 1 ;TYPE FOR INFO POINTER + DW OFFSET INFO,0 ;POINTER TO INFO IN FILE +INFO: DW 5 ;COUNT OF ENTRIES + +CODE ENDS + END + \ 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 @@ +FONT-R3+ +437-CPI+ +850-CPI+ +860-CPI+ +863-CPI+ +865-CPI+ +COPYRIGH; + \ 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 @@ +#************************ Makefile for Display\LCD ************************ + +inc =..\..\..\inc +msg =..\..\..\message +dos =..\..\..\dos +hinc =..\..\..\h + +# +######################### Dependencies Begin Here ######################### +# + +all: lcd.cpi + +865-cpi.obj: 865-cpi.asm + +860-cpi.obj: 860-cpi.asm + +437-cpi.obj: 437-cpi.asm + +863-cpi.obj: 863-cpi.asm + +850-cpi.obj: 850-cpi.asm + +copyrigh.obj: copyrigh.asm $(inc)\copyrigh.inc + +font-r3.obj: font-r3.asm + +lcd.cpi: font-r3.obj 437-cpi.obj 850-cpi.obj 860-cpi.obj \ + 863-cpi.obj 865-cpi.obj copyrigh.obj lcd.lnk makefile + link @lcd.lnk + exe2bin font-r3.exe lcd.cpi + 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 @@ +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; *** MACROS **** MACROS **** MACROS **** +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +IF1 ; + %OUT . ®MACROS .INC¯ +ENDIF ; + ; +JUMP MACRO LBL ; + LOCAL A ; +.XCREF ; + IFNDEF LBL&_J ; IS THIS FIRST INVOKATION +A: JMP LBL ; + ELSE ; + IF (LBL&_J GE $) OR ($-LBL&_J GT 126) +A: JMP LBL ; IS THE JUMP TOO FAR AWAY? + ELSE ; +A: JMP LBL&_J ; PERFORM SHORT JUMP + ENDIF ; + ENDIF ; +LBL&_J=A ; +.CREF ; + ENDM ; +.XCREF JUMP ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; *** MACROS **** MACROS **** MACROS **** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + \ 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 @@ +#************************* Makefile for Display *************************** + +inc =..\..\inc +msg =..\..\messages +dos =..\..\dos +hinc =..\..\h +make =nmake + +# +######################## Dependencies Begin Here ########################## + +all: display.sys ega.cpi lcd.cpi + +display.ctl: display.skl $(msg)\$(COUNTRY).msg + +display.obj: display.asm makefile \ + macros.inc \ + def-equ.inc \ + int2fcom.inc \ + int10com.inc \ + cps-func.inc \ + write.inc \ + f-parser.inc + +init.obj: init.asm makefile \ + macros.inc \ + def-equ.inc \ + $(inc)\sysmsg.inc \ + $(inc)\versiona.inc \ + display.ctl \ + tables.inc + +parser.obj: parser.asm makefile \ + def-equ.inc \ + $(inc)\struc.inc \ + $(inc)\parse.asm + +display.sys: display.obj init.obj parser.obj display.lnk makefile zero.dat + link @display.lnk + exe2bin display.exe display.sys < zero.dat + del display.exe + +ega.cpi: + cd ega + $(make) + cd .. + +lcd.cpi: + cd lcd + $(make) + cd .. + + 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 @@ +PAGE ,132 +TITLE PARSE CODE AND CONTROL BLOCKS FOR DISPLAY.SYS + +;****************** START OF SPECIFICATIONS ************************** +; +; MODULE NAME: PARSER.ASM +; +; DESCRIPTIVE NAME: PARSES THE DEVICE= STATEMENT IN CONFIG.SYS FOR +; DISPLAY.SYS +; +; FUNCTION: THE COMMAND LINE PASSED TO DISPLAY.SYS IN THE CONFIG.SYS +; STATEMENT IS PARSED TO CHECK FOR CORRECT SYNTAX. A TABLE +; IS SETUP CONTAINING THE VALUES FOUND. +; +; ENTRY POINT: PARSER +; +; INPUT: ES:DI POINTS TO REQUEST HEADER +; +; AT EXIT: +; NORMAL: TABLE SET UP WITH VALUES FOUND. +; +; ERROR: 0 RETURNED IN FIRST WORD OF TABLE. +; +; INTERNAL REFERENCES: +; +; ROUTINES: SYSPARSE - PARSING CODE +; +; DATA AREAS: PARMSx - PARSE CONTROL BLOCK FOR SYSPARSE +; TABLE - TO CONTAIN VALUES FOUND IN DEVICE= LINE +; +; EXTERNAL REFERENCES: +; +; ROUTINES: N/A +; +; DATA AREAS: N/A +; +; NOTES: +; +; REVISION HISTORY: +; AN000; - DOS Version 4.00 +; AN001 - GHG P897 - Changes to the parser forced the inclusion +; of the '=' in the device ID. +; +; Label: "The DOS DISPLAY.SYS Device Driver" +; "Version 4.00 (C) Copyright 1988 Microsoft +; "Licensed Material - Program Property of Microsoft" +; +;****************** END OF SPECIFICATIONS **************************** +;Modification history ********************************************************* +;AN002; P1895 DISPLAY.SYS rejects command CON=(cga,(437),(0,0)) 10/22/87 J.K. +;****************************************************************************** +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; The following is the table structure of the parser. All fields are +; two bytes field (accept for the device and id name) +; +; TABLE HEADER : +; ÍÍÍÍÍÍÍÍÍÍÍÍÍÍ +; ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ +; ³ N = Number of devices. ³ +; ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ +; ³ Device # 1 offset ÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄ>ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ +; ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ ³ +; ³ Device # 2 offset ³ ³ Table_1 (a) ³ +; ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ ³ +; ³ Device # 3 offset ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ +; ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ +; ³ Device # 4 offset ³ +; ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ +; +; +; N = 1,2,3 or 4. A two bytes number indicating the number of device specified. +; DEVICE # N OFFSET : a two bytes offset address to table_1. (ie. Device #1 offset +; is a pointer to table_1 (a). Device #2 offset is a pointer to table_1 +; (b)...etc.). If an error was detected in the command N is set to zero. +; +; +; +; TABLE_1 : +; ÍÍÍÍÍÍÍÍÍ +; +; ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ +; ³ N = Number of Offsets. ³ ³ ³ +; ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ÚÄÄÄÄÄij Table_2 (a) ³ +; ³ Device Name offset ÄÅÄÄÄÄÙ ³ ³ +; ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ +; ³ Device Id offset ÄÅÄÄÄÄÄÄ¿ +; ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ +; ³ Device HWCP offset ÄÅÄÄÄÄ¿ ³ ³ ³ +; ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ ÀÄÄÄij Table_3 (a) ³ +; ³ Device Desg offset ÄÅÄÄ¿ ³ ³ ³ +; ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ +; ³ "Reserved" ³ ³ ³ +; ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ³ ³ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ +; ³ ³ ³ ³ +; ³ ÀÄÄÄÄÄij Table_4 (a) ³ +; ³ ³ ³ +; ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ +; ³ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ +; ³ ³ ³ +; ÀÄÄÄÄÄÄÄij Table_5 (a) ³ +; ³ ³ +; ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ +; +; +; N=Length of table_1, or the number of offsets contained in table_1. +; The offsets are pointers (two bytes) to the parameters value of the device. +; "Reserved" : a two byte memory reserved for future use of the "PARMS" option. +; +; +; TABLE_2 : +; ÍÍÍÍÍÍÍÍÍ +; +; ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ +; ³ N = Length of devices name ³ +; ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ +; ³ Device name ³ +; ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ +; +; N = Length of device name. Device length is always 8 byte long. +; Device Name : the name of the device (eg. LPT1, CON, PRN). The name +; is paded with spaces to make up the rest of the 8 characters. +; +; +; +; TABLE_3 : +; ÍÍÍÍÍÍÍÍÍ +; +; ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ +; ³ N = Length of Id name. ³ +; ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ +; ³ Id Name ³ +; ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ +; +; N = Length of id name. Id name length is always 8 byte long. +; Id Name : the name of the id (eg. EGA, VGA). The name +; is paded with spaces to make up the rest of the 8 character. +; +; +; +; TABLE_4 : +; ÍÍÍÍÍÍÍÍÍ +; +; ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ +; ³ N = Length of table. ³ +; ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ +; ³ HWCP # 1 ³ +; ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ +; ³ HWCP # 2 ³ +; ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ +; ³ . ³ +; ³ . ³ +; ³ . ³ +; ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ +; ³ HWCP # 10 ³ +; ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ +; +; +; N = Length of table in words. Or the number of HWCP's. +; HWCP # N : a hardware code page number converted to binary. The maximum +; number of pages allowed is 10. +; +; +; +; TABLE_5 : +; ÍÍÍÍÍÍÍÍÍ +; +; ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ +; ³ N = Length of table. ³ +; ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ +; ³ Designate ³ +; ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ +; ³ Font ³ +; ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ +; +; N = Lenght of table. 0 - nothing was specified +; 1 - Only a designate was specified. +; 2 - Designate and font were given. If the Desg field +; was left empty in the DEVICE command then the +; Designate field is filled with 0FFFFH. +; Designate, Font : Are the Desg. and Font binary numbers. +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +INCLUDE DEF-EQU.INC ; structures and equates ;AN000; + +.XLIST +INCLUDE STRUC.INC ; Structured macros ;AN000; +.LIST + +PUBLIC PARSER ; near procedure for parsing DEVICE= statement ;AN000; +PUBLIC TABLE ; table for variable storage used by INIT module. ;AN000; +PUBLIC GET_DEVICE_ID ; procedure to determine device adapter ;AN000; + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; Set assemble switches for parse code +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +DateSW EQU 0 ;AN000; +DrvSW EQU 0 ;AN000; +SwSW EQU 0 ;AN000; +Val1SW EQU 0 ;AN000; +Val2SW EQU 0 ;AN000; +Val3SW EQU 0 ;AN000; + + +CODE SEGMENT PUBLIC BYTE 'CODE' + ASSUME CS:CODE + + +.XLIST +INCLUDE PARSE.ASM ; Parsing code ;AN000; +.LIST + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; PARM control block for DISPLAY.SYS - DEVICE= command statement. +; Command line looks like: +; +; DEVICE=[d:][path]DISPLAY.SYS CON[:]=(type[,[hwcp][,n]]) +; or +; DEVICE=[d:][path]DISPLAY.SYS CON[:]=(type[,[hwcp][,(n,m)]]) +; or, for compatibility with DOS 3.3; PTM P1895 +; DEVICE=[d:][path]DISPLAY.SYS CON[:]=(type[,[(hwcp)][,n|(n,m)]]) +; +; The command line will be parsed from left to right, taking care of the +; nesting of complex lists as they occur. +; +; The first level of control blocks is shown below. +; Complex list control blocks follow. +; Null VALUE LIST and RESULT BUFFER are placed after all other PARSE control +; blocks. +; +; d:\path\DISPLAY.SYS CON=(complex list) +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +PARMS1 LABEL WORD ;AN000; + DW PARMSX1 ;AN000; + DB 0 ; no extra delimeters or EOLs. ;AN000; + +PARMSX1 LABEL BYTE ;AN000; + DB 1,1 ; min,max positional operands ;AN000; + DW D_NAME ; pointer to control block ;AN000; + DB 0 ; no switches ;AN000; + DB 1 ; 1 keywords ;AN000; + DW DSP_LIST ; pointer to control block ;AN000; + +D_NAME LABEL WORD ;AN000; + DW 0200H ; file spec ;AN000; + DW 0001H ; cap result by file table ;AN000; + DW RESULT_BUF ; result ;AN000; + DW NOVALS ; no value checking done ;AN000; + DB 0 ; no keyword/switch synonyms ;AN000; + +DSP_LIST LABEL WORD ;AN000; + DW 0400H ; complex list, ignore colon ;AN000; + DW 0012H ; cap result by char table ;AN000; + DW RESULT_BUF ; result ;AN000; + DW NOVALS ; no value checking done ;AN000; + DB 2 ; 1 keyword ;AN000; + DB "CON=",0 ;GHG CON[:]= keyword ;AN001; + DB "CON:=",0 ;GHG ;AN001; + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; PARM control block for second level of nesting. +; ie. complex list from first level of nesting +; +; (type, hwcp, n or complex list) +;or, +; (type, (hwcp), n or complex list) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +PARMS2 LABEL WORD ;AN000; + DW PARMSX2 ;AN000; + DB 0 ; no extra delimeters or EOLs. ;AN000; + +PARMSX2 LABEL BYTE ;AN000; + DB 0,3 ; min,max positional operands ;AN000; + DW DSP_TYPE ; pointer to control block ;AN000; + DW HWCP ; pointer to control block ;AN000; + DW CP_PREPS ; pointer to control block ;AN000; + DB 0 ; no switches ;AN000; + DB 0 ; no keywords ;AN000; + +DSP_TYPE LABEL BYTE ;AN000; + DW 2001H ; sstring (optional) ;AN000; + DW 0002H ; cap by char table ;AN000; + DW RESULT_BUF ; result ;AN000; + DW NOVALS ; value list ;AN000; + DB 0 ; no keyword/switch synonyms ;AN000; + + +HWCP LABEL BYTE ;AN000; + DW 8401H ;AN002; numeric or complex list (optional) + DW 0 ; no functions ;AN000; + DW RESULT_BUF ; result ;AN000; + DW NOVALS ; no value checking done ;AN000; + DB 0 ; no keyword/switch synonyms ;AN000; + +CP_PREPS LABEL BYTE ;AN000; + DW 8401H ; numeric or complex list (optional) ;AN000; + DW 0 ; no functions ;AN000; + DW RESULT_BUF ; result ;AN000; + DW NOVALS ; value list ;AN000; + DB 0 ; no keyword/switch synonyms ;AN000; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; PARM control block for third level of nesting. +; ie. complex list from second nesting level +; +; (hwcp) +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +PARMS3_X LABEL WORD ;AN002; + DW PARMSX3_X ;AN002; + DB 0 ;AN002; no extra delimeters or EOLs. + +PARMSX3_X LABEL BYTE ;AN002; + DB 1,1 ;AN002; min,max positional operands + DW PREPS ;AN002; pointer to control block + DB 0 ;AN002; no switches + DB 0 ;AN002; no keywords + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; PARM control block for third level of nesting. +; ie. complex list from second nesting level +; +; (n,m) +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +PARMS3 LABEL WORD ;AN000; + DW PARMSX3 ;AN000; + DB 0 ; no extra delimeters or EOLs. ;AN000; + +PARMSX3 LABEL BYTE ;AN000; + DB 1,2 ; min,max positional operands ;AN000; + DW PREPS ; pointer to control block ;AN000; + DW SUBFONTS ; pointer to control block ;AN000; + DB 0 ; no switches ;AN000; + DB 0 ; no keywords ;AN000; + +PREPS LABEL BYTE ;AN000; + DW 8000H ; numeric ;AN000; + DW 0 ; no functions ;AN000; + DW RESULT_BUF ; result ;AN000; + DW NOVALS ; value list ;AN000; + DB 0 ; no keyword/switch synonyms ;AN000; + +SUBFONTS LABEL BYTE ;AN000; + DW 8001H ; numeric (optional) ;AN000; + DW 0 ; no functions ;AN000; + DW RESULT_BUF ; result ;AN000; + DW NOVALS ; no value checking done ;AN000; + DB 0 ; no keyword/switch synonyms ;AN000; + +; Null VALUE LIST and RESULT BUFFER for all PARSE control blocks ;AN000; + +NOVALS LABEL BYTE ;AN000; + DB 0 ; no value checking done ;AN000; + +RESULT_BUF LABEL BYTE ;AN000; +RESULT_TYPE DB ? ; type returned (number, string, etc.) ;AN000; + DB ? ; matched item tag (if applicable) ;AN000; + DW ? ; synonym ptr (if applicable) ;AN000; +RESULT_VAL DD ? ; value ;AN000; + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; TABLE STRUCTURE FOR RETURNING VALUES TO THE INIT MODULE +; (ADAPTED FROM VERSION 1.0 DISPLAY.SYS) +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +TABLE LABEL BYTE ; table header ;AN000; +DEVICE_NUM DW ONE ; should only be one device ;AN000; +TABLE2_PTR DW TABLE2 ; pointer to table 2 ;AN000; + +TABLE2 LABEL WORD ;AN000; +OFFSET_NUM DW FOUR ; 4 pointer follow ;AN000; +TABLE3_PTR DW TABLE3 ; pointer to table 3 (device name) ;AN000; +TABLE4_PTR DW TABLE4 ; pointer to table 4 (device id) ;AN000; +TABLE5_PTR DW TABLE5 ; pointer to table 5 (hwcp's) ;AN000; +TABLE6_PTR DW TABLE6 ; pointer to table 6 (num desg's and fonts) ;AN000; + +TABLE3 LABEL WORD ; device name (ie. CON) ;AN000; +T3_LENGTH DW EIGHT ; length ;AN000; +T3_NAME DB "CON " ; value ;AN000; + +TABLE4 LABEL WORD ; device id. (eg. EGA,MONO...) ;AN000; +T4_LENGTH DW ZERO ; length ;AN000; +T4_NAME DB " " ; value ;AN000; + +TABLE5 LABEL WORD ; hardware code pages ;AN000; +T5_NUM DW ZERO ; only 1 for CON ;AN000; +T5_VALUE DW ? ; value ;AN000; + +TABLE6 LABEL WORD ; Designates and fonts ;AN000; +T6_NUM DW ZERO ; values given (0 - 2 valid) ;AN000; +T6_DESG DW ? ; n value ;AN000; +T6_FONT DW ? ; m value ;AN000; + + +OK_FLAG DB ON ; FLAG INDICATING PARSE STATUS ;AN000; +LOOP1 DB ZERO ;AN000; +LOOP2 DB ZERO ;AN000; + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; PROCEDURE_NAME: PARSER +; +; FUNCTION: +; THIS PROCEDURE PARSES THE DEVICE= PARAMETERS FROM THE INIT REQUEST +; BLOCK. +; +; AT ENTRY: ES:DI POINTS TO REQUEST HEADER +; +; AT EXIT: +; NORMAL: TABLE SET UP WITH VALUES FOUND +; +; ERROR: 0 LOADED IN FIRST WORD OF TABLE +; +; AUTHOR: WGR +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +PARSER PROC NEAR ;AN000; + PUSH ES ;AN000; + PUSH BX ;AN000; + PUSH DS ; ;AN000; + PUSH SI ; ;AN000; + LDS SI,RH.RH0_BPBA ; ;AN000; + PUSH CS ; establish ES .. ;AN000; + POP ES ; addressability to data ;AN000; + LEA DI,PARMS1 ; point to PARMS control block ;AN000; + XOR CX,CX ; clear both CX and DX for ;AN000; + XOR DX,DX ; SYSPARSE ;AN000; + CALL SYSPARSE ; move pointer past file spec ;AN000; + CALL SYSPARSE ; do first parse ;AN000; + .WHILE AND ; EOL?...then end parse...and.. ;AN000; + .WHILE ; make sure that flag still ok.. ;AN000; + .IF ; parse error? ;AN000; + MOV OK_FLAG,OFF ; yes...reset flag ;AN000; + .ELSE ; no...process.. ;AN000; + .SELECT ; ;AN000; + .WHEN ; complex string found? ;AN000; + INC LOOP1 ; increment count ;AN000; + .IF ; more than one? ;AN000; + MOV OK_FLAG,OFF ; yes....we have an error ;AN000; + .ELSE ; no .. ;AN000; + CALL PARSE_MAIN ; process complex string.. ;AN000; + .ENDIF ; ;AN000; + .OTHERWISE ; not a complex string so.. ;AN000; + MOV OK_FLAG,OFF ; we have a problem...reset flag ;AN000; + .ENDSELECT ; ;AN000; + CALL SYSPARSE ; continue parsing.. ;AN000; + .ENDIF ; ;AN000; + .ENDWHILE ; ;AN000; + .IF OR ; flag indicating error? ;AN000; + .IF ; or no parameters specified? ;AN000; + MOV DEVICE_NUM,ZERO ; yes...set device number to 0 ;AN000; + STC ; ;AN000; + .ELSE ; ;AN000; + CLC ; ;AN000; + .ENDIF ; ;AN000; + POP SI ; ;AN000; + POP DS ; ;AN000; + POP BX ; ;AN000; + POP ES ; ;AN000; + RET ; ;AN000; +PARSER ENDP ;AN000; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; PROCEDURE_NAME: PARSE_MAIN +; +; FUNCTION: +; THIS PROCEDURE PARSES THE CON=( ) COMPLEX LIST DEVICE= LINE FOUND +; IN CONFIG.SYS +; +; AT ENTRY: RESULT BUFFER CONTAINS POINTER TO COMPLEX STRING +; +; AT EXIT: +; NORMAL: TABLE SET UP WITH VALUES FOUND +; +; ERROR: OK_FLAG = 0 +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +PARSE_MAIN PROC NEAR ;AN000; + PUSH DI ; setup to parse the nested.. ;AN000; + PUSH DS ; complex string...but save.. ;AN000; + PUSH SI ; current parsing status. ;AN000; + PUSH CX ; ;AN000; + XOR CX,CX ; ;AN000; + LEA DI,PARMS2 ; next control block.. ;AN000; + LDS SI,RESULT_VAL ; point to stored string ;AN000; + CALL SYSPARSE ; ;AN000; + .WHILE AND ; not EOL? and.. ;AN000; + .WHILE ; error flag still ok? ;AN000; + .IF ; check for parse errors ;AN000; + MOV OK_FLAG,OFF ; yes....reset error flag ;AN000; + .ELSE ; no...process ;AN000; + INC LOOP2 ; ;AN000; + .SELECT ; ;AN000; + .WHEN ; simple string ;AN000; + CALL PARSE_STR ; yes...process ;AN000; + .WHEN ; number?.. ;AN000; + CALL PARSE_NUM ; yes...process ;AN000; + .WHEN ; complex string? ;AN000; + CALL PARSE_COMPLEX ;AN002; + .OTHERWISE ; anything else is.. ;AN000; + MOV OK_FLAG,OFF ; an error...reset flag. ;AN000; + .ENDSELECT ; ;AN000; + CALL SYSPARSE ; continue parsing ;AN000; + .ENDIF ; ;AN000; + .ENDWHILE ; ;AN000; + POP CX ; restore original parse.. ;AN000; + POP SI ; registers. ;AN000; + POP DS ; ;AN000; + POP DI ; ;AN000; + RET ; ;AN000; +PARSE_MAIN ENDP + +; +PARSE_COMPLEX PROC ;AN002; + .IF ;AN002; Should be for HWCP + CALL PARSE_COMP_X ;AN002; for (hwcp) + .ELSE ;AN002; + CALL PARSE_COMP ; yes...process for (n,m) ;AN000; + .ENDIF ;AN002; + ret ;AN002; +PARSE_COMPLEX ENDP + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; PROCEDURE_NAME: PARSE_COMP_X +; +; FUNCTION: +; THIS PROCEDURE PARSES A COMPLEX LIST FOUND WITHIN THE CON=( ) +; COMPLEX LIST for (hwcp). +; +; AT ENTRY: RESULT BUFFER CONTAINS POINTER TO COMPLEX STRING +; +; AT EXIT: +; NORMAL: TABLE SET UP WITH VALUES FOUND +; +; ERROR: OK_FLAG = 0 +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +PARSE_COMP_X PROC NEAR ;AN002; + PUSH DI ;AN002; setup ro parse the nested.. + PUSH DS ;AN002; complex string..saving the.. + PUSH SI ;AN002; current parse status. + PUSH CX ;AN002; + XOR CX,CX ;AN002; + LEA DI,PARMS3_X ;AN002; next control block + LDS SI,RESULT_VAL ;AN002; point to stored string. + CALL SYSPARSE ;AN002; + .WHILE AND ;AN002; not EOL?...and.. + .WHILE ;AN002; error flag still okay? + .IF OR ;AN002; parse error?...or.. + .IF ;AN002; something other than a number.. + MOV OK_FLAG,OFF ;AN002; found?....yes..reset flag. + .ELSE ;AN002; no...process.. + INC T5_NUM ;AN002; increment counter + MOV AX,WORD PTR RESULT_VAL ;AN002; get numeric value into word + MOV T5_VALUE,AX ;AN002; yes...number of designates. + CALL SYSPARSE ;AN002; continue parsing + .ENDIF ;AN002; + .ENDWHILE ;AN002; + POP CX ;AN002; restore previous parse.. + POP SI ;AN002; registers. + POP DS ;AN002; + POP DI ;AN002; + RET ;AN002; +PARSE_COMP_X ENDP ;AN002; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; PROCEDURE_NAME: PARSE_COMP +; +; FUNCTION: +; THIS PROCEDURE PARSES A COMPLEX LIST FOUND WITHIN THE CON=( ) +; COMPLEX LIST for (n,m). +; +; AT ENTRY: RESULT BUFFER CONTAINS POINTER TO COMPLEX STRING +; +; AT EXIT: +; NORMAL: TABLE SET UP WITH VALUES FOUND +; +; ERROR: OK_FLAG = 0 +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +PARSE_COMP PROC NEAR ;AN000; + PUSH DI ; setup ro parse the nested.. ;AN000; + PUSH DS ; complex string..saving the.. ;AN000; + PUSH SI ; current parse status. ;AN000; + PUSH CX ; ;AN000; + XOR CX,CX ; ;AN000; + LEA DI,PARMS3 ; next control block ;AN000; + LDS SI,RESULT_VAL ; point to stored string. ;AN000; + CALL SYSPARSE ; ;AN000; + .WHILE AND ; not EOL?...and.. ;AN000; + .WHILE ; error flag still okay? ;AN000; + .IF OR ; parse error?...or.. ;AN000; + .IF ; something other than a number.. ;AN000; + MOV OK_FLAG,OFF ; found?....yes..reset flag. ;AN000; + .ELSE ; no...process.. ;AN000; + INC T6_NUM ; increment counter ;AN000; + MOV AX,WORD PTR RESULT_VAL ; get numeric value into word ;AN000; + .IF ; first value found? ;AN000; + MOV T6_DESG,AX ; yes...number of designates. ;AN000; + .ELSE ; else.. ;AN000; + MOV T6_FONT,AX ; second number...number of fonts. ;AN000; + .ENDIF ; ;AN000; + CALL SYSPARSE ; continue parsing ;AN000; + .ENDIF ; ;AN000; + .ENDWHILE ; ;AN000; + POP CX ; restore previous parse.. ;AN000; + POP SI ; registers. ;AN000; + POP DS ; ;AN000; + POP DI ; ;AN000; + RET ; ;AN000; +PARSE_COMP ENDP + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; PROCEDURE_NAME: PARSE_STR +; +; FUNCTION: +; THIS PROCEDURE PARSES A STRING FOUND WITHIN THE CON=( ) STATEMENT +; +; AT ENTRY: RESULT BUFFER POINTS TO ASCIIZ STRING +; +; AT EXIT: +; NORMAL: TABLE SET UP WITH VALUES FOUND +; +; ERROR: N/A +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +PARSE_STR PROC NEAR ;AN000; + PUSH DI ; get source and.. ;AN000; + PUSH DS ; destination registers.. ;AN000; + PUSH SI ; setup. ;AN000; + LDS SI,RESULT_VAL ; ;AN000; + .IF < NE ZERO> ; check for null string ;AN000; + LEA DI,T4_NAME ; ;AN000; + LODSB ; load first character. ;AN000; + .WHILE ; while not at end of ASCIIZ do.. ;AN000; + STOSB ; store.. ;AN000; + LODSB ; load next character.. ;AN000; + .ENDWHILE ; ;AN000; + MOV T4_LENGTH,EIGHT ; value found. ;AN000; + .ENDIF ; ;AN000; + POP SI ; restore registers. ;AN000; + POP DS ; ;AN000; + POP DI ; ;AN000; + RET ;AN000; +PARSE_STR ENDP + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; PROCEDURE_NAME: PARSE_NUM +; +; FUNCTION: +; THIS PROCEDURE PARSES NUMBERS FOUND IN THE CON=( ) STATEMENT +; BLOCK. +; +; AT ENTRY: RESULT BUFFER CONTAINS A DWORD NUMBER VALUE +; +; AT EXIT: +; NORMAL: TABLE SET UP WITH VALUES FOUND +; +; ERROR: N/A +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +PARSE_NUM PROC NEAR ;AN000; + MOV AX,WORD PTR RESULT_VAL ; get value into word form ;AN000; + .IF ; if this is the code page then.. ;AN000; + MOV T5_VALUE,AX ; load that value. ;AN000; + INC T5_NUM ; ;AN000; + .ELSEIF ; ;AN000; + MOV T6_DESG,AX ; must be number of designates.. ;AN000; + INC T6_NUM ; load and increment count ;AN000; + .ENDIF ; ;AN000; + RET ; ;AN000; +PARSE_NUM ENDP ;AN000; + + + ASSUME CS:CODE,DS:CODE + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; PROCEDURE_NAME: GET_DEVICE_ID +; +; FUNCTION: +; THIS PROCEDURE RETURNS THE DISPLAY DEVICE TO THE INIT ROUTINE WHEN +; A DEVICE ID IS NOT SUPPLIED. +; +; AT ENTRY: N/A +; +; AT EXIT: +; NORMAL: DEVICE ID PLACED WITHIN THE TABLE. (EGA OR LCD) +; CARRY IS CLEARED. +; +; ERROR: DEVICE ID IS MONO OR CGA +; CARRY IS SET. +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +FUNC_INFO INFO_BLOCK <> ;AN000; + +DEVICE_N_LENGTH EQU EIGHT ;AN000; + +DEVICE_TYPES DB "EGA " ;AN000; + DB "LCD " ;AN000; + +NUM_DEVICE_TYPES EQU ($-DEVICE_TYPES)/DEVICE_N_LENGTH ;AN000; + +DEVICE_FLAG DB 00000000B ;AN000; + + +GET_DEVICE_ID PROC NEAR ;AN000; + PUSH AX ;AN000; + PUSH BX ; ;AN000; + PUSH CX ; s ;AN000; + PUSH DX ; a r ;AN000; + PUSH DI ; v e ;AN000; + PUSH SI ; e g ;AN000; + PUSH ES ; i ;AN000; + PUSH DS ; s ;AN000; + PUSH CS ; t ;AN000; + POP DS ; e ;AN000; + PUSH CS ; r ;AN000; + POP ES ; s ;AN000; + XOR AX,AX ; ;AN000; + MOV AH,FUNC_CALL ; ;AN000; + LEA DI,FUNC_INFO ; ;AN000; + XOR BX,BX ; ;AN000; + INT 10H ; try VGA functionality call ;AN000; + .IF ; worked?....then ;AN000; + OR DEVICE_FLAG,VGA_FOUND ; VGA found. ;AN000; + .ELSE ; no VGA...try EGA ;AN000; + MOV AH,ALT_SELECT ; ;AN000; + MOV BL,EGA_INFO_CALL ; ;AN000; + INT 10H ; ;AN000; + .IF ; if changed then EGA present.. ;AN000; + OR DEVICE_FLAG,EGA_FOUND ; mark as found. ;AN000; + .ELSE ; no EGA...try LCD. ;AN000; + MOV AH,GET_SYS_ID ; get system id.. ;AN000; + INT 15H ; yup....its a convertible..so ;AN000; + .IF AND ;AN000; + MOV AH,GET_STATUS ; check for LCD.. ;AN000; + INT 15H ; ;AN000; + .IF ; yes....bit says LCD..so.. ;AN000; + OR DEVICE_FLAG,LCD_FOUND ; mark as LCD. ;AN000; + .ENDIF ; ;AN000; + .ENDIF ; ;AN000; + .ENDIF ; ;AN000; + .IF ; nothing found?..then exit (eg. MONO) ;AN000; + LEA SI,DEVICE_TYPES ; start of new id's ;AN000; + SAR DEVICE_FLAG,ONE ; shift flag into carry bit ;AN000; + .WHILE NC ; carry not set yet.. ;AN000; + ADD SI,DEVICE_N_LENGTH ; next id ;AN000; + SAR DEVICE_FLAG,ONE ; next flag... ;AN000; + .ENDWHILE ; ;AN000; + PUSH CS ; found....transfer id.. ;AN000; + POP ES ; into the table.. ;AN000; + LEA DI,T4_NAME ; ;AN000; + MOV CX,DEVICE_N_LENGTH ; ;AN000; + REP MOVSB ; ;AN000; + MOV T4_LENGTH,EIGHT ; ;AN000; + CLC ; clear error flag ;AN000; + .ELSE ; ;AN000; + STC ; set error (ie. MONO or CGA found) ;AN000; + .ENDIF ; ;AN000; + POP DS ; r ;AN000; + POP ES ; e r ;AN000; + POP SI ; s e ;AN000; + POP DI ; t g ;AN000; + POP DX ; o i ;AN000; + POP CX ; r s ;AN000; + POP BX ; e t ;AN000; + POP AX ; e ;AN000; + RET ; r ;AN000; +GET_DEVICE_ID ENDP ; s + + + +CODE ENDS + 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 @@ +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; TABLES.INC +; +; THIS FILE CONTAINS THE CONFIGURATION INFORMATION FOR THE CPS CON +; DEVICE DRIVER. THE INFORMATION IS INDEXED USING THE FULL DEVICE +; SUB-TYPE ID. +; +; THE TABLE STRUCTURE IS AS FOLLOWS: +; +; DB "........" device sub-type id +; DB 00000xxxb encoded font resolution byte +; DW OFFSET modes pointer to list of display modes +; DW OFFSET fonts pointer to list of font resolutions +; +; ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ +; ³ Loading mechanism bit incoding ³ +; ³ ³ +; ³ USER ? ³ +; ³ ³ BIOS SUPPORT ³ +; ³ ÚÄÄÁÄÄ¿ ÚÄÄÁÄÄ¿ ³ +; ³ ³ +; ³ 7 6 5 4 3 2 1 0 ³ +; ³ x x x x 0 0 x x ³ +; ³ ³ ³ ³ ³ ³ ÀÄÄ 1 - INT 10 - AX=1100H ³ +; ³ ³ ³ ³ ³ ³ ³ +; ³ ³ ³ ³ ³ ÀÄÄÄÄ 1 = INT 10 - AX=1400H ³ +; ³ ³ ³ ³ ³ ³ +; ³ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄ 1 = INT 1FH ³ +; ³ ³ ³ ³ ³ +; ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄ 1 = INT 43H ³ +; ³ ³ ³ ³ +; ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄ 1 = LCD 1FH handling needed ³ +; ³ ³ ³ +; ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ 1 = LCD 44H handling needed ³ +; ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ +; +; ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ +; ³ Memory Requirements ³ +; ³ ³ +; ³ 7 6 5 4 3 2 1 0 ³ +; ³ 0 0 0 0 x x x x ³ +; ³ ³ ³ ³ ÀÄÄ 200 scan lines ³ +; ³ ³ ³ ÀÄÄÄÄ 350 scan lines ³ +; ³ ³ ÀÄÄÄÄÄÄ 400 scan lines ³ +; ³ ÀÄÄÄÄÄÄÄÄ 480 scan lines ³ +; ³ ³ +; ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ +; +; THE TABLES ARE FILLED BEYOND THE SUPPORTED MODES. THIS +; IS 'GUESSING' AT THE APPROACH FOR ANY FUTURE DISPLAY MODES +; WHICH MAY BE BEYOND THE CON-CPS V1.0 SUPPORT. TO DATE, +; NO ADAPTER SUPPORTS THE EXTRA MODES - NOT EVEN . +; +; Numerous WOULD USE THE +; SUBSET OF THE EGA MODES. +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +IF1 + %OUT . ®TABLES .INC¯ +ENDIF + ; +DISPLAY_CONFIG LABEL BYTE ; + DB "EGA " ; EGA SUPPORT +DC_FONT DB 00000111b ; + DW OFFSET EGA_MODES ; + DW OFFSET EGA_FONT_SIZE ; +DC_ENTRY EQU ($-DISPLAY_CONFIG) ; + DB "EGA 8 " ; EGA (5153) + DB 00000001b ; + DW OFFSET EGA_MODES ; + DW OFFSET EGA8_FONT_SIZE ; + DB "EGA 14 " ; EGA (5154) + DB 00000011b ; + DW OFFSET EGA_MODES ; + DW OFFSET EGA14_FONT_SIZE ; + DB "EGA 14M " ; EGA (5151) + DB 00000011b ; WGR load 8x8 for > 25. ;AN000; + DW OFFSET EGAM_MODES ; + DW OFFSET EGA14_FONT_SIZE ; + DB "LCD " ; CONVERTIBLE + DB 00000001b ; + DW OFFSET LCD_MODES ; + DW OFFSET LCD_FONT_SIZE ; + DB "MONO " ; MONOCHROME ADAPTER + DB 00000000b ; + DW OFFSET MONO_MODES ; + DW OFFSET MONO_FONT_SIZE ; + DB "CGA " ; COLOUR GRAPHICS ADAPTER + DB 00000000b ; + DW OFFSET MONO_MODES ; + DW OFFSET MONO_FONT_SIZE ; +NUM_DISPLAY_CONFIG EQU ($-DISPLAY_CONFIG)/DC_ENTRY +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +EGA_MODES: ; + DB 00000001b ;0 + DB 00000001b ;1 + DB 00000001b ;2 + DB 00000001b ;3 + DB 00110000b ;4 + DB 00110000b ;5 + DB 00110000b ;6 + DB 00000001b ;7 + DB 11111111b ;D;8 ÄÄÄÄÄÄ¿ + DB 11111111b ;D;9 ³ + DB 11111111b ;D;A RESERVED + DB 11111111b ;D;B ³ + DB 11111111b ;D;C ÄÄÄÄÄÄÙ + DB 00110000b ;D + DB 00110000b ;E + DB 00100000b ;F + DB 00100000b ;10 + DB 00100000b ;11 + DB 00100000b ;12 + DB 00110000b ;13 + DB 00110000b ;14 + DB 00110000b ;15 + DB 00110000b ;16 + DB 00110000b ;17 + DB 00110000b ;18 + DB 00110000b ;19 + DB 00110000b ;1A + DB 00110000b ;1B + DB 00110000b ;1C + DB 00110000b ;1D + DB 00110000b ;1E + DB 00110000b ;1F +NUM_MODES EQU ($-EGA_MODES) ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +EGAM_MODES: ; + DB 11111111b ;0 + DB 11111111b ;1 + DB 11111111b ;2 + DB 11111111b ;3 + DB 11111111b ;4 + DB 11111111b ;5 + DB 11111111b ;6 + DB 00010001b ;7 + DB 11111111b ;D;8 ÄÄÄÄÄÄ¿ + DB 11111111b ;D;9 ³ + DB 11111111b ;D;A RESERVED + DB 11111111b ;D;B ³ + DB 11111111b ;D;C ÄÄÄÄÄÄÙ + DB 11111111b ;D + DB 11111111b ;E + DB 00100000b ;F + DB 11111111b ;10 + DB 11111111b ;11 + DB 11111111b ;12 + DB 11111111b ;13 + DB 11111111b ;14 + DB 11111111b ;15 + DB 11111111b ;16 + DB 11111111b ;17 + DB 11111111b ;18 + DB 11111111b ;19 + DB 11111111b ;1A + DB 11111111b ;1B + DB 11111111b ;1C + DB 11111111b ;1D + DB 11111111b ;1E + DB 11111111b ;1F +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +LCD_MODES: ; + DB 00000010b ;0 + DB 00000010b ;1 + DB 00000010b ;2 + DB 00000010b ;3 + DB 11010000b ;4 + DB 11010000b ;5 + DB 11010000b ;6 + DB 00000010b ;7 + DB 11111111b ;D;8 ÄÄÄÄÄÄ¿ + DB 11111111b ;D;9 ³ + DB 11111111b ;D;A RESERVED + DB 11111111b ;D;B ³ + DB 11111111b ;D;C ÄÄÄÄÄÄÙ + DB 11010000b ;D + DB 11010000b ;E + DB 11010000b ;F + DB 11010000b ;10 + DB 11010000b ;11 + DB 11010000b ;12 + DB 11010000b ;13 + DB 11010000b ;14 + DB 11010000b ;15 + DB 11010000b ;16 + DB 11010000b ;17 + DB 11010000b ;18 + DB 11010000b ;19 + DB 11010000b ;1A + DB 11010000b ;1B + DB 11010000b ;1C + DB 11010000b ;1D + DB 11010000b ;1E + DB 11010000b ;1F +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +MONO_MODES: ; +MONO_FONT_SIZE: ; + DB 11111111b ;0 + DB 11111111b ;1 + DB 11111111b ;2 + DB 11111111b ;3 + DB 11111111b ;4 + DB 11111111b ;5 + DB 11111111b ;6 + DB 11111111b ;7 + DB 11111111b ;D;8 ÄÄÄÄÄÄ¿ + DB 11111111b ;D;9 ³ + DB 11111111b ;D;A RESERVED + DB 11111111b ;D;B ³ + DB 11111111b ;D;C ÄÄÄÄÄÄÙ + DB 11111111b ;D + DB 11111111b ;E + DB 11111111b ;F + DB 11111111b ;10 + DB 11111111b ;11 + DB 11111111b ;12 + DB 11111111b ;13 + DB 11111111b ;14 + DB 11111111b ;15 + DB 11111111b ;16 + DB 11111111b ;17 + DB 11111111b ;18 + DB 11111111b ;19 + DB 11111111b ;1A + DB 11111111b ;1B + DB 11111111b ;1C + DB 11111111b ;1D + DB 11111111b ;1E + DB 11111111b ;1F +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +EGA_FONT_SIZE: ; this needs to be adjusted + DB 0 ;0 ************************* + DB 0 ;1 ************************* + DB 0 ;2 + DB 0 ;3 + DB 8 ;4 + DB 8 ;5 + DB 8 ;6 + DB 0 ;7 + DB 0FFH ;D;8 ÄÄÄÄÄÄ¿ + DB 0FFH ;D;9 ³ + DB 0FFH ;D;A RESERVED + DB 0FFH ;D;B ³ + DB 0FFH ;D;C ÄÄÄÄÄÄÙ + DB 0 ;D + DB 0 ;E + DB 0 ;F + DB 0 ;10 + DB 0 ;11 + DB 0 ;12 + DB 0 ;13 + DB 0 ;14 + DB 0 ;15 + DB 0 ;16 + DB 0 ;17 + DB 0 ;18 + DB 0 ;19 + DB 0 ;1A + DB 0 ;1B + DB 0 ;1C + DB 0 ;1D + DB 0 ;1E + DB 0 ;1F +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +EGA8_FONT_SIZE: ; + DB 8 ;0 + DB 8 ;1 + DB 8 ;2 + DB 8 ;3 + DB 8 ;4 + DB 8 ;5 + DB 8 ;6 + DB 0FFH ;7 + DB 0FFH ;D;8 ÄÄÄÄÄÄ¿ + DB 0FFH ;D;9 ³ + DB 0FFH ;D;A RESERVED + DB 0FFH ;D;B ³ + DB 0FFH ;D;C ÄÄÄÄÄÄÙ + DB 8 ;D + DB 8 ;E + DB 8 ;F + DB 0FFH ;10 + DB 0FFH ;11 + DB 0FFH ;12 + DB 0FFH ;13 + DB 0FFH ;14 + DB 0FFH ;15 + DB 0FFH ;16 + DB 0FFH ;17 + DB 0FFH ;18 + DB 0FFH ;19 + DB 0FFH ;1A + DB 0FFH ;1B + DB 0FFH ;1C + DB 0FFH ;1D + DB 0FFH ;1E + DB 0FFH ;1F +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +EGA14_FONT_SIZE: ; + DB 14 ;0 + DB 14 ;1 + DB 14 ;2 + DB 14 ;3 + DB 8 ;4 + DB 8 ;5 + DB 8 ;6 + DB 14 ;7 + DB 0FFH ;D;8 ÄÄÄÄÄÄ¿ + DB 0FFH ;D;9 ³ + DB 0FFH ;D;A RESERVED + DB 0FFH ;D;B ³ + DB 0FFH ;D;C ÄÄÄÄÄÄÙ + DB 8 ;D + DB 8 ;E + DB 14 ;F + DB 14 ;10 + DB 0FFH ;11 + DB 0FFH ;12 + DB 0FFH ;13 + DB 0FFH ;14 + DB 0FFH ;15 + DB 0FFH ;16 + DB 0FFH ;17 + DB 0FFH ;18 + DB 0FFH ;19 + DB 0FFH ;1A + DB 0FFH ;1B + DB 0FFH ;1C + DB 0FFH ;1D + DB 0FFH ;1E + DB 0FFH ;1F +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +LCD_FONT_SIZE: ; + DB 8 ;0 + DB 8 ;1 + DB 8 ;2 + DB 8 ;3 + DB 8 ;4 + DB 8 ;5 + DB 8 ;6 + DB 8 ;7 + DB 0FFH ;D;8 ÄÄÄÄÄÄ¿ + DB 0FFH ;D;9 ³ + DB 0FFH ;D;A RESERVED + DB 0FFH ;D;B ³ + DB 0FFH ;D;C ÄÄÄÄÄÄÙ + DB 8 ;D + DB 8 ;E + DB 8 ;F + DB 8 ;10 + DB 8 ;11 + DB 8 ;12 + DB 8 ;13 + DB 8 ;14 + DB 8 ;15 + DB 8 ;16 + DB 8 ;17 + DB 8 ;18 + DB 8 ;19 + DB 8 ;1A + DB 8 ;1B + DB 8 ;1C + DB 8 ;1D + DB 8 ;1E + DB 8 ;1F +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 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 @@ +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; WRITE ROUTINE FOR DESIGNATE WRITE +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +IF1 ; + %OUT . ®WRITE .INC¯ +ENDIF ; + PUBLIC REDUCED_SUPPORT ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; WRITE DESIGNATE SUPPORT +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +DESG_WRITE PROC ; + CMP CS:DESG_SEMAPHORE,ZERO ; TEST IF DESIGNATE IS ON... + JNE DW_2 ; PASS ONTO DOS + CLC ; + RET ; +DW_2: CMP CS:DESG_SEMAPHORE,ONE ; CHECK IF PROPER DESIGNATE + JE DW_4 ; + OR BUF.STATUS,TEN ; IF NOT, THEN DEVICE ERROR + STC ; + RET ; +DW_4: CALL WRITE ; + RET ; +DESG_WRITE ENDP ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +REDUCED_SUPPORT EQU $ ; THIS IS A MARKER FOR REDUCED CPS + ; SUPPORT WITH 0 DESGINATES (CGA,MONO) +WRITE PROC ; + PUSH DS ; + ; + PUSH CS ; + POP DS ; + ; + PUSH SI ;S; + CLI ;S; + MOV SI,SP ;S; + MOV OLD_STACK_O,SI ;S; + MOV SI,SS ;S; + MOV OLD_STACK_S,SI ;S; + MOV AX,OFFSET STACK_START ;S; + MOV SI,CS ;S; + MOV SS,SI ;S; + MOV SP,AX ;S; + STI ;S; + ; + LES DI,DWORD PTR BUF.RH_PTRO; RESTORE ES:DI AS REQUEST HEADER PTR + LEA SI,FTABLE ; GET BASE ADDRESS OF PARSER TABLE + ; + MOV DS:[SI].FLAG,0 ; NO RESTART + MOV AX,RH.RH3_CNT ; + MOV DS:[SI].BUFFER_LEN,AX ; LENGTH OF REQUEST PACKET + ; + PUSH SI ; + LEA SI,[SI].BUFFER_ADDR ; PACKET ADDRESS + MOV AX,RH.RH3_DTAO ; + MOV DS:[SI],AX ; + INC SI ; + INC SI ; + MOV AX,RH.RH3_DTAS ; + MOV DS:[SI],AX ; + POP SI ; + ; + CALL FONT_PARSER ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; FONT PARSER HAS BEEN CALLED, NOW CHECK ALL OF THE +; APPROPRIATE TABLES FOR DATA INFORMATION, ERROR +; CONDITIONS, etc.... +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + LEA SI,FTABLE ; GET BASE ADDRESS OF PARSER TABLE + MOV CX,[SI].NUM_FTBLK ; CX = NUMBER OF PARSING TABLES + LEA SI,FTB1 ; THEN SET SI = FIRST PARSING TABLE + ; +W_1: MOV AX,DS:[SI].FTB_STATUS ; + CMP AX,0FFF0H ; CHECK THE PARSER STATUS + JNB W_3 ; + ; + OR BUF.STATUS,FAIL ; IF THE PARSER FAILED ON THE DATA + MOV RH.RHC_STA,AX ; FILE, THEN SET FLAG AND... + CALL HANDLE_WRITE_ERROR ; + JUMP W_7 ; ERROR HAS BEEN FOUND..DON'T CONTINUE + ; +W_3: CMP AX,FSTAT_FONT ; + JNE W_6 ; + ; + MOV AX,DS:[SI].FTB_DLEN ; + CALL HANDLE_DATA_WRITE ; + ; +W_6: ADD SI,TYPE FTBLK ; ADVANCE SI POINTER TO NEXT TABLE + LOOP W_1 ; CHECK OUT ALL PARSING TABLES + ; +W_7: CLI ;S; + MOV SI,OLD_STACK_S ;S; + MOV AX,OLD_STACK_O ;S; + MOV SS,SI ;S; + MOV SP,AX ;S; + STI ;S; + POP SI ;S; + POP DS ; + STC ; INDICATE NOT TO PASS ON DATA + RET ; +WRITE ENDP ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; THIS IS USED TO SET THE CPS DRIVER IN THE CASE OF A +; DESIGNATE ERROR. IT WILL RESET THE DESIGNATED CP's +; TO INVALID, AND IF THE ACTIVE_CP WAS A DESIGNATED CP, +; THEN IT TOO BECOMES INVALID. +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +HANDLE_WRITE_ERROR PROC ; + PUSH DS ; + PUSH AX ; + PUSH CX ; + PUSH SI ; + ; + MOV AX,-1 ; ...SET DESGINATE LIST TO (-1)'S + MOV CX,CPD_REQ_DESG ; GET NUMBER AND + MOV SI,2 ; +2 +HWE_3: CMP CPD_REQ_DESG[SI],AX ; CHECK IF REQUESTED PREP WAS VALID + JE HWE_4 ; IF REQUESTED WAS VALID, THEN THE ERROR + MOV CPD_DESG_N[SI],AX ; SETS ACTUAL PREP LIST ENTRY TO INVALID +HWE_4: INC SI ; + INC SI ; + LOOP HWE_3 ; REPEAT FOR #DESIGNATES + ; + MOV CX,CPD_ACTIVE ; + CALL FIND_CP ; CHECK IF ACTIVE_CP=STILL VALID + JNC HWE_2 ; + MOV CX,-1 ; + MOV CPD_ACTIVE,CX ; + ; +HWE_2: POP SI ; + POP CX ; + POP AX ; + POP DS ; + RET ; +HANDLE_WRITE_ERROR ENDP ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; THIS SUBROUTINE TAKES THE DATA INFORMATION ISOLATED +; BY THE FONT PARSER AND MOVES INTO THE INTERNAL FONT +; FONT BUFFERS. IT COPIES THE DATA BASED ON THE SIZE +; OF THE INTERNAL FONTS & THE REQUIRED FONT SIZES. +; +; +; INPUT: +; AX = LENGTH OF DATA +; CX = TABLE # TO PARSE +; DS:SI = POINTER TO 'FTBLK' +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +NUM_DATA_FONTS DW ? ; +TABLE_INDEX DW ? ; +LEN_DATA DW ? ; +INDEX_WRITE_PNTER DW ? ; + ; +HANDLE_DATA_WRITE PROC ; + PUSH AX ; + PUSH BX ; + PUSH CX ; + PUSH SI ; + PUSH DI ; + PUSH DS ; + PUSH ES ; + ; + PUSH CX ; + MOV CX,DS:[SI].FTB_FONTS ; READ IN #FONTS FROM DATA FILE + MOV CS:NUM_DATA_FONTS,CX ; + POP CX ; + ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; ROUTINE TO FIND TABLE_INDEX FOR DATA WRITE'S +; THIS WAS ADDED TO ACCOUNT FOR A REPLACEMENT +; TECHNIQUE APPROACH.....(Sept 3/86) +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + PUSH AX ; + PUSH CX ; + PUSH ES ; + ; + PUSH CS ; + POP ES ; + MOV AX,DS:[SI].FTB_CP ; GET THE CODE PAGE OF THIS FONT BLOCK + MOV CX,CPD_DESG_N ; GET THE NUMBER OF CP's TO CHECK + MOV DI,TWO ; +BBB_0: CMP AX,CPD_DESG_N[DI] ; LOOKING FOR A MATCHED CODE PAGE + JE BBB_1 ; + INC DI ; + INC DI ; + LOOP BBB_0 ; + ; +;;;;;;INVALID???;;;;;;;;;;;;;;;;;;;;;;;;; + ; +BBB_1: MOV DI,CPD_DESG_N ; + SUB DI,CX ; + MOV CS:TABLE_INDEX,DI ; +BBB_2: POP ES ; + POP CX ; + POP AX ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + PUSH SI ; + LEA SI,FTABLE ; GET BASE ADDRESS OF PARSER TABLE + SHL DI,1 ; + SHL DI,1 ; MULTIPLY INDEX BY FOUR..SEG:OFFSET + CALL GET_WRITE_PNTR ; GET LOCATION OF 1ST FONT_WRITE PNTER + ADD DI,SI ; DI NOW IS THE POINTER TO WRITE_START + POP SI ; + ; + MOV CS:INDEX_WRITE_PNTER,DI ; SAVE ADDRESS OF INDEX WRITE PNTER + ; + MOV ES,CS:[DI+2] ; SET ES : DI WITH WRITE POINTER! + MOV DI,CS:[DI] ; + ; + MOV CX,DS:[SI].FTB_DAHI ; GET SEGMENT OF DATA + MOV SI,DS:[SI].FTB_DALO ; GET OFFSET OF DATA + MOV DS,CX ; + ; <> + MOV CX,AX ; SAVE LENGTH OF DATA TO COPY + MOV CS:LEN_DATA,CX ; SAVE THIS VALUE + AND CX,CX ; TEST LENGTH OF DATA + JNZ TEMP_0 ; + JUMP HDW_8 ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; NOW DS : SI POINTS TO SOURCE DATA INFORMATION, +; ES : DI POINTS TO THE DESTINATION BUFFER! +; CX = NUMBER OF INFORMATION BYTES AVAILABLE +; THE DATA MUST BE CHECKED FOR THE FONT RESOLUTIONS +; AS THEY ARE TO FIT INTO THE INTERNAL BUFFERS. +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +TEMP_0: PUSH AX ; + PUSH BX ; + PUSH CX ; + PUSH SI ; + PUSH DI ; + ; + LEA BX,CPD_FONT_DATA ; TEST IF THERE IS OUTSTANDING DATA + ADD BX,CS:TABLE_INDEX ; FOR INFORMATION TO COPY or SKIP OVER. + ADD BX,CS:TABLE_INDEX ; (ACCOUNT FOR WORD VALUE) + MOV AX,CS:[BX] ; + OR AX,AX ; + JE HDW_00 ; IF NOTHING TO CONSIDER, THEN MOVE ON + TEST AX,8000H ;;;;SKIP/COPY;;;;; TEST IF OUTSTANDING DATA TO COPY/SKIP + JNZ HDW_P0 ; + MOV CX,AX ; SET VALUE IN CX.... + MOV AX,CS:NUM_DATA_FONTS ; + PUSH AX ; + JUMP HDW_3AA ; +HDW_P0: AND AX,7FFFH ; STRIP OFF FIRST BIT... + MOV CX,AX ; + MOV AX,CS:NUM_DATA_FONTS ; + PUSH AX ; + JUMP HDW_5AA ; + ; +HDW_00: MOV CX,CS:NUM_DATA_FONTS ; +HDW_0: CMP CS:LEN_DATA,0 ; TEST IF THERE IS ANY DATA LEFT? + JNE HDW_0A ; + JUMP HDW_6 ; IF 0 LEFT...THEN END... + ; +HDW_0A: MOV AL,[SI] ; GET #ROWS FROM DATA + PUSH CX ; SAVE COUNT + MOV CX,NUM_FONT_PRIORITY ; + LEA BX,FONT_PRIORITY ; SET DI TO START OF TABLE +HDW_1: CMP AL,CS:[BX] ; + JE HDW_3 ; IF EQUAL, THEN ALREADY IN TABLE + INC BX ; OTHERWISE, TAKE THIS MODES FONT RES + LOOP HDW_1 ; AND COMPARE AGAINST NEXT PRIOR.VALUE + JUMP HDW_5 ; IF NO MATCH, THEN IGNORE THIS FONT!!! + ; +HDW_3: XOR AH,AH ; FONT SIZE NEEDED...GET IT! + MOV CX,[SI+4] ; GET THE #CHARACTERS IN TABLE + PUSH DX ; + MUL CX ; + POP DX ; + ADD AX,SIX ; ACCOUNT FOR DATA HEADER + MOV CX,AX ; SET COUNT INTO CX.... + ; +HDW_3AA:CMP CX,CS:LEN_DATA ; TEST IF SUPPLIED DATA>=NEEDED + JBE HDW_3A ; + SUB CX,CS:LEN_DATA ; IF NOT ENOUGH DATA HERE, THEN FORWARD + MOV AX,CX ; VALUE TO NEXT DATA CALL. + CALL SET_CPD_FONT_DATA ; + MOV CX,CS:LEN_DATA ; + JUMP HDW_3B ; + ; +HDW_3A: XOR AX,AX ; + CALL SET_CPD_FONT_DATA ; +HDW_3B: SUB CS:LEN_DATA,CX ; + CLD ; + REP MOVSB ; MOVE THAT RESOLUTION IN... + ; +HDW_4: POP CX ; RESTORE #FONTS IN DATA + LOOP HDW_0 ; + JUMP HDW_6 ; + ; +HDW_5: XOR AH,AH ; FONT SIZE NEEDED...GET IT! + MOV CX,[SI+4] ; GET THE #CHARACTERS IN TABLE + PUSH DX ; + MUL CX ; + POP DX ; + ADD AX,SIX ; ACCOUNT FOR DATA HEADER + MOV CX,AX ; PUT IN CX FOR NOW + ; +HDW_5AA:CMP CX,CS:LEN_DATA ; TEST IF SUPPLIED DATA>=NEEDED + JBE HDW_5A ; + SUB CX,CS:LEN_DATA ; IF NOT ENOUGH DATA HERE, THEN FORWARD + MOV AX,CX ; VALUE TO NEXT DATA CALL. + OR AX,8000H ; SET TO SKIP NEXT DATA.... + CALL SET_CPD_FONT_DATA ; + MOV CX,CS:LEN_DATA ; + JUMP HDW_5B ; + ; +HDW_5A: XOR AX,AX ; + CALL SET_CPD_FONT_DATA ; +HDW_5B: SUB CS:LEN_DATA,CX ; + ADD SI,CX ; ADVANCE SOURCE POINTER OVER THIS FONT + JUMP HDW_4 ; + ; +HDW_6: MOV SI,CS:INDEX_WRITE_PNTER ; + MOV CS:[SI],DI ; + MOV CS:[SI+2],ES ; + ; + POP DI ; + POP SI ; + POP CX ; + POP BX ; + POP AX ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +HDW_8: POP ES ; + POP DS ; + POP DI ; + POP SI ; + POP CX ; + POP BX ; + POP AX ; + RET ; +HANDLE_DATA_WRITE ENDP ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; SET_CPD_FONT_DATA +; +; THIS ROUTINE IS USED TO SET THE COPY/SKIP VALUE +; CONTAINED IN 'AX'. +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +SET_CPD_FONT_DATA PROC ; + PUSH SI ; + MOV SI,CS:TABLE_INDEX ; + ADD SI,SI ; + MOV CS:CPD_FONT_DATA.[SI],AX; + POP SI ; + RET ; +SET_CPD_FONT_DATA ENDP ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + \ 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 -- cgit v1.2.3