mirror of https://github.com/wwarthen/RomWBW.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1494 lines
15 KiB
1494 lines
15 KiB
extrn .begin,.chl,.swt
|
|
extrn csave,cret,.move
|
|
DSEG
|
|
public visible_
|
|
visible_:
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 1
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
DB 0
|
|
CSEG
|
|
PUBLIC cvt2h_
|
|
cvt2h_: lxi d,.2
|
|
call csave
|
|
LXI H,.1+0
|
|
PUSH H
|
|
LXI H,14-.2
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
CALL fopen_
|
|
POP D
|
|
POP D
|
|
XCHG
|
|
LXI H,2-.2
|
|
DAD SP
|
|
MOV M,E
|
|
INX H
|
|
MOV M,D
|
|
LXI H,12-.2
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
LXI H,.1+2
|
|
PUSH H
|
|
LXI H,6-.2
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
CALL fprintf_
|
|
POP D
|
|
POP D
|
|
POP D
|
|
LXI H,12-.2
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
LXI H,-36-.2
|
|
DAD SP
|
|
PUSH H
|
|
CALL strcpy_
|
|
POP D
|
|
POP D
|
|
LXI H,0
|
|
XCHG
|
|
LXI H,-30-.2
|
|
DAD SP
|
|
MOV M,E
|
|
LXI H,10-.2
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
LXI H,-36-.2
|
|
DAD SP
|
|
PUSH H
|
|
LXI H,.1+46
|
|
PUSH H
|
|
LXI H,8-.2
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
CALL fprintf_
|
|
XCHG
|
|
LXI H,8
|
|
DAD SP
|
|
SPHL
|
|
LXI H,0
|
|
XCHG
|
|
LXI H,0-.2
|
|
DAD SP
|
|
MOV M,E
|
|
INX H
|
|
MOV M,D
|
|
JMP .4
|
|
.3:
|
|
LXI H,0-.2
|
|
DAD SP
|
|
PUSH H
|
|
MOV A,M
|
|
INX H
|
|
MOV H,M
|
|
MOV L,A
|
|
INX H
|
|
XCHG
|
|
POP H
|
|
MOV M,E
|
|
INX H
|
|
MOV M,D
|
|
.4:
|
|
LXI H,0-.2
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
LXI H,10-.2
|
|
DAD SP
|
|
MOV A,M
|
|
INX H
|
|
MOV H,M
|
|
MOV L,A
|
|
CALL .lt
|
|
JZ .5
|
|
LXI H,8-.2
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
LXI H,0-.2
|
|
DAD SP
|
|
MOV A,M
|
|
INX H
|
|
MOV H,M
|
|
MOV L,A
|
|
DAD D
|
|
MOV E,M
|
|
MVI D,0
|
|
PUSH D
|
|
LXI H,.1+73
|
|
PUSH H
|
|
LXI H,6-.2
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
CALL fprintf_
|
|
POP D
|
|
POP D
|
|
POP D
|
|
LXI H,0-.2
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
LXI H,7
|
|
CALL .an
|
|
PUSH H
|
|
LXI H,7
|
|
POP D
|
|
CALL .eq
|
|
JZ .6
|
|
LXI H,.1+81
|
|
PUSH H
|
|
LXI H,4-.2
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
CALL fprintf_
|
|
POP D
|
|
POP D
|
|
LXI H,0-.2
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
LXI H,-8
|
|
CALL .an
|
|
XCHG
|
|
LXI H,-2-.2
|
|
DAD SP
|
|
MOV M,E
|
|
INX H
|
|
MOV M,D
|
|
LXI H,-2-.2
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
LXI H,8
|
|
DAD D
|
|
XCHG
|
|
LXI H,-4-.2
|
|
DAD SP
|
|
MOV M,E
|
|
INX H
|
|
MOV M,D
|
|
LXI H,-2-.2
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
LXI H,.1+86
|
|
PUSH H
|
|
LXI H,6-.2
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
CALL fprintf_
|
|
POP D
|
|
POP D
|
|
POP D
|
|
LXI H,-2-.2
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
LXI H,-6-.2
|
|
DAD SP
|
|
MOV M,E
|
|
INX H
|
|
MOV M,D
|
|
JMP .8
|
|
.7:
|
|
LXI H,-6-.2
|
|
DAD SP
|
|
PUSH H
|
|
MOV A,M
|
|
INX H
|
|
MOV H,M
|
|
MOV L,A
|
|
INX H
|
|
XCHG
|
|
POP H
|
|
MOV M,E
|
|
INX H
|
|
MOV M,D
|
|
.8:
|
|
LXI H,-6-.2
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
LXI H,-4-.2
|
|
DAD SP
|
|
MOV A,M
|
|
INX H
|
|
MOV H,M
|
|
MOV L,A
|
|
CALL .lt
|
|
JZ .9
|
|
LXI H,8-.2
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
LXI H,-6-.2
|
|
DAD SP
|
|
MOV A,M
|
|
INX H
|
|
MOV H,M
|
|
MOV L,A
|
|
DAD D
|
|
MOV E,M
|
|
MVI D,0
|
|
LXI H,visible_
|
|
DAD D
|
|
MOV E,M
|
|
MVI D,0
|
|
PUSH D
|
|
LXI H,1
|
|
POP D
|
|
CALL .eq
|
|
JZ .10
|
|
LXI H,8-.2
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
LXI H,-6-.2
|
|
DAD SP
|
|
MOV A,M
|
|
INX H
|
|
MOV H,M
|
|
MOV L,A
|
|
DAD D
|
|
MOV E,M
|
|
MVI D,0
|
|
PUSH D
|
|
LXI H,.1+94
|
|
PUSH H
|
|
LXI H,6-.2
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
CALL fprintf_
|
|
POP D
|
|
POP D
|
|
POP D
|
|
JMP .11
|
|
.10:
|
|
LXI H,.1+98
|
|
PUSH H
|
|
LXI H,4-.2
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
CALL fprintf_
|
|
POP D
|
|
POP D
|
|
.11:
|
|
JMP .7
|
|
.9:
|
|
LXI H,.1+101
|
|
PUSH H
|
|
LXI H,4-.2
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
CALL fprintf_
|
|
POP D
|
|
POP D
|
|
LXI H,.1+104
|
|
PUSH H
|
|
LXI H,4-.2
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
CALL fprintf_
|
|
POP D
|
|
POP D
|
|
.6:
|
|
JMP .3
|
|
.5:
|
|
LXI H,12-.2
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
LXI H,.1+107
|
|
PUSH H
|
|
LXI H,6-.2
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
CALL fprintf_
|
|
POP D
|
|
POP D
|
|
POP D
|
|
LXI H,2-.2
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
CALL fclose_
|
|
POP D
|
|
RET
|
|
.2 EQU -42
|
|
.1:
|
|
DB 119,0,47,42,32,37,115,32,112,114,111,100,117,99,101
|
|
DB 100,32,97,117,116,111,109,97,116,105,99,97,108,108,121
|
|
DB 32,98,121,32,99,118,116,50,104,46,104,32,42,47,10
|
|
DB 0,117,110,115,105,103,110,101,100,32,99,104,97,114,32
|
|
DB 37,115,91,37,100,93,32,61,32,123,10,9,0,48,120
|
|
DB 37,48,50,120,44,0,32,47,42,32,0,32,37,48,52
|
|
DB 120,58,32,0,37,99,32,0,46,32,0,42,47,0,10
|
|
DB 9,0,125,59,10,47,42,32,101,111,102,32,45,32,37
|
|
DB 115,32,42,47,10,0
|
|
PUBLIC cvt2inc_
|
|
cvt2inc_: lxi d,.13
|
|
call csave
|
|
LXI H,.12+0
|
|
PUSH H
|
|
LXI H,14-.13
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
CALL fopen_
|
|
POP D
|
|
POP D
|
|
XCHG
|
|
LXI H,2-.13
|
|
DAD SP
|
|
MOV M,E
|
|
INX H
|
|
MOV M,D
|
|
LXI H,12-.13
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
LXI H,.12+2
|
|
PUSH H
|
|
LXI H,6-.13
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
CALL fprintf_
|
|
POP D
|
|
POP D
|
|
POP D
|
|
LXI H,12-.13
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
LXI H,-36-.13
|
|
DAD SP
|
|
PUSH H
|
|
CALL strcpy_
|
|
POP D
|
|
POP D
|
|
LXI H,0
|
|
XCHG
|
|
LXI H,-30-.13
|
|
DAD SP
|
|
MOV M,E
|
|
LXI H,-38-.13
|
|
DAD SP
|
|
PUSH H
|
|
LXI H,.12+45
|
|
PUSH H
|
|
LXI H,6-.13
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
CALL fprintf_
|
|
POP D
|
|
POP D
|
|
POP D
|
|
LXI H,.12+50
|
|
PUSH H
|
|
LXI H,4-.13
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
CALL fprintf_
|
|
POP D
|
|
POP D
|
|
LXI H,0
|
|
XCHG
|
|
LXI H,0-.13
|
|
DAD SP
|
|
MOV M,E
|
|
INX H
|
|
MOV M,D
|
|
LXI H,0
|
|
XCHG
|
|
LXI H,0-.13
|
|
DAD SP
|
|
MOV M,E
|
|
INX H
|
|
MOV M,D
|
|
JMP .15
|
|
.14:
|
|
LXI H,0-.13
|
|
DAD SP
|
|
PUSH H
|
|
MOV A,M
|
|
INX H
|
|
MOV H,M
|
|
MOV L,A
|
|
INX H
|
|
XCHG
|
|
POP H
|
|
MOV M,E
|
|
INX H
|
|
MOV M,D
|
|
.15:
|
|
LXI H,0-.13
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
LXI H,10-.13
|
|
DAD SP
|
|
MOV A,M
|
|
INX H
|
|
MOV H,M
|
|
MOV L,A
|
|
CALL .lt
|
|
JZ .16
|
|
LXI H,8-.13
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
LXI H,0-.13
|
|
DAD SP
|
|
MOV A,M
|
|
INX H
|
|
MOV H,M
|
|
MOV L,A
|
|
DAD D
|
|
MOV E,M
|
|
MVI D,0
|
|
PUSH D
|
|
LXI H,.12+58
|
|
PUSH H
|
|
LXI H,6-.13
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
CALL fprintf_
|
|
POP D
|
|
POP D
|
|
POP D
|
|
LXI H,0-.13
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
LXI H,7
|
|
CALL .an
|
|
PUSH H
|
|
LXI H,7
|
|
POP D
|
|
CALL .eq
|
|
JZ .17
|
|
LXI H,.12+64
|
|
PUSH H
|
|
LXI H,4-.13
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
CALL fprintf_
|
|
POP D
|
|
POP D
|
|
LXI H,0-.13
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
LXI H,-8
|
|
CALL .an
|
|
XCHG
|
|
LXI H,-2-.13
|
|
DAD SP
|
|
MOV M,E
|
|
INX H
|
|
MOV M,D
|
|
LXI H,-2-.13
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
LXI H,8
|
|
DAD D
|
|
XCHG
|
|
LXI H,-4-.13
|
|
DAD SP
|
|
MOV M,E
|
|
INX H
|
|
MOV M,D
|
|
LXI H,-2-.13
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
LXI H,.12+69
|
|
PUSH H
|
|
LXI H,6-.13
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
CALL fprintf_
|
|
POP D
|
|
POP D
|
|
POP D
|
|
LXI H,-2-.13
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
LXI H,-6-.13
|
|
DAD SP
|
|
MOV M,E
|
|
INX H
|
|
MOV M,D
|
|
JMP .19
|
|
.18:
|
|
LXI H,-6-.13
|
|
DAD SP
|
|
PUSH H
|
|
MOV A,M
|
|
INX H
|
|
MOV H,M
|
|
MOV L,A
|
|
INX H
|
|
XCHG
|
|
POP H
|
|
MOV M,E
|
|
INX H
|
|
MOV M,D
|
|
.19:
|
|
LXI H,-6-.13
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
LXI H,-4-.13
|
|
DAD SP
|
|
MOV A,M
|
|
INX H
|
|
MOV H,M
|
|
MOV L,A
|
|
CALL .lt
|
|
JZ .20
|
|
LXI H,8-.13
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
LXI H,-6-.13
|
|
DAD SP
|
|
MOV A,M
|
|
INX H
|
|
MOV H,M
|
|
MOV L,A
|
|
DAD D
|
|
MOV E,M
|
|
MVI D,0
|
|
LXI H,visible_
|
|
DAD D
|
|
MOV E,M
|
|
MVI D,0
|
|
PUSH D
|
|
LXI H,1
|
|
POP D
|
|
CALL .eq
|
|
JZ .21
|
|
LXI H,8-.13
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
LXI H,-6-.13
|
|
DAD SP
|
|
MOV A,M
|
|
INX H
|
|
MOV H,M
|
|
MOV L,A
|
|
DAD D
|
|
MOV E,M
|
|
MVI D,0
|
|
PUSH D
|
|
LXI H,.12+77
|
|
PUSH H
|
|
LXI H,6-.13
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
CALL fprintf_
|
|
POP D
|
|
POP D
|
|
POP D
|
|
JMP .22
|
|
.21:
|
|
LXI H,.12+81
|
|
PUSH H
|
|
LXI H,4-.13
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
CALL fprintf_
|
|
POP D
|
|
POP D
|
|
.22:
|
|
JMP .18
|
|
.20:
|
|
LXI H,10-.13
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
XCHG
|
|
DCX H
|
|
PUSH H
|
|
LXI H,2-.13
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
POP H
|
|
CALL .ne
|
|
JZ .23
|
|
LXI H,.12+84
|
|
PUSH H
|
|
LXI H,4-.13
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
CALL fprintf_
|
|
POP D
|
|
POP D
|
|
.23:
|
|
JMP .24
|
|
.17:
|
|
LXI H,.12+93
|
|
PUSH H
|
|
LXI H,4-.13
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
CALL fprintf_
|
|
POP D
|
|
POP D
|
|
.24:
|
|
JMP .14
|
|
.16:
|
|
LXI H,.12+95
|
|
PUSH H
|
|
LXI H,4-.13
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
CALL fprintf_
|
|
POP D
|
|
POP D
|
|
LXI H,2-.13
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
CALL fclose_
|
|
POP D
|
|
RET
|
|
.13 EQU -42
|
|
.12:
|
|
DB 119,0,59,32,37,115,32,112,114,111,100,117,99,101,100
|
|
DB 32,97,117,116,111,109,97,116,105,99,97,108,108,121,32
|
|
DB 98,121,32,99,118,116,50,105,110,99,46,104,32,10,0
|
|
DB 37,115,58,10,0,32,32,46,68,66,32,32,0,37,48
|
|
DB 51,120,104,0,32,32,59,32,0,32,37,48,52,120,58
|
|
DB 32,0,37,99,32,0,46,32,0,10,32,32,46,68,66
|
|
DB 32,32,0,44,0,10,0
|
|
PUBLIC main_
|
|
main_: lxi d,.26
|
|
call csave
|
|
LXI H,.25+0
|
|
PUSH H
|
|
CALL banner_
|
|
POP D
|
|
LXI H,1
|
|
XCHG
|
|
LXI H,8-.26
|
|
DAD SP
|
|
MOV A,M
|
|
INX H
|
|
MOV H,M
|
|
MOV L,A
|
|
CALL .eq
|
|
JZ .27
|
|
LXI H,.25+9
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
LXI H,1
|
|
PUSH H
|
|
CALL exit_
|
|
POP D
|
|
.27:
|
|
LXI H,.25+40
|
|
PUSH H
|
|
LXI H,12-.26
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
XCHG
|
|
INX H
|
|
INX H
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
CALL fopen_
|
|
POP D
|
|
POP D
|
|
XCHG
|
|
LXI H,-167-.26
|
|
DAD SP
|
|
MOV M,E
|
|
INX H
|
|
MOV M,D
|
|
LXI H,-167-.26
|
|
DAD SP
|
|
mov a,m
|
|
inx h
|
|
ora m
|
|
JNZ .28
|
|
LXI H,.25+42
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
LXI H,1
|
|
PUSH H
|
|
CALL exit_
|
|
POP D
|
|
.28:
|
|
LXI H,10-.26
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
XCHG
|
|
INX H
|
|
INX H
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
LXI H,.25+72
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
POP D
|
|
LXI H,0
|
|
XCHG
|
|
LXI H,-2-.26
|
|
DAD SP
|
|
MOV M,E
|
|
INX H
|
|
MOV M,D
|
|
LXI H,-167-.26
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
LXI H,1
|
|
PUSH H
|
|
LXI H,128
|
|
PUSH H
|
|
LXI H,-127-.26
|
|
DAD SP
|
|
PUSH H
|
|
CALL fread_
|
|
XCHG
|
|
LXI H,8
|
|
DAD SP
|
|
SPHL
|
|
LXI H,-4-.26
|
|
DAD SP
|
|
MOV M,E
|
|
INX H
|
|
MOV M,D
|
|
.29:
|
|
LXI H,0
|
|
XCHG
|
|
LXI H,-4-.26
|
|
DAD SP
|
|
MOV A,M
|
|
INX H
|
|
MOV H,M
|
|
MOV L,A
|
|
CALL .lt
|
|
JZ .30
|
|
LXI H,-2-.26
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
LXI H,.25+85
|
|
PUSH H
|
|
LXI H,-161-.26
|
|
DAD SP
|
|
PUSH H
|
|
CALL sprintf_
|
|
POP D
|
|
POP D
|
|
POP D
|
|
LXI H,-165-.26
|
|
DAD SP
|
|
PUSH H
|
|
LXI H,128
|
|
PUSH H
|
|
LXI H,-129-.26
|
|
DAD SP
|
|
PUSH H
|
|
CALL cvt2h_
|
|
POP D
|
|
POP D
|
|
POP D
|
|
LXI H,-2-.26
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
LXI H,.25+96
|
|
PUSH H
|
|
LXI H,-161-.26
|
|
DAD SP
|
|
PUSH H
|
|
CALL sprintf_
|
|
POP D
|
|
POP D
|
|
POP D
|
|
LXI H,-165-.26
|
|
DAD SP
|
|
PUSH H
|
|
LXI H,128
|
|
PUSH H
|
|
LXI H,-129-.26
|
|
DAD SP
|
|
PUSH H
|
|
CALL cvt2inc_
|
|
POP D
|
|
POP D
|
|
POP D
|
|
LXI H,0
|
|
XCHG
|
|
LXI H,2-.26
|
|
DAD SP
|
|
MOV M,E
|
|
INX H
|
|
MOV M,D
|
|
JMP .32
|
|
.31:
|
|
LXI H,2-.26
|
|
DAD SP
|
|
PUSH H
|
|
MOV A,M
|
|
INX H
|
|
MOV H,M
|
|
MOV L,A
|
|
INX H
|
|
XCHG
|
|
POP H
|
|
MOV M,E
|
|
INX H
|
|
MOV M,D
|
|
.32:
|
|
LXI H,2-.26
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
LXI H,8
|
|
CALL .lt
|
|
JZ .33
|
|
LXI H,-2-.26
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
LXI H,.25+109
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
POP D
|
|
LXI H,16
|
|
XCHG
|
|
LXI H,-2-.26
|
|
DAD SP
|
|
PUSH H
|
|
MOV A,M
|
|
INX H
|
|
MOV H,M
|
|
MOV L,A
|
|
DAD D
|
|
XCHG
|
|
POP H
|
|
MOV M,E
|
|
INX H
|
|
MOV M,D
|
|
LXI H,0
|
|
XCHG
|
|
LXI H,0-.26
|
|
DAD SP
|
|
MOV M,E
|
|
INX H
|
|
MOV M,D
|
|
JMP .35
|
|
.34:
|
|
LXI H,0-.26
|
|
DAD SP
|
|
PUSH H
|
|
MOV A,M
|
|
INX H
|
|
MOV H,M
|
|
MOV L,A
|
|
INX H
|
|
XCHG
|
|
POP H
|
|
MOV M,E
|
|
INX H
|
|
MOV M,D
|
|
.35:
|
|
LXI H,0-.26
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
LXI H,16
|
|
CALL .lt
|
|
JZ .36
|
|
LXI H,2-.26
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
XCHG
|
|
DAD H
|
|
DAD H
|
|
DAD H
|
|
XCHG
|
|
LXI H,0-.26
|
|
DAD SP
|
|
MOV A,M
|
|
INX H
|
|
MOV H,M
|
|
MOV L,A
|
|
DAD D
|
|
XCHG
|
|
LXI H,-133-.26
|
|
DAD SP
|
|
DAD D
|
|
MOV E,M
|
|
MVI D,0
|
|
PUSH D
|
|
LXI H,.25+116
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
POP D
|
|
JMP .34
|
|
.36:
|
|
LXI H,.25+122
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
LXI H,0
|
|
XCHG
|
|
LXI H,0-.26
|
|
DAD SP
|
|
MOV M,E
|
|
INX H
|
|
MOV M,D
|
|
JMP .38
|
|
.37:
|
|
LXI H,0-.26
|
|
DAD SP
|
|
PUSH H
|
|
MOV A,M
|
|
INX H
|
|
MOV H,M
|
|
MOV L,A
|
|
INX H
|
|
XCHG
|
|
POP H
|
|
MOV M,E
|
|
INX H
|
|
MOV M,D
|
|
.38:
|
|
LXI H,0-.26
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
LXI H,16
|
|
CALL .lt
|
|
JZ .39
|
|
LXI H,2-.26
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
XCHG
|
|
DAD H
|
|
DAD H
|
|
DAD H
|
|
XCHG
|
|
LXI H,0-.26
|
|
DAD SP
|
|
MOV A,M
|
|
INX H
|
|
MOV H,M
|
|
MOV L,A
|
|
DAD D
|
|
XCHG
|
|
LXI H,-133-.26
|
|
DAD SP
|
|
DAD D
|
|
MOV E,M
|
|
LXI H,-5-.26
|
|
DAD SP
|
|
MOV M,E
|
|
LXI H,-5-.26
|
|
DAD SP
|
|
MOV E,M
|
|
MVI D,0
|
|
LXI H,visible_
|
|
DAD D
|
|
MOV E,M
|
|
MVI D,0
|
|
PUSH D
|
|
LXI H,1
|
|
POP D
|
|
CALL .eq
|
|
JZ .40
|
|
LXI H,-5-.26
|
|
DAD SP
|
|
MOV E,M
|
|
MVI D,0
|
|
PUSH D
|
|
LXI H,.25+125
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
POP D
|
|
JMP .41
|
|
.40:
|
|
LXI H,.25+128
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
.41:
|
|
JMP .37
|
|
.39:
|
|
LXI H,.25+130
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
JMP .31
|
|
.33:
|
|
LXI H,.25+132
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
LXI H,-167-.26
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
LXI H,1
|
|
PUSH H
|
|
LXI H,128
|
|
PUSH H
|
|
LXI H,-127-.26
|
|
DAD SP
|
|
PUSH H
|
|
CALL fread_
|
|
XCHG
|
|
LXI H,8
|
|
DAD SP
|
|
SPHL
|
|
LXI H,-4-.26
|
|
DAD SP
|
|
MOV M,E
|
|
INX H
|
|
MOV M,D
|
|
JMP .29
|
|
.30:
|
|
LXI H,-167-.26
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
CALL fclose_
|
|
POP D
|
|
LXI H,0
|
|
PUSH H
|
|
CALL exit_
|
|
POP D
|
|
RET
|
|
.26 EQU -171
|
|
.25:
|
|
DB 68,85,77,80,46,67,79,77,0,83,111,114,114,121,44
|
|
DB 32,110,111,32,105,110,112,117,116,32,102,105,108,101,32
|
|
DB 115,112,101,99,105,102,105,101,100,0,114,0,83,111,114
|
|
DB 114,121,44,32,99,97,110,110,111,116,32,111,112,101,110
|
|
DB 32,105,110,112,117,116,32,102,105,108,101,0,68,117,109
|
|
DB 112,105,110,103,32,37,115,10,10,0,115,101,99,116,37
|
|
DB 48,52,120,46,104,0,115,101,99,116,37,48,52,120,46
|
|
DB 105,110,99,0,37,48,52,120,58,32,0,37,48,50,120
|
|
DB 32,0,32,32,0,37,99,0,46,0,10,0,10,0
|
|
extrn sprintf_
|
|
extrn fread_
|
|
extrn exit_
|
|
extrn printf_
|
|
extrn banner_
|
|
extrn fclose_
|
|
extrn strcpy_
|
|
extrn fprintf_
|
|
extrn fopen_
|
|
extrn .an
|
|
extrn .eq
|
|
extrn .ne
|
|
extrn .lt
|
|
END
|
|
|