This commit is contained in:
Anatoliy Belyanskiy 2023-07-22 02:15:05 +10:00
parent 8baff9d928
commit 5d914d4e5c
11 changed files with 215 additions and 133 deletions

View File

@ -1766,21 +1766,21 @@ GETyesZERO:
RET RET
*/ */
HELP LD DE,HELPMSG HELP: LD DE,HELPMSG
CALL MESSAGE CALL MESSAGE
RET RET
CEXIT LD A,(TASKX) CEXIT: LD A,(TASKX)
DEC A DEC A
DEC A DEC A
RET Z RET Z
POP HL POP HL
QUIT LD B,0 QUIT: LD B,0
LD C,Dss.Exit LD C,Dss.Exit
RST ToDSS RST ToDSS
RET RET
ERR_MSG INC DE ERR_MSG: INC DE
LD HL,ERR0 LD HL,ERR0
LD BC,ERR1-ERR0 LD BC,ERR1-ERR0
CALL LCPIR CALL LCPIR
@ -1788,12 +1788,12 @@ ERR_MSG INC DE
CALL CRLF CALL CRLF
JP CRLF JP CRLF
MESSAGE CALL FMESAGE MESSAGE: CALL FMESAGE
CALL PRINTZ CALL PRINTZ
CALL GETXY CALL GETXY
RET RET
FMESAGE INC DE FMESAGE: INC DE
LD HL,MSG0 LD HL,MSG0
LD BC,MSG1-MSG0 LD BC,MSG1-MSG0
LCPIR: XOR A LCPIR: XOR A
@ -1814,8 +1814,8 @@ LCPIR: XOR A
RET RET
PUTPRM LD BC,15 PUTPRM: LD BC,15
PUTPRMA LD A,(HL) PUTPRMA: LD A,(HL)
LDI LDI
RET PO RET PO
OR A OR A
@ -1833,12 +1833,12 @@ PUTPRMA LD A,(HL)
// ret // ret
PRINTZ LD A,(HL) PRINTZ: LD A,(HL)
INC HL INC HL
OR A OR A
RET Z RET Z
CP "%" CP "%"
JR NZ,PRINTZ2 JR NZ,.char
LD A,(HL) LD A,(HL)
INC HL INC HL
SUB "1" SUB "1"
@ -1854,24 +1854,24 @@ PRINTZ LD A,(HL)
LD C,Dss.PChars LD C,Dss.PChars
RST ToDSS RST ToDSS
POP HL POP HL
JR PRINTZ JP PRINTZ
PRINTZ2 LD C,Dss.PutChar .char: LD C,Dss.PutChar
RST ToDSS RST ToDSS
JP PRINTZ 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 //SER_NUM DB "XXXX-XXXX",0
EXTBF BLOCK 4,0 EXTBF: BLOCK 4,0
BATBF DB "BAT" BATBF: DB "BAT"
ECHOON DB "ON",0 ECHOON: DB "ON",0
ECHOOFF DB "OFF",0 ECHOOFF: DB "OFF",0
DIR1MSG EQU 0 DIR1MSG EQU 0
@ -1887,7 +1887,7 @@ DIR2MSG EQU 9
DIR3MSG EQU 10 DIR3MSG EQU 10
HELPMSG EQU 11 HELPMSG EQU 11
MSG0 DB 0 MSG0: DB 0
DB "Volume in drive %1 has no label",CR,LF ; !FIXIT DB "Volume in drive %1 has no label",CR,LF ; !FIXIT
DB "Volume Serial number is %2",CR,LF DB "Volume Serial number is %2",CR,LF
DB "Directory of %3",CR,LF,CR,LF,0 DB "Directory of %3",CR,LF,CR,LF,0

View File

@ -46,10 +46,15 @@ VERSION:
//OSINFO: //OSINFO:
//OSINFO_SIG: DB "OSINFOSTRUCTURE",0 //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: BOOTDSK:
INC B INC B
DEC B DEC B
@ -61,11 +66,14 @@ BOOTDSK:
RET RET
;GET BOOT DISK ;GET BOOT DISK
GETBOOT LD A,(BOOTDRV) GETBOOT:
BOOTDRV+1: LD A,0 ;R09
AND A AND A
RET RET
;SET BOOT DISK ;SET BOOT DISK
; ‘®®΅ι¨βμ DSS α <20> <EFBFBD>®£® ¤¨α<C2A8>  § £ΰγ¦ ¥βαο α¨α⥬ .
; <20>α―. § £ΰγ§η¨<CEB7> α¨αβ¥¬λ ¤«ο ¨­¨ζ. ο祩<C2A5>¨ "boot_disk".
SETBOOT: SETBOOT:
LD B,A LD B,A
LD C,0 LD C,0
@ -153,7 +161,7 @@ FRESP2: LD D,B
AND A AND A
RET RET
LDRIVE: DB #02 LDRIVE: DB #FF
TDRIVE: DB #00 TDRIVE: DB #00
TCLUST: DW #0000 TCLUST: DW #0000
TCOUNT: DW #0000 TCOUNT: DW #0000
@ -519,6 +527,12 @@ BACK_CUR_PATH:
;R11 ;R11
;R12 ;R12
;/////////////////////////////////////////////////////////////////////
; ”γ­<CEB3>ζ¨ο #08 (DSS_RESCAN). <20>¥ΰ¥α<C2A5> ­¨ΰ®Ά βμ ¤¥Ά ©αλ α¨α⥬λ.
;
; Άε®¤: ­¥β
; Άλ室: A - ­®¬¥ΰ ―®α«¥¤­¥£® «®£. ¤¨α<C2A8>  Ά α¨α⥬¥
;/////////////////////////////////////////////////////////////////////
SCANDRV: SCANDRV:
;!TEST ¢ DRV-MAIN ¬®£ãâ ¡ëâì ¯à®¡«¥¬ë á ¯à¥à뢠­¨ï¬¨ ;!TEST ¢ DRV-MAIN ¬®£ãâ ¡ëâì ¯à®¡«¥¬ë á ¯à¥à뢠­¨ï¬¨
;DI ;DI

View File

@ -58,7 +58,7 @@ A0010: ;JP RST_10 ;
A0018: PUSH AF ; A0018: PUSH AF ;
PUSH BC ; PUSH BC ;
MAIN_PG_NUMBER+2: ; MAIN_PG_NUMBER+2: ;
LD BC,0*256+SLOT0 ; !FIXIT сюЄ  ­Ѕ ЄЎЋІ­ы Ђст ЂЋяться ­ЎЌЅр  ЂыЄЅЋЅ­­ых стр ­Јц? LD BC,0*256 + SLOT0 ; !FIXIT сюЄ  ­Ѕ ЄЎЋІ­ы Ђст ЂЋяться ­ЎЌЅр  ЂыЄЅЋЅ­­ых стр ­Јц?
JP PORTAL.outDRV ; JP PORTAL.outDRV ;
;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '; ;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ';
; ;

View File

@ -4,38 +4,55 @@
;--------------------------------------------------------------- ;---------------------------------------------------------------
;Rev Date Name Description ;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 ;R01 19-11-2002 DNS CORRECT DE ADDRESS IN GETENV
;--------------------------------------------------------------- ;---------------------------------------------------------------
; LD HL,MYVAR ;/////////////////////////////////////////////////////////////////////
; CALL SETENV ; ”ã­ªæ¨ï #46. ‘¨á⥬­®¥ ®ªà㦥­¨¥.
; LD HL,MYVAR2 ;
; LD DE,MYBUF ; ¢å®¤: B - ­®¬¥à ¯®¤ä㭪樨:
; CALL GETENV ; 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: ENVIRON:
INC B INC B
JR Z,INITENV ;B=FF JR Z,INITENV ; B=#FF
DEC B DEC B
JR Z,READENV ;B=0 JR Z,READENV ; B=0. ¯®«ãç¨âì á¨áâ. ®ªà㦥­¨¥
DEC B DEC B
JP Z,GETENV ;B=1 JP Z,GETENV ; B=1. ¯®«ãç¨âì ¯¥à¥¬. ®ªà㦥­¨ï
DEC B DEC B
JP Z,SETENV ;B=2 JP Z,SETENV ; B=2. ãáâ ­®¢¨âì/㤠«¨âì ¯¥à¥¬. ®ªà㦥­¨ï
LD A,DSS_Error.sys.INVALID_FUNCTION LD A,DSS_Error.sys.INVALID_FUNCTION
SCF SCF
RET RET
;-------------------------------------------------
; ˆ­¨æ¨ «¨§ æ¨ï ¡ãä¥à  ¯¥à¥¬¥­­ëå ®ªà㦥­¨ï
;-------------------------------------------------
INITENV: INITENV:
SET_PAGE_X ENVPAGE SET_PAGE_X ENVPAGE
PUSH AF PUSH AF
;!TEST ;R02
LD A,(BOOTDRV) LD A,(BOOTDRV)
ADD A,'A' ADD A,'A'
LD (DEFAULT_ENV.boot_disk),A LD (DEFAULT_ENV.boot_disk),A
; ;
LD DE,ENVIRONMENT LD DE,ENVIRONMENT ; ­ ç «® ¡ãä¥à  ¯¥à¥¬¥­­ëå ®ªà㦥­¨ï
XOR A XOR A
LD (DE),A LD (DE),A
INC DE INC DE
@ -53,6 +70,9 @@ INITENV:
AND A AND A
RET RET
;-------------------------------------------------
; <20>®«ãç¨âì á¨áâ. ®ªà㦥­¨¥
;-------------------------------------------------
READENV: READENV:
PUSH HL PUSH HL
@ -82,39 +102,48 @@ READENV:
OR C OR C
EXX EXX
JR NZ,.loop JR NZ,.loop
XOR A //XOR A
;A=0
RET RET
;-------------------------------------------------
; <20>®«ãç¨âì ¯¥à¥¬¥­­ãî ®ªà㦥­¨ï
;-------------------------------------------------
GETENV: PUSH DE GETENV: PUSH DE
CALL ENV_EX CALL ENV_EX ; ᪮¯¨à. áâப㠯¥à¥¬. ®ªàã¦. ¢ ¡ãä¥àë
SET_PAGE_X ENVPAGE SET_PAGE_X ENVPAGE
EX AF,AF' EX AF,AF'
CALL F_ENV CALL F_ENV ; RET: DE - VAR VALUE; HL - VAR ADDRESS; BC - ENVIRONMENT SIZE
POP DE POP DE
LD A,0 LD A,0
LD (DE),A LD (DE),A
JR NC,GE_1 JR NC,.exit
GE_0: LD A,(HL) .loop: LD A,(HL)
LDI LDI
OR A OR A
JR NZ,GE_0 JR NZ,.loop
DEC DE ;R01 DEC DE ;R01
LD A,#FF LD A,#FF
GE_1: EX AF,AF' .exit: EX AF,AF'
OUT (SLOT3),A OUT (SLOT3),A
EX AF,AF' EX AF,AF'
AND A AND A
RET RET
SETENV: CALL ENV_EX ;-------------------------------------------------
; “áâ ­®¢¨âì/“¤ «¨âì ¯¥à¥¬¥­­ãî ®ªà㦥­¨ï
;
; ¢å®¤: hl=¨¬ï ¯¥à¥¬. ¨ §­ ç¥­¨¥, à §¤¥«. ᨬ¢®«®¬ "="
;-------------------------------------------------
SETENV: CALL ENV_EX ; ᪮¯¨à. áâப㠯¥à¥¬. ®ªàã¦. ¢ ¡ãä¥àë
SET_PAGE_X ENVPAGE SET_PAGE_X ENVPAGE
PUSH AF PUSH AF
CALL F_ENV CALL F_ENV ; RET: DE - VAR VALUE; HL - VAR ADDRESS; BC - ENVIRONMENT SIZE
JR NC,PENV JR NC,PENV
XOR A XOR A
CPIR CPIR
@ -176,12 +205,18 @@ END_OF_ENV
POP DE POP DE
RET 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 (DE),A
LD (ENVVALUE),A LD (ENVVALUE),A
ENV_E1 LD A,(HL) ; ᪮¯¨à. ¢ "ENVNAME" ¨¬ï ¯¥à¥¬¥­­®©
ENV_E1: LD A,(HL)
INC HL INC HL
CP "=" CP "="
JR Z,EQUAL_SG JR Z,EQUAL_SG
@ -191,35 +226,42 @@ ENV_E1 LD A,(HL)
LD (DE),A LD (DE),A
INC DE INC DE
DJNZ ENV_E1 DJNZ ENV_E1
;!TEST from Vasil ;R03
; ᫨誮¬ ¤«¨­­ ï áâப 
ld a,b ld a,b
ld (de),a ; ®¡à¥§ âì ᫨誮¬ ¤«¨­­ãî áâபã ld (de),a ; ®¡à¥§ âì ᫨誮¬ ¤«¨­­ãî áâபã
inc de inc de
; ;
SCF SCF
RET RET
; §­ ç¥­¨¥ ­¥ § ¤ ­®
ENV_E3 LD A,"=" ENV_E3: LD A,"="
LD (DE),A LD (DE),A
INC DE INC DE
XOR A XOR A
LD (DE),A LD (DE),A
INC DE INC DE
RET RET
; §­ ç¥­¨¥ § ¤ ­®
EQUAL_SG: EQUAL_SG: LD (DE),A ; á®åà. "="
LD (DE),A
INC DE INC DE
XOR A XOR A
LD (DE),A ; ¢ ª®­¥æ ¨¬¥­¨ ¯¥à¥¬.
; ᪮¯¨à. ¢ "ENVVALUE" §­ ç¥­¨¥ ¯¥à¥¬¥­­®© (áâப㠯ã⥩)
LD DE,ENVVALUE ; 512 ¡ ©â, ¡ãä¥à
LD (DE),A LD (DE),A
LD DE,ENVVALUE LD C,#FF ; ç⮡ë "ldi" ­¥ ¯®à⨫  "b"
LD (DE),A
LD C,#FF
ENV_E2 LD A,(HL) ENV_E2 LD A,(HL)
LDI LDI
OR A OR A
RET Z RET Z ; ª®­¥æ áâப¨ §­ ç. ¯¥à¥¬¥­­®©
DJNZ ENV_E2 DJNZ ENV_E2
;R03
; ᫨誮¬ ¤«¨­­ ï áâப 
ld a,b
ld (de),a ; ®¡à¥§ âì ᫨誮¬ ¤«¨­­ãî áâபã
inc de
;
SCF SCF
RET RET
@ -230,9 +272,12 @@ ENVSIZE DW DEF_ENV_SIZE ;E_END-ENVIRONMENT ;160
ENVIRONMENT EQU ENVADDR ENVIRONMENT EQU ENVADDR
DEFAULT_ENV: DB 'BOOTDSK=' DEFAULT_ENV: DB 'BOOTDSK=' ;R02
.boot_disk: DB 'X:',0 .boot_disk: DB 'X:',0 ;R02
DEF_ENV_SIZE EQU $-DEFAULT_ENV ; 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 'SYSTEM=C:\system.exe',0
; DB 'PATH=\SYSTEM\;\COMMAND\;',0 ; DB 'PATH=\SYSTEM\;\COMMAND\;',0

View File

@ -1255,6 +1255,12 @@ LEAVE: LD A,B
; ;
.exit: JP (HL) .exit: JP (HL)
;/////////////////////////////////////////////////////////////////////
; ”ã­ªæ¨ï #42. <20>®«ãç¨âì ª®¤ § ¢¥à襭¨ï ¯à®£à ¬¬ë.
;
; ¢å®¤: ­¥â
; ¢ë室: A - ª®¤ § ¢¥à襭¨ï
;/////////////////////////////////////////////////////////////////////
WAIT: LD A,(ERLEVEL) WAIT: LD A,(ERLEVEL)
AND A AND A
RET RET
@ -1301,8 +1307,8 @@ M_PSP: LD HL,(EXEBUFF.LD_ADDR)
CALL CURRDIR CALL CURRDIR
POP HL POP HL
XOR A XOR A
LD BC,#0100 ;!FIXIT ­¥â ¯à¨¢ï§ª¨ ª DIRSPEC.DEPTH LD BC,#0100 ;!FIXIT ­¥â ¯à¨¢ï§ª¨ ª DIRSPEC.DEPTH
CPIR ;!FIXIT ­¥â ¯à®¢¥àª¨ ­  ¢ë室 ¯® BC=0 CPIR ;!FIXIT ­¥â ¯à®¢¥àª¨ ­  ¢ë室 ¯® BC=0
DEC HL DEC HL
DEC HL DEC HL
LD A,'\' LD A,'\'
@ -1345,41 +1351,40 @@ SCOPYS: LD BC,#80*256 + ' '+1
RET 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_FM: DB #00 ; ¤¥áªà. ä ©« 
EXE_MEM DB #00 EXE_MEM: DB #00 ; ¨¤¥­â¨ä¨ª â®à ¡«®ª  ¯ ¬ïâ¨
CMDLINE DW #0000 CMDLINE: DW #0000
EXSTACK DW XSTACK EXSTACK: DW XSTACK ;  ¤à¥á á⥪ 
;R11 \\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;R11 \\\\\\\\\\\\\\\\\\\\\\\\\\\\
;; ;;
; EXEBUFF: ; EXEBUFF:
; DB "EXE" ; DB "EXE"
; DB #00 ; DB #00
; OFFCOD1 DW #0000 ; OFFCOD1 DW #0000
; OFFCOD2 DW #0000 ; OFFCOD2 DW #0000
; LOADER DW #0000 ; LOADER DW #0000
; DW #0000 ; DW #0000
; DW #0000 ; DW #0000
; DW #0000 ; DW #0000
; LD_ADDR DW #0000 ; LD_ADDR DW #0000
; PC_REG DW #0000 ; PC_REG DW #0000
; SP_REG DW #0000 ; SP_REG DW #0000
; BLOCK 512-($-EXEBUFF),0 ; BLOCK 512-($-EXEBUFF),0
; ;(!!!HERE STACK FOR EXEC!!!) ; ;(!!!HERE STACK FOR EXEC!!!)
; BLOCK 255,0 ; BLOCK 255,0
; XSTACK DB #00 ; XSTACK DB #00
;R11 //////////////////////////// ;R11 ////////////////////////////
;//MODULE: EXECUTE ;//MODULE: EXECUTE
;[END] ;[END]

View File

@ -130,6 +130,10 @@ R_DSK EQU #FF ;Drive Control
COM_B EQU #1B COM_B EQU #1B
;-------------------------------------------------
; Ž¡à ¡®â稪 FDD (rst 18h)
;-------------------------------------------------
FDDRIVE: FDDRIVE:
INC C INC C
DEC C DEC C

View File

@ -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 ; DISK DRIVER SPECIFICATION
;--------------------------------------------- ;---------------------------------------------
@ -107,15 +116,19 @@
; EX (SP),HL ; EX (SP),HL
; RET ; RET
;-------------------------------------------------
; RST 18h. ‚¥ªâ®à ¤¨áª®¢ëå ãáâனáâ¢
; ¢å®¤: a=­®¬¥à ãáâனá⢠ (0-25)
;-------------------------------------------------
DSS_MAX_DRIVES_AMOUNT EQU 26 DSS_MAX_DRIVES_AMOUNT EQU 26
INTDISK: INTDISK:
CP #FF ;R01
JR NZ,.noNeedRescan CP #FF
CP C JR NZ,.noNeedRescan
JR Z,INITDVC_RET_DRIVE CP C
JR Z,INITDVC_RET_DRIVE
.noNeedRescan: .noNeedRescan:
;
PUSH HL PUSH HL
PUSH BC PUSH BC
LD C,A LD C,A
@ -138,7 +151,7 @@ INTDISK:
EX (SP),HL EX (SP),HL
RET RET
NODEV POP BC NODEV: POP BC
POP HL POP HL
LD A,DSS_Error.drv.INVALID_DRIVE LD A,DSS_Error.drv.INVALID_DRIVE
SCF SCF
@ -175,26 +188,34 @@ NETWORK EQU #0008
; DB #80 ;PHISICAL DRIVE NUMBER ; DB #80 ;PHISICAL DRIVE NUMBER
; ;
; DB #00 ;END OF TABLE ; DB #00 ;END OF TABLE
INITDVC_RET_DRIVE: ;-----------------------------------------------------------------------
CALL INITDVC
LD A,(LDRIVE)
AND A
RET
INITDVC XOR A ;R01
LD (LDRIVE),A 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 HL,DEVICE
LD (PDEVICE),HL LD (PDEVICE),HL ; ¢®ááâ. ï祩ªã
; FDD ¤¥¢ ©áë
LD C,A LD C,A
CALL FDDRIVE CALL FDDRIVE ; ã§­ âì ç¨á«® FDD-¤¥¢ ©á®¢
LD DE,FDDRIVE LD DE,FDDRIVE ;  ¤à¥á ®¡à ¡®â稪  ⥪. ¤¥¢ ©á 
CALL MAKEDVC CALL MAKEDVC ; ¨­¨æ. â ¡«¨æã ¯¥à¥å®¤®¢
// XOR A ; HDD ¤¥¢ ©áë
LD C,0 LD C,0
CALL HDDRIVE CALL HDDRIVE
LD DE,HDDRIVE LD DE,HDDRIVE
CALL MAKEDVC CALL MAKEDVC
// XOR A ; RAM-¤¨áª¨
LD C,0 LD C,0
CALL RMDRIVE CALL RMDRIVE
LD DE,RMDRIVE LD DE,RMDRIVE
@ -202,22 +223,25 @@ INITDVC XOR A
XOR A XOR A
RET RET
MAKEDVC LD C,A ; ˆ­¨æ¨¨à®¢ âì â ¡«¨æã ¯¥à¥å®¤®¢ ¤¥¢ ©á .
LD HL,LDRIVE ; ¢å®¤: de= ¤à¥á ®¡à ¡®â稪  ¤¥¢ ©á 
; a=ç¨á«® ¤¥¢ ©á®¢ (0=­¥â)
MAKEDVC: LD C,A
LD HL,LDRIVE ; ï祩ª  ­®¬¥à  ¯®á«. ¤¨áª 
ADD A,(HL) ADD A,(HL)
LD (HL),A LD (HL),A
LD A,C LD A,C
LD C,0 LD C,0 ; á¡à.
OR A OR A
RET Z RET Z ; ­¥â ¤¥¢ ©á®¢
LD HL,(PDEVICE) LD HL,(PDEVICE) ; ⥪. ¯®«®¦. ¢ â ¡«¨æ¥
.loop: LD (HL),C .loop: LD (HL),C ; ­®¬¥à ¤à ©¢  í⮣® ãáâனá⢠ (¬« ¤è¨¥ 4 ¡¨â ). <20> ¯à¨¬¥à, ¤«ï HDD #81: #80 - ⨯ ¤à ©¢ , 1 - ­®¬¥à ¤à ©¢ 
INC HL INC HL
LD (HL),E LD (HL),E ; de= ¤à¥á ®¡à ¡®â稪 
INC HL INC HL
LD (HL),D LD (HL),D
INC HL INC HL
INC C INC C ; ++­®¬¥à ¤à ©¢ 
DEC A DEC A
JR NZ,.loop JR NZ,.loop
LD (PDEVICE),HL LD (PDEVICE),HL

View File

@ -1,6 +1,6 @@
; ;
STRUCT _sStack ; 256 bytes STRUCT _sStack ; 256 bytes
buffer BLOCK 255,0 buffer BLOCK 256,0
SPoint BYTE 0 SPoint BYTE 0
ENDS ENDS
; ;

View File

@ -1 +1 @@
40 43

View File

@ -129,24 +129,15 @@ NOSHELL EQU 5
STARTDO EQU 6 STARTDO EQU 6
;a BIOS version that is incompatible with this version of DOS ;a BIOS version that is incompatible with this version of DOS
; 0 10 20 30 40 50 60 70 80 ; 0 10 20 30 40 50 60 70 80
MSG0 DB 0 MSG0: DB 0
DB 13,10,"The system has been halted. Press RESET to restart your computer.",13,10 DB 13,10,"The system has been halted. Press RESET to restart your computer.",13,10,0
DB 0 DB 13,10,"You started your computer with a BIOS version that is incompatible with this",13,10,0
DB 13,10 DB "version of DSS. Please update BIOS to run this version of DSS.",13,10,0
DB "You started your computer with a BIOS version that is incompatible with this",13,10 DB "Invalid partition table.",13,10,0
DB "version of DSS. Please update BIOS to run this version of DSS.",13,10 DB "Invalid BOOT sector.",13,10,0
DB 0 DB "Can't open file SYSTEM.DOS ...",13,10,0
DB "Invalid partition table.",13,10 DB 13,10,"Starting DSS... ",13,10,13,10,0
DB 0 MSGE 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
CONTINU CONTINU
LD HL,0 LD HL,0

View File

@ -1,6 +1,5 @@
;!TODO ®¯à¥¤¥«¥­¨¥ ¯®¯ë⪨ ᤥ« âì § £àã§®ç­ë¬ ­¥ ¯¥à¢ë© à §¤¥« ;!TODO ®¯à¥¤¥«¥­¨¥ ¯®¯ë⪨ ᤥ« âì § £àã§®ç­ë¬ ­¥ ¯¥à¢ë© à §¤¥«
; <20>®α«¥¤­οο । <C2A4>ζ¨ο: 25.04.2006
; <20>ணࠬ¬  § ¯¨á¨ ­  FDD/HDD boot-§ £àã§ç¨ª  ¨ ä ©«®¢ á¨á⥬ë. ; <20>ணࠬ¬  § ¯¨á¨ ­  FDD/HDD boot-§ £àã§ç¨ª  ¨ ä ©«®¢ á¨á⥬ë.
; ;
; ‡ £à㦠¥â á¨áâ. ä ©«ë ¨§ ª®à­ï ¤¨áª , á ª®â®à®£® ¡ë«  ; ‡ £à㦠¥â á¨áâ. ä ©«ë ¨§ ª®à­ï ¤¨áª , á ª®â®à®£® ¡ë«