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

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 ; ¢ë室: A - ª®¤ ®è¨¡ª¨, ¥á«¨ CF=1
;///////////////////////////////////////////////////////////////////// ;/////////////////////////////////////////////////////////////////////
Func_1E:ex de,hl ; de=ªã¤  Func_1E:ex de,hl ; de=ªã¤ 
ld hl,T1510 ; ®âªã¤  ; DIRSPEC ld hl,T1510 ; ŽâŞă¤  ; CurrentDirectory
ld a,(hl) ld a,(hl)
or a or a
ldi ldi

File diff suppressed because it is too large Load Diff

View File

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

View File

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

View File

@ -378,8 +378,8 @@ 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, 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 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 ; 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, 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
@ -405,8 +405,8 @@ ADRST10: ;DS 512 ;,0
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,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 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 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,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

View File

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

View File

@ -38,7 +38,7 @@ RESERVED2 BLOCK 490,0
.DIR_CLUSTER: WORD #0000 ;+36 DIRECTORY CLUSTER .DIR_CLUSTER: WORD #0000 ;+36 DIRECTORY CLUSTER
.HANDLE: WORD #0000 ;+38 HANDLE NUMBER .HANDLE: WORD #0000 ;+38 HANDLE NUMBER
.DRIVE: BYTE #00 ;+40 DRIVE OR CURRENT .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 .TASK_NUM: BYTE #00 ;+42 TASK
.EMPTY: BYTE #00 ;+43 EMPTY .EMPTY: BYTE #00 ;+43 EMPTY
ENDS ENDS

View File

@ -1 +1 @@
454 474

View File

@ -15,7 +15,7 @@ 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 1 DEFINE SAVE_PATH_MACRO 0
DEFINE MINIMUM_BIOS_VERSION 2*256 + 55 ; version 2.55 DEFINE MINIMUM_BIOS_VERSION 2*256 + 55 ; version 2.55
; ;
;-------------------[MEMORY]-------------------------; ;-------------------[MEMORY]-------------------------;
@ -32,8 +32,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
DIRSPEC.DEPTH EQU 256 ; '\' + 1..255
ENVIRONMENT_STRING_LENGTH EQU 255 ENVIRONMENT_STRING_LENGTH EQU 255
TXTADDR EQU #C000 TXTADDR EQU #C000

View File

@ -1 +1 @@
84 85

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