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.
1319 lines
16 KiB
1319 lines
16 KiB
extrn .begin,.chl,.swt
|
|
extrn csave,cret,.move
|
|
global pINFOLIS_,2
|
|
global metadata_,128
|
|
global pDPB_,2
|
|
global pDPH_,2
|
|
global pSYSCFG_,2
|
|
global gDrvNum_,2
|
|
global gDevUnit_,2
|
|
global gDefLU_,2
|
|
global gCurLU_,2
|
|
global gNumLU_,2
|
|
global gStatus_,2
|
|
global gRetcode_,2
|
|
global g1st_,2
|
|
global gLast_,2
|
|
global gOverAll_,2
|
|
global gTT_,1
|
|
global e5buffer_,128
|
|
PUBLIC dispattr_
|
|
dispattr_: lxi d,.2
|
|
call csave
|
|
LXI H,8-.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_
|
|
POP D
|
|
POP D
|
|
POP D
|
|
RET
|
|
.2 EQU 0
|
|
.1:
|
|
DB 37,99,91,37,115,109,0
|
|
PUBLIC clrline_
|
|
clrline_: lxi d,.4
|
|
call csave
|
|
LDA gTT_
|
|
MOV L,A
|
|
MVI H,0
|
|
PUSH H
|
|
LXI H,0
|
|
POP D
|
|
XCHG
|
|
CALL .lt
|
|
JZ .5
|
|
LXI H,0
|
|
PUSH H
|
|
LXI H,2
|
|
PUSH H
|
|
CALL crtlc_
|
|
POP D
|
|
POP D
|
|
.5:
|
|
LXI H,13
|
|
PUSH H
|
|
LXI H,.3+0
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
POP D
|
|
LXI H,13
|
|
PUSH H
|
|
LXI H,.3+40
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
POP D
|
|
RET
|
|
.4 EQU 0
|
|
.3:
|
|
DB 37,99,32,32,32,32,32,32,32,32,32,32,32,32,32
|
|
DB 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32
|
|
DB 32,32,32,32,32,32,32,32,32,0,32,32,32,32,32
|
|
DB 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32
|
|
DB 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32
|
|
DB 32,32,37,99,0
|
|
PUBLIC getinfo_
|
|
getinfo_: lxi d,.7
|
|
call csave
|
|
LXI H,-6602
|
|
SHLD ireghl_
|
|
LXI H,8-.7
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
XCHG
|
|
SHLD iregbc_
|
|
CALL bioscall_
|
|
LDA irega_
|
|
MOV L,A
|
|
MVI H,0
|
|
SHLD gStatus_
|
|
LHLD iregbc_
|
|
SHLD gDevUnit_
|
|
LHLD iregde_
|
|
SHLD gCurLU_
|
|
LHLD ireghl_
|
|
SHLD gNumLU_
|
|
RET
|
|
.7 EQU 0
|
|
PUBLIC clrdir_
|
|
clrdir_: lxi d,.8
|
|
call csave
|
|
lda gTT_
|
|
ora a
|
|
JNZ .9
|
|
LHLD gDrvNum_
|
|
PUSH H
|
|
LXI H,.6+0
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
POP D
|
|
.9:
|
|
LXI H,128
|
|
PUSH H
|
|
LXI H,229
|
|
PUSH H
|
|
LXI H,e5buffer_
|
|
PUSH H
|
|
CALL memset_
|
|
POP D
|
|
POP D
|
|
POP D
|
|
LXI H,-6629
|
|
SHLD ireghl_
|
|
LHLD gDrvNum_
|
|
SHLD iregbc_
|
|
LXI H,0
|
|
SHLD iregde_
|
|
CALL bioscall_
|
|
LHLD ireghl_
|
|
SHLD pDPH_
|
|
LHLD pDPH_
|
|
LXI D,10
|
|
DAD D
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
XCHG
|
|
SHLD pDPB_
|
|
LHLD pDPB_
|
|
LXI D,7
|
|
DAD D
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
XCHG
|
|
INX H
|
|
LXI D,2
|
|
XCHG
|
|
CALL .ur
|
|
XCHG
|
|
LXI H,0-.8
|
|
DAD SP
|
|
MOV M,E
|
|
INX H
|
|
MOV M,D
|
|
LXI H,0
|
|
PUSH H
|
|
LXI H,e5buffer_
|
|
PUSH H
|
|
LXI H,0
|
|
PUSH H
|
|
LHLD pDPB_
|
|
LXI D,13
|
|
DAD D
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
LHLD gDrvNum_
|
|
PUSH H
|
|
CALL wrsector_
|
|
XCHG
|
|
LXI H,10
|
|
DAD SP
|
|
SPHL
|
|
LXI H,1
|
|
XCHG
|
|
LXI H,2-.8
|
|
DAD SP
|
|
MOV M,E
|
|
INX H
|
|
MOV M,D
|
|
JMP .11
|
|
.10:
|
|
LXI H,2-.8
|
|
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,2-.8
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
LXI H,0-.8
|
|
DAD SP
|
|
MOV A,M
|
|
INX H
|
|
MOV H,M
|
|
MOV L,A
|
|
CALL .lt
|
|
JZ .12
|
|
LXI H,-1
|
|
XCHG
|
|
LXI H,8-.8
|
|
DAD SP
|
|
MOV A,M
|
|
INX H
|
|
MOV H,M
|
|
MOV L,A
|
|
CALL .ne
|
|
JZ .13
|
|
LXI H,10-.8
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
XCHG
|
|
DCX H
|
|
PUSH H
|
|
LXI H,10-.8
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
CALL crtlc_
|
|
POP D
|
|
POP D
|
|
LXI H,0-.8
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
LXI H,2-.8
|
|
DAD SP
|
|
MOV A,M
|
|
INX H
|
|
MOV H,M
|
|
MOV L,A
|
|
CALL .sb
|
|
PUSH H
|
|
LXI H,.6+12
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
POP D
|
|
.13:
|
|
LXI H,1
|
|
PUSH H
|
|
LXI H,e5buffer_
|
|
PUSH H
|
|
LXI H,6-.8
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
LHLD pDPB_
|
|
LXI D,13
|
|
DAD D
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
LHLD gDrvNum_
|
|
PUSH H
|
|
CALL wrsector_
|
|
XCHG
|
|
LXI H,10
|
|
DAD SP
|
|
SPHL
|
|
JMP .10
|
|
.12:
|
|
RET
|
|
.8 EQU -4
|
|
.6:
|
|
DB 99,108,114,100,105,114,40,37,100,41,32,0,37,51,100
|
|
DB 0
|
|
PUBLIC clrmeta_
|
|
clrmeta_: lxi d,.15
|
|
call csave
|
|
lda gTT_
|
|
ora a
|
|
JNZ .16
|
|
LXI H,8-.15
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
LXI H,.14+0
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
POP D
|
|
JMP .17
|
|
.16:
|
|
LXI H,12-.15
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
XCHG
|
|
DCX H
|
|
PUSH H
|
|
LXI H,12-.15
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
CALL crtlc_
|
|
POP D
|
|
POP D
|
|
LXI H,.14+13
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
.17:
|
|
LXI H,0
|
|
PUSH H
|
|
LXI H,metadata_
|
|
PUSH H
|
|
LXI H,11
|
|
PUSH H
|
|
LXI H,0
|
|
PUSH H
|
|
LHLD gDrvNum_
|
|
PUSH H
|
|
CALL rdsector_
|
|
XCHG
|
|
LXI H,10
|
|
DAD SP
|
|
SPHL
|
|
LXI H,-23206
|
|
SHLD metadata_
|
|
LHLD pSYSCFG_
|
|
LXI D,24
|
|
DAD D
|
|
MOV E,M
|
|
XCHG
|
|
MOV A,L
|
|
STA metadata_+2
|
|
LXI H,8
|
|
PUSH H
|
|
LXI H,.14+17
|
|
PUSH H
|
|
LXI H,metadata_+4
|
|
PUSH H
|
|
CALL memcpy_
|
|
POP D
|
|
POP D
|
|
POP D
|
|
LHLD gDrvNum_
|
|
MOV A,L
|
|
STA metadata_+12
|
|
LXI H,8-.15
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
XCHG
|
|
SHLD metadata_+13
|
|
LXI H,0
|
|
MOV A,L
|
|
STA metadata_+96
|
|
LXI H,2
|
|
MOV A,L
|
|
STA metadata_+99
|
|
LXI H,5
|
|
MOV A,L
|
|
STA metadata_+100
|
|
LXI H,0
|
|
MOV A,L
|
|
STA metadata_+101
|
|
LXI H,1
|
|
MOV A,L
|
|
STA metadata_+102
|
|
LXI H,16
|
|
PUSH H
|
|
LXI H,.14+26
|
|
PUSH H
|
|
LXI H,metadata_+103
|
|
PUSH H
|
|
CALL memcpy_
|
|
POP D
|
|
POP D
|
|
POP D
|
|
LXI H,36
|
|
MOV A,L
|
|
STA metadata_+119
|
|
LXI H,0
|
|
SHLD metadata_+97
|
|
LXI H,0
|
|
PUSH H
|
|
LXI H,metadata_
|
|
PUSH H
|
|
LXI H,11
|
|
PUSH H
|
|
LXI H,0
|
|
PUSH H
|
|
LHLD gDrvNum_
|
|
PUSH H
|
|
CALL wrsector_
|
|
XCHG
|
|
LXI H,10
|
|
DAD SP
|
|
SPHL
|
|
RET
|
|
.15 EQU 0
|
|
.14:
|
|
DB 99,108,114,109,101,116,97,40,37,100,41,32,0,109,101
|
|
DB 116,0,109,117,108,116,105,102,109,116,0,91,109,117,108
|
|
DB 116,105,102,111,114,109,97,116,116,101,100,93,0
|
|
PUBLIC physfmt_
|
|
physfmt_: lxi d,.19
|
|
call csave
|
|
LXI H,0
|
|
PUSH H
|
|
LXI H,metadata_
|
|
PUSH H
|
|
LXI H,11
|
|
PUSH H
|
|
LXI H,0
|
|
PUSH H
|
|
LHLD gDrvNum_
|
|
PUSH H
|
|
CALL rdsector_
|
|
XCHG
|
|
LXI H,10
|
|
DAD SP
|
|
SPHL
|
|
LDA metadata_+96
|
|
MOV L,A
|
|
MVI H,0
|
|
PUSH H
|
|
LXI H,1
|
|
POP D
|
|
CALL .eq
|
|
JZ .20
|
|
lda gTT_
|
|
ora a
|
|
JNZ .21
|
|
LXI H,8-.19
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
LXI H,.18+0
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
POP D
|
|
.21:
|
|
LHLD gOverAll_
|
|
MOV A,H
|
|
ORA L
|
|
JNZ .22
|
|
lda gTT_
|
|
ora a
|
|
JNZ .23
|
|
LXI H,.18+21
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
.23:
|
|
LXI H,0
|
|
RET
|
|
.22:
|
|
lda gTT_
|
|
ora a
|
|
JNZ .24
|
|
LXI H,.18+47
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
.24:
|
|
.20:
|
|
lda gTT_
|
|
ora a
|
|
JNZ .25
|
|
LXI H,13
|
|
PUSH H
|
|
LXI H,10-.19
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
LXI H,.18+69
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
POP D
|
|
POP D
|
|
LXI H,-1
|
|
PUSH H
|
|
LXI H,-1
|
|
PUSH H
|
|
LXI H,12-.19
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
CALL clrmeta_
|
|
POP D
|
|
POP D
|
|
POP D
|
|
LXI H,-1
|
|
PUSH H
|
|
LXI H,-1
|
|
PUSH H
|
|
CALL clrdir_
|
|
POP D
|
|
POP D
|
|
JMP .26
|
|
.25:
|
|
LXI H,8-.19
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
LXI H,16
|
|
CALL .dv
|
|
XCHG
|
|
LXI H,2-.19
|
|
DAD SP
|
|
MOV M,E
|
|
INX H
|
|
MOV M,D
|
|
LXI H,0
|
|
PUSH H
|
|
LXI H,4-.19
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
LXI H,6
|
|
DAD D
|
|
PUSH H
|
|
CALL crtlc_
|
|
POP D
|
|
POP D
|
|
LXI H,8-.19
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
LXI H,240
|
|
CALL .an
|
|
PUSH H
|
|
LXI H,.18+90
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
POP D
|
|
LXI H,8-.19
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
LXI H,15
|
|
CALL .an
|
|
XCHG
|
|
LXI H,0-.19
|
|
DAD SP
|
|
MOV M,E
|
|
INX H
|
|
MOV M,D
|
|
LXI H,0-.19
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
XCHG
|
|
DAD H
|
|
DAD H
|
|
LXI D,9
|
|
DAD D
|
|
PUSH H
|
|
LXI H,4-.19
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
LXI H,6
|
|
DAD D
|
|
PUSH H
|
|
LXI H,12-.19
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
CALL clrmeta_
|
|
POP D
|
|
POP D
|
|
POP D
|
|
LXI H,0-.19
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
XCHG
|
|
DAD H
|
|
DAD H
|
|
LXI D,9
|
|
DAD D
|
|
PUSH H
|
|
LXI H,4-.19
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
LXI H,6
|
|
DAD D
|
|
PUSH H
|
|
CALL clrdir_
|
|
POP D
|
|
POP D
|
|
LXI H,0-.19
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
XCHG
|
|
DAD H
|
|
DAD H
|
|
LXI D,9
|
|
DAD D
|
|
PUSH H
|
|
LXI H,4-.19
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
LXI H,6
|
|
DAD D
|
|
PUSH H
|
|
CALL crtlc_
|
|
POP D
|
|
POP D
|
|
LXI H,.18+97
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
.26:
|
|
LXI H,1
|
|
RET
|
|
.19 EQU -4
|
|
.18:
|
|
DB 76,85,37,100,32,105,115,32,112,114,111,116,101,99,116
|
|
DB 101,100,44,32,32,0,79,118,101,114,114,105,100,101,32
|
|
DB 105,115,32,110,111,116,32,101,110,97,98,108,101,100,44
|
|
DB 32,0,79,118,101,114,114,105,100,101,32,105,115,32,101
|
|
DB 110,97,98,108,101,100,44,32,0,70,111,114,109,97,116
|
|
DB 116,105,110,103,32,76,85,35,32,37,51,100,37,99,0
|
|
DB 37,51,100,46,46,46,0,79,75,0
|
|
PUBLIC lformat_
|
|
lformat_: lxi d,.28
|
|
call csave
|
|
lda gTT_
|
|
ora a
|
|
JZ .29
|
|
LXI H,0
|
|
XCHG
|
|
LXI H,2-.28
|
|
DAD SP
|
|
MOV M,E
|
|
INX H
|
|
MOV M,D
|
|
JMP .31
|
|
.30:
|
|
LXI H,2-.28
|
|
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
|
|
.31:
|
|
LXI H,2-.28
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
LXI H,16
|
|
CALL .lt
|
|
JZ .32
|
|
LXI H,2-.28
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
XCHG
|
|
DAD H
|
|
DAD H
|
|
LXI D,8
|
|
DAD D
|
|
PUSH H
|
|
LXI H,4
|
|
PUSH H
|
|
CALL crtlc_
|
|
POP D
|
|
POP D
|
|
LXI H,2-.28
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
LXI H,.27+0
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
POP D
|
|
JMP .30
|
|
.32:
|
|
LXI H,0
|
|
XCHG
|
|
LXI H,2-.28
|
|
DAD SP
|
|
MOV M,E
|
|
INX H
|
|
MOV M,D
|
|
JMP .34
|
|
.33:
|
|
LXI H,2-.28
|
|
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
|
|
.34:
|
|
LXI H,2-.28
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
LXI H,16
|
|
CALL .lt
|
|
JZ .35
|
|
LXI H,2-.28
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
XCHG
|
|
DAD H
|
|
DAD H
|
|
LXI D,8
|
|
DAD D
|
|
PUSH H
|
|
LXI H,5
|
|
PUSH H
|
|
CALL crtlc_
|
|
POP D
|
|
POP D
|
|
LXI H,.27+5
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
JMP .33
|
|
.35:
|
|
.29:
|
|
LHLD gDrvNum_
|
|
PUSH H
|
|
CALL lugcur_
|
|
POP D
|
|
SHLD gDefLU_
|
|
LHLD g1st_
|
|
XCHG
|
|
LXI H,2-.28
|
|
DAD SP
|
|
MOV M,E
|
|
INX H
|
|
MOV M,D
|
|
JMP .37
|
|
.36:
|
|
LXI H,2-.28
|
|
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
|
|
.37:
|
|
LXI H,2-.28
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
LHLD gLast_
|
|
CALL .le
|
|
JZ .38
|
|
LXI H,2-.28
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
LHLD gDrvNum_
|
|
PUSH H
|
|
CALL luscur_
|
|
POP D
|
|
POP D
|
|
LXI H,0
|
|
PUSH H
|
|
LXI H,metadata_
|
|
PUSH H
|
|
LXI H,11
|
|
PUSH H
|
|
LXI H,0
|
|
PUSH H
|
|
LHLD gDrvNum_
|
|
PUSH H
|
|
CALL rdsector_
|
|
XCHG
|
|
LXI H,10
|
|
DAD SP
|
|
SPHL
|
|
LDA metadata_+96
|
|
MOV L,A
|
|
MVI H,0
|
|
PUSH H
|
|
LXI H,1
|
|
POP D
|
|
CALL .eq
|
|
JZ .39
|
|
LXI H,1
|
|
XCHG
|
|
LHLD gOverAll_
|
|
CALL .eq
|
|
JZ .40
|
|
LXI H,2-.28
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
CALL physfmt_
|
|
POP D
|
|
.40:
|
|
JMP .41
|
|
.39:
|
|
LXI H,2-.28
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
CALL physfmt_
|
|
POP D
|
|
.41:
|
|
JMP .36
|
|
.38:
|
|
LHLD gDefLU_
|
|
PUSH H
|
|
LHLD gDrvNum_
|
|
PUSH H
|
|
CALL luscur_
|
|
POP D
|
|
POP D
|
|
RET
|
|
.28 EQU -2
|
|
.27:
|
|
DB 43,37,50,100,0,45,45,45,0
|
|
PUBLIC dispinfo_
|
|
dispinfo_: lxi d,.43
|
|
call csave
|
|
LXI H,1
|
|
XCHG
|
|
LHLD gRetcode_
|
|
CALL .eq
|
|
JZ .44
|
|
LXI H,1
|
|
RET
|
|
.44:
|
|
LHLD gNumLU_
|
|
MOV A,H
|
|
ORA L
|
|
JNZ .45
|
|
LXI H,1
|
|
RET
|
|
.45:
|
|
LHLD gDrvNum_
|
|
LXI D,65
|
|
DAD D
|
|
PUSH H
|
|
LXI H,.42+0
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
POP D
|
|
LHLD gCurLU_
|
|
PUSH H
|
|
LXI H,.42+13
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
POP D
|
|
LHLD gNumLU_
|
|
PUSH H
|
|
LXI H,.42+32
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
POP D
|
|
LHLD gDevUnit_
|
|
LXI D,8
|
|
XCHG
|
|
CALL .rs
|
|
LXI D,240
|
|
CALL .an
|
|
JMP .46
|
|
.48:
|
|
LXI H,.42+55
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
JMP .47
|
|
.49:
|
|
LXI H,.42+68
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
JMP .47
|
|
.50:
|
|
LHLD gDevUnit_
|
|
PUSH H
|
|
LXI H,.42+83
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
POP D
|
|
JMP .47
|
|
.46:
|
|
CALL .swt
|
|
DW 2
|
|
DW 32,.48
|
|
DW 64,.49
|
|
DW .50
|
|
.47:
|
|
CALL clrline_
|
|
LXI H,.42+106
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
LXI H,1
|
|
SHLD dregbc_
|
|
CALL bdoscall_
|
|
LDA drega_
|
|
MOV L,A
|
|
MVI H,0
|
|
JMP .51
|
|
.53:
|
|
.54:
|
|
LXI H,1
|
|
RET
|
|
.55:
|
|
LXI H,0
|
|
RET
|
|
.51:
|
|
CALL .swt
|
|
DW 2
|
|
DW 89,.53
|
|
DW 121,.54
|
|
DW .55
|
|
.52:
|
|
RET
|
|
.43 EQU 0
|
|
.42:
|
|
DB 10,68,114,105,118,101,32,37,99,58,44,32,0,67,117
|
|
DB 114,114,101,110,116,32,76,85,32,105,115,32,37,100,44
|
|
DB 32,0,78,117,109,98,101,114,32,111,102,32,76,85,39
|
|
DB 115,32,105,115,32,37,100,44,32,0,68,114,105,118,101
|
|
DB 32,105,115,32,73,68,69,0,68,114,105,118,101,32,105
|
|
DB 115,32,80,80,73,68,69,0,68,114,105,118,101,32,105
|
|
DB 115,32,85,110,107,110,111,119,110,33,33,40,37,120,41
|
|
DB 0,87,111,117,108,100,32,121,111,117,32,108,105,107,101
|
|
DB 32,116,111,32,102,111,114,109,97,116,32,116,104,101,32
|
|
DB 108,111,103,105,99,97,108,32,117,110,105,116,115,32,111
|
|
DB 110,32,116,104,105,115,32,100,114,105,118,101,40,89,47
|
|
DB 110,41,63,0
|
|
PUBLIC gather_
|
|
gather_: lxi d,.57
|
|
call csave
|
|
CALL clrline_
|
|
LXI H,1
|
|
SHLD g1st_
|
|
LHLD g1st_
|
|
PUSH H
|
|
LHLD gNumLU_
|
|
DCX H
|
|
PUSH H
|
|
LXI H,.56+0
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
POP D
|
|
POP D
|
|
LXI H,-124-.57
|
|
DAD SP
|
|
PUSH H
|
|
CALL gets_
|
|
POP D
|
|
LXI H,-124-.57
|
|
DAD SP
|
|
PUSH H
|
|
CALL strlen_
|
|
POP D
|
|
PUSH H
|
|
LXI H,0
|
|
POP D
|
|
XCHG
|
|
CALL .lt
|
|
JZ .58
|
|
LXI H,-124-.57
|
|
DAD SP
|
|
PUSH H
|
|
CALL atoi_
|
|
POP D
|
|
SHLD g1st_
|
|
.58:
|
|
CALL clrline_
|
|
LHLD gNumLU_
|
|
DCX H
|
|
SHLD gLast_
|
|
LHLD gLast_
|
|
PUSH H
|
|
LHLD gNumLU_
|
|
DCX H
|
|
PUSH H
|
|
LXI H,.56+53
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
POP D
|
|
POP D
|
|
LXI H,-124-.57
|
|
DAD SP
|
|
PUSH H
|
|
CALL gets_
|
|
POP D
|
|
LXI H,-124-.57
|
|
DAD SP
|
|
PUSH H
|
|
CALL strlen_
|
|
POP D
|
|
PUSH H
|
|
LXI H,0
|
|
POP D
|
|
XCHG
|
|
CALL .lt
|
|
JZ .59
|
|
LXI H,-124-.57
|
|
DAD SP
|
|
PUSH H
|
|
CALL atoi_
|
|
POP D
|
|
SHLD gLast_
|
|
.59:
|
|
CALL clrline_
|
|
LXI H,0
|
|
SHLD gOverAll_
|
|
LXI H,.56+105
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
LXI H,1
|
|
SHLD dregbc_
|
|
CALL bdoscall_
|
|
LDA drega_
|
|
MOV L,A
|
|
MVI H,0
|
|
PUSH H
|
|
LXI H,89
|
|
POP D
|
|
CALL .eq
|
|
JZ .60
|
|
CALL clrline_
|
|
LXI H,.56+165
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
LXI H,1
|
|
SHLD dregbc_
|
|
CALL bdoscall_
|
|
LDA drega_
|
|
MOV L,A
|
|
MVI H,0
|
|
PUSH H
|
|
LXI H,68
|
|
POP D
|
|
CALL .eq
|
|
JZ .61
|
|
LXI H,1
|
|
SHLD gOverAll_
|
|
.61:
|
|
JMP .62
|
|
.60:
|
|
LXI H,.56+221
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
.62:
|
|
RET
|
|
.57 EQU -128
|
|
.56:
|
|
DB 80,108,101,97,115,101,32,101,110,116,101,114,32,102,105
|
|
DB 114,115,116,32,108,111,103,105,99,97,108,32,117,110,105
|
|
DB 116,32,116,111,32,102,111,114,109,97,116,32,48,45,37
|
|
DB 100,32,40,37,100,41,58,0,80,108,101,97,115,101,32
|
|
DB 101,110,116,101,114,32,108,97,115,116,32,108,111,103,105
|
|
DB 99,97,108,32,117,110,105,116,32,116,111,32,102,111,114
|
|
DB 109,97,116,32,48,45,37,100,32,40,37,100,41,58,0
|
|
DB 68,111,32,121,111,117,32,119,97,110,116,32,116,111,32
|
|
DB 111,118,101,114,114,105,100,101,32,97,108,108,32,112,114
|
|
DB 111,116,101,99,116,101,100,32,108,111,103,105,99,97,108
|
|
DB 32,117,110,105,116,115,32,40,89,47,110,41,58,32,0
|
|
DB 68,111,32,121,111,117,32,114,101,97,108,108,121,32,119
|
|
DB 97,110,116,32,116,111,32,68,69,83,84,82,79,89,32
|
|
DB 97,108,108,32,108,111,103,105,99,97,108,32,117,110,105
|
|
DB 116,115,32,40,68,47,110,41,58,32,0,10,0
|
|
PUBLIC main_
|
|
main_: lxi d,.64
|
|
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
|
|
XCHG
|
|
MOV A,L
|
|
STA gTT_
|
|
LDA gTT_
|
|
MOV L,A
|
|
MVI H,0
|
|
PUSH H
|
|
CALL crtinit_
|
|
POP D
|
|
LDA gTT_
|
|
MOV L,A
|
|
MVI H,0
|
|
PUSH H
|
|
LXI H,0
|
|
POP D
|
|
XCHG
|
|
CALL .lt
|
|
JZ .65
|
|
CALL crtclr_
|
|
LXI H,0
|
|
PUSH H
|
|
LXI H,0
|
|
PUSH H
|
|
CALL crtlc_
|
|
POP D
|
|
POP D
|
|
.65:
|
|
LXI H,1
|
|
PUSH H
|
|
LXI H,0
|
|
PUSH H
|
|
LXI H,5
|
|
PUSH H
|
|
LXI H,2
|
|
PUSH H
|
|
LXI H,2013
|
|
PUSH H
|
|
LXI H,31
|
|
PUSH H
|
|
LXI H,3
|
|
PUSH H
|
|
LXI H,.63+0
|
|
PUSH H
|
|
CALL printf_
|
|
XCHG
|
|
LXI H,16
|
|
DAD SP
|
|
SPHL
|
|
LXI H,.63+35
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
LXI H,-6596
|
|
SHLD ireghl_
|
|
CALL bioscall_
|
|
LHLD ireghl_
|
|
SHLD pINFOLIS_
|
|
LXI H,25
|
|
SHLD dregbc_
|
|
CALL bdoscall_
|
|
LDA drega_
|
|
MOV L,A
|
|
MVI H,0
|
|
SHLD gDrvNum_
|
|
LHLD gDrvNum_
|
|
PUSH H
|
|
CALL getinfo_
|
|
POP D
|
|
CALL dispinfo_
|
|
XCHG
|
|
LXI H,2-.64
|
|
DAD SP
|
|
MOV M,E
|
|
INX H
|
|
MOV M,D
|
|
LXI H,2-.64
|
|
DAD SP
|
|
mov a,m
|
|
inx h
|
|
ora m
|
|
JNZ .66
|
|
LXI H,.63+81
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
LXI H,1
|
|
PUSH H
|
|
CALL exit_
|
|
POP D
|
|
.66:
|
|
CALL gather_
|
|
CALL lformat_
|
|
RET
|
|
.64 EQU -2
|
|
.63:
|
|
DB 77,85,76,84,73,70,77,84,46,67,79,77,32,37,100
|
|
DB 47,37,100,47,37,100,32,118,37,100,46,37,100,46,37
|
|
DB 100,46,37,100,0,32,100,119,103,32,45,32,80,114,101
|
|
DB 112,97,114,101,32,110,101,119,32,109,97,115,115,32,115
|
|
DB 116,111,114,97,103,101,32,109,101,100,105,97,32,102,111
|
|
DB 114,32,117,115,101,0,10,70,111,114,109,97,116,32,99
|
|
DB 97,110,99,101,108,108,101,100,32,97,116,32,117,115,101
|
|
DB 114,39,115,32,114,101,113,117,101,115,116,0
|
|
extrn exit_
|
|
extrn crtclr_
|
|
extrn crtinit_
|
|
extrn atoi_
|
|
extrn strlen_
|
|
extrn gets_
|
|
extrn crtlc_
|
|
extrn printf_
|
|
extrn diagnose_
|
|
extrn hregde_
|
|
extrn hregbc_
|
|
extrn luscur_
|
|
extrn lugcur_
|
|
extrn wrsector_
|
|
extrn rdsector_
|
|
extrn bdoscall_
|
|
extrn dregbc_
|
|
extrn drega_
|
|
extrn bioscall_
|
|
extrn ireghl_
|
|
extrn iregde_
|
|
extrn iregbc_
|
|
extrn irega_
|
|
extrn memset_
|
|
extrn memcpy_
|
|
extrn .an
|
|
extrn .eq
|
|
extrn .ne
|
|
extrn .lt
|
|
extrn .le
|
|
extrn .rs
|
|
extrn .ur
|
|
extrn .sb
|
|
extrn .dv
|
|
END
|
|
|