Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- seg000:0000 ; Input MD5 : 36E21E035D55CF46308A6E685FBC328F
- seg000:0000 ; Input CRC32 : F55A1183
- seg000:0000
- seg000:0000 ; ---------------------------------------------------------------------------
- seg000:0000 ; File Name : C:\temp\Freddy Pharkas - Frontier Pharmacist\EGA640.DRV
- seg000:0000 ; Format : Binary file
- seg000:0000 ; Base Address: 0000h Range: 0000h - 1723h Loaded length: 1723h
- seg000:0000
- seg000:0000 ; ===========================================================================
- seg000:0000
- seg000:0000 ; Segment type: Pure code
- seg000:0000 seg000 segment byte public 'CODE' use16
- seg000:0000 assume cs:seg000
- seg000:0000 assume es:nothing, ss:nothing, ds:nothing, fs:nothing, gs:nothing
- seg000:0000 jmp near ptr sub_EFA
- seg000:0000 ; ---------------------------------------------------------------------------
- seg000:0003 db 0, 21h, 43h, 65h, 87h, 0, 6, 65h, 67h, 61h, 36h, 34h
- seg000:0003 db 30h, 24h, 45h, 47h, 41h, 2Fh, 56h, 47h, 41h, 20h, 77h
- seg000:0003 db 69h, 74h, 68h, 20h, 52h, 47h, 42h, 20h, 6Dh, 6Fh, 6Eh
- seg000:0003 db 69h, 74h, 6Fh, 72h, 20h, 2Dh, 20h, 31h, 36h, 20h, 43h
- seg000:0003 db 6Fh, 6Ch, 6Fh, 72h, 73h, 98h, 0BAh, 0DCh, 0FEh, 20h
- seg000:0003 db 3 dup(0), 90h
- seg000:003E off_3E dw offset sub_F1D ; DATA XREF: sub_EFA+12r
- seg000:0040 off_40 dw offset sub_F21 ; DATA XREF: sub_F21+2r
- seg000:0040 ; sub_F21+Ar ...
- seg000:0042 dw offset sub_F4C
- seg000:0044 dw offset sub_F51
- seg000:0046 dw offset sub_1351
- seg000:0048 dw offset sub_1380
- seg000:004A dw offset sub_1392
- seg000:004C dw offset sub_1348
- seg000:004E dw offset sub_12AA
- seg000:0050 dw offset sub_1332
- seg000:0052 dw offset sub_1615
- seg000:0054 dw offset sub_15E0
- seg000:0056 dw offset nullsub_1
- seg000:0058 word_58 dw 0Fh ; DATA XREF: sub_13D3+37r
- seg000:0058 ; sub_13D3+CDr ...
- seg000:005A word_5A dw 0Fh ; DATA XREF: sub_1694+5Br
- seg000:005C word_5C dw 0 ; DATA XREF: sub_1694+8r
- seg000:005C ; sub_1694+3Br
- seg000:005E word_5E dw 0 ; DATA XREF: sub_1694+23r
- seg000:005E ; sub_1694+56r
- seg000:0060 byte_60 db 20h, 0, 2 dup(34h), 6 dup(7), 2 dup(37h), 7, 6 dup(34h)
- seg000:0060 ; DATA XREF: sub_13D3+7Cr
- seg000:0060 db 23h, 5 dup(7), 2 dup(2Bh), 7, 34h, 2 dup(1), 3 dup(34h)
- seg000:0060 db 7, 24h, 4 dup(7), 2 dup(2Ch), 7, 34h, 2 dup(1), 3 dup(34h)
- seg000:0060 db 7
- seg000:0092 db 7, 25h, 3 dup(7), 2 dup(2Dh), 7, 6 dup(34h), 0Dh, 2 dup(7)
- seg000:0092 db 26h, 5 dup(7), 6 dup(34h), 7, 0Fh, 7 dup(7), 44h dup(34h)
- seg000:0092 db 8 dup(6), 7 dup(34h), 6, 2 dup(34h), 6, 3 dup(5), 6
- seg000:0092 db 7 dup(34h), 5, 2 dup(34h), 4 dup(5), 6, 7 dup(34h)
- seg000:0092 db 5, 2 dup(34h), 4 dup(5), 6, 7 dup(34h), 8 dup(4), 3 dup(34h)
- seg000:0092 db 2B5h dup(0), 2 dup(10h), 4 dup(11h), 2 dup(80h), 10h
- seg000:0092 db 18h, 3 dup(91h), 3 dup(20h), 2 dup(30h), 18h, 3 dup(91h)
- seg000:0092 db 20h, 28h, 30h, 38h, 2 dup(33h), 99h, 3 dup(22h), 28h
- seg000:0092 db 5 dup(33h), 2 dup(22h), 0A2h, 3 dup(33h), 2 dup(0B3h)
- seg000:0092 db 4 dup(0A2h), 4 dup(0B3h), 4 dup(0A2h), 4 dup(0B3h)
- seg000:0092 db 2 dup(0), 2 dup(10h), 4 dup(11h), 3 dup(80h), 2 dup(18h)
- seg000:0092 db 3 dup(91h), 20h, 80h, 2 dup(30h), 18h, 91h, 2 dup(99h)
- seg000:0092 db 3 dup(28h), 3 dup(38h), 2 dup(99h), 22h, 2 dup(28h)
- seg000:0092 db 2 dup(38h), 3 dup(33h), 3 dup(0A2h), 0A7h, 4 dup(0B3h)
- seg000:0092 db 3 dup(0A2h), 0AAh, 4 dup(0B3h), 2 dup(0A2h), 2 dup(0AAh)
- seg000:0092 db 2 dup(0B3h), 2 dup(0BBh), 2 dup(40h), 3 dup(50h), 2 dup(91h)
- seg000:0092 db 2 dup(60h), 2 dup(80h), 2 dup(18h), 3 dup(91h), 60h
- seg000:0092 db 3 dup(88h), 18h, 3 dup(99h), 2 dup(28h), 88h, 2 dup(38h)
- seg000:0092 db 97h, 2 dup(99h), 3 dup(28h), 3 dup(38h), 2 dup(97h)
- seg000:0092 db 2 dup(0A2h), 2 dup(0A7h), 2 dup(0B7h), 2 dup(0B3h)
- seg000:0092 db 0A2h, 3 dup(0AAh), 0A7h, 3 dup(0BBh), 5 dup(0AAh), 3 dup(0BBh)
- seg000:0092 db 2 dup(40h), 2 dup(50h), 3 dup(55h), 91h, 60h, 2 dup(48h)
- seg000:0092 db 3 dup(58h), 66h, 99h, 2 dup(68h), 2 dup(88h), 58h, 97h
- seg000:0092 db 3 dup(99h), 68h, 3 dup(78h), 2 dup(97h), 99h, 0E6h
- seg000:0092 db 28h, 0A7h, 2 dup(78h), 3 dup(97h), 2 dup(0A2h), 3 dup(0A7h)
- seg000:0092 db 3 dup(0B7h), 3 dup(0AAh), 2 dup(0A7h), 2 dup(0B7h)
- seg000:0092 db 0BBh, 4 dup(0AAh), 0AFh, 0B7h, 2 dup(0BBh), 2 dup(44h)
- seg000:0092 db 58h, 5 dup(55h), 44h, 2 dup(48h), 2 dup(58h), 2 dup(0D5h)
- seg000:0092 db 2 dup(66h), 68h, 48h, 3 dup(58h), 2 dup(99h), 66h, 2 dup(68h)
- seg000:0092 db 2 dup(78h), 3 dup(97h), 2 dup(0E6h), 0E7h, 3 dup(77h)
- seg000:0092 db 2 dup(9Fh), 2 dup(0E6h), 0E7h, 0A7h, 77h, 2 dup(0B7h)
- seg000:0092 db 9Fh, 2 dup(0EEh), 0AAh, 3 dup(0AFh), 2 dup(0BFh), 2 dup(0EEh)
- seg000:0092 db 0AAh, 3 dup(0AFh), 2 dup(0BFh), 3 dup(44h), 5 dup(55h)
- seg000:0092 db 3 dup(0C4h), 58h, 4 dup(0D5h), 2 dup(66h), 0CCh, 0C7h
- seg000:0092 db 2 dup(0D7h), 0D5h, 0DDh, 2 dup(66h), 3 dup(0C7h), 3 dup(0D7h)
- seg000:0092 db 3 dup(0E6h), 0C7h, 2 dup(77h), 3 dup(9Fh), 0E6h, 3 dup(0E7h)
- seg000:0092 db 2 dup(0F7h), 9Fh, 3 dup(0EEh), 0E7h, 0AFh, 2 dup(0F7h)
- seg000:0092 db 0BFh, 3 dup(0EEh), 0E7h, 2 dup(0AFh), 2 dup(0BFh), 44h
- seg000:0092 db 2 dup(0C4h), 2 dup(55h), 3 dup(0D5h), 4 dup(0C4h), 4 dup(0D5h)
- seg000:0092 db 66h, 3 dup(0CCh), 0D7h, 3 dup(0DDh), 2 dup(66h), 0CCh
- seg000:0092 db 2 dup(0C7h), 2 dup(0D7h), 0DDh, 3 dup(0E6h), 3 dup(0CFh)
- seg000:0092 db 2 dup(0DFh), 3 dup(0E6h), 2 dup(0E7h), 2 dup(0F7h)
- seg000:0092 db 0DFh, 3 dup(0EEh), 2 dup(0EFh), 0F7h, 2 dup(0FFh), 4 dup(0EEh)
- seg000:0092 db 2 dup(0EFh), 2 dup(0FFh), 3 dup(0C4h), 55h, 4 dup(0D5h)
- seg000:0092 db 4 dup(0C4h), 4 dup(0D5h), 66h, 4 dup(0CCh), 3 dup(0DDh)
- seg000:0092 db 2 dup(66h), 2 dup(0CCh), 0C7h, 2 dup(0D7h), 0DDh, 3 dup(0E6h)
- seg000:0092 db 3 dup(0CFh), 2 dup(0DFh), 3 dup(0E6h), 0E7h, 2 dup(0CFh)
- seg000:0092 db 2 dup(0DFh), 4 dup(0EEh), 2 dup(0EFh), 2 dup(0FFh)
- seg000:0092 db 4 dup(0EEh), 2 dup(0EFh), 2 dup(0FFh)
- seg000:05F6 word_5F6 dw 98h ; DATA XREF: sub_1392:loc_13A2w
- seg000:05F6 ; sub_1694+3r ...
- seg000:05F8 word_5F8 dw 0A0h ; DATA XREF: sub_1392+14w
- seg000:05F8 ; sub_1694+1Er ...
- seg000:05FA byte_5FA db 0 ; DATA XREF: sub_F70+2Aw
- seg000:05FA ; sub_F70+5Bw ...
- seg000:05FB byte_5FB db 0 ; DATA XREF: sub_F70+6w
- seg000:05FB ; sub_F70:loc_FEBw ...
- seg000:05FC word_5FC dw 0 ; DATA XREF: sub_1351r
- seg000:05FC ; sub_1351+Bw ...
- seg000:05FE word_5FE dw 0 ; DATA XREF: sub_11F2:loc_1255w
- seg000:05FE ; sub_11F2:loc_1273r
- seg000:0600 word_600 dw 0 ; DATA XREF: sub_11F2+6Ew
- seg000:0600 ; sub_11F2+A3w ...
- seg000:0602 word_602 dw 0 ; DATA XREF: sub_11F2+36w
- seg000:0602 ; sub_11F2+89r ...
- seg000:0604 db 0
- seg000:0605 db 0
- seg000:0606 word_606 dw 0 ; DATA XREF: sub_13D3+3Er
- seg000:0606 ; sub_1694:loc_16A7w
- seg000:0608 word_608 dw 0 ; DATA XREF: sub_13D3+33r
- seg000:0608 ; sub_1694:loc_16C2w
- seg000:060A word_60A dw 0 ; DATA XREF: sub_F70+30r
- seg000:060A ; sub_13D3+11r ...
- seg000:060C word_60C dw 0 ; DATA XREF: sub_F70+44r
- seg000:060C ; sub_13D3+1Er ...
- seg000:060E word_60E dw 0 ; DATA XREF: sub_F70+3Ar
- seg000:060E ; sub_13D3+Dr ...
- seg000:0610 word_610 dw 0 ; DATA XREF: sub_F70+4Er
- seg000:0610 ; sub_13D3+1Ar ...
- seg000:0612 word_612 dw 0 ; DATA XREF: sub_14C6+Cw
- seg000:0612 ; sub_14C6+47r ...
- seg000:0614 word_614 dw 0 ; DATA XREF: sub_14C6+14w
- seg000:0614 ; sub_14C6+3Br ...
- seg000:0616 word_616 dw 0 ; DATA XREF: sub_14C6+1Fw
- seg000:0616 ; sub_14C6+51r ...
- seg000:0618 word_618 dw 0 ; DATA XREF: sub_14C6+27w
- seg000:0618 ; sub_14C6+65r ...
- seg000:061A db 0
- seg000:061B db 0
- seg000:061C db 0
- seg000:061D db 0
- seg000:061E db 0
- seg000:061F db 0
- seg000:0620 db 0
- seg000:0621 db 0
- seg000:0622 word_622 dw 0FFFFh ; DATA XREF: sub_F70+1Dw
- seg000:0622 ; sub_11F2+6w ...
- seg000:0624 word_624 dw 0, 0C9h dup(1), 280h dup(101h), 80h dup(0), 0A0h dup(101h)
- seg000:0624 ; DATA XREF: sub_F70+Cw
- seg000:0624 dw 0
- seg000:0EFA
- seg000:0EFA ; =============== S U B R O U T I N E =======================================
- seg000:0EFA
- seg000:0EFA
- seg000:0EFA sub_EFA proc far ; CODE XREF: seg000:0000j
- seg000:0EFA push ds
- seg000:0EFB push es
- seg000:0EFC push si
- seg000:0EFD push di
- seg000:0EFE push bp
- seg000:0EFF push bx
- seg000:0F00 push cx
- seg000:0F01 pushf
- seg000:0F02 cld
- seg000:0F03 push di
- seg000:0F04 mov di, cs
- seg000:0F06 mov ds, di
- seg000:0F08 mov es, di
- seg000:0F0A xchg di, bp
- seg000:0F0C mov bp, cs:off_3E[di]
- seg000:0F11 pop di
- seg000:0F12 call bp
- seg000:0F14 popf
- seg000:0F15 pop cx
- seg000:0F16 pop bx
- seg000:0F17 pop bp
- seg000:0F18 pop di
- seg000:0F19 pop si
- seg000:0F1A pop es
- seg000:0F1B pop ds
- seg000:0F1C retf
- seg000:0F1C sub_EFA endp
- seg000:0F1C
- seg000:0F1D
- seg000:0F1D ; =============== S U B R O U T I N E =======================================
- seg000:0F1D
- seg000:0F1D
- seg000:0F1D sub_F1D proc near ; DATA XREF: seg000:off_3Eo
- seg000:0F1D mov ax, 10h
- seg000:0F20 retn
- seg000:0F20 sub_F1D endp
- seg000:0F20
- seg000:0F21
- seg000:0F21 ; =============== S U B R O U T I N E =======================================
- seg000:0F21
- seg000:0F21
- seg000:0F21 sub_F21 proc near ; DATA XREF: seg000:off_40o
- seg000:0F21 mov ah, 0Fh
- seg000:0F23 int 10h ; - VIDEO - GET CURRENT VIDEO MODE
- seg000:0F23 ; Return: AH = number of columns on screen
- seg000:0F23 ; AL = current video mode
- seg000:0F23 ; BH = current active display page
- seg000:0F25 xor ah, ah
- seg000:0F27 push ax
- seg000:0F28 mov ax, 0Eh
- seg000:0F2B int 10h ; - VIDEO - SET VIDEO MODE
- seg000:0F2B ; AL = mode
- seg000:0F2D mov ah, 10h
- seg000:0F2F mov al, 3
- seg000:0F31 xor bx, bx
- seg000:0F33 int 10h ; - VIDEO - TOGGLE INTENSITY/BLINKING BIT (Jr, PS, TANDY 1000, EGA, VGA)
- seg000:0F33 ; BL = 00h enable background intensity
- seg000:0F33 ; = 01h enable blink
- seg000:0F35 cld
- seg000:0F36 mov ax, 0
- seg000:0F39 mov bx, 50h ; 'P'
- seg000:0F3C mov cx, 0C9h ; '+'
- seg000:0F3F mov di, 626h
- seg000:0F42
- seg000:0F42 loc_F42: ; CODE XREF: sub_F21+24j
- seg000:0F42 stosw
- seg000:0F43 add ax, bx
- seg000:0F45 loop loc_F42
- seg000:0F47 call sub_1694
- seg000:0F4A pop ax
- seg000:0F4B retn
- seg000:0F4B sub_F21 endp
- seg000:0F4B
- seg000:0F4C
- seg000:0F4C ; =============== S U B R O U T I N E =======================================
- seg000:0F4C
- seg000:0F4C
- seg000:0F4C sub_F4C proc near ; DATA XREF: seg000:0042o
- seg000:0F4C xor ah, ah
- seg000:0F4E int 10h ; - VIDEO - SET VIDEO MODE
- seg000:0F4E ; AL = mode
- seg000:0F50 retn
- seg000:0F50 sub_F4C endp
- seg000:0F50
- seg000:0F51
- seg000:0F51 ; =============== S U B R O U T I N E =======================================
- seg000:0F51
- seg000:0F51
- seg000:0F51 sub_F51 proc near ; DATA XREF: seg000:0044o
- seg000:0F51 test ax, 8000h
- seg000:0F54 jz short loc_F57
- seg000:0F56 retn
- seg000:0F57 ; ---------------------------------------------------------------------------
- seg000:0F57
- seg000:0F57 loc_F57: ; CODE XREF: sub_F51+3j
- seg000:0F57 test bx, 8000h
- seg000:0F5B jz short loc_F5E
- seg000:0F5D retn
- seg000:0F5E ; ---------------------------------------------------------------------------
- seg000:0F5E
- seg000:0F5E loc_F5E: ; CODE XREF: sub_F51+Aj
- seg000:0F5E cmp dx, 13Fh
- seg000:0F62 jbe short loc_F67
- seg000:0F64 mov dx, 13Fh
- seg000:0F67
- seg000:0F67 loc_F67: ; CODE XREF: sub_F51+11j
- seg000:0F67 mov di, 0A000h
- seg000:0F6A dec cx
- seg000:0F6B dec dx
- seg000:0F6C call sub_F70
- seg000:0F6F retn
- seg000:0F6F sub_F51 endp
- seg000:0F6F
- seg000:0F70
- seg000:0F70 ; =============== S U B R O U T I N E =======================================
- seg000:0F70
- seg000:0F70 ; Attributes: bp-based frame
- seg000:0F70
- seg000:0F70 sub_F70 proc near ; CODE XREF: sub_F51+1Bp
- seg000:0F70 ; sub_1332+12p
- seg000:0F70
- seg000:0F70 var_8 = word ptr -8
- seg000:0F70 var_6 = word ptr -6
- seg000:0F70 var_4 = word ptr -4
- seg000:0F70 var_2 = word ptr -2
- seg000:0F70
- seg000:0F70 push bp
- seg000:0F71 mov bp, sp
- seg000:0F73 add sp, 0FFF8h
- seg000:0F76 mov cs:byte_5FB, 1
- seg000:0F7C mov cs:word_624, di
- seg000:0F81 mov [bp+var_8], ax
- seg000:0F84 mov [bp+var_6], bx
- seg000:0F87 mov [bp+var_4], cx
- seg000:0F8A mov [bp+var_2], dx
- seg000:0F8D mov cs:word_622, si
- seg000:0F92 and [bp+var_6], 0FFFCh
- seg000:0F96 or [bp+var_2], 3
- seg000:0F9A mov cs:byte_5FA, 1
- seg000:0FA0 mov cx, cs:word_60A
- seg000:0FA5 cmp cx, [bp+var_2]
- seg000:0FA8 jnb short loc_FD1
- seg000:0FAA mov cx, cs:word_60E
- seg000:0FAF cmp cx, [bp+var_6]
- seg000:0FB2 jbe short loc_FD1
- seg000:0FB4 mov dx, cs:word_60C
- seg000:0FB9 cmp dx, [bp+var_4]
- seg000:0FBC jnb short loc_FD1
- seg000:0FBE mov dx, cs:word_610
- seg000:0FC3 cmp dx, [bp+var_8]
- seg000:0FC6 jbe short loc_FD1
- seg000:0FC8 call sub_1380
- seg000:0FCB mov cs:byte_5FA, 0
- seg000:0FD1
- seg000:0FD1 loc_FD1: ; CODE XREF: sub_F70+38j
- seg000:0FD1 ; sub_F70+42j ...
- seg000:0FD1 mov ax, [bp+var_8]
- seg000:0FD4 mov bx, [bp+var_6]
- seg000:0FD7 mov cx, [bp+var_4]
- seg000:0FDA mov dx, [bp+var_2]
- seg000:0FDD call sub_11F2
- seg000:0FE0 cmp cs:byte_5FA, 0
- seg000:0FE6 jnz short loc_FEB
- seg000:0FE8 call sub_1351
- seg000:0FEB
- seg000:0FEB loc_FEB: ; CODE XREF: sub_F70+76j
- seg000:0FEB mov cs:byte_5FB, 0
- seg000:0FF1 mov sp, bp
- seg000:0FF3 pop bp
- seg000:0FF4 retn
- seg000:0FF4 sub_F70 endp
- seg000:0FF4
- seg000:0FF5
- seg000:0FF5 ; =============== S U B R O U T I N E =======================================
- seg000:0FF5
- seg000:0FF5 ; Attributes: bp-based frame
- seg000:0FF5
- seg000:0FF5 sub_FF5 proc near ; CODE XREF: sub_11F2+94p
- seg000:0FF5
- seg000:0FF5 var_2 = word ptr -2
- seg000:0FF5
- seg000:0FF5 push bp
- seg000:0FF6 mov bp, sp
- seg000:0FF8 add sp, 0FFFEh
- seg000:0FFB or cx, cx
- seg000:0FFD jnz short loc_1003
- seg000:0FFF mov sp, bp
- seg000:1001 pop bp
- seg000:1002 retn
- seg000:1003 ; ---------------------------------------------------------------------------
- seg000:1003
- seg000:1003 loc_1003: ; CODE XREF: sub_FF5+8j
- seg000:1003 push cx
- seg000:1004 mov [bp+var_2], cx
- seg000:1007 push di
- seg000:1008 sub di, di
- seg000:100A push es
- seg000:100B mov ax, cs
- seg000:100D mov es, ax
- seg000:100F jmp loc_10D0
- seg000:1012 ; ---------------------------------------------------------------------------
- seg000:1012
- seg000:1012 loc_1012: ; CODE XREF: sub_FF5+E1j
- seg000:1012 mov bl, [si+2]
- seg000:1015 sub bh, bh
- seg000:1017 mov al, es:[bx+0AB8h]
- seg000:101C mov bl, [si+3]
- seg000:101F mov ah, es:[bx+0AB8h]
- seg000:1024 push ax
- seg000:1025 mov bl, [si]
- seg000:1027 mov al, es:[bx+0AB8h]
- seg000:102C mov bl, [si+1]
- seg000:102F mov ah, es:[bx+0AB8h]
- seg000:1034 add si, 4
- seg000:1037 shl al, 1
- seg000:1039 rcl cl, 1
- seg000:103B shl al, 1
- seg000:103D rcl bh, 1
- seg000:103F shl al, 1
- seg000:1041 rcl bl, 1
- seg000:1043 shl al, 1
- seg000:1045 rcl ch, 1
- seg000:1047 shl al, 1
- seg000:1049 rcl cl, 1
- seg000:104B shl al, 1
- seg000:104D rcl bh, 1
- seg000:104F shl al, 1
- seg000:1051 rcl bl, 1
- seg000:1053 shl al, 1
- seg000:1055 rcl ch, 1
- seg000:1057 shl ah, 1
- seg000:1059 rcl cl, 1
- seg000:105B shl ah, 1
- seg000:105D rcl bh, 1
- seg000:105F shl ah, 1
- seg000:1061 rcl bl, 1
- seg000:1063 shl ah, 1
- seg000:1065 rcl ch, 1
- seg000:1067 shl ah, 1
- seg000:1069 rcl cl, 1
- seg000:106B shl ah, 1
- seg000:106D rcl bh, 1
- seg000:106F shl ah, 1
- seg000:1071 rcl bl, 1
- seg000:1073 shl ah, 1
- seg000:1075 rcl ch, 1
- seg000:1077 pop ax
- seg000:1078 shl al, 1
- seg000:107A rcl cl, 1
- seg000:107C shl al, 1
- seg000:107E rcl bh, 1
- seg000:1080 shl al, 1
- seg000:1082 rcl bl, 1
- seg000:1084 shl al, 1
- seg000:1086 rcl ch, 1
- seg000:1088 shl al, 1
- seg000:108A rcl cl, 1
- seg000:108C shl al, 1
- seg000:108E rcl bh, 1
- seg000:1090 shl al, 1
- seg000:1092 rcl bl, 1
- seg000:1094 shl al, 1
- seg000:1096 rcl ch, 1
- seg000:1098 shl ah, 1
- seg000:109A rcl cl, 1
- seg000:109C shl ah, 1
- seg000:109E rcl bh, 1
- seg000:10A0 shl ah, 1
- seg000:10A2 rcl bl, 1
- seg000:10A4 shl ah, 1
- seg000:10A6 rcl ch, 1
- seg000:10A8 shl ah, 1
- seg000:10AA rcl cl, 1
- seg000:10AC shl ah, 1
- seg000:10AE rcl bh, 1
- seg000:10B0 shl ah, 1
- seg000:10B2 rcl bl, 1
- seg000:10B4 shl ah, 1
- seg000:10B6 rcl ch, 1
- seg000:10B8 mov es:[di+0DB8h], ch
- seg000:10BD mov es:[di+0E08h], bl
- seg000:10C2 mov es:[di+0E58h], bh
- seg000:10C7 mov es:[di+0EA8h], cl
- seg000:10CC inc di
- seg000:10CD dec [bp+var_2]
- seg000:10D0
- seg000:10D0 loc_10D0: ; CODE XREF: sub_FF5+1Aj
- seg000:10D0 cmp [bp+var_2], 0
- seg000:10D4 jz short loc_10D9
- seg000:10D6 jmp loc_1012
- seg000:10D9 ; ---------------------------------------------------------------------------
- seg000:10D9
- seg000:10D9 loc_10D9: ; CODE XREF: sub_FF5+DFj
- seg000:10D9 mov ax, es
- seg000:10DB pop es
- seg000:10DC pop bx
- seg000:10DD pop cx
- seg000:10DE mov [bp+var_2], cx
- seg000:10E1 push ds
- seg000:10E2 mov ds, ax
- seg000:10E4 cld
- seg000:10E5 mov al, 1
- seg000:10E7 out dx, al
- seg000:10E8 mov cx, [bp+var_2]
- seg000:10EB mov di, bx
- seg000:10ED mov si, 0DB8h
- seg000:10F0 rep movsb
- seg000:10F2 mov al, 2
- seg000:10F4 out dx, al
- seg000:10F5 mov cx, [bp+var_2]
- seg000:10F8 mov di, bx
- seg000:10FA mov si, 0E08h
- seg000:10FD rep movsb
- seg000:10FF mov al, 4
- seg000:1101 out dx, al
- seg000:1102 mov cx, [bp+var_2]
- seg000:1105 mov di, bx
- seg000:1107 mov si, 0E58h
- seg000:110A rep movsb
- seg000:110C mov al, 8
- seg000:110E out dx, al
- seg000:110F mov cx, [bp+var_2]
- seg000:1112 mov di, bx
- seg000:1114 mov si, 0EA8h
- seg000:1117 rep movsb
- seg000:1119 pop ds
- seg000:111A mov sp, bp
- seg000:111C pop bp
- seg000:111D retn
- seg000:111D sub_FF5 endp
- seg000:111D
- seg000:111E
- seg000:111E ; =============== S U B R O U T I N E =======================================
- seg000:111E
- seg000:111E
- seg000:111E sub_111E proc near
- seg000:111E push ax
- seg000:111F push cx
- seg000:1120 push dx
- seg000:1121 push bx
- seg000:1122 push bp
- seg000:1123 push si
- seg000:1124 push di
- seg000:1125
- seg000:1125 loc_1125: ; CODE XREF: sub_111E+C9j
- seg000:1125 mov bl, [si+2]
- seg000:1128 sub bh, bh
- seg000:112A mov al, cs:[bx+0AB8h]
- seg000:112F mov bl, [si+3]
- seg000:1132 mov ah, cs:[bx+0AB8h]
- seg000:1137 push ax
- seg000:1138 mov bl, [si]
- seg000:113A mov al, cs:[bx+0AB8h]
- seg000:113F mov bl, [si+1]
- seg000:1142 mov ah, cs:[bx+0AB8h]
- seg000:1147 add si, 4
- seg000:114A shl al, 1
- seg000:114C rcl cl, 1
- seg000:114E shl al, 1
- seg000:1150 rcl bh, 1
- seg000:1152 shl al, 1
- seg000:1154 rcl bl, 1
- seg000:1156 shl al, 1
- seg000:1158 rcl ch, 1
- seg000:115A shl al, 1
- seg000:115C rcl cl, 1
- seg000:115E shl al, 1
- seg000:1160 rcl bh, 1
- seg000:1162 shl al, 1
- seg000:1164 rcl bl, 1
- seg000:1166 shl al, 1
- seg000:1168 rcl ch, 1
- seg000:116A shl ah, 1
- seg000:116C rcl cl, 1
- seg000:116E shl ah, 1
- seg000:1170 rcl bh, 1
- seg000:1172 shl ah, 1
- seg000:1174 rcl bl, 1
- seg000:1176 shl ah, 1
- seg000:1178 rcl ch, 1
- seg000:117A shl ah, 1
- seg000:117C rcl cl, 1
- seg000:117E shl ah, 1
- seg000:1180 rcl bh, 1
- seg000:1182 shl ah, 1
- seg000:1184 rcl bl, 1
- seg000:1186 shl ah, 1
- seg000:1188 rcl ch, 1
- seg000:118A pop ax
- seg000:118B shl al, 1
- seg000:118D rcl cl, 1
- seg000:118F shl al, 1
- seg000:1191 rcl bh, 1
- seg000:1193 shl al, 1
- seg000:1195 rcl bl, 1
- seg000:1197 shl al, 1
- seg000:1199 rcl ch, 1
- seg000:119B shl al, 1
- seg000:119D rcl cl, 1
- seg000:119F shl al, 1
- seg000:11A1 rcl bh, 1
- seg000:11A3 shl al, 1
- seg000:11A5 rcl bl, 1
- seg000:11A7 shl al, 1
- seg000:11A9 rcl ch, 1
- seg000:11AB shl ah, 1
- seg000:11AD rcl cl, 1
- seg000:11AF shl ah, 1
- seg000:11B1 rcl bh, 1
- seg000:11B3 shl ah, 1
- seg000:11B5 rcl bl, 1
- seg000:11B7 shl ah, 1
- seg000:11B9 rcl ch, 1
- seg000:11BB shl ah, 1
- seg000:11BD rcl cl, 1
- seg000:11BF shl ah, 1
- seg000:11C1 rcl bh, 1
- seg000:11C3 shl ah, 1
- seg000:11C5 rcl bl, 1
- seg000:11C7 shl ah, 1
- seg000:11C9 rcl ch, 1
- seg000:11CB mov al, 1
- seg000:11CD out dx, al
- seg000:11CE mov es:[di], ch
- seg000:11D1 shl al, 1
- seg000:11D3 out dx, al
- seg000:11D4 mov es:[di], bl
- seg000:11D7 shl al, 1
- seg000:11D9 out dx, al
- seg000:11DA mov es:[di], bh
- seg000:11DD shl al, 1
- seg000:11DF out dx, al
- seg000:11E0 mov es:[di], cl
- seg000:11E3 inc di
- seg000:11E4 dec bp
- seg000:11E5 jz short loc_11EA
- seg000:11E7 jmp loc_1125
- seg000:11EA ; ---------------------------------------------------------------------------
- seg000:11EA
- seg000:11EA loc_11EA: ; CODE XREF: sub_111E+C7j
- seg000:11EA pop di
- seg000:11EB pop si
- seg000:11EC pop bp
- seg000:11ED pop bx
- seg000:11EE pop dx
- seg000:11EF pop cx
- seg000:11F0 pop ax
- seg000:11F1 retn
- seg000:11F1 sub_111E endp
- seg000:11F1
- seg000:11F2
- seg000:11F2 ; =============== S U B R O U T I N E =======================================
- seg000:11F2
- seg000:11F2 ; Attributes: bp-based frame
- seg000:11F2
- seg000:11F2 sub_11F2 proc near ; CODE XREF: sub_F70+6Dp
- seg000:11F2
- seg000:11F2 var_A = word ptr -0Ah
- seg000:11F2 var_8 = word ptr -8
- seg000:11F2 var_6 = word ptr -6
- seg000:11F2 var_4 = word ptr -4
- seg000:11F2 var_2 = word ptr -2
- seg000:11F2
- seg000:11F2 push bp
- seg000:11F3 mov bp, sp
- seg000:11F5 add sp, 0FFF6h
- seg000:11F8 mov cs:word_622, si
- seg000:11FD mov [bp+var_A], ax
- seg000:1200 mov [bp+var_8], bx
- seg000:1203 mov [bp+var_6], cx
- seg000:1206 mov [bp+var_4], dx
- seg000:1209 mov bh, 0
- seg000:120B call sub_1703
- seg000:120E mov bh, 0
- seg000:1210 call sub_170E
- seg000:1213 call sub_171B
- seg000:1216 mov al, 0FFh
- seg000:1218 out dx, al
- seg000:1219 mov ax, [bp+var_A]
- seg000:121C mov bx, 140h
- seg000:121F mul bx
- seg000:1221 mov si, ax
- seg000:1223 mov ax, [bp+var_8]
- seg000:1226 add si, ax
- seg000:1228 mov cs:word_602, si
- seg000:122D mov di, [bp+var_A]
- seg000:1230 shl di, 1
- seg000:1232 mov di, cs:[di+626h]
- seg000:1237 mov ax, [bp+var_8]
- seg000:123A shr ax, 1
- seg000:123C shr ax, 1
- seg000:123E add di, ax
- seg000:1240 mov [bp+var_2], di
- seg000:1243 mov ax, [bp+var_4]
- seg000:1246 sub ax, [bp+var_8]
- seg000:1249 inc ax
- seg000:124A shr ax, 1
- seg000:124C shr ax, 1
- seg000:124E or ax, ax
- seg000:1250 jnz short loc_1255
- seg000:1252 mov ax, 1
- seg000:1255
- seg000:1255 loc_1255: ; CODE XREF: sub_11F2+5Ej
- seg000:1255 mov cs:word_5FE, ax
- seg000:1259 mov ax, [bp+var_6]
- seg000:125C sub ax, [bp+var_A]
- seg000:125F inc ax
- seg000:1260 mov cs:word_600, ax
- seg000:1264 mov dx, 3C4h
- seg000:1267 mov al, 2
- seg000:1269 out dx, al ; EGA: sequencer address reg
- seg000:1269 ; map mask: data bits 0-3 enable writes to bit planes 0-3
- seg000:126A inc dx
- seg000:126B push es
- seg000:126C mov ax, 0A000h
- seg000:126F mov es, ax
- seg000:1271 assume es:nothing
- seg000:1271 jmp short loc_129A
- seg000:1273 ; ---------------------------------------------------------------------------
- seg000:1273
- seg000:1273 loc_1273: ; CODE XREF: sub_11F2+AEj
- seg000:1273 mov cx, cs:word_5FE
- seg000:1278 mov di, [bp+var_2]
- seg000:127B mov si, cs:word_602
- seg000:1280 push ds
- seg000:1281 mov ds, cs:word_622
- seg000:1286 call sub_FF5
- seg000:1289 pop ds
- seg000:128A add [bp+var_2], 50h ; 'P'
- seg000:128E add cs:word_602, 140h
- seg000:1295 dec cs:word_600
- seg000:129A
- seg000:129A loc_129A: ; CODE XREF: sub_11F2+7Fj
- seg000:129A cmp cs:word_600, 0
- seg000:12A0 jnz short loc_1273
- seg000:12A2 pop es
- seg000:12A3 assume es:nothing
- seg000:12A3 mov al, 0Fh
- seg000:12A5 out dx, al
- seg000:12A6 mov sp, bp
- seg000:12A8 pop bp
- seg000:12A9 retn
- seg000:12A9 sub_11F2 endp
- seg000:12A9
- seg000:12AA
- seg000:12AA ; =============== S U B R O U T I N E =======================================
- seg000:12AA
- seg000:12AA ; Attributes: bp-based frame
- seg000:12AA
- seg000:12AA sub_12AA proc near ; DATA XREF: seg000:004Eo
- seg000:12AA
- seg000:12AA var_8 = word ptr -8
- seg000:12AA var_6 = word ptr -6
- seg000:12AA var_4 = dword ptr -4
- seg000:12AA
- seg000:12AA push bp
- seg000:12AB mov bp, sp
- seg000:12AD add sp, 0FFF8h
- seg000:12B0 mov word ptr [bp+var_4], bx
- seg000:12B3 mov word ptr [bp+var_4+2], ax
- seg000:12B6 mov [bp+var_6], cx
- seg000:12B9 mov [bp+var_8], dx
- seg000:12BC call sub_1380
- seg000:12BF mov bh, 0
- seg000:12C1 call sub_1703
- seg000:12C4 mov bh, 0
- seg000:12C6 call sub_170E
- seg000:12C9 call sub_171B
- seg000:12CC xor al, al
- seg000:12CE out dx, al
- seg000:12CF push es
- seg000:12D0 push ds
- seg000:12D1 xor di, di
- seg000:12D3 test [bp+var_8], 1
- seg000:12D8 jz short loc_12DE
- seg000:12DA add di, 280h
- seg000:12DE
- seg000:12DE loc_12DE: ; CODE XREF: sub_12AA+2Ej
- seg000:12DE test [bp+var_8], 2
- seg000:12E3 jz short loc_12E6
- seg000:12E5 inc di
- seg000:12E6
- seg000:12E6 loc_12E6: ; CODE XREF: sub_12AA+39j
- seg000:12E6 mov cx, 4000h
- seg000:12E9 sub cx, di
- seg000:12EB add di, 4000h
- seg000:12EF mov ax, 0A000h
- seg000:12F2 mov ds, ax
- seg000:12F4 assume ds:nothing
- seg000:12F4 mov es, ax
- seg000:12F6 assume es:nothing
- seg000:12F6 xor si, si
- seg000:12F8
- seg000:12F8 loc_12F8: ; CODE XREF: sub_12AA+50j
- seg000:12F8 lodsb
- seg000:12F9 stosb
- seg000:12FA loop loc_12F8
- seg000:12FC pop ds
- seg000:12FD assume ds:nothing
- seg000:12FD mov bl, 1
- seg000:12FF mov cx, [bp+var_6]
- seg000:1302
- seg000:1302 loc_1302: ; CODE XREF: sub_12AA+74j
- seg000:1302 mov ah, 5
- seg000:1304 mov al, bl
- seg000:1306 int 10h ; - VIDEO - SELECT DISPLAY PAGE
- seg000:1306 ; AL = display page, 0-7 for modes 0 & 1, 0-3 for modes 2 & 3
- seg000:1308 xor bl, 1
- seg000:130B push cx
- seg000:130C mov cx, 3
- seg000:130F les di, [bp+var_4]
- seg000:1312 assume es:nothing
- seg000:1312
- seg000:1312 loc_1312: ; CODE XREF: sub_12AA+71j
- seg000:1312 mov ax, es:[di]
- seg000:1315
- seg000:1315 loc_1315: ; CODE XREF: sub_12AA+6Fj
- seg000:1315 nop
- seg000:1316 cmp ax, es:[di]
- seg000:1319 jz short loc_1315
- seg000:131B loop loc_1312
- seg000:131D pop cx
- seg000:131E loop loc_1302
- seg000:1320 xor al, al
- seg000:1322 mov ah, 5
- seg000:1324 int 10h ; - VIDEO - SELECT DISPLAY PAGE
- seg000:1324 ; AL = display page, 0-7 for modes 0 & 1, 0-3 for modes 2 & 3
- seg000:1326 pop es
- seg000:1327 call sub_1351
- seg000:132A xor ax, ax
- seg000:132C xor dx, dx
- seg000:132E mov sp, bp
- seg000:1330 pop bp
- seg000:1331 retn
- seg000:1331 sub_12AA endp
- seg000:1331
- seg000:1332
- seg000:1332 ; =============== S U B R O U T I N E =======================================
- seg000:1332
- seg000:1332
- seg000:1332 sub_1332 proc near ; DATA XREF: seg000:0050o
- seg000:1332 mov di, 0A000h
- seg000:1335 sub ax, ax
- seg000:1337 sub bx, bx
- seg000:1339 mov cx, 0C7h ; 'Ã'
- seg000:133C mov dx, 13Fh
- seg000:133F mov si, cs:word_622
- seg000:1344 call sub_F70
- seg000:1347 retn
- seg000:1347 sub_1332 endp
- seg000:1347
- seg000:1348
- seg000:1348 ; =============== S U B R O U T I N E =======================================
- seg000:1348
- seg000:1348
- seg000:1348 sub_1348 proc near ; DATA XREF: seg000:004Co
- seg000:1348 call sub_1380
- seg000:134B mov dx, cs
- seg000:134D mov ax, 58h ; 'X'
- seg000:1350 retn
- seg000:1350 sub_1348 endp
- seg000:1350
- seg000:1351
- seg000:1351 ; =============== S U B R O U T I N E =======================================
- seg000:1351
- seg000:1351
- seg000:1351 sub_1351 proc near ; CODE XREF: sub_F70+78p
- seg000:1351 ; sub_12AA+7Dp
- seg000:1351 ; DATA XREF: ...
- seg000:1351 cmp cs:word_5FC, 1
- seg000:1357 jle short loc_1362
- seg000:1359 mov ax, 1
- seg000:135C mov cs:word_5FC, ax
- seg000:1360 jmp short loc_137B
- seg000:1362 ; ---------------------------------------------------------------------------
- seg000:1362
- seg000:1362 loc_1362: ; CODE XREF: sub_1351+6j
- seg000:1362 inc cs:word_5FC
- seg000:1367 cmp cs:word_5FC, 1
- seg000:136D jnz short loc_137B
- seg000:136F pushf
- seg000:1370 cli
- seg000:1371 call sub_1694
- seg000:1374 call sub_14C6
- seg000:1377 call sub_13D3
- seg000:137A popf
- seg000:137B
- seg000:137B loc_137B: ; CODE XREF: sub_1351+Fj
- seg000:137B ; sub_1351+1Cj
- seg000:137B mov ax, cs:word_5FC
- seg000:137F retn
- seg000:137F sub_1351 endp
- seg000:137F
- seg000:1380
- seg000:1380 ; =============== S U B R O U T I N E =======================================
- seg000:1380
- seg000:1380
- seg000:1380 sub_1380 proc near ; CODE XREF: sub_F70+58p
- seg000:1380 ; sub_12AA+12p ...
- seg000:1380 dec cs:word_5FC
- seg000:1385 jnz short loc_138D
- seg000:1387 pushf
- seg000:1388 cli
- seg000:1389 call sub_1563
- seg000:138C popf
- seg000:138D
- seg000:138D loc_138D: ; CODE XREF: sub_1380+5j
- seg000:138D mov ax, cs:word_5FC
- seg000:1391 retn
- seg000:1391 sub_1380 endp
- seg000:1391
- seg000:1392
- seg000:1392 ; =============== S U B R O U T I N E =======================================
- seg000:1392
- seg000:1392
- seg000:1392 sub_1392 proc near ; DATA XREF: seg000:004Ao
- seg000:1392 push ax
- seg000:1393 push cx
- seg000:1394 push dx
- seg000:1395 push bx
- seg000:1396 push bp
- seg000:1397 push si
- seg000:1398 push di
- seg000:1399 cli
- seg000:139A cmp ax, 13Fh
- seg000:139D jbe short loc_13A2
- seg000:139F mov ax, 13Fh
- seg000:13A2
- seg000:13A2 loc_13A2: ; CODE XREF: sub_1392+Bj
- seg000:13A2 mov cs:word_5F6, ax
- seg000:13A6 mov cs:word_5F8, bx
- seg000:13AB cmp cs:byte_5FB, 0
- seg000:13B1 jnz short loc_13C7
- seg000:13B3 cmp cs:word_5FC, 0
- seg000:13B9 jle short loc_13C7
- seg000:13BB call sub_1563
- seg000:13BE call sub_1694
- seg000:13C1 call sub_14C6
- seg000:13C4 call sub_13D3
- seg000:13C7
- seg000:13C7 loc_13C7: ; CODE XREF: sub_1392+1Fj
- seg000:13C7 ; sub_1392+27j
- seg000:13C7 pop di
- seg000:13C8 pop si
- seg000:13C9 pop bp
- seg000:13CA pop bx
- seg000:13CB pop dx
- seg000:13CC pop cx
- seg000:13CD pop ax
- seg000:13CE xor ax, ax
- seg000:13D0 xor dx, dx
- seg000:13D2 retn
- seg000:13D2 sub_1392 endp
- seg000:13D2
- seg000:13D3
- seg000:13D3 ; =============== S U B R O U T I N E =======================================
- seg000:13D3
- seg000:13D3 ; Attributes: bp-based frame
- seg000:13D3
- seg000:13D3 sub_13D3 proc near ; CODE XREF: sub_1351+26p
- seg000:13D3 ; sub_1392+32p
- seg000:13D3
- seg000:13D3 var_6 = word ptr -6
- seg000:13D3 var_4 = word ptr -4
- seg000:13D3 var_2 = word ptr -2
- seg000:13D3
- seg000:13D3 push bp
- seg000:13D4 mov bp, sp
- seg000:13D6 add sp, 0FFFAh
- seg000:13D9 push bx
- seg000:13DA push cx
- seg000:13DB push dx
- seg000:13DC push si
- seg000:13DD push di
- seg000:13DE push es
- seg000:13DF cld
- seg000:13E0 mov ax, cs:word_60E
- seg000:13E4 sub ax, cs:word_60A
- seg000:13E9 inc ax
- seg000:13EA mov [bp+var_2], ax
- seg000:13ED mov ax, cs:word_610
- seg000:13F1 sub ax, cs:word_60C
- seg000:13F6 inc ax
- seg000:13F7 mov [bp+var_4], ax
- seg000:13FA mov bh, 2
- seg000:13FC call sub_1703
- seg000:13FF call sub_171B
- seg000:1402 push dx
- seg000:1403 mov si, 62h ; 'b'
- seg000:1406 mov ax, cs:word_608
- seg000:140A mul cs:word_58
- seg000:140F add si, ax
- seg000:1411 add si, cs:word_606
- seg000:1416 mov di, cs:word_60C
- seg000:141B shl di, 1
- seg000:141D mov di, cs:[di+626h]
- seg000:1422 mov ax, cs:word_60A
- seg000:1426 shr ax, 1
- seg000:1428 shr ax, 1
- seg000:142A add di, ax
- seg000:142C mov ax, 0A000h
- seg000:142F mov es, ax
- seg000:1431 assume es:nothing
- seg000:1431 mov cx, cs:word_60A
- seg000:1436 and cx, 3
- seg000:1439 add cx, cx
- seg000:143B mov bl, 80h ; 'Ç'
- seg000:143D shr bl, cl
- seg000:143F mov ch, bl
- seg000:1441 pop dx
- seg000:1442 jmp short loc_14AB
- seg000:1444 ; ---------------------------------------------------------------------------
- seg000:1444
- seg000:1444 loc_1444: ; CODE XREF: sub_13D3+DCj
- seg000:1444 push si
- seg000:1445 push di
- seg000:1446 mov ax, [bp+var_2]
- seg000:1449 mov [bp+var_6], ax
- seg000:144C mov al, es:[di]
- seg000:144F mov ah, cs:byte_60
- seg000:1454 sub bh, bh
- seg000:1456 mov al, ch
- seg000:1458
- seg000:1458 loc_1458: ; CODE XREF: sub_13D3+C9j
- seg000:1458 mov bl, [si]
- seg000:145A cmp bl, ah
- seg000:145C jz short loc_1486
- seg000:145E mov bl, cs:[bx+0AB8h]
- seg000:1463 shr bl, 1
- seg000:1465 shr bl, 1
- seg000:1467 shr bl, 1
- seg000:1469 shr bl, 1
- seg000:146B out dx, al
- seg000:146C mov cl, es:[di]
- seg000:146F mov es:[di], bl
- seg000:1472 shr al, 1
- seg000:1474 mov bl, [si]
- seg000:1476 mov bl, cs:[bx+0AB8h]
- seg000:147B out dx, al
- seg000:147C mov cl, es:[di]
- seg000:147F mov es:[di], bl
- seg000:1482 shr al, 1
- seg000:1484 jmp short loc_148A
- seg000:1486 ; ---------------------------------------------------------------------------
- seg000:1486
- seg000:1486 loc_1486: ; CODE XREF: sub_13D3+89j
- seg000:1486 shr al, 1
- seg000:1488 shr al, 1
- seg000:148A
- seg000:148A loc_148A: ; CODE XREF: sub_13D3+B1j
- seg000:148A or al, al
- seg000:148C jnz short loc_1494
- seg000:148E inc di
- seg000:148F mov al, es:[di]
- seg000:1492 mov al, 80h ; 'Ç'
- seg000:1494
- seg000:1494 loc_1494: ; CODE XREF: sub_13D3+B9j
- seg000:1494 inc si
- seg000:1495 dec [bp+var_6]
- seg000:1498 cmp [bp+var_6], 0
- seg000:149C jnz short loc_1458
- seg000:149E pop di
- seg000:149F pop si
- seg000:14A0 add si, cs:word_58
- seg000:14A5 add di, 50h ; 'P'
- seg000:14A8 dec [bp+var_4]
- seg000:14AB
- seg000:14AB loc_14AB: ; CODE XREF: sub_13D3+6Fj
- seg000:14AB cmp [bp+var_4], 0
- seg000:14AF jnz short loc_1444
- seg000:14B1 mov bh, 0
- seg000:14B3 call sub_1703
- seg000:14B6 call sub_171B
- seg000:14B9 mov al, 0FFh
- seg000:14BB out dx, al
- seg000:14BC pop es
- seg000:14BD assume es:nothing
- seg000:14BD pop di
- seg000:14BE pop si
- seg000:14BF pop dx
- seg000:14C0 pop cx
- seg000:14C1 pop bx
- seg000:14C2 mov sp, bp
- seg000:14C4 pop bp
- seg000:14C5 retn
- seg000:14C5 sub_13D3 endp
- seg000:14C5
- seg000:14C6
- seg000:14C6 ; =============== S U B R O U T I N E =======================================
- seg000:14C6
- seg000:14C6
- seg000:14C6 sub_14C6 proc near ; CODE XREF: sub_1351+23p
- seg000:14C6 ; sub_1392+2Fp
- seg000:14C6 push si
- seg000:14C7 push di
- seg000:14C8 push dx
- seg000:14C9 push cx
- seg000:14CA push bx
- seg000:14CB mov ax, cs:word_60A
- seg000:14CF and ax, 0FFFCh
- seg000:14D2 mov cs:word_612, ax
- seg000:14D6 mov ax, cs:word_60C
- seg000:14DA mov cs:word_614, ax
- seg000:14DE mov ax, cs:word_60E
- seg000:14E2 or ax, 3
- seg000:14E5 mov cs:word_616, ax
- seg000:14E9 mov ax, cs:word_610
- seg000:14ED mov cs:word_618, ax
- seg000:14F1 mov bh, 0
- seg000:14F3 call sub_1703
- seg000:14F6 mov bh, 0
- seg000:14F8 call sub_170E
- seg000:14FB call sub_171B
- seg000:14FE xor al, al
- seg000:1500 out dx, al
- seg000:1501 mov si, cs:word_614
- seg000:1506 shl si, 1
- seg000:1508 mov si, cs:[si+626h]
- seg000:150D mov ax, cs:word_612
- seg000:1511 shr ax, 1
- seg000:1513 shr ax, 1
- seg000:1515 add si, ax
- seg000:1517 mov cx, cs:word_616
- seg000:151C sub cx, cs:word_612
- seg000:1521 inc cx
- seg000:1522 shr cx, 1
- seg000:1524 shr cx, 1
- seg000:1526 mov dx, 50h ; 'P'
- seg000:1529 sub dx, cx
- seg000:152B mov bx, cs:word_618
- seg000:1530 sub bx, cs:word_614
- seg000:1535 inc bx
- seg000:1536 mov di, 0C8h ; '+'
- seg000:1539 shl di, 1
- seg000:153B mov di, cs:[di+626h]
- seg000:1540 push es
- seg000:1541 push ds
- seg000:1542 mov ax, 0A000h
- seg000:1545 mov es, ax
- seg000:1547 assume es:nothing
- seg000:1547 mov ds, ax
- seg000:1549 assume ds:nothing
- seg000:1549 jmp short loc_1552
- seg000:154B ; ---------------------------------------------------------------------------
- seg000:154B
- seg000:154B loc_154B: ; CODE XREF: sub_14C6+8Ej
- seg000:154B push cx
- seg000:154C rep movsb
- seg000:154E pop cx
- seg000:154F add si, dx
- seg000:1551 dec bx
- seg000:1552
- seg000:1552 loc_1552: ; CODE XREF: sub_14C6+83j
- seg000:1552 or bx, bx
- seg000:1554 jnz short loc_154B
- seg000:1556 pop ds
- seg000:1557 assume ds:nothing
- seg000:1557 pop es
- seg000:1558 assume es:nothing
- seg000:1558 mov bh, 2
- seg000:155A call sub_1703
- seg000:155D pop bx
- seg000:155E pop cx
- seg000:155F pop dx
- seg000:1560 pop di
- seg000:1561 pop si
- seg000:1562 retn
- seg000:1562 sub_14C6 endp
- seg000:1562
- seg000:1563
- seg000:1563 ; =============== S U B R O U T I N E =======================================
- seg000:1563
- seg000:1563
- seg000:1563 sub_1563 proc near ; CODE XREF: sub_1380+9p
- seg000:1563 ; sub_1392+29p
- seg000:1563 push si
- seg000:1564 push di
- seg000:1565 push dx
- seg000:1566 push cx
- seg000:1567 push bx
- seg000:1568 mov bh, 0
- seg000:156A call sub_1703
- seg000:156D mov bh, 0
- seg000:156F call sub_170E
- seg000:1572 call sub_171B
- seg000:1575 xor al, al
- seg000:1577 out dx, al
- seg000:1578 mov di, cs:word_614
- seg000:157D shl di, 1
- seg000:157F mov di, cs:[di+626h]
- seg000:1584 mov ax, cs:word_612
- seg000:1588 shr ax, 1
- seg000:158A shr ax, 1
- seg000:158C add di, ax
- seg000:158E mov cx, cs:word_616
- seg000:1593 sub cx, cs:word_612
- seg000:1598 inc cx
- seg000:1599 shr cx, 1
- seg000:159B shr cx, 1
- seg000:159D mov dx, 50h ; 'P'
- seg000:15A0 sub dx, cx
- seg000:15A2 mov bx, cs:word_618
- seg000:15A7 sub bx, cs:word_614
- seg000:15AC inc bx
- seg000:15AD mov si, 0C8h ; '+'
- seg000:15B0 shl si, 1
- seg000:15B2 mov si, cs:[si+626h]
- seg000:15B7 push es
- seg000:15B8 push ds
- seg000:15B9 mov ax, 0A000h
- seg000:15BC mov es, ax
- seg000:15BE assume es:nothing
- seg000:15BE mov ds, ax
- seg000:15C0 assume ds:nothing
- seg000:15C0 jmp short loc_15C9
- seg000:15C2 ; ---------------------------------------------------------------------------
- seg000:15C2
- seg000:15C2 loc_15C2: ; CODE XREF: sub_1563+68j
- seg000:15C2 push cx
- seg000:15C3 rep movsb
- seg000:15C5 pop cx
- seg000:15C6 add di, dx
- seg000:15C8 dec bx
- seg000:15C9
- seg000:15C9 loc_15C9: ; CODE XREF: sub_1563+5Dj
- seg000:15C9 or bx, bx
- seg000:15CB jnz short loc_15C2
- seg000:15CD pop ds
- seg000:15CE assume ds:nothing
- seg000:15CE pop es
- seg000:15CF assume es:nothing
- seg000:15CF mov bh, 2
- seg000:15D1 call sub_1703
- seg000:15D4 call sub_171B
- seg000:15D7 mov al, 0FFh
- seg000:15D9 out dx, al
- seg000:15DA pop bx
- seg000:15DB pop cx
- seg000:15DC pop dx
- seg000:15DD pop di
- seg000:15DE pop si
- seg000:15DF retn
- seg000:15DF sub_1563 endp
- seg000:15DF
- seg000:15E0
- seg000:15E0 ; =============== S U B R O U T I N E =======================================
- seg000:15E0
- seg000:15E0
- seg000:15E0 sub_15E0 proc near ; DATA XREF: seg000:0054o
- seg000:15E0 cld
- seg000:15E1 push es
- seg000:15E2 mov es, ax
- seg000:15E4 mov di, si
- seg000:15E6 mov cx, 100h
- seg000:15E9 mov si, 0CB8h
- seg000:15EC rep movsb
- seg000:15EE sub ax, ax
- seg000:15F0 stosw
- seg000:15F1 stosw
- seg000:15F2 mov si, 7B8h
- seg000:15F5 mov bx, 0BB8h
- seg000:15F8 mov cx, 100h
- seg000:15FB
- seg000:15FB loc_15FB: ; CODE XREF: sub_15E0+31j
- seg000:15FB mov al, [bx]
- seg000:15FD inc bx
- seg000:15FE stosb
- seg000:15FF lodsb
- seg000:1600 shl al, 1
- seg000:1602 shl al, 1
- seg000:1604 stosb
- seg000:1605 lodsb
- seg000:1606 shl al, 1
- seg000:1608 shl al, 1
- seg000:160A stosb
- seg000:160B lodsb
- seg000:160C shl al, 1
- seg000:160E shl al, 1
- seg000:1610 stosb
- seg000:1611 loop loc_15FB
- seg000:1613 pop es
- seg000:1614 retn
- seg000:1614 sub_15E0 endp
- seg000:1614
- seg000:1615
- seg000:1615 ; =============== S U B R O U T I N E =======================================
- seg000:1615
- seg000:1615
- seg000:1615 sub_1615 proc near ; DATA XREF: seg000:0052o
- seg000:1615 cld
- seg000:1616 push ax
- seg000:1617 push si
- seg000:1618 push di
- seg000:1619 push ds
- seg000:161A push bp
- seg000:161B push ax
- seg000:161C mov ax, ds
- seg000:161E mov es, ax
- seg000:1620 pop ds
- seg000:1621 mov di, 0CB8h
- seg000:1624 mov cx, 100h
- seg000:1627 rep movsb
- seg000:1629 add si, 4
- seg000:162C mov bx, 0BB8h
- seg000:162F mov di, 7B8h
- seg000:1632 sub dx, dx
- seg000:1634
- seg000:1634 loc_1634: ; CODE XREF: sub_1615+76j
- seg000:1634 lodsb
- seg000:1635 mov es:[bx], al
- seg000:1638 inc bx
- seg000:1639 test ax, 1
- seg000:163C jz short loc_1680
- seg000:163E mov cx, 3
- seg000:1641
- seg000:1641 loc_1641: ; CODE XREF: sub_1615+34j
- seg000:1641 lodsb
- seg000:1642 sub ah, ah
- seg000:1644 shr al, 1
- seg000:1646 shr al, 1
- seg000:1648 stosb
- seg000:1649 loop loc_1641
- seg000:164B sub ah, ah
- seg000:164D mov al, es:[di-3]
- seg000:1651 and al, 38h
- seg000:1653 add ax, ax
- seg000:1655 add ax, ax
- seg000:1657 add ax, ax
- seg000:1659 mov cl, es:[di-2]
- seg000:165D and cl, 38h
- seg000:1660 or al, cl
- seg000:1662 mov cl, es:[di-1]
- seg000:1666 shr cl, 1
- seg000:1668 shr cl, 1
- seg000:166A shr cl, 1
- seg000:166C or al, cl
- seg000:166E push bx
- seg000:166F mov bx, ax
- seg000:1671 mov al, cs:[bx+3F6h]
- seg000:1676 mov bx, dx
- seg000:1678 mov cs:[bx+0AB8h], al
- seg000:167D pop bx
- seg000:167E jmp short loc_1686
- seg000:1680 ; ---------------------------------------------------------------------------
- seg000:1680
- seg000:1680 loc_1680: ; CODE XREF: sub_1615+27j
- seg000:1680 add si, 3
- seg000:1683 add di, 3
- seg000:1686
- seg000:1686 loc_1686: ; CODE XREF: sub_1615+69j
- seg000:1686 inc dx
- seg000:1687 cmp dx, 100h
- seg000:168B jnz short loc_1634
- seg000:168D pop bp
- seg000:168E pop ds
- seg000:168F pop di
- seg000:1690 pop si
- seg000:1691 pop ax
- seg000:1692 retn
- seg000:1692 sub_1615 endp
- seg000:1692
- seg000:1693
- seg000:1693 ; =============== S U B R O U T I N E =======================================
- seg000:1693
- seg000:1693
- seg000:1693 nullsub_1 proc near ; DATA XREF: seg000:0056o
- seg000:1693 retn
- seg000:1693 nullsub_1 endp
- seg000:1693
- seg000:1694
- seg000:1694 ; =============== S U B R O U T I N E =======================================
- seg000:1694
- seg000:1694
- seg000:1694 sub_1694 proc near ; CODE XREF: sub_F21+26p
- seg000:1694 ; sub_1351+20p ...
- seg000:1694 push bx
- seg000:1695 sub ax, ax
- seg000:1697 mov bx, cs:word_5F6
- seg000:169C sub bx, cs:word_5C
- seg000:16A1 jnb short loc_16A7
- seg000:16A3 sub ax, bx
- seg000:16A5 xor bx, bx
- seg000:16A7
- seg000:16A7 loc_16A7: ; CODE XREF: sub_1694+Dj
- seg000:16A7 mov cs:word_606, ax
- seg000:16AB mov cs:word_60A, bx
- seg000:16B0 sub ax, ax
- seg000:16B2 mov bx, cs:word_5F8
- seg000:16B7 sub bx, cs:word_5E
- seg000:16BC jnb short loc_16C2
- seg000:16BE sub ax, bx
- seg000:16C0 xor bx, bx
- seg000:16C2
- seg000:16C2 loc_16C2: ; CODE XREF: sub_1694+28j
- seg000:16C2 mov cs:word_608, ax
- seg000:16C6 mov cs:word_60C, bx
- seg000:16CB mov ax, cs:word_5F6
- seg000:16CF sub ax, cs:word_5C
- seg000:16D4 add ax, cs:word_58
- seg000:16D9 dec ax
- seg000:16DA cmp ax, 13Fh
- seg000:16DD jbe short loc_16E2
- seg000:16DF mov ax, 13Fh
- seg000:16E2
- seg000:16E2 loc_16E2: ; CODE XREF: sub_1694+49j
- seg000:16E2 mov cs:word_60E, ax
- seg000:16E6 mov ax, cs:word_5F8
- seg000:16EA sub ax, cs:word_5E
- seg000:16EF add ax, cs:word_5A
- seg000:16F4 dec ax
- seg000:16F5 cmp ax, 0C7h ; 'Ã'
- seg000:16F8 jbe short loc_16FD
- seg000:16FA mov ax, 0C7h ; 'Ã'
- seg000:16FD
- seg000:16FD loc_16FD: ; CODE XREF: sub_1694+64j
- seg000:16FD mov cs:word_610, ax
- seg000:1701 pop bx
- seg000:1702 retn
- seg000:1702 sub_1694 endp
- seg000:1702
- seg000:1703
- seg000:1703 ; =============== S U B R O U T I N E =======================================
- seg000:1703
- seg000:1703
- seg000:1703 sub_1703 proc near ; CODE XREF: sub_11F2+19p
- seg000:1703 ; sub_12AA+17p ...
- seg000:1703 mov dx, 3CEh
- seg000:1706 mov al, 5
- seg000:1708 out dx, al ; EGA: graph 1 and 2 addr reg:
- seg000:1708 ; mode register.Data bits:
- seg000:1708 ; 0-1: Write mode 0-2
- seg000:1708 ; 2: test condition
- seg000:1708 ; 3: read mode: 1=color compare, 0=direct
- seg000:1708 ; 4: 1=use odd/even RAM addressing
- seg000:1708 ; 5: 1=use CGA mid-res map (2-bits/pixel)
- seg000:1709 inc dx
- seg000:170A mov al, bh
- seg000:170C out dx, al ; EGA port: graphics controller data register
- seg000:170D retn
- seg000:170D sub_1703 endp
- seg000:170D
- seg000:170E
- seg000:170E ; =============== S U B R O U T I N E =======================================
- seg000:170E
- seg000:170E
- seg000:170E sub_170E proc near ; CODE XREF: sub_11F2+1Ep
- seg000:170E ; sub_12AA+1Cp ...
- seg000:170E mov dx, 3CEh
- seg000:1711 mov al, 3
- seg000:1713 out dx, al ; EGA: graph 1 and 2 addr reg:
- seg000:1713 ; data rotate and function select for write mode 00. Bits:
- seg000:1713 ; 0-2: set rotate count for write mode 00
- seg000:1713 ; 3-4: fn for write modes 00 and 02
- seg000:1713 ; 00=no change; 01=AND; 10=OR; 11=XOR
- seg000:1714 mov dx, 3CFh
- seg000:1717 mov al, bh
- seg000:1719 out dx, al ; EGA port: graphics controller data register
- seg000:171A retn
- seg000:171A sub_170E endp
- seg000:171A
- seg000:171B
- seg000:171B ; =============== S U B R O U T I N E =======================================
- seg000:171B
- seg000:171B
- seg000:171B sub_171B proc near ; CODE XREF: sub_11F2+21p
- seg000:171B ; sub_12AA+1Fp ...
- seg000:171B mov dx, 3CEh
- seg000:171E mov al, 8
- seg000:1720 out dx, al ; EGA: graph 1 and 2 addr reg:
- seg000:1720 ; bit mask
- seg000:1720 ; Bits 0-7 select bits to be masked in all planes
- seg000:1721 inc dx
- seg000:1722 retn
- seg000:1722 sub_171B endp
- seg000:1722
- seg000:1722 seg000 ends
- seg000:1722
- seg000:1722
- seg000:1722 end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement