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.
646 lines
6.5 KiB
646 lines
6.5 KiB
extrn .begin,.chl,.swt
|
|
extrn csave,cret,.move
|
|
global pDPHMAP_,2
|
|
global pDPHVEC_,16
|
|
DSEG
|
|
public pSYSCFG_
|
|
pSYSCFG_:
|
|
DW -16384
|
|
CSEG
|
|
DSEG
|
|
public form_
|
|
form_:
|
|
DW 6
|
|
DW 3
|
|
DW 6
|
|
DB 102
|
|
DB 105
|
|
DB 101
|
|
DB 108
|
|
DB 100
|
|
DB 49
|
|
DB 0
|
|
DW 6
|
|
DW 13
|
|
DB 100
|
|
DB 101
|
|
DB 102
|
|
DB 97
|
|
DB 117
|
|
DB 108
|
|
DB 116
|
|
DB 49
|
|
DB 0
|
|
ds 24
|
|
DW 7
|
|
DW 3
|
|
DW 6
|
|
DB 102
|
|
DB 105
|
|
DB 101
|
|
DB 108
|
|
DB 100
|
|
DB 50
|
|
DB 0
|
|
DW 7
|
|
DW 13
|
|
DB 100
|
|
DB 101
|
|
DB 102
|
|
DB 97
|
|
DB 117
|
|
DB 108
|
|
DB 116
|
|
DB 50
|
|
DB 0
|
|
ds 24
|
|
CSEG
|
|
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
|
|
LXI H,0
|
|
PUSH H
|
|
CALL crtlc_
|
|
POP D
|
|
POP D
|
|
LXI H,.1+0
|
|
PUSH H
|
|
CALL banner_
|
|
POP D
|
|
LXI H,0
|
|
XCHG
|
|
LXI H,2-.2
|
|
DAD SP
|
|
MOV M,E
|
|
INX H
|
|
MOV M,D
|
|
JMP .4
|
|
.3:
|
|
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
|
|
.4:
|
|
LXI H,2-.2
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
LXI H,2
|
|
CALL .lt
|
|
JZ .5
|
|
LXI H,2-.2
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
LXI H,50
|
|
CALL .ml
|
|
LXI D,form_+2
|
|
DAD D
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
LXI H,4-.2
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
LXI H,50
|
|
CALL .ml
|
|
LXI D,form_
|
|
DAD D
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
CALL crtlc_
|
|
POP D
|
|
POP D
|
|
LXI H,2-.2
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
LXI H,50
|
|
CALL .ml
|
|
LXI D,form_+6
|
|
DAD D
|
|
PUSH H
|
|
LXI H,.1+5
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
POP D
|
|
LXI H,2-.2
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
LXI H,50
|
|
CALL .ml
|
|
LXI D,form_+15
|
|
DAD D
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
LXI H,4-.2
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
LXI H,50
|
|
CALL .ml
|
|
LXI D,form_+13
|
|
DAD D
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
CALL crtlc_
|
|
POP D
|
|
POP D
|
|
LXI H,0
|
|
XCHG
|
|
LXI H,0-.2
|
|
DAD SP
|
|
MOV M,E
|
|
INX H
|
|
MOV M,D
|
|
JMP .7
|
|
.6:
|
|
LXI H,0-.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
|
|
.7:
|
|
LXI H,2-.2
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
LXI H,50
|
|
CALL .ml
|
|
LXI D,form_+17
|
|
DAD D
|
|
PUSH H
|
|
CALL strlen_
|
|
POP D
|
|
PUSH H
|
|
LXI H,2-.2
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
POP H
|
|
CALL .lt
|
|
JZ .8
|
|
LXI H,.1+8
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
JMP .6
|
|
.8:
|
|
LXI H,2-.2
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
LXI H,50
|
|
CALL .ml
|
|
LXI D,form_+15
|
|
DAD D
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
LXI H,4-.2
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
LXI H,50
|
|
CALL .ml
|
|
LXI D,form_+13
|
|
DAD D
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
CALL crtlc_
|
|
POP D
|
|
POP D
|
|
LXI H,2-.2
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
LXI H,50
|
|
CALL .ml
|
|
LXI D,form_+17
|
|
DAD D
|
|
PUSH H
|
|
LXI H,.1+10
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
POP D
|
|
JMP .3
|
|
.5:
|
|
LXI H,0
|
|
XCHG
|
|
LXI H,2-.2
|
|
DAD SP
|
|
MOV M,E
|
|
INX H
|
|
MOV M,D
|
|
JMP .10
|
|
.9:
|
|
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
|
|
.10:
|
|
LXI H,2-.2
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
LXI H,2
|
|
CALL .lt
|
|
JZ .11
|
|
LXI H,2-.2
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
LXI H,50
|
|
CALL .ml
|
|
LXI D,form_+15
|
|
DAD D
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
LXI H,4-.2
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
LXI H,50
|
|
CALL .ml
|
|
LXI D,form_+13
|
|
DAD D
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
CALL crtlc_
|
|
POP D
|
|
POP D
|
|
LXI H,34
|
|
PUSH H
|
|
LXI H,0
|
|
PUSH H
|
|
LXI H,-30-.2
|
|
DAD SP
|
|
PUSH H
|
|
CALL memset_
|
|
POP D
|
|
POP D
|
|
POP D
|
|
LXI H,10
|
|
SHLD dregbc_
|
|
LXI H,-34-.2
|
|
DAD SP
|
|
SHLD dregde_
|
|
LXI H,31
|
|
XCHG
|
|
LXI H,-34-.2
|
|
DAD SP
|
|
MOV M,E
|
|
LXI H,0
|
|
XCHG
|
|
LXI H,-33-.2
|
|
DAD SP
|
|
MOV M,E
|
|
CALL bdoscall_
|
|
LXI H,-33-.2
|
|
DAD SP
|
|
MOV E,M
|
|
MVI D,0
|
|
PUSH D
|
|
LXI H,0
|
|
POP D
|
|
XCHG
|
|
CALL .lt
|
|
JZ .12
|
|
LXI H,32
|
|
PUSH H
|
|
LXI H,0
|
|
PUSH H
|
|
LXI H,6-.2
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
LXI H,50
|
|
CALL .ml
|
|
LXI D,form_+17
|
|
DAD D
|
|
PUSH H
|
|
CALL memset_
|
|
POP D
|
|
POP D
|
|
POP D
|
|
LXI H,-32-.2
|
|
DAD SP
|
|
MOV E,M
|
|
MVI D,0
|
|
PUSH D
|
|
LXI H,4-.2
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
LXI H,50
|
|
CALL .ml
|
|
LXI D,form_+17
|
|
DAD D
|
|
PUSH H
|
|
CALL strcpy_
|
|
POP D
|
|
POP D
|
|
.12:
|
|
JMP .9
|
|
.11:
|
|
LXI H,0
|
|
XCHG
|
|
LXI H,2-.2
|
|
DAD SP
|
|
MOV M,E
|
|
INX H
|
|
MOV M,D
|
|
JMP .14
|
|
.13:
|
|
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
|
|
.14:
|
|
LXI H,2-.2
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
LXI H,2
|
|
CALL .lt
|
|
JZ .15
|
|
LXI H,2-.2
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
LXI H,50
|
|
CALL .ml
|
|
LXI D,form_+2
|
|
DAD D
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
LXI H,4-.2
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
LXI H,50
|
|
CALL .ml
|
|
LXI D,form_
|
|
DAD D
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
CALL crtlc_
|
|
POP D
|
|
POP D
|
|
LXI H,2-.2
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
LXI H,50
|
|
CALL .ml
|
|
LXI D,form_+6
|
|
DAD D
|
|
PUSH H
|
|
LXI H,.1+13
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
POP D
|
|
LXI H,2-.2
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
LXI H,50
|
|
CALL .ml
|
|
LXI D,form_+15
|
|
DAD D
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
LXI H,4-.2
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
LXI H,50
|
|
CALL .ml
|
|
LXI D,form_+13
|
|
DAD D
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
CALL crtlc_
|
|
POP D
|
|
POP D
|
|
LXI H,0
|
|
XCHG
|
|
LXI H,0-.2
|
|
DAD SP
|
|
MOV M,E
|
|
INX H
|
|
MOV M,D
|
|
JMP .17
|
|
.16:
|
|
LXI H,0-.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
|
|
.17:
|
|
LXI H,2-.2
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
LXI H,50
|
|
CALL .ml
|
|
LXI D,form_+17
|
|
DAD D
|
|
PUSH H
|
|
CALL strlen_
|
|
POP D
|
|
PUSH H
|
|
LXI H,2-.2
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
POP H
|
|
CALL .lt
|
|
JZ .18
|
|
LXI H,.1+16
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
JMP .16
|
|
.18:
|
|
LXI H,2-.2
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
LXI H,50
|
|
CALL .ml
|
|
LXI D,form_+15
|
|
DAD D
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
LXI H,4-.2
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
LXI H,50
|
|
CALL .ml
|
|
LXI D,form_+13
|
|
DAD D
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
CALL crtlc_
|
|
POP D
|
|
POP D
|
|
LXI H,2-.2
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
LXI H,50
|
|
CALL .ml
|
|
LXI D,form_+17
|
|
DAD D
|
|
PUSH H
|
|
LXI H,.1+18
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
POP D
|
|
JMP .13
|
|
.15:
|
|
RET
|
|
.2 EQU -38
|
|
.1:
|
|
DB 70,79,82,77,0,37,115,0,95,0,37,115,0,37,115
|
|
DB 0,32,0,37,115,0
|
|
extrn strcpy_
|
|
extrn memset_
|
|
extrn strlen_
|
|
extrn printf_
|
|
extrn banner_
|
|
extrn crtlc_
|
|
extrn crtclr_
|
|
extrn crtinit_
|
|
extrn diagnose_
|
|
extrn hregde_
|
|
extrn hregbc_
|
|
extrn bdoscall_
|
|
extrn dregde_
|
|
extrn dregbc_
|
|
extrn .lt
|
|
extrn .ml
|
|
END
|
|
|