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