mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-15 01:11:48 +03:00
промежуточная 2
This commit is contained in:
parent
33b49c9f4d
commit
66c77848ed
@ -176,28 +176,27 @@ CONTINUE:
|
||||
IF UNIVERSAL_BOOT
|
||||
|
||||
LD A,(DRIVE)
|
||||
LD C,#00
|
||||
RST #10
|
||||
LD C,Dss.Version
|
||||
RST ToDSS
|
||||
jp c,XFAIL.fail
|
||||
|
||||
LD A,STARTDO
|
||||
CALL DOSMESS
|
||||
|
||||
LD A,(DRIVE)
|
||||
LD B,1
|
||||
LD C,Dss.BootDSK
|
||||
RST #10
|
||||
LD BC,Dss.BootDSK.Set*256 + Dss.BootDSK
|
||||
RST ToDSS
|
||||
|
||||
LD B,0
|
||||
ELSE
|
||||
|
||||
IF ORIGINAL_DSS
|
||||
LD C,#00
|
||||
RST #10
|
||||
LD C,Dss.Version
|
||||
RST ToDSS
|
||||
ELSE
|
||||
LD A,(DRIVE)
|
||||
LD C,#00
|
||||
RST #10
|
||||
LD C,Dss.Version
|
||||
RST ToDSS
|
||||
jp c,XFAIL.fail
|
||||
ENDIF
|
||||
|
||||
@ -206,27 +205,26 @@ CONTINUE:
|
||||
|
||||
IF ORIGINAL_DSS
|
||||
LD A,(DRIVE)
|
||||
LD B,1
|
||||
LD C,Dss.BootDSK
|
||||
RST #10
|
||||
LD BC,Dss.BootDSK.Set*256 + Dss.BootDSK
|
||||
RST ToDSS
|
||||
|
||||
LD B,0
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
LD C,Dss.BootDSK
|
||||
RST #10
|
||||
RST ToDSS
|
||||
|
||||
ADD A,"A"
|
||||
|
||||
LD HL,ROOT
|
||||
LD (HL),A
|
||||
LD C,Dss.ChDir
|
||||
RST #10
|
||||
RST ToDSS
|
||||
|
||||
LD HL,PSHELL
|
||||
LD BC,Dss.Exec
|
||||
RST #10
|
||||
RST ToDSS
|
||||
LD A,NOSHELL
|
||||
JP XFAIL
|
||||
|
||||
@ -235,7 +233,7 @@ ROOT: DB 'X:\',0
|
||||
|
||||
DOSMESS CALL FMESAGE
|
||||
LD C,Dss.PChars
|
||||
RST #10
|
||||
RST ToDSS
|
||||
RET
|
||||
|
||||
XFAIL: CALL DOSMESS
|
||||
|
||||
269
DSS/DOS5.ASM
269
DSS/DOS5.ASM
@ -31,6 +31,18 @@
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
ATTRIB:
|
||||
_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
|
||||
DEC B
|
||||
JP Z,.RATTRIB
|
||||
@ -90,14 +102,27 @@ ATTRIB:
|
||||
; OUTPUT: A - FM
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
CREATE: _mSavePath 0
|
||||
;!Test Current Dir
|
||||
PUSH HL
|
||||
CALL DIR_PATH_CHECK
|
||||
POP HL
|
||||
RET C
|
||||
;
|
||||
CALL .Prepare
|
||||
RET C
|
||||
CALL SEARCH
|
||||
CALL NC,DELETE ;FILE EXIST RECREAT
|
||||
JR .DO
|
||||
;
|
||||
; INPUT: HL - "C:\DIR1\DIR2\filename.ext",#00
|
||||
; OUTPUT: A - FM
|
||||
.NEW: _mSavePath 0
|
||||
;!Test Current Dir
|
||||
PUSH HL
|
||||
CALL DIR_PATH_CHECK
|
||||
POP HL
|
||||
RET C
|
||||
;
|
||||
CALL .Prepare
|
||||
RET C
|
||||
CALL SEARCH
|
||||
@ -154,11 +179,18 @@ CREATE: _mSavePath 0
|
||||
JP MASK
|
||||
CREAT_N EQU CREATE.NEW
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
; INPUT: HL - "c:\dir\filename.ext",#00 without simbols * ?
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
DEL_FN: ;!TEST
|
||||
_mSavePath 1
|
||||
;!Test Current Dir
|
||||
PUSH HL
|
||||
CALL DIR_PATH_CHECK
|
||||
POP HL
|
||||
RET C
|
||||
;
|
||||
CALL GETWORD ; â¥áâ ¤®¯ãáâ. ¨¬ï ¨ áâà. ¤¨áª
|
||||
RET C
|
||||
LD HL,TMPNAME
|
||||
@ -213,7 +245,17 @@ DELETE: SET_PAGE_X DIRPAGE
|
||||
; INPUT: HL - "old_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
|
||||
CALL MASK
|
||||
POP DE
|
||||
@ -273,6 +315,16 @@ RENAME: PUSH DE
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
OPEN_FN:
|
||||
_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
|
||||
OPEN: LD (F_FIRST.ACCESS),A
|
||||
CALL GETWORD
|
||||
@ -319,8 +371,11 @@ OPEN: LD (F_FIRST.ACCESS),A
|
||||
RET
|
||||
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
;
|
||||
;
|
||||
;‚å®¤ë¥ § 票ï:
|
||||
; C - #12
|
||||
; A - ä ©«®¢ë© ¬ ¨¯ã«ïâ®à
|
||||
;‚ëå®¤ë¥ § 票ï:
|
||||
; A - ª®¤ ®è¨¡ª¨, ¥á«¨ CF=1
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
CLOSE_FN:
|
||||
_mSavePath 1
|
||||
@ -376,10 +431,31 @@ CLOSE: LD (F_FIRST.ACCESS),A
|
||||
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:
|
||||
;!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 (.DTABUF),DE
|
||||
LD A,B
|
||||
@ -487,9 +563,16 @@ F_NEXT:
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
;!TODO ᤥ« âì ¤«ï ª ¦¤®£® ¤à ©¢ § ¯®¬¨ ¨¥ ⥪ã饩 ¤¨à४â®à¨¨, ¯®ª âãâ § £«ãèª
|
||||
; RestoreDIR:
|
||||
CHNDISK_FN:
|
||||
CALL CHNDISK
|
||||
RET C
|
||||
PUSH AF
|
||||
CALL DIR_PATH_CHANGE.FullCurrent
|
||||
POP AF
|
||||
RET
|
||||
CHNDISK:
|
||||
;!TEST
|
||||
CALL OPENDSK
|
||||
CALL OPENDSK
|
||||
;CALL OPENDSK.force
|
||||
;
|
||||
;????? R10
|
||||
@ -516,12 +599,13 @@ CHNDISK:
|
||||
; ¢ë室: A - ª®¤ ®è¨¡ª¨, ¥á«¨ CF=1
|
||||
; !FIXIT ¬®¦¥â ¢ë©â¨ § ¯à¥¤¥«ë ¡ãä¥à ?
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
CURRDIR: EX DE,HL
|
||||
LD HL,CurrentDirectory
|
||||
CURRDIR: LD DE,WorkDirectory
|
||||
JR CURRDIR_FN.skip
|
||||
CURRDIR_FN:
|
||||
LD DE,CurrentDirectory
|
||||
.skip: EX DE,HL
|
||||
XOR A
|
||||
.loop: ;LD A,(HL)
|
||||
;OR A
|
||||
CP (HL)
|
||||
.loop: CP (HL)
|
||||
LDI
|
||||
JR NZ,.loop
|
||||
RET
|
||||
@ -778,10 +862,14 @@ PUT_D_T:
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
CHDIR_FN:
|
||||
_mSavePath 0
|
||||
; EX DE,HL
|
||||
; LD HL,OPENDIR.dir
|
||||
; LD (HL),CurrentDirectory
|
||||
; CALL CHDIR
|
||||
;!Test Current Dir
|
||||
PUSH HL
|
||||
CALL DIR_PATH_CHECK
|
||||
POP HL
|
||||
RET C
|
||||
;
|
||||
CALL CHDIR
|
||||
JP DIR_PATH_CHANGE.FullCurrent
|
||||
; RET
|
||||
;
|
||||
CHDIR: CALL GETWORD ; â¥áâ ¤®¯ãáâ. ¨¬ï ¨ áâà. ¤¨áª
|
||||
@ -801,6 +889,17 @@ CHDIR: CALL GETWORD ;
|
||||
; INPUT: HL - "C:\DIR\DIR\DIR_NAME",0
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
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 ; â¥áâ ¤®¯ãáâ. ¨¬ï ¨ áâà. ¤¨áª
|
||||
RET C
|
||||
LD HL,TMPNAME ; 8.3 ¨¬ï
|
||||
@ -965,6 +1064,17 @@ MKDIR: _mSavePath 1
|
||||
; INPUT: HL - "C:\DIR\DIR\DIR_NAME",0
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
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
|
||||
RET C
|
||||
LD HL,TMPNAME
|
||||
@ -1051,9 +1161,35 @@ RMDIR: _mSavePath 1
|
||||
LD A,DSS_Error.sys.DIR_NOT_EMPTY
|
||||
SCF
|
||||
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
|
||||
@ -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"
|
||||
; DE - DOS filename "FILENAME.EXT",0
|
||||
@ -1599,16 +1722,19 @@ FINDDIR:
|
||||
LD A,(IX+1)
|
||||
CP "."
|
||||
JP NZ,.IT_DIR
|
||||
LD HL,CurrentDirectory
|
||||
;LD HL,CurrentDirectory
|
||||
LD HL,WorkDirectory
|
||||
LD D,H
|
||||
LD E,L
|
||||
INC HL
|
||||
LD BC,CurrentDirectory.DEPTH
|
||||
;LD BC,CurrentDirectory.DEPTH
|
||||
LD BC,WorkDirectory.DEPTH
|
||||
XOR A
|
||||
CPIR ;!FIXIT ¥â ¯à®¢¥àª¨ § ¢¥à襨¥ ¯® BC=0
|
||||
DEC HL ;R09 ;[x] ¨á¯à ¢«¥ ¡ £ á ¯ àᨣ®¬ ¡ãä¥à ª â «®£
|
||||
DEC HL
|
||||
LD BC,CurrentDirectory.DEPTH
|
||||
;LD BC,CurrentDirectory.DEPTH
|
||||
LD BC,WorkDirectory.DEPTH
|
||||
LD A,'\'
|
||||
CPDR
|
||||
INC HL
|
||||
@ -1630,8 +1756,10 @@ FINDDIR:
|
||||
.ADDSPEC:
|
||||
LD E,XL
|
||||
LD D,XH
|
||||
LD HL,CurrentDirectory+1
|
||||
LD BC,CurrentDirectory.DEPTH-1
|
||||
;LD HL,CurrentDirectory+1
|
||||
;LD BC,CurrentDirectory.DEPTH-1
|
||||
LD HL,WorkDirectory+1
|
||||
LD BC,WorkDirectory.DEPTH-1
|
||||
XOR A
|
||||
CPIR ;!FIXIT ¥â ¯à®¢¥àª¨ § ¢¥à襨¥ ¯® BC=0
|
||||
DEC HL
|
||||
@ -1933,7 +2061,77 @@ SAVEDIR:
|
||||
AND A
|
||||
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
|
||||
;[END]
|
||||
|
||||
;DIRSIZE: WORD 0 ; à §¬¥à ᯨ᪠ª â «®£ size_cash_directory
|
||||
|
||||
|
||||
;!TODO ?
|
||||
|
||||
@ -551,7 +551,7 @@ TSTSIZE XOR A
|
||||
; HL - ADDRESS
|
||||
; DE - SIZE
|
||||
; A - FM
|
||||
READ_FN:
|
||||
;READ_FN:
|
||||
; _mSavePath 1
|
||||
; HL - ADDRESS
|
||||
; DE - SIZE
|
||||
|
||||
@ -141,6 +141,12 @@ NDISK11:
|
||||
; ¢å®¤: ¥â
|
||||
; ¢ë室: 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)
|
||||
AND A
|
||||
RET
|
||||
@ -160,10 +166,20 @@ CURRDSK: LD A,(FatBuffer.DRIVE)
|
||||
;/////////////////////////////////////////////////////////////////////
|
||||
DISKINF:
|
||||
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
|
||||
RET C ;R06
|
||||
CURRDS: LD HL,2
|
||||
CURRDS:
|
||||
LD HL,2
|
||||
LD BC,0
|
||||
FRESP: PUSH BC
|
||||
CALL R_F_FAT
|
||||
@ -540,7 +556,7 @@ DOS_X_Error:
|
||||
;!TODO ª ¡ãä¥à ¬!
|
||||
FatBuffer:
|
||||
.MSG: DB 'FAT'
|
||||
.READ_PG: DB #00
|
||||
.READ_PG: DB #00 ;!TODO Ľ ¨áŻŽŤě§ăîâáď ĽŞŽâŽŕëĽ § 缨ď, Ž § ¤ăŹŞ ĽŻŤŽĺ ď)))
|
||||
.BLOCK: DB #00
|
||||
.DIR_CLU: DW #0000
|
||||
.DRIVE: DB #FF
|
||||
@ -562,11 +578,13 @@ FatBuffer:
|
||||
;
|
||||
|
||||
;!TODO ª ¡ãä¥à ¬!
|
||||
CurrentPath: DB 'X'
|
||||
DB ':'
|
||||
CurrentDirectory: DB '\'
|
||||
.DEPTH: EQU DIRECTORY_PATH_LENGTH
|
||||
BLOCK CurrentDirectory.DEPTH,0 ; ¥ .DEPTH-1 ç⮡ ¡ë« 0 ¢ ª®æ¥
|
||||
|
||||
IF SAVE_PATH_MACRO
|
||||
IF SAVE_PATH_CODE
|
||||
WorkDirectory: DB '\'
|
||||
.DEPTH: EQU DIRECTORY_PATH_LENGTH
|
||||
BLOCK WorkDirectory.DEPTH,0 ; ¥ .DEPTH-1 ç⮡ ¡ë« 0 ¢ ª®æ¥
|
||||
@ -597,7 +615,7 @@ SAVE_CUR_PATH
|
||||
LD A,":"
|
||||
LD (HL),A
|
||||
INC HL
|
||||
CALL CURRDIR
|
||||
CALL CURRDIR_FN
|
||||
|
||||
; ¯®ç¥¬ã ¥ POP AF : OUT (SLOT3),A
|
||||
//POP BC
|
||||
|
||||
@ -377,16 +377,16 @@ GO_ZERO EQU #0000
|
||||
ADRST10: ;DS 512 ;,0
|
||||
;...............................................[LOW ADDRESS ]:
|
||||
; 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 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 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 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 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 ENVIRON, low APPINFO, low NOPS, low NOPS, low NOPS, low NOPS, low NOPS, low NOPS, low NOPS, low NOPS ; 7 46..4F
|
||||
DB low SETVMOD, low GETVMOD, low LOCATE, low CURSOR, low SELPAGE, low SCROLL, low CLEAR, low RDCHAR, low WRCHAR, low WINCOPY ; 8 50..59
|
||||
DB low WINREST, low PUTCHAR, low PCHARS, low NOPS, low NOPS, low PRINT ; 9 5A..5F
|
||||
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 ; 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 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 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 ENVIRON, low APPINFO, low NOPS, low NOPS, low NOPS, low NOPS, low NOPS, low NOPS, low NOPS, low NOPS ; 7 46..4F
|
||||
DB low SETVMOD, low GETVMOD, low LOCATE, low CURSOR, low SELPAGE, low SCROLL, low CLEAR, low RDCHAR, low WRCHAR, low WINCOPY ; 8 50..59
|
||||
DB low WINREST, low PUTCHAR, low PCHARS, low NOPS, low NOPS, low PRINT ; 9 5A..5F
|
||||
|
||||
IFN SHORT_RSTx10_TABLE
|
||||
;[ ] R09
|
||||
@ -404,16 +404,16 @@ ADRST10: ;DS 512 ;,0
|
||||
;[ ] R09
|
||||
ENDIF
|
||||
;...............................................[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 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 CURRDIR,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 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 ENVIRON,high APPINFO,high NOPS, high NOPS, high NOPS, high NOPS, high NOPS, high NOPS, high NOPS, high NOPS
|
||||
DB high SETVMOD,high GETVMOD,high LOCATE, high CURSOR, high SELPAGE,high SCROLL, high CLEAR, high RDCHAR, high WRCHAR, high WINCOPY
|
||||
DB high WINREST,high PUTCHAR,high PCHARS, high NOPS, high NOPS, high PRINT
|
||||
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 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_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 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 ENVIRON, high APPINFO, high NOPS, high NOPS, high NOPS, high NOPS, high NOPS, high NOPS, high NOPS, high NOPS
|
||||
DB high SETVMOD, high GETVMOD, high LOCATE, high CURSOR, high SELPAGE,high SCROLL, high CLEAR, high RDCHAR, high WRCHAR, high WINCOPY
|
||||
DB high WINREST, high PUTCHAR, high PCHARS, high NOPS, high NOPS, high PRINT
|
||||
|
||||
IFN SHORT_RSTx10_TABLE
|
||||
;[ ] R09
|
||||
|
||||
151
DSS/EXECUTE.ASM
151
DSS/EXECUTE.ASM
@ -672,7 +672,7 @@ FINDPATH:
|
||||
SET_PAGE_X ENVPAGE
|
||||
PUSH AF
|
||||
|
||||
CALL CURRDSK
|
||||
CALL CURRDSK_FN
|
||||
ADD A,"A"
|
||||
LD HL,TMP_CURDIR
|
||||
LD (HL),A
|
||||
@ -680,7 +680,7 @@ FINDPATH:
|
||||
LD A,":"
|
||||
LD (HL),A
|
||||
INC HL
|
||||
CALL CURRDIR
|
||||
CALL CURRDIR_FN
|
||||
|
||||
CALL MAKE_PATH_ARRAY
|
||||
LD HL,PATH_PNT_ARRAY
|
||||
@ -769,6 +769,7 @@ ENVPATH DB "PATH=",0
|
||||
; !TODO ‘„…‹€’œ ‘’<E28098>“Š’“<E28099>މ ¨ ®¡®§ ç¨âì áâà ¨æã
|
||||
TMP_CURDIR_AUTO EQU #FB00
|
||||
PATH_PNT_ARRAY EQU #FC80
|
||||
; !FIXIT ¥ 㦮 ¥á«¨ SAVE_PATH_MACRO = 1
|
||||
TMP_CURDIR EQU #FD00
|
||||
ENVTEMP EQU #FE00
|
||||
|
||||
@ -949,6 +950,10 @@ NOINK: LD A,H
|
||||
JP NZ,ERREXE0
|
||||
LD B,L
|
||||
|
||||
LD HL,_RET_1
|
||||
LD (_ret),HL
|
||||
JP _TST_PROC
|
||||
/*
|
||||
;!FIXIT double 1
|
||||
CALL GETMEM
|
||||
JP C,ERREXE0
|
||||
@ -1031,10 +1036,12 @@ FRC000: LD A,(DE)
|
||||
LD A,(EXE_FM)
|
||||
CALL MOVE_FP
|
||||
;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
|
||||
LD H,A
|
||||
LD L,A
|
||||
@ -1045,7 +1052,8 @@ FRC000: LD A,(DE)
|
||||
CALL READ ; ç⥨¥ ¨§ ä ©«
|
||||
LD A,(EXE_FM) ; ¤¥áªà. ä ©«
|
||||
CALL CLOSE ; § ªàëâì ä ©«
|
||||
|
||||
JP _TST_PROC_2
|
||||
/*
|
||||
;!FIXIT double 2
|
||||
;R09
|
||||
;_mRestorePath
|
||||
@ -1067,6 +1075,7 @@ FRC000: LD A,(DE)
|
||||
|
||||
RET
|
||||
;
|
||||
*/
|
||||
;[ ]
|
||||
RETFAR: LD B,DSS_Error.sys.UNEXPECTED_APP_TRMN
|
||||
JP LEAVE ; § ¢¥àè¨âì ¯à®£à ¬¬ã (¯à®æ¥áá)
|
||||
@ -1121,7 +1130,10 @@ PRELOAD: EX DE,HL
|
||||
OR L
|
||||
JR Z,NOINK2
|
||||
INC B
|
||||
NOINK2:
|
||||
NOINK2: LD HL,_RET_2
|
||||
LD (_ret),HL
|
||||
JR _TST_PROC
|
||||
/*
|
||||
;!FIXIT double 1
|
||||
CALL GETMEM
|
||||
JP C,ERREXE0
|
||||
@ -1204,15 +1216,17 @@ FRC000H: LD A,(DE)
|
||||
LD A,(EXE_FM)
|
||||
CALL MOVE_FP
|
||||
;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 A,(EXE_FM) ; ¤¥áªà. ä ©«
|
||||
CALL READ ; ç⥨¥ ¨§ ä ©«
|
||||
JP _TST_PROC_2
|
||||
|
||||
/*
|
||||
;!FIXIT double 2
|
||||
;R09
|
||||
;_mRestorePath
|
||||
@ -1234,6 +1248,121 @@ FRC000H: LD A,(DE)
|
||||
|
||||
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. ‡ ¢¥àè¨âì ¯à®£à ¬¬ã (¯à®æ¥áá).
|
||||
@ -1322,7 +1451,7 @@ M_PSP: LD HL,(CORE_BUFFERS.EXEBUFF.LD_ADDR)
|
||||
LD (HL),B
|
||||
INC HL
|
||||
;!FIXIT âãâ ¢®ááâ ¢«¨¢ âì ¯à ¢¨«ìë© ª â «®£
|
||||
CALL CURRDSK
|
||||
CALL CURRDSK_FN
|
||||
ADD A,'A'
|
||||
LD (HL),A
|
||||
INC HL
|
||||
@ -1330,7 +1459,7 @@ M_PSP: LD HL,(CORE_BUFFERS.EXEBUFF.LD_ADDR)
|
||||
LD (HL),A
|
||||
INC HL
|
||||
PUSH HL
|
||||
CALL CURRDIR
|
||||
CALL CURRDIR_FN
|
||||
;
|
||||
POP HL
|
||||
XOR A
|
||||
|
||||
@ -1 +1 @@
|
||||
474
|
||||
483
|
||||
@ -15,7 +15,8 @@ DSS_MAX_DRIVES_AMOUNT EQU 26
|
||||
DEFINE TABisSPACES 0
|
||||
DEFINE EnoughtOnly_LF 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
|
||||
;
|
||||
;-------------------[MEMORY]-------------------------;
|
||||
@ -32,7 +33,7 @@ DRVPAGE EQU 3
|
||||
DEFINE USING_MEMPAGES 4 ; à §¬¥à ¡«®ª ¤®¯®«¨â¥«ìëå áâà ¨æ
|
||||
COREPAGE EQU 4 ; ® ®â¤¥«ì® ¨ ¥ á ¡«®ª®¬ ¢ëè¥.
|
||||
;-----------------------------------------------------------------------
|
||||
DIRECTORY_PATH_LENGTH EQU 256 ; '\' + 1..255
|
||||
DIRECTORY_PATH_LENGTH EQU 256 ; '\' + 255, 0
|
||||
ENVIRONMENT_STRING_LENGTH EQU 255
|
||||
|
||||
TXTADDR EQU #C000
|
||||
|
||||
Loading…
Reference in New Issue
Block a user