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.
 
 
 
 
 
 

970 lines
8.9 KiB

extrn .begin,.chl,.swt
extrn csave,cret,.move
global pDPHMAP_,2
global pDPHVEC_,24
DSEG
public pSYSCFG_
pSYSCFG_:
DW -16384
CSEG
DSEG
public map_
map_:
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 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
CSEG
DSEG
public attroff_
attroff_:
DB 27
DB 91
DB 109
DB 0
CSEG
DSEG
public attrbold_
attrbold_:
DB 27
DB 91
DB 49
DB 109
DB 0
CSEG
DSEG
public attrlow_
attrlow_:
DB 27
DB 91
DB 50
DB 109
DB 0
CSEG
DSEG
public attrundr_
attrundr_:
DB 27
DB 91
DB 52
DB 109
DB 0
CSEG
DSEG
public attrblnk_
attrblnk_:
DB 27
DB 91
DB 53
DB 109
DB 0
CSEG
DSEG
public attrrevs_
attrrevs_:
DB 27
DB 91
DB 55
DB 109
DB 0
CSEG
DSEG
public attrinvs_
attrinvs_:
DB 27
DB 91
DB 56
DB 109
DB 0
CSEG
DSEG
public graphon_
graphon_:
DB 27
DB 70
DB 0
CSEG
DSEG
public graphoff_
graphoff_:
DB 27
DB 71
DB 0
CSEG
DSEG
public atreset_
atreset_:
DB 48
DB 0
CSEG
DSEG
public atbold_
atbold_:
DB 49
DB 0
CSEG
DSEG
public atdim_
atdim_:
DB 50
DB 0
CSEG
DSEG
public atundrsc_
atundrsc_:
DB 52
DB 0
CSEG
DSEG
public atblink_
atblink_:
DB 53
DB 0
CSEG
DSEG
public atrevs_
atrevs_:
DB 55
DB 0
CSEG
DSEG
public athidden_
athidden_:
DB 56
DB 0
CSEG
DSEG
public fgblack_
fgblack_:
DB 51
DB 48
DB 0
CSEG
DSEG
public fgred_
fgred_:
DB 51
DB 49
DB 0
CSEG
DSEG
public fggreen_
fggreen_:
DB 51
DB 50
DB 0
CSEG
DSEG
public fgyellow_
fgyellow_:
DB 51
DB 51
DB 0
CSEG
DSEG
public fgblue_
fgblue_:
DB 51
DB 52
DB 0
CSEG
DSEG
public fgmagent_
fgmagent_:
DB 51
DB 53
DB 0
CSEG
DSEG
public fgcyan_
fgcyan_:
DB 51
DB 54
DB 0
CSEG
DSEG
public fgwhite_
fgwhite_:
DB 51
DB 55
DB 0
CSEG
DSEG
public bgblack_
bgblack_:
DB 52
DB 48
DB 0
CSEG
DSEG
public bgred_
bgred_:
DB 52
DB 49
DB 0
CSEG
DSEG
public bggreen_
bggreen_:
DB 52
DB 50
DB 0
CSEG
DSEG
public bgyellow_
bgyellow_:
DB 52
DB 51
DB 0
CSEG
DSEG
public bgblue_
bgblue_:
DB 52
DB 52
DB 0
CSEG
DSEG
public bgmagent_
bgmagent_:
DB 52
DB 53
DB 0
CSEG
DSEG
public bgcyan_
bgcyan_:
DB 52
DB 54
DB 0
CSEG
DSEG
public bgwhite_
bgwhite_:
DB 52
DB 55
DB 0
CSEG
PUBLIC dispattr_
dispattr_: lxi d,.2
call csave
LXI H,12-.2
DAD SP
MOV E,M
INX H
MOV D,M
PUSH D
LXI H,12-.2
DAD SP
MOV E,M
INX H
MOV D,M
PUSH D
LXI H,12-.2
DAD SP
MOV E,M
INX H
MOV D,M
PUSH D
LXI H,27
PUSH H
LXI H,.1+0
PUSH H
CALL printf_
XCHG
LXI H,10
DAD SP
SPHL
RET
.2 EQU 0
.1:
DB 37,99,91,37,115,59,37,115,59,37,115,109,0
PUBLIC main_
main_: lxi d,.4
call csave
LXI H,1
XCHG
LXI H,8-.4
DAD SP
MOV A,M
INX H
MOV H,M
MOV L,A
CALL .lt
JZ .5
LXI H,1
XCHG
LXI H,2-.4
DAD SP
MOV M,E
INX H
MOV M,D
JMP .7
.6:
LXI H,2-.4
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
.7:
LXI H,2-.4
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,8-.4
DAD SP
MOV A,M
INX H
MOV H,M
MOV L,A
CALL .lt
JZ .8
LXI H,2-.4
DAD SP
MOV E,M
INX H
MOV D,M
XCHG
DAD H
XCHG
LXI H,10-.4
DAD SP
MOV A,M
INX H
MOV H,M
MOV L,A
DAD D
MOV E,M
INX H
MOV D,M
PUSH D
CALL atoi_
POP D
PUSH H
LXI H,.3+0
PUSH H
CALL printf_
POP D
POP D
JMP .6
.8:
JMP .9
.5:
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
LXI H,0
PUSH H
CALL crtlc_
POP D
POP D
LXI H,bgblack_
PUSH H
LXI H,fggreen_
PUSH H
LXI H,atbold_
PUSH H
CALL dispattr_
POP D
POP D
POP D
LXI H,.3+3
PUSH H
CALL banner_
POP D
LXI H,attroff_
PUSH H
LXI H,.3+9
PUSH H
CALL printf_
POP D
POP D
LXI H,bgblack_
PUSH H
LXI H,fgcyan_
PUSH H
LXI H,atbold_
PUSH H
CALL dispattr_
POP D
POP D
POP D
LXI H,0
XCHG
LXI H,-4-.4
DAD SP
MOV M,E
INX H
MOV M,D
JMP .11
.10:
LXI H,-4-.4
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
.11:
LXI H,-4-.4
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,16
CALL .lt
JZ .12
LXI H,-4-.4
DAD SP
MOV E,M
INX H
MOV D,M
XCHG
DAD H
DAD H
LXI D,9
DAD D
PUSH H
LXI H,6
PUSH H
CALL crtlc_
POP D
POP D
LXI H,-4-.4
DAD SP
MOV E,M
INX H
MOV D,M
PUSH D
LXI H,.3+12
PUSH H
CALL printf_
POP D
POP D
JMP .10
.12:
LXI H,attroff_
PUSH H
LXI H,.3+17
PUSH H
CALL printf_
POP D
POP D
LXI H,0
XCHG
LXI H,-6-.4
DAD SP
MOV M,E
INX H
MOV M,D
JMP .14
.13:
LXI H,-6-.4
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
.14:
LXI H,-6-.4
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,16
CALL .lt
JZ .15
LXI H,4
PUSH H
LXI H,-4-.4
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,7
DAD D
PUSH H
CALL crtlc_
POP D
POP D
LXI H,bgblack_
PUSH H
LXI H,fgcyan_
PUSH H
LXI H,atbold_
PUSH H
CALL dispattr_
POP D
POP D
POP D
LXI H,-6-.4
DAD SP
MOV E,M
INX H
MOV D,M
PUSH D
LXI H,.3+20
PUSH H
CALL printf_
POP D
POP D
LXI H,attroff_
PUSH H
LXI H,.3+25
PUSH H
CALL printf_
POP D
POP D
LXI H,0
XCHG
LXI H,-4-.4
DAD SP
MOV M,E
INX H
MOV M,D
JMP .17
.16:
LXI H,-4-.4
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
.17:
LXI H,-4-.4
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,16
CALL .lt
JZ .18
LXI H,-4-.4
DAD SP
MOV E,M
INX H
MOV D,M
XCHG
DAD H
DAD H
LXI D,10
DAD D
PUSH H
LXI H,-4-.4
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,7
DAD D
PUSH H
CALL crtlc_
POP D
POP D
LXI H,-6-.4
DAD SP
MOV E,M
INX H
MOV D,M
XCHG
DAD H
DAD H
DAD H
DAD H
XCHG
LXI H,-4-.4
DAD SP
MOV A,M
INX H
MOV H,M
MOV L,A
DAD D
LXI D,map_
DAD D
MOV E,M
MVI D,0
PUSH D
LXI H,1
POP D
CALL .eq
JZ .19
LXI H,.3+28
PUSH H
CALL printf_
POP D
JMP .20
.19:
LXI H,-6-.4
DAD SP
MOV E,M
INX H
MOV D,M
XCHG
DAD H
DAD H
DAD H
DAD H
XCHG
LXI H,-4-.4
DAD SP
MOV A,M
INX H
MOV H,M
MOV L,A
DAD D
PUSH H
LXI H,.3+30
PUSH H
CALL printf_
POP D
POP D
.20:
JMP .16
.18:
LXI H,bgblack_
PUSH H
LXI H,fgcyan_
PUSH H
LXI H,atbold_
PUSH H
CALL dispattr_
POP D
POP D
POP D
LXI H,-6-.4
DAD SP
MOV E,M
INX H
MOV D,M
PUSH D
LXI H,.3+33
PUSH H
CALL printf_
POP D
POP D
LXI H,attroff_
PUSH H
LXI H,.3+40
PUSH H
CALL printf_
POP D
POP D
JMP .13
.15:
.9:
LXI H,0
RET
.4 EQU -10
.3:
DB 37,99,0,67,72,65,82,83,0,37,115,0,91,37,120
DB 93,0,37,115,0,91,37,120,93,0,37,115,0,46,0
DB 37,99,0,32,32,91,37,120,93,0,37,115,0
extrn atoi_
extrn printf_
extrn banner_
extrn crtlc_
extrn crtclr_
extrn crtinit_
extrn diagnose_
extrn hregde_
extrn hregbc_
extrn .eq
extrn .lt
END