This commit is contained in:
Tolik Trek 2026-04-26 20:53:06 +10:00
parent 6e8b58f01c
commit 2835c7f34c
6 changed files with 71 additions and 104 deletions

View File

@ -290,10 +290,10 @@ RAMDTBL EQU LOGDRV + DRIVES_DRIVER.LOGDRV.Size
MODULE OLD_TABLES MODULE OLD_TABLES
; ;
;--------------------------[shared.asm table]--------------------------; ;--------------------------[shared.asm table]--------------------------;
DEVICE EQU @DRIVES_DRIVER.RAMDTBL + @DRIVES_DRIVER.RAMDTBL.Size DEVICE EQU DRIVES_DRIVER.RAMDTBL + DRIVES_DRIVER.RAMDTBL.Size
.TBL_Entry EQU @DRIVES_DRIVER.DEVICE.TBL_Entry .TBL_Entry EQU DRIVES_DRIVER.DEVICE.TBL_Entry
.Size: EQU @DRIVES_DRIVER.DEVICE.Size .Size: EQU DRIVES_DRIVER.DEVICE.Size
.End EQU @DRIVES_DRIVER.DEVICE.End .End EQU DRIVES_DRIVER.DEVICE.End
;----------------------------------------------------------------------; ;----------------------------------------------------------------------;
; ;
@ -305,8 +305,8 @@ DEVICE EQU @DRIVES_DRIVER.RAMDTBL + @DRIVES_DRIVER.RAMDTBL.Size
;+09 FREE ;+09 FREE
;+15 ;+15
LOGDRV EQU DEVICE + DEVICE.End LOGDRV EQU DEVICE + DEVICE.End
.TBL_Entry EQU @DRIVES_DRIVER.LOGDRV.TBL_Entry .TBL_Entry EQU DRIVES_DRIVER.LOGDRV.TBL_Entry
.Size EQU @DRIVES_DRIVER.LOGDRV.Size .Size EQU DRIVES_DRIVER.LOGDRV.Size
;----------------------------------------------------------------------; ;----------------------------------------------------------------------;
; ;
@ -315,8 +315,8 @@ LOGDRV EQU DEVICE + DEVICE.End
; <E28099>ˆ€ ‘ŽŽ’‚…’‘’‚ˆŸ Œ…†„“ ”ˆ‡ˆ—…‘ŠˆŒ <20>ŽŒ…<C592>ŽŒ <20>€Œ„ˆŠ€ ˆ …ƒŽ RAM-DISK ID ; <E28099>ˆ€ ‘ŽŽ’‚…’‘’‚ˆŸ Œ…†„“ ”ˆ‡ˆ—…‘ŠˆŒ <20>ŽŒ…<C592>ŽŒ <20>€Œ„ˆŠ€ ˆ …ƒŽ RAM-DISK ID
; Log Number: DB RAM_Drive_Log_Number, RAM_Drive_ID ;(BIOS 0-15), (Block ID for BIOS) ; Log Number: DB RAM_Drive_Log_Number, RAM_Drive_ID ;(BIOS 0-15), (Block ID for BIOS)
RAMDTBL EQU LOGDRV + DRIVES_DRIVER.LOGDRV.Size RAMDTBL EQU LOGDRV + DRIVES_DRIVER.LOGDRV.Size
.TBL_Entry EQU @DRIVES_DRIVER.RAMDTBL.TBL_Entry .TBL_Entry EQU DRIVES_DRIVER.RAMDTBL.TBL_Entry
.Size EQU @DRIVES_DRIVER.RAMDTBL.Size .Size EQU DRIVES_DRIVER.RAMDTBL.Size
; RAMDTBL: DUP MAX_RAMDRIVES * RAMDTBL.TBL_Entry ; RAMDTBL: DUP MAX_RAMDRIVES * RAMDTBL.TBL_Entry
; DB #FF ; DB #FF
; EDUP ; EDUP

View File

@ -2293,74 +2293,6 @@ LOAD_NEXT_DIR_PART_TO_DIR_CACHE:
;----------------------------------------------------------------------;
; [ ] big dir ;!FIXIT ­ ç¨­ âì ¯à®å®¤ á ­ ç «  ¤¨à¥ªâ®à¨¨ ¢á¥£¤ , ç⮡ ­¥ § å« ¬«ïâì
; !FIXIT   â®ç­® «¨ ¢ ­ã«¥¢®¬ FM ª®®à¤¨­ âë ­ã¦­®© ¤¨à¥ªâ®à¨¨?
; ᪮¯¨à®¢ âì § ¯¨áì ¢ ᯨ᮪ ¤¨áª  (ª â «®£ ) de ix iy
; ¨ á¡à®á¨âì ª¥è ª â «®£  ­  ¤¨áª
; ¢å®¤: (HANDBUF) - § ¯¨áì ª â «®£ 
; ¢ë室: DE - record index
WRITE_DIR_HANDLE:
SET_PAGE_X DIRPAGE
EX AF,AF'
LD IX,DIRPAGE.buffer ; IX
;!TEST 9/11/23 record index
EXX
LD DE,0
EXX
;
LD DE,FAT_DIRECTORY_RECORD
.loop: LD A,(IX + FAT_DIRECTORY_RECORD.NAME); IX
OR A
JR Z,.WRT_HN2
;
CP #E5
JR Z,.WRT_HN2
;
EXX
INC DE ; record index
EXX
ADD IX,DE ; IX,
JR NC,.loop ;!FIXIT ª®«¨ç¥á⢮ § ¯¨á¥© ª â «®£  = áâà ­¨æ 
;
EX AF,AF'
OUT (SLOT3),A
LD A,DSS_Error.sys.ROOT_OVERFLOW
SCF
RET
;
.WRT_HN2: EX DE,HL
LD HL,CORE_BUFFERS.HANDBUF
LD BC,CORE_BUFFERS.HANDBUF.SIZE
LDIR
EX AF,AF'
OUT (SLOT3),A
; ¯à®¢¥à塞, 㢥«¨ç¨«áï «¨ à §¬¥à ¤ ­­ëå ¤¨à¥ªâ®à¨¨
LD HL,DIRPAGE.buffer
LD BC,(SAVEDIR.DirBlkSize)
DEC BC
ADD HL,BC
AND A
SBC HL,DE
JR NC,.SAVEDIR
;
; à §¬¥à ¤ ­­ëå ¤¨à¥ªâ®à¨¨ 㢥«¨ç¨«áï
LD HL,(SAVEDIR.DirBlkSize)
LD BC,(CORE_BUFFERS.FS_Buffer.BytesPerCluster)
ADD HL,BC
LD (SAVEDIR.DirBlkSize),HL
AND A
.SAVEDIR: EXX
PUSH DE
EXX
; [ ] big dir ¯¥à¥¤ ¢ âì ®âªã¤  ¨ ᪮«ìª® ¡ ©â®¢ ¨§¬¥­¨«®áì ¢ ªíè, ç⮡ ­¥ ¯¨á âì ­  ¤¨áª «¨è­¥£®
CALL SAVEDIR
POP DE
RET
;----------------------------------------------------------------------;
;----------------------------------------------------------------------; 20 28 ;----------------------------------------------------------------------; 20 28
; FIND "MASKAREA" IN DIRECTORY ; FIND "MASKAREA" IN DIRECTORY
; ¢ë室: IY:DE - cluster number ; ¢ë室: IY:DE - cluster number
@ -2892,43 +2824,67 @@ SAVEDIR: SCF ;
;----------------------------------------------------------------------; ;----------------------------------------------------------------------;
; [ ] big dir ; [ ] big dir ;!FIXIT ­ ç¨­ âì ¯à®å®¤ á ­ ç «  ¤¨à¥ªâ®à¨¨ ¢á¥£¤ , ç⮡ ­¥ § å« ¬«ïâì
; !FIXIT   â®ç­® «¨ ¢ ­ã«¥¢®¬ FM ª®®à¤¨­ âë ­ã¦­®© ¤¨à¥ªâ®à¨¨?
; ᪮¯¨à®¢ âì § ¯¨áì ¢ ᯨ᮪ ¤¨áª  (ª â «®£ ) de ix iy ; ᪮¯¨à®¢ âì § ¯¨áì ¢ ᯨ᮪ ¤¨áª  (ª â «®£ ) de ix iy
; ¨ á¡à®á¨âì ª¥è ª â «®£  ­  ¤¨áª ; ¨ á¡à®á¨âì ª¥è ª â «®£  ­  ¤¨áª
; ¢å®¤: (HANDBUF) - § ¯¨áì ª â «®£  ; ¢å®¤: (HANDBUF) - § ¯¨áì ª â «®£ 
; ¢ë室: DE - record index ; ¢ë室: DE - record index
WRITE_DIR_HANDLE: WRITE_DIR_HANDLE:
SET_PAGE_X DIRPAGE SET_PAGE_X DIRPAGE
EX AF,AF' ;EX AF,AF'
LD HL,DIRPAGE.buffer PUSH AF
LD IX,DIRPAGE.buffer
;!TEST 9/11/23 record index ;!TEST 9/11/23 record index
EXX EXX
LD DE,0 LD DE,0
EXX EXX
; ;
LD BC,FAT_DIRECTORY_RECORD LD DE,FAT_DIRECTORY_RECORD
.loop: LD A,(HL) .loop: LD A,(IX + FAT_DIRECTORY_RECORD.NAME)
OR A OR A
JR Z,.WRT_HN2 JR Z,.WRITE_LAST_HANDLE
; ;
CP #E5 CP #E5
JR Z,.WRT_HN2 JR Z,.WRITE_HANDLE
ADD HL,BC ;
EXX
INC DE ; record index
EXX
ADD IX,DE
JR NC,.loop ;!FIXIT ª®«¨ç¥á⢮ § ¯¨á¥© ª â «®£  = áâà ­¨æ  JR NC,.loop ;!FIXIT ª®«¨ç¥á⢮ § ¯¨á¥© ª â «®£  = áâà ­¨æ 
; ;
EX AF,AF' .error: POP AF
OUT (SLOT3),A OUT (SLOT3),A
LD A,DSS_Error.sys.ROOT_OVERFLOW LD A,DSS_Error.sys.ROOT_OVERFLOW
SCF SCF
RET RET
; ;
.WRT_HN2: EX DE,HL .WRITE_LAST_HANDLE: ;!FIXIT áâ ¢¨âì ­®«ì ¯®á«¥ ­®¢®© HANDLE ¨ ¯®â®¬ ¯¨á âì ¤¨à¥ªâ®à¨î. …᫨ ­¥ ª®­¥æ áâà ­¨æë ¨«¨ ¢á¥© ¤¨à¥ªâ®à¨¨
EXX
INC DE ; record index
LD A,D
OR E
DEC DE
EXX
JR Z,.error ; ¬ ªá¨¬ «ì­ë© ­®¬¥à § ¯¨á¨ ¢ ¤¨à¥ªâ®à¨¨
;!FIXIT CALL RET
CALL .WRITE_HANDLE
RET
;
.WRITE_HANDLE: LD E,XL
LD D,XH
LD HL,CORE_BUFFERS.HANDBUF LD HL,CORE_BUFFERS.HANDBUF
LD BC,CORE_BUFFERS.HANDBUF.SIZE LD BC,CORE_BUFFERS.HANDBUF.SIZE
LDIR LDIR
EX AF,AF' ; !FIXIT âãâ DE ¬®¦¥â ¯¥à¥¯®«­¨âìáï ¨ áâ âì 0, ⮣¤  ­ ¤® ¯à®¢¥à¨âì
; ­¥ ª®­¥æ «¨ íâ® ¤¨à¥ªâ®à¨¨ ¢®®¡é¥, ¥á«¨ ª®­¥æ, â® ­ ¤®
; ¤®¡ ¢¨âì ®¤­ã § ¯¨áì á ­ã«ñ¬ ¢ ª®­¥æ ¯¥à¥¬¥á⨢ 㪠§ â¥«ì ¢ FM
; ¨ § ¯¨á ¢ 32 ­ã«ï
;
POP AF
OUT (SLOT3),A OUT (SLOT3),A
; ¯à®¢¥à塞, 㢥«¨ç¨«áï «¨ à §¬¥à ¤ ­­ëå ¤¨à¥ªâ®à¨¨ ; !FIXIT ¯à®¢¥à¨âì à áçñâ... ¯à®¢¥à塞, 㢥«¨ç¨«áï «¨ à §¬¥à ¤ ­­ëå ¤¨à¥ªâ®à¨¨
LD HL,DIRPAGE.buffer LD HL,DIRPAGE.buffer
LD BC,(SAVEDIR.DirBlkSize) LD BC,(SAVEDIR.DirBlkSize)
DEC BC DEC BC
@ -2938,11 +2894,22 @@ WRITE_DIR_HANDLE:
JR NC,.SAVEDIR JR NC,.SAVEDIR
; ;
; à §¬¥à ¤ ­­ëå ¤¨à¥ªâ®à¨¨ 㢥«¨ç¨«áï ; à §¬¥à ¤ ­­ëå ¤¨à¥ªâ®à¨¨ 㢥«¨ç¨«áï
LD HL,(SAVEDIR.DirBlkSize)
LD BC,(CORE_BUFFERS.FS_Buffer.BytesPerCluster)
ADD HL,BC ;LD HL,(SAVEDIR.DirBlkSize)
;LD BC,(CORE_BUFFERS.FS_Buffer.BytesPerCluster)
;ADD HL,BC
;LD (SAVEDIR.DirBlkSize),HL
;AND A
LD HL,DIRPAGE.buffer
EX DE,HL
SBC HL,DE
LD DE,FAT_DIRECTORY_RECORD
ADD HL,DE
LD (SAVEDIR.DirBlkSize),HL LD (SAVEDIR.DirBlkSize),HL
AND A
.SAVEDIR: EXX .SAVEDIR: EXX
PUSH DE PUSH DE
EXX EXX

View File

@ -329,9 +329,9 @@ RAM_DRV:
HARD_DRV: HARD_DRV:
LD L,B LD L,B
; ;
;LOGDRV_ENTRY_FIND @DRIVES_DRIVER.OLD_TABLES.LOGDRV ;LOGDRV_ENTRY_FIND DRIVES_DRIVER.OLD_TABLES.LOGDRV
LD IY,@DRIVES_DRIVER.OLD_TABLES.LOGDRV LD IY,DRIVES_DRIVER.OLD_TABLES.LOGDRV
CALL GET_LOGDRV_ENTRY CALL DRIVES_DRIVER.GET_LOGDRV_ENTRY
; ;
LD IX,DRIVES_DRIVER.LOGDRV LD IX,DRIVES_DRIVER.LOGDRV
LD DE,DRIVES_DRIVER.LOGDRV.TBL_Entry LD DE,DRIVES_DRIVER.LOGDRV.TBL_Entry

View File

@ -312,7 +312,7 @@ SelectDrive: PUSH DE
LD A,BIOS.Error.UnknownDevice LD A,BIOS.Error.UnknownDevice
JR C,.error_pop JR C,.error_pop
; ;
LOGDRV_ENTRY_FIND @DRIVES_DRIVER.LOGDRV LOGDRV_ENTRY_FIND DRIVES_DRIVER.LOGDRV
; ;
POP HL POP HL
CALL .get_data CALL .get_data
@ -345,8 +345,8 @@ SelectDrive: PUSH DE
GetMoreParams: PUSH IX GetMoreParams: PUSH IX
PUSH IY PUSH IY
LD L,A LD L,A
LD IY,@DRIVES_DRIVER.LOGDRV LD IY,DRIVES_DRIVER.LOGDRV
CALL @GET_LOGDRV_ENTRY CALL DRIVES_DRIVER.GET_LOGDRV_ENTRY
LD H,(IY + DRIVES_DRIVER.LOGDRV.SECTOR_OFFSET + 3) LD H,(IY + DRIVES_DRIVER.LOGDRV.SECTOR_OFFSET + 3)
LD L,(IY + DRIVES_DRIVER.LOGDRV.SECTOR_OFFSET + 2) LD L,(IY + DRIVES_DRIVER.LOGDRV.SECTOR_OFFSET + 2)
LD D,(IY + DRIVES_DRIVER.LOGDRV.SECTOR_OFFSET + 1) LD D,(IY + DRIVES_DRIVER.LOGDRV.SECTOR_OFFSET + 1)
@ -442,8 +442,8 @@ GetParams: ;EX DE,HL
PUSH IY PUSH IY
; ;
;LOGDRV_ENTRY_FIND @DRIVES_DRIVER.LOGDRV ;LOGDRV_ENTRY_FIND @DRIVES_DRIVER.LOGDRV
LD IY,@DRIVES_DRIVER.LOGDRV LD IY,DRIVES_DRIVER.LOGDRV
CALL GET_LOGDRV_ENTRY CALL DRIVES_DRIVER.GET_LOGDRV_ENTRY
; ;
LD A,(IY+DRIVES_DRIVER.LOGDRV.PHISICAL_DRV_NUMBER) ;MASTER/SLAVE PHISICAL DRIVE NUMBER #80/#81/... LD A,(IY+DRIVES_DRIVER.LOGDRV.PHISICAL_DRV_NUMBER) ;MASTER/SLAVE PHISICAL DRIVE NUMBER #80/#81/...
PUSH IY PUSH IY
@ -503,7 +503,7 @@ GetParams: ;EX DE,HL
EXX EXX
;[ ] 04/01/2025 ¢®§¢à é¥­¨¥ à §¬¥à  ᥪâ®à  ;[ ] 04/01/2025 ¢®§¢à é¥­¨¥ à §¬¥à  ᥪâ®à 
EX AF,AF' EX AF,AF'
CALL CONVERT_SECTOR_SIZE CALL DRIVES_DRIVER.CONVERT_SECTOR_SIZE
; ;
; SECTORS ON LOGICAL DISK ; SECTORS ON LOGICAL DISK
LD E,(IY+DRIVES_DRIVER.LOGDRV.SIZE_IN_SECTORS+0) LD E,(IY+DRIVES_DRIVER.LOGDRV.SIZE_IN_SECTORS+0)

View File

@ -395,7 +395,7 @@ GenIOCTL: BIT 7,B
; H=0 ; H=0
LD C,H ;[x] 17.12.2023 § £à㧪  á  ªâ¨¢­®£® à §¤¥« ,   ­¥ á ¯¥à¢®£® LD C,H ;[x] 17.12.2023 § £à㧪  á  ªâ¨¢­®£® à §¤¥« ,   ­¥ á ¯¥à¢®£®
EXX EXX
CALL CONVERT_SECTOR_SIZE CALL DRIVES_DRIVER.CONVERT_SECTOR_SIZE
EXX EXX
LD B,A ;[ ] 25/04/2026 ¢®§¢à é¥­¨¥ à §¬¥à  ᥪâ®à  LD B,A ;[ ] 25/04/2026 ¢®§¢à é¥­¨¥ à §¬¥à  ᥪâ®à 
EXX EXX

View File

@ -474,7 +474,7 @@ GenIOCTL: BIT 7,B
PUSH HL ;ç¨á«® £®«®¢®ª, ç¨á«® ᥪâ®à®¢ (­  楫¨­¤à) PUSH HL ;ç¨á«® £®«®¢®ª, ç¨á«® ᥪâ®à®¢ (­  楫¨­¤à)
PUSH DE ;ª®«¨ç¥á⢮ 樫¨­¤à®¢ PUSH DE ;ª®«¨ç¥á⢮ 樫¨­¤à®¢
EXX EXX
CALL CONVERT_SECTOR_SIZE CALL DRIVES_DRIVER.CONVERT_SECTOR_SIZE
POP HL ;ª®«¨ç¥á⢮ 樫¨­¤à®¢ POP HL ;ª®«¨ç¥á⢮ 樫¨­¤à®¢
POP BC ;ç¨á«® ᥪâ®à®¢ (­  楫¨­¤à) POP BC ;ç¨á«® ᥪâ®à®¢ (­  楫¨­¤à)
LD D,0 LD D,0