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.
585 lines
8.5 KiB
585 lines
8.5 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
|
|
global line_,2
|
|
global ubyte_,1
|
|
global bitmask_,1
|
|
global row_,2
|
|
global bit_,2
|
|
global ascii_,2
|
|
global bool_,2
|
|
global fd_,2
|
|
PUBLIC main_
|
|
main_: lxi d,.2
|
|
call csave
|
|
LXI H,.1+0
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
LXI H,0
|
|
PUSH H
|
|
CALL vdp_wrvr_
|
|
POP D
|
|
LXI H,152
|
|
PUSH H
|
|
CALL in_
|
|
POP D
|
|
LXI H,.1+77
|
|
PUSH H
|
|
LXI H,.1+65
|
|
PUSH H
|
|
CALL fopen_
|
|
POP D
|
|
POP D
|
|
SHLD fd_
|
|
LXI H,.1+79
|
|
PUSH H
|
|
LHLD fd_
|
|
PUSH H
|
|
CALL fprintf_
|
|
POP D
|
|
POP D
|
|
LXI H,.1+130
|
|
PUSH H
|
|
LHLD fd_
|
|
PUSH H
|
|
CALL fprintf_
|
|
POP D
|
|
POP D
|
|
LXI H,.1+185
|
|
PUSH H
|
|
LHLD fd_
|
|
PUSH H
|
|
CALL fprintf_
|
|
POP D
|
|
POP D
|
|
LXI H,0
|
|
SHLD line_
|
|
JMP .4
|
|
.3:
|
|
LHLD line_
|
|
INX H
|
|
SHLD line_
|
|
.4:
|
|
LHLD line_
|
|
LXI D,1024
|
|
XCHG
|
|
CALL .ul
|
|
JZ .5
|
|
LHLD line_
|
|
DAD H
|
|
DAD H
|
|
DAD H
|
|
DAD H
|
|
PUSH H
|
|
LXI H,.1+240
|
|
PUSH H
|
|
LHLD fd_
|
|
PUSH H
|
|
CALL fprintf_
|
|
POP D
|
|
POP D
|
|
POP D
|
|
LXI H,0
|
|
XCHG
|
|
LXI H,3-.2
|
|
DAD SP
|
|
MOV M,E
|
|
JMP .7
|
|
.6:
|
|
LXI H,3-.2
|
|
DAD SP
|
|
PUSH H
|
|
MOV L,M
|
|
INX H
|
|
XCHG
|
|
POP H
|
|
MOV M,E
|
|
.7:
|
|
LXI H,3-.2
|
|
DAD SP
|
|
MOV E,M
|
|
MVI D,0
|
|
LXI H,16
|
|
CALL .lt
|
|
JZ .8
|
|
LXI H,152
|
|
PUSH H
|
|
CALL in_
|
|
POP D
|
|
PUSH H
|
|
LXI H,.1+247
|
|
PUSH H
|
|
LHLD fd_
|
|
PUSH H
|
|
CALL fprintf_
|
|
POP D
|
|
POP D
|
|
POP D
|
|
JMP .6
|
|
.8:
|
|
LXI H,.1+253
|
|
PUSH H
|
|
LHLD fd_
|
|
PUSH H
|
|
CALL fprintf_
|
|
POP D
|
|
POP D
|
|
LHLD line_
|
|
PUSH H
|
|
LXI H,13
|
|
PUSH H
|
|
LXI H,.1+255
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
POP D
|
|
POP D
|
|
JMP .3
|
|
.5:
|
|
LXI H,.1+265
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
LXI H,0
|
|
PUSH H
|
|
CALL vdp_wrvr_
|
|
POP D
|
|
LXI H,152
|
|
PUSH H
|
|
CALL in_
|
|
POP D
|
|
LXI H,.1+290
|
|
PUSH H
|
|
LHLD fd_
|
|
PUSH H
|
|
CALL fprintf_
|
|
POP D
|
|
POP D
|
|
LXI H,.1+343
|
|
PUSH H
|
|
LHLD fd_
|
|
PUSH H
|
|
CALL fprintf_
|
|
POP D
|
|
POP D
|
|
LXI H,.1+386
|
|
PUSH H
|
|
LHLD fd_
|
|
PUSH H
|
|
CALL fprintf_
|
|
POP D
|
|
POP D
|
|
LXI H,0
|
|
SHLD line_
|
|
JMP .10
|
|
.9:
|
|
LHLD line_
|
|
INX H
|
|
SHLD line_
|
|
.10:
|
|
LHLD line_
|
|
LXI D,24
|
|
XCHG
|
|
CALL .ul
|
|
JZ .11
|
|
LHLD line_
|
|
PUSH H
|
|
LXI H,.1+441
|
|
PUSH H
|
|
LHLD fd_
|
|
PUSH H
|
|
CALL fprintf_
|
|
POP D
|
|
POP D
|
|
POP D
|
|
LXI H,0
|
|
XCHG
|
|
LXI H,3-.2
|
|
DAD SP
|
|
MOV M,E
|
|
JMP .13
|
|
.12:
|
|
LXI H,3-.2
|
|
DAD SP
|
|
PUSH H
|
|
MOV L,M
|
|
INX H
|
|
XCHG
|
|
POP H
|
|
MOV M,E
|
|
.13:
|
|
LXI H,3-.2
|
|
DAD SP
|
|
MOV E,M
|
|
MVI D,0
|
|
LXI H,20
|
|
CALL .lt
|
|
JZ .14
|
|
LXI H,152
|
|
PUSH H
|
|
CALL in_
|
|
POP D
|
|
PUSH H
|
|
LXI H,.1+447
|
|
PUSH H
|
|
LHLD fd_
|
|
PUSH H
|
|
CALL fprintf_
|
|
POP D
|
|
POP D
|
|
POP D
|
|
JMP .12
|
|
.14:
|
|
LXI H,.1+453
|
|
PUSH H
|
|
LHLD fd_
|
|
PUSH H
|
|
CALL fprintf_
|
|
POP D
|
|
POP D
|
|
LHLD line_
|
|
PUSH H
|
|
LXI H,.1+455
|
|
PUSH H
|
|
LHLD fd_
|
|
PUSH H
|
|
CALL fprintf_
|
|
POP D
|
|
POP D
|
|
POP D
|
|
LXI H,0
|
|
XCHG
|
|
LXI H,3-.2
|
|
DAD SP
|
|
MOV M,E
|
|
JMP .16
|
|
.15:
|
|
LXI H,3-.2
|
|
DAD SP
|
|
PUSH H
|
|
MOV L,M
|
|
INX H
|
|
XCHG
|
|
POP H
|
|
MOV M,E
|
|
.16:
|
|
LXI H,3-.2
|
|
DAD SP
|
|
MOV E,M
|
|
MVI D,0
|
|
LXI H,20
|
|
CALL .lt
|
|
JZ .17
|
|
LXI H,152
|
|
PUSH H
|
|
CALL in_
|
|
POP D
|
|
PUSH H
|
|
LXI H,.1+461
|
|
PUSH H
|
|
LHLD fd_
|
|
PUSH H
|
|
CALL fprintf_
|
|
POP D
|
|
POP D
|
|
POP D
|
|
JMP .15
|
|
.17:
|
|
LXI H,.1+467
|
|
PUSH H
|
|
LHLD fd_
|
|
PUSH H
|
|
CALL fprintf_
|
|
POP D
|
|
POP D
|
|
LHLD line_
|
|
PUSH H
|
|
LXI H,13
|
|
PUSH H
|
|
LXI H,.1+470
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
POP D
|
|
POP D
|
|
JMP .9
|
|
.11:
|
|
LXI H,.1+480
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
LXI H,.1+537
|
|
PUSH H
|
|
LHLD fd_
|
|
PUSH H
|
|
CALL fprintf_
|
|
POP D
|
|
POP D
|
|
LXI H,.1+589
|
|
PUSH H
|
|
LHLD fd_
|
|
PUSH H
|
|
CALL fprintf_
|
|
POP D
|
|
POP D
|
|
LXI H,.1+643
|
|
PUSH H
|
|
LHLD fd_
|
|
PUSH H
|
|
CALL fprintf_
|
|
POP D
|
|
POP D
|
|
LXI H,2048
|
|
PUSH H
|
|
CALL vdp_wrvr_
|
|
POP D
|
|
LXI H,152
|
|
PUSH H
|
|
CALL in_
|
|
POP D
|
|
LXI H,0
|
|
SHLD ascii_
|
|
JMP .19
|
|
.18:
|
|
LHLD ascii_
|
|
INX H
|
|
SHLD ascii_
|
|
.19:
|
|
LHLD ascii_
|
|
LXI D,256
|
|
XCHG
|
|
CALL .lt
|
|
JZ .20
|
|
LHLD ascii_
|
|
PUSH H
|
|
LXI H,13
|
|
PUSH H
|
|
LXI H,.1+652
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
POP D
|
|
POP D
|
|
LHLD ascii_
|
|
PUSH H
|
|
LHLD ascii_
|
|
PUSH H
|
|
LXI H,.1+671
|
|
PUSH H
|
|
LHLD fd_
|
|
PUSH H
|
|
CALL fprintf_
|
|
XCHG
|
|
LXI H,8
|
|
DAD SP
|
|
SPHL
|
|
LXI H,0
|
|
SHLD row_
|
|
JMP .22
|
|
.21:
|
|
LHLD row_
|
|
INX H
|
|
SHLD row_
|
|
.22:
|
|
LHLD row_
|
|
LXI D,8
|
|
XCHG
|
|
CALL .lt
|
|
JZ .23
|
|
LXI H,152
|
|
PUSH H
|
|
CALL in_
|
|
POP D
|
|
MOV A,L
|
|
STA ubyte_
|
|
LDA ubyte_
|
|
MOV L,A
|
|
MVI H,0
|
|
PUSH H
|
|
LXI H,.1+684
|
|
PUSH H
|
|
LHLD fd_
|
|
PUSH H
|
|
CALL fprintf_
|
|
POP D
|
|
POP D
|
|
POP D
|
|
LXI H,0
|
|
SHLD bit_
|
|
JMP .25
|
|
.24:
|
|
LHLD bit_
|
|
INX H
|
|
SHLD bit_
|
|
.25:
|
|
LHLD bit_
|
|
LXI D,8
|
|
XCHG
|
|
CALL .lt
|
|
JZ .26
|
|
LXI H,7
|
|
XCHG
|
|
LHLD bit_
|
|
CALL .sb
|
|
PUSH H
|
|
LXI H,1
|
|
POP D
|
|
XCHG
|
|
CALL .ls
|
|
MOV A,L
|
|
STA bitmask_
|
|
LDA bitmask_
|
|
MOV L,A
|
|
MVI H,0
|
|
PUSH H
|
|
LDA ubyte_
|
|
MOV L,A
|
|
MVI H,0
|
|
POP D
|
|
CALL .an
|
|
SHLD bool_
|
|
LHLD bool_
|
|
MOV A,H
|
|
ORA L
|
|
JNZ .27
|
|
LXI H,.1+693
|
|
PUSH H
|
|
LHLD fd_
|
|
PUSH H
|
|
CALL fprintf_
|
|
POP D
|
|
POP D
|
|
JMP .28
|
|
.27:
|
|
LXI H,.1+695
|
|
PUSH H
|
|
LHLD fd_
|
|
PUSH H
|
|
CALL fprintf_
|
|
POP D
|
|
POP D
|
|
.28:
|
|
JMP .24
|
|
.26:
|
|
LXI H,.1+697
|
|
PUSH H
|
|
LHLD fd_
|
|
PUSH H
|
|
CALL fprintf_
|
|
POP D
|
|
POP D
|
|
JMP .21
|
|
.23:
|
|
LXI H,.1+699
|
|
PUSH H
|
|
LHLD fd_
|
|
PUSH H
|
|
CALL fprintf_
|
|
POP D
|
|
POP D
|
|
LHLD line_
|
|
PUSH H
|
|
LXI H,13
|
|
PUSH H
|
|
LXI H,.1+701
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
POP D
|
|
POP D
|
|
JMP .18
|
|
.20:
|
|
LXI H,.1+711
|
|
PUSH H
|
|
LHLD fd_
|
|
PUSH H
|
|
CALL fprintf_
|
|
POP D
|
|
POP D
|
|
LHLD fd_
|
|
PUSH H
|
|
CALL fclose_
|
|
POP D
|
|
LXI H,.1+766
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
RET
|
|
.2 EQU -1
|
|
.1:
|
|
DB 116,109,115,115,116,97,116,46,99,111,109,32,49,48,47
|
|
DB 48,52,47,50,48,49,50,32,100,119,103,32,45,32,99
|
|
DB 114,101,97,116,101,32,116,109,115,57,57,49,56,46,100
|
|
DB 109,112,32,102,105,108,101,115,32,102,114,111,109,32,86
|
|
DB 82,65,77,10,0,116,109,115,57,57,49,56,46,100,109
|
|
DB 112,0,119,0,84,104,105,115,32,105,115,32,97,32,104
|
|
DB 101,120,97,100,101,99,105,109,97,108,32,100,117,109,112
|
|
DB 32,111,102,32,116,104,101,32,101,110,116,105,114,101,32
|
|
DB 49,54,75,32,86,82,65,77,10,0,65,100,100,114,58
|
|
DB 32,48,48,32,48,49,32,48,50,32,48,51,32,48,52
|
|
DB 32,48,53,32,48,54,32,48,55,32,48,56,32,48,57
|
|
DB 32,48,65,32,48,66,32,48,67,32,48,68,32,48,69
|
|
DB 32,48,70,10,0,45,45,45,45,45,45,45,45,45,45
|
|
DB 45,45,45,45,45,45,45,45,45,45,45,45,45,45,45
|
|
DB 45,45,45,45,45,45,45,45,45,45,45,45,45,45,45
|
|
DB 45,45,45,45,45,45,45,45,45,45,45,45,45,10,0
|
|
DB 37,48,52,120,58,32,0,37,48,50,120,32,0,10,0
|
|
DB 37,99,108,105,110,101,32,37,100,0,10,68,117,109,112
|
|
DB 32,111,102,32,86,82,65,77,32,67,111,109,112,108,101
|
|
DB 116,101,100,10,0,10,84,104,105,115,32,105,115,32,97
|
|
DB 32,104,101,120,97,100,101,99,105,56,109,97,108,32,100
|
|
DB 117,109,112,32,111,102,32,116,104,101,32,78,97,109,101
|
|
DB 32,84,97,98,108,101,32,102,111,114,32,10,0,116,104
|
|
DB 101,32,50,52,32,108,105,110,101,115,32,111,102,32,116
|
|
DB 104,101,32,100,105,115,112,108,97,121,32,105,110,32,84
|
|
DB 101,120,116,32,77,111,100,101,46,10,0,45,45,45,45
|
|
DB 45,45,45,45,45,45,45,45,45,45,45,45,45,45,45
|
|
DB 45,45,45,45,45,45,45,45,45,45,45,45,45,45,45
|
|
DB 45,45,45,45,45,45,45,45,45,45,45,45,45,45,45
|
|
DB 45,45,45,45,10,0,37,50,100,58,32,0,37,48,50
|
|
DB 120,32,0,10,0,37,50,100,58,32,0,37,48,50,120
|
|
DB 32,0,10,10,0,37,99,108,105,110,101,32,37,100,0
|
|
DB 10,68,117,109,112,32,111,102,32,78,97,109,101,32,84
|
|
DB 97,98,108,101,32,102,111,114,32,52,48,120,50,52,32
|
|
DB 84,101,120,116,32,77,111,100,101,32,76,105,110,101,115
|
|
DB 32,67,111,109,112,108,101,116,101,100,10,0,10,9,84
|
|
DB 104,105,115,32,105,115,32,97,32,72,101,120,97,100,101
|
|
DB 99,105,109,97,108,44,32,68,101,99,105,109,97,108,44
|
|
DB 32,97,110,100,32,71,114,97,112,104,105,99,32,100,117
|
|
DB 109,112,10,0,111,102,32,116,104,101,32,67,104,97,114
|
|
DB 97,99,116,101,114,32,71,101,110,101,114,97,116,111,114
|
|
DB 32,66,105,116,109,97,112,115,32,102,111,114,32,97,108
|
|
DB 108,32,50,53,54,32,65,83,67,73,73,32,0,99,104
|
|
DB 97,114,115,46,10,10,0,37,99,68,117,109,112,105,110
|
|
DB 103,32,65,83,67,73,73,32,37,100,0,48,120,37,50
|
|
DB 120,40,37,51,100,41,58,10,0,48,120,37,48,50,120
|
|
DB 58,32,0,32,0,42,0,10,0,10,0,37,99,108,105
|
|
DB 110,101,32,37,100,0,45,45,45,45,45,45,45,45,45
|
|
DB 45,45,45,45,45,45,45,45,45,45,45,45,45,45,45
|
|
DB 45,45,45,45,45,45,45,45,45,45,45,45,45,45,45
|
|
DB 45,45,45,45,45,45,45,45,45,45,45,45,45,45,10
|
|
DB 0,10,68,117,109,112,32,111,102,32,67,104,97,114,97
|
|
DB 99,116,101,114,32,66,105,116,109,97,112,32,68,97,116
|
|
DB 97,32,67,111,109,112,108,101,116,101,100,46,10,0
|
|
extrn fclose_
|
|
extrn fprintf_
|
|
extrn in_
|
|
extrn printf_
|
|
extrn vdp_wrvr_
|
|
extrn fopen_
|
|
extrn .an
|
|
extrn .lt
|
|
extrn .ul
|
|
extrn .ls
|
|
extrn .sb
|
|
END
|
|
|