PAGE 59,132
;██████████████████████████████████████████████████████████████████████████
;██ ██
;██ MARS ██
;██ ██
;██ Created: 16-Feb-94 ██
;██ Passes: 9 Analysis Options on: none ██
;██ ██
;██████████████████████████████████████████████████████████████████████████
target EQU 'M6' ; Target assembler: MASM-6.1
include srmacros.inc
; The following equates show data references outside the range of the program.
data_12e equ 351h ;*
data_13e equ 353h ;*
data_14e equ 355h ;*
data_15e equ 357h ;*
data_16e equ 359h ;*
data_17e equ 35Bh ;*
data_18e equ 35Dh ;*
data_19e equ 35Fh ;*
data_20e equ 364h ;*
data_21e equ 3A0h ;*
data_22e equ 7AAh ;*
data_23e equ 8100h ;*
data_24e equ 8200h ;*
data_25e equ 8300h ;*
data_26e equ 8400h ;*
data_27e equ 8500h ;*
data_28e equ 8600h ;*
data_29e equ 8700h ;*
data_30e equ 8800h ;*
data_31e equ 8900h ;*
data_32e equ 8A00h ;*
data_33e equ 8B00h ;*
data_34e equ 8C00h ;*
data_35e equ 8D00h ;*
data_36e equ 8E00h ;*
data_37e equ 8F00h ;*
data_38e equ 9000h ;*
data_39e equ 9100h ;*
data_40e equ 9200h ;*
data_41e equ 9300h ;*
data_42e equ 9400h ;*
data_43e equ 9500h ;*
data_44e equ 9600h ;*
data_45e equ 9700h ;*
data_46e equ 9800h ;*
data_47e equ 9900h ;*
data_48e equ 9A00h ;*
data_49e equ 9B00h ;*
data_50e equ 9C00h ;*
data_51e equ 9D00h ;*
data_52e equ 9E00h ;*
data_53e equ 9F00h ;*
data_54e equ 0A000h ;*
data_55e equ 0A100h ;*
data_56e equ 0A200h ;*
data_57e equ 0A300h ;*
data_58e equ 0A400h ;*
data_59e equ 0A500h ;*
data_60e equ 0A600h ;*
data_61e equ 0A700h ;*
data_62e equ 0A800h ;*
data_63e equ 0A900h ;*
data_64e equ 0AA00h ;*
data_65e equ 0AB00h ;*
data_66e equ 0AC00h ;*
data_67e equ 0AD00h ;*
data_68e equ 0AE00h ;*
data_69e equ 0AF00h ;*
data_70e equ 0B000h ;*
data_71e equ 0B100h ;*
data_72e equ 0B200h ;*
data_73e equ 0B300h ;*
data_74e equ 0B400h ;*
data_75e equ 0B500h ;*
data_76e equ 0B600h ;*
data_77e equ 0B700h ;*
data_78e equ 0B800h ;*
data_79e equ 0B900h ;*
data_80e equ 0BA00h ;*
data_81e equ 0BB00h ;*
data_82e equ 0BC00h ;*
data_83e equ 0BD00h ;*
data_84e equ 0BE00h ;*
data_85e equ 0BF00h ;*
data_86e equ 0C000h ;*
data_87e equ 0C100h ;*
data_88e equ 0C200h ;*
data_89e equ 0C300h ;*
data_90e equ 0C400h ;*
data_91e equ 0C500h ;*
data_92e equ 0C600h ;*
data_93e equ 0C700h ;*
data_94e equ 0C800h ;*
data_95e equ 0C900h ;*
data_96e equ 0CA00h ;*
data_97e equ 0CB00h ;*
data_98e equ 0CC00h ;*
data_99e equ 0CD00h ;*
data_100e equ 0CE00h ;*
data_101e equ 0CF00h ;*
data_102e equ 0D000h ;*
data_103e equ 0D100h ;*
data_104e equ 0D200h ;*
data_105e equ 0D300h ;*
data_106e equ 0D400h ;*
data_107e equ 0D500h ;*
data_108e equ 0D600h ;*
data_109e equ 0D700h ;*
data_110e equ 0D800h ;*
data_111e equ 0D900h ;*
data_112e equ 0DA00h ;*
data_113e equ 0DB00h ;*
data_114e equ 0DC00h ;*
data_115e equ 0DD00h ;*
data_116e equ 0DE00h ;*
data_117e equ 0DF00h ;*
data_118e equ 0E000h ;*
data_119e equ 0E100h ;*
data_120e equ 0E200h ;*
data_121e equ 0E300h ;*
data_122e equ 0E400h ;*
data_123e equ 0E500h ;*
data_124e equ 0E600h ;*
data_125e equ 0E700h ;*
data_126e equ 0E800h ;*
data_127e equ 0E900h ;*
data_128e equ 0EA00h ;*
data_129e equ 0EB00h ;*
data_130e equ 0EC00h ;*
data_131e equ 0ED00h ;*
data_132e equ 0EE00h ;*
data_133e equ 0EF00h ;*
data_134e equ 0F000h ;*
data_135e equ 0F100h ;*
data_136e equ 0F200h ;*
data_137e equ 0F300h ;*
data_138e equ 0F400h ;*
data_139e equ 0F500h ;*
data_140e equ 0F600h ;*
data_141e equ 0F700h ;*
data_142e equ 0F800h ;*
data_143e equ 0F900h ;*
data_144e equ 0FA00h ;*
data_145e equ 0FB00h ;*
data_146e equ 0FC00h ;*
data_147e equ 0FD00h ;*
data_148e equ 0FE00h ;*
data_149e equ 0FF00h ;*
;------------------------------------------------------------ seg_a ----
seg_a segment byte public
assume cs:seg_a , ds:seg_b
;██████████████████████████████████████████████████████████████████████████
;
; Program Entry Point
;
;██████████████████████████████████████████████████████████████████████████
mars proc far
start::
mov ax,seg_b
mov ds,ax
mov es,ax
cld ; Clear direction
xor ah,ah ; Zero register
int 1Ah ; Real time clock ah=func 00h
; get system timer count cx,dx
and dh,7Fh
mov ds:data_18e,dx
mov ax,13h
int 10h ; Video display ah=functn 00h
; set display mode in al
xor ax,ax ; Zero register
int 33h ; Mouse driver ax=func 0000h
; installed?, ax=0 no, =-1 yes
; bx=number of mouse buttons
;* cmp ax,0FFFFh
db 3Dh,0FFh,0FFh ; Fixup - byte match
;* pop cs ; Dangerous-8088 only
db 0Fh ; Fixup - byte match
xchg sp,ax
push es
pop bx
add di,ss:data_6[bp]
cli ; Disable interrupts
mov dx,3C8h
xor al,al ; Zero register
out dx,al ; port 3C8h, VGA pel address
inc dx
mov cx,300h
db 0F3h, 6Eh,0FBh, 8Eh, 26h, 3Dh
db 03h, 64h,0C6h, 06h,0FFh,0F9h
db 60h, 64h,0C6h, 06h,0FEh,0F9h
db 60h, 64h,0C6h, 06h,0FDh,0F9h
db 60h, 64h,0C6h, 06h,0BDh,0F8h
db 60h, 64h,0C6h, 06h, 7Dh,0F7h
db 60h, 64h,0C6h, 06h, 7Eh,0F7h
db 60h, 64h,0C6h, 06h, 7Fh,0F7h
db 60h, 64h,0C6h, 06h, 7Bh,0F7h
db 60h, 64h,0C6h, 06h, 7Ah,0F7h
db 60h, 64h,0C6h, 06h, 79h,0F7h
db 60h, 64h,0C6h, 06h,0BAh,0F8h
db 60h, 64h,0C6h, 06h,0FAh,0F9h
db 60h, 64h,0C6h, 06h,0F9h,0F9h
db 60h, 64h,0C6h, 06h, 77h,0F7h
db 60h, 64h,0C6h, 06h, 76h,0F7h
db 60h, 64h,0C6h, 06h, 75h,0F7h
db 60h, 64h,0C6h, 06h,0B6h,0F8h
db 60h, 64h,0C6h, 06h,0F6h,0F9h
db 60h,0E8h, 4Bh, 00h,0E8h,0A8h
db 00h,0C6h, 06h, 5Fh, 03h, 00h
db 0C7h, 06h, 51h, 03h,0E8h, 03h
db 0C7h, 06h, 53h, 03h,0E8h, 03h
db 0E8h, 49h, 03h,0E8h, 97h, 03h
db 0E8h, 5Ah, 09h,0BEh,0AAh, 07h
db 8Eh, 06h, 3Dh, 03h,0BFh, 20h
db 00h,0B3h,0C8h,0B9h, 40h, 00h
db 0F3h, 66h,0A5h, 83h,0C7h, 40h
db 0FEh,0CBh, 75h,0F3h, 8Eh, 06h
db 45h, 03h, 80h, 3Eh, 5Fh, 03h
db 00h, 74h,0D3h,0B8h, 03h, 00h
db 0CDh, 10h,0B8h, 00h, 4Ch,0CDh
db 21h, 8Eh, 06h, 4Bh, 03h, 33h
db 0FFh, 66h,0B8h,0FFh,0FFh,0FFh
db 0FFh,0B9h, 00h, 40h,0F3h, 66h
db 0ABh,0B8h,0ABh, 00h,0F7h, 26h
db 5Dh, 03h, 05h,0CDh, 2Bh, 83h
db 0D2h, 00h,0F7h, 36h, 4Dh, 03h
db 89h, 16h, 5Dh, 03h, 8Bh,0F2h
db 26h,0C6h, 06h, 00h, 00h, 00h
db 26h,0C6h, 06h, 80h, 00h,0FEh
db 26h,0C6h, 06h, 00h, 80h,0FEh
db 26h,0C6h, 06h, 80h, 80h, 00h
db 6Ah, 00h, 68h, 00h, 01h,0E8h
db 0DDh, 00h, 83h,0C4h, 04h, 33h
db 0FFh, 26h, 8Ah, 05h,0C0h,0E8h
db 03h, 04h, 40h,0AAh, 0Bh,0FFh
db 75h,0F3h, 8Eh, 06h, 45h, 03h
db 0C3h, 8Eh, 06h, 47h, 03h, 8Eh
db 26h, 49h, 03h, 33h,0FFh, 66h
db 0B8h,0FFh,0FFh,0FFh,0FFh,0B9h
db 00h, 40h,0F3h, 66h,0ABh,0B8h
db 0ABh, 00h,0F7h, 26h, 5Dh, 03h
db 05h,0CDh, 2Bh, 83h,0D2h, 00h
db 0F7h, 36h, 4Dh, 03h, 89h, 16h
db 5Dh, 03h, 8Bh,0F2h, 26h,0C6h
db 06h, 00h, 00h, 80h, 6Ah, 00h
db 68h, 00h, 01h,0E8h, 8Bh, 00h
db 83h,0C4h, 04h, 33h,0F6h, 8Bh
db 3Eh, 4Fh, 03h,0C1h,0E7h, 04h
db 8Bh, 9Dh, 1Fh, 03h, 26h, 8Ah
db 00h, 32h,0E4h, 8Bh, 9Dh, 21h
db 03h, 26h, 02h, 00h, 80h,0D4h
db 00h, 8Bh, 9Dh, 23h, 03h, 26h
db 02h, 00h, 80h,0D4h, 00h, 8Bh
db 9Dh, 25h, 03h, 26h, 02h, 00h
db 80h,0D4h, 00h,0C1h,0E8h, 02h
db 26h, 88h, 04h, 46h, 75h,0D0h
db 33h,0F6h, 26h, 8Ah, 04h, 32h
db 0E4h, 26h, 2Ah, 44h, 03h, 80h
db 0DCh, 00h, 05h, 20h, 00h, 79h
db 02h, 33h,0C0h
loc_1::
;* cmp ax,3Fh
db 3Dh, 3Fh, 00h ; Fixup - byte match
jbe $+5 ; Jump if below or =
mov ax,3Fh
db 64h, 88h, 04h, 46h, 75h,0DFh
db 33h,0F6h, 26h, 8Ah, 04h, 32h
db 0E4h, 26h, 02h, 44h, 01h, 80h
db 0D4h, 00h, 26h, 02h, 84h, 00h
db 01h, 80h,0D4h, 00h, 26h, 02h
db 84h, 01h, 01h, 80h,0D4h, 00h
db 0C1h,0E8h, 02h, 26h, 88h, 04h
db 46h, 75h,0DBh, 8Eh, 06h, 45h
db 03h,0C3h
mars endp
;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
; SUBROUTINE
;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
sub_1 proc near
mov bp,sp
mov bx,[bp+4]
mov cx,[bp+2]
shr cx,1 ; Shift w/zeros fill
mov dl,es:[bx]
add bl,cl
mov di,bx
add bl,cl
cmp byte ptr es:[di],0FFh
jne $+46h ; Jump if not equal
xor dh,dh ; Zero register
add dl,es:[bx]
adc dh,0
shr dx,1 ; Shift w/zeros fill
mov ch,dl
mov ax,0ABh
mul si ; dx:ax = reg * ax
add ax,2BCDh
adc dx,0
div word ptr ds:[34Dh] ; ax,dxrem=dx:ax/data
mov si,dx
sub dx,67C2h
mov al,cl
xor ah,ah ; Zero register
imul dx ; dx:ax = reg * ax
mov al,ah
mov ah,dl
db 0C1h,0F8h, 05h, 98h, 02h,0C5h
db 80h,0D4h, 00h, 78h, 09h, 3Dh
db 0FEh, 00h, 76h, 06h,0B0h,0FEh
db 0EBh, 02h, 32h,0C0h, 26h, 88h
db 05h, 26h, 8Ah, 17h, 02h,0F9h
db 8Bh,0FBh, 02h,0F9h, 26h, 80h
db 3Dh,0FFh, 75h, 44h, 32h,0F6h
db 26h, 02h, 17h, 80h,0D6h, 00h
db 0D1h,0EAh, 8Ah,0EAh,0B8h,0ABh
db 00h,0F7h,0E6h, 05h,0CDh, 2Bh
db 83h,0D2h, 00h,0F7h, 36h, 4Dh
db 03h, 8Bh,0F2h, 81h,0EAh,0C2h
db 67h, 8Ah,0C1h, 32h,0E4h,0F7h
db 0EAh, 8Ah,0C4h, 8Ah,0E2h,0C1h
db 0F8h, 05h, 98h, 02h,0C5h, 80h
db 0D4h, 00h, 78h, 09h, 3Dh,0FEh
db 00h, 76h, 06h,0B0h,0FEh,0EBh
db 02h, 32h,0C0h, 26h, 88h, 05h
db 26h, 8Ah, 17h, 2Ah,0D9h, 8Bh
db 0FBh, 2Ah,0D9h, 26h, 80h, 3Dh
db 0FFh, 75h, 44h, 32h,0F6h, 26h
db 02h, 17h, 80h,0D6h, 00h,0D1h
db 0EAh, 8Ah,0EAh,0B8h,0ABh, 00h
db 0F7h,0E6h, 05h,0CDh, 2Bh, 83h
db 0D2h, 00h,0F7h, 36h, 4Dh, 03h
db 8Bh,0F2h, 81h,0EAh,0C2h, 67h
db 8Ah,0C1h, 32h,0E4h,0F7h,0EAh
db 8Ah,0C4h, 8Ah,0E2h,0C1h,0F8h
db 05h, 98h, 02h,0C5h, 80h,0D4h
db 00h, 78h, 09h, 3Dh,0FEh, 00h
db 76h, 06h,0B0h,0FEh,0EBh, 02h
db 32h,0C0h, 26h, 88h, 05h, 26h
db 8Ah, 17h, 2Ah,0F9h, 8Bh,0FBh
db 2Ah,0F9h, 26h, 80h, 3Dh,0FFh
db 75h, 44h, 32h,0F6h, 26h, 02h
db 17h, 80h,0D6h, 00h,0D1h,0EAh
db 8Ah,0EAh,0B8h,0ABh, 00h,0F7h
db 0E6h, 05h,0CDh, 2Bh, 83h,0D2h
db 00h,0F7h, 36h, 4Dh, 03h, 8Bh
db 0F2h, 81h,0EAh,0C2h, 67h, 8Ah
db 0C1h, 32h,0E4h,0F7h,0EAh, 8Ah
db 0C4h, 8Ah,0E2h,0C1h,0F8h, 05h
db 98h, 02h,0C5h, 80h,0D4h, 00h
db 78h, 09h, 3Dh,0FEh, 00h, 76h
db 06h,0B0h,0FEh,0EBh, 02h, 32h
db 0C0h, 26h, 88h, 05h, 26h, 8Ah
db 17h, 32h,0F6h, 02h,0D9h, 02h
db 0D9h, 26h, 02h, 17h, 80h,0D6h
db 00h, 02h,0F9h, 02h,0F9h, 26h
db 02h, 17h, 80h,0D6h, 00h, 2Ah
db 0D9h, 2Ah,0D9h, 26h, 02h, 17h
db 80h,0D6h, 00h,0C1h,0EAh, 02h
db 8Ah,0EAh,0B8h,0ABh, 00h,0F7h
db 0E6h, 05h,0CDh, 2Bh, 83h,0D2h
db 00h,0F7h, 36h, 4Dh, 03h, 8Bh
db 0F2h, 81h,0EAh,0C2h, 67h, 8Ah
db 0C1h, 32h,0E4h,0F7h,0EAh, 8Ah
db 0C4h, 8Ah,0E2h,0C1h,0F8h, 05h
db 98h, 02h,0C5h, 80h,0D4h, 00h
db 78h, 09h, 3Dh,0FEh, 00h, 76h
db 06h,0B0h,0FEh,0EBh, 02h, 32h
db 0C0h, 02h,0D9h, 2Ah,0F9h, 26h
db 88h, 07h, 80h,0F9h, 01h, 74h
db 2Fh, 32h,0EDh, 2Ah,0D9h, 2Ah
db 0F9h, 53h, 51h,0E8h, 36h,0FEh
db 8Bh,0ECh, 8Ah, 4Eh, 00h, 00h
db 4Eh, 02h,0E8h, 2Bh,0FEh, 8Bh
db 0ECh, 8Ah, 4Eh, 00h, 00h, 4Eh
db 03h,0E8h, 20h,0FEh, 8Bh,0ECh
db 8Ah, 4Eh, 00h, 28h, 4Eh, 02h
db 0E8h, 15h,0FEh, 83h,0C4h, 04h
loc_ret_2::
retn
sub_1 endp
;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
; SUBROUTINE
;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
sub_2 proc near
xor cx,cx ; Zero register
xor dx,dx ; Zero register
xor ax,ax ; Zero register
cmp byte ptr ds:data_17e,0
je loc_3 ; Jump if equal
mov ax,0Bh
int 33h ; Mouse driver ax=func 000Bh
; read motion counters, cx & dx
push cx
push dx
mov ax,5
int 33h ; Mouse driver ax=func 0005h
; get button bx status in ax
; bx=count, cx=horiz, dx=vert
pop dx
pop cx
loc_3::
add ds:data_12e,cx
sub ds:data_13e,dx
mov cx,ds:data_12e
mov dx,ds:data_13e
mov ds:data_14e,cx
mov ds:data_15e,dx
call sub_5
add ah,19h
jnc loc_4 ; Jump if carry=0
mov ax,0FFFFh
loc_4::
mov ds:data_16e,ax
mov ah,1
int 16h ; Keyboard i/o ah=function 01h
; get status, if zf=0 al=char
jz loc_ret_5 ; Jump if zero
mov byte ptr ds:data_19e,1
xor ah,ah ; Zero register
int 16h ; Keyboard i/o ah=function 00h
; get keybd char in al, ah=scan
loc_ret_5::
retn
sub_2 endp
;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
; SUBROUTINE
;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
sub_3 proc near
mov di,data_22e
db 66h,0B9h, 63h, 00h, 00h, 00h
db 66h, 33h,0C0h,0A1h, 59h, 03h
db 0F7h,0D8h,0C1h,0E8h, 03h, 05h
db 00h, 40h, 66h,0C1h,0E0h, 0Dh
db 66h,0A3h, 60h, 03h, 66h, 33h
db 0C0h,0A1h, 55h, 03h, 66h,0C1h
db 0E0h, 09h, 66h,0A3h, 64h, 03h
db 66h, 33h,0C0h,0A1h, 57h, 03h
db 66h,0C1h,0E0h, 09h, 66h,0A3h
db 68h, 03h, 1Eh, 8Eh, 2Eh, 45h
db 03h, 8Eh, 1Eh, 4Bh, 03h, 66h
db 65h,0A1h, 60h, 03h, 66h, 33h
db 0D2h, 66h,0F7h,0F1h, 66h, 65h
db 8Bh, 36h, 64h, 03h, 66h, 65h
db 8Bh, 2Eh, 68h, 03h, 66h, 2Bh
db 0F0h, 66h, 03h,0E8h, 66h,0C1h
db 0E8h, 07h, 8Bh,0DEh, 66h,0C1h
db 0EEh, 10h, 81h,0E6h,0FFh, 00h
db 66h,0C1h,0EDh, 08h, 81h,0E5h
db 00h,0FFh, 0Bh,0F5h, 66h, 8Bh
db 0E8h, 66h,0C1h,0EDh, 10h, 4Dh
db 0A4h, 03h,0D8h, 13h,0F5h,0A4h
db 03h,0D8h, 13h,0F5h,0A4h, 03h
db 0D8h, 13h,0F5h,0A4h, 03h,0D8h
db 13h,0F5h,0A4h, 03h,0D8h, 13h
db 0F5h,0A4h, 03h,0D8h, 13h,0F5h
db 0A4h, 03h,0D8h, 13h,0F5h,0A4h
db 03h,0D8h, 13h,0F5h,0A4h, 03h
db 0D8h, 13h,0F5h,0A4h, 03h,0D8h
db 13h,0F5h,0A4h, 03h,0D8h, 13h
db 0F5h,0A4h, 03h,0D8h, 13h,0F5h
db 0A4h, 03h,0D8h, 13h,0F5h,0A4h
db 03h,0D8h, 13h,0F5h,0A4h, 03h
db 0D8h, 13h,0F5h,0A4h, 03h,0D8h
db 13h,0F5h,0A4h, 03h,0D8h, 13h
db 0F5h,0A4h, 03h,0D8h, 13h,0F5h
db 0A4h, 03h,0D8h, 13h,0F5h,0A4h
db 03h,0D8h, 13h,0F5h,0A4h, 03h
db 0D8h, 13h,0F5h,0A4h, 03h,0D8h
db 13h,0F5h,0A4h, 03h,0D8h, 13h
db 0F5h,0A4h, 03h,0D8h, 13h,0F5h
db 0A4h, 03h,0D8h, 13h,0F5h,0A4h
db 03h,0D8h, 13h,0F5h,0A4h, 03h
db 0D8h, 13h,0F5h,0A4h, 03h,0D8h
db 13h,0F5h,0A4h, 03h,0D8h, 13h
db 0F5h,0A4h, 03h,0D8h, 13h,0F5h
db 0A4h, 03h,0D8h, 13h,0F5h,0A4h
db 03h,0D8h, 13h,0F5h,0A4h, 03h
db 0D8h, 13h,0F5h,0A4h, 03h,0D8h
db 13h,0F5h,0A4h, 03h,0D8h, 13h
db 0F5h,0A4h, 03h,0D8h, 13h,0F5h
db 0A4h, 03h,0D8h, 13h,0F5h,0A4h
db 03h,0D8h, 13h,0F5h,0A4h, 03h
db 0D8h, 13h,0F5h,0A4h, 03h,0D8h
db 13h,0F5h,0A4h, 03h,0D8h, 13h
db 0F5h,0A4h, 03h,0D8h, 13h,0F5h
db 0A4h, 03h,0D8h, 13h,0F5h,0A4h
db 03h,0D8h, 13h,0F5h,0A4h, 03h
db 0D8h, 13h,0F5h,0A4h, 03h,0D8h
db 13h,0F5h,0A4h, 03h,0D8h, 13h
db 0F5h,0A4h, 03h,0D8h, 13h,0F5h
db 0A4h, 03h,0D8h, 13h,0F5h,0A4h
db 03h,0D8h, 13h,0F5h,0A4h, 03h
db 0D8h, 13h,0F5h,0A4h, 03h,0D8h
db 13h,0F5h,0A4h, 03h,0D8h, 13h
db 0F5h,0A4h, 03h,0D8h, 13h,0F5h
db 0A4h, 03h,0D8h, 13h,0F5h,0A4h
db 03h,0D8h, 13h,0F5h,0A4h, 03h
db 0D8h, 13h,0F5h,0A4h, 03h,0D8h
db 13h,0F5h,0A4h, 03h,0D8h, 13h
db 0F5h,0A4h, 03h,0D8h, 13h,0F5h
db 0A4h, 03h,0D8h, 13h,0F5h,0A4h
db 03h,0D8h, 13h,0F5h,0A4h, 03h
db 0D8h, 13h,0F5h,0A4h, 03h,0D8h
db 13h,0F5h,0A4h, 03h,0D8h, 13h
db 0F5h,0A4h, 03h,0D8h, 13h,0F5h
db 0A4h, 03h,0D8h, 13h,0F5h,0A4h
db 03h,0D8h, 13h,0F5h,0A4h, 03h
db 0D8h, 13h,0F5h,0A4h, 03h,0D8h
db 13h,0F5h,0A4h, 03h,0D8h, 13h
db 0F5h,0A4h, 03h,0D8h, 13h,0F5h
db 0A4h, 03h,0D8h, 13h,0F5h,0A4h
db 03h,0D8h, 13h,0F5h,0A4h, 03h
db 0D8h, 13h,0F5h,0A4h, 03h,0D8h
db 13h,0F5h,0A4h, 03h,0D8h, 13h
db 0F5h,0A4h, 03h,0D8h, 13h,0F5h
db 0A4h, 03h,0D8h, 13h,0F5h,0A4h
db 03h,0D8h, 13h,0F5h,0A4h, 03h
db 0D8h, 13h,0F5h,0A4h, 03h,0D8h
db 13h,0F5h,0A4h, 03h,0D8h, 13h
db 0F5h,0A4h, 03h,0D8h, 13h,0F5h
db 0A4h, 03h,0D8h, 13h,0F5h,0A4h
db 03h,0D8h, 13h,0F5h,0A4h, 03h
db 0D8h, 13h,0F5h,0A4h, 03h,0D8h
db 13h,0F5h,0A4h, 03h,0D8h, 13h
db 0F5h,0A4h, 03h,0D8h, 13h,0F5h
db 0A4h, 03h,0D8h, 13h,0F5h,0A4h
db 03h,0D8h, 13h,0F5h,0A4h, 03h
db 0D8h, 13h,0F5h,0A4h, 03h,0D8h
db 13h,0F5h,0A4h, 03h,0D8h, 13h
db 0F5h,0A4h, 03h,0D8h, 13h,0F5h
db 0A4h, 03h,0D8h, 13h,0F5h,0A4h
db 03h,0D8h, 13h,0F5h,0A4h, 03h
db 0D8h, 13h,0F5h,0A4h, 03h,0D8h
db 13h,0F5h,0A4h, 03h,0D8h, 13h
db 0F5h,0A4h, 03h,0D8h, 13h,0F5h
db 0A4h, 03h,0D8h, 13h,0F5h,0A4h
db 03h,0D8h, 13h,0F5h,0A4h, 03h
db 0D8h, 13h,0F5h,0A4h, 03h,0D8h
db 13h,0F5h,0A4h, 03h,0D8h, 13h
db 0F5h,0A4h, 03h,0D8h, 13h,0F5h
db 0A4h, 03h,0D8h, 13h,0F5h,0A4h
db 03h,0D8h, 13h,0F5h,0A4h, 03h
db 0D8h, 13h,0F5h,0A4h, 03h,0D8h
db 13h,0F5h,0A4h, 03h,0D8h, 13h
db 0F5h,0A4h, 03h,0D8h, 13h,0F5h
db 0A4h, 03h,0D8h, 13h,0F5h,0A4h
db 03h,0D8h, 13h,0F5h,0A4h, 03h
db 0D8h, 13h,0F5h,0A4h, 03h,0D8h
db 13h,0F5h,0A4h, 03h,0D8h, 13h
db 0F5h,0A4h, 03h,0D8h, 13h,0F5h
db 0A4h, 03h,0D8h, 13h,0F5h,0A4h
db 03h,0D8h, 13h,0F5h,0A4h, 03h
db 0D8h, 13h,0F5h,0A4h, 03h,0D8h
db 13h,0F5h,0A4h, 03h,0D8h, 13h
db 0F5h,0A4h, 03h,0D8h, 13h,0F5h
db 0A4h, 03h,0D8h, 13h,0F5h,0A4h
db 03h,0D8h, 13h,0F5h,0A4h, 03h
db 0D8h, 13h,0F5h,0A4h, 03h,0D8h
db 13h,0F5h,0A4h, 03h,0D8h, 13h
db 0F5h,0A4h, 03h,0D8h, 13h,0F5h
db 0A4h, 03h,0D8h, 13h,0F5h,0A4h
db 03h,0D8h, 13h,0F5h,0A4h, 03h
db 0D8h, 13h,0F5h,0A4h, 03h,0D8h
db 13h,0F5h,0A4h, 03h,0D8h, 13h
db 0F5h,0A4h, 03h,0D8h, 13h,0F5h
db 0A4h, 03h,0D8h, 13h,0F5h,0A4h
db 03h,0D8h, 13h,0F5h,0A4h, 03h
db 0D8h, 13h,0F5h,0A4h, 03h,0D8h
db 13h,0F5h,0A4h, 03h,0D8h, 13h
db 0F5h,0A4h, 03h,0D8h, 13h,0F5h
db 0A4h, 03h,0D8h, 13h,0F5h,0A4h
db 03h,0D8h, 13h,0F5h,0A4h, 03h
db 0D8h, 13h,0F5h,0A4h, 03h,0D8h
db 13h,0F5h,0A4h, 03h,0D8h, 13h
db 0F5h,0A4h, 03h,0D8h, 13h,0F5h
db 0A4h, 03h,0D8h, 13h,0F5h,0A4h
db 03h,0D8h, 13h,0F5h,0A4h, 03h
db 0D8h, 13h,0F5h,0A4h, 03h,0D8h
db 13h,0F5h,0A4h, 03h,0D8h, 13h
db 0F5h,0A4h, 03h,0D8h, 13h,0F5h
db 0A4h, 03h,0D8h, 13h,0F5h,0A4h
db 03h,0D8h, 13h,0F5h,0A4h, 03h
db 0D8h, 13h,0F5h,0A4h, 03h,0D8h
db 13h,0F5h,0A4h, 03h,0D8h, 13h
db 0F5h,0A4h, 03h,0D8h, 13h,0F5h
db 0A4h, 03h,0D8h, 13h,0F5h,0A4h
db 03h,0D8h, 13h,0F5h,0A4h, 03h
db 0D8h, 13h,0F5h,0A4h, 03h,0D8h
db 13h,0F5h,0A4h, 03h,0D8h, 13h
db 0F5h,0A4h, 03h,0D8h, 13h,0F5h
db 0A4h, 03h,0D8h, 13h,0F5h,0A4h
db 03h,0D8h, 13h,0F5h,0A4h, 03h
db 0D8h, 13h,0F5h,0A4h, 03h,0D8h
db 13h,0F5h,0A4h, 03h,0D8h, 13h
db 0F5h,0A4h, 03h,0D8h, 13h,0F5h
db 0A4h, 03h,0D8h, 13h,0F5h,0A4h
db 03h,0D8h, 13h,0F5h,0A4h, 03h
db 0D8h, 13h,0F5h,0A4h, 03h,0D8h
db 13h,0F5h,0A4h, 03h,0D8h, 13h
db 0F5h,0A4h, 03h,0D8h, 13h,0F5h
db 0A4h, 03h,0D8h, 13h,0F5h,0A4h
db 03h,0D8h, 13h,0F5h,0A4h, 03h
db 0D8h, 13h,0F5h,0A4h, 03h,0D8h
db 13h,0F5h,0A4h, 03h,0D8h, 13h
db 0F5h,0A4h, 03h,0D8h, 13h,0F5h
db 0A4h, 03h,0D8h, 13h,0F5h,0A4h
db 03h,0D8h, 13h,0F5h,0A4h, 03h
db 0D8h, 13h,0F5h,0A4h, 03h,0D8h
db 13h,0F5h,0A4h, 03h,0D8h, 13h
db 0F5h,0A4h, 03h,0D8h, 13h,0F5h
db 0A4h, 03h,0D8h, 13h,0F5h,0A4h
db 03h,0D8h, 13h,0F5h,0A4h, 03h
db 0D8h, 13h,0F5h,0A4h, 03h,0D8h
db 13h,0F5h,0A4h, 03h,0D8h, 13h
db 0F5h,0A4h, 03h,0D8h, 13h,0F5h
db 0A4h, 03h,0D8h, 13h,0F5h,0A4h
db 03h,0D8h, 13h,0F5h,0A4h, 03h
db 0D8h, 13h,0F5h,0A4h, 03h,0D8h
db 13h,0F5h,0A4h, 03h,0D8h, 13h
db 0F5h,0A4h, 03h,0D8h, 13h,0F5h
db 0A4h, 03h,0D8h, 13h,0F5h,0A4h
db 03h,0D8h, 13h,0F5h,0A4h, 03h
db 0D8h, 13h,0F5h,0A4h, 03h,0D8h
db 13h,0F5h,0A4h, 03h,0D8h, 13h
db 0F5h,0A4h, 03h,0D8h, 13h,0F5h
db 0A4h, 03h,0D8h, 13h,0F5h,0A4h
db 03h,0D8h, 13h,0F5h,0A4h, 03h
db 0D8h, 13h,0F5h,0A4h, 03h,0D8h
db 13h,0F5h,0A4h, 03h,0D8h, 13h
db 0F5h,0A4h, 03h,0D8h, 13h,0F5h
db 0A4h, 03h,0D8h, 13h,0F5h,0A4h
db 03h,0D8h, 13h,0F5h,0A4h, 03h
db 0D8h, 13h,0F5h,0A4h, 03h,0D8h
db 13h,0F5h,0A4h, 03h,0D8h, 13h
db 0F5h,0A4h, 03h,0D8h, 13h,0F5h
db 0A4h, 03h,0D8h, 13h,0F5h,0A4h
db 03h,0D8h, 13h,0F5h,0A4h, 03h
db 0D8h, 13h,0F5h,0A4h, 03h,0D8h
db 13h,0F5h,0A4h, 03h,0D8h, 13h
db 0F5h,0A4h, 03h,0D8h, 13h,0F5h
db 0A4h, 03h,0D8h, 13h,0F5h,0A4h
db 03h,0D8h, 13h,0F5h,0A4h, 03h
db 0D8h, 13h,0F5h,0A4h, 03h,0D8h
db 13h,0F5h,0A4h, 03h,0D8h, 13h
db 0F5h,0A4h, 03h,0D8h, 13h,0F5h
db 0A4h, 03h,0D8h, 13h,0F5h,0A4h
db 03h,0D8h, 13h,0F5h,0A4h, 03h
db 0D8h, 13h,0F5h,0A4h, 03h,0D8h
db 13h,0F5h,0A4h, 03h,0D8h, 13h
db 0F5h,0A4h, 03h,0D8h, 13h,0F5h
db 0A4h, 03h,0D8h, 13h,0F5h,0A4h
db 03h,0D8h, 13h,0F5h,0A4h, 03h
db 0D8h, 13h,0F5h,0A4h, 03h,0D8h
db 13h,0F5h,0A4h, 03h,0D8h, 13h
db 0F5h,0A4h, 03h,0D8h, 13h,0F5h
db 0A4h, 03h,0D8h, 13h,0F5h,0A4h
db 03h,0D8h, 13h,0F5h,0A4h, 03h
db 0D8h, 13h,0F5h,0A4h, 03h,0D8h
db 13h,0F5h,0A4h, 03h,0D8h, 13h
db 0F5h,0A4h, 03h,0D8h, 13h,0F5h
db 0A4h, 03h,0D8h, 13h,0F5h,0A4h
db 03h,0D8h, 13h,0F5h,0A4h, 03h
db 0D8h, 13h,0F5h,0A4h,0FEh,0C9h
db 0Fh, 85h,0C1h,0FAh, 1Fh, 66h
db 0B8h, 50h, 50h, 50h, 50h,0B9h
db 40h, 00h,0F3h, 66h,0ABh, 8Bh
db 36h, 59h, 03h,0D1h,0EEh, 83h
db 0C6h, 0Ah,0BBh, 04h, 00h, 8Bh
db 0C6h, 33h,0D2h,0F7h,0F3h,0C1h
db 0E8h, 07h, 3Dh, 3Fh, 00h, 76h
db 02h,0B0h, 3Fh, 8Ah,0E0h, 8Ah
db 0D0h, 66h,0C1h,0E0h, 10h, 8Ah
db 0C2h, 8Ah,0E0h,0B9h, 40h, 00h
db 0F3h, 66h,0ABh,0FEh,0C3h, 80h
db 0FBh, 2Ch, 75h,0D7h,0C3h
;▀▀▀▀ External Entry into Subroutine ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
sub_4::
db 8Eh, 26h, 47h, 03h, 8Eh, 2Eh
db 49h, 03h, 66h,0B8h, 00h, 7Dh
db 00h, 7Dh,0BFh,0AAh, 03h,0B9h
db 80h, 00h,0F3h, 66h,0ABh, 66h
db 33h,0C0h,0BFh,0AAh, 05h,0B9h
db 80h, 00h,0F3h, 66h,0ABh,0C7h
db 06h,0A0h, 03h, 78h, 00h, 8Bh
db 36h,0A0h, 03h, 8Bh,0B4h, 90h
db 01h,0C1h,0E6h, 04h,0A1h, 57h
db 03h, 25h, 0Fh, 00h, 34h, 0Fh
db 03h,0F0h,0A1h, 59h, 03h, 33h
db 0D2h,0F7h,0F6h, 05h, 64h, 00h
db 0A3h,0A2h, 03h, 66h, 33h,0C0h
db 8Bh,0C6h, 66h,0C1h,0E0h, 06h
db 66h,0A3h,0A6h, 03h, 83h, 3Eh
db 0A0h, 03h, 02h, 75h, 0Eh,0C7h
db 06h,0A2h, 03h, 00h, 7Dh,0C7h
db 06h,0A4h, 03h, 00h, 00h,0EBh
db 0Ah, 33h,0C0h,0BAh, 01h, 00h
db 0F7h,0F6h,0A3h,0A4h, 03h, 66h
db 33h,0C9h, 8Bh, 0Eh, 55h, 03h
db 66h,0C1h,0E1h, 0Ch, 66h,0A1h
db 0A6h, 03h, 66h,0C1h,0E0h, 07h
db 66h, 2Bh,0C8h, 8Bh, 16h, 57h
db 03h,0C1h,0E2h, 04h, 66h, 8Bh
db 0D9h, 66h,0C1h,0EBh, 10h, 8Ah
db 0FEh, 8Bh,0C6h,0C1h,0E8h, 04h
db 02h,0F8h,0D1h,0E9h,0BEh,0FEh
db 01h,0C7h, 06h, 64h, 03h,0AAh
db 07h,0D1h,0E1h, 03h, 0Eh,0A6h
db 03h, 12h, 1Eh,0A8h, 03h,0D1h
db 0E9h, 64h, 8Ah, 47h, 01h, 32h
db 0E4h, 64h, 2Ah, 07h, 80h,0DCh
db 00h,0F7h,0E9h, 0Fh,0ACh,0D0h
db 07h, 64h, 02h, 27h,0F7h, 26h
db 0A4h, 03h, 8Bh, 3Eh,0A2h, 03h
db 2Bh,0FAh, 79h, 03h,0BFh,0FFh
db 0FFh, 81h,0FFh,0C8h, 00h, 7Ch
db 03h,0BFh,0C7h, 00h, 8Bh,0ACh
db 0AAh, 03h, 89h,0BCh,0AAh, 03h
db 2Bh,0EFh, 0Fh, 89h, 05h, 05h
db 0C1h,0E7h, 08h, 03h, 3Eh, 64h
db 03h, 65h, 8Ah, 47h, 01h, 65h
db 2Ah, 07h,0F6h,0EDh,0D1h,0E0h
db 65h, 02h, 27h, 8Bh,0D0h, 87h
db 84h,0AAh, 05h, 50h, 2Bh,0C2h
db 99h,0F7h,0FDh, 5Ah,0D1h,0E5h
db 3Eh,0FFh,0A6h, 90h, 01h, 88h
db 0B5h, 00h, 39h, 03h,0D0h, 88h
db 0B5h, 00h, 3Ah, 03h,0D0h, 88h
db 0B5h, 00h, 3Bh, 03h,0D0h, 88h
db 0B5h, 00h, 3Ch, 03h,0D0h, 88h
db 0B5h, 00h, 3Dh, 03h,0D0h, 88h
db 0B5h, 00h, 3Eh, 03h,0D0h, 88h
db 0B5h, 00h, 3Fh, 03h,0D0h, 88h
db 0B5h, 00h, 40h, 03h,0D0h, 88h
db 0B5h, 00h, 41h, 03h,0D0h, 88h
db 0B5h, 00h, 42h, 03h,0D0h, 88h
db 0B5h, 00h, 43h, 03h,0D0h, 88h
db 0B5h, 00h, 44h, 03h,0D0h, 88h
db 0B5h, 00h, 45h, 03h,0D0h, 88h
db 0B5h, 00h, 46h, 03h,0D0h, 88h
db 0B5h, 00h, 47h, 03h,0D0h, 88h
db 0B5h, 00h, 48h, 03h,0D0h, 88h
db 0B5h, 00h, 49h, 03h,0D0h, 88h
db 0B5h, 00h, 4Ah, 03h,0D0h, 88h
db 0B5h, 00h, 4Bh, 03h,0D0h, 88h
db 0B5h, 00h, 4Ch, 03h,0D0h, 88h
db 0B5h, 00h, 4Dh, 03h,0D0h, 88h
db 0B5h, 00h, 4Eh, 03h,0D0h, 88h
db 0B5h, 00h, 4Fh, 03h,0D0h, 88h
db 0B5h, 00h, 50h, 03h,0D0h, 88h
db 0B5h, 00h, 51h, 03h,0D0h, 88h
db 0B5h, 00h, 52h, 03h,0D0h, 88h
db 0B5h, 00h, 53h, 03h,0D0h, 88h
db 0B5h, 00h, 54h, 03h,0D0h, 88h
db 0B5h, 00h, 55h, 03h,0D0h, 88h
db 0B5h, 00h, 56h, 03h,0D0h, 88h
db 0B5h, 00h, 57h, 03h,0D0h, 88h
db 0B5h, 00h, 58h, 03h,0D0h, 88h
db 0B5h, 00h, 59h, 03h,0D0h, 88h
db 0B5h, 00h, 5Ah, 03h,0D0h, 88h
db 0B5h, 00h, 5Bh, 03h,0D0h, 88h
db 0B5h, 00h, 5Ch, 03h,0D0h, 88h
db 0B5h, 00h, 5Dh, 03h,0D0h, 88h
db 0B5h, 00h, 5Eh, 03h,0D0h, 88h
db 0B5h, 00h, 5Fh, 03h,0D0h, 88h
db 0B5h, 00h, 60h, 03h,0D0h, 88h
db 0B5h, 00h, 61h, 03h,0D0h, 88h
db 0B5h, 00h, 62h, 03h,0D0h, 88h
db 0B5h, 00h, 63h, 03h,0D0h, 88h
db 0B5h, 00h, 64h, 03h,0D0h, 88h
db 0B5h, 00h, 65h, 03h,0D0h, 88h
db 0B5h, 00h, 66h, 03h,0D0h, 88h
db 0B5h, 00h, 67h, 03h,0D0h, 88h
db 0B5h, 00h, 68h, 03h,0D0h, 88h
db 0B5h, 00h, 69h, 03h,0D0h, 88h
db 0B5h, 00h, 6Ah, 03h,0D0h, 88h
db 0B5h, 00h, 6Bh, 03h,0D0h, 88h
db 0B5h, 00h, 6Ch, 03h,0D0h, 88h
db 0B5h, 00h, 6Dh, 03h,0D0h, 88h
db 0B5h, 00h, 6Eh, 03h,0D0h, 88h
db 0B5h, 00h, 6Fh, 03h,0D0h, 88h
db 0B5h, 00h, 70h, 03h,0D0h, 88h
db 0B5h, 00h, 71h, 03h,0D0h, 88h
db 0B5h, 00h, 72h, 03h,0D0h, 88h
db 0B5h, 00h, 73h, 03h,0D0h, 88h
db 0B5h, 00h, 74h, 03h,0D0h, 88h
db 0B5h, 00h, 75h, 03h,0D0h, 88h
db 0B5h, 00h, 76h, 03h,0D0h, 88h
db 0B5h, 00h, 77h, 03h,0D0h, 88h
db 0B5h, 00h, 78h, 03h,0D0h, 88h
db 0B5h, 00h, 79h, 03h,0D0h, 88h
db 0B5h, 00h, 7Ah, 03h,0D0h, 88h
db 0B5h, 00h, 7Bh, 03h,0D0h, 88h
db 0B5h
loc_6::
add [si+3],bh
ror byte ptr data_2+14h[bx+si],1 ; ('') Rotate
;* jge loc_8 ;*Jump if > or =
db 7Dh, 03h ; Fixup - byte match
ror byte ptr data_2+14h[bx+si],1 ; ('') Rotate
;* jle loc_9 ;*Jump if < or =
db 7Eh, 03h ; Fixup - byte match
ror byte ptr data_2+14h[bx+si],1 ; ('') Rotate
;* jg loc_10 ;*Jump if >
db 7Fh, 03h ; Fixup - byte match
ror byte ptr data_2+14h[bx+si],1 ; ('') Rotate
add byte ptr [bp+di],0D0h
mov ds:data_23e[di],dh
add dx,ax
mov ds:data_24e[di],dh
add dx,ax
mov ds:data_25e[di],dh
add dx,ax
mov ds:data_26e[di],dh
add dx,ax
mov ds:data_27e[di],dh
add dx,ax
mov ds:data_28e[di],dh
add dx,ax
mov ds:data_29e[di],dh
add dx,ax
mov ds:data_30e[di],dh
add dx,ax
mov ds:data_31e[di],dh
add dx,ax
mov ds:data_32e[di],dh
add dx,ax
mov ds:data_33e[di],dh
add dx,ax
mov ds:data_34e[di],dh
add dx,ax
mov ds:data_35e[di],dh
add dx,ax
mov ds:data_36e[di],dh
add dx,ax
mov ds:data_37e[di],dh
add dx,ax
mov ds:data_38e[di],dh
add dx,ax
mov ds:data_39e[di],dh
add dx,ax
mov ds:data_40e[di],dh
add dx,ax
mov ds:data_41e[di],dh
add dx,ax
mov ds:data_42e[di],dh
add dx,ax
mov ds:data_43e[di],dh
add dx,ax
mov ds:data_44e[di],dh
add dx,ax
mov ds:data_45e[di],dh
add dx,ax
mov ds:data_46e[di],dh
add dx,ax
mov ds:data_47e[di],dh
add dx,ax
mov ds:data_48e[di],dh
add dx,ax
mov ds:data_49e[di],dh
add dx,ax
mov ds:data_50e[di],dh
add dx,ax
mov ds:data_51e[di],dh
add dx,ax
mov ds:data_52e[di],dh
add dx,ax
mov ds:data_53e[di],dh
add dx,ax
mov ds:data_54e[di],dh
add dx,ax
mov ds:data_55e[di],dh
add dx,ax
mov ds:data_56e[di],dh
add dx,ax
mov ds:data_57e[di],dh
add dx,ax
mov ds:data_58e[di],dh
add dx,ax
mov ds:data_59e[di],dh
add dx,ax
mov ds:data_60e[di],dh
add dx,ax
mov ds:data_61e[di],dh
add dx,ax
mov ds:data_62e[di],dh
add dx,ax
mov ds:data_63e[di],dh
add dx,ax
mov ds:data_64e[di],dh
add dx,ax
mov ds:data_65e[di],dh
add dx,ax
mov ds:data_66e[di],dh
add dx,ax
mov ds:data_67e[di],dh
add dx,ax
mov ds:data_68e[di],dh
add dx,ax
mov ds:data_69e[di],dh
add dx,ax
mov ds:data_70e[di],dh
add dx,ax
mov ds:data_71e[di],dh
add dx,ax
mov ds:data_72e[di],dh
add dx,ax
mov ds:data_73e[di],dh
add dx,ax
mov ds:data_74e[di],dh
add dx,ax
mov ds:data_75e[di],dh
add dx,ax
mov ds:data_76e[di],dh
add dx,ax
mov ds:data_77e[di],dh
add dx,ax
mov ds:data_78e[di],dh
add dx,ax
mov ds:data_79e[di],dh
add dx,ax
mov ds:data_80e[di],dh
add dx,ax
mov ds:data_81e[di],dh
add dx,ax
mov ds:data_82e[di],dh
add dx,ax
mov ds:data_83e[di],dh
add dx,ax
mov ds:data_84e[di],dh
add dx,ax
mov ds:data_85e[di],dh
add dx,ax
mov ds:data_86e[di],dh
add dx,ax
mov ds:data_87e[di],dh
add dx,ax
mov ds:data_88e[di],dh
add dx,ax
mov ds:data_89e[di],dh
add dx,ax
mov ds:data_90e[di],dh
add dx,ax
mov ds:data_91e[di],dh
add dx,ax
mov ds:data_92e[di],dh
add dx,ax
mov ds:data_93e[di],dh
add dx,ax
mov ds:data_94e[di],dh
add dx,ax
mov ds:data_95e[di],dh
add dx,ax
mov ds:data_96e[di],dh
add dx,ax
mov ds:data_97e[di],dh
add dx,ax
mov ds:data_98e[di],dh
add dx,ax
mov ds:data_99e[di],dh
add dx,ax
mov ds:data_100e[di],dh
add dx,ax
mov ds:data_101e[di],dh
add dx,ax
mov ds:data_102e[di],dh
add dx,ax
mov ds:data_103e[di],dh
add dx,ax
mov ds:data_104e[di],dh
add dx,ax
mov ds:data_105e[di],dh
add dx,ax
mov ds:data_106e[di],dh
add dx,ax
mov ds:data_107e[di],dh
add dx,ax
mov ds:data_108e[di],dh
add dx,ax
mov ds:data_109e[di],dh
add dx,ax
mov ds:data_110e[di],dh
add dx,ax
mov ds:data_111e[di],dh
add dx,ax
mov ds:data_112e[di],dh
add dx,ax
mov ds:data_113e[di],dh
add dx,ax
mov ds:data_114e[di],dh
add dx,ax
mov ds:data_115e[di],dh
add dx,ax
mov ds:data_116e[di],dh
add dx,ax
mov ds:data_117e[di],dh
add dx,ax
mov ds:data_118e[di],dh
add dx,ax
mov ds:data_119e[di],dh
add dx,ax
mov ds:data_120e[di],dh
add dx,ax
mov ds:data_121e[di],dh
add dx,ax
mov ds:data_122e[di],dh
add dx,ax
mov ds:data_123e[di],dh
add dx,ax
mov ds:data_124e[di],dh
add dx,ax
mov ds:data_125e[di],dh
add dx,ax
mov ds:data_126e[di],dh
add dx,ax
mov ds:data_127e[di],dh
add dx,ax
mov ds:data_128e[di],dh
add dx,ax
mov ds:data_129e[di],dh
add dx,ax
mov ds:data_130e[di],dh
add dx,ax
mov ds:data_131e[di],dh
add dx,ax
mov ds:data_132e[di],dh
add dx,ax
mov ds:data_133e[di],dh
add dx,ax
mov ds:data_134e[di],dh
add dx,ax
mov ds:data_135e[di],dh
add dx,ax
mov ds:data_136e[di],dh
add dx,ax
mov ds:data_137e[di],dh
add dx,ax
mov ds:data_138e[di],dh
add dx,ax
mov ds:data_139e[di],dh
add dx,ax
mov ds:data_140e[di],dh
add dx,ax
mov ds:data_141e[di],dh
add dx,ax
mov ds:data_142e[di],dh
add dx,ax
mov ds:data_143e[di],dh
add dx,ax
mov ds:data_144e[di],dh
add dx,ax
mov ds:data_145e[di],dh
add dx,ax
mov ds:data_146e[di],dh
add dx,ax
mov ds:data_147e[di],dh
add dx,ax
mov ds:data_148e[di],dh
add dx,ax
mov ds:data_149e[di],dh
add dx,ax
mov [di],dh
inc word ptr ds:data_20e
sub si,2
;* pop cs ; Dangerous-8088 only
db 0Fh ; Fixup - byte match
;* mov cx,bx
db 89h,0D9h ; Fixup - byte match
cli ; Disable interrupts
sub word ptr ds:data_21e,2
mov si,ds:data_21e
mov si,data_4[si]
test si,3
jnz loc_11 ; Jump if not zero
db 0C1h,0EEh, 02h, 83h,0FEh, 0Fh
db 77h, 00h
loc_11::
cmp word ptr ds:data_21e,0
;* pop cs ; Dangerous-8088 only
db 0Fh ; Fixup - byte match
test bp,[bx]
cli ; Disable interrupts
retn
sub_3 endp
db 65h, 8Ah, 47h, 01h, 65h, 2Ah
db 07h,0F6h,0EDh,0D1h,0E0h, 65h
db 02h, 27h, 89h, 84h,0AAh, 05h
db 0FFh, 06h, 64h, 03h, 83h,0EEh
db 02h, 0Fh, 89h, 97h,0FAh, 83h
db 2Eh,0A0h, 03h, 02h, 8Bh, 36h
db 0A0h, 03h, 8Bh,0B4h, 90h, 01h
db 0F7h,0C6h, 03h, 00h, 75h, 08h
db 0C1h,0EEh, 02h, 83h,0FEh, 0Fh
db 77h, 00h, 83h, 3Eh,0A0h, 03h
db 00h, 0Fh, 85h,0EDh,0F9h,0C3h
;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
; SUBROUTINE
;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
sub_5 proc near
db 8Eh, 26h, 47h, 03h,0C1h,0C9h
db 04h,0C1h,0CAh, 04h, 8Ah,0D9h
db 8Ah,0FAh,0C1h,0E9h, 0Ch,0C1h
db 0EAh, 0Ch,0FEh,0C3h, 64h, 8Ah
db 07h, 32h,0E4h,0FEh,0CBh, 64h
db 2Ah, 07h, 80h,0DCh, 00h, 52h
db 0F7h,0E9h, 64h, 8Ah, 17h, 32h
db 0F6h,0C1h,0E2h, 04h, 03h,0C2h
db 5Ah, 8Bh,0F0h,0FEh,0C7h,0FEh
db 0C3h, 64h, 8Ah, 07h, 32h,0E4h
db 0FEh,0CBh, 64h, 2Ah, 07h, 80h
db 0DCh, 00h, 52h,0F7h,0E9h, 64h
db 8Ah, 17h, 32h,0F6h,0C1h,0E2h
db 04h, 03h,0C2h, 5Ah, 8Bh,0F8h
db 8Bh,0C7h, 2Bh,0C6h,0F7h,0EAh
db 0C1h,0E6h, 04h, 03h,0C6h,0C3h
db 00h, 00h, 00h, 00h
sub_5 endp
seg_a ends
;------------------------------------------------------------ seg_b ----
seg_b segment byte public
assume cs:seg_b , ds:seg_b
db 3Eh, 0Bh, 44h, 0Bh, 4Ah, 0Bh
db 50h, 0Bh, 56h, 0Bh, 5Ch, 0Bh
db 62h, 0Bh, 68h, 0Bh, 6Eh, 0Bh
db 74h, 0Bh, 7Ah, 0Bh, 80h, 0Bh
db 86h, 0Bh, 8Ch, 0Bh, 92h, 0Bh
db 98h, 0Bh, 9Eh, 0Bh,0A4h, 0Bh
db 0AAh, 0Bh,0B0h, 0Bh,0B6h, 0Bh
db 0BCh, 0Bh,0C2h, 0Bh,0C8h, 0Bh
db 0CEh, 0Bh,0D4h, 0Bh,0DAh, 0Bh
db 0E0h, 0Bh,0E6h, 0Bh,0ECh, 0Bh
db 0F2h, 0Bh,0F8h, 0Bh,0FEh, 0Bh
db 04h, 0Ch, 0Ah, 0Ch, 10h, 0Ch
db 16h, 0Ch, 1Ch
db 0Ch, '"', 0Ch, '(', 0Ch, '.', 0Ch
db '4', 0Ch, ':', 0Ch, '@', 0Ch, 'F', 0Ch
db 'L', 0Ch, 'R', 0Ch, 'X', 0Ch, '^', 0Ch
db 'd', 0Ch, 'j', 0Ch, 'p', 0Ch, 'v', 0Ch
db '|', 0Ch
db 82h, 0Ch, 88h, 0Ch, 8Eh, 0Ch
db 94h, 0Ch, 9Ah, 0Ch,0A0h, 0Ch
db 0A6h, 0Ch,0ACh, 0Ch,0B2h, 0Ch
db 0B8h, 0Ch,0BEh, 0Ch,0C4h, 0Ch
db 0CAh, 0Ch,0D0h, 0Ch,0D6h, 0Ch
db 0DCh, 0Ch,0E2h, 0Ch,0E8h, 0Ch
db 0EEh, 0Ch,0F4h, 0Ch,0FAh, 0Ch
db 00h, 0Dh, 06h, 0Dh, 0Ch, 0Dh
db 12h, 0Dh, 18h, 0Dh, 1Eh
data_2 db 0Dh, '$'
db 0Dh, '*', 0Dh, '0', 0Dh, '6', 0Dh
db '<', 0Dh, 'B', 0Dh, 'H', 0Dh, 'N', 0Dh
db 'T', 0Dh, 'Z', 0Dh, '`', 0Dh, 'f', 0Dh
db 'l', 0Dh, 'r', 0Dh, 'x', 0Dh, '~', 0Dh
db 84h, 0Dh, 8Ah, 0Dh, 90h, 0Dh
db 96h, 0Dh, 9Ch, 0Dh,0A2h, 0Dh
db 0A8h, 0Dh,0AEh, 0Dh,0B4h, 0Dh
db 0BAh, 0Dh,0C0h, 0Dh,0C6h, 0Dh
db 0CCh, 0Dh,0D2h, 0Dh,0D8h, 0Dh
db 0DEh, 0Dh,0E4h, 0Dh,0EAh, 0Dh
db 0F0h, 0Dh,0F6h, 0Dh,0FCh, 0Dh
db 02h, 0Eh, 08h, 0Eh, 0Eh, 0Eh
db 14h, 0Eh, 1Ah, 0Eh, 20h, 0Eh
db 26h, 0Eh, 2Ch, 0Eh, 32h, 0Eh
db 38h, 0Eh, 3Eh, 0Eh, 44h, 0Eh
db 4Ah, 0Eh, 50h, 0Eh, 56h, 0Eh
db 5Ch, 0Eh, 62h, 0Eh, 68h, 0Eh
db 6Eh, 0Eh, 74h, 0Eh, 7Ah, 0Eh
db 80h, 0Eh, 86h, 0Eh, 8Ch, 0Eh
db 92h, 0Eh, 98h, 0Eh, 9Eh, 0Eh
db 0A4h, 0Eh,0AAh, 0Eh,0B0h, 0Eh
db 0B6h, 0Eh,0BCh, 0Eh,0C2h, 0Eh
db 0C8h, 0Eh,0CEh, 0Eh,0D4h, 0Eh
db 0DAh, 0Eh,0E0h, 0Eh,0E6h, 0Eh
db 0ECh, 0Eh,0F2h, 0Eh,0F8h, 0Eh
db 0FEh, 0Eh, 04h, 0Fh, 0Ah, 0Fh
db 10h, 0Fh, 16h, 0Fh, 1Ch, 0Fh
db 22h, 0Fh, 28h, 0Fh, 2Eh, 0Fh
db 34h, 0Fh, 3Ah, 0Fh, 40h, 0Fh
db 46h, 0Fh, 4Ch, 0Fh, 52h, 0Fh
db 58h, 0Fh, 5Eh, 0Fh, 64h, 0Fh
db 6Ah, 0Fh, 70h, 0Fh, 76h, 0Fh
db 7Ch, 0Fh, 82h, 0Fh, 88h, 0Fh
db 8Eh, 0Fh, 94h, 0Fh, 9Ah, 0Fh
db 0A0h, 0Fh,0A6h, 0Fh,0ACh, 0Fh
db 0B2h, 0Fh,0B8h, 0Fh,0BEh, 0Fh
db 0C4h, 0Fh,0CAh, 0Fh,0D0h, 0Fh
db 0D6h, 0Fh,0DCh, 0Fh,0E2h, 0Fh
db 0E8h, 0Fh
data_4 dw 0 ; Data table (indexed access)
db 01h, 00h, 02h, 00h, 03h, 00h
db 04h, 00h, 05h, 00h, 06h, 00h
db 07h, 00h, 08h, 00h, 09h, 00h
db 0Ah, 00h, 0Bh, 00h, 0Ch, 00h
db 0Dh, 00h, 0Eh, 00h, 0Fh, 00h
db 10h, 00h, 11h, 00h, 12h, 00h
db 13h, 00h, 14h, 00h, 15h, 00h
db 16h, 00h, 17h, 00h, 18h, 00h
db 19h, 00h, 1Ah, 00h, 1Bh, 00h
db 1Ch, 00h, 1Dh, 00h, 1Eh, 00h
db 1Fh, 00h, 20h, 00h, 21h, 00h
db 22h, 00h, 23h, 00h, 24h, 00h
db 25h, 00h, 26h, 00h, 27h, 00h
db 28h, 00h, 2Ah, 00h, 2Ch, 00h
db 2Eh, 00h, 30h, 00h, 32h, 00h
db 34h, 00h, 36h, 00h, 38h, 00h
db 3Ah, 00h, 3Ch, 00h, 40h, 00h
db 44h, 00h, 48h, 00h, 4Ch, 00h
db 50h, 00h, 54h, 00h
db 58h
data_5 db 0
db 5Ch, 00h, 60h, 00h, 64h, 00h
data_6 dw 0 ; Data table (indexed access)
db 00h, 01h, 00h, 00h, 02h, 00h
db 00h, 03h, 00h, 00h, 03h, 01h
db 00h, 04h, 00h, 00h, 05h, 00h
db 00h, 06h, 00h, 00h, 07h, 00h
db 00h, 08h, 00h, 00h, 09h, 00h
db 00h, 0Ah, 00h, 00h, 0Bh, 00h
db 00h, 0Ch, 00h, 00h, 0Dh, 00h
db 00h, 0Eh, 00h, 00h, 0Fh, 00h
db 00h, 10h, 00h, 00h, 11h, 00h
db 00h, 12h, 00h, 00h, 13h, 00h
db 00h, 14h, 00h, 00h, 15h, 00h
db 00h, 16h, 00h, 00h, 17h, 00h
db 00h, 18h, 00h, 00h, 19h, 00h
db 00h, 1Ah, 00h, 00h, 1Bh, 00h
db 00h, 1Ch, 00h, 00h, 1Dh, 01h
db 00h, 1Eh, 02h, 00h, 1Fh, 03h
db 00h, 20h, 04h, 00h, 21h, 05h
db 00h, 22h, 06h, 00h, 23h, 07h
db 01h, 24h, 08h, 02h, 25h, 09h
db 03h, 26h, 0Ah, 04h, 27h, 0Bh
db 05h, 28h, 0Ch, 06h, 29h, 0Dh
db 07h, 2Ah, 0Eh, 08h, 2Bh, 0Fh
db 09h, 2Ch, 10h, 0Ah, 2Dh, 11h
db 0Bh, 2Eh, 12h, 0Ch, 2Fh, 13h
db 0Dh, 30h, 14h, 0Eh, 31h, 15h
db 0Fh, 32h, 16h, 10h, 33h, 17h
db 11h, 34h, 18h, 12h, 35h, 19h
db 13h, 36h, 1Ah, 14h, 37h, 1Bh
db 15h, 38h, 1Ch, 16h, 39h, 1Dh
db 17h, 3Ah, 1Eh, 18h, 3Bh, 1Fh
db 19h, 3Ch, 20h, 1Ah, 3Dh, 21h
db 1Bh, 3Eh, 22h, 1Ch, 32h, 0Ah
db 0Ah, 32h, 0Bh, 0Bh, 32h, 0Ch
db 0Ch, 32h, 0Dh, 0Dh, 32h, 0Eh
db 0Eh, 32h, 0Fh, 0Fh, 32h, 10h
db 10h, 32h, 11h, 11h, 32h, 12h
db 12h, 32h, 13h, 13h, 32h, 14h
db 14h, 32h, 15h, 15h, 32h, 16h
db 16h, 32h, 17h, 17h, 32h, 18h
db 18h, 32h, 19h, 19h, 32h, 1Ah
db 1Ah, 32h, 1Bh, 1Bh, 32h, 1Ch
db 1Ch, 32h, 1Dh, 1Dh, 32h, 1Eh
db 1Eh, 32h, 1Fh, 1Fh
db '2 2!!2""2##2$$'
db '2%%2'
data_8 dw 2626h ; Data table (indexed access)
db '2', 27h, 27h, '2((2))???'
db 9Dh, 30h, 00h, 00h, 04h, 00h
db 02h, 02h,0FFh,0FEh, 00h, 00h
db 00h, 00h, 00h, 00h
data_9 dw 0A000h
db 00h, 00h, 40h, 00h
dw seg_a
dw seg_b
data_10 dw 48D1h
dw 58D1h
data_11 dw 68D1h
db 85h,0CFh, 01h, 00h
seg_b ends
end start