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.
1649 lines
18 KiB
1649 lines
18 KiB
extrn .begin,.chl,.swt
|
|
extrn csave,cret,.move
|
|
global pINFOLIS_,2
|
|
global pDPHMAP_,2
|
|
global pDPHVEC_,24
|
|
global metadata_,128
|
|
global pBIOS_,2
|
|
global pDPH_,2
|
|
global pCNFGDAT_,2
|
|
global pSYSCFG_,2
|
|
global devunit_,2
|
|
global dev_,2
|
|
global unit_,2
|
|
global currlu_,2
|
|
global numlu_,2
|
|
global drivenum_,2
|
|
global drive_,2
|
|
global deflu_,2
|
|
global szTemp_,128
|
|
PUBLIC readsec_
|
|
readsec_: lxi d,.2
|
|
call csave
|
|
LXI H,-6629
|
|
SHLD ireghl_
|
|
LXI H,8-.2
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
XCHG
|
|
SHLD iregbc_
|
|
LXI H,0
|
|
SHLD iregde_
|
|
CALL bioscall_
|
|
LXI H,-6626
|
|
SHLD ireghl_
|
|
LXI H,10-.2
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
XCHG
|
|
SHLD iregbc_
|
|
CALL bioscall_
|
|
LXI H,-6623
|
|
SHLD ireghl_
|
|
LXI H,12-.2
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
XCHG
|
|
SHLD iregbc_
|
|
CALL bioscall_
|
|
LXI H,-6620
|
|
SHLD ireghl_
|
|
LXI H,14-.2
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
XCHG
|
|
SHLD iregbc_
|
|
CALL bioscall_
|
|
LXI H,-6617
|
|
SHLD ireghl_
|
|
CALL bioscall_
|
|
LDA irega_
|
|
MOV L,A
|
|
MVI H,0
|
|
RET
|
|
.2 EQU 0
|
|
PUBLIC haslu_
|
|
haslu_: lxi d,.3
|
|
call csave
|
|
LXI H,8-.3
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
CALL lugnum_
|
|
POP D
|
|
PUSH H
|
|
LXI H,0
|
|
POP D
|
|
XCHG
|
|
CALL .lt
|
|
JZ .4
|
|
LXI H,1
|
|
RET
|
|
.4:
|
|
LXI H,0
|
|
RET
|
|
.3 EQU 0
|
|
PUBLIC dispdph_
|
|
dispdph_: lxi d,.5
|
|
call csave
|
|
LXI H,-6602
|
|
SHLD ireghl_
|
|
LXI H,12-.5
|
|
DAD SP
|
|
MOV E,M
|
|
MVI D,0
|
|
LXI H,-65
|
|
DAD D
|
|
SHLD iregbc_
|
|
CALL bioscall_
|
|
LDA irega_
|
|
MOV L,A
|
|
MVI H,0
|
|
PUSH H
|
|
LXI H,1
|
|
POP D
|
|
CALL .eq
|
|
JZ .6
|
|
RET
|
|
.6:
|
|
LXI H,10-.5
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
LXI H,10-.5
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
CALL crtlc_
|
|
POP D
|
|
POP D
|
|
LXI H,12-.5
|
|
DAD SP
|
|
MOV E,M
|
|
MVI D,0
|
|
PUSH D
|
|
LXI H,.1+0
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
POP D
|
|
LXI H,12-.5
|
|
DAD SP
|
|
MOV E,M
|
|
MVI D,0
|
|
LXI H,-65
|
|
DAD D
|
|
PUSH H
|
|
CALL lugdu_
|
|
POP D
|
|
SHLD devunit_
|
|
LHLD devunit_
|
|
LXI D,240
|
|
CALL .an
|
|
SHLD dev_
|
|
LHLD devunit_
|
|
LXI D,15
|
|
CALL .an
|
|
SHLD unit_
|
|
LXI H,12-.5
|
|
DAD SP
|
|
MOV E,M
|
|
MVI D,0
|
|
LXI H,-65
|
|
DAD D
|
|
PUSH H
|
|
CALL lugcur_
|
|
POP D
|
|
SHLD currlu_
|
|
LHLD dev_
|
|
JMP .7
|
|
.9:
|
|
LHLD unit_
|
|
MOV A,H
|
|
ORA L
|
|
JNZ .10
|
|
LXI H,.1+5
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
.10:
|
|
LXI H,1
|
|
XCHG
|
|
LHLD unit_
|
|
CALL .eq
|
|
JZ .11
|
|
LXI H,.1+9
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
.11:
|
|
JMP .8
|
|
.12:
|
|
LHLD unit_
|
|
PUSH H
|
|
LXI H,.1+13
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
POP D
|
|
JMP .8
|
|
.13:
|
|
LHLD unit_
|
|
PUSH H
|
|
LXI H,.1+18
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
POP D
|
|
JMP .8
|
|
.14:
|
|
LHLD unit_
|
|
PUSH H
|
|
LXI H,.1+24
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
POP D
|
|
JMP .8
|
|
.15:
|
|
LHLD unit_
|
|
PUSH H
|
|
LXI H,.1+32
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
POP D
|
|
JMP .8
|
|
.16:
|
|
LHLD unit_
|
|
PUSH H
|
|
LXI H,.1+40
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
POP D
|
|
JMP .8
|
|
.17:
|
|
LHLD unit_
|
|
PUSH H
|
|
LXI H,.1+45
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
POP D
|
|
JMP .8
|
|
.18:
|
|
LHLD unit_
|
|
PUSH H
|
|
LXI H,.1+53
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
POP D
|
|
JMP .8
|
|
.19:
|
|
LHLD unit_
|
|
PUSH H
|
|
LXI H,.1+61
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
POP D
|
|
JMP .8
|
|
.20:
|
|
LXI H,.1+68
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
JMP .8
|
|
.7:
|
|
CALL .swt
|
|
DW 9
|
|
DW 0,.9
|
|
DW 16,.12
|
|
DW 32,.13
|
|
DW 48,.14
|
|
DW 64,.15
|
|
DW 80,.16
|
|
DW 96,.17
|
|
DW 112,.18
|
|
DW 128,.19
|
|
DW .20
|
|
.8:
|
|
LXI H,14-.5
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
LXI H,16
|
|
DAD D
|
|
MOV E,M
|
|
MVI D,0
|
|
PUSH D
|
|
LXI H,76
|
|
POP D
|
|
CALL .eq
|
|
JZ .21
|
|
LXI H,14-.5
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
LXI H,17
|
|
DAD D
|
|
MOV E,M
|
|
MVI D,0
|
|
PUSH D
|
|
LXI H,85
|
|
POP D
|
|
CALL .eq
|
|
JZ .22
|
|
LHLD currlu_
|
|
PUSH H
|
|
LXI H,.1+72
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
POP D
|
|
.22:
|
|
.21:
|
|
RET
|
|
.5 EQU 0
|
|
.1:
|
|
DB 37,99,58,32,0,82,79,77,0,82,65,77,0,70,68
|
|
DB 37,100,0,73,68,69,37,100,0,65,84,65,80,73,37
|
|
DB 100,0,80,80,73,68,69,37,100,0,83,68,37,100,0
|
|
DB 80,82,80,83,68,37,100,0,80,80,80,83,68,37,100
|
|
DB 0,72,68,83,75,37,100,0,85,78,75,0,45,76,85
|
|
DB 37,100,0
|
|
PUBLIC main_
|
|
main_: lxi d,.24
|
|
call csave
|
|
LXI H,8-.24
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
LXI H,3
|
|
CALL .eq
|
|
JZ .25
|
|
LXI H,10-.24
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
XCHG
|
|
INX H
|
|
INX H
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
LXI H,-43-.24
|
|
DAD SP
|
|
PUSH H
|
|
CALL strcpy_
|
|
POP D
|
|
POP D
|
|
LXI H,10-.24
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
LXI H,4
|
|
DAD D
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
LXI H,-75-.24
|
|
DAD SP
|
|
PUSH H
|
|
CALL strcpy_
|
|
POP D
|
|
POP D
|
|
LXI H,-77-.24
|
|
DAD SP
|
|
PUSH H
|
|
CALL atoi_
|
|
POP D
|
|
XCHG
|
|
LXI H,0-.24
|
|
DAD SP
|
|
MOV M,E
|
|
INX H
|
|
MOV M,D
|
|
LXI H,-45-.24
|
|
DAD SP
|
|
PUSH H
|
|
CALL strlen_
|
|
POP D
|
|
LXI D,2
|
|
CALL .eq
|
|
JZ .26
|
|
LXI H,-44-.24
|
|
DAD SP
|
|
MOV E,M
|
|
MVI D,0
|
|
PUSH D
|
|
LXI H,58
|
|
POP D
|
|
CALL .eq
|
|
JZ .27
|
|
LXI H,-45-.24
|
|
DAD SP
|
|
MOV E,M
|
|
MVI D,0
|
|
XCHG
|
|
JMP .28
|
|
.30:
|
|
.31:
|
|
LXI H,0-.24
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
LXI H,0
|
|
PUSH H
|
|
CALL luscur_
|
|
POP D
|
|
POP D
|
|
JMP .29
|
|
.32:
|
|
.33:
|
|
LXI H,0-.24
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
LXI H,1
|
|
PUSH H
|
|
CALL luscur_
|
|
POP D
|
|
POP D
|
|
JMP .29
|
|
.34:
|
|
.35:
|
|
LXI H,0-.24
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
LXI H,2
|
|
PUSH H
|
|
CALL luscur_
|
|
POP D
|
|
POP D
|
|
JMP .29
|
|
.36:
|
|
.37:
|
|
LXI H,0-.24
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
LXI H,3
|
|
PUSH H
|
|
CALL luscur_
|
|
POP D
|
|
POP D
|
|
JMP .29
|
|
.38:
|
|
.39:
|
|
LXI H,0-.24
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
LXI H,4
|
|
PUSH H
|
|
CALL luscur_
|
|
POP D
|
|
POP D
|
|
JMP .29
|
|
.40:
|
|
.41:
|
|
LXI H,0-.24
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
LXI H,5
|
|
PUSH H
|
|
CALL luscur_
|
|
POP D
|
|
POP D
|
|
JMP .29
|
|
.42:
|
|
.43:
|
|
LXI H,0-.24
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
LXI H,6
|
|
PUSH H
|
|
CALL luscur_
|
|
POP D
|
|
POP D
|
|
JMP .29
|
|
.44:
|
|
.45:
|
|
LXI H,0-.24
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
LXI H,7
|
|
PUSH H
|
|
CALL luscur_
|
|
POP D
|
|
POP D
|
|
JMP .29
|
|
.46:
|
|
.47:
|
|
LXI H,0-.24
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
LXI H,8
|
|
PUSH H
|
|
CALL luscur_
|
|
POP D
|
|
POP D
|
|
JMP .29
|
|
.48:
|
|
.49:
|
|
LXI H,0-.24
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
LXI H,9
|
|
PUSH H
|
|
CALL luscur_
|
|
POP D
|
|
POP D
|
|
JMP .29
|
|
.50:
|
|
.51:
|
|
LXI H,0-.24
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
LXI H,10
|
|
PUSH H
|
|
CALL luscur_
|
|
POP D
|
|
POP D
|
|
JMP .29
|
|
.52:
|
|
.53:
|
|
LXI H,0-.24
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
LXI H,11
|
|
PUSH H
|
|
CALL luscur_
|
|
POP D
|
|
POP D
|
|
JMP .29
|
|
.54:
|
|
JMP .29
|
|
.28:
|
|
LXI D,-65
|
|
DAD D
|
|
XCHG
|
|
LXI H,-44
|
|
DAD D
|
|
JC .54
|
|
LXI H,.55
|
|
DAD D
|
|
DAD D
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
XCHG
|
|
PCHL
|
|
.55: DW .31
|
|
DW .33
|
|
DW .35
|
|
DW .37
|
|
DW .39
|
|
DW .41
|
|
DW .43
|
|
DW .45
|
|
DW .47
|
|
DW .49
|
|
DW .51
|
|
DW .53
|
|
DW .54
|
|
DW .54
|
|
DW .54
|
|
DW .54
|
|
DW .54
|
|
DW .54
|
|
DW .54
|
|
DW .54
|
|
DW .54
|
|
DW .54
|
|
DW .54
|
|
DW .54
|
|
DW .54
|
|
DW .54
|
|
DW .54
|
|
DW .54
|
|
DW .54
|
|
DW .54
|
|
DW .54
|
|
DW .54
|
|
DW .30
|
|
DW .32
|
|
DW .34
|
|
DW .36
|
|
DW .38
|
|
DW .40
|
|
DW .42
|
|
DW .44
|
|
DW .46
|
|
DW .48
|
|
DW .50
|
|
DW .52
|
|
.29:
|
|
.27:
|
|
.26:
|
|
LXI H,1
|
|
PUSH H
|
|
CALL exit_
|
|
POP D
|
|
.25:
|
|
LXI H,-6656
|
|
SHLD pBIOS_
|
|
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,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,.23+0
|
|
PUSH H
|
|
CALL printf_
|
|
XCHG
|
|
LXI H,16
|
|
DAD SP
|
|
SPHL
|
|
LXI H,.23+32
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
LXI H,-6596
|
|
SHLD ireghl_
|
|
CALL bioscall_
|
|
LHLD ireghl_
|
|
SHLD pINFOLIS_
|
|
LXI H,57
|
|
PUSH H
|
|
LXI H,7
|
|
PUSH H
|
|
CALL crtlc_
|
|
POP D
|
|
POP D
|
|
LHLD pINFOLIS_
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
LXI H,.23+79
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
POP D
|
|
LHLD pINFOLIS_
|
|
LXI D,10
|
|
DAD D
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
XCHG
|
|
SHLD pDPHMAP_
|
|
LHLD pDPHMAP_
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
LXI H,65
|
|
PUSH H
|
|
LXI H,5
|
|
PUSH H
|
|
LXI H,3
|
|
PUSH H
|
|
CALL dispdph_
|
|
XCHG
|
|
LXI H,8
|
|
DAD SP
|
|
SPHL
|
|
LHLD pDPHMAP_
|
|
INX H
|
|
INX H
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
LXI H,66
|
|
PUSH H
|
|
LXI H,5
|
|
PUSH H
|
|
LXI H,4
|
|
PUSH H
|
|
CALL dispdph_
|
|
XCHG
|
|
LXI H,8
|
|
DAD SP
|
|
SPHL
|
|
LHLD pDPHMAP_
|
|
LXI D,4
|
|
DAD D
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
LXI H,67
|
|
PUSH H
|
|
LXI H,5
|
|
PUSH H
|
|
LXI H,5
|
|
PUSH H
|
|
CALL dispdph_
|
|
XCHG
|
|
LXI H,8
|
|
DAD SP
|
|
SPHL
|
|
LHLD pDPHMAP_
|
|
LXI D,6
|
|
DAD D
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
LXI H,68
|
|
PUSH H
|
|
LXI H,25
|
|
PUSH H
|
|
LXI H,3
|
|
PUSH H
|
|
CALL dispdph_
|
|
XCHG
|
|
LXI H,8
|
|
DAD SP
|
|
SPHL
|
|
LHLD pDPHMAP_
|
|
LXI D,8
|
|
DAD D
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
LXI H,69
|
|
PUSH H
|
|
LXI H,25
|
|
PUSH H
|
|
LXI H,4
|
|
PUSH H
|
|
CALL dispdph_
|
|
XCHG
|
|
LXI H,8
|
|
DAD SP
|
|
SPHL
|
|
LHLD pDPHMAP_
|
|
LXI D,10
|
|
DAD D
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
LXI H,70
|
|
PUSH H
|
|
LXI H,25
|
|
PUSH H
|
|
LXI H,5
|
|
PUSH H
|
|
CALL dispdph_
|
|
XCHG
|
|
LXI H,8
|
|
DAD SP
|
|
SPHL
|
|
LHLD pDPHMAP_
|
|
LXI D,12
|
|
DAD D
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
LXI H,71
|
|
PUSH H
|
|
LXI H,45
|
|
PUSH H
|
|
LXI H,3
|
|
PUSH H
|
|
CALL dispdph_
|
|
XCHG
|
|
LXI H,8
|
|
DAD SP
|
|
SPHL
|
|
LHLD pDPHMAP_
|
|
LXI D,14
|
|
DAD D
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
LXI H,72
|
|
PUSH H
|
|
LXI H,45
|
|
PUSH H
|
|
LXI H,4
|
|
PUSH H
|
|
CALL dispdph_
|
|
XCHG
|
|
LXI H,8
|
|
DAD SP
|
|
SPHL
|
|
LHLD pDPHMAP_
|
|
LXI D,16
|
|
DAD D
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
LXI H,73
|
|
PUSH H
|
|
LXI H,45
|
|
PUSH H
|
|
LXI H,5
|
|
PUSH H
|
|
CALL dispdph_
|
|
XCHG
|
|
LXI H,8
|
|
DAD SP
|
|
SPHL
|
|
LHLD pDPHMAP_
|
|
LXI D,18
|
|
DAD D
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
LXI H,74
|
|
PUSH H
|
|
LXI H,65
|
|
PUSH H
|
|
LXI H,3
|
|
PUSH H
|
|
CALL dispdph_
|
|
XCHG
|
|
LXI H,8
|
|
DAD SP
|
|
SPHL
|
|
LHLD pDPHMAP_
|
|
LXI D,20
|
|
DAD D
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
LXI H,75
|
|
PUSH H
|
|
LXI H,65
|
|
PUSH H
|
|
LXI H,4
|
|
PUSH H
|
|
CALL dispdph_
|
|
XCHG
|
|
LXI H,8
|
|
DAD SP
|
|
SPHL
|
|
LHLD pDPHMAP_
|
|
LXI D,22
|
|
DAD D
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
LXI H,76
|
|
PUSH H
|
|
LXI H,65
|
|
PUSH H
|
|
LXI H,5
|
|
PUSH H
|
|
CALL dispdph_
|
|
XCHG
|
|
LXI H,8
|
|
DAD SP
|
|
SPHL
|
|
LXI H,25
|
|
SHLD dregbc_
|
|
CALL bdoscall_
|
|
LDA drega_
|
|
MOV L,A
|
|
MVI H,0
|
|
SHLD drive_
|
|
LXI H,5
|
|
PUSH H
|
|
LXI H,7
|
|
PUSH H
|
|
CALL crtlc_
|
|
POP D
|
|
POP D
|
|
LHLD drive_
|
|
LXI D,65
|
|
DAD D
|
|
PUSH H
|
|
LXI H,.23+100
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
POP D
|
|
LHLD drive_
|
|
PUSH H
|
|
CALL lugdu_
|
|
POP D
|
|
SHLD devunit_
|
|
LHLD devunit_
|
|
LXI D,240
|
|
CALL .an
|
|
SHLD dev_
|
|
LHLD devunit_
|
|
LXI D,15
|
|
CALL .an
|
|
SHLD unit_
|
|
LHLD drive_
|
|
PUSH H
|
|
CALL lugcur_
|
|
POP D
|
|
SHLD currlu_
|
|
LHLD currlu_
|
|
SHLD deflu_
|
|
LHLD drive_
|
|
PUSH H
|
|
CALL lugnum_
|
|
POP D
|
|
SHLD numlu_
|
|
LXI H,31
|
|
PUSH H
|
|
LXI H,7
|
|
PUSH H
|
|
CALL crtlc_
|
|
POP D
|
|
POP D
|
|
LHLD drive_
|
|
PUSH H
|
|
CALL lugnum_
|
|
POP D
|
|
PUSH H
|
|
LXI H,.23+121
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
POP D
|
|
LXI H,0
|
|
XCHG
|
|
LHLD numlu_
|
|
CALL .lt
|
|
JZ .56
|
|
LXI H,4
|
|
PUSH H
|
|
LXI H,9
|
|
PUSH H
|
|
CALL crtlc_
|
|
POP D
|
|
POP D
|
|
LXI H,.23+142
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
LXI H,30
|
|
PUSH H
|
|
LXI H,9
|
|
PUSH H
|
|
CALL crtlc_
|
|
POP D
|
|
POP D
|
|
LXI H,.23+164
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
LXI H,56
|
|
PUSH H
|
|
LXI H,9
|
|
PUSH H
|
|
CALL crtlc_
|
|
POP D
|
|
POP D
|
|
LXI H,.23+186
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
LXI H,0
|
|
XCHG
|
|
LXI H,-10-.24
|
|
DAD SP
|
|
MOV M,E
|
|
INX H
|
|
MOV M,D
|
|
LXI H,-10-.24
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
LXI H,39
|
|
DAD D
|
|
XCHG
|
|
LXI H,-12-.24
|
|
DAD SP
|
|
MOV M,E
|
|
INX H
|
|
MOV M,D
|
|
LXI H,-12-.24
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
LHLD numlu_
|
|
CALL .gt
|
|
JZ .57
|
|
LHLD numlu_
|
|
XCHG
|
|
LXI H,-12-.24
|
|
DAD SP
|
|
MOV M,E
|
|
INX H
|
|
MOV M,D
|
|
.57:
|
|
LXI H,1
|
|
XCHG
|
|
LXI H,-13-.24
|
|
DAD SP
|
|
MOV M,E
|
|
.58:
|
|
LXI H,-13-.24
|
|
DAD SP
|
|
MOV E,M
|
|
MVI D,0
|
|
PUSH D
|
|
LXI H,1
|
|
POP D
|
|
CALL .eq
|
|
JZ .59
|
|
LXI H,10
|
|
XCHG
|
|
LXI H,-8-.24
|
|
DAD SP
|
|
MOV M,E
|
|
INX H
|
|
MOV M,D
|
|
LXI H,0
|
|
XCHG
|
|
LXI H,-4-.24
|
|
DAD SP
|
|
MOV M,E
|
|
INX H
|
|
MOV M,D
|
|
LXI H,0
|
|
XCHG
|
|
LXI H,-6-.24
|
|
DAD SP
|
|
MOV M,E
|
|
INX H
|
|
MOV M,D
|
|
JMP .61
|
|
.60:
|
|
LXI H,-6-.24
|
|
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
|
|
.61:
|
|
LXI H,-6-.24
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
LXI H,13
|
|
CALL .lt
|
|
JZ .62
|
|
LXI H,0
|
|
PUSH H
|
|
LXI H,-6-.24
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
LXI H,-4-.24
|
|
DAD SP
|
|
MOV A,M
|
|
INX H
|
|
MOV H,M
|
|
MOV L,A
|
|
DAD D
|
|
PUSH H
|
|
CALL crtlc_
|
|
POP D
|
|
POP D
|
|
LXI H,.23+208
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
LXI H,.23+237
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
JMP .60
|
|
.62:
|
|
LXI H,-10-.24
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
LXI H,2-.24
|
|
DAD SP
|
|
MOV M,E
|
|
INX H
|
|
MOV M,D
|
|
JMP .64
|
|
.63:
|
|
LXI H,2-.24
|
|
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
|
|
.64:
|
|
LXI H,2-.24
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
LXI H,-12-.24
|
|
DAD SP
|
|
MOV A,M
|
|
INX H
|
|
MOV H,M
|
|
MOV L,A
|
|
CALL .lt
|
|
JZ .65
|
|
LXI H,2-.24
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
LHLD drive_
|
|
PUSH H
|
|
CALL luscur_
|
|
POP D
|
|
POP D
|
|
LXI H,metadata_
|
|
PUSH H
|
|
LXI H,11
|
|
PUSH H
|
|
LXI H,0
|
|
PUSH H
|
|
LHLD drive_
|
|
PUSH H
|
|
CALL readsec_
|
|
XCHG
|
|
LXI H,8
|
|
DAD SP
|
|
SPHL
|
|
LXI H,0
|
|
MOV A,L
|
|
STA metadata_+119
|
|
LDA metadata_+96
|
|
MOV L,A
|
|
MVI H,0
|
|
PUSH H
|
|
LXI H,1
|
|
POP D
|
|
CALL .eq
|
|
JZ .66
|
|
LXI H,.23+266
|
|
PUSH H
|
|
LXI H,-77-.24
|
|
DAD SP
|
|
PUSH H
|
|
CALL strcpy_
|
|
POP D
|
|
POP D
|
|
JMP .67
|
|
.66:
|
|
LXI H,.23+268
|
|
PUSH H
|
|
LXI H,-77-.24
|
|
DAD SP
|
|
PUSH H
|
|
CALL strcpy_
|
|
POP D
|
|
POP D
|
|
.67:
|
|
LXI H,-4-.24
|
|
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
|
|
XCHG
|
|
DCX H
|
|
JMP .68
|
|
.70:
|
|
LXI H,3
|
|
PUSH H
|
|
LXI H,-6-.24
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
CALL crtlc_
|
|
POP D
|
|
POP D
|
|
LXI H,metadata_+103
|
|
PUSH H
|
|
LXI H,-77-.24
|
|
DAD SP
|
|
PUSH H
|
|
LXI H,6-.24
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
LXI H,.23+270
|
|
PUSH H
|
|
CALL printf_
|
|
XCHG
|
|
LXI H,8
|
|
DAD SP
|
|
SPHL
|
|
JMP .69
|
|
.71:
|
|
LXI H,29
|
|
PUSH H
|
|
LXI H,-6-.24
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
CALL crtlc_
|
|
POP D
|
|
POP D
|
|
LXI H,metadata_+103
|
|
PUSH H
|
|
LXI H,-77-.24
|
|
DAD SP
|
|
PUSH H
|
|
LXI H,6-.24
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
LXI H,.23+280
|
|
PUSH H
|
|
CALL printf_
|
|
XCHG
|
|
LXI H,8
|
|
DAD SP
|
|
SPHL
|
|
JMP .69
|
|
.72:
|
|
LXI H,55
|
|
PUSH H
|
|
LXI H,-6-.24
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
CALL crtlc_
|
|
POP D
|
|
POP D
|
|
LXI H,metadata_+103
|
|
PUSH H
|
|
LXI H,-77-.24
|
|
DAD SP
|
|
PUSH H
|
|
LXI H,6-.24
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
PUSH D
|
|
LXI H,.23+290
|
|
PUSH H
|
|
CALL printf_
|
|
XCHG
|
|
LXI H,8
|
|
DAD SP
|
|
SPHL
|
|
LXI H,0
|
|
XCHG
|
|
LXI H,-4-.24
|
|
DAD SP
|
|
MOV M,E
|
|
INX H
|
|
MOV M,D
|
|
LXI H,-8-.24
|
|
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
|
|
JMP .69
|
|
.68:
|
|
CALL .swt
|
|
DW 3
|
|
DW 0,.70
|
|
DW 1,.71
|
|
DW 2,.72
|
|
DW .69
|
|
.69:
|
|
JMP .63
|
|
.65:
|
|
LXI H,0
|
|
PUSH H
|
|
LXI H,23
|
|
PUSH H
|
|
CALL crtlc_
|
|
POP D
|
|
POP D
|
|
LXI H,.23+300
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
LXI H,1
|
|
SHLD dregbc_
|
|
CALL bdoscall_
|
|
LDA drega_
|
|
MOV L,A
|
|
MVI H,0
|
|
JMP .73
|
|
.75:
|
|
.76:
|
|
.77:
|
|
.78:
|
|
.79:
|
|
LXI H,0
|
|
XCHG
|
|
LXI H,-13-.24
|
|
DAD SP
|
|
MOV M,E
|
|
JMP .74
|
|
.80:
|
|
.81:
|
|
.82:
|
|
LXI H,39
|
|
XCHG
|
|
LXI H,-10-.24
|
|
DAD SP
|
|
PUSH H
|
|
MOV A,M
|
|
INX H
|
|
MOV H,M
|
|
MOV L,A
|
|
DAD D
|
|
XCHG
|
|
POP H
|
|
MOV M,E
|
|
INX H
|
|
MOV M,D
|
|
LXI H,-10-.24
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
LHLD numlu_
|
|
CALL .gt
|
|
JZ .83
|
|
LXI H,0
|
|
XCHG
|
|
LXI H,-10-.24
|
|
DAD SP
|
|
MOV M,E
|
|
INX H
|
|
MOV M,D
|
|
.83:
|
|
LXI H,-10-.24
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
LXI H,39
|
|
DAD D
|
|
XCHG
|
|
LXI H,-12-.24
|
|
DAD SP
|
|
MOV M,E
|
|
INX H
|
|
MOV M,D
|
|
LXI H,-12-.24
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
LHLD numlu_
|
|
CALL .gt
|
|
JZ .84
|
|
LHLD numlu_
|
|
XCHG
|
|
LXI H,-12-.24
|
|
DAD SP
|
|
MOV M,E
|
|
INX H
|
|
MOV M,D
|
|
.84:
|
|
JMP .74
|
|
.85:
|
|
.86:
|
|
LXI H,39
|
|
XCHG
|
|
LXI H,-10-.24
|
|
DAD SP
|
|
PUSH H
|
|
MOV A,M
|
|
INX H
|
|
MOV H,M
|
|
MOV L,A
|
|
XCHG
|
|
CALL .sb
|
|
XCHG
|
|
POP H
|
|
MOV M,E
|
|
INX H
|
|
MOV M,D
|
|
LXI H,-10-.24
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
LXI H,0
|
|
CALL .lt
|
|
JZ .87
|
|
LXI H,0
|
|
XCHG
|
|
LXI H,-10-.24
|
|
DAD SP
|
|
MOV M,E
|
|
INX H
|
|
MOV M,D
|
|
.87:
|
|
LXI H,-10-.24
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
LXI H,39
|
|
DAD D
|
|
XCHG
|
|
LXI H,-12-.24
|
|
DAD SP
|
|
MOV M,E
|
|
INX H
|
|
MOV M,D
|
|
LXI H,-12-.24
|
|
DAD SP
|
|
MOV E,M
|
|
INX H
|
|
MOV D,M
|
|
LHLD numlu_
|
|
CALL .gt
|
|
JZ .88
|
|
LHLD numlu_
|
|
XCHG
|
|
LXI H,-12-.24
|
|
DAD SP
|
|
MOV M,E
|
|
INX H
|
|
MOV M,D
|
|
.88:
|
|
JMP .74
|
|
.89:
|
|
LXI H,7
|
|
PUSH H
|
|
LXI H,.23+340
|
|
PUSH H
|
|
CALL printf_
|
|
POP D
|
|
POP D
|
|
JMP .74
|
|
.73:
|
|
CALL .swt
|
|
DW 10
|
|
DW 3,.79
|
|
DW 32,.82
|
|
DW 78,.80
|
|
DW 80,.85
|
|
DW 81,.75
|
|
DW 88,.77
|
|
DW 110,.81
|
|
DW 112,.86
|
|
DW 113,.76
|
|
DW 120,.78
|
|
DW .89
|
|
.74:
|
|
JMP .58
|
|
.59:
|
|
LHLD deflu_
|
|
PUSH H
|
|
LHLD drive_
|
|
PUSH H
|
|
CALL luscur_
|
|
POP D
|
|
POP D
|
|
.56:
|
|
RET
|
|
.24 EQU -83
|
|
.23:
|
|
DB 77,65,80,46,67,79,77,32,37,100,47,37,100,47,37
|
|
DB 100,32,118,37,100,46,37,100,46,37,100,32,40,37,100
|
|
DB 41,0,32,100,119,103,32,45,32,83,121,115,116,101,109
|
|
DB 32,83,116,111,114,97,103,101,32,68,114,105,118,101,115
|
|
DB 32,97,110,100,32,76,111,103,105,99,97,108,32,85,110
|
|
DB 105,116,115,0,105,110,102,111,108,105,115,116,46,118,101
|
|
DB 114,115,105,111,110,32,37,100,10,0,67,117,114,114,101
|
|
DB 110,116,32,100,114,105,118,101,32,105,115,32,37,99,58
|
|
DB 0,78,117,109,98,101,114,32,111,102,32,76,85,115,32
|
|
DB 105,115,32,37,100,10,0,76,85,32,80,32,45,45,45
|
|
DB 45,45,76,97,98,101,108,45,45,45,45,45,45,0,76
|
|
DB 85,32,80,32,45,45,45,45,45,76,97,98,101,108,45
|
|
DB 45,45,45,45,45,0,76,85,32,80,32,45,45,45,45
|
|
DB 45,76,97,98,101,108,45,45,45,45,45,45,0,9,9
|
|
DB 9,9,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,0,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,0,42,0,32,0
|
|
DB 37,51,100,32,37,115,32,37,115,0,37,51,100,32,37
|
|
DB 115,32,37,115,0,37,51,100,32,37,115,32,37,115,0
|
|
DB 79,112,116,105,111,110,115,40,32,78,40,101,120,116,41
|
|
DB 44,32,80,40,114,101,118,105,111,117,115,41,44,32,81
|
|
DB 40,117,105,116,41,32,41,63,32,0,37,99,0
|
|
extrn crtclr_
|
|
extrn crtinit_
|
|
extrn exit_
|
|
extrn strlen_
|
|
extrn atoi_
|
|
extrn strcpy_
|
|
extrn printf_
|
|
extrn crtlc_
|
|
extrn diagnose_
|
|
extrn hregde_
|
|
extrn hregbc_
|
|
extrn lugnum_
|
|
extrn luscur_
|
|
extrn lugcur_
|
|
extrn lugdu_
|
|
extrn bdoscall_
|
|
extrn dregbc_
|
|
extrn drega_
|
|
extrn bioscall_
|
|
extrn ireghl_
|
|
extrn iregde_
|
|
extrn iregbc_
|
|
extrn irega_
|
|
extrn .an
|
|
extrn .eq
|
|
extrn .lt
|
|
extrn .gt
|
|
extrn .sb
|
|
END
|
|
|