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.
595 lines
6.8 KiB
595 lines
6.8 KiB
extrn .begin,.chl,.swt
|
|
extrn csave,cret,.move
|
|
global style_,1
|
|
global vdp_rege_,960
|
|
global szTemp_,128
|
|
global linenum_,1
|
|
global counter_,1
|
|
global outer_,1
|
|
global inner_,1
|
|
global limit_,1
|
|
global index_,2
|
|
PUBLIC main_
|
|
main_: lxi d,.2
|
|
call csave
|
|
LDA outer_
|
|
MOV L,A
|
|
MVI H,0
|
|
LXI D,3
|
|
CALL .eq
|
|
JZ .3
|
|
LXI H,0
|
|
MOV A,L
|
|
STA style_
|
|
.3:
|
|
LXI H,.1+0
|
|
PUSH H
|
|
CALL vdp_main_
|
|
POP D
|
|
LXI H,0
|
|
XCHG
|
|
LXI H,-63-.2
|
|
DAD SP
|
|
MOV M,E
|
|
LXI H,0
|
|
MOV A,L
|
|
STA outer_
|
|
JMP .5
|
|
.4:
|
|
LDA outer_
|
|
MOV L,A
|
|
INX H
|
|
MOV A,L
|
|
STA outer_
|
|
.5:
|
|
LDA outer_
|
|
MOV L,A
|
|
MVI H,0
|
|
LXI D,4
|
|
XCHG
|
|
CALL .lt
|
|
JZ .6
|
|
LXI H,4
|
|
MOV A,L
|
|
STA linenum_
|
|
LXI H,0
|
|
MOV A,L
|
|
STA inner_
|
|
JMP .8
|
|
.7:
|
|
LDA inner_
|
|
MOV L,A
|
|
INX H
|
|
MOV A,L
|
|
STA inner_
|
|
.8:
|
|
LDA inner_
|
|
MOV L,A
|
|
MVI H,0
|
|
LXI D,6
|
|
XCHG
|
|
CALL .lt
|
|
JZ .9
|
|
LDA inner_
|
|
MOV L,A
|
|
MVI H,0
|
|
LXI D,5
|
|
XCHG
|
|
CALL .lt
|
|
JZ .10
|
|
LXI H,11
|
|
MOV A,L
|
|
STA limit_
|
|
JMP .11
|
|
.10:
|
|
LXI H,9
|
|
MOV A,L
|
|
STA limit_
|
|
.11:
|
|
LXI H,0
|
|
XCHG
|
|
LXI H,2-.2
|
|
DAD SP
|
|
MOV M,E
|
|
INX H
|
|
MOV M,D
|
|
JMP .13
|
|
.12:
|
|
LXI H,2-.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
|
|
.13:
|
|
LDA limit_
|
|
MOV L,A
|
|
MVI H,0
|
|
PUSH H
|
|
LXI H,4-.2
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
POP H
|
|
CALL .lt
|
|
JZ .14
|
|
LXI H,-63-.2
|
|
DAD SP
|
|
MOV E,M
|
|
MVI D,0
|
|
PUSH D
|
|
LXI H,.1+14
|
|
PUSH H
|
|
LXI H,-58-.2
|
|
DAD SP
|
|
PUSH H
|
|
CALL sprintf_
|
|
POP D
|
|
POP D
|
|
POP D
|
|
LXI H,-62-.2
|
|
DAD SP
|
|
PUSH H
|
|
LXI H,4-.2
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
LXI H,3
|
|
CALL .ml
|
|
INX H
|
|
INX H
|
|
PUSH H
|
|
LDA linenum_
|
|
MOV L,A
|
|
MVI H,0
|
|
PUSH H
|
|
CALL vdp_disp_
|
|
POP D
|
|
POP D
|
|
POP D
|
|
LXI H,-63-.2
|
|
DAD SP
|
|
PUSH H
|
|
MOV L,M
|
|
INX H
|
|
XCHG
|
|
POP H
|
|
MOV M,E
|
|
XCHG
|
|
DCX H
|
|
MVI H,0
|
|
PUSH H
|
|
LXI H,.1+17
|
|
PUSH H
|
|
LXI H,-58-.2
|
|
DAD SP
|
|
PUSH H
|
|
CALL sprintf_
|
|
POP D
|
|
POP D
|
|
POP D
|
|
LXI H,-62-.2
|
|
DAD SP
|
|
PUSH H
|
|
LXI H,4-.2
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
LXI H,3
|
|
CALL .ml
|
|
INX H
|
|
INX H
|
|
PUSH H
|
|
LDA linenum_
|
|
MOV L,A
|
|
MVI H,0
|
|
INX H
|
|
PUSH H
|
|
CALL vdp_disp_
|
|
POP D
|
|
POP D
|
|
POP D
|
|
JMP .12
|
|
.14:
|
|
LXI H,3
|
|
XCHG
|
|
LDA linenum_
|
|
MOV L,A
|
|
mvi h,0
|
|
DAD D
|
|
MOV A,L
|
|
STA linenum_
|
|
LDA inner_
|
|
MOV L,A
|
|
MVI H,0
|
|
LXI D,5
|
|
CALL .eq
|
|
JZ .15
|
|
LDA outer_
|
|
MOV L,A
|
|
MVI H,0
|
|
INX H
|
|
PUSH H
|
|
LXI H,.1+22
|
|
PUSH H
|
|
LXI H,-58-.2
|
|
DAD SP
|
|
PUSH H
|
|
CALL sprintf_
|
|
POP D
|
|
POP D
|
|
POP D
|
|
LXI H,-62-.2
|
|
DAD SP
|
|
PUSH H
|
|
LXI H,29
|
|
PUSH H
|
|
LXI H,20
|
|
PUSH H
|
|
CALL vdp_disp_
|
|
POP D
|
|
POP D
|
|
POP D
|
|
.15:
|
|
JMP .7
|
|
.9:
|
|
LDA outer_
|
|
MOV L,A
|
|
MVI H,0
|
|
LXI D,3
|
|
XCHG
|
|
CALL .lt
|
|
JZ .16
|
|
LXI H,.1+30
|
|
PUSH H
|
|
LXI H,2
|
|
PUSH H
|
|
LXI H,22
|
|
PUSH H
|
|
CALL vdp_disp_
|
|
POP D
|
|
POP D
|
|
POP D
|
|
LXI H,-62-.2
|
|
DAD SP
|
|
PUSH H
|
|
CALL gets_
|
|
POP D
|
|
.16:
|
|
JMP .4
|
|
.6:
|
|
LXI H,.1+57
|
|
PUSH H
|
|
LXI H,1
|
|
PUSH H
|
|
LXI H,22
|
|
PUSH H
|
|
CALL vdp_disp_
|
|
POP D
|
|
POP D
|
|
POP D
|
|
LXI H,8-.2
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
LXI H,2
|
|
CALL .eq
|
|
JZ .17
|
|
LXI H,10-.2
|
|
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 atoi_
|
|
POP D
|
|
PUSH H
|
|
LXI H,.1+93
|
|
PUSH H
|
|
LXI H,-58-.2
|
|
DAD SP
|
|
PUSH H
|
|
CALL sprintf_
|
|
POP D
|
|
POP D
|
|
POP D
|
|
LXI H,-62-.2
|
|
DAD SP
|
|
PUSH H
|
|
LXI H,35
|
|
PUSH H
|
|
LXI H,1
|
|
PUSH H
|
|
CALL vdp_disp_
|
|
POP D
|
|
POP D
|
|
POP D
|
|
.17:
|
|
LXI H,charset_
|
|
XCHG
|
|
LXI H,-65-.2
|
|
DAD SP
|
|
MOV M,E
|
|
INX H
|
|
MOV M,D
|
|
LXI H,.1+108
|
|
PUSH H
|
|
LXI H,.1+96
|
|
PUSH H
|
|
CALL fopen_
|
|
POP D
|
|
POP D
|
|
XCHG
|
|
LXI H,-67-.2
|
|
DAD SP
|
|
MOV M,E
|
|
INX H
|
|
MOV M,D
|
|
LXI H,.1+110
|
|
PUSH H
|
|
LXI H,-65-.2
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
CALL fprintf_
|
|
POP D
|
|
POP D
|
|
LXI H,0
|
|
SHLD index_
|
|
JMP .19
|
|
.18:
|
|
LHLD index_
|
|
INX H
|
|
SHLD index_
|
|
.19:
|
|
LHLD index_
|
|
LXI D,256
|
|
XCHG
|
|
CALL .lt
|
|
JZ .20
|
|
LXI H,.1+163
|
|
PUSH H
|
|
LXI H,-65-.2
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
CALL fprintf_
|
|
POP D
|
|
POP D
|
|
LHLD index_
|
|
PUSH H
|
|
LHLD index_
|
|
PUSH H
|
|
LXI H,-61-.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
|
|
XCHG
|
|
DCX H
|
|
MOV E,M
|
|
MVI D,0
|
|
PUSH D
|
|
LXI H,-59-.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
|
|
XCHG
|
|
DCX H
|
|
MOV E,M
|
|
MVI D,0
|
|
PUSH D
|
|
LXI H,-57-.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
|
|
XCHG
|
|
DCX H
|
|
MOV E,M
|
|
MVI D,0
|
|
PUSH D
|
|
LXI H,-55-.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
|
|
XCHG
|
|
DCX H
|
|
MOV E,M
|
|
MVI D,0
|
|
PUSH D
|
|
LXI H,-53-.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
|
|
XCHG
|
|
DCX H
|
|
MOV E,M
|
|
MVI D,0
|
|
PUSH D
|
|
LXI H,-51-.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
|
|
XCHG
|
|
DCX H
|
|
MOV E,M
|
|
MVI D,0
|
|
PUSH D
|
|
LXI H,-49-.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
|
|
XCHG
|
|
DCX H
|
|
MOV E,M
|
|
MVI D,0
|
|
PUSH D
|
|
LXI H,-47-.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
|
|
XCHG
|
|
DCX H
|
|
MOV E,M
|
|
MVI D,0
|
|
PUSH D
|
|
LXI H,.1+169
|
|
PUSH H
|
|
LXI H,-45-.2
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
CALL fprintf_
|
|
XCHG
|
|
LXI H,24
|
|
DAD SP
|
|
SPHL
|
|
JMP .18
|
|
.20:
|
|
LXI H,.1+231
|
|
PUSH H
|
|
LXI H,-65-.2
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
CALL fprintf_
|
|
POP D
|
|
POP D
|
|
LXI H,-67-.2
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
CALL fclose_
|
|
POP D
|
|
RET
|
|
.2 EQU -71
|
|
.1:
|
|
DB 78,56,86,73,68,84,83,84,40,100,119,103,41,0,37
|
|
DB 99,0,37,48,50,120,0,80,103,32,37,100,47,52,0
|
|
DB 32,80,114,101,115,115,32,97,110,121,32,107,101,121,32
|
|
DB 116,111,32,99,111,110,116,105,110,117,101,0,69,120,101
|
|
DB 99,117,116,105,111,110,32,99,111,109,112,108,101,116,101
|
|
DB 44,114,101,116,117,114,110,101,100,32,116,111,32,67,80
|
|
DB 47,77,0,37,99,0,110,56,99,104,97,114,115,46,105
|
|
DB 110,99,0,119,0,59,32,110,56,99,104,97,114,115,46
|
|
DB 105,110,99,32,45,32,97,117,116,111,109,97,116,105,99
|
|
DB 97,108,108,121,32,103,101,110,101,114,97,116,101,100,32
|
|
DB 98,121,32,110,56,118,105,100,116,115,116,10,0,9,46
|
|
DB 68,66,9,0,37,48,51,120,104,44,37,48,51,120,104
|
|
DB 44,37,48,51,120,104,44,37,48,51,120,104,44,37,48
|
|
DB 51,120,104,44,37,48,51,120,104,44,37,48,51,120,104
|
|
DB 44,37,48,51,120,104,9,59,32,48,120,37,48,50,120
|
|
DB 40,37,100,41,10,0,59,32,101,111,102,32,45,32,110
|
|
DB 56,99,104,97,114,115,46,105,110,99,10,0
|
|
extrn fclose_
|
|
extrn fprintf_
|
|
extrn atoi_
|
|
extrn gets_
|
|
extrn sprintf_
|
|
extrn vdp_main_
|
|
extrn vdp_disp_
|
|
extrn charset_
|
|
extrn fopen_
|
|
extrn .eq
|
|
extrn .lt
|
|
extrn .ml
|
|
END
|
|
|