mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-15 17:31:47 +03:00
промежуточная 2
This commit is contained in:
parent
33b49c9f4d
commit
66c77848ed
@ -176,28 +176,27 @@ CONTINUE:
|
|||||||
IF UNIVERSAL_BOOT
|
IF UNIVERSAL_BOOT
|
||||||
|
|
||||||
LD A,(DRIVE)
|
LD A,(DRIVE)
|
||||||
LD C,#00
|
LD C,Dss.Version
|
||||||
RST #10
|
RST ToDSS
|
||||||
jp c,XFAIL.fail
|
jp c,XFAIL.fail
|
||||||
|
|
||||||
LD A,STARTDO
|
LD A,STARTDO
|
||||||
CALL DOSMESS
|
CALL DOSMESS
|
||||||
|
|
||||||
LD A,(DRIVE)
|
LD A,(DRIVE)
|
||||||
LD B,1
|
LD BC,Dss.BootDSK.Set*256 + Dss.BootDSK
|
||||||
LD C,Dss.BootDSK
|
RST ToDSS
|
||||||
RST #10
|
|
||||||
|
|
||||||
LD B,0
|
LD B,0
|
||||||
ELSE
|
ELSE
|
||||||
|
|
||||||
IF ORIGINAL_DSS
|
IF ORIGINAL_DSS
|
||||||
LD C,#00
|
LD C,Dss.Version
|
||||||
RST #10
|
RST ToDSS
|
||||||
ELSE
|
ELSE
|
||||||
LD A,(DRIVE)
|
LD A,(DRIVE)
|
||||||
LD C,#00
|
LD C,Dss.Version
|
||||||
RST #10
|
RST ToDSS
|
||||||
jp c,XFAIL.fail
|
jp c,XFAIL.fail
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
@ -206,27 +205,26 @@ CONTINUE:
|
|||||||
|
|
||||||
IF ORIGINAL_DSS
|
IF ORIGINAL_DSS
|
||||||
LD A,(DRIVE)
|
LD A,(DRIVE)
|
||||||
LD B,1
|
LD BC,Dss.BootDSK.Set*256 + Dss.BootDSK
|
||||||
LD C,Dss.BootDSK
|
RST ToDSS
|
||||||
RST #10
|
|
||||||
|
|
||||||
LD B,0
|
LD B,0
|
||||||
ENDIF
|
ENDIF
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
LD C,Dss.BootDSK
|
LD C,Dss.BootDSK
|
||||||
RST #10
|
RST ToDSS
|
||||||
|
|
||||||
ADD A,"A"
|
ADD A,"A"
|
||||||
|
|
||||||
LD HL,ROOT
|
LD HL,ROOT
|
||||||
LD (HL),A
|
LD (HL),A
|
||||||
LD C,Dss.ChDir
|
LD C,Dss.ChDir
|
||||||
RST #10
|
RST ToDSS
|
||||||
|
|
||||||
LD HL,PSHELL
|
LD HL,PSHELL
|
||||||
LD BC,Dss.Exec
|
LD BC,Dss.Exec
|
||||||
RST #10
|
RST ToDSS
|
||||||
LD A,NOSHELL
|
LD A,NOSHELL
|
||||||
JP XFAIL
|
JP XFAIL
|
||||||
|
|
||||||
@ -235,7 +233,7 @@ ROOT: DB 'X:\',0
|
|||||||
|
|
||||||
DOSMESS CALL FMESAGE
|
DOSMESS CALL FMESAGE
|
||||||
LD C,Dss.PChars
|
LD C,Dss.PChars
|
||||||
RST #10
|
RST ToDSS
|
||||||
RET
|
RET
|
||||||
|
|
||||||
XFAIL: CALL DOSMESS
|
XFAIL: CALL DOSMESS
|
||||||
|
|||||||
267
DSS/DOS5.ASM
267
DSS/DOS5.ASM
@ -31,6 +31,18 @@
|
|||||||
////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////
|
||||||
ATTRIB:
|
ATTRIB:
|
||||||
_mSavePath 1
|
_mSavePath 1
|
||||||
|
;!Test Current Dir
|
||||||
|
LD C,A
|
||||||
|
PUSH HL
|
||||||
|
PUSH BC
|
||||||
|
CALL DIR_PATH_CHECK
|
||||||
|
POP BC
|
||||||
|
POP HL
|
||||||
|
RET C
|
||||||
|
LD A,C
|
||||||
|
;
|
||||||
|
|
||||||
|
|
||||||
INC B
|
INC B
|
||||||
DEC B
|
DEC B
|
||||||
JP Z,.RATTRIB
|
JP Z,.RATTRIB
|
||||||
@ -90,14 +102,27 @@ ATTRIB:
|
|||||||
; OUTPUT: A - FM
|
; OUTPUT: A - FM
|
||||||
////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////
|
||||||
CREATE: _mSavePath 0
|
CREATE: _mSavePath 0
|
||||||
|
;!Test Current Dir
|
||||||
|
PUSH HL
|
||||||
|
CALL DIR_PATH_CHECK
|
||||||
|
POP HL
|
||||||
|
RET C
|
||||||
|
;
|
||||||
CALL .Prepare
|
CALL .Prepare
|
||||||
RET C
|
RET C
|
||||||
CALL SEARCH
|
CALL SEARCH
|
||||||
CALL NC,DELETE ;FILE EXIST RECREAT
|
CALL NC,DELETE ;FILE EXIST RECREAT
|
||||||
JR .DO
|
JR .DO
|
||||||
|
;
|
||||||
; INPUT: HL - "C:\DIR1\DIR2\filename.ext",#00
|
; INPUT: HL - "C:\DIR1\DIR2\filename.ext",#00
|
||||||
; OUTPUT: A - FM
|
; OUTPUT: A - FM
|
||||||
.NEW: _mSavePath 0
|
.NEW: _mSavePath 0
|
||||||
|
;!Test Current Dir
|
||||||
|
PUSH HL
|
||||||
|
CALL DIR_PATH_CHECK
|
||||||
|
POP HL
|
||||||
|
RET C
|
||||||
|
;
|
||||||
CALL .Prepare
|
CALL .Prepare
|
||||||
RET C
|
RET C
|
||||||
CALL SEARCH
|
CALL SEARCH
|
||||||
@ -154,11 +179,18 @@ CREATE: _mSavePath 0
|
|||||||
JP MASK
|
JP MASK
|
||||||
CREAT_N EQU CREATE.NEW
|
CREAT_N EQU CREATE.NEW
|
||||||
|
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////
|
||||||
; INPUT: HL - "c:\dir\filename.ext",#00 without simbols * ?
|
; INPUT: HL - "c:\dir\filename.ext",#00 without simbols * ?
|
||||||
////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////
|
||||||
DEL_FN: ;!TEST
|
DEL_FN: ;!TEST
|
||||||
_mSavePath 1
|
_mSavePath 1
|
||||||
|
;!Test Current Dir
|
||||||
|
PUSH HL
|
||||||
|
CALL DIR_PATH_CHECK
|
||||||
|
POP HL
|
||||||
|
RET C
|
||||||
|
;
|
||||||
CALL GETWORD ; â¥áâ ¤®¯ãáâ. ¨¬ï ¨ áâà. ¤¨áª
|
CALL GETWORD ; â¥áâ ¤®¯ãáâ. ¨¬ï ¨ áâà. ¤¨áª
|
||||||
RET C
|
RET C
|
||||||
LD HL,TMPNAME
|
LD HL,TMPNAME
|
||||||
@ -213,7 +245,17 @@ DELETE: SET_PAGE_X DIRPAGE
|
|||||||
; INPUT: HL - "old_name.ext",#00 without simbols * ?
|
; INPUT: HL - "old_name.ext",#00 without simbols * ?
|
||||||
; DE - "new_name.ext",#00 without simbols * ?
|
; DE - "new_name.ext",#00 without simbols * ?
|
||||||
////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////
|
||||||
RENAME: PUSH DE
|
RENAME:
|
||||||
|
;!Test Current Dir
|
||||||
|
PUSH HL
|
||||||
|
PUSH DE
|
||||||
|
CALL DIR_PATH_CHECK.forceCheck
|
||||||
|
POP DE
|
||||||
|
POP HL
|
||||||
|
RET C
|
||||||
|
;
|
||||||
|
|
||||||
|
PUSH DE
|
||||||
LD DE,MASKARE
|
LD DE,MASKARE
|
||||||
CALL MASK
|
CALL MASK
|
||||||
POP DE
|
POP DE
|
||||||
@ -273,6 +315,16 @@ RENAME: PUSH DE
|
|||||||
////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////
|
||||||
OPEN_FN:
|
OPEN_FN:
|
||||||
_mSavePath 1
|
_mSavePath 1
|
||||||
|
;!Test Current Dir
|
||||||
|
LD C,A
|
||||||
|
PUSH HL
|
||||||
|
PUSH BC
|
||||||
|
CALL DIR_PATH_CHECK.forceCheck
|
||||||
|
POP BC
|
||||||
|
POP HL
|
||||||
|
RET C
|
||||||
|
LD A,C
|
||||||
|
;
|
||||||
;R08
|
;R08
|
||||||
OPEN: LD (F_FIRST.ACCESS),A
|
OPEN: LD (F_FIRST.ACCESS),A
|
||||||
CALL GETWORD
|
CALL GETWORD
|
||||||
@ -319,8 +371,11 @@ OPEN: LD (F_FIRST.ACCESS),A
|
|||||||
RET
|
RET
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////
|
||||||
;
|
;‚å®¤ë¥ § 票ï:
|
||||||
;
|
; C - #12
|
||||||
|
; A - ä ©«®¢ë© ¬ ¨¯ã«ïâ®à
|
||||||
|
;‚ëå®¤ë¥ § 票ï:
|
||||||
|
; A - ª®¤ ®è¨¡ª¨, ¥á«¨ CF=1
|
||||||
////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////
|
||||||
CLOSE_FN:
|
CLOSE_FN:
|
||||||
_mSavePath 1
|
_mSavePath 1
|
||||||
@ -376,10 +431,31 @@ CLOSE: LD (F_FIRST.ACCESS),A
|
|||||||
RET
|
RET
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////
|
||||||
;
|
;‚å®¤ë¥ § 票ï:
|
||||||
;
|
; C - #19
|
||||||
|
; HL - 㪠§ ⥫ì ä ©«®¢ãî ᯥæ¨ä¨ª æ¨î
|
||||||
|
; DE - à ¡®ç¨© ¡ãä¥à 44 ¡ ©â , ¥á«¨ B=0, ¨ ç¥ 256 ¡ ©â
|
||||||
|
; A - âਡãâë, ¨á¯®«ì§ã¥¬ë¥ ¯à¨ ¯®¨áª¥
|
||||||
|
; B = 0 - ¨¬ï ©¤¥®£® ä ©« ¢ ä®à¬ ⥠11 ¡ ©â "FilenameExt"
|
||||||
|
; B = 1 - ¨¬ï ©¤¥®£® ä ©« ¢ ä®à¬ ⥠DOS "filename.ext",0
|
||||||
|
;‚ëå®¤ë¥ § 票ï:
|
||||||
|
; A - ª®¤ ®è¨¡ª¨, ¥á«¨ CF=1
|
||||||
////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////
|
||||||
F_FIRST:
|
F_FIRST:
|
||||||
|
;!Test Current Dir
|
||||||
|
LD C,A
|
||||||
|
PUSH HL
|
||||||
|
PUSH DE
|
||||||
|
PUSH BC
|
||||||
|
CALL DIR_PATH_CHECK
|
||||||
|
POP BC
|
||||||
|
POP DE
|
||||||
|
POP HL
|
||||||
|
RET C
|
||||||
|
LD A,C
|
||||||
|
;
|
||||||
|
|
||||||
|
|
||||||
LD (.ACCESS),A
|
LD (.ACCESS),A
|
||||||
LD (.DTABUF),DE
|
LD (.DTABUF),DE
|
||||||
LD A,B
|
LD A,B
|
||||||
@ -487,6 +563,13 @@ F_NEXT:
|
|||||||
////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////
|
||||||
;!TODO ᤥ« âì ¤«ï ª ¦¤®£® ¤à ©¢ § ¯®¬¨ ¨¥ ⥪ã饩 ¤¨à४â®à¨¨, ¯®ª âãâ § £«ãèª
|
;!TODO ᤥ« âì ¤«ï ª ¦¤®£® ¤à ©¢ § ¯®¬¨ ¨¥ ⥪ã饩 ¤¨à४â®à¨¨, ¯®ª âãâ § £«ãèª
|
||||||
; RestoreDIR:
|
; RestoreDIR:
|
||||||
|
CHNDISK_FN:
|
||||||
|
CALL CHNDISK
|
||||||
|
RET C
|
||||||
|
PUSH AF
|
||||||
|
CALL DIR_PATH_CHANGE.FullCurrent
|
||||||
|
POP AF
|
||||||
|
RET
|
||||||
CHNDISK:
|
CHNDISK:
|
||||||
;!TEST
|
;!TEST
|
||||||
CALL OPENDSK
|
CALL OPENDSK
|
||||||
@ -516,12 +599,13 @@ CHNDISK:
|
|||||||
; ¢ë室: A - ª®¤ ®è¨¡ª¨, ¥á«¨ CF=1
|
; ¢ë室: A - ª®¤ ®è¨¡ª¨, ¥á«¨ CF=1
|
||||||
; !FIXIT ¬®¦¥â ¢ë©â¨ § ¯à¥¤¥«ë ¡ãä¥à ?
|
; !FIXIT ¬®¦¥â ¢ë©â¨ § ¯à¥¤¥«ë ¡ãä¥à ?
|
||||||
////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////
|
||||||
CURRDIR: EX DE,HL
|
CURRDIR: LD DE,WorkDirectory
|
||||||
LD HL,CurrentDirectory
|
JR CURRDIR_FN.skip
|
||||||
|
CURRDIR_FN:
|
||||||
|
LD DE,CurrentDirectory
|
||||||
|
.skip: EX DE,HL
|
||||||
XOR A
|
XOR A
|
||||||
.loop: ;LD A,(HL)
|
.loop: CP (HL)
|
||||||
;OR A
|
|
||||||
CP (HL)
|
|
||||||
LDI
|
LDI
|
||||||
JR NZ,.loop
|
JR NZ,.loop
|
||||||
RET
|
RET
|
||||||
@ -778,10 +862,14 @@ PUT_D_T:
|
|||||||
////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////
|
||||||
CHDIR_FN:
|
CHDIR_FN:
|
||||||
_mSavePath 0
|
_mSavePath 0
|
||||||
; EX DE,HL
|
;!Test Current Dir
|
||||||
; LD HL,OPENDIR.dir
|
PUSH HL
|
||||||
; LD (HL),CurrentDirectory
|
CALL DIR_PATH_CHECK
|
||||||
; CALL CHDIR
|
POP HL
|
||||||
|
RET C
|
||||||
|
;
|
||||||
|
CALL CHDIR
|
||||||
|
JP DIR_PATH_CHANGE.FullCurrent
|
||||||
; RET
|
; RET
|
||||||
;
|
;
|
||||||
CHDIR: CALL GETWORD ; â¥áâ ¤®¯ãáâ. ¨¬ï ¨ áâà. ¤¨áª
|
CHDIR: CALL GETWORD ; â¥áâ ¤®¯ãáâ. ¨¬ï ¨ áâà. ¤¨áª
|
||||||
@ -801,6 +889,17 @@ CHDIR: CALL GETWORD ;
|
|||||||
; INPUT: HL - "C:\DIR\DIR\DIR_NAME",0
|
; INPUT: HL - "C:\DIR\DIR\DIR_NAME",0
|
||||||
////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////
|
||||||
MKDIR: _mSavePath 1
|
MKDIR: _mSavePath 1
|
||||||
|
;!Test Current Dir
|
||||||
|
LD C,A
|
||||||
|
PUSH HL
|
||||||
|
PUSH BC
|
||||||
|
CALL DIR_PATH_CHECK
|
||||||
|
POP BC
|
||||||
|
POP HL
|
||||||
|
RET C
|
||||||
|
LD A,C
|
||||||
|
;
|
||||||
|
|
||||||
CALL GETWORD ; â¥áâ ¤®¯ãáâ. ¨¬ï ¨ áâà. ¤¨áª
|
CALL GETWORD ; â¥áâ ¤®¯ãáâ. ¨¬ï ¨ áâà. ¤¨áª
|
||||||
RET C
|
RET C
|
||||||
LD HL,TMPNAME ; 8.3 ¨¬ï
|
LD HL,TMPNAME ; 8.3 ¨¬ï
|
||||||
@ -965,6 +1064,17 @@ MKDIR: _mSavePath 1
|
|||||||
; INPUT: HL - "C:\DIR\DIR\DIR_NAME",0
|
; INPUT: HL - "C:\DIR\DIR\DIR_NAME",0
|
||||||
////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////
|
||||||
RMDIR: _mSavePath 1
|
RMDIR: _mSavePath 1
|
||||||
|
;!Test Current Dir
|
||||||
|
LD C,A
|
||||||
|
PUSH HL
|
||||||
|
PUSH BC
|
||||||
|
CALL DIR_PATH_CHECK
|
||||||
|
POP BC
|
||||||
|
POP HL
|
||||||
|
RET C
|
||||||
|
LD A,C
|
||||||
|
;
|
||||||
|
|
||||||
CALL GETWORD
|
CALL GETWORD
|
||||||
RET C
|
RET C
|
||||||
LD HL,TMPNAME
|
LD HL,TMPNAME
|
||||||
@ -1051,9 +1161,35 @@ RMDIR: _mSavePath 1
|
|||||||
LD A,DSS_Error.sys.DIR_NOT_EMPTY
|
LD A,DSS_Error.sys.DIR_NOT_EMPTY
|
||||||
SCF
|
SCF
|
||||||
RET
|
RET
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////
|
||||||
|
;‚å®¤ë¥ § 票ï:
|
||||||
|
; C - #44
|
||||||
|
; B = 0, ¯à¥®¡à §®¢ âì ¨§ 11 ᨬ¢®«ì®£® ä®à¬ â ¢ ä®à¬ â „Ž‘
|
||||||
|
; HL - 11 ᨬ¢®«®¢ ¨¬¥¨ ä ©«
|
||||||
|
; DE - ¡ãä¥à ¤«ï ¨¬¥¨ ¢ ä®à¬ ⥠„Ž‘
|
||||||
|
; B = 1, ¯à¥®¡à §®¢ âì ¨§ ä®à¬ â „Ž‘ ¢ 11 ᨬ¢®«ìë© ä®à¬ â
|
||||||
|
; HL - ¨¬ï ä ©« ¢ ä®à¬ ⥠„Ž‘
|
||||||
|
; DE - 11 ᨬ¢®«®¢ ¨¬¥¨ ä ©«
|
||||||
|
;‚ëå®¤ë¥ § 票ï:
|
||||||
|
; A - ª®¤ ®è¨¡ª¨, ¥á«¨ CF=1
|
||||||
|
////////////////////////////////////////////////////////////////////////
|
||||||
|
DOSNAME:
|
||||||
|
INC B
|
||||||
|
DEC B
|
||||||
|
JP Z,GETNAME
|
||||||
|
DEC B
|
||||||
|
JP Z,MASK
|
||||||
|
LD A,DSS_Error.sys.INVALID_FUNCTION
|
||||||
|
SCF
|
||||||
|
RET
|
||||||
////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
;----------------------------------------------------------------------;
|
;----------------------------------------------------------------------;
|
||||||
; —⥨¥ ॣ¨áâ஢ CMOS
|
; —⥨¥ ॣ¨áâ஢ CMOS
|
||||||
@ -1263,19 +1399,6 @@ WRT_HND:
|
|||||||
;----------------------------------------------------------------------;
|
;----------------------------------------------------------------------;
|
||||||
|
|
||||||
|
|
||||||
;----------------------------------------------------------------------;
|
|
||||||
DOSNAME:
|
|
||||||
INC B
|
|
||||||
DEC B
|
|
||||||
JP Z,GETNAME
|
|
||||||
DEC B
|
|
||||||
JP Z,MASK
|
|
||||||
LD A,DSS_Error.sys.INVALID_FUNCTION
|
|
||||||
SCF
|
|
||||||
RET
|
|
||||||
;----------------------------------------------------------------------;
|
|
||||||
|
|
||||||
|
|
||||||
;----------------------------------------------------------------------;
|
;----------------------------------------------------------------------;
|
||||||
; HL - 11 bytes filename "FILENAMEEXT"
|
; HL - 11 bytes filename "FILENAMEEXT"
|
||||||
; DE - DOS filename "FILENAME.EXT",0
|
; DE - DOS filename "FILENAME.EXT",0
|
||||||
@ -1599,16 +1722,19 @@ FINDDIR:
|
|||||||
LD A,(IX+1)
|
LD A,(IX+1)
|
||||||
CP "."
|
CP "."
|
||||||
JP NZ,.IT_DIR
|
JP NZ,.IT_DIR
|
||||||
LD HL,CurrentDirectory
|
;LD HL,CurrentDirectory
|
||||||
|
LD HL,WorkDirectory
|
||||||
LD D,H
|
LD D,H
|
||||||
LD E,L
|
LD E,L
|
||||||
INC HL
|
INC HL
|
||||||
LD BC,CurrentDirectory.DEPTH
|
;LD BC,CurrentDirectory.DEPTH
|
||||||
|
LD BC,WorkDirectory.DEPTH
|
||||||
XOR A
|
XOR A
|
||||||
CPIR ;!FIXIT ¥â ¯à®¢¥àª¨ § ¢¥à襨¥ ¯® BC=0
|
CPIR ;!FIXIT ¥â ¯à®¢¥àª¨ § ¢¥à襨¥ ¯® BC=0
|
||||||
DEC HL ;R09 ;[x] ¨á¯à ¢«¥ ¡ £ á ¯ àᨣ®¬ ¡ãä¥à ª â «®£
|
DEC HL ;R09 ;[x] ¨á¯à ¢«¥ ¡ £ á ¯ àᨣ®¬ ¡ãä¥à ª â «®£
|
||||||
DEC HL
|
DEC HL
|
||||||
LD BC,CurrentDirectory.DEPTH
|
;LD BC,CurrentDirectory.DEPTH
|
||||||
|
LD BC,WorkDirectory.DEPTH
|
||||||
LD A,'\'
|
LD A,'\'
|
||||||
CPDR
|
CPDR
|
||||||
INC HL
|
INC HL
|
||||||
@ -1630,8 +1756,10 @@ FINDDIR:
|
|||||||
.ADDSPEC:
|
.ADDSPEC:
|
||||||
LD E,XL
|
LD E,XL
|
||||||
LD D,XH
|
LD D,XH
|
||||||
LD HL,CurrentDirectory+1
|
;LD HL,CurrentDirectory+1
|
||||||
LD BC,CurrentDirectory.DEPTH-1
|
;LD BC,CurrentDirectory.DEPTH-1
|
||||||
|
LD HL,WorkDirectory+1
|
||||||
|
LD BC,WorkDirectory.DEPTH-1
|
||||||
XOR A
|
XOR A
|
||||||
CPIR ;!FIXIT ¥â ¯à®¢¥àª¨ § ¢¥à襨¥ ¯® BC=0
|
CPIR ;!FIXIT ¥â ¯à®¢¥àª¨ § ¢¥à襨¥ ¯® BC=0
|
||||||
DEC HL
|
DEC HL
|
||||||
@ -1933,7 +2061,77 @@ SAVEDIR:
|
|||||||
AND A
|
AND A
|
||||||
RET
|
RET
|
||||||
;----------------------------------------------------------------------;
|
;----------------------------------------------------------------------;
|
||||||
;DIRSIZE: WORD 0 ; ŕ §ŹĽŕ áŻ¨áŞ Ş â ŤŽŁ size_cash_directory
|
|
||||||
|
|
||||||
|
;----------------------------------------------------------------------;
|
||||||
|
DIR_PATH_CHANGE:
|
||||||
|
.FullCurrent: LD A,(FatBuffer.DRIVE)
|
||||||
|
ADD 'A'
|
||||||
|
LD (CurrentPath),A
|
||||||
|
;
|
||||||
|
.Current: LD HL,WorkDirectory
|
||||||
|
LD DE,CurrentDirectory
|
||||||
|
LD BC,DIRECTORY_PATH_LENGTH
|
||||||
|
LDIR
|
||||||
|
RET
|
||||||
|
;
|
||||||
|
.FullWork: LD A,(CurrentPath)
|
||||||
|
SUB 'A'
|
||||||
|
LD (FatBuffer.DRIVE),A
|
||||||
|
;
|
||||||
|
.Work: LD HL,CurrentDirectory
|
||||||
|
LD DE,WorkDirectory
|
||||||
|
LD BC,DIRECTORY_PATH_LENGTH
|
||||||
|
LDIR
|
||||||
|
RET
|
||||||
|
DIR_PATH_CHECK: LD A,(HL)
|
||||||
|
CP '\'
|
||||||
|
JR NZ,.notRootDir
|
||||||
|
;
|
||||||
|
CALL .checkDrive
|
||||||
|
RET Z
|
||||||
|
LD A,(CurrentPath)
|
||||||
|
SUB 'A'
|
||||||
|
JP OPENDSK
|
||||||
|
;
|
||||||
|
.notRootDir: INC HL
|
||||||
|
LD A,(HL)
|
||||||
|
CP ':'
|
||||||
|
RET Z
|
||||||
|
;
|
||||||
|
.forceCheck: CALL .checkDrive
|
||||||
|
JR Z,.checkDir
|
||||||
|
;
|
||||||
|
LD HL,CurrentPath
|
||||||
|
LD A,(FatBuffer.DRIVE)
|
||||||
|
ADD 'A'
|
||||||
|
CP (HL)
|
||||||
|
JP NZ,GETWORD
|
||||||
|
;
|
||||||
|
.checkDir: LD HL,CurrentDirectory+1
|
||||||
|
LD DE,WorkDirectory+1
|
||||||
|
;
|
||||||
|
.loop: LD A,(DE)
|
||||||
|
AND A
|
||||||
|
JR Z,.end
|
||||||
|
CP (HL)
|
||||||
|
INC HL
|
||||||
|
INC DE
|
||||||
|
JR Z,.loop
|
||||||
|
;
|
||||||
|
JR .ReDir
|
||||||
|
.end: CP (HL)
|
||||||
|
RET Z
|
||||||
|
.ReDir: LD HL,CurrentDirectory
|
||||||
|
JP GETWORD
|
||||||
|
;
|
||||||
|
.checkDrive: LD HL,CurrentPath
|
||||||
|
LD A,(FatBuffer.DRIVE)
|
||||||
|
ADD 'A'
|
||||||
|
CP (HL)
|
||||||
|
RET
|
||||||
|
;----------------------------------------------------------------------;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -1957,6 +2155,7 @@ MASKARE: BLOCK 8,0 ;
|
|||||||
;//MODULE: DOS5
|
;//MODULE: DOS5
|
||||||
;[END]
|
;[END]
|
||||||
|
|
||||||
|
;DIRSIZE: WORD 0 ; à §¬¥à ᯨ᪠ª â «®£ size_cash_directory
|
||||||
|
|
||||||
|
|
||||||
;!TODO ?
|
;!TODO ?
|
||||||
|
|||||||
@ -551,7 +551,7 @@ TSTSIZE XOR A
|
|||||||
; HL - ADDRESS
|
; HL - ADDRESS
|
||||||
; DE - SIZE
|
; DE - SIZE
|
||||||
; A - FM
|
; A - FM
|
||||||
READ_FN:
|
;READ_FN:
|
||||||
; _mSavePath 1
|
; _mSavePath 1
|
||||||
; HL - ADDRESS
|
; HL - ADDRESS
|
||||||
; DE - SIZE
|
; DE - SIZE
|
||||||
|
|||||||
@ -141,6 +141,12 @@ NDISK11:
|
|||||||
; ¢å®¤: ¥â
|
; ¢å®¤: ¥â
|
||||||
; ¢ë室: A - ®¬¥à ¤¨áª (0=A,1=B,..)
|
; ¢ë室: A - ®¬¥à ¤¨áª (0=A,1=B,..)
|
||||||
;/////////////////////////////////////////////////////////////////////
|
;/////////////////////////////////////////////////////////////////////
|
||||||
|
CURRDSK_FN:
|
||||||
|
LD A,(CurrentPath)
|
||||||
|
SUB 'A'
|
||||||
|
RET NC
|
||||||
|
LD A,DSS_Error.sys.INVALID_DRIVE
|
||||||
|
RET
|
||||||
CURRDSK: LD A,(FatBuffer.DRIVE)
|
CURRDSK: LD A,(FatBuffer.DRIVE)
|
||||||
AND A
|
AND A
|
||||||
RET
|
RET
|
||||||
@ -160,10 +166,20 @@ CURRDSK: LD A,(FatBuffer.DRIVE)
|
|||||||
;/////////////////////////////////////////////////////////////////////
|
;/////////////////////////////////////////////////////////////////////
|
||||||
DISKINF:
|
DISKINF:
|
||||||
CP #FF ; !FIXIT WorkDirectory
|
CP #FF ; !FIXIT WorkDirectory
|
||||||
JR Z,CURRDS ;R06
|
;!TEST Current Dir
|
||||||
|
;JR Z,CURRDS ;R06
|
||||||
|
JR NZ,.CustomDisk
|
||||||
|
LD A,(CurrentPath)
|
||||||
|
SUB 'A'
|
||||||
|
LD HL,FatBuffer.DRIVE
|
||||||
|
CP (HL)
|
||||||
|
JR Z,CURRDS
|
||||||
|
;
|
||||||
|
.CustomDisk:
|
||||||
CALL CHNDISK ;R06
|
CALL CHNDISK ;R06
|
||||||
RET C ;R06
|
RET C ;R06
|
||||||
CURRDS: LD HL,2
|
CURRDS:
|
||||||
|
LD HL,2
|
||||||
LD BC,0
|
LD BC,0
|
||||||
FRESP: PUSH BC
|
FRESP: PUSH BC
|
||||||
CALL R_F_FAT
|
CALL R_F_FAT
|
||||||
@ -540,7 +556,7 @@ DOS_X_Error:
|
|||||||
;!TODO ª ¡ãä¥à ¬!
|
;!TODO ª ¡ãä¥à ¬!
|
||||||
FatBuffer:
|
FatBuffer:
|
||||||
.MSG: DB 'FAT'
|
.MSG: DB 'FAT'
|
||||||
.READ_PG: DB #00
|
.READ_PG: DB #00 ;!TODO Ľ ¨áŻŽŤě§ăîâáď ĽŞŽâŽŕëĽ § 缨ď, Ž § ¤ăŹŞ ĽŻŤŽĺ ď)))
|
||||||
.BLOCK: DB #00
|
.BLOCK: DB #00
|
||||||
.DIR_CLU: DW #0000
|
.DIR_CLU: DW #0000
|
||||||
.DRIVE: DB #FF
|
.DRIVE: DB #FF
|
||||||
@ -562,11 +578,13 @@ FatBuffer:
|
|||||||
;
|
;
|
||||||
|
|
||||||
;!TODO ª ¡ãä¥à ¬!
|
;!TODO ª ¡ãä¥à ¬!
|
||||||
|
CurrentPath: DB 'X'
|
||||||
|
DB ':'
|
||||||
CurrentDirectory: DB '\'
|
CurrentDirectory: DB '\'
|
||||||
.DEPTH: EQU DIRECTORY_PATH_LENGTH
|
.DEPTH: EQU DIRECTORY_PATH_LENGTH
|
||||||
BLOCK CurrentDirectory.DEPTH,0 ; ¥ .DEPTH-1 ç⮡ ¡ë« 0 ¢ ª®æ¥
|
BLOCK CurrentDirectory.DEPTH,0 ; ¥ .DEPTH-1 ç⮡ ¡ë« 0 ¢ ª®æ¥
|
||||||
|
|
||||||
IF SAVE_PATH_MACRO
|
IF SAVE_PATH_CODE
|
||||||
WorkDirectory: DB '\'
|
WorkDirectory: DB '\'
|
||||||
.DEPTH: EQU DIRECTORY_PATH_LENGTH
|
.DEPTH: EQU DIRECTORY_PATH_LENGTH
|
||||||
BLOCK WorkDirectory.DEPTH,0 ; ¥ .DEPTH-1 ç⮡ ¡ë« 0 ¢ ª®æ¥
|
BLOCK WorkDirectory.DEPTH,0 ; ¥ .DEPTH-1 ç⮡ ¡ë« 0 ¢ ª®æ¥
|
||||||
@ -597,7 +615,7 @@ SAVE_CUR_PATH
|
|||||||
LD A,":"
|
LD A,":"
|
||||||
LD (HL),A
|
LD (HL),A
|
||||||
INC HL
|
INC HL
|
||||||
CALL CURRDIR
|
CALL CURRDIR_FN
|
||||||
|
|
||||||
; ¯®ç¥¬ã ¥ POP AF : OUT (SLOT3),A
|
; ¯®ç¥¬ã ¥ POP AF : OUT (SLOT3),A
|
||||||
//POP BC
|
//POP BC
|
||||||
|
|||||||
@ -377,10 +377,10 @@ GO_ZERO EQU #0000
|
|||||||
ADRST10: ;DS 512 ;,0
|
ADRST10: ;DS 512 ;,0
|
||||||
;...............................................[LOW ADDRESS ]:
|
;...............................................[LOW ADDRESS ]:
|
||||||
; 0 1 2 3 4 5 6 7 8 9 DEC HEX
|
; 0 1 2 3 4 5 6 7 8 9 DEC HEX
|
||||||
DB low F_START, low CHNDISK, low CURRDSK, low DISKINF, low NOPS, low NOPS, low NOPS, low NOPS, low SCANDRV, low BOOTDSK ; 0 00..09
|
DB low F_START, low CHNDISK_FN, low CURRDSK_FN,low DISKINF, low NOPS, low NOPS, low NOPS, low NOPS, low SCANDRV, low BOOTDSK ; 0 00..09
|
||||||
DB low CREATE, low CREAT_N, low NOPS, low NOPS, low DEL_FN, low NOPS, low RENAME, low OPEN_FN, low CLOSE_FN, low READ_FN ; 1 0A..13
|
DB low CREATE, low CREAT_N, low NOPS, low NOPS, low DEL_FN, low NOPS, low RENAME, low OPEN_FN, low CLOSE_FN, low READ ; 1 0A..13
|
||||||
DB low WRITE, low MOVE_FP, low ATTRIB, low GET_D_T, low PUT_D_T, low F_FIRST, low F_NEXT, low MKDIR, low RMDIR, low CHDIR_FN ; 2 14..1D
|
DB low WRITE, low MOVE_FP, low ATTRIB, low GET_D_T, low PUT_D_T, low F_FIRST, low F_NEXT, low MKDIR, low RMDIR, low CHDIR_FN ; 2 14..1D
|
||||||
DB low CURRDIR, low NOPS, low NOPS, low SYSTIME, low SETTIME, low NOPS, low NOPS, low NOPS, low NOPS, low NOPS ; 3 1E..27
|
DB low CURRDIR_FN,low NOPS, low NOPS, low SYSTIME, low SETTIME, low NOPS, low NOPS, low NOPS, low NOPS, low NOPS ; 3 1E..27
|
||||||
DB low NOPS, low NOPS, low NOPS, low NOPS, low NOPS, low NOPS, low NOPS, low NOPS, low WAITKEY, low SCANKEY ; 4 28..31
|
DB low NOPS, low NOPS, low NOPS, low NOPS, low NOPS, low NOPS, low NOPS, low NOPS, low WAITKEY, low SCANKEY ; 4 28..31
|
||||||
DB low ECHOKEY, low CTRLKEY, low NOPS, low K_CLEAR, low K_SETUP, low TESTKEY, low SETWIN, low SETWIN1, low SETWIN2, low SETWIN3 ; 5 32..3B
|
DB low ECHOKEY, low CTRLKEY, low NOPS, low K_CLEAR, low K_SETUP, low TESTKEY, low SETWIN, low SETWIN1, low SETWIN2, low SETWIN3 ; 5 32..3B
|
||||||
DB low FREEMEM, low GETMEM, low RETMEM, low SETMEM, low EXEC, low LEAVE, low WAIT, low GSWITCH, low DOSNAME, low EX_PATH ; 6 3C..45
|
DB low FREEMEM, low GETMEM, low RETMEM, low SETMEM, low EXEC, low LEAVE, low WAIT, low GSWITCH, low DOSNAME, low EX_PATH ; 6 3C..45
|
||||||
@ -404,10 +404,10 @@ ADRST10: ;DS 512 ;,0
|
|||||||
;[ ] R09
|
;[ ] R09
|
||||||
ENDIF
|
ENDIF
|
||||||
;...............................................[HIGH ADDRESS]:
|
;...............................................[HIGH ADDRESS]:
|
||||||
DB high F_START,high CHNDISK,high CURRDSK,high DISKINF,high NOPS, high NOPS, high NOPS, high NOPS, high SCANDRV, high BOOTDSK
|
DB high F_START, high CHNDISK_FN,high CURRDSK_FN,high DISKINF,high NOPS, high NOPS, high NOPS, high NOPS, high SCANDRV, high BOOTDSK
|
||||||
DB high CREATE, high CREAT_N, high NOPS, high NOPS, high DEL_FN, high NOPS, high RENAME, high OPEN_FN,high CLOSE_FN,high READ
|
DB high CREATE, high CREAT_N, high NOPS, high NOPS, high DEL_FN, high NOPS, high RENAME, high OPEN_FN,high CLOSE_FN,high READ
|
||||||
DB high WRITE, high MOVE_FP, high ATTRIB, high GET_D_T,high PUT_D_T,high F_FIRST,high F_NEXT, high MKDIR, high RMDIR, high CHDIR_FN
|
DB high WRITE, high MOVE_FP, high ATTRIB, high GET_D_T,high PUT_D_T,high F_FIRST,high F_NEXT, high MKDIR, high RMDIR, high CHDIR_FN
|
||||||
DB high CURRDIR,high NOPS, high NOPS, high SYSTIME,high SETTIME,high NOPS, high NOPS, high NOPS, high NOPS, high NOPS
|
DB high CURRDIR_FN,high NOPS, high NOPS, high SYSTIME,high SETTIME,high NOPS, high NOPS, high NOPS, high NOPS, high NOPS
|
||||||
DB high NOPS, high NOPS, high NOPS, high NOPS, high NOPS, high NOPS, high NOPS, high NOPS, high WAITKEY, high SCANKEY
|
DB high NOPS, high NOPS, high NOPS, high NOPS, high NOPS, high NOPS, high NOPS, high NOPS, high WAITKEY, high SCANKEY
|
||||||
DB high ECHOKEY, high CTRLKEY, high NOPS, high K_CLEAR,high K_SETUP,high TESTKEY,high SETWIN, high SETWIN1,high SETWIN2, high SETWIN3
|
DB high ECHOKEY, high CTRLKEY, high NOPS, high K_CLEAR,high K_SETUP,high TESTKEY,high SETWIN, high SETWIN1,high SETWIN2, high SETWIN3
|
||||||
DB high FREEMEM, high GETMEM, high RETMEM, high SETMEM, high EXEC, high LEAVE, high WAIT, high GSWITCH,high DOSNAME, high EX_PATH
|
DB high FREEMEM, high GETMEM, high RETMEM, high SETMEM, high EXEC, high LEAVE, high WAIT, high GSWITCH,high DOSNAME, high EX_PATH
|
||||||
|
|||||||
151
DSS/EXECUTE.ASM
151
DSS/EXECUTE.ASM
@ -672,7 +672,7 @@ FINDPATH:
|
|||||||
SET_PAGE_X ENVPAGE
|
SET_PAGE_X ENVPAGE
|
||||||
PUSH AF
|
PUSH AF
|
||||||
|
|
||||||
CALL CURRDSK
|
CALL CURRDSK_FN
|
||||||
ADD A,"A"
|
ADD A,"A"
|
||||||
LD HL,TMP_CURDIR
|
LD HL,TMP_CURDIR
|
||||||
LD (HL),A
|
LD (HL),A
|
||||||
@ -680,7 +680,7 @@ FINDPATH:
|
|||||||
LD A,":"
|
LD A,":"
|
||||||
LD (HL),A
|
LD (HL),A
|
||||||
INC HL
|
INC HL
|
||||||
CALL CURRDIR
|
CALL CURRDIR_FN
|
||||||
|
|
||||||
CALL MAKE_PATH_ARRAY
|
CALL MAKE_PATH_ARRAY
|
||||||
LD HL,PATH_PNT_ARRAY
|
LD HL,PATH_PNT_ARRAY
|
||||||
@ -769,6 +769,7 @@ ENVPATH DB "PATH=",0
|
|||||||
; !TODO ‘„…‹€’œ ‘’<E28098>“Š’“<E28099>މ ¨ ®¡®§ ç¨âì áâà ¨æã
|
; !TODO ‘„…‹€’œ ‘’<E28098>“Š’“<E28099>މ ¨ ®¡®§ ç¨âì áâà ¨æã
|
||||||
TMP_CURDIR_AUTO EQU #FB00
|
TMP_CURDIR_AUTO EQU #FB00
|
||||||
PATH_PNT_ARRAY EQU #FC80
|
PATH_PNT_ARRAY EQU #FC80
|
||||||
|
; !FIXIT ¥ 㦮 ¥á«¨ SAVE_PATH_MACRO = 1
|
||||||
TMP_CURDIR EQU #FD00
|
TMP_CURDIR EQU #FD00
|
||||||
ENVTEMP EQU #FE00
|
ENVTEMP EQU #FE00
|
||||||
|
|
||||||
@ -949,6 +950,10 @@ NOINK: LD A,H
|
|||||||
JP NZ,ERREXE0
|
JP NZ,ERREXE0
|
||||||
LD B,L
|
LD B,L
|
||||||
|
|
||||||
|
LD HL,_RET_1
|
||||||
|
LD (_ret),HL
|
||||||
|
JP _TST_PROC
|
||||||
|
/*
|
||||||
;!FIXIT double 1
|
;!FIXIT double 1
|
||||||
CALL GETMEM
|
CALL GETMEM
|
||||||
JP C,ERREXE0
|
JP C,ERREXE0
|
||||||
@ -1031,10 +1036,12 @@ FRC000: LD A,(DE)
|
|||||||
LD A,(EXE_FM)
|
LD A,(EXE_FM)
|
||||||
CALL MOVE_FP
|
CALL MOVE_FP
|
||||||
;R02
|
;R02
|
||||||
LD SP,#403F ;!HARDCODE STACK before start EXE. “áâ ¢«¨¢ ¥âáï ª®£¤ ¢®âªãâë DSS_PAGE
|
LD SP,#403F ;!HARDCODE STACK before start EXE. “áâ ¢«¨¢ ¥âáï ª®£¤ ¢®âªãâë SHARED_PAGE
|
||||||
;
|
;
|
||||||
;
|
;
|
||||||
LD DE,(CORE_BUFFERS.EXEBUFF.LD_ADDR)
|
*/
|
||||||
|
|
||||||
|
_RET_1: LD DE,(CORE_BUFFERS.EXEBUFF.LD_ADDR)
|
||||||
XOR A
|
XOR A
|
||||||
LD H,A
|
LD H,A
|
||||||
LD L,A
|
LD L,A
|
||||||
@ -1045,7 +1052,8 @@ FRC000: LD A,(DE)
|
|||||||
CALL READ ; ç⥨¥ ¨§ ä ©«
|
CALL READ ; ç⥨¥ ¨§ ä ©«
|
||||||
LD A,(EXE_FM) ; ¤¥áªà. ä ©«
|
LD A,(EXE_FM) ; ¤¥áªà. ä ©«
|
||||||
CALL CLOSE ; § ªàëâì ä ©«
|
CALL CLOSE ; § ªàëâì ä ©«
|
||||||
|
JP _TST_PROC_2
|
||||||
|
/*
|
||||||
;!FIXIT double 2
|
;!FIXIT double 2
|
||||||
;R09
|
;R09
|
||||||
;_mRestorePath
|
;_mRestorePath
|
||||||
@ -1067,6 +1075,7 @@ FRC000: LD A,(DE)
|
|||||||
|
|
||||||
RET
|
RET
|
||||||
;
|
;
|
||||||
|
*/
|
||||||
;[ ]
|
;[ ]
|
||||||
RETFAR: LD B,DSS_Error.sys.UNEXPECTED_APP_TRMN
|
RETFAR: LD B,DSS_Error.sys.UNEXPECTED_APP_TRMN
|
||||||
JP LEAVE ; § ¢¥àè¨âì ¯à®£à ¬¬ã (¯à®æ¥áá)
|
JP LEAVE ; § ¢¥àè¨âì ¯à®£à ¬¬ã (¯à®æ¥áá)
|
||||||
@ -1121,7 +1130,10 @@ PRELOAD: EX DE,HL
|
|||||||
OR L
|
OR L
|
||||||
JR Z,NOINK2
|
JR Z,NOINK2
|
||||||
INC B
|
INC B
|
||||||
NOINK2:
|
NOINK2: LD HL,_RET_2
|
||||||
|
LD (_ret),HL
|
||||||
|
JR _TST_PROC
|
||||||
|
/*
|
||||||
;!FIXIT double 1
|
;!FIXIT double 1
|
||||||
CALL GETMEM
|
CALL GETMEM
|
||||||
JP C,ERREXE0
|
JP C,ERREXE0
|
||||||
@ -1204,15 +1216,17 @@ FRC000H: LD A,(DE)
|
|||||||
LD A,(EXE_FM)
|
LD A,(EXE_FM)
|
||||||
CALL MOVE_FP
|
CALL MOVE_FP
|
||||||
;R02
|
;R02
|
||||||
LD SP,#403F ;!HARDCODE STACK before start EXE. “áâ ¢«¨¢ ¥âáï ª®£¤ ¢®âªãâë DSS_PAGE
|
LD SP,#403F ;!HARDCODE STACK before start EXE. “áâ ¢«¨¢ ¥âáï ª®£¤ ¢®âªãâë SHARED_PAGE
|
||||||
;
|
;
|
||||||
;
|
;
|
||||||
|
*/
|
||||||
LD HL,(CORE_BUFFERS.EXEBUFF.LD_ADDR) ; ¡ãä¥à
|
_RET_2: LD HL,(CORE_BUFFERS.EXEBUFF.LD_ADDR) ; ¡ãä¥à
|
||||||
LD DE,(CORE_BUFFERS.EXEBUFF.LOADER) ; ç¨á«® ç¨â. ¡ ©â
|
LD DE,(CORE_BUFFERS.EXEBUFF.LOADER) ; ç¨á«® ç¨â. ¡ ©â
|
||||||
LD A,(EXE_FM) ; ¤¥áªà. ä ©«
|
LD A,(EXE_FM) ; ¤¥áªà. ä ©«
|
||||||
CALL READ ; ç⥨¥ ¨§ ä ©«
|
CALL READ ; ç⥨¥ ¨§ ä ©«
|
||||||
|
JP _TST_PROC_2
|
||||||
|
|
||||||
|
/*
|
||||||
;!FIXIT double 2
|
;!FIXIT double 2
|
||||||
;R09
|
;R09
|
||||||
;_mRestorePath
|
;_mRestorePath
|
||||||
@ -1234,6 +1248,121 @@ FRC000H: LD A,(DE)
|
|||||||
|
|
||||||
RET
|
RET
|
||||||
;
|
;
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
;-----------------------------------------------------------------------
|
||||||
|
_TST_PROC:
|
||||||
|
;!FIXIT double 1
|
||||||
|
CALL GETMEM
|
||||||
|
JP C,ERREXE0
|
||||||
|
LD (EXE_MEM),A
|
||||||
|
EXX
|
||||||
|
POP DE ;ᨬ ¥¬ á® á⥪ ¤à¥á ¢®§¢à â
|
||||||
|
LD HL,#0000
|
||||||
|
ADD HL,SP
|
||||||
|
LD SP,(EXSTACK)
|
||||||
|
PUSH HL
|
||||||
|
PUSH DE
|
||||||
|
IN A,(SLOT3)
|
||||||
|
LD D,A
|
||||||
|
IN A,(SLOT2)
|
||||||
|
LD E,A
|
||||||
|
IN A,(SLOT1)
|
||||||
|
PUSH DE
|
||||||
|
PUSH AF
|
||||||
|
LD (EXSTACK),SP
|
||||||
|
LD SP,HL
|
||||||
|
EXX
|
||||||
|
; <20>… ‘Ž•<C5BD>€<EFBFBD>Ÿ…’‘Ÿ DE ¯¥à¥¤ ¢ë§®¢®¬ BIOS, ¡¨®á ¯®ª ¥£® ¨ ¥ ¯®àâ¨â
|
||||||
|
LD A,(EXE_MEM)
|
||||||
|
LD DE,RAMMAP
|
||||||
|
LD BC,0*256 + BIOS.GetMemPage
|
||||||
|
RST ToBIOS
|
||||||
|
LD (DE),A
|
||||||
|
INC DE
|
||||||
|
LD A,(EXE_MEM)
|
||||||
|
LD BC,1*256 + BIOS.GetMemPage
|
||||||
|
RST ToBIOS
|
||||||
|
LD (DE),A
|
||||||
|
INC DE
|
||||||
|
LD A,(EXE_MEM)
|
||||||
|
LD BC,2*256 + BIOS.GetMemPage
|
||||||
|
RST ToBIOS
|
||||||
|
LD (DE),A
|
||||||
|
INC DE
|
||||||
|
LD A,(EXE_MEM)
|
||||||
|
LD BC,3*256 + BIOS.GetMemPage
|
||||||
|
RST ToBIOS
|
||||||
|
LD (DE),A
|
||||||
|
;^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^;
|
||||||
|
LD HL,(CMDLINE)
|
||||||
|
LD DE,CORE_BUFFERS.SECBUF+1
|
||||||
|
CALL SCOPYS
|
||||||
|
LD A,#80 ;!HARDCODE cmd line size
|
||||||
|
SUB B
|
||||||
|
LD (CORE_BUFFERS.SECBUF),A
|
||||||
|
;R02
|
||||||
|
LD SP,CORE_BUFFERS.EXEBUFF+510 ;‚áâ ¢«ï¥âáï ¢ SHARED_PAGE
|
||||||
|
;
|
||||||
|
LD A,SHARED_PAGE
|
||||||
|
OUT (SLOT1),A
|
||||||
|
OUT (SLOT2),A
|
||||||
|
OUT (SLOT3),A
|
||||||
|
LD HL,(CORE_BUFFERS.EXEBUFF.LD_ADDR)
|
||||||
|
LD DE,RAMMAP
|
||||||
|
LD A,H
|
||||||
|
AND #C0
|
||||||
|
CP #40
|
||||||
|
JR Z,FR4000
|
||||||
|
CP #80
|
||||||
|
JR Z,FR8000
|
||||||
|
CP #C0
|
||||||
|
JR Z,FRC000
|
||||||
|
FR4000: LD A,(DE)
|
||||||
|
OUT (SLOT1),A
|
||||||
|
INC DE
|
||||||
|
FR8000: LD A,(DE)
|
||||||
|
OUT (SLOT2),A
|
||||||
|
INC DE
|
||||||
|
FRC000: LD A,(DE)
|
||||||
|
OUT (SLOT3),A
|
||||||
|
CALL M_PSP
|
||||||
|
|
||||||
|
LD HL,(CORE_BUFFERS.EXEBUFF.OFFCOD2)
|
||||||
|
LD IX,(CORE_BUFFERS.EXEBUFF.OFFCOD1)
|
||||||
|
LD B,Dss.Move_FP.FrStart
|
||||||
|
LD A,(EXE_FM)
|
||||||
|
CALL MOVE_FP
|
||||||
|
;R02
|
||||||
|
LD SP,#403F ;!HARDCODE STACK before start EXE. “áâ ¢«¨¢ ¥âáï ª®£¤ ¢®âªãâë SHARED_PAGE
|
||||||
|
;
|
||||||
|
_ret+1: JP 0
|
||||||
|
;
|
||||||
|
|
||||||
|
_TST_PROC_2:
|
||||||
|
;!FIXIT double 2
|
||||||
|
;R09
|
||||||
|
;_mRestorePath
|
||||||
|
;
|
||||||
|
LD SP,(CORE_BUFFERS.EXEBUFF.SP_REG)
|
||||||
|
LD HL,(CORE_BUFFERS.EXEBUFF.LD_ADDR)
|
||||||
|
LD DE,#0080
|
||||||
|
AND A
|
||||||
|
SBC HL,DE
|
||||||
|
EX DE,HL
|
||||||
|
LD XH,D
|
||||||
|
LD XL,E
|
||||||
|
LD HL,(CORE_BUFFERS.EXEBUFF.PC_REG)
|
||||||
|
LD DE,RETFAR ; ¤à¥á ¯/¯ "¥®¦¨¤ ®¥ § ¢¥à襨¥ ¯à®æ¥áá "
|
||||||
|
PUSH DE
|
||||||
|
PUSH HL
|
||||||
|
|
||||||
|
_mRestorePath
|
||||||
|
|
||||||
|
RET
|
||||||
|
;
|
||||||
|
;-----------------------------------------------------------------------
|
||||||
|
|
||||||
;/////////////////////////////////////////////////////////////////////
|
;/////////////////////////////////////////////////////////////////////
|
||||||
; ”ãªæ¨ï #41. ‡ ¢¥àè¨âì ¯à®£à ¬¬ã (¯à®æ¥áá).
|
; ”ãªæ¨ï #41. ‡ ¢¥àè¨âì ¯à®£à ¬¬ã (¯à®æ¥áá).
|
||||||
@ -1322,7 +1451,7 @@ M_PSP: LD HL,(CORE_BUFFERS.EXEBUFF.LD_ADDR)
|
|||||||
LD (HL),B
|
LD (HL),B
|
||||||
INC HL
|
INC HL
|
||||||
;!FIXIT âãâ ¢®ááâ ¢«¨¢ âì ¯à ¢¨«ìë© ª â «®£
|
;!FIXIT âãâ ¢®ááâ ¢«¨¢ âì ¯à ¢¨«ìë© ª â «®£
|
||||||
CALL CURRDSK
|
CALL CURRDSK_FN
|
||||||
ADD A,'A'
|
ADD A,'A'
|
||||||
LD (HL),A
|
LD (HL),A
|
||||||
INC HL
|
INC HL
|
||||||
@ -1330,7 +1459,7 @@ M_PSP: LD HL,(CORE_BUFFERS.EXEBUFF.LD_ADDR)
|
|||||||
LD (HL),A
|
LD (HL),A
|
||||||
INC HL
|
INC HL
|
||||||
PUSH HL
|
PUSH HL
|
||||||
CALL CURRDIR
|
CALL CURRDIR_FN
|
||||||
;
|
;
|
||||||
POP HL
|
POP HL
|
||||||
XOR A
|
XOR A
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
474
|
483
|
||||||
@ -15,7 +15,8 @@ DSS_MAX_DRIVES_AMOUNT EQU 26
|
|||||||
DEFINE TABisSPACES 0
|
DEFINE TABisSPACES 0
|
||||||
DEFINE EnoughtOnly_LF 0
|
DEFINE EnoughtOnly_LF 0
|
||||||
DEFINE CLASSIC_CURSOR 0
|
DEFINE CLASSIC_CURSOR 0
|
||||||
DEFINE SAVE_PATH_MACRO 0
|
DEFINE SAVE_PATH_MACRO 0 ;\____ «¨¡® â®, «¨¡® â®
|
||||||
|
DEFINE SAVE_PATH_CODE 1 ;/
|
||||||
DEFINE MINIMUM_BIOS_VERSION 2*256 + 55 ; version 2.55
|
DEFINE MINIMUM_BIOS_VERSION 2*256 + 55 ; version 2.55
|
||||||
;
|
;
|
||||||
;-------------------[MEMORY]-------------------------;
|
;-------------------[MEMORY]-------------------------;
|
||||||
@ -32,7 +33,7 @@ DRVPAGE EQU 3
|
|||||||
DEFINE USING_MEMPAGES 4 ; à §¬¥à ¡«®ª ¤®¯®«¨â¥«ìëå áâà ¨æ
|
DEFINE USING_MEMPAGES 4 ; à §¬¥à ¡«®ª ¤®¯®«¨â¥«ìëå áâà ¨æ
|
||||||
COREPAGE EQU 4 ; ® ®â¤¥«ì® ¨ ¥ á ¡«®ª®¬ ¢ëè¥.
|
COREPAGE EQU 4 ; ® ®â¤¥«ì® ¨ ¥ á ¡«®ª®¬ ¢ëè¥.
|
||||||
;-----------------------------------------------------------------------
|
;-----------------------------------------------------------------------
|
||||||
DIRECTORY_PATH_LENGTH EQU 256 ; '\' + 1..255
|
DIRECTORY_PATH_LENGTH EQU 256 ; '\' + 255, 0
|
||||||
ENVIRONMENT_STRING_LENGTH EQU 255
|
ENVIRONMENT_STRING_LENGTH EQU 255
|
||||||
|
|
||||||
TXTADDR EQU #C000
|
TXTADDR EQU #C000
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user