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

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