mirror of
https://github.com/wwarthen/RomWBW.git
synced 2026-02-06 14:11:48 -06:00
1319 lines
16 KiB
NASM
1319 lines
16 KiB
NASM
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,3
|
||
MOV A,L
|
||
STA metadata_+100
|
||
LXI H,0
|
||
MOV A,L
|
||
STA metadata_+101
|
||
LXI H,0
|
||
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,0
|
||
PUSH H
|
||
LXI H,0
|
||
PUSH H
|
||
LXI H,3
|
||
PUSH H
|
||
LXI H,2
|
||
PUSH H
|
||
LXI H,2013
|
||
PUSH H
|
||
LXI H,16
|
||
PUSH H
|
||
LXI H,1
|
||
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
|
||
|