mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-15 09:21:47 +03:00
work in progress
This commit is contained in:
parent
9aae937142
commit
7a40f43798
@ -6,7 +6,7 @@
|
|||||||
; 1 SET ATTRIB
|
; 1 SET ATTRIB
|
||||||
; OUTPUT: A - ATTRIB
|
; OUTPUT: A - ATTRIB
|
||||||
////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////
|
||||||
ATTRIB: ;!TEST Current Dir ;[x] 15/10/23
|
ATTRIB: ; Current Dir ;[x] 15/10/23
|
||||||
LD C,A
|
LD C,A
|
||||||
;
|
;
|
||||||
PUSH HL
|
PUSH HL
|
||||||
@ -25,20 +25,9 @@ ATTRIB: ;!TEST Current Dir ;[x] 15/10/23
|
|||||||
INC B
|
INC B
|
||||||
DJNZ .B_1
|
DJNZ .B_1
|
||||||
; B = 0
|
; B = 0
|
||||||
.READ: ;!TEST ;[x] 16/11/23 optimize get attribute
|
.READ: CALL .OPENATR ;R002
|
||||||
;XOR A
|
|
||||||
;
|
|
||||||
CALL .OPENATR ;R002
|
|
||||||
RET C
|
RET C
|
||||||
;!TEST ;[x] 16/11/23 optimize get attribute
|
|
||||||
LD A,(CORE_BUFFERS.HANDBUF + FAT_DIRECTORY_RECORD.ATTRIBUT)
|
LD A,(CORE_BUFFERS.HANDBUF + FAT_DIRECTORY_RECORD.ATTRIBUT)
|
||||||
;LD B,(IY+_sFM.ATTRIBUT)
|
|
||||||
;PUSH BC
|
|
||||||
;CALL CLOSE
|
|
||||||
;POP BC
|
|
||||||
;RET C
|
|
||||||
;LD A,B
|
|
||||||
;
|
|
||||||
RET
|
RET
|
||||||
;
|
;
|
||||||
.B_1: DJNZ .B_2
|
.B_1: DJNZ .B_2
|
||||||
@ -46,9 +35,7 @@ ATTRIB: ;!TEST Current Dir ;[x] 15/10/23
|
|||||||
.WRITE_FN: AND FAT_ATTR.NoVolID ; [x] 2/12/23 ä¨ªá ¤«ï volume ID
|
.WRITE_FN: AND FAT_ATTR.NoVolID ; [x] 2/12/23 ä¨ªá ¤«ï volume ID
|
||||||
.WRITE: PUSH AF
|
.WRITE: PUSH AF
|
||||||
XOR A
|
XOR A
|
||||||
;!TEST ;[x] 16/11/23 optimize get attribute
|
|
||||||
LD (OPEN_FN.TMP),A
|
LD (OPEN_FN.TMP),A
|
||||||
;
|
|
||||||
CALL .OPENATR ;R002
|
CALL .OPENATR ;R002
|
||||||
CALL NC,OPEN_FN.FM
|
CALL NC,OPEN_FN.FM
|
||||||
;
|
;
|
||||||
|
|||||||
107
DSS/DOS_FS.ASM
107
DSS/DOS_FS.ASM
@ -71,7 +71,7 @@ SetPath_GetName:
|
|||||||
INC HL
|
INC HL
|
||||||
;
|
;
|
||||||
.dir_loop: LD DE,CORE_BUFFERS.TMPNAME
|
.dir_loop: LD DE,CORE_BUFFERS.TMPNAME
|
||||||
LD BC,#0DFF
|
LD BC,256*CORE_BUFFERS.TMPNAME.Size + #FF
|
||||||
.loop: LD A,(HL)
|
.loop: LD A,(HL)
|
||||||
INC HL
|
INC HL
|
||||||
CP '\' ;
|
CP '\' ;
|
||||||
@ -208,111 +208,6 @@ OPENDSK: ;!TEST DRV.Open
|
|||||||
;----------------------------------------------------------------------;
|
;----------------------------------------------------------------------;
|
||||||
|
|
||||||
|
|
||||||
;----------------------------------------------------------------------;
|
|
||||||
; ŹŕĄ®ˇŕ §®˘ âě ¨¬ď 8.3 -> 11 ä®ŕ¬ â
|
|
||||||
; ˘ĺ®¤: hl = 8.3 ¨¬ď
|
|
||||||
; de = ˇăäĄŕ ¨¬Ą¨ 11 ᨬ˘. ä®ŕ¬ â
|
|
||||||
; Żŕ¨ ®č¨ˇŞĄ CF - Ą¤®Ż. ¨¬ď
|
|
||||||
;
|
|
||||||
; HL - MASK "file*.t??"
|
|
||||||
; DE - 11 bytes filename
|
|
||||||
; RET: C=2 FILE WITHOUT EXTENTION
|
|
||||||
; C=1 FILE WITH EXTENTION
|
|
||||||
MASK: LD HL,CORE_BUFFERS.TMPNAME
|
|
||||||
.name: LD DE,CORE_BUFFERS.MASKARE
|
|
||||||
.custom: PUSH HL
|
|
||||||
PUSH DE
|
|
||||||
LD H,D
|
|
||||||
LD L,E
|
|
||||||
INC DE
|
|
||||||
LD (HL),' '
|
|
||||||
LD BC,10 ;!HARDCODE = size (FileName + Extension - 1)
|
|
||||||
LDIR
|
|
||||||
POP DE
|
|
||||||
POP HL
|
|
||||||
LD A,(HL)
|
|
||||||
CP '.' ;R007
|
|
||||||
SCF ;R007
|
|
||||||
JR Z,.MASKB ;R007
|
|
||||||
CP ' '+1
|
|
||||||
.MASKB: LD A,DSS_Error.sys.INVALID_NAME
|
|
||||||
RET C
|
|
||||||
LD BC,#0902 ; B - áçĄâ稪
|
|
||||||
.MASK1: LD A,(HL)
|
|
||||||
CP ' '+1
|
|
||||||
CCF
|
|
||||||
RET NC
|
|
||||||
;
|
|
||||||
CP '*'
|
|
||||||
JR Z,.MASK3
|
|
||||||
CP '.'
|
|
||||||
JR Z,.MASK5
|
|
||||||
CP '"'
|
|
||||||
JR Z,.MASK_ERR
|
|
||||||
CP '+'
|
|
||||||
JR Z,.MASK_ERR
|
|
||||||
CP ','
|
|
||||||
JR Z,.MASK_ERR
|
|
||||||
CP '/'
|
|
||||||
JR Z,.MASK_ERR
|
|
||||||
CP ':'
|
|
||||||
JR Z,.MASK_ERR
|
|
||||||
CP ';'
|
|
||||||
JR Z,.MASK_ERR
|
|
||||||
CP '<'
|
|
||||||
JR Z,.MASK_ERR
|
|
||||||
CP '='
|
|
||||||
JR Z,.MASK_ERR
|
|
||||||
CP '>'
|
|
||||||
JR Z,.MASK_ERR
|
|
||||||
CP '['
|
|
||||||
JR Z,.MASK_ERR
|
|
||||||
CP '\'
|
|
||||||
JR Z,.MASK_ERR
|
|
||||||
CP ']'
|
|
||||||
JR Z,.MASK_ERR
|
|
||||||
CP '|'
|
|
||||||
JR Z,.MASK_ERR
|
|
||||||
CALL UPPER ; a..z -> A..Z
|
|
||||||
.MASK2: LD (DE),A
|
|
||||||
INC HL
|
|
||||||
INC DE
|
|
||||||
DJNZ .MASK1
|
|
||||||
;
|
|
||||||
.MASK_ERR: LD A,DSS_Error.sys.INVALID_NAME
|
|
||||||
SCF
|
|
||||||
RET
|
|
||||||
;
|
|
||||||
.MASK3: LD A,'?'
|
|
||||||
INC HL
|
|
||||||
DJNZ .MASK6
|
|
||||||
JR .MASK_ERR
|
|
||||||
;
|
|
||||||
.MASK6: LD (DE),A
|
|
||||||
INC DE
|
|
||||||
DJNZ .MASK6
|
|
||||||
LD B,1
|
|
||||||
JR .MASK1
|
|
||||||
;
|
|
||||||
.MASK5: LD A,' '
|
|
||||||
INC HL
|
|
||||||
DJNZ .MASK4
|
|
||||||
LD B,4
|
|
||||||
DEC C
|
|
||||||
JR NZ,.MASK1
|
|
||||||
JR .MASK_ERR
|
|
||||||
;
|
|
||||||
.MASK4: LD (DE),A
|
|
||||||
INC DE
|
|
||||||
DJNZ .MASK4
|
|
||||||
LD B,4
|
|
||||||
DEC C
|
|
||||||
JR NZ,.MASK1
|
|
||||||
JR .MASK_ERR
|
|
||||||
;----------------------------------------------------------------------;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
;----------------------------------------------------------------------;
|
;----------------------------------------------------------------------;
|
||||||
;!TEST Current Dir ;[x] 15/10/23
|
;!TEST Current Dir ;[x] 15/10/23
|
||||||
DIR_PATH_CHANGE:
|
DIR_PATH_CHANGE:
|
||||||
|
|||||||
@ -1,12 +1,6 @@
|
|||||||
;[BEGIN]
|
MODULE DRIVES_DRIVER
|
||||||
;//MODULE: DRV-MAIN AUTHOR: Denis Parinov
|
|
||||||
;//CREATE: 2003-03-12
|
MODULE_START EQU $
|
||||||
;---------------------------------------------------------------
|
|
||||||
;Rev Date Name Description
|
|
||||||
;---------------------------------------------------------------
|
|
||||||
;R00 2003-03-19 DNS Initial version
|
|
||||||
;---------------------------------------------------------------
|
|
||||||
DRV_MODULE_START EQU $
|
|
||||||
; ORG #0000
|
; ORG #0000
|
||||||
|
|
||||||
;PAGEDRV EQU 0
|
;PAGEDRV EQU 0
|
||||||
@ -194,8 +188,8 @@ A0066: JP DRV_PAGE.NMI ;
|
|||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////
|
||||||
; <[DRIVE PAGE SWITCH]> ;
|
; <[DRIVE PAGE SWITCH]> ;
|
||||||
BLOCK PORTAL.RSTx18_SWITCH_ADDRESS-$-(PORTAL.out_DRV.switch - PORTAL.out_DRV),#C7
|
BLOCK PORTAL.RSTx18_SWITCH_ADDRESS-$-(PORTAL.out.switch - PORTAL.out),#C7
|
||||||
PORTAL.out_DRV: PUSH BC
|
PORTAL.out: PUSH BC
|
||||||
.RETBANK+2: LD BC,SLOT0 + 0*256; ;!!!!! ReScnDRV ¨á¯®«ì§ã¥â íâ® § 票¥
|
.RETBANK+2: LD BC,SLOT0 + 0*256; ;!!!!! ReScnDRV ¨á¯®«ì§ã¥â íâ® § 票¥
|
||||||
.switch: OUT (C),B
|
.switch: OUT (C),B
|
||||||
ASSERT $!=84,'-> Portal error!';
|
ASSERT $!=84,'-> Portal error!';
|
||||||
@ -204,10 +198,10 @@ PORTAL.out_DRV: PUSH BC
|
|||||||
POP BC
|
POP BC
|
||||||
POP AF
|
POP AF
|
||||||
.ADCALL+1: CALL DISPATCH ; ¯ âç¨âáï INTDISK
|
.ADCALL+1: CALL DISPATCH ; ¯ âç¨âáï INTDISK
|
||||||
JR NC,PORTAL.out_DRV
|
JR NC,PORTAL.out
|
||||||
OR DSS_Error.DRV_MASK
|
OR DSS_Error.DRV_MASK
|
||||||
SCF
|
SCF
|
||||||
JP PORTAL.out_DRV
|
JP PORTAL.out
|
||||||
////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
@ -228,7 +222,7 @@ DRV_PAGE.LDRIVE: DB #00
|
|||||||
|
|
||||||
DISPATCH:
|
DISPATCH:
|
||||||
LD HL,INTDISK
|
LD HL,INTDISK
|
||||||
LD (PORTAL.out_DRV.ADCALL),HL
|
LD (PORTAL.out.ADCALL),HL
|
||||||
INITDVC_RET_DRIVE:
|
INITDVC_RET_DRIVE:
|
||||||
CALL INITDVC
|
CALL INITDVC
|
||||||
LD A,(DRV_PAGE.LDRIVE)
|
LD A,(DRV_PAGE.LDRIVE)
|
||||||
@ -295,7 +289,7 @@ LOGDRV EQU DEVICE + DEVICE.End
|
|||||||
;-----------------------[ram_disk-drv.asm table]-----------------------;
|
;-----------------------[ram_disk-drv.asm table]-----------------------;
|
||||||
; ’€<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 + LOGDRV.Size
|
RAMDTBL EQU LOGDRV +DRIVES_DRIVER.LOGDRV.Size
|
||||||
.TBL_Entry EQU 2
|
.TBL_Entry EQU 2
|
||||||
.Size EQU .TBL_Entry * MAX_RAMDRIVES
|
.Size EQU .TBL_Entry * MAX_RAMDRIVES
|
||||||
; RAMDTBL: DUP MAX_RAMDRIVES * RAMDTBL.TBL_Entry
|
; RAMDTBL: DUP MAX_RAMDRIVES * RAMDTBL.TBL_Entry
|
||||||
@ -311,10 +305,10 @@ RAMDTBL EQU LOGDRV + LOGDRV.Size
|
|||||||
MODULE OLD_TABLES
|
MODULE OLD_TABLES
|
||||||
;
|
;
|
||||||
;--------------------------[shared.asm table]--------------------------;
|
;--------------------------[shared.asm table]--------------------------;
|
||||||
DEVICE EQU @RAMDTBL + @RAMDTBL.Size
|
DEVICE EQU @DRIVES_DRIVER.RAMDTBL + @DRIVES_DRIVER.RAMDTBL.Size
|
||||||
.TBL_Entry EQU @DEVICE.TBL_Entry
|
.TBL_Entry EQU @DRIVES_DRIVER.DEVICE.TBL_Entry
|
||||||
.Size: EQU @DEVICE.Size
|
.Size: EQU @DRIVES_DRIVER.DEVICE.Size
|
||||||
.End EQU @DEVICE.End
|
.End EQU @DRIVES_DRIVER.DEVICE.End
|
||||||
;----------------------------------------------------------------------;
|
;----------------------------------------------------------------------;
|
||||||
;
|
;
|
||||||
|
|
||||||
@ -326,8 +320,8 @@ DEVICE EQU @RAMDTBL + @RAMDTBL.Size
|
|||||||
;+09 FREE
|
;+09 FREE
|
||||||
;+15
|
;+15
|
||||||
LOGDRV EQU DEVICE + DEVICE.End
|
LOGDRV EQU DEVICE + DEVICE.End
|
||||||
.TBL_Entry EQU @LOGDRV.TBL_Entry
|
.TBL_Entry EQU @DRIVES_DRIVER.LOGDRV.TBL_Entry
|
||||||
.Size EQU @LOGDRV.Size
|
.Size EQU @DRIVES_DRIVER.LOGDRV.Size
|
||||||
;----------------------------------------------------------------------;
|
;----------------------------------------------------------------------;
|
||||||
;
|
;
|
||||||
|
|
||||||
@ -335,15 +329,15 @@ LOGDRV EQU DEVICE + DEVICE.End
|
|||||||
;-----------------------[ram_disk-drv.asm table]-----------------------;
|
;-----------------------[ram_disk-drv.asm table]-----------------------;
|
||||||
; ’€<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 + LOGDRV.Size
|
RAMDTBL EQU LOGDRV + DRIVES_DRIVER.LOGDRV.Size
|
||||||
.TBL_Entry EQU @RAMDTBL.TBL_Entry
|
.TBL_Entry EQU @DRIVES_DRIVER.RAMDTBL.TBL_Entry
|
||||||
.Size EQU @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
|
||||||
; .Size EQU $-RAMDTBL
|
; .Size EQU $-RAMDTBL
|
||||||
;----------------------------------------------------------------------;
|
;----------------------------------------------------------------------;
|
||||||
ENDMODULE
|
ENDMODULE ;OLD_TABLES
|
||||||
////////////////////////////////////////////////////////////////////////;
|
////////////////////////////////////////////////////////////////////////;
|
||||||
|
|
||||||
;DISPLAY "DEVICE start: ", /H, DEVICE
|
;DISPLAY "DEVICE start: ", /H, DEVICE
|
||||||
@ -355,14 +349,15 @@ RAMDTBL EQU LOGDRV + LOGDRV.Size
|
|||||||
|
|
||||||
;
|
;
|
||||||
;DRV_TEMP_BUFFER:
|
;DRV_TEMP_BUFFER:
|
||||||
DRV_MODULE_START.Size EQU (OLD_TABLES.RAMDTBL + OLD_TABLES.RAMDTBL.Size) - DRV_MODULE_START
|
MODULE_START.Size EQU (OLD_TABLES.RAMDTBL + OLD_TABLES.RAMDTBL.Size) - MODULE_START
|
||||||
DISPLAY "DRV MODULE SIZE: ",/A,DRV_MODULE_START.Size
|
DISPLAY "DRV MODULE SIZE: ",/A,MODULE_START.Size
|
||||||
;!TODO
|
;!TODO
|
||||||
;---------[256 bytes stack for return pages of RST #18 callers]--------;
|
;---------[256 bytes stack for return pages of RST #18 callers]--------;
|
||||||
; #3F00 - #4000
|
; #3F00 - #4000
|
||||||
DRV_PAGE.RSTx18_RET_PAGES EQU #4000
|
DRV_PAGE.RSTx18_RET_PAGES EQU #4000
|
||||||
;----------------------------------------------------------------------;
|
;----------------------------------------------------------------------;
|
||||||
; ASSERT ((#4000-DRV_TEMP_BUFFER-256) > (DEVICE.Size + LOGDRV.Size + RAMDTBL.Size)), "No space for DRV_TEMP_BUFFER in DRV-MAIN page"
|
; ASSERT ((#4000-DRV_TEMP_BUFFER-256) > (DEVICE.Size +DRIVES_DRIVER.LOGDRV.Size + RAMDTBL.Size)), "No space for DRV_TEMP_BUFFER in DRV-MAIN page"
|
||||||
; ENDMODULE
|
; ENDMODULE
|
||||||
; OUTEND
|
; OUTEND
|
||||||
;[END]
|
;[END]
|
||||||
|
ENDMODULE ;DRIVES_DRIVER
|
||||||
@ -368,11 +368,11 @@ BANKTBL EQU ($ & #FF00) + (1<?($ & #FF)) * #100
|
|||||||
CLEAR_ZONE.start EQU BANKTBL + BANKTBL.Size
|
CLEAR_ZONE.start EQU BANKTBL + BANKTBL.Size
|
||||||
MODULE CORE_BUFFERS
|
MODULE CORE_BUFFERS
|
||||||
BUFFERSplace _sBuffers = CLEAR_ZONE.start
|
BUFFERSplace _sBuffers = CLEAR_ZONE.start
|
||||||
TMPNAME EQU BUFFERSplace.TMPNAME
|
TMPNAME EQU BUFFERSplace.TMPNAME ; +-
|
||||||
.Size EQU 8+1+3+1 ; <20>ãä¥à ¨¬¥¨ 8.3 + 0
|
.Size EQU 8+1+3+1 ; <20>ãä¥à ¨¬¥¨ 8.3 + 0
|
||||||
HANDBUF EQU BUFFERSplace.HANDBUF
|
HANDBUF EQU BUFFERSplace.HANDBUF ; -
|
||||||
.SIZE EQU FAT_DIRECTORY_RECORD
|
.SIZE EQU FAT_DIRECTORY_RECORD
|
||||||
MASKARE _sMASKARE = BUFFERSplace.MASKARE
|
MASKARE _sMASKARE = BUFFERSplace.MASKARE ; -
|
||||||
.Size EQU _sMASKARE
|
.Size EQU _sMASKARE
|
||||||
FM_BUF _sFM = BUFFERSplace.FileManipulator
|
FM_BUF _sFM = BUFFERSplace.FileManipulator
|
||||||
.Size EQU _sFM
|
.Size EQU _sFM
|
||||||
|
|||||||
119
DSS/FS/FAT.asm
119
DSS/FS/FAT.asm
@ -2221,20 +2221,10 @@ BLOCK_READ: LD (READ.PointerOnBuffer),IX
|
|||||||
; HL:DE / A => DE:BC, H=0, L - ®áâ ⮪
|
; HL:DE / A => DE:BC, H=0, L - ®áâ ⮪
|
||||||
CALL DIV_by_Shifts
|
CALL DIV_by_Shifts
|
||||||
PUSH HL ; ®áâ ⮪ DIV_by_Shifts
|
PUSH HL ; ®áâ ⮪ DIV_by_Shifts
|
||||||
; [x] GET/SAVE CLUSTER NUMBER BEFORE/AFTER READ/WRITE
|
; GET/SAVE CLUSTER NUMBER BEFORE/AFTER READ/WRITE
|
||||||
PUSH BC ; ¬« ¤è¥¥ á«®¢® ®¬¥à ª« áâ¥à
|
PUSH BC ; ¬« ¤è¥¥ á«®¢® ®¬¥à ª« áâ¥à
|
||||||
PUSH DE ; [x] fat32 áâ à襥 á«®¢® ®¬¥à ª« áâ¥à
|
PUSH DE ; [x] fat32 áâ à襥 á«®¢® ®¬¥à ª« áâ¥à
|
||||||
;
|
;
|
||||||
; EXX
|
|
||||||
; LD L,(IY+_sFM.FS_REC.FIRST_CLUSTER_H) ; START CLUSTER High
|
|
||||||
; LD H,(IY+_sFM.FS_REC.FIRST_CLUSTER_H+1)
|
|
||||||
; LD A,L
|
|
||||||
; OR H
|
|
||||||
; EXX
|
|
||||||
; LD L,(IY+_sFM.FS_REC.FIRST_CLUSTER_L) ; START CLUSTER Low
|
|
||||||
; LD H,(IY+_sFM.FS_REC.FIRST_CLUSTER_L+1)
|
|
||||||
; OR L
|
|
||||||
; OR H
|
|
||||||
CALL CHECK_FIRST_CLUSTER
|
CALL CHECK_FIRST_CLUSTER
|
||||||
JR Z,.fast_exit_4
|
JR Z,.fast_exit_4
|
||||||
CALL GetSavedCluster
|
CALL GetSavedCluster
|
||||||
@ -2273,7 +2263,7 @@ BLOCK_READ: LD (READ.PointerOnBuffer),IX
|
|||||||
DJNZ .loop1_big
|
DJNZ .loop1_big
|
||||||
;;;;
|
;;;;
|
||||||
;
|
;
|
||||||
;[x] GET/SAVE CLUSTER NUMBER BEFORE/AFTER READ/WRITE
|
; GET/SAVE CLUSTER NUMBER BEFORE/AFTER READ/WRITE
|
||||||
POP DE ; [x] fat32 áâ à襥 á«®¢® ®¬¥à ª« áâ¥à
|
POP DE ; [x] fat32 áâ à襥 á«®¢® ®¬¥à ª« áâ¥à
|
||||||
POP BC ; ¬« ¤è¥¥ á«®¢® ®¬¥à ª« áâ¥à
|
POP BC ; ¬« ¤è¥¥ á«®¢® ®¬¥à ª« áâ¥à
|
||||||
CALL SaveGotCluster
|
CALL SaveGotCluster
|
||||||
@ -2775,6 +2765,111 @@ CHECK_64kb_CLUSTER:
|
|||||||
;
|
;
|
||||||
;----------------------------------------------------------------------;
|
;----------------------------------------------------------------------;
|
||||||
|
|
||||||
|
|
||||||
|
;----------------------------------------------------------------------;
|
||||||
|
; <20>८¡à §®¢ âì ¨¬ï 8.3 -> 11 ä®à¬ â
|
||||||
|
; ¢å®¤: hl = 8.3 ¨¬ï
|
||||||
|
; de = ¡ãä¥à ¨¬¥¨ 11 ᨬ¢. ä®à¬ â
|
||||||
|
; ¯à¨ ®è¨¡ª¥ CF - ¥¤®¯. ¨¬ï
|
||||||
|
;
|
||||||
|
; HL - MASK "file*.t??"
|
||||||
|
; DE - 11 bytes filename
|
||||||
|
; RET: C=2 FILE WITHOUT EXTENTION
|
||||||
|
; C=1 FILE WITH EXTENTION
|
||||||
|
MASK: LD HL,CORE_BUFFERS.TMPNAME
|
||||||
|
.name: LD DE,CORE_BUFFERS.MASKARE
|
||||||
|
.custom: PUSH HL
|
||||||
|
PUSH DE
|
||||||
|
LD H,D
|
||||||
|
LD L,E
|
||||||
|
INC DE
|
||||||
|
LD (HL),' '
|
||||||
|
LD BC,10 ;!HARDCODE = size (FileName + Extension - 1)
|
||||||
|
LDIR
|
||||||
|
POP DE
|
||||||
|
POP HL
|
||||||
|
LD A,(HL)
|
||||||
|
CP '.' ;R007
|
||||||
|
SCF ;R007
|
||||||
|
JR Z,.MASKB ;R007
|
||||||
|
CP ' '+1
|
||||||
|
.MASKB: LD A,DSS_Error.sys.INVALID_NAME
|
||||||
|
RET C
|
||||||
|
LD BC,#0902 ; B - áç¥â稪
|
||||||
|
.MASK1: LD A,(HL)
|
||||||
|
CP ' '+1
|
||||||
|
CCF
|
||||||
|
RET NC
|
||||||
|
;
|
||||||
|
CP '*'
|
||||||
|
JR Z,.MASK3
|
||||||
|
CP '.'
|
||||||
|
JR Z,.MASK5
|
||||||
|
CP '"'
|
||||||
|
JR Z,.MASK_ERR
|
||||||
|
CP '+'
|
||||||
|
JR Z,.MASK_ERR
|
||||||
|
CP ','
|
||||||
|
JR Z,.MASK_ERR
|
||||||
|
CP '/'
|
||||||
|
JR Z,.MASK_ERR
|
||||||
|
CP ':'
|
||||||
|
JR Z,.MASK_ERR
|
||||||
|
CP ';'
|
||||||
|
JR Z,.MASK_ERR
|
||||||
|
CP '<'
|
||||||
|
JR Z,.MASK_ERR
|
||||||
|
CP '='
|
||||||
|
JR Z,.MASK_ERR
|
||||||
|
CP '>'
|
||||||
|
JR Z,.MASK_ERR
|
||||||
|
CP '['
|
||||||
|
JR Z,.MASK_ERR
|
||||||
|
CP '\'
|
||||||
|
JR Z,.MASK_ERR
|
||||||
|
CP ']'
|
||||||
|
JR Z,.MASK_ERR
|
||||||
|
CP '|'
|
||||||
|
JR Z,.MASK_ERR
|
||||||
|
CALL UPPER ; a..z -> A..Z
|
||||||
|
.MASK2: LD (DE),A
|
||||||
|
INC HL
|
||||||
|
INC DE
|
||||||
|
DJNZ .MASK1
|
||||||
|
;
|
||||||
|
.MASK_ERR: LD A,DSS_Error.sys.INVALID_NAME
|
||||||
|
SCF
|
||||||
|
RET
|
||||||
|
;
|
||||||
|
.MASK3: LD A,'?'
|
||||||
|
INC HL
|
||||||
|
DJNZ .MASK6
|
||||||
|
JR .MASK_ERR
|
||||||
|
;
|
||||||
|
.MASK6: LD (DE),A
|
||||||
|
INC DE
|
||||||
|
DJNZ .MASK6
|
||||||
|
LD B,1
|
||||||
|
JR .MASK1
|
||||||
|
;
|
||||||
|
.MASK5: LD A,' '
|
||||||
|
INC HL
|
||||||
|
DJNZ .MASK4
|
||||||
|
LD B,4
|
||||||
|
DEC C
|
||||||
|
JR NZ,.MASK1
|
||||||
|
JR .MASK_ERR
|
||||||
|
;
|
||||||
|
.MASK4: LD (DE),A
|
||||||
|
INC DE
|
||||||
|
DJNZ .MASK4
|
||||||
|
LD B,4
|
||||||
|
DEC C
|
||||||
|
JR NZ,.MASK1
|
||||||
|
JR .MASK_ERR
|
||||||
|
;----------------------------------------------------------------------;
|
||||||
|
|
||||||
|
|
||||||
MODULE_SIZE EQU $ - MODULE_START
|
MODULE_SIZE EQU $ - MODULE_START
|
||||||
; ENDMODULE
|
; ENDMODULE
|
||||||
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
|
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
|
||||||
@ -1,3 +1,5 @@
|
|||||||
|
FS_MODULE_START EQU $
|
||||||
|
|
||||||
;----------------------------------------------------------------------;
|
;----------------------------------------------------------------------;
|
||||||
; [x] fat32 ; [ ] CDFS
|
; [x] fat32 ; [ ] CDFS
|
||||||
RD_BPB: CALL READ_BPB ; [ ] cdfs
|
RD_BPB: CALL READ_BPB ; [ ] cdfs
|
||||||
|
|||||||
@ -10,8 +10,8 @@ ReScanDRV:
|
|||||||
; 1. ª®¯¨à㥬 ¢ ¡ãä¥à â ¡«¨æë DEVICE, LOGDRV, RAMDTBL
|
; 1. ª®¯¨à㥬 ¢ ¡ãä¥à â ¡«¨æë DEVICE, LOGDRV, RAMDTBL
|
||||||
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -;
|
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -;
|
||||||
LD HL,DEVICE
|
LD HL,DEVICE
|
||||||
LD DE,OLD_TABLES.DEVICE
|
LD DE,DRIVES_DRIVER.OLD_TABLES.DEVICE
|
||||||
LD BC,OLD_TABLES.DEVICE - DEVICE
|
LD BC,DRIVES_DRIVER.OLD_TABLES.DEVICE - DEVICE
|
||||||
LDIR
|
LDIR
|
||||||
;
|
;
|
||||||
LD A,.NUMBER_OF_SUBTABLES
|
LD A,.NUMBER_OF_SUBTABLES
|
||||||
@ -24,7 +24,7 @@ ReScanDRV:
|
|||||||
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -;
|
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -;
|
||||||
; 3. áà ¢¨¢ ¥¬ § ¯¨á¨ áâ àëå â ¡«¨æ á ®¢ë¬¨:
|
; 3. áà ¢¨¢ ¥¬ § ¯¨á¨ áâ àëå â ¡«¨æ á ®¢ë¬¨:
|
||||||
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -;
|
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -;
|
||||||
LD HL,OLD_TABLES.DEVICE
|
LD HL,DRIVES_DRIVER.OLD_TABLES.DEVICE
|
||||||
LD B,DSS_MAX_DRIVES_AMOUNT
|
LD B,DSS_MAX_DRIVES_AMOUNT
|
||||||
.tbl_scanNew_mainLoop:
|
.tbl_scanNew_mainLoop:
|
||||||
PUSH BC
|
PUSH BC
|
||||||
@ -55,7 +55,7 @@ ReScanDRV:
|
|||||||
; HDD! ‘¢¥àª ¯® â ¡«¨æ¥ LOGDRV
|
; HDD! ‘¢¥àª ¯® â ¡«¨æ¥ LOGDRV
|
||||||
JP Z,SCAN_TABLES.HARD_DRV
|
JP Z,SCAN_TABLES.HARD_DRV
|
||||||
; RD?
|
; RD?
|
||||||
LD HL,RAMDSK_DRV.API_TABLE
|
LD HL,DRIVES_DRIVER.RAMDSK_DRV.API_TABLE
|
||||||
AND A
|
AND A
|
||||||
SBC HL,DE
|
SBC HL,DE
|
||||||
; RAM Drive! ‘¢¥àª ¯® â ¡«¨æ¥ RAMDTBL
|
; RAM Drive! ‘¢¥àª ¯® â ¡«¨æ¥ RAMDTBL
|
||||||
@ -86,11 +86,11 @@ ReScanDRV:
|
|||||||
INC HL
|
INC HL
|
||||||
LD (OLD_TABLES_CURRENT),HL
|
LD (OLD_TABLES_CURRENT),HL
|
||||||
EXX
|
EXX
|
||||||
LD HL,OLD_TABLES.LOGDRV - LOGDRV
|
LD HL,DRIVES_DRIVER.OLD_TABLES.LOGDRV - LOGDRV
|
||||||
LD B,DSS_MAX_DRIVES_AMOUNT
|
LD B,DSS_MAX_DRIVES_AMOUNT
|
||||||
EXX
|
EXX
|
||||||
; 室¨¬ ¢ áâ ன DEVICE ¯¥à¢ãî ᢮¡®¤ãî ï祩ªã (¯à®¢¥à塞 á ª®æ ¢ ç «®)
|
; 室¨¬ ¢ áâ ன DEVICE ¯¥à¢ãî ᢮¡®¤ãî ï祩ªã (¯à®¢¥à塞 á ª®æ ¢ ç «®)
|
||||||
LD IX,OLD_TABLES.DEVICE + OLD_TABLES.DEVICE.Size - OLD_TABLES.DEVICE.TBL_Entry
|
LD IX,DRIVES_DRIVER.OLD_TABLES.DEVICE + OLD_TABLES.DEVICE.Size - OLD_TABLES.DEVICE.TBL_Entry
|
||||||
LD IY,LOGDRV
|
LD IY,LOGDRV
|
||||||
LD DE,-OLD_TABLES.DEVICE.TBL_Entry ; ¤¢¨£ ¥¬áï ¯® â ¡«¨æ¥ § ¤
|
LD DE,-OLD_TABLES.DEVICE.TBL_Entry ; ¤¢¨£ ¥¬áï ¯® â ¡«¨æ¥ § ¤
|
||||||
LD B,DSS_MAX_DRIVES_AMOUNT
|
LD B,DSS_MAX_DRIVES_AMOUNT
|
||||||
@ -119,9 +119,9 @@ ReScanDRV:
|
|||||||
|
|
||||||
; 6. § ¬¥ï¥¬ ®¢ë¥ â ¡«¨æë ¬®¤¨ä¨æ¨à®¢ ë¥ áâ àë¥
|
; 6. § ¬¥ï¥¬ ®¢ë¥ â ¡«¨æë ¬®¤¨ä¨æ¨à®¢ ë¥ áâ àë¥
|
||||||
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -;
|
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -;
|
||||||
LD HL,OLD_TABLES.DEVICE
|
LD HL,DRIVES_DRIVER.OLD_TABLES.DEVICE
|
||||||
LD DE,DEVICE
|
LD DE,DEVICE
|
||||||
LD BC,OLD_TABLES.DEVICE - DEVICE
|
LD BC,DRIVES_DRIVER.OLD_TABLES.DEVICE - DEVICE
|
||||||
LDIR
|
LDIR
|
||||||
;
|
;
|
||||||
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -;
|
; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -;
|
||||||
@ -167,13 +167,13 @@ ReScanDRV:
|
|||||||
|
|
||||||
;-----------------------[]
|
;-----------------------[]
|
||||||
Fill_if_Exists:
|
Fill_if_Exists:
|
||||||
.tbl+1: LD B,ReScanDRV.NUMBER_OF_SUBTABLES
|
.tbl+1: LD B,DRIVES_DRIVER.ReScanDRV.NUMBER_OF_SUBTABLES
|
||||||
DJNZ 1F
|
DJNZ 1F
|
||||||
; B=1, RAMDTBL
|
; B=1, RAMDTBL
|
||||||
LD A,RAMDTBL.TBL_Entry
|
LD A,DRIVES_DRIVER.RAMDTBL.TBL_Entry
|
||||||
LD IY,RAMDTBL
|
LD IY,DRIVES_DRIVER.RAMDTBL
|
||||||
CALL .RUN
|
CALL .RUN
|
||||||
LD DE,RAMDSK_DRV.API_TABLE
|
LD DE,DRIVES_DRIVER.RAMDSK_DRV.API_TABLE
|
||||||
RET NC
|
RET NC
|
||||||
LD A,(.tbl)
|
LD A,(.tbl)
|
||||||
DEC A ;!!!!! ¬®¦¥â ¡ëâì ¯¥à¥¯®«¥¨¥
|
DEC A ;!!!!! ¬®¦¥â ¡ëâì ¯¥à¥¯®«¥¨¥
|
||||||
@ -182,7 +182,7 @@ Fill_if_Exists:
|
|||||||
;
|
;
|
||||||
1: DJNZ 1F
|
1: DJNZ 1F
|
||||||
; B=2, LOGDRV
|
; B=2, LOGDRV
|
||||||
LD A,LOGDRV.TBL_Entry
|
LD A,DRIVES_DRIVER.LOGDRV.TBL_Entry
|
||||||
LD IY,LOGDRV
|
LD IY,LOGDRV
|
||||||
CALL .RUN
|
CALL .RUN
|
||||||
LD DE,IDE_DRV.API_TABLE
|
LD DE,IDE_DRV.API_TABLE
|
||||||
@ -191,7 +191,7 @@ Fill_if_Exists:
|
|||||||
LD A,(.tbl)
|
LD A,(.tbl)
|
||||||
DEC A ;!!!!! ¬®¦¥â ¡ëâì ¯¥à¥¯®«¥¨¥
|
DEC A ;!!!!! ¬®¦¥â ¡ëâì ¯¥à¥¯®«¥¨¥
|
||||||
LD (.tbl),A
|
LD (.tbl),A
|
||||||
LD HL,OLD_TABLES.RAMDTBL
|
LD HL,DRIVES_DRIVER.OLD_TABLES.RAMDTBL
|
||||||
LD (OLD_TABLES_CURRENT),HL
|
LD (OLD_TABLES_CURRENT),HL
|
||||||
EXX
|
EXX
|
||||||
LD B,MAX_RAMDRIVES
|
LD B,MAX_RAMDRIVES
|
||||||
@ -287,14 +287,14 @@ Find_Record:
|
|||||||
RAM_DRV:
|
RAM_DRV:
|
||||||
; <20>®«ãç ¥¬ ®¬¥à à ¬¤¨áª ¢ OLD_TABLES.RAMDTBL
|
; <20>®«ãç ¥¬ ®¬¥à à ¬¤¨áª ¢ OLD_TABLES.RAMDTBL
|
||||||
LD A,B
|
LD A,B
|
||||||
LD BC,OLD_TABLES.RAMDTBL
|
LD BC,DRIVES_DRIVER.OLD_TABLES.RAMDTBL
|
||||||
CALL RAMDSK_DRV.GET_RAMDRV_NUM.skip_tbl
|
CALL DRIVES_DRIVER.RAMDSK_DRV.GET_RAMDRV_NUM.skip_tbl
|
||||||
LD (.cur_drv),BC
|
LD (.cur_drv),BC
|
||||||
AND #0F
|
AND #0F
|
||||||
LD C,A ; ®¬¥à à ¬¤¨áª
|
LD C,A ; ®¬¥à à ¬¤¨áª
|
||||||
; ˆé¥¬ ¢ ®¢®© â ª®© ¦¥ ®¬¥à à ¬¤¨áª
|
; ˆé¥¬ ¢ ®¢®© â ª®© ¦¥ ®¬¥à à ¬¤¨áª
|
||||||
LD B,MAX_RAMDRIVES
|
LD B,MAX_RAMDRIVES
|
||||||
LD DE,RAMDTBL
|
LD DE,DRIVES_DRIVER.RAMDTBL
|
||||||
.loop: LD A,(DE)
|
.loop: LD A,(DE)
|
||||||
SUB C
|
SUB C
|
||||||
JR Z,.found
|
JR Z,.found
|
||||||
@ -317,51 +317,51 @@ RAM_DRV:
|
|||||||
DEC HL
|
DEC HL
|
||||||
LD (HL),#FF
|
LD (HL),#FF
|
||||||
EX DE,HL
|
EX DE,HL
|
||||||
JP ReScanDRV.nextN2
|
JP DRIVES_DRIVER.ReScanDRV.nextN2
|
||||||
;
|
;
|
||||||
.found: DEC A
|
.found: DEC A
|
||||||
; § â¨à ¥¬ ¢ ®¢®© â ¡«¨æ¥ ᮢ¯ ¢è¨© ¤à ©¢ (ç⮡ «¥£ç¥ ¡ë«® ¯ àá¨âì ®á⠢襥áï)
|
; § â¨à ¥¬ ¢ ®¢®© â ¡«¨æ¥ ᮢ¯ ¢è¨© ¤à ©¢ (ç⮡ «¥£ç¥ ¡ë«® ¯ àá¨âì ®á⠢襥áï)
|
||||||
LD (DE),A
|
LD (DE),A
|
||||||
DEC DE
|
DEC DE
|
||||||
LD (DE),A
|
LD (DE),A
|
||||||
JP ReScanDRV.nextN
|
JP DRIVES_DRIVER.ReScanDRV.nextN
|
||||||
;-----[]
|
;-----[]
|
||||||
HARD_DRV:
|
HARD_DRV:
|
||||||
LD L,B
|
LD L,B
|
||||||
LOGDRV_ENTRY_FIND OLD_TABLES.LOGDRV
|
LOGDRV_ENTRY_FIND @DRIVES_DRIVER.OLD_TABLES.LOGDRV
|
||||||
LD IX,LOGDRV
|
LD IX,DRIVES_DRIVER.LOGDRV
|
||||||
LD DE,LOGDRV.TBL_Entry
|
LD DE,DRIVES_DRIVER.LOGDRV.TBL_Entry
|
||||||
LD B,DSS_MAX_DRIVES_AMOUNT
|
LD B,DSS_MAX_DRIVES_AMOUNT
|
||||||
;
|
;
|
||||||
.loop: LD A,(IY+LOGDRV.PHISICAL_DRV_NUMBER)
|
.loop: LD A,(IY+DRIVES_DRIVER.LOGDRV.PHISICAL_DRV_NUMBER)
|
||||||
;CP #FF
|
;CP #FF
|
||||||
;JR Z,.skip
|
;JR Z,.skip
|
||||||
CP (IX+LOGDRV.PHISICAL_DRV_NUMBER)
|
CP (IX+DRIVES_DRIVER.LOGDRV.PHISICAL_DRV_NUMBER)
|
||||||
JR NZ,.skip
|
JR NZ,.skip
|
||||||
;
|
;
|
||||||
LD A,(IY+LOGDRV.SECTOR_OFFSET)
|
LD A,(IY+DRIVES_DRIVER.LOGDRV.SECTOR_OFFSET)
|
||||||
CP (IX+LOGDRV.SECTOR_OFFSET)
|
CP (IX+DRIVES_DRIVER.LOGDRV.SECTOR_OFFSET)
|
||||||
JR NZ,.skip
|
JR NZ,.skip
|
||||||
LD A,(IY+LOGDRV.SECTOR_OFFSET+1)
|
LD A,(IY+DRIVES_DRIVER.LOGDRV.SECTOR_OFFSET+1)
|
||||||
CP (IX+LOGDRV.SECTOR_OFFSET+1)
|
CP (IX+DRIVES_DRIVER.LOGDRV.SECTOR_OFFSET+1)
|
||||||
JR NZ,.skip
|
JR NZ,.skip
|
||||||
LD A,(IY+LOGDRV.SECTOR_OFFSET+2)
|
LD A,(IY+DRIVES_DRIVER.LOGDRV.SECTOR_OFFSET+2)
|
||||||
CP (IX+LOGDRV.SECTOR_OFFSET+2)
|
CP (IX+DRIVES_DRIVER.LOGDRV.SECTOR_OFFSET+2)
|
||||||
JR NZ,.skip
|
JR NZ,.skip
|
||||||
LD A,(IY+LOGDRV.SECTOR_OFFSET+3)
|
LD A,(IY+DRIVES_DRIVER.LOGDRV.SECTOR_OFFSET+3)
|
||||||
CP (IX+LOGDRV.SECTOR_OFFSET+3)
|
CP (IX+DRIVES_DRIVER.LOGDRV.SECTOR_OFFSET+3)
|
||||||
JR NZ,.skip
|
JR NZ,.skip
|
||||||
LD A,(IY+LOGDRV.SIZE_IN_SECTORS)
|
LD A,(IY+DRIVES_DRIVER.LOGDRV.SIZE_IN_SECTORS)
|
||||||
CP (IX+LOGDRV.SIZE_IN_SECTORS)
|
CP (IX+DRIVES_DRIVER.LOGDRV.SIZE_IN_SECTORS)
|
||||||
JR NZ,.skip
|
JR NZ,.skip
|
||||||
LD A,(IY+LOGDRV.SIZE_IN_SECTORS+1)
|
LD A,(IY+DRIVES_DRIVER.LOGDRV.SIZE_IN_SECTORS+1)
|
||||||
CP (IX+LOGDRV.SIZE_IN_SECTORS+1)
|
CP (IX+DRIVES_DRIVER.LOGDRV.SIZE_IN_SECTORS+1)
|
||||||
JR NZ,.skip
|
JR NZ,.skip
|
||||||
LD A,(IY+LOGDRV.SIZE_IN_SECTORS+2)
|
LD A,(IY+DRIVES_DRIVER.LOGDRV.SIZE_IN_SECTORS+2)
|
||||||
CP (IX+LOGDRV.SIZE_IN_SECTORS+2)
|
CP (IX+DRIVES_DRIVER.LOGDRV.SIZE_IN_SECTORS+2)
|
||||||
JR NZ,.skip
|
JR NZ,.skip
|
||||||
LD A,(IY+LOGDRV.SIZE_IN_SECTORS+3)
|
LD A,(IY+DRIVES_DRIVER.LOGDRV.SIZE_IN_SECTORS+3)
|
||||||
CP (IX+LOGDRV.SIZE_IN_SECTORS+3)
|
CP (IX+DRIVES_DRIVER.LOGDRV.SIZE_IN_SECTORS+3)
|
||||||
JR Z,.found
|
JR Z,.found
|
||||||
;
|
;
|
||||||
.skip: ADD IX,DE
|
.skip: ADD IX,DE
|
||||||
@ -369,7 +369,7 @@ HARD_DRV:
|
|||||||
; ‡€<E280A1>ˆ‘œ <20>… <20>€‰„…<E2809E>€
|
; ‡€<E280A1>ˆ‘œ <20>… <20>€‰„…<E2809E>€
|
||||||
; ƒà®å ¥¬ áâ àãî § ¯¨áì ¢ OLD_TABLES.LOGDRV
|
; ƒà®å ¥¬ áâ àãî § ¯¨áì ¢ OLD_TABLES.LOGDRV
|
||||||
LD A,#FF
|
LD A,#FF
|
||||||
LD (IY+LOGDRV.PHISICAL_DRV_NUMBER),A
|
LD (IY+DRIVES_DRIVER.LOGDRV.PHISICAL_DRV_NUMBER),A
|
||||||
; „®áâ ñ¬ ¯®«®¦¥¨¥ ¢ OLD_TABLES.DEVICE
|
; „®áâ ñ¬ ¯®«®¦¥¨¥ ¢ OLD_TABLES.DEVICE
|
||||||
POP HL
|
POP HL
|
||||||
; „®áâ ñ¬ è £ ®¡é¥£® 横« ¤«ï ¯®«ãç¥¨ï «®£.®¬¥à ¤à ©¢ ¢ KILL_FM
|
; „®áâ ñ¬ è £ ®¡é¥£® 横« ¤«ï ¯®«ãç¥¨ï «®£.®¬¥à ¤à ©¢ ¢ KILL_FM
|
||||||
@ -378,14 +378,14 @@ HARD_DRV:
|
|||||||
; ƒà®å ¥¬ ”Œ ¨ § ¯¨áì ¢ OLD_TABLES.DEVICE
|
; ƒà®å ¥¬ ”Œ ¨ § ¯¨áì ¢ OLD_TABLES.DEVICE
|
||||||
CALL KILL_FM
|
CALL KILL_FM
|
||||||
;
|
;
|
||||||
JP ReScanDRV.nextN2
|
JP DRIVES_DRIVER.ReScanDRV.nextN2
|
||||||
;
|
;
|
||||||
.found: ; § â¨à ¥¬ ¢ ®¢®© â ¡«¨æ¥ ᮢ¯ ¢è¨© ¤à ©¢ (ç⮡ «¥£ç¥ ¡ë«® ¯ àá¨âì ®á⠢襥áï)
|
.found: ; § â¨à ¥¬ ¢ ®¢®© â ¡«¨æ¥ ᮢ¯ ¢è¨© ¤à ©¢ (ç⮡ «¥£ç¥ ¡ë«® ¯ àá¨âì ®á⠢襥áï)
|
||||||
LD (IX+LOGDRV.PHISICAL_DRV_NUMBER),#FF
|
LD (IX+DRIVES_DRIVER.LOGDRV.PHISICAL_DRV_NUMBER),#FF
|
||||||
JP ReScanDRV.nextN
|
JP DRIVES_DRIVER.ReScanDRV.nextN
|
||||||
;
|
;
|
||||||
; CD_ROM:
|
; CD_ROM:
|
||||||
; JP ReScanDRV.nextN
|
; JP DRIVES_DRIVER.ReScanDRV.nextN
|
||||||
;-----[]
|
;-----[]
|
||||||
; ‚•Ž„: HL - ⥪ãé ï § ¯¨áì ¢ â ¡«¨æ¥ DEVICE
|
; ‚•Ž„: HL - ⥪ãé ï § ¯¨áì ¢ â ¡«¨æ¥ DEVICE
|
||||||
; B - è £ ®¡é¥£® 横«
|
; B - è £ ®¡é¥£® 横«
|
||||||
@ -395,7 +395,7 @@ KILL_FM:;
|
|||||||
LD C,A
|
LD C,A
|
||||||
; ¢âëª ¥¬ áâà ¨æã ï¤à á â ¡«¨æ¥© ä ©«®¢ëå ¬ ¨¯ã«ïâ®à®¢
|
; ¢âëª ¥¬ áâà ¨æã ï¤à á â ¡«¨æ¥© ä ©«®¢ëå ¬ ¨¯ã«ïâ®à®¢
|
||||||
PUSH BC
|
PUSH BC
|
||||||
LD A,(PORTAL.out_DRV.RETBANK)
|
LD A,(DRIVES_DRIVER.PORTAL.out.RETBANK)
|
||||||
LD B,A
|
LD B,A
|
||||||
LD C,SLOT3
|
LD C,SLOT3
|
||||||
IN A,(SLOT3)
|
IN A,(SLOT3)
|
||||||
@ -425,31 +425,29 @@ KILL_FM:;
|
|||||||
ENDMODULE
|
ENDMODULE
|
||||||
;-----------------------[]
|
;-----------------------[]
|
||||||
|
|
||||||
/*
|
; [DRIVE TABLES] .Size == DEVICE.Size +DRIVES_DRIVER.LOGDRV.Size + RAMDTBL.Size == 78+1 + 416 + 32 == 526
|
||||||
[DRIVE TABLES] .Size == DEVICE.Size + LOGDRV.Size + RAMDTBL.Size == 78+1 + 416 + 32 == 526
|
|
||||||
|
|
||||||
; «®£¨ç¥áª¨© ®¬¥à ãáâனá⢠+ ¤à¥á ®¡à ¡®â稪 .
|
; ; «®£¨ç¥áª¨© ®¬¥à ãáâனá⢠+ ¤à¥á ®¡à ¡®â稪 .
|
||||||
; <EFBFBD>®à浪®¢ë© ®¬¥à * 3 = ¡ãª¢ ¤¨áª + "A"
|
; ; <EFBFBD>®à浪®¢ë© ®¬¥à * 3 = ¡ãª¢ ¤¨áª + "A"
|
||||||
DEVICE EQU $
|
; DEVICE EQU $
|
||||||
.TBL_Entry EQU 3
|
; .TBL_Entry EQU 3
|
||||||
.End EQU 1 + $ + DSS_MAX_DRIVES_AMOUNT * .TBL_Entry ; ¤«ï á⮯-¡ ©â #FF
|
; .End EQU 1 + $ + DSS_MAX_DRIVES_AMOUNT * .TBL_Entry ; ¤«ï á⮯-¡ ©â #FF
|
||||||
.Size EQU .End - $
|
; .Size EQU .End - $
|
||||||
|
|
||||||
;+00 BYTE MASTER/SLAVE PHISICAL DRIVE NUMBER #80/#81/...
|
; ;+00 BYTE MASTER/SLAVE PHISICAL DRIVE NUMBER #80/#81/...
|
||||||
;+01 LONG SECTOR OFFSET
|
; ;+01 LONG SECTOR OFFSET
|
||||||
;+05 LONG SIZE IN SECTORS
|
; ;+05 LONG SIZE IN SECTORS
|
||||||
;+09 LONG Volume Serial Number in HEX ; [ ] ;!TODO
|
; ;+09 LONG Volume Serial Number in HEX ; [ ] ;!TODO
|
||||||
;+13 WORD FREE
|
; ;+13 WORD FREE
|
||||||
;+15 BYTE FREE
|
; ;+15 BYTE FREE
|
||||||
; ‹®£¨ç¥áª¨© ®¬¥à à §¤¥« .
|
; ; ‹®£¨ç¥áª¨© ®¬¥à à §¤¥« .
|
||||||
;<EFBFBD>®¬¥à £à㯯ë = «®£¨ç¥áª¨© ®¬¥à à §¤¥« HDD ¨§ DEVICE
|
; ;<EFBFBD>®¬¥à £à㯯ë = «®£¨ç¥áª¨© ®¬¥à à §¤¥« HDD ¨§ DEVICE
|
||||||
LOGDRV EQU DEVICE + DEVICE.Size
|
; LOGDRV EQU DEVICE + DEVICE.Size
|
||||||
.TBL_Entry EQU 16
|
; .TBL_Entry EQU 16
|
||||||
.Size EQU DSS_MAX_DRIVES_AMOUNT * .TBL_Entry
|
; .Size EQU DSS_MAX_DRIVES_AMOUNT * .TBL_Entry
|
||||||
|
|
||||||
; ’€<E28099>‹ˆ–€ ‘ŽŽ’‚…’‘’‚ˆŸ Œ…†„“ ”ˆ‡ˆ—…‘ŠˆŒ <20>ŽŒ…<C592>ŽŒ <20>€Œ„ˆ‘Š€ ˆ …ƒŽ RAM-DISK ID
|
; ; ’€<E28099>‹ˆ–€ ‘ŽŽ’‚…’‘’‚ˆŸ Œ…†„“ ”ˆ‡ˆ—…‘ŠˆŒ <20>ŽŒ…<C592>ŽŒ <20>€Œ„ˆ‘Š€ ˆ …ƒŽ RAM-DISK ID
|
||||||
; Log Number: DB RAM_DRIVE_NUMBER, RAM_DRIVE_ID
|
; ; Log Number: DB RAM_DRIVE_NUMBER, RAM_DRIVE_ID
|
||||||
RAMDTBL EQU $ + DEVICE.Size + LOGDRV.Size
|
; RAMDTBL EQU $ + DEVICE.Size +DRIVES_DRIVER.LOGDRV.Size
|
||||||
.TBL_Entry EQU 2
|
; .TBL_Entry EQU 2
|
||||||
.Size EQU .TBL_Entry * MAX_RAMDRIVES
|
; .Size EQU .TBL_Entry * MAX_RAMDRIVES
|
||||||
*/
|
|
||||||
@ -129,7 +129,7 @@ INITDVC: XOR A
|
|||||||
LD HL,DEVICE
|
LD HL,DEVICE
|
||||||
LD (HL),#FF
|
LD (HL),#FF
|
||||||
LD DE,DEVICE+1
|
LD DE,DEVICE+1
|
||||||
LD BC,DEVICE.Size + LOGDRV.Size + RAMDTBL.Size - 1
|
LD BC,DEVICE.Size +DRIVES_DRIVER.LOGDRV.Size + RAMDTBL.Size - 1
|
||||||
LDIR
|
LDIR
|
||||||
; FDD ¤¥¢ ©áë
|
; FDD ¤¥¢ ©áë
|
||||||
CALL FDD_DRV.Init ; ã§ âì ç¨á«® FDD-¤¥¢ ©á®¢
|
CALL FDD_DRV.Init ; ã§ âì ç¨á«® FDD-¤¥¢ ©á®¢
|
||||||
@ -140,8 +140,8 @@ INITDVC: XOR A
|
|||||||
LD DE,IDE_DRV.API_TABLE
|
LD DE,IDE_DRV.API_TABLE
|
||||||
CALL MAKEDVC
|
CALL MAKEDVC
|
||||||
; RAM-¤¨áª¨
|
; RAM-¤¨áª¨
|
||||||
CALL RAMDSK_DRV.Init
|
CALL DRIVES_DRIVER.RAMDSK_DRV.Init
|
||||||
LD DE,RAMDSK_DRV.API_TABLE
|
LD DE,DRIVES_DRIVER.RAMDSK_DRV.API_TABLE
|
||||||
CALL MAKEDVC
|
CALL MAKEDVC
|
||||||
XOR A
|
XOR A
|
||||||
RET
|
RET
|
||||||
|
|||||||
@ -223,7 +223,7 @@ Init: PUSH IY
|
|||||||
XOR A
|
XOR A
|
||||||
LD (.count),A
|
LD (.count),A
|
||||||
;
|
;
|
||||||
LD HL,LOGDRV
|
LD HL,DRIVES_DRIVER.LOGDRV
|
||||||
LD (LOGDRV_OFFSET),HL
|
LD (LOGDRV_OFFSET),HL
|
||||||
|
|
||||||
LD IX,SYS_PAGE.TMP_BUFFER
|
LD IX,SYS_PAGE.TMP_BUFFER
|
||||||
@ -313,14 +313,14 @@ SelectDrive: PUSH DE
|
|||||||
LD A,BIOS.Error.UnknownDevice
|
LD A,BIOS.Error.UnknownDevice
|
||||||
JR C,.error_pop
|
JR C,.error_pop
|
||||||
;
|
;
|
||||||
LOGDRV_ENTRY_FIND LOGDRV
|
LOGDRV_ENTRY_FIND @DRIVES_DRIVER.LOGDRV
|
||||||
;
|
;
|
||||||
POP HL
|
POP HL
|
||||||
CALL .get_data
|
CALL .get_data
|
||||||
JR C,.error_pop2
|
JR C,.error_pop2
|
||||||
;
|
;
|
||||||
POP DE
|
POP DE
|
||||||
LD A,(IY+LOGDRV.PHISICAL_DRV_NUMBER)
|
LD A,(IY+DRIVES_DRIVER.LOGDRV.PHISICAL_DRV_NUMBER)
|
||||||
RET
|
RET
|
||||||
;
|
;
|
||||||
.error_pop: POP HL
|
.error_pop: POP HL
|
||||||
@ -332,11 +332,11 @@ SelectDrive: PUSH DE
|
|||||||
LD A,BIOS.Error.UnknownDevice
|
LD A,BIOS.Error.UnknownDevice
|
||||||
RET C
|
RET C
|
||||||
;
|
;
|
||||||
LD E,(IY+LOGDRV.SECTOR_OFFSET)
|
LD E,(IY+DRIVES_DRIVER.LOGDRV.SECTOR_OFFSET)
|
||||||
LD D,(IY+LOGDRV.SECTOR_OFFSET+1)
|
LD D,(IY+DRIVES_DRIVER.LOGDRV.SECTOR_OFFSET+1)
|
||||||
ADD IX,DE
|
ADD IX,DE
|
||||||
LD E,(IY+LOGDRV.SECTOR_OFFSET+2)
|
LD E,(IY+DRIVES_DRIVER.LOGDRV.SECTOR_OFFSET+2)
|
||||||
LD D,(IY+LOGDRV.SECTOR_OFFSET+3)
|
LD D,(IY+DRIVES_DRIVER.LOGDRV.SECTOR_OFFSET+3)
|
||||||
ADC HL,DE
|
ADC HL,DE
|
||||||
LD A,BIOS.Error.SectorNotFound
|
LD A,BIOS.Error.SectorNotFound
|
||||||
RET
|
RET
|
||||||
@ -424,9 +424,9 @@ GetParams: EX DE,HL
|
|||||||
PUSH IX
|
PUSH IX
|
||||||
PUSH IY
|
PUSH IY
|
||||||
;
|
;
|
||||||
LOGDRV_ENTRY_FIND LOGDRV
|
LOGDRV_ENTRY_FIND @DRIVES_DRIVER.LOGDRV
|
||||||
;
|
;
|
||||||
LD A,(IY+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
|
||||||
LD C,BIOS.DRV_GET_PAR
|
LD C,BIOS.DRV_GET_PAR
|
||||||
RST ToBIOS
|
RST ToBIOS
|
||||||
@ -451,13 +451,13 @@ GetParams: EX DE,HL
|
|||||||
PUSH DE
|
PUSH DE
|
||||||
AND A
|
AND A
|
||||||
LD DE,#FFFF
|
LD DE,#FFFF
|
||||||
LD L,(IY+LOGDRV.SIZE_IN_SECTORS+0)
|
LD L,(IY+DRIVES_DRIVER.LOGDRV.SIZE_IN_SECTORS+0)
|
||||||
LD H,(IY+LOGDRV.SIZE_IN_SECTORS+1)
|
LD H,(IY+DRIVES_DRIVER.LOGDRV.SIZE_IN_SECTORS+1)
|
||||||
SBC HL,DE
|
SBC HL,DE
|
||||||
JR NZ,.ReDEFINE_SP
|
JR NZ,.ReDEFINE_SP
|
||||||
;
|
;
|
||||||
LD L,(IY+LOGDRV.SIZE_IN_SECTORS+2)
|
LD L,(IY+DRIVES_DRIVER.LOGDRV.SIZE_IN_SECTORS+2)
|
||||||
LD H,(IY+LOGDRV.SIZE_IN_SECTORS+3)
|
LD H,(IY+DRIVES_DRIVER.LOGDRV.SIZE_IN_SECTORS+3)
|
||||||
SBC HL,DE
|
SBC HL,DE
|
||||||
JR Z,.ReDEFINE_Skip
|
JR Z,.ReDEFINE_Skip
|
||||||
;
|
;
|
||||||
@ -490,13 +490,13 @@ GetParams: EX DE,HL
|
|||||||
RLA
|
RLA
|
||||||
;
|
;
|
||||||
; SECTORS ON LOGICAL DISK
|
; SECTORS ON LOGICAL DISK
|
||||||
LD E,(IY+LOGDRV.SIZE_IN_SECTORS+0)
|
LD E,(IY+DRIVES_DRIVER.LOGDRV.SIZE_IN_SECTORS+0)
|
||||||
LD D,(IY+LOGDRV.SIZE_IN_SECTORS+1)
|
LD D,(IY+DRIVES_DRIVER.LOGDRV.SIZE_IN_SECTORS+1)
|
||||||
LD L,(IY+LOGDRV.SIZE_IN_SECTORS+2)
|
LD L,(IY+DRIVES_DRIVER.LOGDRV.SIZE_IN_SECTORS+2)
|
||||||
LD H,(IY+LOGDRV.SIZE_IN_SECTORS+3)
|
LD H,(IY+DRIVES_DRIVER.LOGDRV.SIZE_IN_SECTORS+3)
|
||||||
;
|
;
|
||||||
;[x] 17.12.2023 § £à㧪 á ªâ¨¢®£® à §¤¥« , ¥ á ¯¥à¢®£®
|
;[x] 17.12.2023 § £à㧪 á ªâ¨¢®£® à §¤¥« , ¥ á ¯¥à¢®£®
|
||||||
LD C,(IY+LOGDRV.PARTITION_RECORD_NUM) ; ®¬¥à ¯ àâ¨æ¨¨ ¢ MBR ¤¨áª
|
LD C,(IY+DRIVES_DRIVER.LOGDRV.PARTITION_RECORD_NUM) ; ®¬¥à ¯ àâ¨æ¨¨ ¢ MBR ¤¨áª
|
||||||
;
|
;
|
||||||
;[ ] 04/01/2025 ¢®§¢à 饨¥ à §¬¥à ᥪâ®à
|
;[ ] 04/01/2025 ¢®§¢à 饨¥ à §¬¥à ᥪâ®à
|
||||||
; 00 - undefined
|
; 00 - undefined
|
||||||
@ -511,7 +511,7 @@ GetParams: EX DE,HL
|
|||||||
;EX AF,AF'
|
;EX AF,AF'
|
||||||
LD B,A
|
LD B,A
|
||||||
;
|
;
|
||||||
LD A,(IY+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/...
|
||||||
EX AF,AF'
|
EX AF,AF'
|
||||||
;
|
;
|
||||||
AND A
|
AND A
|
||||||
@ -559,7 +559,7 @@ MediaCheck: PUSH IY
|
|||||||
SCF
|
SCF
|
||||||
; [ ] media changed
|
; [ ] media changed
|
||||||
.next_step: PUSH AF ; ‘®åà 塞 CF ¨ ª®¤ ®è¨¡ª¨ UNKNOWN_FORMAT, ¥á«¨ CF=1
|
.next_step: PUSH AF ; ‘®åà 塞 CF ¨ ª®¤ ®è¨¡ª¨ UNKNOWN_FORMAT, ¥á«¨ CF=1
|
||||||
LD A,(IY + LOGDRV.PHISICAL_DRV_NUMBER)
|
LD A,(IY +DRIVES_DRIVER.LOGDRV.PHISICAL_DRV_NUMBER)
|
||||||
LD C,BIOS.DRV_GET_PAR ;[ ] media change ¯¥à¥¤¥« âì «®£¨ªã âãâ ¨ ¢ ¡¨®á? ; !FIXIT
|
LD C,BIOS.DRV_GET_PAR ;[ ] media change ¯¥à¥¤¥« âì «®£¨ªã âãâ ¨ ¢ ¡¨®á? ; !FIXIT
|
||||||
PUSH IY
|
PUSH IY
|
||||||
RST ToBIOS
|
RST ToBIOS
|
||||||
@ -574,7 +574,7 @@ MediaCheck: PUSH IY
|
|||||||
POP IY
|
POP IY
|
||||||
RET
|
RET
|
||||||
;
|
;
|
||||||
.next_check: BIT 1,(IY + LOGDRV.MediaParameters)
|
.next_check: BIT 1,(IY +DRIVES_DRIVER.LOGDRV.MediaParameters)
|
||||||
JR NZ,.Reinit
|
JR NZ,.Reinit
|
||||||
;
|
;
|
||||||
POP AF ; ‚®ááâ ¢«¨¢ ¥¬ CF ¨ ª®¤ ®è¨¡ª¨ UNKNOWN_FORMAT, ¥á«¨ CF=1
|
POP AF ; ‚®ááâ ¢«¨¢ ¥¬ CF ¨ ª®¤ ®è¨¡ª¨ UNKNOWN_FORMAT, ¥á«¨ CF=1
|
||||||
@ -604,8 +604,8 @@ MediaCheck: PUSH IY
|
|||||||
|
|
||||||
; [ ] custorm sector size
|
; [ ] custorm sector size
|
||||||
CHECK_IDE_SECTOR_SIZE: ;RET
|
CHECK_IDE_SECTOR_SIZE: ;RET
|
||||||
LD E,(IY+LOGDRV.SECTOR_SIZE)
|
LD E,(IY+DRIVES_DRIVER.LOGDRV.SECTOR_SIZE)
|
||||||
LD D,(IY+LOGDRV.SECTOR_SIZE+1)
|
LD D,(IY+DRIVES_DRIVER.LOGDRV.SECTOR_SIZE+1)
|
||||||
PUSH HL
|
PUSH HL
|
||||||
LD HL,-DSS_MAX_SECTOR_SIZE - 1
|
LD HL,-DSS_MAX_SECTOR_SIZE - 1
|
||||||
ADD HL,DE
|
ADD HL,DE
|
||||||
@ -618,10 +618,10 @@ ReDEFINE_PARTITIONS:
|
|||||||
LD B,A ; HDD_INIT_TABLE.RemovableMedia
|
LD B,A ; HDD_INIT_TABLE.RemovableMedia
|
||||||
LD A,DSS_MAX_DRIVES_AMOUNT - 1 ; ®£à ¨ç¨â¥«ì, ç⮡ ¥ ¤¥â¥ªâ¨âì ¡®«ìè¥ 1 à §¤¥«
|
LD A,DSS_MAX_DRIVES_AMOUNT - 1 ; ®£à ¨ç¨â¥«ì, ç⮡ ¥ ¤¥â¥ªâ¨âì ¡®«ìè¥ 1 à §¤¥«
|
||||||
LD (Init.count),A
|
LD (Init.count),A
|
||||||
LD A,(IY + LOGDRV.PHISICAL_DRV_NUMBER)
|
LD A,(IY +DRIVES_DRIVER.LOGDRV.PHISICAL_DRV_NUMBER)
|
||||||
LD (CURRENT_DRIVE.Number),A
|
LD (CURRENT_DRIVE.Number),A
|
||||||
LD (LOGDRV_OFFSET),IY
|
LD (LOGDRV_OFFSET),IY
|
||||||
;RES 1,(IY + LOGDRV.MediaParameters) - á¡à áë¢ ¥âáï ¢ DEFINE_PARTITIONS
|
;RES 1,(IY +DRIVES_DRIVER.LOGDRV.MediaParameters) - á¡à áë¢ ¥âáï ¢ DEFINE_PARTITIONS
|
||||||
;LD B,%0000'0011 ;!HARDCODE drive changed, removable media
|
;LD B,%0000'0011 ;!HARDCODE drive changed, removable media
|
||||||
JP DEFINE_PARTITIONS
|
JP DEFINE_PARTITIONS
|
||||||
|
|
||||||
@ -718,7 +718,7 @@ Exec_BIOS: PUSH IY
|
|||||||
CP BIOS.Error.ATAPI.UnitAttention
|
CP BIOS.Error.ATAPI.UnitAttention
|
||||||
SCF
|
SCF
|
||||||
RET NZ
|
RET NZ
|
||||||
SET 1,(IY + LOGDRV.MediaParameters)
|
SET 1,(IY +DRIVES_DRIVER.LOGDRV.MediaParameters)
|
||||||
RET
|
RET
|
||||||
;
|
;
|
||||||
|
|
||||||
@ -759,26 +759,26 @@ DEFINE_PARTITIONS:
|
|||||||
LD E,XL
|
LD E,XL
|
||||||
;BPB SECTOR
|
;BPB SECTOR
|
||||||
LD IX,(LOGDRV_OFFSET)
|
LD IX,(LOGDRV_OFFSET)
|
||||||
LD (IX + LOGDRV.SECTOR_OFFSET + 0),E
|
LD (IX +DRIVES_DRIVER.LOGDRV.SECTOR_OFFSET + 0),E
|
||||||
LD (IX + LOGDRV.SECTOR_OFFSET + 1),D
|
LD (IX +DRIVES_DRIVER.LOGDRV.SECTOR_OFFSET + 1),D
|
||||||
LD (IX + LOGDRV.SECTOR_OFFSET + 2),L
|
LD (IX +DRIVES_DRIVER.LOGDRV.SECTOR_OFFSET + 2),L
|
||||||
LD (IX + LOGDRV.SECTOR_OFFSET + 3),H
|
LD (IX +DRIVES_DRIVER.LOGDRV.SECTOR_OFFSET + 3),H
|
||||||
LD E,(IY + BOOT_SECTOR.Partition.Size_LBA + 0)
|
LD E,(IY + BOOT_SECTOR.Partition.Size_LBA + 0)
|
||||||
LD D,(IY + BOOT_SECTOR.Partition.Size_LBA + 1)
|
LD D,(IY + BOOT_SECTOR.Partition.Size_LBA + 1)
|
||||||
LD L,(IY + BOOT_SECTOR.Partition.Size_LBA + 2)
|
LD L,(IY + BOOT_SECTOR.Partition.Size_LBA + 2)
|
||||||
LD H,(IY + BOOT_SECTOR.Partition.Size_LBA + 3)
|
LD H,(IY + BOOT_SECTOR.Partition.Size_LBA + 3)
|
||||||
;SIZE DISK
|
;SIZE DISK
|
||||||
LD (IX + LOGDRV.SIZE_IN_SECTORS + 0),E
|
LD (IX +DRIVES_DRIVER.LOGDRV.SIZE_IN_SECTORS + 0),E
|
||||||
LD (IX + LOGDRV.SIZE_IN_SECTORS + 1),D
|
LD (IX +DRIVES_DRIVER.LOGDRV.SIZE_IN_SECTORS + 1),D
|
||||||
LD (IX + LOGDRV.SIZE_IN_SECTORS + 2),L
|
LD (IX +DRIVES_DRIVER.LOGDRV.SIZE_IN_SECTORS + 2),L
|
||||||
LD (IX + LOGDRV.SIZE_IN_SECTORS + 3),H
|
LD (IX +DRIVES_DRIVER.LOGDRV.SIZE_IN_SECTORS + 3),H
|
||||||
; [ ] sector size
|
; [ ] sector size
|
||||||
CALL GetSectorSize
|
CALL GetSectorSize
|
||||||
LD IX,(LOGDRV_OFFSET)
|
LD IX,(LOGDRV_OFFSET)
|
||||||
LD (IX + LOGDRV.SECTOR_SIZE),C
|
LD (IX +DRIVES_DRIVER.LOGDRV.SECTOR_SIZE),C
|
||||||
LD (IX + LOGDRV.SECTOR_SIZE + 1),B
|
LD (IX +DRIVES_DRIVER.LOGDRV.SECTOR_SIZE + 1),B
|
||||||
LD A,(CURRENT_DRIVE.Removable)
|
LD A,(CURRENT_DRIVE.Removable)
|
||||||
LD (IX + LOGDRV.MediaParameters),A
|
LD (IX +DRIVES_DRIVER.LOGDRV.MediaParameters),A
|
||||||
;[x] 17.12.2023 § £à㧪 á ªâ¨¢®£® à §¤¥« , ¥ á ¯¥à¢®£®
|
;[x] 17.12.2023 § £à㧪 á ªâ¨¢®£® à §¤¥« , ¥ á ¯¥à¢®£®
|
||||||
.ExtendedPartitionFlag+1:
|
.ExtendedPartitionFlag+1:
|
||||||
LD A,0
|
LD A,0
|
||||||
@ -790,7 +790,7 @@ DEFINE_PARTITIONS:
|
|||||||
PUSH BC
|
PUSH BC
|
||||||
LD A,+(_sMBR_PARTITION_TABLE / _sMBR_PARTITION_RECORD) ; Number of entries in the partition table
|
LD A,+(_sMBR_PARTITION_TABLE / _sMBR_PARTITION_RECORD) ; Number of entries in the partition table
|
||||||
SUB B
|
SUB B
|
||||||
.not_supported: LD (IX + LOGDRV.PARTITION_RECORD_NUM),A
|
.not_supported: LD (IX +DRIVES_DRIVER.LOGDRV.PARTITION_RECORD_NUM),A
|
||||||
;
|
;
|
||||||
CALL INC_DRV_COUNT
|
CALL INC_DRV_COUNT
|
||||||
RET NC
|
RET NC
|
||||||
@ -817,8 +817,8 @@ DEFINE_PARTITIONS:
|
|||||||
JP .NextPartition ; à §¤¥« ¥ ¯®¤¤¥à¦¨¢ ¥âáï
|
JP .NextPartition ; à §¤¥« ¥ ¯®¤¤¥à¦¨¢ ¥âáï
|
||||||
;
|
;
|
||||||
.set_drv_tbl: LD A,(CURRENT_DRIVE.Number)
|
.set_drv_tbl: LD A,(CURRENT_DRIVE.Number)
|
||||||
LD (IX + LOGDRV.PHISICAL_DRV_NUMBER),A
|
LD (IX +DRIVES_DRIVER.LOGDRV.PHISICAL_DRV_NUMBER),A
|
||||||
LD DE,LOGDRV.TBL_Entry ;DSKITEM
|
LD DE,DRIVES_DRIVER.LOGDRV.TBL_Entry ;DSKITEM
|
||||||
ADD IX,DE
|
ADD IX,DE
|
||||||
LD (LOGDRV_OFFSET),IX
|
LD (LOGDRV_OFFSET),IX
|
||||||
RET
|
RET
|
||||||
@ -849,20 +849,20 @@ DEFINE_PARTITIONS:
|
|||||||
.set_LOGDRV: ;BPB SECTOR ;!TODO ¥á«¨ CD-ROM, â® ¤à㣮© ®¬¥à ᥪâ®à
|
.set_LOGDRV: ;BPB SECTOR ;!TODO ¥á«¨ CD-ROM, â® ¤à㣮© ®¬¥à ᥪâ®à
|
||||||
LD IX,(LOGDRV_OFFSET)
|
LD IX,(LOGDRV_OFFSET)
|
||||||
LD A,(CURRENT_DRIVE.Removable)
|
LD A,(CURRENT_DRIVE.Removable)
|
||||||
LD (IX + LOGDRV.MediaParameters),A
|
LD (IX +DRIVES_DRIVER.LOGDRV.MediaParameters),A
|
||||||
XOR A
|
XOR A
|
||||||
LD (IX + LOGDRV.SECTOR_OFFSET + 0),A
|
LD (IX +DRIVES_DRIVER.LOGDRV.SECTOR_OFFSET + 0),A
|
||||||
LD (IX + LOGDRV.SECTOR_OFFSET + 1),A
|
LD (IX +DRIVES_DRIVER.LOGDRV.SECTOR_OFFSET + 1),A
|
||||||
LD (IX + LOGDRV.SECTOR_OFFSET + 2),A
|
LD (IX +DRIVES_DRIVER.LOGDRV.SECTOR_OFFSET + 2),A
|
||||||
LD (IX + LOGDRV.SECTOR_OFFSET + 3),A
|
LD (IX +DRIVES_DRIVER.LOGDRV.SECTOR_OFFSET + 3),A
|
||||||
; [ ] SIZE DISK
|
; [ ] SIZE DISK
|
||||||
LD (IX + LOGDRV.SIZE_IN_SECTORS + 0),E
|
LD (IX +DRIVES_DRIVER.LOGDRV.SIZE_IN_SECTORS + 0),E
|
||||||
LD (IX + LOGDRV.SIZE_IN_SECTORS + 1),D
|
LD (IX +DRIVES_DRIVER.LOGDRV.SIZE_IN_SECTORS + 1),D
|
||||||
LD (IX + LOGDRV.SIZE_IN_SECTORS + 2),L
|
LD (IX +DRIVES_DRIVER.LOGDRV.SIZE_IN_SECTORS + 2),L
|
||||||
LD (IX + LOGDRV.SIZE_IN_SECTORS + 3),H
|
LD (IX +DRIVES_DRIVER.LOGDRV.SIZE_IN_SECTORS + 3),H
|
||||||
; [ ] sector size
|
; [ ] sector size
|
||||||
LD (IX + LOGDRV.SECTOR_SIZE),C
|
LD (IX +DRIVES_DRIVER.LOGDRV.SECTOR_SIZE),C
|
||||||
LD (IX + LOGDRV.SECTOR_SIZE + 1),B
|
LD (IX +DRIVES_DRIVER.LOGDRV.SECTOR_SIZE + 1),B
|
||||||
RET
|
RET
|
||||||
;
|
;
|
||||||
; ¢å®¤: B - bit0=1 removable, bit1=1 drive changed, bit7..2 reserved
|
; ¢å®¤: B - bit0=1 removable, bit1=1 drive changed, bit7..2 reserved
|
||||||
@ -981,8 +981,8 @@ DEFINE_PARTITIONS:
|
|||||||
LD C,XL
|
LD C,XL
|
||||||
CALL .set_LOGDRV
|
CALL .set_LOGDRV
|
||||||
LD A,(CURRENT_DRIVE.Removable)
|
LD A,(CURRENT_DRIVE.Removable)
|
||||||
LD (IX + LOGDRV.MediaParameters),A
|
LD (IX +DRIVES_DRIVER.LOGDRV.MediaParameters),A
|
||||||
LD (IX + LOGDRV.PARTITION_RECORD_NUM),#FF
|
LD (IX +DRIVES_DRIVER.LOGDRV.PARTITION_RECORD_NUM),#FF
|
||||||
CALL .set_drv_tbl
|
CALL .set_drv_tbl
|
||||||
JP INC_DRV_COUNT
|
JP INC_DRV_COUNT
|
||||||
;
|
;
|
||||||
@ -1028,7 +1028,7 @@ EXT_Partition: ;CURRENT PARTITION TABLE
|
|||||||
.Low: DW #0000
|
.Low: DW #0000
|
||||||
.High: DW #0000
|
.High: DW #0000
|
||||||
;
|
;
|
||||||
LOGDRV_OFFSET: DW LOGDRV ;POINTER ON CURRENT DISK RECORD
|
LOGDRV_OFFSET: DW DRIVES_DRIVER.LOGDRV ;POINTER ON CURRENT DISK RECORD
|
||||||
;=======================================================================
|
;=======================================================================
|
||||||
|
|
||||||
ENDMODULE
|
ENDMODULE ;IDE_DRV
|
||||||
@ -190,7 +190,7 @@
|
|||||||
|
|
||||||
|
|
||||||
; MACRO CALL GET_RAMDRV_NUM
|
; MACRO CALL GET_RAMDRV_NUM
|
||||||
; LD BC,RAMDTBL
|
; LD BC,DRIVES_DRIVER.RAMDTBL
|
||||||
; SLA A
|
; SLA A
|
||||||
; ADD A,C
|
; ADD A,C
|
||||||
; LD C,A
|
; LD C,A
|
||||||
@ -316,7 +316,7 @@ WriteLong: PUSH BC
|
|||||||
; ; LD (S_P_P),A
|
; ; LD (S_P_P),A
|
||||||
|
|
||||||
; LD BC,#0*256 + BIOS.GET_RAMD_ST ; <20>®«ã票¥ ¨¤¥â¨ä¨ª â®à ¡«®ª , § 祮£® RAM-Disk
|
; LD BC,#0*256 + BIOS.GET_RAMD_ST ; <20>®«ã票¥ ¨¤¥â¨ä¨ª â®à ¡«®ª , § 祮£® RAM-Disk
|
||||||
; LD DE,RAMDTBL
|
; LD DE,DRIVES_DRIVER.RAMDTBL
|
||||||
; .initLoop:
|
; .initLoop:
|
||||||
; PUSH BC
|
; PUSH BC
|
||||||
; LD A,B
|
; LD A,B
|
||||||
@ -335,11 +335,11 @@ WriteLong: PUSH BC
|
|||||||
; JP 1F
|
; JP 1F
|
||||||
; .noDRV: POP BC
|
; .noDRV: POP BC
|
||||||
; 1: INC B
|
; 1: INC B
|
||||||
; LD A,RAMDTBL.Size / RAMDTBL.TBL_Entry
|
; LD A,DRIVES_DRIVER.RAMDTBL.Size / RAMDTBL.TBL_Entry
|
||||||
; CP B
|
; CP B
|
||||||
; JR NZ,.initLoop
|
; JR NZ,.initLoop
|
||||||
|
|
||||||
; LD HL,RAMDTBL ;!FIXIT LD HL,-RAMDTBL
|
; LD HL,DRIVES_DRIVER.RAMDTBL ;!FIXIT LD HL,-RAMDTBL
|
||||||
; EX DE,HL
|
; EX DE,HL
|
||||||
; AND A ;!FIXIT ----
|
; AND A ;!FIXIT ----
|
||||||
; SBC HL,DE ;!FIXIT ADD HL,DE
|
; SBC HL,DE ;!FIXIT ADD HL,DE
|
||||||
@ -368,7 +368,7 @@ Init:
|
|||||||
; LD (S_P_P),A
|
; LD (S_P_P),A
|
||||||
|
|
||||||
LD BC,0*256+BIOS.GET_RAMD_ST ; <20>®«ã票¥ ¨¤¥â¨ä¨ª â®à ¡«®ª , § 祮£® RAM-Disk
|
LD BC,0*256+BIOS.GET_RAMD_ST ; <20>®«ã票¥ ¨¤¥â¨ä¨ª â®à ¡«®ª , § 祮£® RAM-Disk
|
||||||
LD DE,RAMDTBL
|
LD DE,DRIVES_DRIVER.RAMDTBL
|
||||||
.initLoop: PUSH BC
|
.initLoop: PUSH BC
|
||||||
LD A,B
|
LD A,B
|
||||||
PUSH DE
|
PUSH DE
|
||||||
@ -390,11 +390,11 @@ Init:
|
|||||||
;
|
;
|
||||||
.noDRV: POP BC
|
.noDRV: POP BC
|
||||||
.skip_pop: INC B
|
.skip_pop: INC B
|
||||||
LD A,RAMDTBL.Size/RAMDTBL.TBL_Entry
|
LD A,DRIVES_DRIVER.RAMDTBL.Size/DRIVES_DRIVER.RAMDTBL.TBL_Entry
|
||||||
CP B
|
CP B
|
||||||
JR NZ,.initLoop
|
JR NZ,.initLoop
|
||||||
|
|
||||||
LD HL,RAMDTBL ;!FIXIT LD HL,-RAMDTBL
|
LD HL,DRIVES_DRIVER.RAMDTBL ;!FIXIT LD HL,-RAMDTBL
|
||||||
EX DE,HL
|
EX DE,HL
|
||||||
AND A ;!FIXIT ----
|
AND A ;!FIXIT ----
|
||||||
SBC HL,DE ;!FIXIT ADD HL,DE
|
SBC HL,DE ;!FIXIT ADD HL,DE
|
||||||
@ -516,7 +516,7 @@ GenIOCTL: BIT 7,B
|
|||||||
; .RSETPRM: AND A
|
; .RSETPRM: AND A
|
||||||
; RET
|
; RET
|
||||||
|
|
||||||
GET_RAMDRV_NUM: LD BC,RAMDTBL
|
GET_RAMDRV_NUM: LD BC,DRIVES_DRIVER.RAMDTBL
|
||||||
.skip_tbl: ADD A,A
|
.skip_tbl: ADD A,A
|
||||||
ADD A,C
|
ADD A,C
|
||||||
LD C,A
|
LD C,A
|
||||||
|
|||||||
@ -69,7 +69,7 @@ DEPLOY: ;Allocate memory
|
|||||||
IN A,(SLOT3)
|
IN A,(SLOT3)
|
||||||
PUSH AF
|
PUSH AF
|
||||||
IN A,(SLOT0)
|
IN A,(SLOT0)
|
||||||
LD (DRV_CONTENT + DRV_PAGE.MAIN_PAGE_NUMBER),A
|
LD (DRV_CONTENT + DRIVES_DRIVER.DRV_PAGE.MAIN_PAGE_NUMBER),A
|
||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
;
|
;
|
||||||
LD A,C
|
LD A,C
|
||||||
@ -82,7 +82,7 @@ DEPLOY: ;Allocate memory
|
|||||||
IN A,(SLOT0)
|
IN A,(SLOT0)
|
||||||
LD (HL),A
|
LD (HL),A
|
||||||
; ¤«ï API ¤à ©¢¥à ¬ë誨
|
; ¤«ï API ¤à ©¢¥à ¬ë誨
|
||||||
LD (MOUSE_HANDLER.CorePage),A
|
LD (DRIVES_DRIVER.MOUSE_HANDLER.CorePage),A
|
||||||
LD A,(BANKTBL + DRVPAGE)
|
LD A,(BANKTBL + DRVPAGE)
|
||||||
LD (RST_0x30.drv_page),A
|
LD (RST_0x30.drv_page),A
|
||||||
;
|
;
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
525
|
526
|
||||||
@ -1 +1 @@
|
|||||||
Subproject commit a0e68ce3a19bd47537585e49bfbf5e45fab197a1
|
Subproject commit 1dabd783c85be491b704d038f9efabbaf8fe697e
|
||||||
Loading…
Reference in New Issue
Block a user