M1: DW OFFSET SET_MODE DW OFFSET SET_CTYPE DW OFFSET SET_CPOS DW OFFSET READ_CURSOR DW OFFSET READ_LPEN DW OFFSET ACT_DISP_PAGE DW OFFSET SCROLL_UP DW OFFSET SCROLL_DOWN DW OFFSET READ_AC_CURRENT DW OFFSET WRITE_AC_CURRENT DW OFFSET WRITE_C_CURRENT DW OFFSET SET_COLOR DW OFFSET WRITE_DOT DW OFFSET READ_DOT DW OFFSET WRITE_TTY DW OFFSET VIDEO_STATE DW OFFSET VIDEO_RETURN DW OFFSET VIDEO_RETURN DW OFFSET VIDEO_RETURN DW OFFSET WRITE_STRING M1N: M1L EQU M1N-M1 VIDEO: STI CLD CMP AH,MIL/2 JNB M4 PUSH ES PUSH DS PUSH DX PUSH CX PUSH BX PUSH SI PUSH DI PUSH BP MOV SI,DATA MOV DS,SI MOV SI,AX MOV AL,BYTE PTR EQUIP_FLAG AND AL,30H CMP AL,30H MOV DI,0B800H JNE M2 MOV DI,0B000H M2: MOV ES,DI MOV AL,AH CBW SAL AX,1 XCHG SI,AX MOV AH,BYTE PTR CRT_MODE JMP WORD PTR CS:[SI+OFFSET M1] M4: IRET SET_MODE: MOV DX,03D4H MOV DI,WORD PTR EQUIP_FLAG AND DI,30H CMP DI,30H JNE M8C MOV AL,7 MOV DL,0B4H JMP SHORT M8 M8C: CMP AL,7 JB M8 MOV AL,0 CMP DI,20H JE M8 MOV AL,2 M8: MOV BYTE PTR CRT_MODE,AL MOV WORD PTR ADDR_6845,DX MOV BYTE PTR ROWS,25-1 PUSH DS PUSH AX CBW MOV SI,AX MOV AL,CS:[SI+OFFSET M7] MOV BYTE PTR CRT_MODE_SET,AL AND AL,037H PUSH DX ADD DX,4 OUT DX,AL POP DX SUB BX,BX MOV DS,BX