mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-15 17:31:47 +03:00
-bug with path
This commit is contained in:
parent
463c6155f5
commit
a7da7376ec
@ -46,6 +46,6 @@ DEL_FN: ;!TEST
|
|||||||
POP AF
|
POP AF
|
||||||
POP DE
|
POP DE
|
||||||
JP NC,.loop
|
JP NC,.loop
|
||||||
CALL WR_FAT
|
CALL WR_FAT ;!FIXIT ¬®¦Ąâ Ą 㦠âăâ? ’ ¬ ¤ «ěčĄ ˇă¤Ąâ
|
||||||
JP SAVEDIR ; á¡à®á¨âì ª¥è ª â «®£ ¤¨áª
|
JP SAVEDIR ; á¡à®á¨âì ª¥è ª â «®£ ¤¨áª
|
||||||
;
|
;
|
||||||
@ -350,9 +350,8 @@ BLOKRD8 ADD HL,DE
|
|||||||
ECL1 AND A
|
ECL1 AND A
|
||||||
RET
|
RET
|
||||||
|
|
||||||
;--------------------
|
;-----------------------------------------------------------------------
|
||||||
|
BLOK_WR.Error:
|
||||||
BLOKWRC:
|
|
||||||
POP BC
|
POP BC
|
||||||
;[x] SAVE CLUSTER AFTER WRITE ;!TEST
|
;[x] SAVE CLUSTER AFTER WRITE ;!TEST
|
||||||
POP BC
|
POP BC
|
||||||
@ -363,7 +362,7 @@ BLOK_WR.ErrorWrite:
|
|||||||
LD A,DSS_Error.sys.WRITE_ERROR
|
LD A,DSS_Error.sys.WRITE_ERROR
|
||||||
SCF
|
SCF
|
||||||
RET
|
RET
|
||||||
|
;
|
||||||
;WRITE SECTORS OF FILE
|
;WRITE SECTORS OF FILE
|
||||||
;HL:DE - FP (in sectors), IX - data in RAM
|
;HL:DE - FP (in sectors), IX - data in RAM
|
||||||
; B - Amount sectors
|
; B - Amount sectors
|
||||||
@ -390,13 +389,15 @@ BLOK_WR:
|
|||||||
;
|
;
|
||||||
PUSH BC
|
PUSH BC
|
||||||
CALL G_CLUST
|
CALL G_CLUST
|
||||||
JR C,BLOKWRC
|
JR C,.Error
|
||||||
LD (IY+_sFM.ST_CLUSTER),L
|
LD (IY+_sFM.ST_CLUSTER),L
|
||||||
LD (IY+_sFM.ST_CLUSTER+1),H
|
LD (IY+_sFM.ST_CLUSTER+1),H
|
||||||
LD DE,(FatBuffer.ENDCLUS)
|
LD DE,(FatBuffer.ENDCLUS)
|
||||||
CALL W_T_FAT
|
CALL W_T_FAT
|
||||||
PUSH HL
|
PUSH HL
|
||||||
CALL WR_FAT
|
;!TEST ;!TODO 2/12/23 [ ] ¡ £ á ¨§¡ëâ®ç®© § ¯¨áìî WR_FAT?
|
||||||
|
;CALL WR_FAT ; ¯®¤ª«. ¡ ªã ª¥è FAT ¨ § ¯¨á âì ¥£® ¤¨áª
|
||||||
|
;
|
||||||
POP HL
|
POP HL
|
||||||
POP BC
|
POP BC
|
||||||
JP .WR2
|
JP .WR2
|
||||||
@ -438,14 +439,13 @@ BLOK_WR:
|
|||||||
JP .WR2
|
JP .WR2
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
.loop: PUSH BC
|
.loop: PUSH BC
|
||||||
CALL R_F_FAT
|
CALL R_F_FAT
|
||||||
JR NC,.WRB
|
JR NC,.WRB
|
||||||
PUSH HL
|
PUSH HL
|
||||||
CALL INC_FAT
|
CALL INC_FAT
|
||||||
POP HL
|
POP HL
|
||||||
JR C,BLOKWRC
|
JR C,.Error
|
||||||
CALL R_F_FAT
|
CALL R_F_FAT
|
||||||
.WRB: POP BC
|
.WRB: POP BC
|
||||||
EX DE,HL
|
EX DE,HL
|
||||||
@ -461,7 +461,6 @@ BLOK_WR:
|
|||||||
LD (IY+_sFM.KnownOffset_L),C
|
LD (IY+_sFM.KnownOffset_L),C
|
||||||
LD (IY+_sFM.KnownOffset_H),B
|
LD (IY+_sFM.KnownOffset_H),B
|
||||||
;
|
;
|
||||||
|
|
||||||
POP DE
|
POP DE
|
||||||
POP BC
|
POP BC
|
||||||
LD A,(CORE_BUFFERS.BootSector.S_P_C)
|
LD A,(CORE_BUFFERS.BootSector.S_P_C)
|
||||||
@ -491,16 +490,20 @@ BLOK_WR:
|
|||||||
POP BC
|
POP BC
|
||||||
LD HL,(READ.MEM)
|
LD HL,(READ.MEM)
|
||||||
LD DE,(CORE_BUFFERS.BootSector.B_P_S)
|
LD DE,(CORE_BUFFERS.BootSector.B_P_S)
|
||||||
|
;
|
||||||
.loop2: ADD HL,DE
|
.loop2: ADD HL,DE
|
||||||
DEC C
|
DEC C
|
||||||
JR NZ,.loop2
|
JR NZ,.loop2
|
||||||
|
;
|
||||||
LD (READ.MEM),HL
|
LD (READ.MEM),HL
|
||||||
POP DE
|
POP DE
|
||||||
;
|
;
|
||||||
LD A,B
|
LD A,B
|
||||||
OR A
|
OR A
|
||||||
RET Z
|
RET Z
|
||||||
.WR6: LD HL,CORE_BUFFERS.BootSector.S_P_C
|
;
|
||||||
|
.big_loop:
|
||||||
|
LD HL,CORE_BUFFERS.BootSector.S_P_C
|
||||||
LD A,B
|
LD A,B
|
||||||
SUB (HL)
|
SUB (HL)
|
||||||
LD B,A
|
LD B,A
|
||||||
@ -541,7 +544,8 @@ BLOK_WR:
|
|||||||
LD (READ.MEM),HL
|
LD (READ.MEM),HL
|
||||||
POP DE
|
POP DE
|
||||||
;
|
;
|
||||||
JR .WR6
|
JR .big_loop
|
||||||
|
;
|
||||||
.ErrorFull:
|
.ErrorFull:
|
||||||
POP BC
|
POP BC
|
||||||
LD A,DSS_Error.sys.DISK_FULL
|
LD A,DSS_Error.sys.DISK_FULL
|
||||||
@ -554,12 +558,19 @@ TSTSIZE:
|
|||||||
LD L,(IY+_sFM.F_POSITION) ;FP LOW
|
LD L,(IY+_sFM.F_POSITION) ;FP LOW
|
||||||
LD H,(IY+_sFM.F_POSITION+1)
|
LD H,(IY+_sFM.F_POSITION+1)
|
||||||
ADD HL,DE
|
ADD HL,DE
|
||||||
|
;
|
||||||
EXX
|
EXX
|
||||||
LD DE,0
|
;LD DE,0 ;!TEST
|
||||||
LD L,(IY+_sFM.F_POSITION+2) ;FP HIGH
|
LD L,(IY+_sFM.F_POSITION+2) ;FP HIGH
|
||||||
LD H,(IY+_sFM.F_POSITION+3)
|
LD H,(IY+_sFM.F_POSITION+3)
|
||||||
ADC HL,DE
|
;!TEST
|
||||||
|
JR NC,.no_inc_hl
|
||||||
|
INC HL
|
||||||
|
;ADC HL,DE
|
||||||
|
;
|
||||||
|
.no_inc_hl:
|
||||||
EXX ;HL':HL - NEW FP
|
EXX ;HL':HL - NEW FP
|
||||||
|
;
|
||||||
LD C,(IY+_sFM.F_SIZE)
|
LD C,(IY+_sFM.F_SIZE)
|
||||||
LD B,(IY+_sFM.F_SIZE+1) ;SIZE LOW
|
LD B,(IY+_sFM.F_SIZE+1) ;SIZE LOW
|
||||||
AND A
|
AND A
|
||||||
@ -757,7 +768,18 @@ RD_ONLY: POP DE
|
|||||||
; HL - ADDRESS
|
; HL - ADDRESS
|
||||||
; DE - SIZE
|
; DE - SIZE
|
||||||
; A - FM
|
; A - FM
|
||||||
WRITE: LD (.R_POINT),HL
|
WRITE:
|
||||||
|
;!TEST ;!TODO 5/12/23 [ ] ¡ £ á ¨§¡ëâ®ç®© § ¯¨áìî WR_FAT?
|
||||||
|
CALL WRITE_
|
||||||
|
PUSH AF
|
||||||
|
LD A,(FatCache.Update)
|
||||||
|
OR A
|
||||||
|
CALL NZ,WR_FAT ; ¯®¤ª«. ¡ ªã ª¥è FAT ¨ § ¯¨á âì ¥£® ¤¨áª
|
||||||
|
POP AF
|
||||||
|
RET
|
||||||
|
;
|
||||||
|
;
|
||||||
|
WRITE_: LD (.R_POINT),HL
|
||||||
LD (.S_POINT),HL
|
LD (.S_POINT),HL
|
||||||
PUSH DE
|
PUSH DE
|
||||||
CALL SET_FM
|
CALL SET_FM
|
||||||
|
|||||||
@ -456,7 +456,7 @@ DIR_PATH_CHECK: LD A,(HL)
|
|||||||
CP ':'
|
CP ':'
|
||||||
RET Z
|
RET Z
|
||||||
;
|
;
|
||||||
.forceCheck: LD HL,CurrentDirectory+1
|
.forceCheck: ;LD HL,CurrentDirectory+1
|
||||||
LD BC,CurrentDirectory.DEPTH-1
|
LD BC,CurrentDirectory.DEPTH-1
|
||||||
CALL .checkDrive
|
CALL .checkDrive
|
||||||
JR Z,.checkDir
|
JR Z,.checkDir
|
||||||
|
|||||||
@ -923,7 +923,7 @@ EXEC02: LD (EXE_FM),A
|
|||||||
LD XL,A
|
LD XL,A
|
||||||
LD XH,A
|
LD XH,A
|
||||||
;
|
;
|
||||||
LD B,#02
|
LD B,high Dss.Move_FP.FrEnd
|
||||||
LD A,(EXE_FM)
|
LD A,(EXE_FM)
|
||||||
CALL MOVE_FP
|
CALL MOVE_FP
|
||||||
LD DE,(CORE_BUFFERS.EXEBUFF.LD_ADDR)
|
LD DE,(CORE_BUFFERS.EXEBUFF.LD_ADDR)
|
||||||
@ -931,8 +931,13 @@ EXEC02: LD (EXE_FM),A
|
|||||||
AND #3F
|
AND #3F
|
||||||
LD D,A
|
LD D,A
|
||||||
ADD IX,DE
|
ADD IX,DE
|
||||||
LD DE,#0000
|
;!TEST
|
||||||
ADC HL,DE
|
JR NC,.no_inc_hl
|
||||||
|
INC HL
|
||||||
|
;LD DE,#0000
|
||||||
|
;ADC HL,DE
|
||||||
|
;
|
||||||
|
.no_inc_hl:
|
||||||
LD A,XH
|
LD A,XH
|
||||||
SLA A
|
SLA A
|
||||||
RL L
|
RL L
|
||||||
@ -1251,7 +1256,7 @@ M_PSP: LD HL,(CORE_BUFFERS.EXEBUFF.LD_ADDR)
|
|||||||
CPIR ;!FIXIT ¥â ¯à®¢¥àª¨ ¢ë室 ¯® BC=0
|
CPIR ;!FIXIT ¥â ¯à®¢¥àª¨ ¢ë室 ¯® BC=0
|
||||||
DEC HL
|
DEC HL
|
||||||
DEC HL
|
DEC HL
|
||||||
LD A,'\'
|
LD A,'\' ;
|
||||||
CP (HL)
|
CP (HL)
|
||||||
INC HL
|
INC HL
|
||||||
JR Z,.YP_ESLA
|
JR Z,.YP_ESLA
|
||||||
|
|||||||
@ -309,6 +309,8 @@ FINDDIR:
|
|||||||
RET Z
|
RET Z
|
||||||
LD (HL),A
|
LD (HL),A
|
||||||
INC HL
|
INC HL
|
||||||
|
LD (HL),0
|
||||||
|
INC HL
|
||||||
RET
|
RET
|
||||||
;----------------------------------------------------------------------;
|
;----------------------------------------------------------------------;
|
||||||
|
|
||||||
|
|||||||
@ -54,7 +54,7 @@ INC_FAT PUSH HL
|
|||||||
LD DE,(FatBuffer.ENDCLUS) ; ®¬¥à ª« áâ¥à
|
LD DE,(FatBuffer.ENDCLUS) ; ®¬¥à ª« áâ¥à
|
||||||
CALL W_T_FAT ; § ¯¨á âì ¢ ª¥è FAT- ®¬¥à ª« áâ¥à
|
CALL W_T_FAT ; § ¯¨á âì ¢ ª¥è FAT- ®¬¥à ª« áâ¥à
|
||||||
;!TEST ;!TODO 2/12/23 [ ] ¡ £ á ¨§¡ëâ®ç®© § ¯¨áìî WR_FAT?
|
;!TEST ;!TODO 2/12/23 [ ] ¡ £ á ¨§¡ëâ®ç®© § ¯¨áìî WR_FAT?
|
||||||
CALL WR_FAT ; ¯®¤ª«. ¡ ªã ª¥è FAT ¨ § ¯¨á âì ¥£® ¤¨áª
|
;CALL WR_FAT ; ¯®¤ª«. ¡ ªã ª¥è FAT ¨ § ¯¨á âì ¥£® ¤¨áª
|
||||||
;
|
;
|
||||||
AND A
|
AND A
|
||||||
RET
|
RET
|
||||||
@ -68,7 +68,6 @@ INC_FAT PUSH HL
|
|||||||
; CF - ª®¥æ 楯®çª¨
|
; CF - ª®¥æ 楯®çª¨
|
||||||
;!FIXIT ¤ «¥¥ § â®çª â®, çâ® ¢ DE ¢á¥£¤ 0 - à §¤¥« ¥ ¡®«ìè¥ 2Gb
|
;!FIXIT ¤ «¥¥ § â®çª â®, çâ® ¢ DE ¢á¥£¤ 0 - à §¤¥« ¥ ¡®«ìè¥ 2Gb
|
||||||
;-----------------------------------------------------------
|
;-----------------------------------------------------------
|
||||||
;!FIXIT ®â¤ ñâ à §ë© CF ¯à¨ 㤠箬 § ¢¥à襨¨ ¢ § ¢¨á¨¬®á⨠®â FAT16/FAT12
|
|
||||||
R_F_FAT:
|
R_F_FAT:
|
||||||
EX DE,HL
|
EX DE,HL
|
||||||
LD HL,(FAT_Max_Cluster)
|
LD HL,(FAT_Max_Cluster)
|
||||||
@ -87,25 +86,26 @@ R_F_FAT:
|
|||||||
JR Z,R_F_F12
|
JR Z,R_F_F12
|
||||||
; fat16, ¯à®áâ® ç¨â âì á«¥¤. ®¬¥à
|
; fat16, ¯à®áâ® ç¨â âì á«¥¤. ®¬¥à
|
||||||
R_F_F16:
|
R_F_F16:
|
||||||
LD A,H
|
; LD A,H
|
||||||
LD B,H
|
; LD B,H
|
||||||
;AND #0F
|
; ;AND #0F
|
||||||
AND FAT_CACHE.Size_Mask_16
|
; AND FAT_CACHE.Size_Mask_16
|
||||||
LD H,A
|
; LD H,A
|
||||||
LD A,B
|
; LD A,B
|
||||||
; A=A/16 ; A - BLOCK FAT (1 BLOCK = 8192 BYTES)
|
; ; A=A/16 ; A - BLOCK FAT (1 BLOCK = 8192 BYTES)
|
||||||
DUP FAT_CACHE.Degree_16
|
; DUP FAT_CACHE.Degree_16
|
||||||
RRCA
|
; RRCA
|
||||||
EDUP
|
; EDUP
|
||||||
;AND #0F
|
; ;AND #0F
|
||||||
AND FAT_CACHE.Part_Mask_16
|
; AND FAT_CACHE.Part_Mask_16
|
||||||
;
|
; ;
|
||||||
ADD HL,HL ; HL - FAT OFFSET (FROM CASH)
|
; ADD HL,HL ; HL - FAT OFFSET (FROM CASH)
|
||||||
LD BC,(FatCache) ; C - BLOCK FAT IN CASH
|
; LD BC,(FatCache) ; C - BLOCK FAT IN CASH
|
||||||
CP C
|
; CP C
|
||||||
CALL NZ,READ_FAT ; A != C - READ NEW BLOCK FAT
|
; CALL NZ,READ_FAT ; A != C - READ NEW BLOCK FAT
|
||||||
LD DE,FATPAGE.cache ; ç «® ª¥è FAT-
|
; LD DE,FATPAGE.cache ; ç «® ª¥è FAT-
|
||||||
ADD HL,DE ; ï祩ªã FAT
|
; ADD HL,DE ; ï祩ªã FAT
|
||||||
|
CALL GET_FAT16_CELL
|
||||||
LD E,(HL) ; ¯à®ç¨â âì ®¬¥à ª« áâ¥à
|
LD E,(HL) ; ¯à®ç¨â âì ®¬¥à ª« áâ¥à
|
||||||
INC HL
|
INC HL
|
||||||
LD D,(HL)
|
LD D,(HL)
|
||||||
@ -119,32 +119,34 @@ R_F_F16:
|
|||||||
RET
|
RET
|
||||||
;
|
;
|
||||||
R_F_F12:
|
R_F_F12:
|
||||||
LD D,H
|
CALL GET_FAT12_CELL
|
||||||
LD E,L
|
; LD D,H
|
||||||
RR H
|
; LD E,L
|
||||||
RR L ; ᤢ¨£ ¢¯à ¢® ç¥à¥§ CF
|
; RR H
|
||||||
PUSH AF ; á®åà. ä« £
|
; RR L ; ᤢ¨£ ¢¯à ¢® ç¥à¥§ CF
|
||||||
ADD HL,DE ; CLUSTER * 1.5
|
; PUSH AF ; á®åà. ä« £
|
||||||
;
|
; ADD HL,DE ; CLUSTER * 1.5
|
||||||
;!FIXIT å¥àï ª ª ï-â®
|
; ;
|
||||||
;IF COMPILE_UNUSED_CODE
|
; ;!FIXIT ®¯â¨¬¨§¨à®¢ âì
|
||||||
LD A,H
|
; ;IF COMPILE_UNUSED_CODE
|
||||||
LD B,H
|
; LD A,H
|
||||||
AND #1F
|
; LD B,H
|
||||||
LD H,A
|
; AND #1F
|
||||||
LD A,B
|
; LD H,A
|
||||||
RLCA
|
; LD A,B
|
||||||
RLCA
|
; RLCA
|
||||||
RLCA
|
; RLCA
|
||||||
AND #07
|
; RLCA
|
||||||
LD BC,(FatCache) ; C - BLOCK FAT IN CASH
|
; AND #07
|
||||||
CP C
|
; LD BC,(FatCache) ; C - BLOCK FAT IN CASH
|
||||||
CALL NZ,READ_FAT ; ¯à®ç¨â âì ¢ ª¥è 16 ᥪâ®à®¢ FAT-
|
; CP C
|
||||||
;ENDIF
|
; CALL NZ,READ_FAT ; ¯à®ç¨â âì ¢ ª¥è 16 ᥪâ®à®¢ FAT-
|
||||||
;
|
; ;ENDIF
|
||||||
LD DE,FATPAGE.cache ; ç «® ª¥è FAT-
|
; ;
|
||||||
ADD HL,DE ; ï祩ªã FAT
|
; LD DE,FATPAGE.cache ; ç «® ª¥è FAT-
|
||||||
POP AF ; ¢®ááâ. ä« £
|
; ADD HL,DE ; ï祩ªã FAT
|
||||||
|
; POP AF ; ¢®ááâ. ä« £
|
||||||
|
|
||||||
LD E,(HL)
|
LD E,(HL)
|
||||||
INC HL
|
INC HL
|
||||||
LD D,(HL)
|
LD D,(HL)
|
||||||
@ -208,25 +210,26 @@ W_T_FAT:
|
|||||||
JR Z,W_T_F12
|
JR Z,W_T_F12
|
||||||
W_T_F16:
|
W_T_F16:
|
||||||
PUSH DE
|
PUSH DE
|
||||||
LD A,H
|
; LD A,H
|
||||||
LD B,H
|
; LD B,H
|
||||||
;AND #0F
|
; ;AND #0F
|
||||||
AND FAT_CACHE.Size_Mask_16
|
; AND FAT_CACHE.Size_Mask_16
|
||||||
LD H,A
|
; LD H,A
|
||||||
LD A,B
|
; LD A,B
|
||||||
; A=A/16 ; A - BLOCK FAT (1 BLOCK = 8192 BYTES)
|
; ; A=A/16 ; A - BLOCK FAT (1 BLOCK = 8192 BYTES)
|
||||||
DUP FAT_CACHE.Degree_16
|
; DUP FAT_CACHE.Degree_16
|
||||||
RRCA
|
; RRCA
|
||||||
EDUP
|
; EDUP
|
||||||
;AND #0F
|
; ;AND #0F
|
||||||
AND FAT_CACHE.Part_Mask_16
|
; AND FAT_CACHE.Part_Mask_16
|
||||||
;
|
; ;
|
||||||
ADD HL,HL ; HL - FAT OFFSET (FROM CASH) ;!HARDCODE fat16 - à §¬¥à § ¯¨á¨ FAT
|
; ADD HL,HL ; HL - FAT OFFSET (FROM CASH) ;!HARDCODE fat16 - à §¬¥à § ¯¨á¨ FAT
|
||||||
LD BC,(FatCache) ; C - BLOCK FAT IN CASH
|
; LD BC,(FatCache) ; C - BLOCK FAT IN CASH
|
||||||
CP C
|
; CP C
|
||||||
CALL NZ,READ_FAT ; A != C - READ NEW BLOCK FAT
|
; CALL NZ,READ_FAT ; A != C - READ NEW BLOCK FAT
|
||||||
LD DE,FATPAGE.cache
|
; LD DE,FATPAGE.cache
|
||||||
ADD HL,DE ; ï祩ªã FAT
|
; ADD HL,DE ; ï祩ªã FAT
|
||||||
|
CALL GET_FAT16_CELL
|
||||||
POP DE
|
POP DE
|
||||||
LD (HL),E ; á®åà. ¢ ª¥è¥ FAT-
|
LD (HL),E ; á®åà. ¢ ª¥è¥ FAT-
|
||||||
INC HL ; ®¬¥à ª« áâ¥à
|
INC HL ; ®¬¥à ª« áâ¥à
|
||||||
@ -244,37 +247,39 @@ W_T_F16:
|
|||||||
; fat12
|
; fat12
|
||||||
W_T_F12: ;!FIXIT ¯¥à¥¤¥« âì ¯¥à¥¬¥ë¥ FAT_CACHE
|
W_T_F12: ;!FIXIT ¯¥à¥¤¥« âì ¯¥à¥¬¥ë¥ FAT_CACHE
|
||||||
PUSH DE
|
PUSH DE
|
||||||
LD D,H
|
; LD D,H
|
||||||
LD E,L
|
; LD E,L
|
||||||
; ADD HL,HL
|
; ; ADD HL,HL
|
||||||
; ADD HL,DE
|
; ; ADD HL,DE
|
||||||
|
; ; RR H
|
||||||
|
; ; RR L ;CLUSTER * 1.5
|
||||||
|
; ; PUSH AF
|
||||||
; RR H
|
; RR H
|
||||||
; RR L ;CLUSTER * 1.5
|
; RR L ; ᤢ¨£ ¢¯à ¢® ç¥à¥§ CF
|
||||||
; PUSH AF
|
; PUSH AF ; á®åà. ä« £
|
||||||
RR H
|
; ADD HL,DE ; CLUSTER * 1.5
|
||||||
RR L ; ᤢ¨£ ¢¯à ¢® ç¥à¥§ CF
|
; ;
|
||||||
PUSH AF ; á®åà. ä« £
|
; ;!FIXIT ®¯â¨¬¨§¨à®¢ âì
|
||||||
ADD HL,DE ; CLUSTER * 1.5
|
; ;IF COMPILE_UNUSED_CODE
|
||||||
;
|
; LD A,H
|
||||||
;!FIXIT å¥àï ª ª ï-â®
|
; LD B,H
|
||||||
;IF COMPILE_UNUSED_CODE
|
; AND #1F
|
||||||
LD A,H
|
; LD H,A
|
||||||
LD B,H
|
; LD A,B
|
||||||
AND #1F
|
; RLCA
|
||||||
LD H,A
|
; RLCA
|
||||||
LD A,B
|
; RLCA
|
||||||
RLCA
|
; AND #07
|
||||||
RLCA
|
; LD BC,(FatCache) ; C - BLOCK FAT IN CASH
|
||||||
RLCA
|
; CP C
|
||||||
AND #07
|
; CALL NZ,READ_FAT ; ¯à®ç¨â âì ¢ ª¥è 16 ᥪâ®à®¢ FAT-
|
||||||
LD BC,(FatCache) ; C - BLOCK FAT IN CASH
|
; ;ENDIF
|
||||||
CP C
|
; ;
|
||||||
CALL NZ,READ_FAT ; ¯à®ç¨â âì ¢ ª¥è 16 ᥪâ®à®¢ FAT-
|
; LD DE,FATPAGE.cache
|
||||||
;ENDIF
|
; ADD HL,DE
|
||||||
;
|
; POP AF
|
||||||
LD DE,FATPAGE.cache
|
|
||||||
ADD HL,DE
|
CALL GET_FAT12_CELL
|
||||||
POP AF
|
|
||||||
POP DE
|
POP DE
|
||||||
JP C,W_T_F01 ; ®¬¥à ¥çñâë©
|
JP C,W_T_F01 ; ®¬¥à ¥çñâë©
|
||||||
LD (HL),E
|
LD (HL),E
|
||||||
@ -314,6 +319,10 @@ W_T_F01:;
|
|||||||
POP AF
|
POP AF
|
||||||
POP HL
|
POP HL
|
||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
|
; [x] 2/12/23 FAT ¥ ¢á¥£¤ ¬®£ § ¯¨á âìáï HDD
|
||||||
|
LD A,1
|
||||||
|
LD (FatCache.Update),A
|
||||||
|
;
|
||||||
AND A
|
AND A
|
||||||
RET
|
RET
|
||||||
|
|
||||||
@ -429,11 +438,80 @@ WR_FAT: SET_PAGE_X FATPAGE
|
|||||||
RET
|
RET
|
||||||
|
|
||||||
|
|
||||||
|
;¢å®¤: HL - ®¬¥à ª« áâ¥à
|
||||||
|
;¢ë室: HL - ¤à¥á 㦮© ï祩ª¨ ¢ áâà ¨æ¥ FATPAGE
|
||||||
|
GET_FAT16_CELL:
|
||||||
|
LD A,H
|
||||||
|
LD B,H
|
||||||
|
;AND #0F
|
||||||
|
AND FAT_CACHE.Size_Mask_16
|
||||||
|
LD H,A
|
||||||
|
LD A,B
|
||||||
|
; A=A/16 ; A - BLOCK FAT (1 BLOCK = 8192 BYTES)
|
||||||
|
DUP FAT_CACHE.Degree_16
|
||||||
|
RRCA
|
||||||
|
EDUP
|
||||||
|
;AND #0F
|
||||||
|
AND FAT_CACHE.Part_Mask_16
|
||||||
|
;
|
||||||
|
ADD HL,HL ; HL - FAT OFFSET (FROM CASH)
|
||||||
|
LD BC,(FatCache) ; C - BLOCK FAT IN CASH
|
||||||
|
CP C
|
||||||
|
CALL NZ,READ_FAT ; A != C - READ NEW BLOCK FAT
|
||||||
|
LD DE,FATPAGE.cache ; ç «® ª¥è FAT-
|
||||||
|
ADD HL,DE ; ï祩ªã FAT
|
||||||
|
RET
|
||||||
|
|
||||||
|
;¢å®¤: HL - ®¬¥à ª« áâ¥à
|
||||||
|
;¢ë室: HL - ¤à¥á 㦮© ï祩ª¨ ¢ áâà ¨æ¥ FATPAGE
|
||||||
|
; CF - çñâë©/¥çñâë© ¤à¥á ª« áâ¥à
|
||||||
|
GET_FAT12_CELL:
|
||||||
|
LD D,H
|
||||||
|
LD E,L
|
||||||
|
RR H
|
||||||
|
RR L ; ᤢ¨£ ¢¯à ¢® ç¥à¥§ CF
|
||||||
|
PUSH AF ; á®åà. ä« £
|
||||||
|
ADD HL,DE ; CLUSTER * 1.5
|
||||||
|
;
|
||||||
|
;!FIXIT ®¯â¨¬¨§¨à®¢ âì
|
||||||
|
;IF COMPILE_UNUSED_CODE
|
||||||
|
LD A,H
|
||||||
|
LD B,H
|
||||||
|
|
||||||
|
;
|
||||||
|
AND #1F
|
||||||
|
;AND FAT_CACHE.Size_Mask_16
|
||||||
|
;
|
||||||
|
|
||||||
|
LD H,A
|
||||||
|
LD A,B
|
||||||
|
|
||||||
|
;
|
||||||
|
RLCA
|
||||||
|
RLCA
|
||||||
|
RLCA
|
||||||
|
;DUP FAT_CACHE.Degree_16
|
||||||
|
; RRCA
|
||||||
|
;EDUP
|
||||||
|
AND #07
|
||||||
|
;AND FAT_CACHE.Part_Mask_16
|
||||||
|
;
|
||||||
|
|
||||||
|
LD BC,(FatCache) ; C - BLOCK FAT IN CASH
|
||||||
|
CP C
|
||||||
|
CALL NZ,READ_FAT ; ¯à®ç¨â âì ¢ ª¥è 16 ᥪâ®à®¢ FAT-
|
||||||
|
;ENDIF
|
||||||
|
;
|
||||||
|
LD DE,FATPAGE.cache
|
||||||
|
ADD HL,DE
|
||||||
|
POP AF
|
||||||
|
RET
|
||||||
|
|
||||||
|
|
||||||
FatCache: WORD #0000
|
FatCache: WORD #0000
|
||||||
.Block EQU FatCache
|
.Block EQU FatCache
|
||||||
.Update EQU FatCache+1
|
.Update EQU FatCache+1
|
||||||
FAT_Max_Cluster: WORD #0FF0 ; ¬ ªá. ç¨á«® ª« áâ¥à®¢ FAT12 (¡¥§ á«ã¦.)
|
FAT_Max_Cluster: WORD #0FF0 ; ¬ ªá. ç¨á«® ª« áâ¥à®¢ (¡¥§ á«ã¦.)
|
||||||
|
|
||||||
;//MODULE: FAT_X
|
;//MODULE: FAT_X
|
||||||
;[END]
|
;[END]
|
||||||
|
|||||||
@ -4,8 +4,8 @@
|
|||||||
;//CREATE: 19-05-1998 AUTHOR: Denis Parinov
|
;//CREATE: 19-05-1998 AUTHOR: Denis Parinov
|
||||||
;//UPDATE: 24-10-1999 DNS Restore module
|
;//UPDATE: 24-10-1999 DNS Restore module
|
||||||
|
|
||||||
CMOUSE EQU #1B ; !FIXIT sp2000.inc
|
PORT_MOUSE.Ctrl EQU Z84.SIO.Ch_B.Ctrl
|
||||||
DMOUSE EQU #1A ; !FIXIT sp2000.inc
|
PORT_MOUSE.Data EQU Z84.SIO.Ch_B.Data
|
||||||
|
|
||||||
; MOUSE SOFTWARE SPECIFICATION
|
; MOUSE SOFTWARE SPECIFICATION
|
||||||
;---------------------------------------------
|
;---------------------------------------------
|
||||||
@ -164,27 +164,30 @@ MS_INIT DI
|
|||||||
;OUT (#10),A
|
;OUT (#10),A
|
||||||
;
|
;
|
||||||
XOR A ;LD A,0
|
XOR A ;LD A,0
|
||||||
OUT (CMOUSE),A
|
OUT (PORT_MOUSE.Ctrl),A
|
||||||
INC A ;LD A,1
|
INC A ;LD A,1
|
||||||
OUT (CMOUSE),A
|
OUT (PORT_MOUSE.Ctrl),A
|
||||||
DEC A ;LD A,0
|
DEC A ;LD A,0
|
||||||
OUT (CMOUSE),A
|
OUT (PORT_MOUSE.Ctrl),A
|
||||||
LD A,3
|
LD A,3
|
||||||
OUT (CMOUSE),A
|
OUT (PORT_MOUSE.Ctrl),A
|
||||||
LD A,#41
|
LD A,#41
|
||||||
OUT (CMOUSE),A
|
OUT (PORT_MOUSE.Ctrl),A
|
||||||
LD A,4
|
LD A,4
|
||||||
OUT (CMOUSE),A
|
OUT (PORT_MOUSE.Ctrl),A
|
||||||
;!TEST mouse
|
;!TEST mouse
|
||||||
LD A,#47 ; ¯¥à¢ë© ¬®¦¨â¥«ì = 16 875000/Œ1*Œ2=1215
|
LD A,#47 ; ¯¥à¢ë© ¬®¦¨â¥«ì = 16 875000/Œ1*Œ2=1215
|
||||||
;LD A,#44
|
;LD A,#44
|
||||||
;LD A,#04 ; ¯¥à¢ë© ¬®¦¨â¥«ì = 1 875000/Œ1*Œ2=4807
|
;LD A,#04 ; ¯¥à¢ë© ¬®¦¨â¥«ì = 1 875000/Œ1*Œ2=4807
|
||||||
|
OUT (PORT_MOUSE.Ctrl),A
|
||||||
;
|
;
|
||||||
OUT (CMOUSE),A
|
|
||||||
LD A,5
|
LD A,5
|
||||||
OUT (CMOUSE),A
|
OUT (PORT_MOUSE.Ctrl),A
|
||||||
LD A,#E0
|
; [ ] ¤«ï ª®à४⮣® ¨¨â Sega ¤¦®©á⨪ ¢ ¯®àâã ª¥¬¯áâ® ¤¦®©á⨪
|
||||||
OUT (CMOUSE),A
|
LD A,%1110'0000
|
||||||
|
;LD A,%0110'0000
|
||||||
|
;
|
||||||
|
OUT (PORT_MOUSE.Ctrl),A
|
||||||
|
|
||||||
;!TEST mouse
|
;!TEST mouse
|
||||||
LD A,#55
|
LD A,#55
|
||||||
@ -637,10 +640,10 @@ MS003 POP BC
|
|||||||
XOR A
|
XOR A
|
||||||
RET
|
RET
|
||||||
|
|
||||||
READ_M: IN A,(CMOUSE)
|
READ_M: IN A,(PORT_MOUSE.Ctrl)
|
||||||
RRCA
|
RRCA
|
||||||
RET NC
|
RET NC
|
||||||
IN A,(DMOUSE)
|
IN A,(PORT_MOUSE.Data)
|
||||||
LD L,A
|
LD L,A
|
||||||
BIT 6,A
|
BIT 6,A
|
||||||
CCF
|
CCF
|
||||||
@ -649,7 +652,7 @@ READ_M: IN A,(CMOUSE)
|
|||||||
;!TEST mouse freeeeezzzz
|
;!TEST mouse freeeeezzzz
|
||||||
LD BC,#2000
|
LD BC,#2000
|
||||||
;
|
;
|
||||||
TST_01: IN A,(CMOUSE)
|
TST_01: IN A,(PORT_MOUSE.Ctrl)
|
||||||
RRCA
|
RRCA
|
||||||
;!TEST mouse freeeeezzzz
|
;!TEST mouse freeeeezzzz
|
||||||
JR C,.NXT
|
JR C,.NXT
|
||||||
@ -662,7 +665,7 @@ TST_01: IN A,(CMOUSE)
|
|||||||
;JR NC,TST_01
|
;JR NC,TST_01
|
||||||
;
|
;
|
||||||
|
|
||||||
.NXT: IN A,(DMOUSE)
|
.NXT: IN A,(PORT_MOUSE.Data)
|
||||||
LD E,A
|
LD E,A
|
||||||
BIT 6,A
|
BIT 6,A
|
||||||
CCF
|
CCF
|
||||||
@ -671,7 +674,7 @@ TST_01: IN A,(CMOUSE)
|
|||||||
;[x] mouse freeeeezzzz !TEST
|
;[x] mouse freeeeezzzz !TEST
|
||||||
LD BC,#2000
|
LD BC,#2000
|
||||||
;
|
;
|
||||||
TST_02: IN A,(CMOUSE)
|
TST_02: IN A,(PORT_MOUSE.Ctrl)
|
||||||
RRCA
|
RRCA
|
||||||
;[x] mouse freeeeezzzz !TEST
|
;[x] mouse freeeeezzzz !TEST
|
||||||
JR C,.NXT
|
JR C,.NXT
|
||||||
@ -682,7 +685,7 @@ TST_02: IN A,(CMOUSE)
|
|||||||
RET
|
RET
|
||||||
;JR NC,TST_02
|
;JR NC,TST_02
|
||||||
;
|
;
|
||||||
.NXT: IN A,(DMOUSE)
|
.NXT: IN A,(PORT_MOUSE.Data)
|
||||||
LD D,A
|
LD D,A
|
||||||
BIT 6,A
|
BIT 6,A
|
||||||
CCF
|
CCF
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
769
|
784
|
||||||
@ -15,7 +15,7 @@
|
|||||||
define _shift _bit&1)) + _bit&2)) + _bit&4)) + _bit&8)) + _bit&16)) + _bit&32)) + _bit&64)) + _bit&128))
|
define _shift _bit&1)) + _bit&2)) + _bit&4)) + _bit&8)) + _bit&16)) + _bit&32)) + _bit&64)) + _bit&128))
|
||||||
;
|
;
|
||||||
FAT_CACHE:
|
FAT_CACHE:
|
||||||
.Size EQU #2000
|
.Size EQU #1000
|
||||||
.Sector_Size EQU #200
|
.Sector_Size EQU #200
|
||||||
.Sectors EQU .Size / .Sector_Size
|
.Sectors EQU .Size / .Sector_Size
|
||||||
; for FAT16
|
; for FAT16
|
||||||
@ -23,7 +23,7 @@ FAT_CACHE:
|
|||||||
.Degree_16 EQU _shift
|
.Degree_16 EQU _shift
|
||||||
.Size_Mask_16 EQU high (.Size/.bytes_record_16 - 1)
|
.Size_Mask_16 EQU high (.Size/.bytes_record_16 - 1)
|
||||||
.Part_Mask_16 EQU ((1<<(.bytes_record_16*8)) / (.Size/2))-1
|
.Part_Mask_16 EQU ((1<<(.bytes_record_16*8)) / (.Size/2))-1
|
||||||
; for FAT12
|
; for FAT12 ;!TODO
|
||||||
.bytes_record_12 EQU 2
|
.bytes_record_12 EQU 2
|
||||||
.Degree_12 EQU _shift
|
.Degree_12 EQU _shift
|
||||||
.Size_Mask_12 EQU high (.Size/.bytes_record_12 - 1)
|
.Size_Mask_12 EQU high (.Size/.bytes_record_12 - 1)
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
Subproject commit 349ba286106d21a77cf3f8a25b6f7c952eccb046
|
Subproject commit 21c7eb690adb62e35c41fdcda76dc3bf97f369b4
|
||||||
Loading…
Reference in New Issue
Block a user