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.
 
 
 
 
 
 

982 lines
12 KiB

extrn .begin,.chl,.swt
extrn csave,cret,.move
global pDPHMAP_,2
global pDPHVEC_,24
global pINFOLIS_,2
global pDPH_,2
global pDPB_,2
DSEG
public pSYSCFG_
pSYSCFG_:
DW -16384
CSEG
global filespec_,32
global pBUFFER_,2
global szDrive_,32
global szTemp_,128
PUBLIC rdimage_
rdimage_: lxi d,.2
call csave
LXI H,.1+0
PUSH H
LXI H,10-.2
DAD SP
MOV E,M
INX H
MOV D,M
PUSH D
CALL fopen_
POP D
POP D
XCHG
LXI H,0-.2
DAD SP
MOV M,E
INX H
MOV M,D
LXI H,0-.2
DAD SP
mov a,m
inx h
ora m
JNZ .3
LXI H,0
RET
.3:
LXI H,0-.2
DAD SP
MOV E,M
INX H
MOV D,M
PUSH D
LXI H,14-.2
DAD SP
MOV E,M
INX H
MOV D,M
PUSH D
LXI H,1
PUSH H
LXI H,16-.2
DAD SP
MOV E,M
INX H
MOV D,M
PUSH D
CALL fread_
XCHG
LXI H,8
DAD SP
SPHL
LXI H,2-.2
DAD SP
MOV M,E
INX H
MOV M,D
LXI H,0-.2
DAD SP
MOV E,M
INX H
MOV D,M
PUSH D
CALL fclose_
POP D
LXI H,2-.2
DAD SP
MOV E,M
INX H
MOV D,M
XCHG
RET
.2 EQU -4
.1:
DB 114,0
PUBLIC strupr_
strupr_: lxi d,.5
call csave
LXI H,0
XCHG
LXI H,2-.5
DAD SP
MOV M,E
INX H
MOV M,D
JMP .7
.6:
LXI H,2-.5
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,8-.5
DAD SP
MOV E,M
INX H
MOV D,M
PUSH D
CALL strlen_
POP D
PUSH H
LXI H,4-.5
DAD SP
MOV E,M
INX H
MOV D,M
POP H
CALL .lt
JZ .8
LXI H,8-.5
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,2-.5
DAD SP
MOV A,M
INX H
MOV H,M
MOV L,A
DAD D
MOV E,M
MVI D,0
LXI H,97
CALL .ge
JZ .9
LXI H,8-.5
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,2-.5
DAD SP
MOV A,M
INX H
MOV H,M
MOV L,A
DAD D
MOV E,M
MVI D,0
LXI H,122
CALL .le
JZ .10
LXI H,8-.5
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,2-.5
DAD SP
MOV A,M
INX H
MOV H,M
MOV L,A
DAD D
MOV E,M
MVI D,0
LXI H,223
CALL .an
PUSH H
LXI H,10-.5
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,4-.5
DAD SP
MOV A,M
INX H
MOV H,M
MOV L,A
DAD D
POP D
MOV M,E
.10:
.9:
JMP .6
.8:
RET
.5 EQU -2
PUBLIC sysgen_
sysgen_: lxi d,.11
call csave
.12:
LXI H,0
XCHG
LXI H,18-.11
DAD SP
MOV A,M
INX H
MOV H,M
MOV L,A
CALL .lt
JZ .13
LXI H,14-.11
DAD SP
MOV E,M
INX H
MOV D,M
PUSH D
LXI H,14-.11
DAD SP
MOV E,M
INX H
MOV D,M
PUSH D
LXI H,14-.11
DAD SP
MOV E,M
INX H
MOV D,M
PUSH D
LXI H,14-.11
DAD SP
MOV E,M
INX H
MOV D,M
PUSH D
CALL wrsector_
XCHG
LXI H,8
DAD SP
SPHL
LXI H,14-.11
DAD SP
MOV E,M
INX H
MOV D,M
PUSH D
LXI H,14-.11
DAD SP
MOV E,M
INX H
MOV D,M
PUSH D
LXI H,14-.11
DAD SP
MOV E,M
INX H
MOV D,M
PUSH D
LXI H,14-.11
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,65
DAD D
PUSH H
LXI H,.4+0
PUSH H
CALL printf_
XCHG
LXI H,10
DAD SP
SPHL
LXI H,13
PUSH H
LXI H,.4+43
PUSH H
CALL printf_
POP D
POP D
LXI H,128
XCHG
LXI H,14-.11
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,12-.11
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
LXI H,12-.11
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,16-.11
DAD SP
MOV A,M
INX H
MOV H,M
MOV L,A
CALL .eq
JZ .14
LXI H,10-.11
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
LXI H,0
XCHG
LXI H,12-.11
DAD SP
MOV M,E
INX H
MOV M,D
.14:
LXI H,18-.11
DAD SP
PUSH H
MOV A,M
INX H
MOV H,M
MOV L,A
DCX H
XCHG
POP H
MOV M,E
INX H
MOV M,D
JMP .12
.13:
LXI H,.4+46
PUSH H
CALL printf_
POP D
LXI H,13
PUSH H
LXI H,.4+87
PUSH H
CALL printf_
POP D
POP D
RET
.11 EQU 0
.4:
DB 100,114,105,118,101,61,37,99,58,44,32,116,114,107,61
DB 37,100,44,32,115,101,99,61,37,51,100,44,32,32,112
DB 116,114,61,48,120,48,37,52,120,32,32,32,0,37,99
DB 0,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,32,32,32,32,32,32,32,32,32,0,37,99,0
PUBLIC main_
main_: lxi d,.16
call csave
LXI H,-4096
SHLD hregbc_
LXI H,-16384
SHLD hregde_
CALL diagnose_
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
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,.15+0
PUSH H
CALL printf_
XCHG
LXI H,16
DAD SP
SPHL
LXI H,.15+33
PUSH H
CALL printf_
POP D
LXI H,25
SHLD dregbc_
CALL bdoscall_
LDA drega_
MOV L,A
MVI H,0
XCHG
LXI H,-14-.16
DAD SP
MOV M,E
INX H
MOV M,D
LXI H,-32768
SHLD pBUFFER_
LXI H,1
XCHG
LXI H,8-.16
DAD SP
MOV A,M
INX H
MOV H,M
MOV L,A
CALL .eq
JZ .17
LXI H,0
XCHG
LXI H,-12-.16
DAD SP
MOV M,E
INX H
MOV M,D
JMP .19
.18:
LXI H,-12-.16
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
.19:
LXI H,-12-.16
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,12
CALL .lt
JZ .20
LXI H,-6602
SHLD ireghl_
LXI H,-12-.16
DAD SP
MOV E,M
INX H
MOV D,M
XCHG
SHLD iregbc_
CALL bioscall_
LHLD iregbc_
LXI D,8
XCHG
CALL .ur
JNZ .21
JMP .20
.21:
JMP .18
.20:
LXI H,-12-.16
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,65
DAD D
PUSH H
LXI H,.15+77
PUSH H
LXI H,filespec_
PUSH H
CALL sprintf_
POP D
POP D
POP D
LXI H,16383
PUSH H
LHLD pBUFFER_
PUSH H
LXI H,filespec_
PUSH H
CALL rdimage_
POP D
POP D
POP D
XCHG
LXI H,0-.16
DAD SP
MOV M,E
INX H
MOV M,D
LXI H,0-.16
DAD SP
mov a,m
inx h
ora m
JNZ .22
LXI H,-12-.16
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,65
DAD D
PUSH H
LXI H,.15+88
PUSH H
LXI H,filespec_
PUSH H
CALL sprintf_
POP D
POP D
POP D
LXI H,16383
PUSH H
LHLD pBUFFER_
PUSH H
LXI H,filespec_
PUSH H
CALL rdimage_
POP D
POP D
POP D
XCHG
LXI H,0-.16
DAD SP
MOV M,E
INX H
MOV M,D
LXI H,0-.16
DAD SP
mov a,m
inx h
ora m
JNZ .23
LXI H,.15+100
PUSH H
CALL printf_
POP D
LXI H,1
PUSH H
CALL exit_
POP D
.23:
.22:
.17:
LXI H,2
XCHG
LXI H,8-.16
DAD SP
MOV A,M
INX H
MOV H,M
MOV L,A
CALL .eq
JZ .24
LXI H,10-.16
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,filespec_
PUSH H
CALL strcpy_
POP D
POP D
LXI H,16383
PUSH H
LHLD pBUFFER_
PUSH H
LXI H,filespec_
PUSH H
CALL rdimage_
POP D
POP D
POP D
XCHG
LXI H,0-.16
DAD SP
MOV M,E
INX H
MOV M,D
.24:
LXI H,3
XCHG
LXI H,8-.16
DAD SP
MOV A,M
INX H
MOV H,M
MOV L,A
CALL .eq
JZ .25
LXI H,10-.16
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,filespec_
PUSH H
CALL strcpy_
POP D
POP D
LXI H,10-.16
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,szDrive_
PUSH H
CALL strcpy_
POP D
POP D
LXI H,szDrive_
PUSH H
CALL strupr_
POP D
LDA szDrive_
MOV L,A
MVI H,0
LXI D,-65
DAD D
XCHG
LXI H,-14-.16
DAD SP
MOV M,E
INX H
MOV M,D
LXI H,16383
PUSH H
LHLD pBUFFER_
PUSH H
LXI H,filespec_
PUSH H
CALL rdimage_
POP D
POP D
POP D
XCHG
LXI H,0-.16
DAD SP
MOV M,E
INX H
MOV M,D
.25:
LXI H,-6629
SHLD ireghl_
LXI H,-14-.16
DAD SP
MOV E,M
INX H
MOV D,M
XCHG
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_
MOV E,M
INX H
MOV D,M
LXI H,-4-.16
DAD SP
MOV M,E
INX H
MOV M,D
LHLD pDPB_
LXI D,13
DAD D
MOV E,M
INX H
MOV D,M
LXI H,-16-.16
DAD SP
MOV M,E
INX H
MOV M,D
LXI H,0
XCHG
LXI H,-6-.16
DAD SP
MOV M,E
INX H
MOV M,D
LXI H,0
XCHG
LXI H,-8-.16
DAD SP
MOV M,E
INX H
MOV M,D
LHLD pBUFFER_
XCHG
LXI H,-146-.16
DAD SP
MOV M,E
INX H
MOV M,D
LXI H,0-.16
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,128
CALL .dv
XCHG
LXI H,-10-.16
DAD SP
MOV M,E
INX H
MOV M,D
LXI H,-16-.16
DAD SP
mov a,m
inx h
ora m
JNZ .26
LXI H,-14-.16
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,65
DAD D
PUSH H
LXI H,.15+142
PUSH H
CALL printf_
POP D
POP D
LXI H,1
PUSH H
CALL exit_
POP D
.26:
LXI H,.15+190
PUSH H
CALL printf_
POP D
LXI H,0-.16
DAD SP
MOV E,M
INX H
MOV D,M
PUSH D
LXI H,filespec_
PUSH H
LXI H,-10-.16
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,65
DAD D
PUSH H
LXI H,.15+242
PUSH H
CALL printf_
XCHG
LXI H,8
DAD SP
SPHL
LXI H,.15+277
PUSH H
CALL printf_
POP D
LXI H,.15+302
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 .ne
JZ .27
LXI H,.15+304
PUSH H
CALL printf_
POP D
LXI H,1
PUSH H
CALL exit_
POP D
.27:
LXI H,-10-.16
DAD SP
MOV E,M
INX H
MOV D,M
PUSH D
LXI H,-2-.16
DAD SP
MOV E,M
INX H
MOV D,M
PUSH D
LHLD pBUFFER_
PUSH H
LXI H,-2-.16
DAD SP
MOV E,M
INX H
MOV D,M
PUSH D
LXI H,2-.16
DAD SP
MOV E,M
INX H
MOV D,M
PUSH D
LXI H,-4-.16
DAD SP
MOV E,M
INX H
MOV D,M
PUSH D
CALL sysgen_
XCHG
LXI H,12
DAD SP
SPHL
LXI H,-14-.16
DAD SP
MOV E,M
INX H
MOV D,M
LXI H,65
DAD D
PUSH H
LXI H,.15+350
PUSH H
CALL printf_
POP D
POP D
RET
.16 EQU -152
.15:
DB 83,89,83,71,69,78,46,67,79,77,32,37,100,47,37
DB 100,47,37,100,32,118,37,100,46,37,100,46,37,100,46
DB 37,100,0,32,100,119,103,32,45,32,87,114,105,116,101
DB 32,83,121,115,116,101,109,32,73,109,97,103,101,32,116
DB 111,32,83,116,111,114,97,103,101,32,77,101,100,105,97
DB 10,0,37,99,58,67,80,77,46,83,89,83,0,37,99
DB 58,90,83,89,83,46,83,89,83,0,83,111,114,114,121
DB 44,32,99,111,117,108,100,32,110,111,116,32,114,101,97
DB 100,32,100,101,102,97,117,108,116,32,115,121,115,116,101
DB 109,32,102,105,108,101,0,83,111,114,114,121,44,32,37
DB 99,58,32,68,114,105,118,101,32,100,111,101,115,32,110
DB 111,116,32,104,97,118,101,32,114,101,115,101,114,118,101
DB 100,32,116,114,97,99,107,115,10,0,80,114,101,112,97
DB 114,105,110,103,32,116,111,32,116,114,97,110,115,102,101
DB 114,32,116,104,101,32,67,80,47,77,32,115,121,115,116
DB 101,109,32,105,109,97,103,101,32,116,111,32,116,104,101
DB 32,0,37,99,58,32,100,114,105,118,101,32,102,114,111
DB 109,32,37,115,10,102,105,108,101,32,119,104,105,99,104
DB 32,105,115,32,37,100,0,32,98,121,116,101,115,32,108
DB 111,110,103,44,32,79,75,63,32,40,89,47,110,41,58
DB 32,0,10,0,83,121,115,103,101,110,32,111,112,101,114
DB 97,116,105,111,110,32,99,97,110,99,101,108,108,101,100
DB 32,112,101,114,32,121,111,117,114,32,114,101,113,117,101
DB 115,116,46,10,0,37,99,58,32,100,114,105,118,101,32
DB 115,104,111,117,108,100,32,98,101,32,98,111,111,116,97
DB 98,108,101,32,110,111,119,32,58,45,41,0
extrn strcpy_
extrn exit_
extrn sprintf_
extrn printf_
extrn strlen_
extrn fclose_
extrn fread_
extrn wrsector_
extrn crtlc_
extrn crtclr_
extrn crtinit_
extrn diagnose_
extrn hregde_
extrn hregbc_
extrn bdoscall_
extrn dregbc_
extrn drega_
extrn bioscall_
extrn ireghl_
extrn iregde_
extrn iregbc_
extrn fopen_
extrn .an
extrn .eq
extrn .ne
extrn .lt
extrn .le
extrn .ge
extrn .ur
extrn .dv
END