Files
RomWBW/branches/s100/Apps/crossdev/SYSGEN.ASM
2013-02-16 06:46:44 +00:00

982 lines
12 KiB
NASM
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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,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,.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