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
;
;--------------------------[shared.asm table]--------------------------;
DEVICE EQU @DRIVES_DRIVER.RAMDTBL + @DRIVES_DRIVER.RAMDTBL.Size
.TBL_Entry EQU @DRIVES_DRIVER.DEVICE.TBL_Entry
.Size: EQU @DRIVES_DRIVER.DEVICE.Size
.End EQU @DRIVES_DRIVER.DEVICE.End
DEVICE EQU DRIVES_DRIVER.RAMDTBL + DRIVES_DRIVER.RAMDTBL.Size
.TBL_Entry EQU DRIVES_DRIVER.DEVICE.TBL_Entry
.Size: EQU DRIVES_DRIVER.DEVICE.Size
.End EQU DRIVES_DRIVER.DEVICE.End
;----------------------------------------------------------------------;
;
@ -305,8 +305,8 @@ DEVICE EQU @DRIVES_DRIVER.RAMDTBL + @DRIVES_DRIVER.RAMDTBL.Size
;+09 FREE
;+15
LOGDRV EQU DEVICE + DEVICE.End
.TBL_Entry EQU @DRIVES_DRIVER.LOGDRV.TBL_Entry
.Size EQU @DRIVES_DRIVER.LOGDRV.Size
.TBL_Entry EQU DRIVES_DRIVER.LOGDRV.TBL_Entry
.Size EQU DRIVES_DRIVER.LOGDRV.Size
;----------------------------------------------------------------------;
;
@ -315,8 +315,8 @@ LOGDRV EQU DEVICE + DEVICE.End
; <E28099>ˆ€ ‘ŽŽ’‚…’‘’‚ˆŸ Œ…†„“ ”ˆ‡ˆ—…‘ŠˆŒ <20>ŽŒ…<C592>ŽŒ <20>€Œ„ˆŠ€ ˆ …ƒŽ RAM-DISK ID
; Log Number: DB RAM_Drive_Log_Number, RAM_Drive_ID ;(BIOS 0-15), (Block ID for BIOS)
RAMDTBL EQU LOGDRV + DRIVES_DRIVER.LOGDRV.Size
.TBL_Entry EQU @DRIVES_DRIVER.RAMDTBL.TBL_Entry
.Size EQU @DRIVES_DRIVER.RAMDTBL.Size
.TBL_Entry EQU DRIVES_DRIVER.RAMDTBL.TBL_Entry
.Size EQU DRIVES_DRIVER.RAMDTBL.Size
; RAMDTBL: DUP MAX_RAMDRIVES * RAMDTBL.TBL_Entry
; DB #FF
; 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
; FIND "MASKAREA" IN DIRECTORY
; ¢ë室: IY:DE - cluster number
@ -2892,43 +2824,67 @@ SAVEDIR: SCF ;
;----------------------------------------------------------------------;
; [ ] big dir
; [ ] big dir ;!FIXIT ­ ç¨­ âì ¯à®å®¤ á ­ ç «  ¤¨à¥ªâ®à¨¨ ¢á¥£¤ , ç⮡ ­¥ § å« ¬«ïâì
; !FIXIT   â®ç­® «¨ ¢ ­ã«¥¢®¬ FM ª®®à¤¨­ âë ­ã¦­®© ¤¨à¥ªâ®à¨¨?
; ᪮¯¨à®¢ âì § ¯¨áì ¢ ᯨ᮪ ¤¨áª  (ª â «®£ ) de ix iy
; ¨ á¡à®á¨âì ª¥è ª â «®£  ­  ¤¨áª
; ¢å®¤: (HANDBUF) - § ¯¨áì ª â «®£ 
; ¢ë室: DE - record index
WRITE_DIR_HANDLE:
SET_PAGE_X DIRPAGE
EX AF,AF'
LD HL,DIRPAGE.buffer
;EX AF,AF'
PUSH AF
LD IX,DIRPAGE.buffer
;!TEST 9/11/23 record index
EXX
LD DE,0
EXX
;
LD BC,FAT_DIRECTORY_RECORD
.loop: LD A,(HL)
LD DE,FAT_DIRECTORY_RECORD
.loop: LD A,(IX + FAT_DIRECTORY_RECORD.NAME)
OR A
JR Z,.WRT_HN2
JR Z,.WRITE_LAST_HANDLE
;
CP #E5
JR Z,.WRT_HN2
ADD HL,BC
JR Z,.WRITE_HANDLE
;
EXX
INC DE ; record index
EXX
ADD IX,DE
JR NC,.loop ;!FIXIT ª®«¨ç¥á⢮ § ¯¨á¥© ª â «®£  = áâà ­¨æ 
;
EX AF,AF'
.error: POP AF
OUT (SLOT3),A
LD A,DSS_Error.sys.ROOT_OVERFLOW
SCF
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 BC,CORE_BUFFERS.HANDBUF.SIZE
LDIR
EX AF,AF'
LDIR
; !FIXIT âãâ DE ¬®¦¥â ¯¥à¥¯®«­¨âìáï ¨ áâ âì 0, ⮣¤  ­ ¤® ¯à®¢¥à¨âì
; ­¥ ª®­¥æ «¨ íâ® ¤¨à¥ªâ®à¨¨ ¢®®¡é¥, ¥á«¨ ª®­¥æ, â® ­ ¤®
; ¤®¡ ¢¨âì ®¤­ã § ¯¨áì á ­ã«ñ¬ ¢ ª®­¥æ ¯¥à¥¬¥á⨢ 㪠§ â¥«ì ¢ FM
; ¨ § ¯¨á ¢ 32 ­ã«ï
;
POP AF
OUT (SLOT3),A
; ¯à®¢¥à塞, 㢥«¨ç¨«áï «¨ à §¬¥à ¤ ­­ëå ¤¨à¥ªâ®à¨¨
; !FIXIT ¯à®¢¥à¨âì à áçñâ... ¯à®¢¥à塞, 㢥«¨ç¨«áï «¨ à §¬¥à ¤ ­­ëå ¤¨à¥ªâ®à¨¨
LD HL,DIRPAGE.buffer
LD BC,(SAVEDIR.DirBlkSize)
DEC BC
@ -2938,11 +2894,22 @@ WRITE_DIR_HANDLE:
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
AND A
.SAVEDIR: EXX
PUSH DE
EXX

View File

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

View File

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

View File

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

View File

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