mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-15 01:11:48 +03:00
...
This commit is contained in:
parent
6e8b58f01c
commit
2835c7f34c
@ -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
|
||||
|
||||
135
DSS/FS/FAT.asm
135
DSS/FS/FAT.asm
@ -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'
|
||||
; !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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
Loading…
Reference in New Issue
Block a user