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.
246 lines
3.3 KiB
246 lines
3.3 KiB
extrn .begin,.chl,.swt
|
|
extrn csave,cret,.move
|
|
global style_,1
|
|
global vdp_rege_,960
|
|
global pINFOLIS_,2
|
|
global metadata_,128
|
|
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 pCNFGDAT_,2
|
|
global pSYSCFG_,2
|
|
global fd_,2
|
|
PUBLIC main_
|
|
main_: lxi d,.2
|
|
call csave
|
|
LXI H,-4096
|
|
SHLD hregbc_
|
|
LXI H,-16384
|
|
SHLD hregde_
|
|
CALL diagnose_
|
|
LXI H,-16384
|
|
SHLD pSYSCFG_
|
|
LHLD pSYSCFG_
|
|
LXI D,68
|
|
DAD D
|
|
MOV E,M
|
|
MVI D,0
|
|
PUSH D
|
|
CALL crtinit_
|
|
POP D
|
|
CALL crtclr_
|
|
LXI H,0
|
|
PUSH H
|
|
CALL vdp_wrvr_
|
|
POP D
|
|
LXI H,152
|
|
PUSH H
|
|
CALL in_
|
|
POP D
|
|
LXI H,152
|
|
PUSH H
|
|
CALL in_
|
|
POP D
|
|
LXI H,0
|
|
SHLD line_
|
|
JMP .4
|
|
.3:
|
|
LHLD line_
|
|
INX H
|
|
SHLD line_
|
|
.4:
|
|
LHLD line_
|
|
LXI D,24
|
|
XCHG
|
|
CALL .ul
|
|
JZ .5
|
|
LXI H,0
|
|
PUSH H
|
|
LHLD line_
|
|
INX H
|
|
PUSH H
|
|
CALL crtlc_
|
|
POP D
|
|
POP D
|
|
LHLD line_
|
|
INX H
|
|
PUSH H
|
|
LXI H,.1+0
|
|
PUSH H
|
|
CALL printf_
|
|
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,40
|
|
CALL .lt
|
|
JZ .8
|
|
LXI H,152
|
|
PUSH H
|
|
CALL in_
|
|
POP D
|
|
MOV A,L
|
|
STA ubyte_
|
|
LDA ubyte_
|
|
MOV L,A
|
|
MVI H,0
|
|
JMP .9
|
|
.11:
|
|
LXI H,0
|
|
MOV A,L
|
|
STA ubyte_
|
|
JMP .10
|
|
.12:
|
|
LXI H,0
|
|
MOV A,L
|
|
STA ubyte_
|
|
JMP .10
|
|
.13:
|
|
LXI H,0
|
|
MOV A,L
|
|
STA ubyte_
|
|
JMP .10
|
|
.14:
|
|
LXI H,32
|
|
MOV A,L
|
|
STA ubyte_
|
|
JMP .10
|
|
.9:
|
|
CALL .swt
|
|
DW 4
|
|
DW 0,.14
|
|
DW 9,.13
|
|
DW 10,.12
|
|
DW 13,.11
|
|
DW .10
|
|
.10:
|
|
lda ubyte_
|
|
ora a
|
|
JZ .15
|
|
LDA ubyte_
|
|
MOV L,A
|
|
MVI H,0
|
|
PUSH H
|
|
LXI H,.1+11
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
POP D
|
|
.15:
|
|
JMP .6
|
|
.8:
|
|
LXI H,50
|
|
PUSH H
|
|
LHLD line_
|
|
INX H
|
|
PUSH H
|
|
CALL crtlc_
|
|
POP D
|
|
POP D
|
|
LXI H,.1+14
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
LHLD line_
|
|
MOV A,H
|
|
ORA L
|
|
JNZ .16
|
|
LXI H,.1+16
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
.16:
|
|
LHLD line_
|
|
LXI D,1
|
|
CALL .eq
|
|
JZ .17
|
|
LXI H,.1+43
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
.17:
|
|
LHLD line_
|
|
LXI D,4
|
|
CALL .eq
|
|
JZ .18
|
|
LXI H,.1+70
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
.18:
|
|
LHLD line_
|
|
LXI D,5
|
|
CALL .eq
|
|
JZ .19
|
|
LXI H,.1+97
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
.19:
|
|
JMP .3
|
|
.5:
|
|
LXI H,.1+117
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
LXI H,1
|
|
SHLD dregbc_
|
|
CALL bdoscall_
|
|
RET
|
|
.2 EQU -1
|
|
.1:
|
|
DB 108,105,110,101,32,37,50,100,32,124,0,37,99,0,124
|
|
DB 0,32,114,101,109,111,116,101,46,99,111,109,32,49,49
|
|
DB 47,50,49,47,50,48,49,50,32,100,119,103,0,32,32
|
|
DB 32,32,100,105,115,112,108,97,121,32,116,109,115,57,57
|
|
DB 49,56,32,115,99,114,101,101,110,0,32,32,32,78,111
|
|
DB 116,101,58,32,115,101,109,105,45,103,114,97,112,104,105
|
|
DB 99,115,32,110,111,116,0,32,32,32,32,32,32,32,32
|
|
DB 32,115,117,112,112,111,114,116,101,100,46,0,32,40,112
|
|
DB 114,101,115,115,32,101,110,116,101,114,32,116,111,32,101
|
|
DB 120,105,116,41,0
|
|
extrn printf_
|
|
extrn in_
|
|
extrn diagnose_
|
|
extrn hregde_
|
|
extrn hregbc_
|
|
extrn bdoscall_
|
|
extrn dregbc_
|
|
extrn crtlc_
|
|
extrn crtclr_
|
|
extrn crtinit_
|
|
extrn vdp_wrvr_
|
|
extrn .eq
|
|
extrn .lt
|
|
extrn .ul
|
|
END
|
|
|