промежуточное

This commit is contained in:
Anatoliy Belyanskiy 2023-10-13 23:24:31 +10:00
parent f236cf5bcf
commit 33b49c9f4d
11 changed files with 1289 additions and 1207 deletions

View File

@ -3845,7 +3845,7 @@ A227F: ;ld (hl),'\' ; ;
; ¢ë室: A - ª®¤ ®è¨¡ª¨, ¥á«¨ CF=1
;/////////////////////////////////////////////////////////////////////
Func_1E:ex de,hl ; de=ªã¤ 
ld hl,T1510 ; ®âªã¤  ; DIRSPEC
ld hl,T1510 ; ŽâŞă¤  ; CurrentDirectory
ld a,(hl)
or a
ldi

File diff suppressed because it is too large Load Diff

View File

@ -548,6 +548,11 @@ TSTSIZE XOR A
LD (READ.COD),A
RET
; HL - ADDRESS
; DE - SIZE
; A - FM
READ_FN:
; _mSavePath 1
; HL - ADDRESS
; DE - SIZE
; A - FM

View File

@ -159,7 +159,7 @@ CURRDSK: LD A,(FatBuffer.DRIVE)
; A - ª®¤ ®è¨¡ª¨, ¥á«¨ CF=1
;/////////////////////////////////////////////////////////////////////
DISKINF:
CP #FF
CP #FF ; !FIXIT WorkDirectory
JR Z,CURRDS ;R06
CALL CHNDISK ;R06
RET C ;R06
@ -562,9 +562,18 @@ FatBuffer:
;
;!TODO ª ¡ãä¥à ¬!
DIRSPEC: DB '\'
BLOCK DIRSPEC.DEPTH
;
CurrentDirectory: DB '\'
.DEPTH: EQU DIRECTORY_PATH_LENGTH
BLOCK CurrentDirectory.DEPTH,0 ; ­¥ .DEPTH-1 ç⮡ ¡ë« 0 ¢ ª®­æ¥
IF SAVE_PATH_MACRO
WorkDirectory: DB '\'
.DEPTH: EQU DIRECTORY_PATH_LENGTH
BLOCK WorkDirectory.DEPTH,0 ; ­¥ .DEPTH-1 ç⮡ ¡ë« 0 ¢ ª®­æ¥
ELSE
WorkDirectory EQU CurrentDirectory
.DEPTH EQU CurrentDirectory.DEPTH
ENDIF
;R11
; !TODO ¯®ç¨­¨âì
@ -620,7 +629,7 @@ BACK_CUR_PATH:
PUSH AF
LD HL,TMP_CURDIR_AUTO
CALL CHDIR.tmp
CALL CHDIR
; ¯®ç¥¬ã ­¥ POP AF : OUT (SLOT3),A
//POP BC

View File

@ -378,8 +378,8 @@ 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 DELETE, 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 ; 2 14..1D
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
@ -405,8 +405,8 @@ ADRST10: ;DS 512 ;,0
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 DELETE, 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
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

View File

@ -23,6 +23,7 @@
//////////////////////////////////////////////////////////////////////
; !FIXIT âãâ ®¤­¨ § âã¯ë ¨ ¤¥¡¨«¨§¬
; ”ã­ªæ¨ï #47. <20>®«ã祭¨¥ ¨­ä®à¬ æ¨¨ ¯à¨«®¦¥­¨ï.
;
; ¢å®¤: HL - ¡ãä¥à ¤ ­­ëå
@ -40,11 +41,12 @@
//////////////////////////////////////////////////////////////////////
;LAST_PSP_PTR: DW 0
APPINFO: INC B
APPINF0: DJNZ APPINF1
EX DE,HL
;
DJNZ .FN1
; ¯®«ã祭¨¥ ¯ à ¬¥â஢ ª®¬ ­¤­®© áâப¨ EX DE,HL
XOR A
LD (DE),A
LD HL,(LAST_PSP_PTR)
LD HL,(.LAST_PSP_PTR)
LD C,(HL)
INC C
RET Z
@ -53,13 +55,11 @@ APPINF0: DJNZ APPINF1
AND A
RET
; <20>®«ã祭¨¥ ¯ à ¬¥â஢ ª®¬ ­¤­®© áâப¨
APPINF1:
DJNZ APPINF2
.FN1: DJNZ .FN2
; ¯®«ã祭¨¥ ¯®«­®£® ¯ã⨠ª ª â «®£ã ¯à®£à ¬¬ë
EX DE,HL
LAST_PSP_PTR+1:
.LAST_PSP_PTR+1:
LD HL,0
LD C,(HL)
INC HL
ADD HL,BC
@ -79,6 +79,10 @@ LAST_PSP_PTR+1:
POP BC
AND A
SBC HL,BC
;R10 ;[x] ¬®£«® ¢áñ ¢ ª®á¬®á ã«¥â¥âì
LD A,DSS_Error.sys.COMMON_ERROR
JR C,.error
;
LD A,B ;EX HL,A,BC
LD B,H
LD H,A
@ -89,25 +93,29 @@ LAST_PSP_PTR+1:
XOR A
LD (DE),A
RET
; <20>®«ã祭¨¥ ¯®«­®£® ¯ã⨠ª ª â «®£ã ¯à®£à ¬¬ë
APPINF2:
DJNZ APPINF3
;
.FN2: DJNZ .FN3
; ¯®«ã祭¨¥ ¯®«­®£® ¯ã⨠¨ ¨¬¥­¨ ä ©« 
EX DE,HL
LD HL,(LAST_PSP_PTR)
LD HL,(.LAST_PSP_PTR)
LD C,(HL)
INC HL
ADD HL,BC
INC HL
INC HL
APINF2 LD A,(HL)
;
.loop LD A,(HL)
LDI
OR A
JR NZ,APINF2
JR NZ,.loop
;
RET
APPINF3 LD A,DSS_Error.sys.INVALID_FUNCTION
SCF
;
.FN3:
;
; ®è¨¡ª 
LD A,DSS_Error.sys.INVALID_FUNCTION
.error: SCF
RET
//////////////////////////////////////////////////////////////////////
@ -337,7 +345,7 @@ PATH_YEP: XOR A
PUSH HL
PUSH BC
LD HL,(NM_PATH)
LD BC,#00FF ; !FIXIT £«ã¡¨­  ¡ãä¥à  ­¥ § ¢¨á¨â ®â DIRSPEC.DEPTH
LD BC,#00FF ; !FIXIT £«ã¡¨­  ¡ãä¥à  ­¥ § ¢¨á¨â ®â CurrentDirectory.DEPTH
CPIR
DEC HL
EX DE,HL
@ -687,7 +695,7 @@ FINDPATH:
PUSH BC
EX DE,HL
CALL Z,GOTO_CURDIR
CALL CHDIR.tmp
CALL CHDIR
JR C,.BADPATH
LD HL,CORE_BUFFERS.EXEBUFF
LD DE,MASKARE
@ -712,7 +720,7 @@ FINDPATH:
GOTO_CURDIR:
PUSH HL
LD HL,TMP_CURDIR
CALL CHDIR.tmp
CALL CHDIR
POP HL
RET
@ -828,7 +836,7 @@ EXEC: _mSavePath 1
; ¯à¨ ¢ë室¥ á ®è¨¡ª®©, ¢ ॣ¨áâॠ€ - ª®¤ ®è¨¡ª¨
EXEC_1: LD (CMDLINE),HL
LD A,#01 ; %7600000R = !FAT_ATTR ;!HARDCODE
LD (ACCESS),A
LD (F_FIRST.ACCESS),A
CALL GETWORD
RET C
LD HL,TMPNAME
@ -839,7 +847,7 @@ EXEC_1: LD (CMDLINE),HL
LD A,DSS_Error.sys.FILE_NOT_FOUND
RET C
CALL INCTASK ;R08
CALL OPENEXE
CALL OPEN.FILE
JR NC,.noError
CALL DECTASK ;R08
AND A
@ -903,7 +911,7 @@ EXEC02: LD (EXE_FM),A
;
;R09
_mRestorStackAfterRestorePath
_mRestorePath
;_mRestorePath
;R09
;
LD DE,(CORE_BUFFERS.EXEBUFF.LOADER)
@ -1017,7 +1025,6 @@ 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
@ -1041,7 +1048,7 @@ FRC000: LD A,(DE)
;!FIXIT double 2
;R09
_mRestorePath
;_mRestorePath
;
LD SP,(CORE_BUFFERS.EXEBUFF.SP_REG)
LD HL,(CORE_BUFFERS.EXEBUFF.LD_ADDR)
@ -1055,6 +1062,9 @@ FRC000: LD A,(DE)
LD DE,RETFAR ;  ¤à¥á ¯/¯ "­¥®¦¨¤ ­­®¥ § ¢¥à襭¨¥ ¯à®æ¥áá "
PUSH DE
PUSH HL
_mRestorePath
RET
;
;[ ]
@ -1205,7 +1215,7 @@ FRC000H: LD A,(DE)
;!FIXIT double 2
;R09
_mRestorePath
;_mRestorePath
;
LD SP,(CORE_BUFFERS.EXEBUFF.SP_REG)
LD HL,(CORE_BUFFERS.EXEBUFF.LD_ADDR)
@ -1219,6 +1229,9 @@ FRC000H: LD A,(DE)
LD DE,RETFAR
PUSH DE
PUSH HL
_mRestorePath
RET
;
@ -1308,6 +1321,7 @@ M_PSP: LD HL,(CORE_BUFFERS.EXEBUFF.LD_ADDR)
INC HL
LD (HL),B
INC HL
;!FIXIT âãâ ¢®ááâ ­ ¢«¨¢ âì ¯à ¢¨«ì­ë© ª â «®£
CALL CURRDSK
ADD A,'A'
LD (HL),A
@ -1317,9 +1331,10 @@ M_PSP: LD HL,(CORE_BUFFERS.EXEBUFF.LD_ADDR)
INC HL
PUSH HL
CALL CURRDIR
;
POP HL
XOR A
LD BC,#0100 ;!FIXIT ­¥â ¯à¨¢ï§ª¨ ª DIRSPEC.DEPTH
LD BC,#0100 ;!FIXIT ­¥â ¯à¨¢ï§ª¨ ª CurrentDirectory.DEPTH
CPIR ;!FIXIT ­¥â ¯à®¢¥àª¨ ­  ¢ë室 ¯® BC=0
DEC HL
DEC HL
@ -1338,7 +1353,7 @@ M_PSP: LD HL,(CORE_BUFFERS.EXEBUFF.LD_ADDR)
DEC DE
XOR A
LD (DE),A
LD (LAST_PSP_PTR),IX
LD (APPINFO.LAST_PSP_PTR),IX
;
RET

View File

@ -38,7 +38,7 @@ RESERVED2 BLOCK 490,0
.DIR_CLUSTER: WORD #0000 ;+36 DIRECTORY CLUSTER
.HANDLE: WORD #0000 ;+38 HANDLE NUMBER
.DRIVE: BYTE #00 ;+40 DRIVE OR CURRENT
.ACCESS_MODE: BYTE #00 ;+41 ACCESS MODE
.ACCESS_MODE: BYTE #00 ;+41 ACCESS MODE ¯à¨§­ ª ¨§¬¥­¥­¨ï ä ©« 
.TASK_NUM: BYTE #00 ;+42 TASK
.EMPTY: BYTE #00 ;+43 EMPTY
ENDS

View File

@ -1 +1 @@
454
474

View File

@ -15,7 +15,7 @@ DSS_MAX_DRIVES_AMOUNT EQU 26
DEFINE TABisSPACES 0
DEFINE EnoughtOnly_LF 0
DEFINE CLASSIC_CURSOR 0
DEFINE SAVE_PATH_MACRO 1
DEFINE SAVE_PATH_MACRO 0
DEFINE MINIMUM_BIOS_VERSION 2*256 + 55 ; version 2.55
;
;-------------------[MEMORY]-------------------------;
@ -32,8 +32,7 @@ DRVPAGE EQU 3
DEFINE USING_MEMPAGES 4 ; à §¬¥à ¡«®ª  ¤®¯®«­¨â¥«ì­ëå áâà ­¨æ
COREPAGE EQU 4 ; ®­  ®â¤¥«ì­® ¨ ­¥ á ¡«®ª®¬ ¢ëè¥.
;-----------------------------------------------------------------------
DIRSPEC.DEPTH EQU 256 ; '\' + 1..255
DIRECTORY_PATH_LENGTH EQU 256 ; '\' + 1..255
ENVIRONMENT_STRING_LENGTH EQU 255
TXTADDR EQU #C000

View File

@ -1 +1 @@
84
85

@ -1 +1 @@
Subproject commit 1b025338c449183aa1cfbe595994fd9ddf7feb8e
Subproject commit a7128fd1547d624249d95fdcbbb3aaa090f90357