mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-15 01:11:48 +03:00
...
This commit is contained in:
parent
8baff9d928
commit
5d914d4e5c
@ -1766,21 +1766,21 @@ GETyesZERO:
|
||||
RET
|
||||
*/
|
||||
|
||||
HELP LD DE,HELPMSG
|
||||
HELP: LD DE,HELPMSG
|
||||
CALL MESSAGE
|
||||
RET
|
||||
|
||||
CEXIT LD A,(TASKX)
|
||||
CEXIT: LD A,(TASKX)
|
||||
DEC A
|
||||
DEC A
|
||||
RET Z
|
||||
POP HL
|
||||
QUIT LD B,0
|
||||
QUIT: LD B,0
|
||||
LD C,Dss.Exit
|
||||
RST ToDSS
|
||||
RET
|
||||
|
||||
ERR_MSG INC DE
|
||||
ERR_MSG: INC DE
|
||||
LD HL,ERR0
|
||||
LD BC,ERR1-ERR0
|
||||
CALL LCPIR
|
||||
@ -1788,12 +1788,12 @@ ERR_MSG INC DE
|
||||
CALL CRLF
|
||||
JP CRLF
|
||||
|
||||
MESSAGE CALL FMESAGE
|
||||
MESSAGE: CALL FMESAGE
|
||||
CALL PRINTZ
|
||||
CALL GETXY
|
||||
RET
|
||||
|
||||
FMESAGE INC DE
|
||||
FMESAGE: INC DE
|
||||
LD HL,MSG0
|
||||
LD BC,MSG1-MSG0
|
||||
LCPIR: XOR A
|
||||
@ -1814,8 +1814,8 @@ LCPIR: XOR A
|
||||
RET
|
||||
|
||||
|
||||
PUTPRM LD BC,15
|
||||
PUTPRMA LD A,(HL)
|
||||
PUTPRM: LD BC,15
|
||||
PUTPRMA: LD A,(HL)
|
||||
LDI
|
||||
RET PO
|
||||
OR A
|
||||
@ -1833,12 +1833,12 @@ PUTPRMA LD A,(HL)
|
||||
// ret
|
||||
|
||||
|
||||
PRINTZ LD A,(HL)
|
||||
PRINTZ: LD A,(HL)
|
||||
INC HL
|
||||
OR A
|
||||
RET Z
|
||||
CP "%"
|
||||
JR NZ,PRINTZ2
|
||||
JR NZ,.char
|
||||
LD A,(HL)
|
||||
INC HL
|
||||
SUB "1"
|
||||
@ -1854,24 +1854,24 @@ PRINTZ LD A,(HL)
|
||||
LD C,Dss.PChars
|
||||
RST ToDSS
|
||||
POP HL
|
||||
JR PRINTZ
|
||||
PRINTZ2 LD C,Dss.PutChar
|
||||
JP PRINTZ
|
||||
.char: LD C,Dss.PutChar
|
||||
RST ToDSS
|
||||
JP PRINTZ
|
||||
|
||||
ROOT DB '\',0
|
||||
ROOT: DB '\',0
|
||||
|
||||
ALLFS DB "*.*",0
|
||||
ALLFS: DB "*.*",0
|
||||
|
||||
SER_NUM DB "C37F-73AB",0
|
||||
SER_NUM: DB "C37F-73AB",0
|
||||
//SER_NUM DB "XXXX-XXXX",0
|
||||
|
||||
EXTBF BLOCK 4,0
|
||||
EXTBF: BLOCK 4,0
|
||||
|
||||
BATBF DB "BAT"
|
||||
BATBF: DB "BAT"
|
||||
|
||||
ECHOON DB "ON",0
|
||||
ECHOOFF DB "OFF",0
|
||||
ECHOON: DB "ON",0
|
||||
ECHOOFF: DB "OFF",0
|
||||
|
||||
|
||||
DIR1MSG EQU 0
|
||||
@ -1887,7 +1887,7 @@ DIR2MSG EQU 9
|
||||
DIR3MSG EQU 10
|
||||
HELPMSG EQU 11
|
||||
|
||||
MSG0 DB 0
|
||||
MSG0: DB 0
|
||||
DB "Volume in drive %1 has no label",CR,LF ; !FIXIT
|
||||
DB "Volume Serial number is %2",CR,LF
|
||||
DB "Directory of %3",CR,LF,CR,LF,0
|
||||
|
||||
@ -46,10 +46,15 @@ VERSION:
|
||||
//OSINFO:
|
||||
//OSINFO_SIG: DB "OSINFOSTRUCTURE",0
|
||||
|
||||
//BOOTDRV: DB 0
|
||||
|
||||
;R09
|
||||
BOOTDRV: DB #FF
|
||||
|
||||
;/////////////////////////////////////////////////////////////////////
|
||||
; ”γ<CEB3>ζ¨ο #09. <20>®¬¥ΰ α¨α⥬®£® ¤¨α<C2A8> .
|
||||
; ‚®§Άΰ ι ¥β ®¬¥ΰ ¤¨α<C2A8> , c <20>®β®ΰ®£® § £ΰ㦥 α¨α⥬ .
|
||||
;
|
||||
; Άε®¤: B = 0 (01h - ¨α―. boot-§ £ΰγ§η¨<CEB7> α¨α⥬λ)
|
||||
; Άλ室: A - ®¬¥ΰ α¨α⥬®£® ¤¨α<C2A8> (0=A,1=B,..)
|
||||
;/////////////////////////////////////////////////////////////////////
|
||||
BOOTDSK:
|
||||
INC B
|
||||
DEC B
|
||||
@ -61,11 +66,14 @@ BOOTDSK:
|
||||
RET
|
||||
|
||||
;GET BOOT DISK
|
||||
GETBOOT LD A,(BOOTDRV)
|
||||
GETBOOT:
|
||||
BOOTDRV+1: LD A,0 ;R09
|
||||
AND A
|
||||
RET
|
||||
|
||||
;SET BOOT DISK
|
||||
; ‘®®΅ι¨βμ DSS α <20> <EFBFBD>®£® ¤¨α<C2A8> § £ΰγ¦ ¥βαο α¨α⥬ .
|
||||
; <20>α―. § £ΰγ§η¨<CEB7> α¨αβ¥¬λ ¤«ο ¨¨ζ. ο祩<C2A5>¨ "boot_disk".
|
||||
SETBOOT:
|
||||
LD B,A
|
||||
LD C,0
|
||||
@ -153,7 +161,7 @@ FRESP2: LD D,B
|
||||
AND A
|
||||
RET
|
||||
|
||||
LDRIVE: DB #02
|
||||
LDRIVE: DB #FF
|
||||
TDRIVE: DB #00
|
||||
TCLUST: DW #0000
|
||||
TCOUNT: DW #0000
|
||||
@ -519,6 +527,12 @@ BACK_CUR_PATH:
|
||||
;R11
|
||||
|
||||
;R12
|
||||
;/////////////////////////////////////////////////////////////////////
|
||||
; ”γ<CEB3>ζ¨ο #08 (DSS_RESCAN). <20>¥ΰ¥α<C2A5> ¨ΰ®Ά βμ ¤¥Ά ©αλ α¨α⥬λ.
|
||||
;
|
||||
; Άε®¤: ¥β
|
||||
; Άλ室: A - ®¬¥ΰ ―®α«¥¤¥£® «®£. ¤¨α<C2A8> Ά α¨α⥬¥
|
||||
;/////////////////////////////////////////////////////////////////////
|
||||
SCANDRV:
|
||||
;!TEST ¢ DRV-MAIN ¬®£ãâ ¡ëâì ¯à®¡«¥¬ë á ¯à¥àë¢ ¨ï¬¨
|
||||
;DI
|
||||
|
||||
@ -58,7 +58,7 @@ A0010: ;JP RST_10 ;
|
||||
A0018: PUSH AF ;
|
||||
PUSH BC ;
|
||||
MAIN_PG_NUMBER+2: ;
|
||||
LD BC,0*256+SLOT0 ; !FIXIT сюЄ Ѕ ЄЎЋІы Ђст ЂЋяться ЎЌЅр ЂыЄЅЋЅых стр Јц?
|
||||
LD BC,0*256 + SLOT0 ; !FIXIT сюЄ Ѕ ЄЎЋІы Ђст ЂЋяться ЎЌЅр ЂыЄЅЋЅых стр Јц?
|
||||
JP PORTAL.outDRV ;
|
||||
;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ';
|
||||
;
|
||||
|
||||
121
DSS/ENVIRON.ASM
121
DSS/ENVIRON.ASM
@ -4,38 +4,55 @@
|
||||
;---------------------------------------------------------------
|
||||
;Rev Date Name Description
|
||||
;---------------------------------------------------------------
|
||||
;R02 13-05-2023 BAO ˆ¨æ¨ «¨§ æ¨ï ¯¥à¥¬¥®© BOOTDSK ¯à¨ áâ à⥠;!TODO ¯à®¢¥à¨âì ª ª ã ‘ ©¬ ᤥ« ®
|
||||
;R03 09-03-2007 VAS ”ãªæ¨ï ENV_EX ⥯¥àì ®¡à¥§ ¥â ᫨誮¬ ¤«¨ãî áâப㠯¥à¥¤ ¢ë室®¬
|
||||
;R01 19-11-2002 DNS CORRECT DE ADDRESS IN GETENV
|
||||
;---------------------------------------------------------------
|
||||
|
||||
; LD HL,MYVAR
|
||||
; CALL SETENV
|
||||
; LD HL,MYVAR2
|
||||
; LD DE,MYBUF
|
||||
; CALL GETENV
|
||||
|
||||
;/////////////////////////////////////////////////////////////////////
|
||||
; ”ãªæ¨ï #46. ‘¨á⥬®¥ ®ªà㦥¨¥.
|
||||
;
|
||||
; ¢å®¤: B - ®¬¥à ¯®¤äãªæ¨¨:
|
||||
; B=0, ¯®«ã票¥ á¨á⥬®£® ®ªà㦥¨ï.
|
||||
; HL - ¡ãä¥à
|
||||
; B=1, ¯®«ãç¨âì ¯¥à¥¬¥ãî ®ªà㦥¨ï.
|
||||
; HL - ¨¬ï ¯¥à¥¬¥®©
|
||||
; DE - ¡ãä¥à ¤«ï § ç¥¨ï ¯¥à¥¬¥®©
|
||||
; B=2, ãáâ ®¢¨âì/㤠«¨âì ¯¥à¥¬¥ãî ®ªà㦥¨ï
|
||||
; HL - <20>…<EFBFBD>…Œ…<C592><E280A6>€Ÿ=‡<>€—…<E28094>ˆ…
|
||||
; ‚ ª®æ¥ áâப¨ ®«ì.
|
||||
|
||||
; ¢ë室: A - á®áâ®ï¨¥, ¥á«¨ CF=0
|
||||
; DE - 㪠§ë¢ ¥â ª®¥æ ¡ãä¥à (⮫쪮 ¤«ï B=1)
|
||||
; A=#FF - ¯¥à¥¬¥ ï ®¡ à㦥
|
||||
; A=0 - ¯¥à¥¬¥ ï ¥ ®¡ à㦥
|
||||
; A - ª®¤ ®è¨¡ª¨, ¥á«¨ CF=1
|
||||
;/////////////////////////////////////////////////////////////////////
|
||||
ENVIRON:
|
||||
INC B
|
||||
JR Z,INITENV ;B=FF
|
||||
JR Z,INITENV ; B=#FF
|
||||
DEC B
|
||||
JR Z,READENV ;B=0
|
||||
JR Z,READENV ; B=0. ¯®«ãç¨âì á¨áâ. ®ªà㦥¨¥
|
||||
DEC B
|
||||
JP Z,GETENV ;B=1
|
||||
JP Z,GETENV ; B=1. ¯®«ãç¨âì ¯¥à¥¬. ®ªà㦥¨ï
|
||||
DEC B
|
||||
JP Z,SETENV ;B=2
|
||||
JP Z,SETENV ; B=2. ãáâ ®¢¨âì/㤠«¨âì ¯¥à¥¬. ®ªà㦥¨ï
|
||||
LD A,DSS_Error.sys.INVALID_FUNCTION
|
||||
SCF
|
||||
RET
|
||||
|
||||
;-------------------------------------------------
|
||||
; ˆ¨æ¨ «¨§ æ¨ï ¡ãä¥à ¯¥à¥¬¥ëå ®ªà㦥¨ï
|
||||
;-------------------------------------------------
|
||||
INITENV:
|
||||
SET_PAGE_X ENVPAGE
|
||||
PUSH AF
|
||||
;!TEST
|
||||
;R02
|
||||
LD A,(BOOTDRV)
|
||||
ADD A,'A'
|
||||
LD (DEFAULT_ENV.boot_disk),A
|
||||
;
|
||||
LD DE,ENVIRONMENT
|
||||
LD DE,ENVIRONMENT ; ç «® ¡ãä¥à ¯¥à¥¬¥ëå ®ªà㦥¨ï
|
||||
XOR A
|
||||
LD (DE),A
|
||||
INC DE
|
||||
@ -53,6 +70,9 @@ INITENV:
|
||||
AND A
|
||||
RET
|
||||
|
||||
;-------------------------------------------------
|
||||
; <20>®«ãç¨âì á¨áâ. ®ªà㦥¨¥
|
||||
;-------------------------------------------------
|
||||
READENV:
|
||||
PUSH HL
|
||||
|
||||
@ -82,39 +102,48 @@ READENV:
|
||||
OR C
|
||||
EXX
|
||||
JR NZ,.loop
|
||||
XOR A
|
||||
//XOR A
|
||||
;A=0
|
||||
RET
|
||||
|
||||
;-------------------------------------------------
|
||||
; <20>®«ãç¨âì ¯¥à¥¬¥ãî ®ªà㦥¨ï
|
||||
;-------------------------------------------------
|
||||
GETENV: PUSH DE
|
||||
CALL ENV_EX
|
||||
CALL ENV_EX ; ᪮¯¨à. áâப㠯¥à¥¬. ®ªàã¦. ¢ ¡ãä¥àë
|
||||
|
||||
SET_PAGE_X ENVPAGE
|
||||
EX AF,AF'
|
||||
|
||||
CALL F_ENV
|
||||
CALL F_ENV ; RET: DE - VAR VALUE; HL - VAR ADDRESS; BC - ENVIRONMENT SIZE
|
||||
POP DE
|
||||
LD A,0
|
||||
LD (DE),A
|
||||
JR NC,GE_1
|
||||
GE_0: LD A,(HL)
|
||||
JR NC,.exit
|
||||
.loop: LD A,(HL)
|
||||
LDI
|
||||
OR A
|
||||
JR NZ,GE_0
|
||||
JR NZ,.loop
|
||||
DEC DE ;R01
|
||||
LD A,#FF
|
||||
|
||||
GE_1: EX AF,AF'
|
||||
.exit: EX AF,AF'
|
||||
OUT (SLOT3),A
|
||||
EX AF,AF'
|
||||
AND A
|
||||
RET
|
||||
|
||||
SETENV: CALL ENV_EX
|
||||
;-------------------------------------------------
|
||||
; “áâ ®¢¨âì/“¤ «¨âì ¯¥à¥¬¥ãî ®ªà㦥¨ï
|
||||
;
|
||||
; ¢å®¤: hl=¨¬ï ¯¥à¥¬. ¨ § 票¥, à §¤¥«. ᨬ¢®«®¬ "="
|
||||
;-------------------------------------------------
|
||||
SETENV: CALL ENV_EX ; ᪮¯¨à. áâப㠯¥à¥¬. ®ªàã¦. ¢ ¡ãä¥àë
|
||||
|
||||
SET_PAGE_X ENVPAGE
|
||||
PUSH AF
|
||||
|
||||
CALL F_ENV
|
||||
CALL F_ENV ; RET: DE - VAR VALUE; HL - VAR ADDRESS; BC - ENVIRONMENT SIZE
|
||||
JR NC,PENV
|
||||
XOR A
|
||||
CPIR
|
||||
@ -176,12 +205,18 @@ END_OF_ENV
|
||||
POP DE
|
||||
RET
|
||||
|
||||
ENV_EX LD B,ENVIRONMENT_STRING_LENGTH
|
||||
LD DE,ENVNAME
|
||||
ENV_E0 XOR A
|
||||
;-----------------------------------------------------------
|
||||
; ‘ª®¯¨à®¢ âì áâப㠯¥à¥¬¥®© ®ªà㦥¨ï ¢ ¡ãä¥àë
|
||||
; (¨¬ï ¨ § 票¥ ¢ à §ë¥ ¡ãä¥àë)
|
||||
; ¢å®¤: hl=¨¬ï ¯¥à¥¬. ¨ § 票¥, à §¤¥«. ᨬ¢®«®¬ "="
|
||||
;-----------------------------------------------------------
|
||||
ENV_EX: LD B,ENVIRONMENT_STRING_LENGTH ; 255 ¬ ªá. ¤«¨ áâப¨ (¨¬ï+§ ç.)
|
||||
LD DE,ENVNAME ; ªã¤
|
||||
ENV_E0: XOR A
|
||||
LD (DE),A
|
||||
LD (ENVVALUE),A
|
||||
ENV_E1 LD A,(HL)
|
||||
; ᪮¯¨à. ¢ "ENVNAME" ¨¬ï ¯¥à¥¬¥®©
|
||||
ENV_E1: LD A,(HL)
|
||||
INC HL
|
||||
CP "="
|
||||
JR Z,EQUAL_SG
|
||||
@ -191,35 +226,42 @@ ENV_E1 LD A,(HL)
|
||||
LD (DE),A
|
||||
INC DE
|
||||
DJNZ ENV_E1
|
||||
;!TEST from Vasil
|
||||
;R03
|
||||
; ᫨誮¬ ¤«¨ ï áâப
|
||||
ld a,b
|
||||
ld (de),a ; ®¡à¥§ âì ᫨誮¬ ¤«¨ãî áâபã
|
||||
inc de
|
||||
;
|
||||
SCF
|
||||
RET
|
||||
|
||||
ENV_E3 LD A,"="
|
||||
; § 票¥ ¥ § ¤ ®
|
||||
ENV_E3: LD A,"="
|
||||
LD (DE),A
|
||||
INC DE
|
||||
XOR A
|
||||
LD (DE),A
|
||||
INC DE
|
||||
RET
|
||||
|
||||
EQUAL_SG:
|
||||
LD (DE),A
|
||||
; § 票¥ § ¤ ®
|
||||
EQUAL_SG: LD (DE),A ; á®åà. "="
|
||||
INC DE
|
||||
XOR A
|
||||
LD (DE),A ; ¢ ª®¥æ ¨¬¥¨ ¯¥à¥¬.
|
||||
; ᪮¯¨à. ¢ "ENVVALUE" § 票¥ ¯¥à¥¬¥®© (áâப㠯ã⥩)
|
||||
LD DE,ENVVALUE ; 512 ¡ ©â, ¡ãä¥à
|
||||
LD (DE),A
|
||||
LD DE,ENVVALUE
|
||||
LD (DE),A
|
||||
LD C,#FF
|
||||
LD C,#FF ; ç⮡ë "ldi" ¥ ¯®à⨫ "b"
|
||||
ENV_E2 LD A,(HL)
|
||||
LDI
|
||||
OR A
|
||||
RET Z
|
||||
RET Z ; ª®¥æ áâப¨ § ç. ¯¥à¥¬¥®©
|
||||
DJNZ ENV_E2
|
||||
;R03
|
||||
; ᫨誮¬ ¤«¨ ï áâப
|
||||
ld a,b
|
||||
ld (de),a ; ®¡à¥§ âì ᫨誮¬ ¤«¨ãî áâபã
|
||||
inc de
|
||||
;
|
||||
SCF
|
||||
RET
|
||||
|
||||
@ -230,9 +272,12 @@ ENVSIZE DW DEF_ENV_SIZE ;E_END-ENVIRONMENT ;160
|
||||
|
||||
ENVIRONMENT EQU ENVADDR
|
||||
|
||||
DEFAULT_ENV: DB 'BOOTDSK='
|
||||
.boot_disk: DB 'X:',0
|
||||
DEF_ENV_SIZE EQU $-DEFAULT_ENV
|
||||
DEFAULT_ENV: DB 'BOOTDSK=' ;R02
|
||||
.boot_disk: DB 'X:',0 ;R02
|
||||
; DB 'SYSTEM=C:\system.exe',0
|
||||
; DB 'PATH=\SYSTEM\;\COMMAND\;',0
|
||||
DEF_ENV_SIZE EQU $-DEFAULT_ENV ;R02
|
||||
|
||||
|
||||
; DB 'SYSTEM=C:\system.exe',0
|
||||
; DB 'PATH=\SYSTEM\;\COMMAND\;',0
|
||||
|
||||
@ -1255,6 +1255,12 @@ LEAVE: LD A,B
|
||||
;
|
||||
.exit: JP (HL)
|
||||
|
||||
;/////////////////////////////////////////////////////////////////////
|
||||
; ”ãªæ¨ï #42. <20>®«ãç¨âì ª®¤ § ¢¥àè¥¨ï ¯à®£à ¬¬ë.
|
||||
;
|
||||
; ¢å®¤: ¥â
|
||||
; ¢ë室: A - ª®¤ § ¢¥à襨ï
|
||||
;/////////////////////////////////////////////////////////////////////
|
||||
WAIT: LD A,(ERLEVEL)
|
||||
AND A
|
||||
RET
|
||||
@ -1301,8 +1307,8 @@ M_PSP: LD HL,(EXEBUFF.LD_ADDR)
|
||||
CALL CURRDIR
|
||||
POP HL
|
||||
XOR A
|
||||
LD BC,#0100 ;!FIXIT ¥â ¯à¨¢ï§ª¨ ª DIRSPEC.DEPTH
|
||||
CPIR ;!FIXIT ¥â ¯à®¢¥àª¨ ¢ë室 ¯® BC=0
|
||||
LD BC,#0100 ;!FIXIT ¥â ¯à¨¢ï§ª¨ ª DIRSPEC.DEPTH
|
||||
CPIR ;!FIXIT ¥â ¯à®¢¥àª¨ ¢ë室 ¯® BC=0
|
||||
DEC HL
|
||||
DEC HL
|
||||
LD A,'\'
|
||||
@ -1345,41 +1351,40 @@ SCOPYS: LD BC,#80*256 + ' '+1
|
||||
RET
|
||||
|
||||
|
||||
EXE_EXT DB "E","X","E"
|
||||
EXE_EXT: DB "EXE"
|
||||
|
||||
TASK DB #01
|
||||
TASK: DB #01 ; ã஢¥ì ⥪ã饩 ¯à®£à ¬¬ë
|
||||
|
||||
RAMMAP DB #00,#00,#00,#00
|
||||
RAMMAP: DB #00,#00,#00,#00
|
||||
|
||||
ERLEVEL DB #00
|
||||
ERLEVEL: DB #00 ; ª®¤ § ¢¥àè¥¨ï ¯à®£à ¬¬ë (¯à®æ¥áá )
|
||||
|
||||
EXE_FM DB #00
|
||||
EXE_MEM DB #00
|
||||
EXE_FM: DB #00 ; ¤¥áªà. ä ©«
|
||||
EXE_MEM: DB #00 ; ¨¤¥â¨ä¨ª â®à ¡«®ª ¯ ¬ïâ¨
|
||||
|
||||
CMDLINE DW #0000
|
||||
CMDLINE: DW #0000
|
||||
|
||||
EXSTACK DW XSTACK
|
||||
EXSTACK: DW XSTACK ; ¤à¥á á⥪
|
||||
|
||||
;R11 \\\\\\\\\\\\\\\\\\\\\\\\\\\\
|
||||
;;
|
||||
; EXEBUFF:
|
||||
; DB "EXE"
|
||||
; DB #00
|
||||
; DB "EXE"
|
||||
; DB #00
|
||||
; OFFCOD1 DW #0000
|
||||
; OFFCOD2 DW #0000
|
||||
; LOADER DW #0000
|
||||
; DW #0000
|
||||
; DW #0000
|
||||
; DW #0000
|
||||
; DW #0000
|
||||
; DW #0000
|
||||
; DW #0000
|
||||
; LD_ADDR DW #0000
|
||||
; PC_REG DW #0000
|
||||
; SP_REG DW #0000
|
||||
; BLOCK 512-($-EXEBUFF),0
|
||||
; ;(!!!HERE STACK FOR EXEC!!!)
|
||||
; BLOCK 255,0
|
||||
; BLOCK 512-($-EXEBUFF),0
|
||||
; ;(!!!HERE STACK FOR EXEC!!!)
|
||||
; BLOCK 255,0
|
||||
; XSTACK DB #00
|
||||
;R11 ////////////////////////////
|
||||
|
||||
;//MODULE: EXECUTE
|
||||
;[END]
|
||||
|
||||
;[END]
|
||||
@ -130,6 +130,10 @@ R_DSK EQU #FF ;Drive Control
|
||||
|
||||
COM_B EQU #1B
|
||||
|
||||
|
||||
;-------------------------------------------------
|
||||
; Ž¡à ¡®â稪 FDD (rst 18h)
|
||||
;-------------------------------------------------
|
||||
FDDRIVE:
|
||||
INC C
|
||||
DEC C
|
||||
|
||||
@ -1,3 +1,12 @@
|
||||
;[BEGIN]
|
||||
;//MODULE: Shared AUTHOR: Denis Parinov
|
||||
;//CREATE: A LONG TIME AGO :)
|
||||
;---------------------------------------------------------------
|
||||
;Rev Date Name Description
|
||||
;R01 17-04-2023 BAO „®¡ ¢«¥ ¯à®æ¥¤ãà INITDVC_RET_DRIVE ¨ ¨§¬¥¥ INTDISK ¤«ï ¯®¤¤¥à¦ª¨ à¥áª ¤à ©¢®¢
|
||||
;---------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
; DISK DRIVER SPECIFICATION
|
||||
;---------------------------------------------
|
||||
@ -107,15 +116,19 @@
|
||||
; EX (SP),HL
|
||||
; RET
|
||||
|
||||
;-------------------------------------------------
|
||||
; RST 18h. ‚¥ªâ®à ¤¨áª®¢ëå ãáâனáâ¢
|
||||
; ¢å®¤: a=®¬¥à ãáâனá⢠(0-25)
|
||||
;-------------------------------------------------
|
||||
DSS_MAX_DRIVES_AMOUNT EQU 26
|
||||
|
||||
INTDISK:
|
||||
CP #FF
|
||||
JR NZ,.noNeedRescan
|
||||
CP C
|
||||
JR Z,INITDVC_RET_DRIVE
|
||||
|
||||
;R01
|
||||
CP #FF
|
||||
JR NZ,.noNeedRescan
|
||||
CP C
|
||||
JR Z,INITDVC_RET_DRIVE
|
||||
.noNeedRescan:
|
||||
;
|
||||
PUSH HL
|
||||
PUSH BC
|
||||
LD C,A
|
||||
@ -138,7 +151,7 @@ INTDISK:
|
||||
EX (SP),HL
|
||||
RET
|
||||
|
||||
NODEV POP BC
|
||||
NODEV: POP BC
|
||||
POP HL
|
||||
LD A,DSS_Error.drv.INVALID_DRIVE
|
||||
SCF
|
||||
@ -175,26 +188,34 @@ NETWORK EQU #0008
|
||||
; DB #80 ;PHISICAL DRIVE NUMBER
|
||||
;
|
||||
; DB #00 ;END OF TABLE
|
||||
INITDVC_RET_DRIVE:
|
||||
CALL INITDVC
|
||||
LD A,(LDRIVE)
|
||||
AND A
|
||||
RET
|
||||
;-----------------------------------------------------------------------
|
||||
|
||||
INITDVC XOR A
|
||||
LD (LDRIVE),A
|
||||
;R01
|
||||
INITDVC_RET_DRIVE:
|
||||
CALL INITDVC
|
||||
LD A,(LDRIVE)
|
||||
AND A
|
||||
RET
|
||||
;
|
||||
|
||||
;-----------------------------------------------------------
|
||||
; <20>à®áª ¨à®¢ âì á¨á⥬ã FDD/HDD ¤¥¢ ©áë ¨ RAM-¤¨áª¨
|
||||
;-----------------------------------------------------------
|
||||
INITDVC: XOR A
|
||||
LD (LDRIVE),A ; á¡à. ï祩ªã
|
||||
LD HL,DEVICE
|
||||
LD (PDEVICE),HL
|
||||
LD (PDEVICE),HL ; ¢®ááâ. ï祩ªã
|
||||
; FDD ¤¥¢ ©áë
|
||||
LD C,A
|
||||
CALL FDDRIVE
|
||||
LD DE,FDDRIVE
|
||||
CALL MAKEDVC
|
||||
// XOR A
|
||||
CALL FDDRIVE ; ã§ âì ç¨á«® FDD-¤¥¢ ©á®¢
|
||||
LD DE,FDDRIVE ; ¤à¥á ®¡à ¡®â稪 ⥪. ¤¥¢ ©á
|
||||
CALL MAKEDVC ; ¨¨æ. â ¡«¨æã ¯¥à¥å®¤®¢
|
||||
; HDD ¤¥¢ ©áë
|
||||
LD C,0
|
||||
CALL HDDRIVE
|
||||
LD DE,HDDRIVE
|
||||
CALL MAKEDVC
|
||||
// XOR A
|
||||
; RAM-¤¨áª¨
|
||||
LD C,0
|
||||
CALL RMDRIVE
|
||||
LD DE,RMDRIVE
|
||||
@ -202,22 +223,25 @@ INITDVC XOR A
|
||||
XOR A
|
||||
RET
|
||||
|
||||
MAKEDVC LD C,A
|
||||
LD HL,LDRIVE
|
||||
; ˆ¨æ¨¨à®¢ âì â ¡«¨æã ¯¥à¥å®¤®¢ ¤¥¢ ©á .
|
||||
; ¢å®¤: de= ¤à¥á ®¡à ¡®â稪 ¤¥¢ ©á
|
||||
; a=ç¨á«® ¤¥¢ ©á®¢ (0=¥â)
|
||||
MAKEDVC: LD C,A
|
||||
LD HL,LDRIVE ; ï祩ª ®¬¥à ¯®á«. ¤¨áª
|
||||
ADD A,(HL)
|
||||
LD (HL),A
|
||||
LD A,C
|
||||
LD C,0
|
||||
LD C,0 ; á¡à.
|
||||
OR A
|
||||
RET Z
|
||||
LD HL,(PDEVICE)
|
||||
.loop: LD (HL),C
|
||||
RET Z ; ¥â ¤¥¢ ©á®¢
|
||||
LD HL,(PDEVICE) ; ⥪. ¯®«®¦. ¢ â ¡«¨æ¥
|
||||
.loop: LD (HL),C ; ®¬¥à ¤à ©¢ í⮣® ãáâனá⢠(¬« ¤è¨¥ 4 ¡¨â ). <20> ¯à¨¬¥à, ¤«ï HDD #81: #80 - ⨯ ¤à ©¢ , 1 - ®¬¥à ¤à ©¢
|
||||
INC HL
|
||||
LD (HL),E
|
||||
LD (HL),E ; de= ¤à¥á ®¡à ¡®â稪
|
||||
INC HL
|
||||
LD (HL),D
|
||||
INC HL
|
||||
INC C
|
||||
INC C ; ++®¬¥à ¤à ©¢
|
||||
DEC A
|
||||
JR NZ,.loop
|
||||
LD (PDEVICE),HL
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
;
|
||||
STRUCT _sStack ; 256 bytes
|
||||
buffer BLOCK 255,0
|
||||
buffer BLOCK 256,0
|
||||
SPoint BYTE 0
|
||||
ENDS
|
||||
;
|
||||
|
||||
@ -1 +1 @@
|
||||
40
|
||||
43
|
||||
@ -129,24 +129,15 @@ NOSHELL EQU 5
|
||||
STARTDO EQU 6
|
||||
;a BIOS version that is incompatible with this version of DOS
|
||||
; 0 10 20 30 40 50 60 70 80
|
||||
MSG0 DB 0
|
||||
DB 13,10,"The system has been halted. Press RESET to restart your computer.",13,10
|
||||
DB 0
|
||||
DB 13,10
|
||||
DB "You started your computer with a BIOS version that is incompatible with this",13,10
|
||||
DB "version of DSS. Please update BIOS to run this version of DSS.",13,10
|
||||
DB 0
|
||||
DB "Invalid partition table.",13,10
|
||||
DB 0
|
||||
DB "Invalid BOOT sector.",13,10
|
||||
DB 0
|
||||
DB "Can't open file SYSTEM.DOS ...",13,10
|
||||
DB 0
|
||||
DB "Can't open file SYSTEM.EXE ...",13,10
|
||||
DB 0
|
||||
DB 13,10,"Starting DSS... ",13,10,13,10
|
||||
DB 0
|
||||
MSGE DB 0
|
||||
MSG0: DB 0
|
||||
DB 13,10,"The system has been halted. Press RESET to restart your computer.",13,10,0
|
||||
DB 13,10,"You started your computer with a BIOS version that is incompatible with this",13,10,0
|
||||
DB "version of DSS. Please update BIOS to run this version of DSS.",13,10,0
|
||||
DB "Invalid partition table.",13,10,0
|
||||
DB "Invalid BOOT sector.",13,10,0
|
||||
DB "Can't open file SYSTEM.DOS ...",13,10,0
|
||||
DB 13,10,"Starting DSS... ",13,10,13,10,0
|
||||
MSGE DB 0
|
||||
|
||||
CONTINU
|
||||
LD HL,0
|
||||
|
||||
@ -1,6 +1,5 @@
|
||||
;!TODO ®¯à¥¤¥«¥¨¥ ¯®¯ë⪨ ᤥ« âì § £àã§®çë¬ ¥ ¯¥à¢ë© à §¤¥«
|
||||
|
||||
; <20>®α«¥¤οο । <C2A4>ζ¨ο: 25.04.2006
|
||||
; <20>à®£à ¬¬ § ¯¨á¨ FDD/HDD boot-§ £àã§ç¨ª ¨ ä ©«®¢ á¨á⥬ë.
|
||||
;
|
||||
; ‡ £à㦠¥â á¨áâ. ä ©«ë ¨§ ª®àï ¤¨áª , á ª®â®à®£® ¡ë«
|
||||
|
||||
Loading…
Reference in New Issue
Block a user