mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-15 17:31:47 +03:00
fixed BLOCK_READ, BLOCK_WR
This commit is contained in:
parent
f13fdf4eab
commit
87c74c1ee7
@ -50,11 +50,16 @@ OPEN_FN:;!TEST Current Dir ;[x] 15/10/23
|
|||||||
LD A,(TASK)
|
LD A,(TASK)
|
||||||
LD (IY+_sFM.TASK_NUM),A
|
LD (IY+_sFM.TASK_NUM),A
|
||||||
XOR A
|
XOR A
|
||||||
; [ ] fat32
|
|
||||||
LD (IY+_sFM.KnownCluster_L),A
|
LD (IY+_sFM.KnownCluster_L),A
|
||||||
LD (IY+_sFM.KnownCluster_L+1),A
|
LD (IY+_sFM.KnownCluster_L+1),A
|
||||||
LD (IY+_sFM.KnownOffset_L),A
|
LD (IY+_sFM.KnownOffset_L),A
|
||||||
LD (IY+_sFM.KnownOffset_L+1),A
|
LD (IY+_sFM.KnownOffset_L+1),A
|
||||||
|
LD (IY+_sFM.OptimizedClusters),A
|
||||||
|
; [x] fat32
|
||||||
|
LD (IY+_sFM.KnownCluster_H),A
|
||||||
|
LD (IY+_sFM.KnownCluster_H+1),A
|
||||||
|
LD (IY+_sFM.KnownOffset_H),A
|
||||||
|
LD (IY+_sFM.KnownOffset_H+1),A
|
||||||
;
|
;
|
||||||
LD (IY+_sFM.F_POSITION),A
|
LD (IY+_sFM.F_POSITION),A
|
||||||
LD (IY+_sFM.F_POSITION+1),A
|
LD (IY+_sFM.F_POSITION+1),A
|
||||||
|
|||||||
@ -75,36 +75,46 @@ INC_FAT:
|
|||||||
|
|
||||||
;-----------------------------------------------------------
|
;-----------------------------------------------------------
|
||||||
; <20>à®ç¨â âì ¨§ ª¥è FAT- ®¬¥à á«¥¤. ª« áâ¥à
|
; <20>à®ç¨â âì ¨§ ª¥è FAT- ®¬¥à á«¥¤. ª« áâ¥à
|
||||||
; ¢å®¤: hl = ®¬¥à ª« áâ¥à
|
; ¢å®¤: hl - ®¬¥à ª« áâ¥à (¬« ¤è¥¥ á«®¢®)
|
||||||
; de = ‘’€<E28099>˜…… á«®¢® ®¬¥à ª« áâ¥à (⮫쪮 ¤«ï FAT32)
|
; hl' - ®¬¥à ª« áâ¥à (áâ à襥 á«®¢®. ⮫쪮 ¤«ï FAT32)
|
||||||
; ¢ë室: hl = ®¬¥à ª« áâ¥à
|
; ¢ë室: hl - ®¬¥à ª« áâ¥à (¬« ¤è¥¥ á«®¢®)
|
||||||
; de = ®¬¥à á«¥¤. ª« áâ¥à (¥á«¨ 0, â® ª« áâ¥à hl ᢮¡®¤¥)
|
; hl' - ®¬¥à ª« áâ¥à (áâ à襥 á«®¢®)
|
||||||
|
; de - ®¬¥à á«¥¤. ª« áâ¥à (¬« ¤è¥¥ á«®¢®. ¥á«¨ 0, â® ª« áâ¥à hl ᢮¡®¤¥)
|
||||||
|
; de' - ®¬¥à á«¥¤. ª« áâ¥à (áâ à襥 á«®¢®. ¥á«¨ 0, â® ª« áâ¥à hl' ᢮¡®¤¥)
|
||||||
; CF - ª®¥æ 楯®çª¨
|
; CF - ª®¥æ 楯®çª¨
|
||||||
;!FIXIT ¤ «¥¥ § â®çª â®, çâ® ¢ DE ¢á¥£¤ 0 - à §¤¥« ¥ ¡®«ìè¥ 2Gb
|
;!FIXIT ¤ «¥¥ § â®çª â®, çâ® ¢ DE ¢á¥£¤ 0 - ä ©« ¥ ¡®«ìè¥ 2Gb
|
||||||
;-----------------------------------------------------------
|
;-----------------------------------------------------------
|
||||||
;[ ] fat32
|
;[ ] fat32
|
||||||
READ_FROM_FAT:
|
READ_FROM_FAT:
|
||||||
;[x] fat32
|
;[x] fat32
|
||||||
PUSH DE
|
|
||||||
LD A,(FatBuffer.FAT_TYPE)
|
LD A,(FatBuffer.FAT_TYPE)
|
||||||
XOR 32
|
XOR 32
|
||||||
JR NZ,.low ; Z=0 ¯à®¢¥à塞 ¬« ¤è¥¥ á«®¢® ®¬¥à ª« áâ¥à
|
JR NZ,.low ; Z=0 ¯à®¢¥à塞 ¬« ¤è¥¥ á«®¢® ®¬¥à ª« áâ¥à
|
||||||
LD HL,(FAT_Max_Cluster_H) ; ¯à®¢¥à塞 áâ à襥 á«®¢® ®¬¥à ª« áâ¥à
|
; ¯à®¢¥à塞 áâ à襥 á«®¢® ®¬¥à ª« áâ¥à
|
||||||
JP .high
|
; !FIXIT fat32 ¯à®¢¥àïâì ®¡ á«®¢ FAT_Max_Cluster
|
||||||
|
EXX
|
||||||
|
EX DE,HL
|
||||||
|
LD HL,(FAT_Max_Cluster_H)
|
||||||
|
; CF = 0
|
||||||
|
SBC HL,DE
|
||||||
|
EX DE,HL
|
||||||
|
EXX
|
||||||
|
LD A,DSS_Error.sys.DISK_FULL
|
||||||
|
RET C
|
||||||
|
JP NZ,.correct_cluster ; ¥á«¨ FAT_Max_Cluster_H - IX != 0, â® ª« áâ¥à ª®à४âë©
|
||||||
;
|
;
|
||||||
|
; ¯à®¢¥à塞 ¬« ¤è¥ á«®¢® ®¬¥à ª« áâ¥à
|
||||||
.low: EX DE,HL
|
.low: EX DE,HL
|
||||||
LD HL,(FAT_Max_Cluster_L)
|
LD HL,(FAT_Max_Cluster_L)
|
||||||
.high: ; CF = 0
|
; CF = 0
|
||||||
SBC HL,DE
|
SBC HL,DE
|
||||||
EX DE,HL
|
EX DE,HL
|
||||||
LD A,DSS_Error.sys.DISK_FULL
|
LD A,DSS_Error.sys.DISK_FULL
|
||||||
;[x] fat32
|
|
||||||
POP DE
|
|
||||||
;
|
|
||||||
RET C
|
RET C
|
||||||
|
;
|
||||||
|
.correct_cluster:
|
||||||
SET_PAGE_X FATPAGE
|
SET_PAGE_X FATPAGE
|
||||||
|
;
|
||||||
PUSH HL
|
PUSH HL
|
||||||
PUSH AF
|
PUSH AF
|
||||||
LD A,(FatBuffer.FAT_TYPE)
|
LD A,(FatBuffer.FAT_TYPE)
|
||||||
@ -116,13 +126,20 @@ READ_FROM_FAT:
|
|||||||
LD E,(HL) ; ¯à®ç¨â âì ®¬¥à ª« áâ¥à
|
LD E,(HL) ; ¯à®ç¨â âì ®¬¥à ª« áâ¥à
|
||||||
INC HL
|
INC HL
|
||||||
LD D,(HL)
|
LD D,(HL)
|
||||||
|
;
|
||||||
POP AF
|
POP AF
|
||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
;!TODO #FFF7 - ª« áâ¥à á ª®áïç묨 ᥪâ®à ¬¨
|
|
||||||
LD HL,#FFEF ;!HARDCODE
|
LD HL,#FFEF ;!HARDCODE
|
||||||
XOR A ; DssErr.sys.NO_ERROR
|
.exit: XOR A ; ®¡ã«ï¥¬ CF ¨ ãáâ ¢«¨¢ ¥¬ ª®¤ ®è¨¡ª¨ = DssErr.sys.NO_ERROR
|
||||||
SBC HL,DE ; ¯à®¢¥àª á«ã¦. ª« áâ¥àë
|
SBC HL,DE ; ¯à®¢¥àª á«ã¦. ª« áâ¥àë
|
||||||
POP HL
|
POP HL
|
||||||
|
; [x] fat32
|
||||||
|
EXX
|
||||||
|
LD H,A
|
||||||
|
LD L,A
|
||||||
|
LD D,A
|
||||||
|
LD E,A
|
||||||
|
EXX
|
||||||
RET
|
RET
|
||||||
;
|
;
|
||||||
.FAT12: CALL GET_FAT12_CELL
|
.FAT12: CALL GET_FAT12_CELL
|
||||||
@ -147,10 +164,8 @@ READ_FROM_FAT:
|
|||||||
POP AF
|
POP AF
|
||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
LD HL,#0FEF
|
LD HL,#0FEF
|
||||||
XOR A ; ®¡ã«ï¥¬ CF ¨ ãáâ ¢«¨¢ ¥¬ ª®¤ ®è¨¡ª¨ = ã«î
|
JR .exit
|
||||||
SBC HL,DE ; ¯à®¢¥àª á«ã¦. ª« áâ¥àë
|
;
|
||||||
POP HL
|
|
||||||
RET
|
|
||||||
.FAT32: ; [ ] fat32
|
.FAT32: ; [ ] fat32
|
||||||
CALL GET_FAT32_CELL
|
CALL GET_FAT32_CELL
|
||||||
DI
|
DI
|
||||||
@ -556,115 +571,81 @@ NSECTOR:;[ ] fat32
|
|||||||
RET
|
RET
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////
|
||||||
;[ ] fat32
|
|
||||||
;[x] GET/SAVE CLUSTER NUMBER BEFORE/AFTER READ/WRITE
|
|
||||||
MACRO _GetSavedCluster exit_to
|
|
||||||
LD E,(IY+_sFM.KnownCluster_L)
|
|
||||||
LD D,(IY+_sFM.KnownCluster_L+1)
|
|
||||||
LD A,D
|
|
||||||
INC B
|
|
||||||
OR E
|
|
||||||
JR Z,exit_to
|
|
||||||
DEC B
|
|
||||||
;
|
|
||||||
PUSH DE
|
|
||||||
PUSH HL
|
|
||||||
PUSH BC
|
|
||||||
LD E,(IY+_sFM.KnownOffset_L)
|
|
||||||
LD D,(IY+_sFM.KnownOffset_L+1)
|
|
||||||
LD A,D
|
|
||||||
OR E
|
|
||||||
JR Z,.noOptimization_1
|
|
||||||
;
|
|
||||||
POP HL
|
|
||||||
SBC HL,DE
|
|
||||||
JR C,.noOptimization_2
|
|
||||||
;
|
|
||||||
LD C,L
|
|
||||||
LD B,H
|
|
||||||
POP DE
|
|
||||||
POP HL
|
|
||||||
;
|
|
||||||
INC B
|
|
||||||
JP exit_to
|
|
||||||
.noOptimization_1:
|
|
||||||
POP BC
|
|
||||||
.noOptimization_2:
|
|
||||||
POP HL
|
|
||||||
POP DE
|
|
||||||
INC B
|
|
||||||
JP exit_to
|
|
||||||
ENDM
|
|
||||||
;
|
|
||||||
;[ ] fat32
|
|
||||||
;[x] GET/SAVE CLUSTER NUMBER BEFORE/AFTER READ/WRITE
|
|
||||||
MACRO _SaveGetedCluster
|
|
||||||
LD (IY+_sFM.KnownCluster_L),L
|
|
||||||
LD (IY+_sFM.KnownCluster_L+1),H
|
|
||||||
POP BC
|
|
||||||
LD (IY+_sFM.KnownOffset_L),C
|
|
||||||
LD (IY+_sFM.KnownOffset_L+1),B
|
|
||||||
ENDM
|
|
||||||
;;
|
|
||||||
|
|
||||||
BLOCK_READ.ECL2:
|
|
||||||
;POP DE ; [ ] áâ à襥 á«®¢® ®¬¥à ª« áâ¥à (à ìè¥ ¨£®à¨à®¢ «®áì)
|
; 225ÿ937ÿ408 / 512 = 0x6BBC4 / 4 = 0x1AEF1
|
||||||
POP BC ; [x] GET/SAVE CLUSTER NUMBER BEFORE/AFTER READ/WRITE
|
|
||||||
POP BC
|
|
||||||
POP DE
|
|
||||||
AND A
|
|
||||||
RET
|
|
||||||
;
|
;
|
||||||
;READ SECTORS OF FILE
|
;READ SECTORS OF FILE
|
||||||
;HL:DE - FP (in sectors)
|
;HL:DE - FP (in sectors)
|
||||||
; B - Amount sectors
|
; B - Amount sectors
|
||||||
; IX - buffer in RAM
|
; IX - buffer in RAM
|
||||||
; 225ÿ937ÿ408 / 512 = 0x6BBC4 / 4 = 0x1AEF1
|
; [ ] fat32
|
||||||
BLOCK_READ:
|
BLOCK_READ: PUSH BC
|
||||||
PUSH BC
|
|
||||||
LD (READ.PointerOnBuffer),IX
|
LD (READ.PointerOnBuffer),IX
|
||||||
LD A,(CORE_BUFFERS.BootSector.SectorsPerCluster) ;SECTORS PER CLUSTER
|
LD A,(CORE_BUFFERS.BootSector.SectorsPerCluster) ;SECTORS PER CLUSTER
|
||||||
LD C,A
|
; HL:DE / A => DE:BC, H=0, L - ®áâ ⮪
|
||||||
LD B,0
|
|
||||||
;HL:DE / BC => DE:IX HL-OSTATOK
|
|
||||||
CALL DIV_for_SPC
|
CALL DIV_for_SPC
|
||||||
; [ ] fat32. ¤ «¥¥ § â®çª â®, çâ® ¢ DE ¢á¥£¤ 0 - ä ©« ¥ ¡®«ìè¥ 2Gb. ˆá¯®«ì§®¢ âì DE
|
|
||||||
LD B,XH
|
|
||||||
LD C,XL
|
|
||||||
PUSH HL ; ®áâ ⮪ DIV_for_SPC
|
PUSH HL ; ®áâ ⮪ DIV_for_SPC
|
||||||
|
; [x] GET/SAVE CLUSTER NUMBER BEFORE/AFTER READ/WRITE
|
||||||
LD L,(IY+_sFM.FS_REC.FIRST_CLUSTER_L) ;START CLUSTER
|
PUSH BC ; ¬« ¤è¥¥ á«®¢® ®¬¥à ª« áâ¥à
|
||||||
LD H,(IY+_sFM.FS_REC.FIRST_CLUSTER_L+1)
|
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
|
LD A,L
|
||||||
OR H
|
OR H
|
||||||
;OR (IY+_sFM.FS_REC.FIRST_CLUSTER_H+1)
|
EXX
|
||||||
;[x] GET/SAVE CLUSTER NUMBER BEFORE/AFTER READ/WRITE
|
LD L,(IY+_sFM.FS_REC.FIRST_CLUSTER_L) ; START CLUSTER Low
|
||||||
;JR NZ,BLOKRD2
|
LD H,(IY+_sFM.FS_REC.FIRST_CLUSTER_L+1)
|
||||||
PUSH BC
|
OR L
|
||||||
;PUSH DE ; [ ] áâ à襥 á«®¢® ®¬¥à ª« áâ¥à (à ìè¥ ¨£®à¨à®¢ «®áì)
|
OR H
|
||||||
JR Z,.ECL2
|
JR Z,.fast_exit_4
|
||||||
;JP ECL2 ;RY01 JR BLOKRD0
|
CALL GetSavedCluster
|
||||||
_GetSavedCluster .enter_loop1
|
;HL': HL - ¨§¢¥áâë© ª« áâ¥à ä ©« ¤«ï ®âáçñâ
|
||||||
|
;DE : BC - ®á⠢襥áï ᬥ饨¥ ¢ ä ©«¥ ¢ ª« áâ¥à å (D=D+1, B=B+1)
|
||||||
;
|
;
|
||||||
.loop1: PUSH BC
|
PUSH DE ; [x] ®á⠢襥áï ᬥ饨¥ ¢ ä ©«¥ ¢ ª« áâ¥à å (áâ à襥 á«®¢®)
|
||||||
|
JP .enter_loop1
|
||||||
|
;
|
||||||
|
.fast_exit_5: POP DE
|
||||||
|
.fast_exit_4: ; [x] GET/SAVE CLUSTER NUMBER BEFORE/AFTER READ/WRITE
|
||||||
|
POP DE ; [x] fat32 áâ à襥 á«®¢® ®¬¥à ª« áâ¥à
|
||||||
|
POP BC
|
||||||
|
;
|
||||||
|
POP BC
|
||||||
|
POP DE
|
||||||
|
AND A
|
||||||
|
RET
|
||||||
|
; [x] fat32
|
||||||
|
.loop1_big: PUSH BC
|
||||||
|
LD BC,0
|
||||||
|
.loop1_small: PUSH BC
|
||||||
CALL READ_FROM_FAT
|
CALL READ_FROM_FAT
|
||||||
POP BC
|
POP BC
|
||||||
JR C,.ECL2 ;RY01
|
JR C,.fast_exit_5 ;RY01
|
||||||
EX DE,HL
|
EX DE,HL
|
||||||
; DEC BC
|
EXX
|
||||||
.enter_loop1:
|
EX DE,HL
|
||||||
; LD A,B ; ‚‘ - ᬥ饨¥ ¢ãâà¨ ä ©« ¢ ª« áâ¥à å
|
EXX
|
||||||
; OR C
|
.enter_loop1: INC B
|
||||||
; JR NZ,.loop1
|
DEC BC ; ‚‘ - ᬥ饨¥ ¢ãâà¨ ä ©« ¢ ª« áâ¥à å (¬« ¤è¥¥ á«®¢®)
|
||||||
|
DJNZ .loop1_small
|
||||||
|
POP BC ; [x] ®á⠢襥áï ᬥ饨¥ ¢ ä ©«¥ ¢ ª« áâ¥à å (áâ à襥 á«®¢®)
|
||||||
INC B
|
INC B
|
||||||
DEC BC
|
DEC BC
|
||||||
DJNZ .loop1
|
DJNZ .loop1_big
|
||||||
;POP DE ; [ ] áâ à襥 á«®¢® ®¬¥à ª« áâ¥à (à ìè¥ ¨£®à¨à®¢ «®áì)
|
;;;;
|
||||||
|
;
|
||||||
;[x] GET/SAVE CLUSTER NUMBER BEFORE/AFTER READ/WRITE
|
;[x] GET/SAVE CLUSTER NUMBER BEFORE/AFTER READ/WRITE
|
||||||
_SaveGetedCluster
|
POP DE
|
||||||
|
POP BC
|
||||||
|
CALL SaveGotCluster
|
||||||
;
|
;
|
||||||
POP DE ; ®áâ ⮪ DIV_for_SPC
|
POP DE ; ®áâ ⮪ DIV_for_SPC
|
||||||
POP BC ; HL:DE - FP (in sectors)
|
POP BC ; HL:DE - FP (in sectors)
|
||||||
|
; (SP) = (RET)
|
||||||
|
;
|
||||||
LD A,(CORE_BUFFERS.BootSector.SectorsPerCluster)
|
LD A,(CORE_BUFFERS.BootSector.SectorsPerCluster)
|
||||||
SUB E
|
SUB E
|
||||||
LD C,A ;\
|
LD C,A ;\
|
||||||
@ -716,8 +697,8 @@ BLOCK_READ:
|
|||||||
LD C,A
|
LD C,A
|
||||||
OR A ;CLEAR CF
|
OR A ;CLEAR CF
|
||||||
RET Z
|
RET Z
|
||||||
.BLOKRD7:
|
;
|
||||||
EX DE,HL
|
.BLOKRD7: EX DE,HL
|
||||||
PUSH BC
|
PUSH BC
|
||||||
CALL READ_FROM_FAT
|
CALL READ_FROM_FAT
|
||||||
POP BC
|
POP BC
|
||||||
@ -763,73 +744,114 @@ BLOCK_READ:
|
|||||||
; 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
|
||||||
BLOK_WR:
|
; [ ] fat32
|
||||||
PUSH BC
|
BLOK_WR: PUSH BC
|
||||||
LD (READ.PointerOnBuffer),IX
|
LD (READ.PointerOnBuffer),IX
|
||||||
LD A,(CORE_BUFFERS.BootSector.SectorsPerCluster) ;SECTORS PER CLUSTER
|
LD A,(CORE_BUFFERS.BootSector.SectorsPerCluster) ;SECTORS PER CLUSTER
|
||||||
LD C,A
|
; HL:DE / A => DE:BC, H=0, L - ®áâ ⮪
|
||||||
LD B,0
|
|
||||||
;HL:DE / BC => DE:IX HL-OSTATOK
|
|
||||||
CALL DIV_for_SPC
|
CALL DIV_for_SPC
|
||||||
; [ ] fat32. ¤ «¥¥ § â®çª â®, çâ® ¢ DE ¢á¥£¤ 0 - ä ©« ¥ ¡®«ìè¥ 2Gb
|
PUSH HL ; ®áâ ⮪ DIV_for_SPC
|
||||||
LD B,XH
|
;[x] GET/SAVE CLUSTER NUMBER BEFORE/AFTER READ/WRITE
|
||||||
LD C,XL
|
PUSH BC ; ¬« ¤è¥¥ á«®¢® ®¬¥à ª« áâ¥à
|
||||||
PUSH HL ;RESIDUE
|
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
|
LD L,(IY+_sFM.FS_REC.FIRST_CLUSTER_L) ; START CLUSTER
|
||||||
LD H,(IY+_sFM.FS_REC.FIRST_CLUSTER_L+1)
|
LD H,(IY+_sFM.FS_REC.FIRST_CLUSTER_L+1)
|
||||||
LD A,H
|
|
||||||
OR L
|
OR L
|
||||||
;[x] GET/SAVE CLUSTER NUMBER BEFORE/AFTER READ/WRITE
|
OR H
|
||||||
;JR NZ,BLOKWR2
|
JR NZ,.FindCluster
|
||||||
PUSH BC
|
|
||||||
JR NZ,.GetSavedCluster
|
|
||||||
;
|
;
|
||||||
PUSH BC
|
PUSH BC ; ¬« ¤è¥¥ á«®¢® ®¬¥à ª« áâ¥à
|
||||||
|
PUSH DE ; [x] fat32 áâ à襥 á«®¢® ®¬¥à ª« áâ¥à
|
||||||
|
; [ ] fat32
|
||||||
CALL G_CLUST
|
CALL G_CLUST
|
||||||
JP C,.Error
|
JP C,.Error_6
|
||||||
|
;
|
||||||
LD (IY+_sFM.FS_REC.FIRST_CLUSTER_L),L
|
LD (IY+_sFM.FS_REC.FIRST_CLUSTER_L),L
|
||||||
LD (IY+_sFM.FS_REC.FIRST_CLUSTER_L+1),H
|
LD (IY+_sFM.FS_REC.FIRST_CLUSTER_L+1),H
|
||||||
|
; [ ] fat32
|
||||||
|
EXX
|
||||||
|
LD HL,0 ;!FIXIT
|
||||||
|
LD (IY+_sFM.FS_REC.FIRST_CLUSTER_H),L ; START CLUSTER High
|
||||||
|
LD (IY+_sFM.FS_REC.FIRST_CLUSTER_H+1),H
|
||||||
|
EXX
|
||||||
|
;
|
||||||
LD DE,(FatBuffer.ENDCLUS_LOW)
|
LD DE,(FatBuffer.ENDCLUS_LOW)
|
||||||
CALL WRITE_TO_FAT
|
CALL WRITE_TO_FAT
|
||||||
PUSH HL
|
;!TEST ;!TODO 2/12/23 ; [ ] ¡ £ á ¨§¡ëâ®ç®© § ¯¨áìî WRITE_FAT_TABLE?
|
||||||
;!TEST ;!TODO 2/12/23 [ ] ¡ £ á ¨§¡ëâ®ç®© § ¯¨áìî WRITE_FAT_TABLE?
|
;PUSH HL
|
||||||
;CALL WRITE_FAT_TABLE ; ¯®¤ª«. ¡ ªã ª¥è FAT ¨ § ¯¨á âì ¥£® ¤¨áª
|
;CALL WRITE_FAT_TABLE ; ¯®¤ª«. ¡ ªã ª¥è FAT ¨ § ¯¨á âì ¥£® ¤¨áª
|
||||||
|
;POP HL
|
||||||
|
;
|
||||||
|
POP DE ; ¬« ¤è¥¥ á«®¢® ®¬¥à ª« áâ¥à
|
||||||
|
POP BC ; [x] fat32 áâ à襥 á«®¢® ®¬¥à ª« áâ¥à
|
||||||
;
|
;
|
||||||
POP HL
|
|
||||||
POP BC
|
|
||||||
INC B
|
INC B
|
||||||
JP .WR2
|
INC D ; [x] fat32
|
||||||
|
PUSH DE
|
||||||
|
JP .enter_loop
|
||||||
;[x] GET/SAVE CLUSTER NUMBER BEFORE/AFTER READ/WRITE
|
;[x] GET/SAVE CLUSTER NUMBER BEFORE/AFTER READ/WRITE
|
||||||
.GetSavedCluster:
|
.FindCluster: CALL GetSavedCluster
|
||||||
_GetSavedCluster .WR2
|
;HL': HL - ¨§¢¥áâë© ª« áâ¥à ä ©« ¤«ï ®âáçñâ
|
||||||
|
;DE : BC - ®á⠢襥áï ᬥ饨¥ ¢ ä ©«¥ ¢ ª« áâ¥à å (D=D+1, B=B+1)
|
||||||
;
|
;
|
||||||
|
PUSH DE ; [x] ®á⠢襥áï ᬥ饨¥ ¢ ä ©«¥ ¢ ª« áâ¥à å (áâ à襥 á«®¢®)
|
||||||
|
JP .enter_loop
|
||||||
|
;
|
||||||
|
; [x] fat32
|
||||||
|
.loop_big: PUSH BC
|
||||||
|
LD BC,0
|
||||||
.loop: PUSH BC
|
.loop: PUSH BC
|
||||||
CALL READ_FROM_FAT
|
CALL READ_FROM_FAT
|
||||||
JR NC,.WRB
|
JR NC,.next
|
||||||
|
; end of chain - get new cluster
|
||||||
|
; [ ] fat32
|
||||||
PUSH HL
|
PUSH HL
|
||||||
|
EXX
|
||||||
|
PUSH HL
|
||||||
|
EXX
|
||||||
CALL INC_FAT
|
CALL INC_FAT
|
||||||
|
EXX
|
||||||
POP HL
|
POP HL
|
||||||
JP C,.Error
|
EXX
|
||||||
|
POP HL
|
||||||
|
JP C,.Error_6
|
||||||
|
;
|
||||||
CALL READ_FROM_FAT
|
CALL READ_FROM_FAT
|
||||||
.WRB: POP BC
|
.next: POP BC
|
||||||
EX DE,HL
|
EX DE,HL
|
||||||
; DEC BC
|
EXX
|
||||||
.WR2:
|
EX DE,HL
|
||||||
; LD A,B
|
EXX
|
||||||
; OR C
|
.enter_loop: INC B
|
||||||
; JR NZ,.loop
|
|
||||||
INC B
|
|
||||||
DEC BC
|
DEC BC
|
||||||
DJNZ .loop
|
DJNZ .loop
|
||||||
|
POP BC ; [x] ®á⠢襥áï ᬥ饨¥ ¢ ä ©«¥ ¢ ª« áâ¥à å (áâ à襥 á«®¢®)
|
||||||
|
INC B
|
||||||
|
DEC BC
|
||||||
|
DJNZ .loop_big
|
||||||
|
;;;;
|
||||||
|
;
|
||||||
;[x] GET/SAVE CLUSTER NUMBER BEFORE/AFTER READ/WRITE
|
;[x] GET/SAVE CLUSTER NUMBER BEFORE/AFTER READ/WRITE
|
||||||
_SaveGetedCluster
|
POP DE
|
||||||
|
POP BC
|
||||||
|
CALL SaveGotCluster
|
||||||
;
|
;
|
||||||
POP DE
|
POP DE
|
||||||
POP BC
|
POP BC
|
||||||
|
; (SP) = (RET)
|
||||||
|
;
|
||||||
LD A,(CORE_BUFFERS.BootSector.SectorsPerCluster)
|
LD A,(CORE_BUFFERS.BootSector.SectorsPerCluster)
|
||||||
SUB E
|
SUB E
|
||||||
LD C,A
|
LD C,A
|
||||||
@ -869,8 +891,7 @@ BLOK_WR:
|
|||||||
OR A
|
OR A
|
||||||
RET Z
|
RET Z
|
||||||
;
|
;
|
||||||
.big_loop:
|
.big_loop: LD HL,CORE_BUFFERS.BootSector.SectorsPerCluster
|
||||||
LD HL,CORE_BUFFERS.BootSector.SectorsPerCluster
|
|
||||||
LD A,B
|
LD A,B
|
||||||
SUB (HL)
|
SUB (HL)
|
||||||
LD B,A
|
LD B,A
|
||||||
@ -913,20 +934,161 @@ BLOK_WR:
|
|||||||
;
|
;
|
||||||
JP .big_loop
|
JP .big_loop
|
||||||
;
|
;
|
||||||
.Error: POP BC
|
.Error_6: POP BC
|
||||||
POP BC ;[x] GET/SAVE CLUSTER NUMBER BEFORE/AFTER READ/WRITE
|
|
||||||
.ErrorWrite:
|
|
||||||
POP BC
|
POP BC
|
||||||
|
.Error_4: POP BC
|
||||||
|
POP BC ;[x] GET/SAVE CLUSTER NUMBER BEFORE/AFTER READ/WRITE
|
||||||
|
.ErrorWrite: POP BC
|
||||||
POP DE
|
POP DE
|
||||||
LD A,DSS_Error.sys.WRITE_ERROR
|
LD A,DSS_Error.sys.WRITE_ERROR
|
||||||
;SCF
|
;SCF
|
||||||
RET
|
RET
|
||||||
;
|
;
|
||||||
.ErrorFull:
|
.ErrorFull: POP BC
|
||||||
POP BC
|
|
||||||
LD A,DSS_Error.sys.DISK_FULL
|
LD A,DSS_Error.sys.DISK_FULL
|
||||||
;SCF
|
;SCF
|
||||||
RET
|
RET
|
||||||
|
|
||||||
|
/*
|
||||||
|
;[x] GET/SAVE CLUSTER NUMBER BEFORE/AFTER READ/WRITE
|
||||||
|
; ‚室: HL - ¯¥à¢ë© ª« áâ¥à ä ©« (¬« ¤è¥¥ á«®¢®)
|
||||||
|
; BC - ᬥ饨¥ ¢ ä ©«¥ ¢ ª« áâ¥à å (¬« ¤è¥¥ á«®¢®)
|
||||||
|
; ‚ë室: HL - ¨§¢¥áâë© ª« áâ¥à ä ©« ¤«ï ®âáçñâ (¬« ¤è¥¥ á«®¢®)
|
||||||
|
; BC - ®á⠢襥áï ᬥ饨¥ ¢ ä ©«¥ ¢ ª« áâ¥à å (¬« ¤è¥¥ á«®¢®)
|
||||||
|
GetSavedCluster:
|
||||||
|
INC B
|
||||||
|
;PUSH DE ; ¯¥à¢ë© ª« áâ¥à ä ©« (áâ à襥 á«®¢®)
|
||||||
|
LD E,(IY+_sFM.KnownCluster_L)
|
||||||
|
LD D,(IY+_sFM.KnownCluster_L+1)
|
||||||
|
LD A,E
|
||||||
|
OR D
|
||||||
|
RET Z
|
||||||
|
;
|
||||||
|
DEC B
|
||||||
|
PUSH DE ; KnownCluster_H
|
||||||
|
PUSH HL ; ¯¥à¢ë© ª« áâ¥à ä ©« (¬« ¤è¥¥ á«®¢®)
|
||||||
|
PUSH BC ; ᬥ饨¥ ¢ ä ©«¥ ¢ ª« áâ¥à å
|
||||||
|
LD E,(IY+_sFM.KnownOffset_L)
|
||||||
|
LD D,(IY+_sFM.KnownOffset_L+1)
|
||||||
|
LD A,D
|
||||||
|
OR E
|
||||||
|
JR Z,.noOptimization_3
|
||||||
|
;
|
||||||
|
POP HL ; ᬥ饨¥ ¢ ä ©«¥ ¢ ª« áâ¥à å
|
||||||
|
SBC HL,DE
|
||||||
|
JR C,.noOptimization_2
|
||||||
|
LD C,L
|
||||||
|
LD B,H
|
||||||
|
POP DE ; ¡ « á á⥪
|
||||||
|
POP HL
|
||||||
|
; ®¯â¨¬¨§ æ¨ï: HL - ¥ ¯¥à¢ë© ª« áâ¥à ä ©« , KnownCluster
|
||||||
|
; BC - à ááâ®ï¨¥ ¤® âॡ㥬®£® á¬¥é¥¨ï ®â KnownCluster
|
||||||
|
;
|
||||||
|
INC B
|
||||||
|
RET
|
||||||
|
;
|
||||||
|
.noOptimization_3:
|
||||||
|
POP BC
|
||||||
|
.noOptimization_2:
|
||||||
|
POP HL
|
||||||
|
.noOptimization_1:
|
||||||
|
POP DE
|
||||||
|
INC B
|
||||||
|
RET
|
||||||
|
*/
|
||||||
|
|
||||||
|
;[x] GET/SAVE CLUSTER NUMBER BEFORE/AFTER READ/WRITE
|
||||||
|
; ‚室: DE - ᬥ饨¥ ¢ ä ©«¥ ¢ ª« áâ¥à å (áâ à襥 á«®¢®)
|
||||||
|
; BC - ᬥ饨¥ ¢ ä ©«¥ ¢ ª« áâ¥à å (¬« ¤è¥¥ á«®¢®)
|
||||||
|
; HL - ¯¥à¢ë© ª« áâ¥à ä ©« (¬« ¤è¥¥ á«®¢®)
|
||||||
|
; HL' - ¯¥à¢ë© ª« áâ¥à ä ©« (áâ à襥 á«®¢®)
|
||||||
|
; ‚ë室: HL - ¨§¢¥áâë© ª« áâ¥à ä ©« ¤«ï ®âáçñâ (¬« ¤è¥¥ á«®¢®)
|
||||||
|
; HL' - ¨§¢¥áâë© ª« áâ¥à ä ©« ¤«ï ®âáçñâ (áâ à襥 á«®¢®)
|
||||||
|
; DE - ®á⠢襥áï ᬥ饨¥ ¢ ä ©«¥ ¢ ª« áâ¥à å (áâ à襥 á«®¢®, D=D+1)
|
||||||
|
; BC - ®á⠢襥áï ᬥ饨¥ ¢ ä ©«¥ ¢ ª« áâ¥à å (¬« ¤è¥¥ á«®¢®, B=B+1)
|
||||||
|
; ¥ ¯®àâ¨â HL, HL' ¨ DE:BC ¥á«¨ ®¯â¨¬¨§ æ¨ï ¥ áà ¡®â «
|
||||||
|
GetSavedCluster:
|
||||||
|
XOR A
|
||||||
|
CP (IY+_sFM.OptimizedClusters)
|
||||||
|
JR Z,.noOptimization_0
|
||||||
|
;
|
||||||
|
PUSH DE
|
||||||
|
PUSH HL ; ¯¥à¢ë© ª« áâ¥à ä ©« (¬« ¤è¥¥ á«®¢®)
|
||||||
|
; ᬥ饨¥ ¢ ä ©«¥ ¢ ª« áâ¥à å
|
||||||
|
EX DE,HL
|
||||||
|
LD E,(IY+_sFM.KnownOffset_H)
|
||||||
|
LD D,(IY+_sFM.KnownOffset_H+1)
|
||||||
|
; ¯à®¢¥àª áâ à襣® á«®¢
|
||||||
|
AND A
|
||||||
|
SBC HL,DE
|
||||||
|
JR C,.noOptimization_2
|
||||||
|
;
|
||||||
|
PUSH BC
|
||||||
|
EX DE,HL
|
||||||
|
LD H,B
|
||||||
|
LD L,C
|
||||||
|
LD C,(IY+_sFM.KnownOffset_L)
|
||||||
|
LD B,(IY+_sFM.KnownOffset_L+1)
|
||||||
|
; ¯à®¢¥àª ¬« ¤è¥£® á«®¢
|
||||||
|
SBC HL,BC
|
||||||
|
LD BC,0
|
||||||
|
EX DE,HL
|
||||||
|
SBC HL,BC
|
||||||
|
JR C,.noOptimization_3
|
||||||
|
EX DE,HL
|
||||||
|
LD B,H
|
||||||
|
LD C,L
|
||||||
|
; DE:BC ®¢®¥ ᬥ饨¥ ®â ¨§¢¥á⮣® ª« áâ¥à ä ©« (¢ ª« áâ¥à å)
|
||||||
|
;
|
||||||
|
LD L,(IY+_sFM.KnownCluster_L)
|
||||||
|
LD H,(IY+_sFM.KnownCluster_L+1)
|
||||||
|
EXX
|
||||||
|
LD L,(IY+_sFM.KnownCluster_H)
|
||||||
|
LD H,(IY+_sFM.KnownCluster_H+1)
|
||||||
|
EXX
|
||||||
|
; ¡ « á á⥪
|
||||||
|
POP AF
|
||||||
|
POP AF
|
||||||
|
POP AF
|
||||||
|
; ¤«ï 横« DJNZ
|
||||||
|
INC B
|
||||||
|
INC D
|
||||||
|
RET
|
||||||
|
;
|
||||||
|
.noOptimization_3:
|
||||||
|
POP BC
|
||||||
|
.noOptimization_2:
|
||||||
|
POP HL
|
||||||
|
.noOptimization_1:
|
||||||
|
POP DE
|
||||||
|
.noOptimization_0:
|
||||||
|
INC B
|
||||||
|
INC D
|
||||||
|
RET
|
||||||
|
|
||||||
|
;[x] fat32
|
||||||
|
;[x] GET/SAVE CLUSTER NUMBER BEFORE/AFTER READ/WRITE
|
||||||
|
SaveGotCluster: LD A,C
|
||||||
|
OR B
|
||||||
|
OR E
|
||||||
|
OR D
|
||||||
|
RET Z
|
||||||
|
;
|
||||||
|
LD (IY+_sFM.KnownOffset_L),C
|
||||||
|
LD (IY+_sFM.KnownOffset_L+1),B
|
||||||
|
LD (IY+_sFM.KnownOffset_H),E
|
||||||
|
LD (IY+_sFM.KnownOffset_H+1),D
|
||||||
|
;
|
||||||
|
LD (IY+_sFM.KnownCluster_L),L
|
||||||
|
LD (IY+_sFM.KnownCluster_L+1),H
|
||||||
|
EXX
|
||||||
|
LD (IY+_sFM.KnownCluster_H),L
|
||||||
|
LD (IY+_sFM.KnownCluster_H+1),H
|
||||||
|
EXX
|
||||||
|
;
|
||||||
|
LD A,1
|
||||||
|
LD (IY+_sFM.OptimizedClusters),A
|
||||||
|
RET
|
||||||
////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -320,11 +320,10 @@ BC_Div_DE:
|
|||||||
;----------------------------------------------------------------------;
|
;----------------------------------------------------------------------;
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
; HL:DE / C => DE:IX HL-OSTATOK (DE:BC.HL). ‹¥£ª® ¯¥à¥¤¥« âì ¯®¤ HL:DE / A => HL:DE.A
|
|
||||||
;----------------------------------------------------------------------;
|
;----------------------------------------------------------------------;
|
||||||
|
; HL:DE / A => DE:BC, H=0, L - ®áâ ⮪
|
||||||
DIV_for_SPC:
|
DIV_for_SPC:
|
||||||
LD A,C
|
LD C,A
|
||||||
DEC A
|
DEC A
|
||||||
JR Z,.exit
|
JR Z,.exit
|
||||||
;
|
;
|
||||||
@ -333,135 +332,17 @@ DIV_for_SPC:
|
|||||||
LD A,C
|
LD A,C
|
||||||
RRCA
|
RRCA
|
||||||
;
|
;
|
||||||
.loop: SRL H : RR L
|
.loop: SRL H
|
||||||
RR D : RR E
|
RR L
|
||||||
|
RR D
|
||||||
|
RR E
|
||||||
RRCA
|
RRCA
|
||||||
JP NC,.loop
|
JP NC,.loop
|
||||||
LD A,B
|
LD A,B
|
||||||
;
|
.exit: LD B,D
|
||||||
.exit: LD XH,D
|
LD C,E
|
||||||
LD XL,E
|
|
||||||
EX DE,HL
|
EX DE,HL
|
||||||
LD H,0
|
LD H,0
|
||||||
LD L,A
|
LD L,A
|
||||||
RET
|
RET
|
||||||
;----------------------------------------------------------------------;
|
;----------------------------------------------------------------------;
|
||||||
|
|
||||||
; DIV32: LD A,#FF
|
|
||||||
; LD B,E
|
|
||||||
; .loop: SRL C
|
|
||||||
; JR C,.exitLoop
|
|
||||||
; SRL H : RR L : RR D : RR E : SLA A
|
|
||||||
; JP .loop
|
|
||||||
; .exitLoop:
|
|
||||||
; CPL
|
|
||||||
; AND B
|
|
||||||
; LD XH,D
|
|
||||||
; LD XL,E
|
|
||||||
; EX DE,HL
|
|
||||||
; LD H,0
|
|
||||||
; LD L,A
|
|
||||||
; RET
|
|
||||||
|
|
||||||
; DEFINE NEW_DIV 1
|
|
||||||
|
|
||||||
; DIV32: LD XH,D
|
|
||||||
; LD XL,E
|
|
||||||
|
|
||||||
; IFN NEW_DIV
|
|
||||||
; EX DE,HL
|
|
||||||
; LD HL,0
|
|
||||||
; LD A,#20
|
|
||||||
; DIV001: ADD IX,IX
|
|
||||||
; EX DE,HL
|
|
||||||
; ADC HL,HL
|
|
||||||
; EX DE,HL
|
|
||||||
; ADC HL,HL
|
|
||||||
; SBC HL,BC
|
|
||||||
; JR NC,DIV002
|
|
||||||
; ADD HL,BC
|
|
||||||
; DEC A
|
|
||||||
; JR NZ,DIV001
|
|
||||||
; RET
|
|
||||||
; DIV002: INC IX
|
|
||||||
; DEC A
|
|
||||||
; JR NZ,DIV001
|
|
||||||
; RET
|
|
||||||
; ELSE
|
|
||||||
|
|
||||||
|
|
||||||
; div32_16:
|
|
||||||
; ;HLIX/BC -> HLIX remainder DE
|
|
||||||
; ;174+4*div32_16_sub8
|
|
||||||
; ;min: 2186cc
|
|
||||||
; ;max: 2794cc
|
|
||||||
; ;avg: 2466cc
|
|
||||||
; ;61 bytes
|
|
||||||
; ex de,hl ; 4
|
|
||||||
|
|
||||||
; ; Negate BC to allow add instead of sbc
|
|
||||||
; xor a ; 4
|
|
||||||
; ; Need to set HL to 0 anyways, so save 2cc and a byte
|
|
||||||
; ld h,a ; 4
|
|
||||||
; ld l,a ; 4
|
|
||||||
; sub c ; 4
|
|
||||||
; ld c,a ; 4
|
|
||||||
; sbc a,a ; 4
|
|
||||||
; sub b ; 4
|
|
||||||
; ld b,a ; 4
|
|
||||||
|
|
||||||
|
|
||||||
; ld a,d ; 4
|
|
||||||
; call div32_16_sub8 ; 17
|
|
||||||
; rla ; 4
|
|
||||||
; ld d,a ; 4
|
|
||||||
|
|
||||||
; ld a,e ; 4
|
|
||||||
; call div32_16_sub8 ; 17
|
|
||||||
; rla ; 4
|
|
||||||
; ld e,a ; 4
|
|
||||||
|
|
||||||
; ld a,ixh ; 8
|
|
||||||
; call div32_16_sub8 ; 17
|
|
||||||
; rla ; 4
|
|
||||||
; ld ixh,a ; 8
|
|
||||||
|
|
||||||
; ld a,ixl ; 8
|
|
||||||
; call div32_16_sub8 ; 17
|
|
||||||
; rla ; 4
|
|
||||||
; ld ixl,a ; 8
|
|
||||||
|
|
||||||
; ;ex de,hl ; 4
|
|
||||||
; ret ; 10
|
|
||||||
|
|
||||||
; div32_16_sub8:
|
|
||||||
; ;119+8*div32_16_sub
|
|
||||||
; ;min: 503cc
|
|
||||||
; ;max: 655cc
|
|
||||||
; ;avg: 573cc
|
|
||||||
; call 1F
|
|
||||||
; 1:
|
|
||||||
; ;17+2(17+2(div32_16_sub)))
|
|
||||||
; call 1F
|
|
||||||
; 1:
|
|
||||||
; ;17+2(div32_16_sub)
|
|
||||||
; call div32_16_sub
|
|
||||||
; div32_16_sub:
|
|
||||||
; ;48+{8,0+{0,19}}
|
|
||||||
; ;min: 48cc
|
|
||||||
; ;max: 67cc
|
|
||||||
; ;avg: 56.75cc
|
|
||||||
; rla ; 4
|
|
||||||
; adc hl,hl ; 15
|
|
||||||
; jr c,1F ;12/7
|
|
||||||
; add hl,bc ; 11
|
|
||||||
; ret c ;11/5
|
|
||||||
; sbc hl,bc ; 15
|
|
||||||
; ret ; 10
|
|
||||||
; 1:
|
|
||||||
; add hl,bc ; 11
|
|
||||||
; scf ; 4
|
|
||||||
; ret ; 10
|
|
||||||
|
|
||||||
; ENDIF
|
|
||||||
;
|
|
||||||
@ -45,11 +45,11 @@
|
|||||||
.DRIVE: BYTE #00 ;+ #28 +40 DRIVE OR CURRENT
|
.DRIVE: BYTE #00 ;+ #28 +40 DRIVE OR CURRENT
|
||||||
.ACCESS_MODE: BYTE #00 ;+ #29 +41 ACCESS MODE ¯à¨§ ª ¨§¬¥¥¨ï ä ©«
|
.ACCESS_MODE: BYTE #00 ;+ #29 +41 ACCESS MODE ¯à¨§ ª ¨§¬¥¥¨ï ä ©«
|
||||||
.TASK_NUM: BYTE #00 ;+ #2A +42 TASK
|
.TASK_NUM: BYTE #00 ;+ #2A +42 TASK
|
||||||
;.EMPTY: BYTE #00 ;+ #2B +43 EMPTY
|
.OptimizedClusters BYTE #00 ;+ #2B +43
|
||||||
.KnownCluster_L: WORD #0000 ;+ #2B +43 Œ« ¤è¥¥ á«®¢® ®¬¥à ª« áâ¥à ¤«ï ª®â®à®£® ¨§¢¥áâ® ®â®á¨â¥«ì®¥ ᬥ饨¥ ¢ãâà¨ ä ©«
|
.KnownCluster_L: WORD #0000 ;+ #2C +44 Œ« ¤è¥¥ á«®¢® ®¬¥à ª« áâ¥à ¤«ï ª®â®à®£® ¨§¢¥áâ® ®â®á¨â¥«ì®¥ ᬥ饨¥ ¢ãâà¨ ä ©«
|
||||||
.KnownCluster_H: WORD #0000 ;+ #2C +44 ‘â à襥 á«®¢® ®¬¥à ª« áâ¥à ¤«ï ª®â®à®£® ¨§¢¥áâ® ®â®á¨â¥«ì®¥ ᬥ饨¥ ¢ãâà¨ ä ©«
|
.KnownCluster_H: WORD #0000 ;+ #2E +46 ‘â à襥 á«®¢® ®¬¥à ª« áâ¥à ¤«ï ª®â®à®£® ¨§¢¥áâ® ®â®á¨â¥«ì®¥ ᬥ饨¥ ¢ãâà¨ ä ©«
|
||||||
.KnownOffset_L: WORD #0000 ;+ #2D +45 Œ« ¤è¥¥ á«®¢® ᬥ饨ï (¢ ª« áâ¥à å) ®â®á¨â¥«ì® ç « ä ©« ¤«ï á®åà ¥®£® ®¬¥à ª« áâ¥à .
|
.KnownOffset_L: WORD #0000 ;+ #30 +48 Œ« ¤è¥¥ á«®¢® ᬥ饨ï (¢ ª« áâ¥à å) ®â®á¨â¥«ì® ç « ä ©« ¤«ï á®åà ¥®£® ®¬¥à ª« áâ¥à .
|
||||||
.KnownOffset_H: WORD #0000 ;+ #2E +46 ‘â à襥 á«®¢® ᬥ饨ï (¢ ª« áâ¥à å) ®â®á¨â¥«ì® ç « ä ©« ¤«ï á®åà ¥®£® ®¬¥à ª« áâ¥à .
|
.KnownOffset_H: WORD #0000 ;+ #32 +50 ‘â à襥 á«®¢® ᬥ饨ï (¢ ª« áâ¥à å) ®â®á¨â¥«ì® ç « ä ©« ¤«ï á®åà ¥®£® ®¬¥à ª« áâ¥à .
|
||||||
ENDS
|
ENDS
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
Subproject commit 42dfec072030351eb386205ead32983bbc1c4909
|
Subproject commit 68681fbc50da463f1debae860e6db64603886d39
|
||||||
Loading…
Reference in New Issue
Block a user