code segment
assume cs:code,ds:code,es:code,ss:code
m0000:
mov
ax,offset m8000
mov ax,cs
mov ds,ax
mov es,ax
mov ss,ax
mov sp,0fff0h
jmp
m21x
org 8800h
d114:
dw 3
dw offset d136
db 'd',0,'a',0,'q',0,0
d136:
dw offset m42d9
dw offset m204a
dw offset m70eb
dw 0
d5dc:
db
0d0h,0,'PSW',0,0e0h,0,'ACC',0,0f0h,0,'B',0
db
81h,0,'SP',0,82h,0,'DPL',0,83h,0,'DPH',0
db 88h,0,'TCON',0,89h,0,'TMOD',0
db 0a8h,0,'IE',0,0b8h,0,'IP',0
db
8ah,0,'TL0',0,8bh,0,'TL1',0,8ch,0,'TH0',0
db 8dh,0,'TH1',0
db 0b0h,0,'P3',0,0a0h,0,'P2',0
db
90h,0,'P1',0,80h,0,'P0',0,87h,0,'PCON',0
db 98h,0,'SCON',0,99h,0,'SBUF',0
db
88h,0,'IT0',0,89h,0,'IE0',0,8ah,0,'IT1',0
db
8bh,0,'IE1',0,8ch,0,'IR0',0,8dh,0,'TF0',0
db 8eh,0,'TR1',0,8fh,0,'TF1',0
db 98h,0,'RI',0,99h,0,'TI',0,9ah,0,'RB8',0
db
9bh,0,'TB8',0,9ch,0,'REN',0,9dh,0,'SM2',0
db 9eh,0,'SM1',0,9fh,0,'SM0',0
db
0a8h,0,'EX0',0,0a9h,0,'ET0',0,0aah,0,'EX1',0
db
0abh,0,'ET1',0,0ach,0,'ES',0,0afh,0,'EA',0
db
0b0h,0,'PXD',0,0b1h,0,'TXD',0,0b2h,0,'INT0',0
db
0b3h,0,'INT1',0,0b4h,0,'T0',0,0b5h,0,'T1',0
db
0b6h,0,'WR',0,0b7h,0,'RD',0,0b8h,0,'PX0',0
db
0b9h,0,'PT0',0,0bah,0,'PX1',0,0bbh,0,'PT1',0
db 0bch,0,'PS',0
db
0d0h,0,'P',0,0d2h,0,'F1',0,0d3h,0,'OV',0
db
0d3h,0,'RS0',0,0d4h,0,'RS1',0,0d5h,0,'F0',0
db 0d6h,0,'AC',0,0d7h,0,'CY',0
d9dc:
db 9dh,0,0,1 ;NOP 00
db 84h,0c6h,0,2 ;AJMP 01
db 98h,0c7h,0,3 ;LJMP 02
db 0a5h,8ch,0,1 ;RR
03
db 8eh,8ch,0,1 ;INC 04
db 8eh,0c2h,0,2 ;INC 05
db 8eh,88h,0,1 ;INC 06
db 8eh,89h,0,1 ;INC 07
db 8eh,80h,0,1 ;INC 08
db 90h,0c1h,0c3h,3 ;JBC 10
db 81h,0c6h,0,2 ;ACALL 11
db 97h,0c7h,0,3 ;LCALL 12
db 0a6h,8ch,0,1 ;RRC 13
db 8ah,8ch,0,1 ;DEC
14
db 8ah,0c2h,0,2 ;DEC 15
db 8ah,88h,0,1 ;DEC 16
db 8ah,89h,0,1 ;DEC 17
db 8ah,80h,0,1 ;DEC
18
db 8fh,0c1h,0c3h,3 ;JB 20
db 84h,0c6h,0,2 ;AJMP 21
db 0a1h,0,0,1 ;RET
22
db 0a3h,8ch,0,1 ;RL 23
db 82h,8ch,0c4h,2 ;ADD
24
db 82h,8ch,0c2h,2 ;ADD 25
db 82h,8ch,88h,1 ;ADD
26
db 82h,8ch,89h,1 ;ADD 27
db 82h,8ch,80h,1 ;ADD
28
db 93h,0c1h,0c3h,3 ;JNB
30
db 81h,0c6h,0,2 ;ACALL
31
db 0a2h,0,0,1 ;RETI 32
db 0a4h,8ch,0,1 ;RLC
33
db 83h,8ch,0c4h,2 ;ADDC
34
db 83h,8ch,0c2h,2 ;ADDC 35
db 83h,8ch,88h,1 ;ADDC 36
db 83h,8ch,89h,1 ;ADDC
37
db 83h,8ch,80h,1 ;ADDC 38
db 91h,0c3h,0,2 ;JC 40
db 84h,0c6h,0,2 ;AJMP 41
db 9eh,0c2h,8ch,2 ;ORL 42
db 9eh,0c2h,0c4h,3 ;ORL
43
db 9eh,8ch,0c4h,2 ;ORL
44
db 9eh,8ch,0c2h,2 ;ORL 45
db 9eh,8ch,88h,1 ;ORL 46
db 9eh,8ch,89h,1 ;ORL 47
db 9eh,8ch,80h,1 ;ORL
48
db 94h,0c3h,0,2 ;JNC 50
db 81h,0c6h,0,2 ;ACALL 51
db 85h,0c2h,8ch,2 ;ANL 52
db 85h,0c2h,0c4h,3 ;ANL
53
db 85h,8ch,0c4h,2 ;ANL
54
db 85h,8ch,0c2h,2 ;ANL 55
db 85h,8ch,88h,1 ;ANL 56
db 85h,8ch,89h,1 ;ANL 57
db 85h,8ch,80h,1 ;ANL
58
db 96h,0c3h,0,2 ;JZ 60
db 84h,0c6h,0,2 ;AJMP 61
db 0adh,0c2h,8ch,2 ;XRL 62
db 0adh,0c2h,0c4h,3 ;XRL 63
db 0adh,8ch,0c4h,2 ;XRL
64
db 0adh,8ch,0c2h,2 ;XRL 65
db 0adh,8ch,88h,1 ;XRL
66
db 0adh,8ch,89h,1 ;XRL 67
db 0adh,8ch,80h,1 ;XRL
68
db 95h,0c3h,0,2 ;JNZ 70
db 81h,0c6h,0,2 ;ACALL 71
db 9eh,8d,0c1h,2 ;ORL 72
db 92h,8ah,0,1 ;JMP 73
db 99h,8ch,0c4h,2 ;MOV 74
db 99h,0c2h,0c4h,3 ;MOV 75
db 99h,88h,0c4h,2 ;MOV
76
db 99h,89h,0c4h,2 ;MOV 77
db 99h,80h,0c4h,2 ;MOV
78
db 0a8h,0c3h,0,2 ;SJMP
80
db 84h,0c6h,0,2 ;AJMP 81
db 85h,8dh,0c1h,2 ;ANL 82
db 9ah,8ch,90h,1 ;MOVC
83
db 8bh,8eh,0,1 ;DIV
84
db 99h,0c2h,0c2h,3 ;MOV 85
db 99h,0c2h,88h,2 ;MOV
86
db 99h,0c2h,89h,2 ;MOV 87
db 99h,0c2h,80h,2 ;MOV
88
db 99h,8fh,0c5h,3 ;MOV
90
db 81h,0c6h,0,2 ;ACALL 91
db 99h,0c1h,8dh,2 ;MOV
92
db 9ah,8ch,8ah,1 ;MOVC 93
db 0a9h,8ch,0c4h,2 ;SUBB
94
db 0a9h,8ch,0c2h,2 ;SUBB
95
db 0a9h,8ch,88h,1 ;SUBB 96
db 0a9h,8ch,89h,1 ;SUBB 97
db 0a9h,8ch,80h,1 ;SUBB 98
db 9eh,8dh,0c0h,2 ;ORL
a0
db 84h,0c6h,0,2 ;AJMP a1
db 99h,8dh,0c1h,2 ;MOV
a2
db 8eh,8fh,0,1 ;INC a3
db 9ch,8eh,0,1 ;MUL a4
db 8dh,0,0,2 ;Undefines a5
db 99h,88h,0c2h,2 ;MOV a6
db 99h,89h,0c2h,2 ;MOV a7
db 99h,80h,0c2h,2 ;MOV
a8
db 85h,8dh,0c0h,2 ;ANL b0
db 81h,0c6h,0,2 ;ACALL b1
db 88h,0c1h,0,2 ;CPL
b2
db 88h,8dh,0,1 ;CPL b3
db 86h,8ch,0c4h,3 ;CJNE b4
db 86h,8ch,0,2 ;CJME b5
db 86h,88h,0c4h,3 ;CJNE b6
db 86h,89h,0c4h,3 ;CJNE
b7
db 86h,80h,0c4h,3 ;CJNE b8
db 0a0h,0c2h,0,2 ;PUSH
c0
db 84h,0c6h,0,2 ;AJMP c1
db 87h,0c1h,0,2 ;CLR
c2
db 87h,8dh,0,1 ;CLR c3
db 0aah,8ch,0,1 ;SWAP c4
db 0abh,8ch,0c2h,2 ;XCHG c5
db 0abh,8ch,88h,1 ;XCHG
c6
db 0abh,8ch,89h,1 ;XCHG c7
db 0abh,8ch,80h,1 ;XCHG
c8
db 9fh,0c2h,0,2 ;POP d0
db 81h,0c6h,0,2 ;ACALL d1
db 0a7h,0c1h,0,2 ;SETB d2
db 0a7h,8dh,0,1 ;SETB d3
db 89h,8ch,0,1 ;DA d4
db 8ch,0c2h,0c3h,3 ;DJNZ d5
db 0ach,8ch,88h,1 ;XCHD
d6
db 0ach,8ch,89h,1 ;XCHD d7
db 8ch,80h,0c3h,2 ;DJNZ
d8
db 9bh,8ch,8bh,1 ;MOVX e0
db 84h,0c6h,0,2 ;AJMP e1
db 9bh,8ch,88,1 ;MOVX
e2
db 9bh,8ch,89h,1 ;MOVX e3
db 87h,8ch,0,1 ;CLR e4
db 99h,8ch,0c2h,2 ;MOV
e5
db 99h,8ch,88h,1 ;MOV e6
db 99h,8ch,89h,1 ;MOV e7
db 99h,8ch,80h,1 ;MOV e8
db 9bh,8bh,8ch,1 ;MOVX
f0
db 81h,0c6h,0,2 ;ACALL f1
db 9bh,88h,8ch,1 ;MOVX
f2
db 9bh,89h,8ch,1 ;MOVX f3
db 88h,8ch,0,1 ;CPL f4
db 99h,0c2h,8ch,2 ;MOV f5
db 99h,88h,8ch,1 ;MOV
f6
db 99h,89h,8ch,1 ;MOV f7
db 99h,80h,8ch,1 ;MOV f8
dc1c:
db
81h,0,'ACALL',0,82h,0,'ADD',0,83h,0,'ADDC',0
db
84h,0,'AJMP',0,85h,0,'ANL',0,86h,0,'CJNE'
db
87h,0,'CLR',0,88h,0,'CPL',0,89h,0,'DA',0
db
8ah,0,'DEC',0,8bh,0,'DIV',0,8ch,0,'DJNZ',0
db
8dh,0,'Undefined',0,8eh,0,'INC',0,8fh,0,'JB',0
db
90h,0,'JBC',0,91h,0,'JC',0,92h,0,'JMP',0
db
93h,0,'JNB',0,94h,0,'JNC',0,95h,0,'JNZ',0
db
96h,0,'JZ',0,97h,0,'LCALL',0,98h,0,'LJMP',0
db
99h,0,'MOV',0,9ah,0,'MOVC',0,9bh,0,'MOVX',0
db
9ch,0,'MUL',0,9dh,0,'NOP',0,9eh,0,'ORL',0
db
9fh,0,'POP',0,0a0h,0,'PUSH',0,0a1h,0,'RET',0
db
0a2h,0,'RETI',0,0a3h,0,'RL',0,0a4h,0,'RLC',0
db
0a5h,0,'RR',0,0a6h,0,'RRC',0,0a7h,0,'SETB',0
db
0a8h,0,'SJMP',0,0a9h,0,'SUBB',0,0aah,0,'SWAP',0
db
0abh,0,'XCH',0,0ach,0,'XCHD',0,0adh,0,'XRL',0
db
0c0h,0,'END',0,0c1h,0,'ORG',0,0c2h,0,'DS',0
db
0c3h,0,'DB',0,0c4h,0,'DW',0,0c5h,0,'XDATA',0
db
0c6h,0,'DATA',0,0c7h,0,'BIT',0,0c8h,0,'EQU',0
db 0c9h,0,'=',0
dd76:
db
80h,0,'R0',0,81h,0,'R1',0,82h,0,'R2',0,83h,0,'R3',0
db
84h,0,'R4',0,85h,0,'R5',0,86h,0,'R6',0,87h,0,'R7',0
db
88h,0,'@R0',0,89h,0,'@R1',0,8ah,0,'@A+DPTR',0
db 8bh,0,'@DPTR',0,8ch,0,'A',0,8dh,0,'C',0
db
8eh,0,'AB',0,8fh,0,'DPTR',0,90h,0,'@A+PC',0
ded8:
db 'Assemble',0dh,0ah
db 'Dassemble',0dh,0ah
db 'Quit',0dh,0ah
db 0,0
d1044:
db 'Syntax error',0
m210:
db '51_Asm_Dasm copyfree
2015.11',0dh,0ah,0
m21x:
mov
si,offset m210 ;ban quan 2015.10
call
ma9b
mov si,offset m7368 ; key to contine
call ma9b
call m50d ; keybord
jmp
m6e5d
m379:
cld
mov dx,di
mov bx,di
xor ax,ax
jcxz m399
m382:
cmp byte ptr [si],0 ;1
jz m399
cmp byte ptr [si],0dh
jz m399
cmp byte ptr [si],20h
jz m396
cmp byte ptr [si],9
jnz m39b
m396:
inc si
loop m382
m399:
jmp m3db
m39b:
cmp byte ptr [si],20h
jbe m3db
movsb
loop m39b
m3db:
mov byte ptr [di],0
cmp di,dx
ret
m3e2:
dw 0
m42f:
push bp
mov bp,sp
push di
push cx
mov al,[si+1]
m437:
repnz scasb
jnz m455
push cx
push si
push di
dec di
dec di
mov cx,[bp+4]
repz cmpsb
pop di
pop si
pop cx
jz m44e
jcxz m455
jmp m437
m44e:
dec di
inc cx
m450:
dec di
inc cx
clc
jmp m458
m455:
pop cx
pop di
stc
m458:
mov sp,bp
pop bp
ret 2
m503:
call m50d
call m39ec ;a-z
ret
m50d:
push bx
mov ax,0
int 16h
mov ah,0
pop bx
ret
m556: ;keybord
call m50d
ret
m5bb:
push di
call m50d
pop di
ret
m641:
push bp
mov bp,sp
sub sp,3
push bx
push dx
push si
;...
lodsw
;...
m674:
call m556 ;keybord
cmp al,20h
jb m6ab
;...
mov [si],al
inc si
call mb5b ; display
jmp m674
m6ab:
cmp al,0dh
jz m71d ;ret
;...
cmp al,8
jnz m6db
m6c3:
;...
dec si
;6d1 ax,a20 int 10
mov ax,0a20h
mov cx,1
int 10h
jmp m674
m6db:
;...
mov al,8
jmp m6c3
;...
m71d:
mov byte ptr [si],0
pop si
;...
pop dx
pop bx
mov sp,bp
pop bp
ret
ma70:
push ax
ma71:
lodsb
or al,al
jz maa2
stosb
jmp ma71
ma7c:
push ax
ma7d:
lodsb
or al,al
jz maa2 ;ret
call mb13
jmp ma7d
ma87:
ret
ma9b:
push ax
call ma7c
maa2:
pop ax
ret
maa4:
maab:
call ma9b
ret
mab6:
mad0:
ret
mb13:
mb27:
mb5b:
push bx
push ax
mov bh,0 ;[7119]
mov ah,0eh
int 10h
pop ax
pop bx
ret
mb68:
push cx
push ax
push ax
mov cl,4
shr al,cl
call m39a3
stosb
pop ax
call m39a3
stosb
pop ax
pop cx
ret
mba1:
push ax
mov al,ah
call mb68
pop ax
call mb68
ret
mc0e:
push dx
push cx
xor dx,dx
mov cx,10000
div cx
and al,0fh
jz mc35
call mc6d
xor ax,ax
xchg dx,ax
mov cx,100
div cx
aam
call mc66
mov al,dl
aam
pop cx
pop dx
ret
mc35:
xchg dx,ax
mov cx,100
div cx
aam
test ah,0fh
jnz mc59
test al,0fh
jz mc4b
call mc6d
jmp mc5c
mc4b:
mov al,dl
aam
test ah,0fh
jnz mc60
call mc6d
jmp mc63
mc59:
call mc66
mc5c:
mov al,dl
aam
mc60:
call mc66
mc63:
pop cx
pop dx
ret
mc66:
xchg al,ah
call mc6d
mov al,ah
mc6d:
or al,30h
; stosb
call
mb5b
ret
mc7d:
ret
mc8d:
push ax
push bx
mov bh,0 ;[m7119] ;cs:
mov ah,2
int 21h
pop bx
pop ax
ret
mc9e:
push dx
xor dx,dx
call mc8d
pop dx
ret
mca9:
push ax
push bx
mov bh,0
mov ah,3
int 10h
pop bx
pop ax
ret
mcb4:
ret
mcbe:
push cx
push dx
call mca9
or ch,30h
call mccc
pop dx
pop cx
ret
mccc:
push ax
mov ah,1
int 10h
pop ax
ret
mef8:
db 1
mef9:
db 0
mefa:
db 0
mefb:
db 0
mefc:
db 0
dw 0,0
meff:
push bp
mov bp,sp
mov ax,word ptr [bp + 4]
mov word ptr [m7692],ax
push ax
xor ax,ax
push ax
push ax
push di
push si
push cx
mov di,offset m7698
mov cx,86h
repz stosb
pop cx
call m17ad
mov di,offset m7694
call m1563
jb mf33
mov al,':'
nop
mov byte ptr [mefb],al
mov ax,[bp+4]
mov word ptr [mefc],ax
call m17de
mf33:
mov bx,offset m76ab
mov di,offset m7696
call m1563
jnb mf41
jmp m12eb ;ret
mf41:
call m1aaa
jb mf5f
cmp al,0c0h
jnb mf94
mov byte ptr [m76a6],al
mov di,offset m7698
call m1563
jb mf58
jmp mfe1
mf58:
mov dx,word ptr [m769a]
jmp m11a7
mf5f:
cmp byte ptr [si+1],'.'
jz mfbc
mov word ptr [m7694],si
mov si,word ptr [m7698]
mov word ptr [m7696],si
mov cx,word ptr [m769a]
mov di,si
sub cx,si
inc di
mov al,0
repnz scasb
dec di
mov word ptr [m7698],di
mov di,offset m7696
call m1563
jb mfb7
call m1aaa
jb mfb7
cmp al,0c0h
jb mfb7
mf94:
mov byte ptr [m76a6],al
and ax,0fh
shl ax,1
mov di,ax
or ax,ax
jz mfb1
push di
mov di,offset m7698
call m1563
pop di
jnb mfb1
mov al,2
jmp m12e3
mfb1:
mov ax,word ptr [di + offset m12f2]
push ax
ret
mfb7:
mov al,5
jmp m12e3
mfbc: ; .
cmp byte ptr [mef8],0
jz mfb7
mov di,offset m3df9
mov cx,25h
nop
lodsw
sub dx,2
push dx
call m42f
jb mfb7
mov al,[di-1]
cbw
mov word ptr [m7505],ax
call m3e4a
jmp m12eb
mfe1:
mov al,byte ptr [m76a6]
mov di,offset m16ac
mov cx,9
repnz scasb
jnz m1000
add di,8
nop
mov al,[di]
mov byte ptr [m76a7],al
mov [bp-4],si
mov [bp-6],dx
jmp m1052
nop
m1000:
call m1684
jnb m1047
xor ah,ah
call m188b
jnb m1023
call m1671
jb m1016
call m167e
jmp m1047
m1016:
cmp byte ptr [mef8],0
jnz m1020
jmp m12e1
m1020:
call m16a3
m1023:
mov [bx],al
inc bx
mov al,byte ptr [m76a6]
cmp al,99h
jz m1037
mov di,offset m16be
mov cx,6
repnz scasb
jmp m1041
m1037:
mov si,word ptr [m769a]
mov ax,[si+1]
cmp ax,43h
m1041:
mov al,0c1h
jz m1047
mov al,0c2h
m1047:
mov byte ptr [m76a7],al
mov di,offset m769a
call m1563
jnb m1059
m1052:
mov dx,word ptr [m769c]
jmp m11ba
m1059:
mov di,offset m16c1
mov al,byte ptr [m76a6]
mov cx,4
repnz scasb
jnz m1074
mov byte ptr [m76a8],0c3h
mov [bp-4],si
mov [bp-6],dx
jmp m117d
m1074:
call m1684
jb m107f
mov byte ptr [m76a8],al
jmp m1176
m107f:
mov al,[si + 1]
cmp al,'/'
jz m10a5
cmp al,'#'
jz m10d1
cmp word ptr [m76a6],8f99h
jz m1095
jmp m112c
m1095:
cmp byte ptr [mef8],0
jnz m109f
jmp m12e1
m109f:
call m169f
jmp m10ff
nop
m10a5:
mov byte ptr [m76a8],0c0h
inc si
mov byte ptr [si],0
dec dx
call m157f
xor ah,ah
call m188b
jnb m10cb
call m15d7
jnb m10cb
cmp byte ptr [mef8],0
jnz m10c8
jmp m12e1
m10c8:
call m16a3
m10cb:
mov [bx],al
inc bx
jmp m117d
m10d1:
inc si
mov byte ptr [si],0
dec dx
call m157f
mov [bp-6],dx
mov ax,word ptr [m76a6]
cmp ax,8f99h
jnz m1106
mov byte ptr [m76a8],0c5h
mov ah,1
call m188b
jnb m10ff
cmp byte ptr [mef8],0
jnz m10fa
jmp m12e1 ;ret
m10fa:
mov al,1
call m1a5e
m10ff:
xchg ah,al
mov [bx],ax
jmp m117d
nop
m1106:
mov byte ptr [m76a8],0c4h
xor ah,ah
call m188b
jnb m1126
call m1671
jnb m1126
cmp byte ptr [mef8],0
jnz m1121
jmp m12e1
m1121:
xor al,al
call m1a5e
m1126:
mov [bx],al
inc bx
jmp m1176
nop
m112c:
call m157f
xor ah,ah
call m188b
jnb m1151
call m1671
jb m1144
call m167e
mov byte ptr [m76a8],al
jmp m1176
nop
m1144:
cmp byte ptr [mef8],0
jnz m114e
jmp m12e1
m114e:
call m16a3
m1151:
mov [bx],al
inc bx
mov al,byte ptr [m76a7]
cmp al,8dh
jnz m1171
mov al,byte ptr [m76a6]
cmp al,9eh
jz m116a
cmp al,85h
jz m116a
cmp al,99h
jnz m117d
m116a:
mov byte ptr [m76a8],0c1h
jmp m117d
m1171:
mov byte ptr [m76a8],0c2h
m1176:
cmp byte ptr [m76a6],86h
jz m1184
m117d:
mov dx,word ptr [m769e]
jmp m11a7
nop
m1184:
mov di,offset m769c
call m1563
jnb m119d
cmp byte ptr [mef8],0
jnz m1196
jmp m12e1
m1196:
mov al,2
call m23ab
jmp m11a3
m119d:
mov [bp-4],si
mov [bp-6],dx
m11a3:
mov dx,word ptr [m76a0]
m11a7:
or dx,dx
jz m11ba
cmp byte ptr [mef8],0
jnz m11b5
jmp m12e1
m11b5:
mov al,1
call m23ab
m11ba:
xor dx,dx
mov ax,word ptr [m76a7]
push ax
test al,80h
jz m11cf
cmp al,87h
ja m11cf
mov byte ptr [m76a7],80h
jmp m11de
m11cf:
mov al,ah
test al,80h
jz m11e4
cmp al,87h
ja m11e4
mov byte ptr [m76a8],80h
m11de:
add al,8
and al,7
mov dl,al
m11e4:
mov si,offset m76a6
mov cx,3
push cx ;es
mov di,offset d9dc
mov cx,240h
call m42f
mov al,[di+3]
pop word ptr [m76a7]
jnb m1208
jmp m12e1
m1208:
and al,0fh
mov byte ptr [m76a9],al
sub di,offset d9dc
shr di,1
shr di,1
mov ax,di
mov cl,9
div cl
mov cl,4
shl al,cl
or al,ah
or al,dl
mov byte ptr [m76aa],al
cmp al,85h
jnz m1232
mov ax,word ptr [m76ab]
xchg ah,al
mov word ptr [m76ab],ax
m1232:
mov al,byte ptr [m76a9]
cbw
add [bp+4],ax
mov si,[bp-4]
or si,si
jnz m1243
jmp m12eb
m1243:
mov cx,[bp-6]
cmp cx,3
jnb m125a
cmp byte ptr [mef8],0 ;1
jnz m1255
jmp m12e1
m1255:
mov al,2
jmp m12e8
m125a:
mov dx,cx
call m157f
mov ah,1
call m188b
jnb m1286
cmp ax,dx
jb m1278
call m1814
jnb m1286
cmp byte ptr [mef8],0
jz m12e1
jmp m12eb
m1278:
cmp byte ptr [mef8],0
jz m12e1
mov al,1
call m1a5e
jmp m12eb
m1286:
mov cx,[bp+4]
mov dx,word ptr [m76a7]
cmp dl,0c6h
jnz m12a8
mov byte ptr [m76ab],al
mov al,ah
xor ah,ch
and ah,0f8h
jnz m12da
mov cl,5
shl al,cl
or byte ptr [m76aa],al
jmp m12eb
m12a8:
cmp dl,0c7h
jnz m12b4
xchg ah,al
mov word ptr [m76ab],ax
jmp m12eb
m12b4:
cmp dl,0c3h
jz m12c5
cmp dh,0c3h
jz m12c5
cmp byte ptr [m76a6],86h
jnz m12da
m12c5:
sub ax,cx
mov cx,ax
cbw
cmp ax,cx
jnz m12da
mov bl,byte ptr [m76a9]
xor bh,bh
mov byte ptr [bx + offset m76a9],al
jmp m12eb
m12da:
cmp byte ptr [mef8],0
jnz m12e6
m12e1:
xor al,al
m12e3:
stc
jmp m12ec
m12e6:
mov al,9
m12e8:
call m23ab
m12eb:
clc
m12ec:
pop si
pop di
mov sp,bp
pop bp
ret
m12f2:
dw offset m155a
dw offset m1502
dw offset m1306
dw offset m1339
dw offset m13ac
dw offset m1437
dw offset m144b
dw offset m144b
dw offset m147e
dw offset m147e
m1306:
cmp byte ptr [mef8],0
jnz m131a
call m157f
mov ah,1
call m188b
jnz m131c
call m169f
m131a:
jmp m12eb ;ret
m131c:
mov cx,ax
;es [326e]
mov di,[bp-2]
mov ax,di
add ax,cx
jnb m132e
inc ax
sub cx,ax
m132e:
xor ax,ax
repnz stosb
;es=cs
mov [bp+4],di
jmp m12eb ;ret
m1339:
mov di,offset m76aa
mov word ptr [m76a7],0c4c4h
m1342:
cmp byte ptr [si],0
jz m134e
dec si
call m169f
dec si
jmp m139b
m134e:
call m1412
jz m1342
cmp ah,1ah
jz m13aa
xor ah,ah
call m188b
jnz m139b
cmp byte ptr [mef8],0
jnz m136e
call m1671
jnb m139b
jmp m12e1
m136e:
mov dx,si
m1370:
inc si
cmp byte ptr [si],0
jnz m1370
push si
inc si
sub si,dx
xchg si,dx
call m157f
call m1412
jnz m1387
pop si
jmp m1342
m1387:
xor ah,ah
call m188b
jnb m139a
push di
call m1671
jnb m1399
xor al,al
call m1a5e
m1399:
pop di
m139a:
pop si
m139b:
stosb
inc word ptr [m7692]
inc byte ptr [m76a9]
cmp word ptr [si],1a00h
jnz m1342
m13aa:
jmp m140a
m13ac:
mov word ptr [m76a7],0c5c5h
mov di,offset m76aa
m13b5:
cmp byte ptr [mef8],0
jnz m13c6
mov ah,1
call m188b
jnb m13f1
jmp m12e1
m13c6:
mov bx,si
m13c8:
inc bx
cmp byte ptr [bx],0
jnz m13c8
push bx
push cx
inc bx
sub bx,si
mov dx,bx
call m157f
mov ah,1
call m188b
jnb m13eb
push di
call m1671
jnb m13ea
mov al,1
call m1a5e
m13ea:
pop di
m13eb:
pop cx
pop si
jnb m13f1
xor ax,ax
m13f1:
xchg ah,al
stosb
inc word ptr [m7692]
inc word ptr [m7692]
inc byte ptr [m76a9]
inc byte ptr [m76a9]
cmp word ptr [si],1a00h
jnz m13b5
m140a:
xor ax,ax
mov [bp-4],ax
jmp m1232
m1412:
mov ah,[si+1]
cmp ah,27h
jz m141f
cmp al,'"'
jnz m1436
m141f:
lodsw
m1420:
lodsb
cmp al,ah
jz m1436 ;ret
cmp al,1
jnz m142b
mov al,','
m142b:
stosb
inc byte ptr [m76a9]
cmp word ptr [si],1a00h
jnz m1420
m1436:
ret
m1437:
cmp byte ptr [mef8],0
jz m146a
mov si,word ptr [m7698]
mov ah,al
call m188b
jb m1467
jmp m146f
m144b:
cmp byte ptr [mef8],0
jz m146a
mov si,word ptr [m7698]
xor ah,ah
call m188b
jnb m146d
call m15cc
jnb m146d
call m15d7
jnb m146d
m1467:
call m16a3
m146a:
jmp m12eb
m146d:
xor ah,ah
m146f:
mov word ptr [mefc],ax
mov al,byte ptr [m76a6]
mov byte ptr [mefb],al
call m17ff
jmp m12eb
m147e:
cmp byte ptr [mef8],0
jz m14a0
call m157f
mov [bp-4],si
mov [bp-6],dx
mov di,offset m7694
call m1563
mov di,si
call m157f
cmp si,di
jz m14a3
call m17ec
m14a0:
jmp m12eb
m14a3:
push si
mov si,[bp-4]
mov dx,[bp-6]
mov ah,1
call m188b
pop si
jb m14c1
push ax
inc si
call m186f
mov al,0c9h
stosb
pop ax
stosw
xor al,al
stosb
jmp m14f3
m14c1:
mov di,offset md75a
mov cx,word ptr [m203c]
add di,cx
neg cx
inc si
call maa4
mov al,'='
stosb
dec cx
mov si,[bp-4]
inc si
m14d8:
lodsb
cmp al,'$'
jnz m14e8
mov ax,word ptr [m7692]
call mba1
sub cx,4
mov al,'H'
m14e8:
stosb
or al,al
loopnz m14d8
neg cx
mov word ptr [m203c],cx
m14f3:
mov di,offset m769a
call m1563
jb m14a0 ;ret
mov al,1
jmp m12e8
m1500:
dw 0
m1502:
call m157f
mov ah,1
call m188b
jb m154a
cmp byte ptr [mef8],0
jz m151a
cmp ax,[bp+4]
jb m1535
jz m1532
m151a:
mov [bp+4],ax
mov si,word ptr [m1500]
mov bx,[si]
cmp bx,[si+2]
jz m1530
add word ptr [m1500],4
add si,4
m1530:
mov [si],ax
m1532:
jmp m12eb
m1535:
xchg ax,[bp+4]
push ax
mov al,3
call m23ab
pop ax
mov al,'H'
call mb5b
jmp m12eb
m154a:
cmp byte ptr [mef8],0
jnz m1554
jmp m12e1
m1554:
call m169f
jmp m12eb
m155a:
mov byte ptr [mef9],0ffh
clc
jmp m12eb
m1563:
mov si,[di]
mov cx,[di+2]
inc cx
sub cx,si
jb m1570
cmp cx,3
m1570:
mov dx,cx
ret
m1573:
mov di,offset m775a
mov cx,word ptr [m203a]
push dx
call m42f
ret
m157f:
push bx
xor bx,bx
m1582:
push si
push di
push cx
mov di,offset md75a
mov cx,word ptr [m203c]
m158c:
push dx
call m42f
jb m15c7
cmp cx,bx
jz m15c7
mov bx,cx
add di,dx
sub cx,dx
jbe m15c7
cmp byte ptr [di],'='
jnz m158c
inc di
dec cx
mov si,di
mov di,0ff00h
push di
mov dx,di
xor al,al
stosb
call maa4
sub dx,di
neg dx
pop si
pop cx
pop di
add sp,2
mov al,[si+1]
call m3a04
jb m1582
pop bx
ret
m15c7:
pop cx
pop di
pop si
pop bx
ret
m15cc:
call m1abf
jnb m15d6 ;ret
m15d1:
mov ah,0c6h
call m1660
m15d6:
ret
m15d7:
call m1ab2
jnb m15d6 ;ret
mov ah,0c7h
call m1660
jnb m15d6
push bx
push dx
sub dx,2
mov bx,dx
cmp byte ptr [bx+si-1],'.'
jnz m1635
mov al,[bx+si]
call m39c6
jb m1635
cmp al,7
ja m1635
mov byte ptr [bx+si-1],0
push ax
xor ah,ah
call m188b
jnb m1639
call m1abf
jb m1615
mov ch,al
test ch,7
jnz m1634
jmp m162b
m1615:
call m15d1
jb m1634
cmp al,20h
jb m1634
cmp al,2fh
ja m1634
mov ch,al
and ch,1fh
mov cl,3
shl ch,cl
m162b:
pop ax
add al,ch
mov byte ptr [bx+si-1],'.'
jmp m1636
m1634:
pop ax
m1635:
stc
m1636:
pop dx
pop bx
ret
m1639:
mov byte ptr [si],'.'
pop dx
and dl,7
call m1649
jb m1635
add al,dl
jmp m1636
m1649:
cmp al,80h
jnb m165d
cmp al,20h
jb m165d
cmp al,2fh
ja m165e
and al,0fh
shl al,1
shl al,1
shl al,1
m165d:
ret
m165e:
stc
ret
m1660:
call m1573
jb m166e ;ret
add di,dx
cmp ah,[di]
jnz m166f
mov al,[di+1]
m166e:
ret
m166f:
stc
ret
m1671:
call m15cc
mov ah,0c2h
jnb m167d ;ret
call m15d7
mov ah,0c1h
m167d:
ret
m167e:
mov [bx],al
inc bx
mov al,ah
ret
m1684:
call m157f
;es
mov di,offset dd76
mov cx,62h
;cs es=[3264]
push dx
call m42f
jb m169d
;es
mov al,[di-1]
m169d:
;es
ret
m169f:
mov al,6
jmp m16a5
m16a3:
mov al,4
m16a5:
inc si
call m23b1
xor ax,ax
ret
m16ac:
db 91h,94h,95h,96h,0a8h,81h,84h,97h,98h
;16b5:
db 0c3h,0c3h,0c3h,0c3h,0c3h
;16ba
db 0c6h,0c6h,0c7h,0c7h
m16be:
db 88h,87h,0a7h
m16c1:
db 90h,8fh,93h,8ch
m16c5:
xor ax,ax
mov byte ptr [mefa],al
mov bx,offset m7694
mov [bx],di
mov [bx+2],ax
mov bx,ax
mov dx,ax
cmp cx,130
jbe m16e8
sub cx,130
mov bx,cx
mov cx,130
m16e8:
stosb
push di
jcxz m16f1
m16ec:
lodsb
cmp al,20h
ja m16fa
m16f1:
cmp al,0dh
jz m1709
loop m16ec
jmp m178c
m16fa:
call m39e4 ;a-z
jnb m1731
cmp al,'.'
jz m1731
cmp al,';'
jz m1709
mov dl,80h
m1709:
jmp m178b
m170c:
lodsb
cmp al,20h
jbe m173e
m1711:
call m39e4 ;a-z
jnb m172e
cmp al,','
jz m1779
cmp al,':'
jz m176d
cmp al,';'
jz m178b
cmp al,27h
jz m174c
cmp al,'"'
jz m174c
cmp al,'='
jz m1738
m172e:
call m17a6
m1731:
stosb
xor dl,dl
m1734:
loop m170c
jmp m178c
m1738:
mov ax,3d00h ;=
stosw
jmp m1742
m173e:
cmp al,0dh
jz m178b
m1742:
mov byte ptr [di],0
or dx,4001h
jmp m1734
m174c:
mov ah,al
call m17a6
jmp m1765
m1753:
lodsb
cmp ah,al
jz m1731
cmp al,','
jz m1763
cmp al,0dh
jnz m1765
dec cx
jmp m1768
m1763:
mov al,1
m1765:
stosb
loop m1753
m1768:
mov al,ah
stosb
jmp m178c
m176d:
or dh,dh
jnz m1779
or dh,80h
mov word ptr [m7696],di
m1779:
stosb
xor dl,dl
jmp m1787
m177e:
lodsb
cmp al,20h
ja m1711
cmp al,0dh
jz m178b
m1787:
loop m177e
jmp m178c
m178b:
dec cx
m178c:
add cx,bx
jcxz m1797
m1790:
lodsb
and al,7fh
cmp al,0ah
loopnz m1790
m1797:
shl dl,1
pop dx
jb m179e
cmp di,dx
m179e:
stosb
mov word ptr [di-1],1a00h ;end
ret
m17a6:
test dl,1
jz m17ac
inc di
m17ac:
ret
m17ad:
mov bx,offset m7696
xor ax,ax
mov di,si
cmp [bx],ax
jz m17bf
mov di,[bx]
stosb
add cx,si
sub cx,di
m17bf:
mov si,di
dec si
cmp bx,offset m76a0
ja m17cc
mov [bx],si
inc bx
inc bx
m17cc:
repnz scasb
jnz m17da
jcxz m17da
mov byte ptr [di-1],0
mov al,','
jmp m17bf
m17da:
dec di
mov [bx],di
ret
m17de:
call m1573
jb m180a
add di,dx
cmp byte ptr [di],0
jz m180e
sub di,dx
m17ec:
mov al,7
sub si,di
inc si
call m23b1
cmp byte ptr [mef8],0
jnz m17fe ;ret
call m556
m17fe:
ret
m17ff:
mov di,offset m7694
call m1563
call m1573
jnb m17ec
m180a:
inc si
call m186f
m180e:
mov si,offset mefb
movsw
movsw
ret
m1814:
push di
call m1573
jb m1835
add di,dx
mov al,[di]
or al,al
jz m1854
call m1860
jz m182f
sub di,dx
call m17ec
jmp m185d ;ret
nop
m182f:
mov ax,[di+1]
pop di
clc
ret
m1835:
cmp byte ptr [mef8],0
jz m185d
mov al,[si+1]
call m39e4
jnb m1849
call m16a3
jmp m185d ;ret
m1849:
inc si
call m186f
xor ax,ax
mov [di],ax
mov [di+2],ax
m1854:
inc di
mov ax,di
mov dx,1
call m1a88
m185d:
pop di
stc
ret
m1860:
cmp al,':'
nop
jz m186e ;ret
cmp al,0c5h
jz m186e
cmp al,0c9h
jz m186e
m186e:
ret
m186f:
mov di,offset m775a
add di,word ptr [m203a]
m1876:
lodsb
stosb
inc word ptr [m203a]
dec cx
cmp al,20h
ja m1876
mov byte ptr [di-1],0
add word ptr [m203a],4
ret
m188b:
push bp
push bx
push cx
push di
push dx
push si
xor bp,bp
xor bx,bx
inc si
mov al,[si]
push ax
cmp al,27h
jz m18e3
cmp al,'"'
jz m18e3
cmp al,'L'
jz m18be
cmp al,'H'
jnz m18f8
cmp word ptr [si+1],'GI'
jnz m18f8
cmp word ptr [si+3],'(H'
;high
jnz m18f8
add si,5
mov ah,5
jmp m18d0
m18be:
cmp word ptr [si+1],'WO' ;low
jnz m18f8
cmp byte ptr [si+3],'('
jnz m18f8
add si,4
mov ah,3
m18d0:
mov di,si
mov al,')'
mov cx,dx
repnz scasb
jnz m193c
cmp word ptr [di-1],')'
jnz m193c
pop dx
jmp m18f5
m18e3:
lodsw
mov dx,ax
lodsw
cmp al,dl
jnz m193c
or ah,ah
jnz m193c
mov al,dh
pop dx
jmp m1a11 ;ret
m18f5:
mov al,[si]
push ax
m18f8:
cmp al,'-'
jz m1900
cmp al,'+'
jnz m1901
m1900:
inc si
m1901:
mov al,[si]
cmp al,'$'
jnz m190f
inc si
mov dx,word ptr [m7692]
jmp m199e
m190f:
mov dx,si
m1911:
lodsb
or al,al
jz m1922
cmp al,'-'
jz m1922
cmp al,'+'
jz m1922
cmp al,')'
jnz m1911
m1922:
mov ah,[si-2]
xchg si,dx
mov al,[si]
call m3a04
jnb m193f
sub dx,si
inc dx
call m1a2f
jnb m199e
mov ax,dx
pop dx
jmp m19cf
m193c:
jmp m19cc
m193f:
xor dx,dx
xor al,al
xchg al,ah
call m39ec
cmp al,'H'
jz m1987
cmp al,'B'
jz m196e
mov cx,10
m1953:
lodsb
cmp al,'0'
jnb m195b
dec si
jmp m199e
m195b:
call m39ec
cmp al,'D'
jz m199e
call m3a04
jb m19cc
call m1a20
jnb m1953
jmp m19d3
m196e:
lodsb
call m39ec
cmp al,'B'
jz m199e
call m3a0a
jb m19cc
and al,1
shl dx,1
jb m19d3
add dx,ax
jb m19d3
jmp m196e
m1987:
mov cx,10h
m198a:
lodsb
call m39ec
cmp al,'H'
jz m199e
call m39fa
jb m19cc
call m1a20
jnb m198a
jmp m19d3
m199e:
mov ax,dx
pop dx
push dx
cmp dl,'-'
mov dx,0
jnz m19ae
neg ax
not dx
m19ae:
add bx,ax
adc bp,dx
pop ax
mov al,[si]
or al,al
jz m19ee
cmp al,'0'
jnb m19cd
cmp al,')'
jz m19ee
cmp al,'-'
jz m19c9
cmp al,'+'
jnz m19cd
m19c9:
jmp m18f5
m19cc:
pop dx
m19cd:
xor ax,ax
m19cf:
pop si
stc
jmp m1a1a
m19d3:
mov al,[si]
or al,al
jz m19dc
inc si
jmp m19d3
m19dc:
pop dx
m19dd:
cmp byte ptr [mef8],0
jz m19cd
pop dx
push si
mov si,dx
call m169f
pop si
jmp m1a1a
m19ee:
xchg bx,ax
or bh,bh
jnz m1a01
cwd
cmp dx,bp
jnz m19dd
or ah,ah
jz m1a11
mov dx,0ff80h
jmp m1a0d
m1a01:
or bp,bp
jz m1a11
cwd
cmp dx,bp
jnz m19dd
mov dx,8000h
m1a0d:
cmp ax,dx
jb m19dd
m1a11:
test bh,4
jz m1a18
mov al,ah
m1a18:
pop dx
clc
m1a1a:
pop dx
pop di
pop cx
pop bx
pop bp
ret
m1a20:
call m39c6
push ax
mov ax,dx
mul cx
pop dx
jb m1a2e ;ret
xchg dx,ax
add dx,ax
m1a2e:
ret
m1a2f:
push si
mov di,0ff80h
push di
mov cx,dx
sub cx,2
xor ax,ax
stosb
repnz movsb
stosb
pop si
call m1573
jb m1a52
add di,dx
mov al,[di]
or al,al
jz m1a52
call m1860
jz m1a55
m1a52:
stc
pop si
ret
m1a55:
pop si
add si,dx
dec si
dec si
mov dx,[di+1]
ret
m1a5e:
push ax
mov di,offset md75a
mov cx,word ptr [m203c]
push dx
call m42f
jb m1a70
mov ax,di
jmp m1a81
m1a70:
add di,cx
push di
neg cx
movsb
dec cx
call maa4
neg cx
mov word ptr [m203c],cx
pop ax
m1a81:
pop dx
call m1a88
xor ax,ax
ret
m1a88:
push ax
mov di,word ptr [m3278]
add di,word ptr [m2044]
mov ax,word ptr [m2040]
stosw
pop ax
stosw
mov ax,word ptr [m7692]
stosw
mov ax,word ptr [m76a7]
stosw
mov al,dl
stosb
add word ptr [m2044],9
ret
m1aaa:
mov di,offset dc1c
mov cx,15ah
jmp m1ac6
m1ab2:
mov di,offset d5dc
add di,word ptr [m3e2a]
mov cx,word ptr [m3e2c]
jmp m1ac6
m1abf:
mov di,offset d5dc
mov cx,word ptr [m3e2a]
m1ac6:
push dx
call m42f
jb m1ad6
mov al,[di-1]
m1ad6:
ret
m1ad7:
dw 0,0,0
m1dfa:
xor bx,bx
m1dfc:
push cx
push dx
mov ax,di
mov al,20h
call m1e38
pop dx
inc dh
pop cx
loop m1dfc
ret
m1e38:
push bx
mov cx,8
m1e3c:
mov al,[bx+si]
inc bl
mov al,20h
loop m1e3c
pop bx
mov cx,8
m1e4e:
mov al,[bx+si]
inc bl
cmp al,20h
jnb m1e58
mov al,'.'
m1e58:
;
call mb13
loop m1e4e
mov al,20h
;
call mb13
add di,8
ret
m1f43:
mov al,4fh
test byte ptr [m7504],1
nop
jnz m1f50
mov al,byte ptr [m7152]
m1f50:
mov byte ptr [m7150],al
ret
m203a:
dw 0
m203c:
dw 0
m203e:
db 12 dup (0)
dw 0
m2040:
dw 0
m2042:
dw 0
m2044:
dw 0
m2046:
dw 0
m2048:
dw 0
m204a:
mov si,offset m5e3d
call ma9b
mov word ptr [m5e54],offset m5e3c
call m5b28 ;keybord
jb m20ba
mov word ptr [m7315],bx
mov di,offset m7308
mov si,bx
call ma70
mov byte ptr [di],0
mov di,offset m3da0
mov si,bx
call ma70
mov cx,offset m3db1
sub cx,di
mov al,20h
repz stosb
call m5e6f ;open file
jnb m2093
mov si,dx
jmp m21e0
m2093:
mov word ptr [m7481],ax
mov si,offset m5e38 ; hex
call ma9b
mov al,20h
mov si,offset m7484 ;file
call ma9b
mov si,offset da2
jmp m20c2
;jnb
m20ba:
jmp m6e5d
m20c2:
mov si,offset m7610
mov di,offset m771e
call m2543
mov word ptr [m7315],di
mov si,offset m5e37
call m63d0
mov si,offset m771e
call ma9b
m20e4:
mov dx,offset m771e
mov si,offset m72f4
call ma9b
call m63b8
xor ax,ax
mov byte ptr [m775a],al
mov byte ptr [md75a],al
mov word ptr [m203a],1
mov word ptr [m203c],1
mov byte ptr [m7510],al
mov di,offset m203e
mov cx,12
repnz stosb
mov byte ptr [mef8],1
mov byte ptr [mef9],al
mov bx,offset de5
mov word ptr [m1500],bx
mov [bx],ax
mov [bx+2],ax
m2133:
cmp byte ptr [mef9],0ffh
jz m21a2
mov si,word ptr [m326a]
mov cx,word ptr [m203e]
or ch,ch
jnz m2165
mov
di,0e000h
mov word ptr [m326a],di
mov di,word ptr [m326a]
call m6302 ; read file
mov word ptr [m203e],cx
jnb m2165
jmp m21da
nop
m2165:
inc word ptr [m2040]
jcxz m21a2
mov byte ptr [m76a6],0ffh
mov di,word ptr [m3266]
call m16c5
mov word ptr [m326a],si
mov word ptr [m203e],cx
mov al,0
jb m219d
jz m21c8
mov si,dx
mov cx,di
sub cx,si
nop
push word ptr [m2046]
call meff
pop word ptr [m2046]
jnb m21a5
m219d:
call m23ab ; err
jmp m2133
m21a2:
jmp m21ec
m21a5:
mov ax,word ptr [m2046]
mov bx,word ptr [m1500]
mov [bx + 2],ax
mov si,offset m76a9
lodsb
xor ah,ah
mov cx,ax
mov ax,word ptr [m2046]
sub ax,cx
mov di,word ptr [m326e]
add di,ax
repnz movsb
cmp di,ax
jb m21d5
m21c8:
cmp word ptr [m2042],0
ja m21d2
call m247a
m21d2:
jmp m2133
m21d5:
mov al,0ah
call m23ab
m21da:
call mc9e
call m503
m21e0:
mov word ptr [m203a],1
jmp m20ba
m21ec:
call m5e79 ;close file
cmp word ptr [m2042],0
ja m2224
mov bx,word ptr [m1500]
add bx,4
mov [bx],ax
mov [bx+2],ax
mov ax,word ptr [m2040]
shl ax,1
mov word ptr [m203e],ax
mov cx,word ptr [m2044]
jcxz m2224
mov di,word ptr [m326e]
mov si,word ptr [m3278]
m221a:
push cx
call m22d2
pop cx
sub cx,8
loop m221a
m2224:
mov si,offset m72e2 ;Error messages
call ma9b
mov ax,word ptr [m2042]
call mc0e
mov dx,offset m771e
call m5ebd ;crat file
m223d:
jb m21e0
mov bx,ax
mov bp,offset de5
cmp word ptr [m2042],0
jz m2280
nop
m2280:
nop
call m249d ; hex file
jb m223d ;2264
mov dx,offset m775a
mov ax,word ptr [m203e]
mov cx,ax
mov di,word ptr [m3274]
mov dx,di
stosw
mov si,di
call m638f
call m5e91
jb m223d ;2264
call m5e7e ;close file
mov word ptr [m203a],1
mov si,offset m7408
call ma7c
jmp m21da
m22d2:
lodsw
mov word ptr [m2040],ax
lodsw
mov bx,ax
lodsw
mov di,ax
mov cx,di
lodsw
mov dx,ax
lodsb
cmp bx,offset md75a
jnb m2309
cmp byte ptr [bx-1],0
jnz m2342
dec bx
m22f7:
dec bx
cmp byte ptr [bx-1],0
jnz m22f7
mov ax,8
push si
mov si,bx
call m23b1
pop si
ret
m2309:
push si
push dx
push di
mov si,bx
mov word ptr [m7692],cx
mov ah,al
push ax
call m188b
pop bx
jnb m2322
call m169f
stc
m2322:
pop di
pop dx
pop si
jb m2341
cmp dh,0c4h
jnz m2344
cmp bh,1
jz m2344
cmp dl,0c4h
jz m233e
inc di
cmp dl,0c2h
jnz m233e
inc di
m233e:
mov [di],al
m2341:
ret
m2342:
mov ax,[bx]
m2344:
cmp dx,0c5c5h
jnz m2350
xchg ah,al
mov [di],ax
ret
m2350:
cmp dl,0c6h
jnz m236d
add cx,2
mov [di+1],al
mov al,ah
xor ah,ch
and ah,0f8h
jnz m23a3
mov cl,5
shl al,cl
or [di],al
ret
m236d:
cmp dl,0c7h
jz m2378
cmp dx,0c58fh
jnz m237f
m2378:
xchg ah,al
mov [di+1],ax
ret
m237f:
mov bx,1
add cx,2
cmp dl,0c3h
jz m2396
cmp dh,0c3h
jnz m2394
cmp dl,89
jbe m2396
m2394:
inc bx
inc cx
m2396:
sub ax,cx
mov cx,ax
cbw
cmp ax,cx
jnz m23a3
mov [bx+di],al
ret
m23a3:
push si
mov al,9
call m23ab
pop si
ret
m23ab:
mov si,offset m7610
mov byte ptr [si],0
m23b1:
or al,al
jnz m23bd
cmp byte ptr [mefa],0
jz m23bd
ret
m23bd:
push bx
push si
cbw
mov bx,ax
cmp byte ptr [mef8],0
jz m23e8
push bx
call mad0
pop bx
jnb m23d3
jmp m21e0
m23d3:
inc byte ptr [mefa]
inc word ptr [m2042]
mov ax,word ptr [m2040]
call mc7d
mov al,20h
jmp m23f8
m23e8:
mov al,7
call mb5b
mov dx,word ptr [m7176]
add dx,102h
m23f8:
mov si,bx
shl si,1
mov si,[si + offset m74d2]
call maab
pop si
push cx
mov cx,12h
push si
call ma87
call mc9e
pop si
cmp byte ptr [mefb],0
jz m2477
push di
mov di,word ptr [m2048]
mov byte ptr [m712e],1
nop
mov ax,0a0dh
stosw
mov ax,word ptr [m2040]
call mc7d
mov al,20h
stosb
xchg si,bx
shl si,1
mov si,[si + offset m74d2]
call ma70
nop
mov si,bx
call ma70
mov word ptr [m2048],di
pop di
cmp word ptr [m2042],100 ;64h
jb m2477
mov byte ptr [mef9],0ffh
call mad0
mov si,16h
mov si,[si + offset m74d2]
call maab
m2477:
pop cx
pop bx
ret
m247a:
mov di,word ptr [m3274]
add di,word ptr [m2040]
add di,word ptr [m2040]
mov ax,-1
cmp byte ptr [m76a6],0c1h
ja m249b
mov ax,word ptr [m2046]
mov cl,byte ptr [m76a9]
xor ch,ch
sub ax,cx
m249b:
stosw
ret
m249d:
mov ax,word ptr [m326e]
;es
m24a2:
mov si,[bp]
mov cx,[bp+2]
add bp,4
sub cx,si
mov di,word ptr [m3278] ;es
jcxz m24c0
call m24ca
call m2535 ;write file
jb m24c9 ;ret
jmp m24a2
m24c0:
call m24f9
mov al,1ah
stosb
call m2535
m24c9:
ret
m24ca:
cmp cx,1000h
jbe m24da
sub bp,4
mov cx,1000h
add [bp],cx ;cs
m24da:
push cx
shr cx,1
shr cx,1
shr cx,1
shr cx,1
jcxz m24ef
m24e5:
push cx
mov cx,10h
call m24f9
pop cx
loop m24e5
m24ef:
pop cx
and cx,0fh
jcxz m24f8
call m24f9
m24f8:
ret
m24f9:
mov al,':'
stosb
jcxz m2523
mov al,cl
mov dl,al
call mb68
mov ax,si
add dl,al
add dl,ah
call mba1
mov ax,3030h
stosw
m2512:
lodsb
add dl,al
call mb68
loop m2512
mov al,dl
neg al
call mb68
jmp m2530
m2523:
mov ax,3030h
stosw
stosw
stosw
inc ah
stosw
mov ax,'FF'
stosw
m2530:
mov ax,0a0dh
stosw
ret
m2535:
mov dx,word ptr [m3278]
mov cx,di
sub
cx,word ptr [m3278]
call m5e91 ;write file
ret
m2542:
stosb
m2543:
lodsb
or al,al
jz m2552
cmp si,word ptr [m7315]
jb m2542
cmp al,'.'
jnz m2542
m2552:
ret
m2559:
m2a9f:
m2aa5:
ret
m2bde:
jmp m2aa5
m2be1:
mov word ptr [m7481],ax
mov si,offset m7356
call ma9b
mov di,word ptr [m713c]
call m2ccd
mov di,offset m713c
mov bp,di
mov ax,[di]
inc di
inc di
add ax,[di]
dec ax
stosw
stosw
stosw
mov bx,word ptr [m7481]
call m249d
jmp m2a9f
m2ccd:
ret
m3266:
dw offset m7610
dw 0
m326a: ; in file buff
dw 0e000h
m326e:
dw 0
dw 0,0
m3274:
dw e3274
m3278: ; hex file
buff
dw 0d000h ;offset ddd0 ;0,0
m38b7:
mov si,offset m745a ; block top
call ma9b
mov si,offset d28
m38c0:
call m641 ; keybord
jb m38f5
or cx,cx
jz m38f4
lodsb
;m38ca:
mov cl,4
xor dx,dx
xor ax,ax
m38d0:
lodsb
or al,al
jz m38f0
call m39ec
call m39c6
jnb m38e3
cmp al,'H'
jz m38f0
jmp m38f5
m38e3:
test dh,0f0h
jnz m38f5
shl dx,cl
add dx,ax
jb m38f5
jmp m38d0
m38f0:
or cx,cx
mov ax,dx
m38f4:
ret
m38f5:
stc
ret
m39a3:
and al,0fh
add al,90h
daa
adc al,40h
daa
ret
m39ac:
push cx
push ax
call m39c6
jb m39c3
mov cl,4
shl al,cl
xchg ah,al
call m39c6
jb m39c3
or al,ah
pop cx
pop cx
ret
m39c3:
pop ax
pop cx
ret
m39c6:
push ax
call m39ec
cmp al,'0'
jb m39e1
cmp al,'9'
jbe m39dc
cmp al,'A'
jb m39e1
cmp al,'F'
ja m39e1
sub al,7
m39dc:
and al,0fh
inc sp
inc sp
ret
m39e1:
pop ax
stc
ret
m39e4:
cmp al,'A'
jb m39f8
cmp al,'Z'
jbe m39f6
m39ec:
cmp al,'a'
jb m39f8
cmp al,'z'
ja m39f8
and al,5fh
m39f6:
clc
ret
m39f8:
stc
ret
m39fa:
cmp al,'F'
ja m3a12
cmp al,'A'
jb m3a04
m3a02:
clc
ret
m3a04:
cmp al,'9'
ja m3a12
jmp m3a0e
m3a0a:
cmp al,'1'
ja m3a12
m3a0e:
cmp al,'0'
jnz m3a02
m3a12:
stc
ret
m3a14:
dw 0
m3a16:
dw 6 ;5
m3a18:
dw 14 ;12
m3a1a:
dw 20 ;18
dw 40 ;25h
;m3a1e:
db 0
m3a1f:
dw 0
dw 0
m3a21:
push bp
mov bp,sp
mov ax,[bp+4]
push ax
push si
push dx
push cx
mov dx,ax
mov word ptr [m3a14],di
call m3cd9
mov ax,dx
call mba1
m3a4e:
sub dx,si
lodsb
mov byte ptr [m76aa],al
mov di,word ptr [m3a14]
add di,word ptr [m3a16]
call mb68
m3a66:
call m3d3c
mov ax,[bx+2]
mov bx,[bx]
mov word ptr [m76a6],bx
mov word ptr [m76a8],ax
m3a7c:
dec ah
jz m3a8d
lodsb
call mb68
jmp m3a7c
m3a8d:
add si,dx
mov [bp+4],si
mov cx,word ptr [m3a14]
add cx,word ptr [m3a18]
cmp di,cx
jnb m3aa0
mov di,cx
m3aa0:
mov al,byte ptr [m76a6]
call m3cee
mov al,20h
stosb
mov ax,word ptr [m3a14]
add ax,word ptr [m3a1a]
cmp di,ax
jnb m3ab6
mov di,ax
m3ab6:
mov al,byte ptr [m76a9]
cbw
mov si,[bp-4]
add [bp-4],ax
inc si
mov al,byte ptr [m76a7]
or al,al
jnz m3acb
jmp m3bd8
m3acb:
mov dl,al
call m3cf7
cmp dl,87h
ja m3ae2
mov al,byte ptr [m76aa]
and al,7
or al,'0'
mov [di-1],al
m3ae0:
jmp m3b5a
m3ae2:
cmp dl,0c1h
jb m3ae0
lodsb
jnz m3af0
call m3c17
jmp m3b5a
nop
m3af0:
cmp dl,0c2h
jnz m3b05
cmp byte ptr [m76aa],85h
jnz m3b00
lodsb
sub si,2
m3b00:
call m3c60
jmp m3b5a
m3b05:
cmp dl,0c3h
jnz m3b10
cbw
add ax,[bp+4]
jmp m3b30
m3b10:
cmp dl,0c6h
jnz m3b28
mov ah,byte ptr [m76aa]
mov cl,5
shr ah,cl
mov dx,[bp+4]
and dx,0f800h
add ax,dx
jmp m3b30
m3b28:
cmp dl,0c7h
jnz m3b5a
mov ah,al
lodsb
m3b30:
mov word ptr [m3a1f],ax
cmp ax,[bp-2]
jnz m3b3c
mov al,24h
jmp m3b56
m3b3c:
call m3c0c
call mba1
mov al,'H'
m3b56:
stosb
jmp m3c05 ;ret
m3b5a:
mov al,byte ptr [m76a8]
or al,al
jnz m3b64
jmp m3bd8
nop
m3b64:
mov dl,al
mov al,','
stosb
mov al,dl
call m3cf7
cmp dl,87h
ja m3b81
mov al,byte ptr [m76aa]
and al,7
or al,30h
mov [di-1],al
jmp m3bd8
nop
m3b81:
cmp dl,0c0h
jb m3bd8
ja m3b8d
mov byte ptr [di],2fh
inc di
m3b8d:
lodsb
cmp dl,0c1h
ja m3b98
call m3c17
jmp m3bd8
m3b98:
cmp dl,0c2h
jnz m3ba2
call m3c60
jmp m3bd8
m3ba2:
cmp dl,0c3h
jnz m3bc3
m3ba7:
cbw
add ax,[bp+4]
mov word ptr [m3a1f],ax
cmp ax,[bp-2]
jnz m3bb7
mov al,'$'
jmp m3c04
m3bb7:
jmp m3bfc ;
jz m3bfc
call m3c95
jmp m3bf5
m3bc3:
cmp dl,0c4h
jnz m3be5
mov byte ptr [di],'#'
inc di
mov ah,al
call m3c0c
call mb68
mov al,'H'
stosb
m3bd8:
cmp byte ptr [m76a6],86h
jnz m3c05
mov al,','
stosb
lodsb
jmp m3ba7
m3be5:
cmp dl,0c5h
jnz m3bd8
mov byte ptr [di],'#'
inc di
mov ah,al
lodsb
call m3c79
m3bf5:
jb m3bfc
call m3cd1
jmp m3c05
m3bfc:
call m3c0c
call mba1
mov al,'H'
m3c04:
stosb
m3c05:
pop cx
pop dx
pop si
mov sp,bp
pop bp
ret
m3c0c:
cmp ah,0a0h
jb m3c16 ;ret
;es
mov byte ptr [di],'0'
inc di
m3c16:
ret
m3c17:
xor ah,ah
call m3c87
jb m3c22
call m3cd1
ret
m3c22:
jb m3c2c
call m3d00
jnz m3c2c
ret
m3c2c:
push ax
and al,0f8h
cmp al,80h
jnb m3c3b
shr al,1
shr al,1
shr al,1
add al,20h
m3c3b:
call m3c4b
pop ax
jb m3c68
and al,7
or al,30h
mov ah,al
mov al,'.'
stosw
ret
m3c4b:
call m3c80
jb m3c54
call m3cd1
ret
m3c54:
cmp al,80h
jb m3c5e
call m3d0e
jnz m3c5e
ret
m3c5e:
stc
ret
m3c60:
xor ah,ah
call m3c4b
jb m3c68
ret
m3c68:
mov ah,al
call m3c0c
call mb68
mov al,'H'
stosb
ret
m3c74:
db 0
m3c75:
db ':'
m3c76:
db 0,0,0,0
m3c79:
db 0
db 0c6h,0c6h
m3c80:
mov byte ptr [m3c75],0c6h
jmp m3c8c
m3c87:
mov byte ptr [m3c75],0c7h
m3c8c:
; cmp byte ptr [m3a1e],0
; jnz m3c9a
stc
ret
m3c95:
mov byte ptr [m3c75],':'
;m3c9a:
push si
push cx
push di
push ax
mov word ptr [m3c76],ax
mov si,offset m3c74
mov di,offset m775a
mov cx,5
push cx
mov cx,word ptr [m203a]
call m42f
jnb m3cb9
pop ax
pop di
pop cx
pop si
ret
m3cb9:
pop ax
mov ax,cx
mov cx,word ptr [m203a]
sub cx,ax
m3cc2:
cmp byte ptr [di-1],0
jz m3ccb
dec di
loop m3cc2
m3ccb:
mov ax,di
pop di
pop cx
pop si
ret
m3cd1:
push si
mov si,ax
call ma70
pop si
ret
m3cd9:
push di
push cx
mov cx,word ptr [m7150]
xor ch,ch
sub cl,2
mov al,20h
repnz stosb
mov [di],cl
pop cx
pop di
ret
m3cee:
push di
mov di,offset dc1c
mov cx,15ah
jmp m3d16
m3cf7:
push di
mov di,offset dd76
mov cx,62h
jmp m3d16
m3d00:
push di
mov di,offset d5dc
add di,word ptr [m3e2a]
mov cx,word ptr [m3e2c]
jmp m3d16
m3d0e:
push di
mov di,offset d5dc
mov cx,word ptr [m3e2a]
m3d16:
repnz scasb
jnz m3d2f
pop cx
push si
mov si,di
inc si
mov di,cx
call m3d31
pop si
xor al,al
ret
m3d2f:
pop di
ret
m3d31:
call ma70
ret
m3d3c:
mov ah,al
and ax,0f00fh
mov cl,4
shr ah,cl
mov bl,al
test bl,8
jz m3d4e
mov bl,8
m3d4e:
mov al,9
mul ah
xor bh,bh
add bx,ax
shl bx,1
shl bx,1
add bx,offset d9dc
ret
m3da0:
db 20 dup (20h)
m3db1:
dw 0,0,0
m3db9:
db 80 dup (8)
m3df9:
dw 0
m3e2a:
dw 0
m3e2c:
dw 0
m3e4a:
dw 0
m42d9:
mov si,offset m5e38 ;HEX
call ma9b
mov word ptr [m5e54],offset m5e37 ; .
call m5b28 ;keybord
jnb m42f2
jmp m6e5d
m42f2:
mov word ptr [m7315],bx
call m5e6f
jnb m4303
jmp m6e5d
m4303:
mov word ptr [m7481],ax
xor cx,cx
call m62f6 ;read file
mov word ptr [m203e],cx
jb m4315
jmp m431e
m4313:
m4315:
jmp m43dc
m431e:
call m63b8
xor ax,ax
mov word ptr [m5ed2],ax
mov di,word ptr [m326a]
call m49c0
call m49bc
call m63da
jb m4313
mov word ptr [m2044],0
jmp m48ac
m43dc:
jmp m6e5d
m488b:
db 0
m488c:
db ' ORG ',0
m489d:
db ' END',0dh,0ah,1ah,0
dw 0,0,0
m48ac: ;out file
mov ax,0e0dh
int 10h
mov ax,0e0ah
int 10h
mov si,offset m5e3f ;xxx.txt
m5e3d
call ma9b
mov word ptr [m5e54],offset m5e50
call m5b28 ; keybord
call m5eb8 ;crate file
jb m48fd
mov word ptr [m7481],ax
mov
si,word ptr [m7142] ;xor si,si
m48d1:
mov word ptr [m326a],si
cmp si,word ptr [m7144]
jnb m48e5
nop
call m4900
jnb m48d1
m48e0:
jmp m48fd
m48e5:
mov bx,word ptr [m7481]
mov cx,22 ;14 ;e
mov dx,offset m489d
call m5e91 ;write file
jb m48e0
call m5e7e ;close file
mov word ptr [m7481],0
m48fd:
mov
byte ptr [m488b],0
jmp
m6e5d
m4900:
mov di,offset de5
mov cx,100
mov si,word ptr [m326a]
push si
repnz movsb
mov si,offset de5
pop ax
; add ax,word ptr [m7142]
mov di,offset md75a
m492d:
cmp byte ptr [m488b],0
jnz m4971
mov byte ptr [m488b],1
push si
push ax
mov si,offset m488c ; 20 20 ORG
call ma70
call m3c0c
call mba1
mov al,'H'
stosb
mov ax,0a0dh
stosw
pop ax
pop si
m4971:
push ax
nop
nop
call m3a21
m498a:
mov ax,0a0dh
stosw
pop ax
m498f:
cmp si,offset d1df
ja m4997
jmp m492d
m4997:
sub si,offset de5
add si,word ptr [m326a]
mov dx,offset md75a
mov cx,di
sub cx,dx
mov bx,word ptr [m7481]
call m5e91 ;write file
ret
m49bc:
mov di,word ptr [m326e]
m49c0:
mov cx,88 ;-1
repnz stosb
stosb
ret
m4eb0:
dw 0,0,0,0,0
m5357:
ret
m5b28:
mov si,offset m7483 ; file
jmp m5b30
m5b2d:
mov si,offset m7484 ;file
m5b30:
call ma9b
xor dx,dx
mov si,offset da2
call m641 ; keybord
jb m5bb8 ;ret
m5b4b:
call m5c35
mov word ptr [m5e52],bx
mov si,bx
mov byte ptr [md75a],0
mov word ptr [md75b],0
ret
m5b98:
mov al,'.'
repnz scasb
jz m5ba0 ; ret
jcxz m5ba3
m5ba0:
jmp m5c31
m5ba3:
cmp [di],al
jz m5ba0
mov si,word ptr [m5e54]
call ma70
xor al,al
stosb
jmp m5b4b
m5bb3:
m5bb8:
stc
ret
m5bba:
cmp byte ptr [md75a],1
jb m5bb3
jmp m5b4b
m5c31:
call m5c35
ret
m5c35:
mov si,offset da4
mov di,offset m7610
mov cx,40h
call m379
ret
m5c90:
ret
;m5ced:
mov si,offset m75ae
mov ax,[si]
cmp al,'.'
jz m5d13
m5cf7:
mov si,offset m75a5
mov al,[si]
test al,10h
jnz m5d09
test al,0eh
jnz m5d13
; call m5def
jb m5d13
m5d09:
mov si,offset m75ae
;call m5dc4
inc byte ptr [md75a]
m5d13:
inc byte ptr [md75c]
mov ah,4fh
int 21h
jnb m5cf7
ret
db 0
m5e37:
db '.'
m5e38:
db 'HEX',0
m5e3c:
db '.'
m5e3d:
db 'ASM',0
;m5e3e:
db '.'
m5e3f:
db 'TXT',0
m5e49:
db '*'
m5e50:
db '.*'
m5e52:
dw 0
m5e54:
dw 0
;m5e56:
dw 0
m5e58:
db 13 dup (20h)
dw 0
m5e66:
mov cx,3fh
mov ah,4eh
int 21h
jmp m5e74
m5e6f:
mov ax,3d00h
int 21h
m5e74:
jnb m5e78
mov al,1
m5e78:
ret
m5e79:
mov bx,word ptr [m7481]
m5e7e:
mov ah,3eh ;close
int 21h ;close file
ret
m5e83:
mov bx,word ptr [m7481]
mov ah,3fh
int 21h ;read file
jnb m5e90
mov al,2
m5e90:
ret
m5e91:
mov ah,40h ;read file
int 21h
jb m5e9b
cmp ax,cx
jnb m5ecf
m5e9b:
call m5e7e ;close file
ret
m5eb6:
clc
ret
m5eb8:
m5ebd:
mov cx,20h
mov ah,3ch
int 21h
jnb m5ecf ;ret
stc
m5ecf:
ret
m5ed0:
dw 0
m5ed2:
dw 0
m60e7:
m6143:
m614a:
ret
m62f6:
mov di,offset md75a
call m6302
jb m62ff
ret
m62ff:
ret
m6302:
push di
push cx
repnz movsb
mov dx,di
sub cx,dx
dec cx
call m5e83 ;read file
pop cx
pop si
jb m6316
add cx,ax
m6316:
ret
m6386:
mov al,0ah
mov di,si
repnz scasb
mov si,di
ret
m638f:
push cx
m6390:
lodsb
xor al,cl
stosb
loop m6390
pop cx
ret
m63b8:
mov di,word ptr [m3274]
mov cx,100h ;offset m57ff
xor ax,ax
stosw
not ax
repnz stosw
mov di,word ptr [m3278]
not ax
stosw
ret
m63d0:
mov cx,5
mov di,word ptr [m7315]
repnz movsb
ret
m63da:
mov word ptr [m5ed0],0
mov word ptr [m7142],-1
mov word ptr [m7144],0
mov si,offset md75a
cmp byte ptr [si],2
jnz m63f7
jmp m65be
m63f7:
mov cx,word ptr [m203e]
cmp cx,2dh ;'-'
ja m640c
;call m62f6
mov word ptr [m203e],cx
cmp cx,11 ;b
jb m645a
m640c:
mov al,[si]
cmp al,':'
jz m6423
cmp al,1ah
jz m645a
mov cx,word ptr [m203e]
call m6386
mov word ptr [m203e],cx
jmp m63f7
m6423:
lodsb ;:
lodsw
call m39ac
jb m6454
xor ah,ah
mov word ptr [m713e],ax
shl ax,1
add ax,13 ;d
sub word ptr [m203e],ax
call m653d
jb m6476
add ax,word ptr [m5ed2]
mov word ptr [m713c],ax
lodsw
call m39ac
jb m6476
cmp al,0
jnz m6458
call m6477
call m6491
m6454:
jb m6476
jmp m63f7
m6458:
lodsw
lodsw
m645a:
cmp word ptr [m5ed2],0
jnz m6464
m6464:
xor bx,bx
mov word ptr [m4eb0],bx
xchg bx,word ptr [m7481]
call m5e7e
cmp word ptr [m5ed0],1
m6476:
ret
m6477:
mov ax,word ptr [m713c]
cmp ax,word ptr [m7142]
jnb m6483
mov word ptr [m7142],ax
m6483:
add ax,word ptr [m713e]
cmp ax,word ptr [m7144]
jbe m6490 ;ret
mov word ptr [m7144],ax
m6490:
ret
m6491:
;es [326e]
mov di,word ptr [m713c]
mov cx,word ptr [m713e]
cmp byte ptr [m7135],7
jz m64a8
m64a8:
lodsw
call m39ac
jb m64c0
stosb
inc word ptr [m5ed0]
cmp byte ptr [m7135],7
jz m64bd
m64bd:
loop m64a8
clc
m64c0:
lodsw
lodsw
ret
m653d:
lodsw
call m39ac
jb m654d ;ret
mov dh,al
lodsw
call m39ac
jb m654d
mov ah,dh
m654d:
ret
m65be:
m6e50:
ret
m6e5d:
mov si,offset
m72a6
call ma9b
mov si,offset ded8
call maab
m6eae:
mov di,offset d114
call m5bb
call m6f78
jb m6e5d
push di ;6eeb
ret
m6f78:
call m6fa3
jb m6f84
ret
m6f84:
stc
ret
m6f93:
push dx
push cx
call di
pop cx
pop dx
call mc8d
ret
m6fa3:
push ax
push di
push [di+2]
mov cx,[di]
add di,4
repnz scasw
mov cx,di
pop di
jnz m6fc9
pop ax
add ax,6
sub cx,ax
add di,cx
mov di,[di]
jmp m6fcb
m6fc9:
stc
pop di
m6fcb:
pop ax
ret
m7070:
ret
m70eb:
mov ax,4c00h
int 21h
m7127:
dw 0
dw 0,0,0
m712e:
db 0
dw 0,0,0,0
m7135:
dw 0
dw 0,0
m713c:
dw 0
m713e:
dw 0
dw 0
m7142:
dw 0
m7144:
dw 0
dw 0,0,0
m714a:
dw 149h,0d06h,1,0,0,0
m7150:
dw 1627h
m7152:
dw 127h
dw 0d22h
m7156:
dw de27
dw 0,0,0,0,0
dw 0
dw 0,0,0,0,0
m7176:
dw d1014
dw 0
db 111 dup (0)
m72a6:
db 0ah,0ah,0dh,'Main Menu',0ah,0ah,0dh,0
m72e2:
db 0ah
db 0dh,'Error message: ',0
m72f4:
db 0dh,0ah,'Assembling file: '
m7308:
db 88 dup (20h)
m7315:
dw 0,0,0,0,0
m7356:
db 0dh,0ah,'Please wait...',0
m7368:
db 'Press any key to continue...',0
m7387:
db 'Start addr : ',0
m7408:
db 0dh,0ah,'Completed !',0
m745a:
db 'Block top : ',0
m7481:
dw 0
db 20h
m7483:
db 20h
m7484:
db 'File: ',0
;m748b:
db 'Find: ',0
m74d2:
dw offset d1044
dw offset d1051
dw offset d106a
dw offset d107b
dw offset d1096
dw offset d10a8
dw offset d10bc
dw offset d10cb
dw offset d10db
dw offset d10e7
dw offset d10fc
dw offset d1112
;
db 'NONAME.HEX',0
d1051:
db 'Extra characters on line',0
d106a:
db 'Operands is lost',0
d107b:
db 'ORG address is less than: ',0
d1096:
db 'Invalid operand: ',0
d10a8:
db 'Invalid instruction: ',0
d10bc:
db 'Invalid data: ',0
d10cb:
db 'Multi-defined: ',0
d10db:
db 'Undefined: ',0
d10e7:
db 'Adress out of range',0
d10fc:
db 'OBJ file is too large',0
d1112:
db 'Too many errors detected & abort
!',0
;
db 0dh,0ah
dw 0
;m74f4:
dw 0,0
;
db 'options',0
m7504:
db 0
m7505:
dw 0,0,0
m7510:
dw 0
db 150 dup (0)
m75a5:
dw 0,0,0
m75ae:
dw 0
db 111 dup (0)
m7610:
dw 0
db 111 dup (0)
m7692:
dw 0
m7694:
dw 0
m7696:
dw 0
m7698:
dw 0
m769a:
dw 0
m769c:
dw 0
m769e:
dw 0
m76a0:
dw 0,0,0
m76a6:
db 0
m76a7:
db 0
m76a8:
db 0
m76a9:
db 0
m76aa:
db 0
m76ab:
dw 0
db 111 dup (0)
m771e: ; hex file name
dw 0
db 55 dup (0)
m775a:
dw 0
db 222 dup (0)
dw 0
dw 0
dw 0
md75a:
db 0
md75b:
db 0
md75c:
db 0
db 111 dup (0)
e3274:
db 111 dup (0)
;d928:
dw
0h
dw 0
dw 0
dw 0
d27:
db 0
d28:
dw 0,0,0,0
da2:
db 0
da3:
db 0
da4:
db 0
db 40 dup (0)
de5:
dw 0,0,0
d1df:
db 111 dup (0)
d125:
dw 0
;d1df:
dw 0
d2de:
dw 0
db 12 dup (0)
dw 0
de27:
dw 0
db 33 dup (0)
d1014:
dw 0
m8000:
db 0
code ends
end m0000