mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-15 01:11:48 +03:00
155 lines
2.7 KiB
NASM
155 lines
2.7 KiB
NASM
;[BEGIN]
|
|
;
|
|
; BOOTNAME.EXE
|
|
;
|
|
MODULE BOOTname
|
|
|
|
ORG #8100-512
|
|
INCLUDE "dss.inc"
|
|
DB "EXE" ;EXE ID
|
|
DB #00 ;EXE VERSION
|
|
DW #0200 ;CODE OFFSET LOW
|
|
DW #0000 ;CODE OFFSET HIGH
|
|
DW #0000 ;END-BEG ;PRIMARY LOADER
|
|
DW #0000 ;
|
|
DW #0000 ;RESERVED
|
|
DW #0000 ;
|
|
DW #8100 ;LOAD ADDRESS
|
|
DW #8100 ;START ADDRESS
|
|
DW #BFFF ;STACK ADDRESS
|
|
DS 490
|
|
|
|
START
|
|
LD BC,0*256+DSS_BOOTDSK
|
|
LD C,2 ;curdisk
|
|
RST #10
|
|
JR C,NERR
|
|
ADD A,"A" ;correct to the human format
|
|
LD (BOOTDRIVE),A
|
|
LD HL,BOOTSTRING
|
|
LD BC,2*256+DSS_ENVIRON
|
|
RST #10
|
|
NERR CALL C,ERROR
|
|
LD C,DSS_EXIT
|
|
RST #10
|
|
RET
|
|
|
|
BOOTSTRING DB "BOOTDISK="
|
|
BOOTDRIVE DB "C:",0
|
|
|
|
CRLF LD A,#0D
|
|
LD C,DSS_PUTCHAR
|
|
RST ToDSS
|
|
LD A,#0A
|
|
LD C,DSS_PUTCHAR
|
|
RST ToDSS
|
|
RET
|
|
|
|
ERROR LD E,A
|
|
LD D,0
|
|
JP ERR_MSG
|
|
|
|
ERR_MSG CALL FMESAGE
|
|
CALL PRINTZ
|
|
CALL CRLF
|
|
CALL CRLF
|
|
RET
|
|
|
|
FMESAGE INC DE
|
|
LD HL,ERR0
|
|
LD BC,ERR1-ERR0
|
|
LCPIR XOR A
|
|
CPIR
|
|
RET PO
|
|
RET NZ
|
|
DEC DE
|
|
LD A,D
|
|
OR E
|
|
JP NZ,LCPIR
|
|
RET
|
|
|
|
PUTPRM LD BC,15
|
|
PUTPRMA LD A,(HL)
|
|
LDI
|
|
RET PO
|
|
OR A
|
|
JR NZ,PUTPRMA
|
|
RET
|
|
|
|
PRINTZ LD A,(HL)
|
|
INC HL
|
|
OR A
|
|
RET Z
|
|
CP "%"
|
|
JR NZ,PRINTZ2
|
|
LD A,(HL)
|
|
INC HL
|
|
SUB "1"
|
|
PUSH HL
|
|
LD L,A
|
|
LD H,0
|
|
ADD HL,HL
|
|
ADD HL,HL
|
|
ADD HL,HL
|
|
ADD HL,HL
|
|
LD BC,PRM1
|
|
ADD HL,BC
|
|
LD C,DSS_PCHARS
|
|
RST #10
|
|
POP HL
|
|
JR PRINTZ
|
|
PRINTZ2 LD C,DSS_PUTCHAR
|
|
RST #10
|
|
JP PRINTZ
|
|
|
|
PRM1 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
|
PRM2 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
|
PRM3 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
|
PRM4 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
|
PRM5 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
|
PRM6 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
|
PRM7 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
|
PRM8 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
|
PRM9 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
|
|
|
ERR0 DB #00
|
|
DB "Bad command or file name",0
|
|
DB "Invalid function",0
|
|
DB "Invalid drive number",0
|
|
DB "File not found",0
|
|
DB "Path not found",0
|
|
DB "Invalid handle",0
|
|
DB "Extended error 6",0
|
|
DB "File exist",0
|
|
DB "File read only",0
|
|
DB "Root overflow",0
|
|
DB "No free space",0
|
|
DB "Directory not empty",0
|
|
DB "Can't delete current directory",0
|
|
DB "Invalid media",0
|
|
DB "Unknown operation",0
|
|
DB "Directory exist",0
|
|
DB "Invalid filename",0
|
|
DB "Invalid EXE-file",0
|
|
DB "Not supported EXE-file",0
|
|
DB "Access denied",0
|
|
DB "Not ready",0
|
|
DB "Seek error",0
|
|
DB "Sector not found",0
|
|
DB "CRC error",0
|
|
DB "Write protect",0
|
|
DB "Read error",0
|
|
DB "Write error",0
|
|
DB "Drive failure",0
|
|
DB "Extended error 28",0
|
|
DB "Extended error 29",0
|
|
DB "No free memory",0
|
|
DB "Invalid memory block",0
|
|
DB "Extended error 32",0
|
|
DB "Extended error 33",0
|
|
DB "Extended error 34",0
|
|
DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
|
ERR1
|
|
;
|
|
ENDMODULE
|
|
; |