mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-15 09:21:47 +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
|
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
|
||||||
|
|||||||
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
|
;----------------------------------------------------------------------; 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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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)
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user