mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-15 09:21:47 +03:00
88%
This commit is contained in:
parent
bb63a4071d
commit
6330028b93
@ -131,25 +131,14 @@ MKDIR:
|
|||||||
LD A,(DIRPAGE.buffer)
|
LD A,(DIRPAGE.buffer)
|
||||||
CP "."
|
CP "."
|
||||||
JR Z,.copy_dir_record
|
JR Z,.copy_dir_record
|
||||||
; fat32
|
|
||||||
LD A,(CORE_BUFFERS.FatBuffer.FAT_TYPE)
|
|
||||||
CP FAT_TYPE.x32
|
|
||||||
JR NZ,.fat16_root_dir
|
|
||||||
; fat 32
|
|
||||||
EX DE,HL
|
|
||||||
LD HL,(CORE_BUFFERS.FatBuffer.RootDirStartCluster_L)
|
|
||||||
LD (HANDBUF + _sFAT_DIRECTORY_RECORD.FIRST_CLUSTER_L),HL
|
|
||||||
LD HL,(CORE_BUFFERS.FatBuffer.RootDirStartCluster_H)
|
|
||||||
LD (HANDBUF + _sFAT_DIRECTORY_RECORD.FIRST_CLUSTER_H),HL
|
|
||||||
EX DE,HL
|
|
||||||
JR .set_rec
|
|
||||||
;
|
;
|
||||||
.fat16_root_dir:; fat 12/16
|
|
||||||
;LD IX,HANDBUF
|
;LD IX,HANDBUF
|
||||||
XOR A
|
XOR A
|
||||||
LD (HANDBUF + _sFAT_DIRECTORY_RECORD.FIRST_CLUSTER_L),A
|
LD (HANDBUF + _sFAT_DIRECTORY_RECORD.FIRST_CLUSTER_L),A
|
||||||
LD (HANDBUF + _sFAT_DIRECTORY_RECORD.FIRST_CLUSTER_L+1),A
|
LD (HANDBUF + _sFAT_DIRECTORY_RECORD.FIRST_CLUSTER_L+1),A
|
||||||
.set_rec: LD DE,HANDBUF + _sFAT_DIRECTORY_RECORD.ATTRIBUT ; ï祩ª âਡã⮢ ä ©«
|
LD (HANDBUF + _sFAT_DIRECTORY_RECORD.FIRST_CLUSTER_H),A
|
||||||
|
LD (HANDBUF + _sFAT_DIRECTORY_RECORD.FIRST_CLUSTER_H+1),A
|
||||||
|
LD DE,HANDBUF + _sFAT_DIRECTORY_RECORD.ATTRIBUT ; ï祩ª âਡã⮢ ä ©«
|
||||||
.copy_dir_record:
|
.copy_dir_record:
|
||||||
EX DE,HL
|
EX DE,HL
|
||||||
LD BC,HANDBUF.SIZE - _sFAT_DIRECTORY_RECORD.ATTRIBUT ; 21
|
LD BC,HANDBUF.SIZE - _sFAT_DIRECTORY_RECORD.ATTRIBUT ; 21
|
||||||
|
|||||||
@ -428,6 +428,13 @@ CLEAR_ZONE.size EQU _sBuffers
|
|||||||
DISPLAY "Size ", /H, CORE_BUFFERS.XSTACK - CORE_BUFFERS.EXEBUFF
|
DISPLAY "Size ", /H, CORE_BUFFERS.XSTACK - CORE_BUFFERS.EXEBUFF
|
||||||
DISPLAY "--- --- --- --- --- --- --- ---"
|
DISPLAY "--- --- --- --- --- --- --- ---"
|
||||||
|
|
||||||
|
EXPORT CORE_BUFFERS.BUFFERSplace
|
||||||
|
EXPORT CORE_BUFFERS.FM_BUF
|
||||||
|
EXPORT CORE_BUFFERS.FatBuffer
|
||||||
|
EXPORT CORE_BUFFERS.EXEBUFF
|
||||||
|
EXPORT CORE_BUFFERS.XSTACK
|
||||||
|
EXPORT CORE_BUFFERS.BUFFER
|
||||||
|
EXPORT CORE_BUFFERS.SECBUF
|
||||||
|
|
||||||
/*
|
/*
|
||||||
;R11 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
|
;R11 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
|
||||||
|
|||||||
@ -323,7 +323,7 @@ FINDDIR:
|
|||||||
RET
|
RET
|
||||||
;----------------------------------------------------------------------;
|
;----------------------------------------------------------------------;
|
||||||
|
|
||||||
CHECK_ZERO_CLUSTER:
|
CHECK_ROOT_CLUSTER:
|
||||||
EX DE,HL
|
EX DE,HL
|
||||||
LD HL,(CORE_BUFFERS.FM_BUF + _sFM.FS_REC.FIRST_CLUSTER_L) ;R005
|
LD HL,(CORE_BUFFERS.FM_BUF + _sFM.FS_REC.FIRST_CLUSTER_L) ;R005
|
||||||
LD A,L
|
LD A,L
|
||||||
@ -334,22 +334,25 @@ CHECK_ZERO_CLUSTER:
|
|||||||
EX DE,HL
|
EX DE,HL
|
||||||
RET
|
RET
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
;----------------------------------------------------------------------;
|
;----------------------------------------------------------------------;
|
||||||
; ¢å®¤: HL - ¨¬ï ¤¨à¥ªâ®à¨¨
|
; ¢å®¤: HL - ¨¬ï ¤¨à¥ªâ®à¨¨
|
||||||
; [x] fat32 ;!TEST
|
; [x] fat32 ;!TEST
|
||||||
|
; !FIXIT «®¢¨âáï ¤¢®©®¥ ®¡à 饨¥ ¯à¨ ®âªàë⨨ ª®àï ¤¨áª , ¯à¨¬¥à
|
||||||
OPENDIR: LD IY,CORE_BUFFERS.FM_BUF
|
OPENDIR: LD IY,CORE_BUFFERS.FM_BUF
|
||||||
LD A,(HL)
|
LD A,(HL)
|
||||||
OR A
|
OR A
|
||||||
JR NZ,.SUBDIR
|
JR NZ,.SUBDIR
|
||||||
.REROOT: ; fat32
|
.REROOT: ; fat32
|
||||||
EX DE,HL
|
; EX DE,HL
|
||||||
LD HL,(CORE_BUFFERS.FatBuffer.RootDirStartCluster_L)
|
; LD HL,(CORE_BUFFERS.FatBuffer.RootDirStartCluster_L)
|
||||||
LD (CORE_BUFFERS.FM_BUF + _sFM.FS_REC.FIRST_CLUSTER_L),HL
|
; LD (CORE_BUFFERS.FM_BUF + _sFM.FS_REC.FIRST_CLUSTER_L),HL
|
||||||
LD HL,(CORE_BUFFERS.FatBuffer.RootDirStartCluster_H)
|
; LD HL,(CORE_BUFFERS.FatBuffer.RootDirStartCluster_H)
|
||||||
LD (CORE_BUFFERS.FM_BUF + _sFM.FS_REC.FIRST_CLUSTER_H),HL
|
; LD (CORE_BUFFERS.FM_BUF + _sFM.FS_REC.FIRST_CLUSTER_H),HL
|
||||||
EX DE,HL
|
; EX DE,HL
|
||||||
|
LD DE,0
|
||||||
|
LD (CORE_BUFFERS.FM_BUF + _sFM.FS_REC.FIRST_CLUSTER_L),DE
|
||||||
|
LD (CORE_BUFFERS.FM_BUF + _sFM.FS_REC.FIRST_CLUSTER_H),DE
|
||||||
|
|
||||||
CALL LOADDIR
|
CALL LOADDIR
|
||||||
; CF=0
|
; CF=0
|
||||||
LD HL,WorkDirectory
|
LD HL,WorkDirectory
|
||||||
@ -362,7 +365,7 @@ OPENDIR: LD IY,CORE_BUFFERS.FM_BUF
|
|||||||
.SUBDIR: CP "."
|
.SUBDIR: CP "."
|
||||||
JR NZ,.SUBDIR2
|
JR NZ,.SUBDIR2
|
||||||
; fat32
|
; fat32
|
||||||
CALL CHECK_ZERO_CLUSTER
|
CALL CHECK_ROOT_CLUSTER
|
||||||
JR NZ,.no_root ;R005
|
JR NZ,.no_root ;R005
|
||||||
; "cd ." or "cd .."
|
; "cd ." or "cd .."
|
||||||
;R005
|
;R005
|
||||||
@ -397,46 +400,29 @@ OPENDIR: LD IY,CORE_BUFFERS.FM_BUF
|
|||||||
LD HL,#4000 ;!HARDCODE
|
LD HL,#4000 ;!HARDCODE
|
||||||
LD (CORE_BUFFERS.FM_BUF + _sFM.FS_REC.F_SIZE),HL
|
LD (CORE_BUFFERS.FM_BUF + _sFM.FS_REC.F_SIZE),HL
|
||||||
;EX DE,HL
|
;EX DE,HL
|
||||||
JP LOADDIR
|
;JP LOADDIR
|
||||||
;----------------------------------------------------------------------;
|
;--------------;
|
||||||
|
|
||||||
|
|
||||||
;----------------------------------------------------------------------;
|
|
||||||
; <20>à®ç¨â âì ᯨ᮪ ª â «®£
|
; <20>à®ç¨â âì ᯨ᮪ ª â «®£
|
||||||
; [x] fat32 ;!TEST
|
; [x] fat32 ;!TEST
|
||||||
LOADDIR: ;!TODO optimize
|
LOADDIR: ;!TODO optimize
|
||||||
; XOR A ; FILE MANIPULATOR = 0
|
|
||||||
; LD H,A
|
|
||||||
; LD L,A
|
|
||||||
; LD IX,0
|
|
||||||
; LD B,A ; ®â ç « ä ©«
|
|
||||||
; CALL MOVE_FP
|
|
||||||
; ;
|
|
||||||
; SET_PAGE_X DIRPAGE
|
|
||||||
; AND A
|
|
||||||
; PUSH AF
|
|
||||||
; ;!TEST no ldir
|
|
||||||
; ; ®ç¨áâ¨âì ª¥è ª â «®£
|
|
||||||
; ; LD HL,#C000
|
|
||||||
; ; LD DE,#C001
|
|
||||||
; ; LD BC,#3FFF
|
|
||||||
; ; LD (HL),L
|
|
||||||
; ; LDIR
|
|
||||||
; ;
|
|
||||||
; LD A,(CORE_BUFFERS.FatBuffer.DRIVE) ; ®¬¥à ¤¨áª
|
|
||||||
; LD (IY+_sFM.DRIVE),A ; á®åà. ¢ ¤¥áªà¨¯â®à
|
|
||||||
; ; ®¬¥à ¯¥à¢®£® ª« áâ¥à
|
|
||||||
; ; [x] fat32
|
|
||||||
; LD A,(CORE_BUFFERS.FatBuffer.FAT_TYPE)
|
|
||||||
; XOR 32
|
|
||||||
; JR Z,.read_dir
|
|
||||||
; ;!FIXIT ¯¥à¥¤¥« âì à ¡®âã ¡¥§ IY
|
|
||||||
; LD A,(IY+_sFM.FS_REC.FIRST_CLUSTER_L)
|
|
||||||
; OR (IY+_sFM.FS_REC.FIRST_CLUSTER_L+1)
|
|
||||||
CALL LOAD_SAVE_DIR_PREPARE
|
CALL LOAD_SAVE_DIR_PREPARE
|
||||||
PUSH AF
|
PUSH AF
|
||||||
EX AF,AF'
|
EX AF,AF'
|
||||||
JR Z,.LoadRootDir
|
JR NZ,.read_dir
|
||||||
|
LD A,(CORE_BUFFERS.FatBuffer.FAT_TYPE)
|
||||||
|
CP FAT_TYPE.x32
|
||||||
|
JR NZ,.LoadRootDir
|
||||||
|
; fat32
|
||||||
|
LD HL,(CORE_BUFFERS.FatBuffer.RootDirStartCluster_L)
|
||||||
|
LD (CORE_BUFFERS.FM_BUF + _sFM.FS_REC.FIRST_CLUSTER_L),HL
|
||||||
|
LD HL,(CORE_BUFFERS.FatBuffer.RootDirStartCluster_H)
|
||||||
|
LD (CORE_BUFFERS.FM_BUF + _sFM.FS_REC.FIRST_CLUSTER_H),HL
|
||||||
|
; CALL .read_dir
|
||||||
|
; LD HL,0
|
||||||
|
; LD (CORE_BUFFERS.FM_BUF.FS_REC.FIRST_CLUSTER_L),HL
|
||||||
|
; LD (CORE_BUFFERS.FM_BUF.FS_REC.FIRST_CLUSTER_H),HL
|
||||||
|
; RET
|
||||||
|
;
|
||||||
.read_dir: LD HL,DIRPAGE.buffer ; ªã¤
|
.read_dir: LD HL,DIRPAGE.buffer ; ªã¤
|
||||||
LD DE,#4000 ; ᪮«ìª®
|
LD DE,#4000 ; ᪮«ìª®
|
||||||
XOR A ; ¤¥áªà¨¯â®à
|
XOR A ; ¤¥áªà¨¯â®à
|
||||||
@ -477,14 +463,12 @@ LOAD_SAVE_DIR_PREPARE:
|
|||||||
;
|
;
|
||||||
LD A,(CORE_BUFFERS.FatBuffer.DRIVE)
|
LD A,(CORE_BUFFERS.FatBuffer.DRIVE)
|
||||||
LD (IY+_sFM.DRIVE),A
|
LD (IY+_sFM.DRIVE),A
|
||||||
; [x] fat32
|
|
||||||
LD A,(CORE_BUFFERS.FatBuffer.FAT_TYPE)
|
|
||||||
CP FAT_TYPE.x32 - 1
|
|
||||||
JR NC,.exit
|
|
||||||
;!FIXIT ¯¥à¥¤¥« âì à ¡®âã ¡¥§ IY
|
;!FIXIT ¯¥à¥¤¥« âì à ¡®âã ¡¥§ IY
|
||||||
LD A,(IY+_sFM.FS_REC.FIRST_CLUSTER_L)
|
LD A,(IY+_sFM.FS_REC.FIRST_CLUSTER_L)
|
||||||
OR (IY+_sFM.FS_REC.FIRST_CLUSTER_L+1)
|
OR (IY+_sFM.FS_REC.FIRST_CLUSTER_L+1)
|
||||||
.exit: EX AF,AF'
|
OR (IY+_sFM.FS_REC.FIRST_CLUSTER_H)
|
||||||
|
OR (IY+_sFM.FS_REC.FIRST_CLUSTER_H+1)
|
||||||
|
EX AF,AF'
|
||||||
RET
|
RET
|
||||||
|
|
||||||
;!TODO FAT procedures
|
;!TODO FAT procedures
|
||||||
@ -493,30 +477,20 @@ LOAD_SAVE_DIR_PREPARE:
|
|||||||
; ¢å®¤: iy=áâàãªâãà ¤¥áªà¨¯â®à
|
; ¢å®¤: iy=áâàãªâãà ¤¥áªà¨¯â®à
|
||||||
; [x] fat32 ;!TEST
|
; [x] fat32 ;!TEST
|
||||||
SAVEDIR: ;!TODO optimize
|
SAVEDIR: ;!TODO optimize
|
||||||
; XOR A ; FILE MANIPULATOR = 0
|
|
||||||
; LD H,A
|
|
||||||
; LD L,A
|
|
||||||
; LD IX,0
|
|
||||||
; LD B,A ; ®â ç « ä ©«
|
|
||||||
; CALL MOVE_FP
|
|
||||||
; ;
|
|
||||||
; SET_PAGE_X DIRPAGE
|
|
||||||
; AND A
|
|
||||||
; PUSH AF
|
|
||||||
; ;
|
|
||||||
; LD A,(CORE_BUFFERS.FatBuffer.DRIVE)
|
|
||||||
; LD (IY+_sFM.DRIVE),A
|
|
||||||
; ; [x] fat32
|
|
||||||
; LD A,(CORE_BUFFERS.FatBuffer.FAT_TYPE)
|
|
||||||
; XOR 32
|
|
||||||
; JR Z,.save_dir
|
|
||||||
; ;!FIXIT ¯¥à¥¤¥« âì à ¡®âã ¡¥§ IY
|
|
||||||
; LD A,(IY+_sFM.FS_REC.FIRST_CLUSTER_L)
|
|
||||||
; OR (IY+_sFM.FS_REC.FIRST_CLUSTER_L+1)
|
|
||||||
CALL LOAD_SAVE_DIR_PREPARE
|
CALL LOAD_SAVE_DIR_PREPARE
|
||||||
PUSH AF
|
PUSH AF
|
||||||
EX AF,AF'
|
EX AF,AF'
|
||||||
JR Z,.SaveRootDir
|
JR NZ,.save_dir
|
||||||
|
;
|
||||||
|
LD A,(CORE_BUFFERS.FatBuffer.FAT_TYPE)
|
||||||
|
CP FAT_TYPE.x32
|
||||||
|
JR NZ,.SaveRootDir
|
||||||
|
; fat32
|
||||||
|
LD HL,(CORE_BUFFERS.FatBuffer.RootDirStartCluster_L)
|
||||||
|
LD (CORE_BUFFERS.FM_BUF + _sFM.FS_REC.FIRST_CLUSTER_L),HL
|
||||||
|
LD HL,(CORE_BUFFERS.FatBuffer.RootDirStartCluster_H)
|
||||||
|
LD (CORE_BUFFERS.FM_BUF + _sFM.FS_REC.FIRST_CLUSTER_H),HL
|
||||||
|
;
|
||||||
.save_dir: LD HL,DIRPAGE.buffer
|
.save_dir: LD HL,DIRPAGE.buffer
|
||||||
; à §¬¥à ᯨ᪠ª â «®£ size_cash_directory
|
; à §¬¥à ᯨ᪠ª â «®£ size_cash_directory
|
||||||
;!FIXIT ¥á«¨ ® 㦠, â® ¯à®¢¥à¨âì ¡ £¨ ( ¯à¨¬¥à, à §¬¥à ¤¨à४â®à¨¨ ¬¥ìè¥ ¯à¨ ®âªàë⨨ ¨ ¡®«ìè¥ ¯®á«¥ ¯à ¢®ª)
|
;!FIXIT ¥á«¨ ® 㦠, â® ¯à®¢¥à¨âì ¡ £¨ ( ¯à¨¬¥à, à §¬¥à ¤¨à४â®à¨¨ ¬¥ìè¥ ¯à¨ ®âªàë⨨ ¨ ¡®«ìè¥ ¯®á«¥ ¯à ¢®ª)
|
||||||
@ -591,7 +565,7 @@ WRT_HND: SET_PAGE_X DIRPAGE
|
|||||||
ADD HL,BC
|
ADD HL,BC
|
||||||
AND A
|
AND A
|
||||||
SBC HL,DE
|
SBC HL,DE
|
||||||
JR NC,SAVEDIR
|
JP NC,SAVEDIR
|
||||||
LD HL,(SAVEDIR.DIRSIZE)
|
LD HL,(SAVEDIR.DIRSIZE)
|
||||||
LD BC,(CORE_BUFFERS.FatBuffer.BytesPerCluster)
|
LD BC,(CORE_BUFFERS.FatBuffer.BytesPerCluster)
|
||||||
ADD HL,BC
|
ADD HL,BC
|
||||||
@ -627,7 +601,7 @@ RD_BPB: LD C,SLOT3
|
|||||||
JP C,DOS_X_Error.Not_ready
|
JP C,DOS_X_Error.Not_ready
|
||||||
;
|
;
|
||||||
LD DE,#AA55 ; ᨣ âãà ;R05
|
LD DE,#AA55 ; ᨣ âãà ;R05
|
||||||
LD HL,(CORE_BUFFERS.SECBUF + _sBOOT_SECTOR.MBR_SIGNATURE) ;R08 ;R07
|
LD HL,(CORE_BUFFERS.SECBUF + BOOT_SECTOR.MBR_SIGNATURE) ;R08 ;R07
|
||||||
;R05
|
;R05
|
||||||
AND A
|
AND A
|
||||||
SBC HL,DE
|
SBC HL,DE
|
||||||
@ -639,22 +613,18 @@ RD_BPB: LD C,SLOT3
|
|||||||
; LD BC,_sBOOT_SECTOR_PARAMS_FAT32 ; size
|
; LD BC,_sBOOT_SECTOR_PARAMS_FAT32 ; size
|
||||||
; LDIR
|
; LDIR
|
||||||
;
|
;
|
||||||
LD A,(CORE_BUFFERS.SECBUF + _sBOOT_SECTOR_PARAMS.DRIVE_TYPE)
|
LD A,(CORE_BUFFERS.SECBUF + BOOT_SECTOR.DRIVE_TYPE)
|
||||||
CP #F0
|
CP #F0
|
||||||
JP C,DOS_X_Error.UnknownBPB
|
JP C,DOS_X_Error.UnknownBPB
|
||||||
;
|
;
|
||||||
;!TODO ¯à®¢¥à¨âì ¯® ¬¥âª¥ à §¤¥« , çâ® íâ® FAT, ¯®â®¬ ®¯à¥¤¥«ïâì ª ª®© FAT
|
;!TODO ¯à®¢¥à¨âì ¯® ¬¥âª¥ à §¤¥« , çâ® íâ® FAT, ¯®â®¬ ®¯à¥¤¥«ïâì ª ª®© FAT
|
||||||
;
|
;
|
||||||
LD HL,(CORE_BUFFERS.SECBUF + _sBOOT_SECTOR_PARAMS.BytesPerSector)
|
LD HL,(CORE_BUFFERS.SECBUF + BOOT_SECTOR.BytesPerSector)
|
||||||
LD (CORE_BUFFERS.FatBuffer.BytesPerSector),HL
|
LD (CORE_BUFFERS.FatBuffer.BytesPerSector),HL
|
||||||
LD A,(CORE_BUFFERS.SECBUF + _sBOOT_SECTOR_PARAMS.SectorsPerCluster)
|
LD A,(CORE_BUFFERS.SECBUF + BOOT_SECTOR.SectorsPerCluster)
|
||||||
LD (CORE_BUFFERS.FatBuffer.SectorsPerCluster),A
|
LD (CORE_BUFFERS.FatBuffer.SectorsPerCluster),A
|
||||||
LD HL,(CORE_BUFFERS.SECBUF + _sBOOT_SECTOR_PARAMS.BPB_SERIAL_NUMBER)
|
|
||||||
LD (CORE_BUFFERS.FatBuffer.BPB_SERIAL_NUMBER),HL
|
|
||||||
LD HL,(CORE_BUFFERS.SECBUF + _sBOOT_SECTOR_PARAMS.BPB_SERIAL_NUMBER+2)
|
|
||||||
LD (CORE_BUFFERS.FatBuffer.BPB_SERIAL_NUMBER+2),HL
|
|
||||||
; calc. first sector FAT
|
; calc. first sector FAT
|
||||||
LD HL,(CORE_BUFFERS.SECBUF + _sBOOT_SECTOR_PARAMS.RESERVED_SECTORS)
|
LD HL,(CORE_BUFFERS.SECBUF + BOOT_SECTOR.RESERVED_SECTORS)
|
||||||
;
|
;
|
||||||
; LD E,(IY+_sBOOT_SECTOR_PARAMS.HIDDEN) ;Hidden sec
|
; LD E,(IY+_sBOOT_SECTOR_PARAMS.HIDDEN) ;Hidden sec
|
||||||
; LD D,(IY+_sBOOT_SECTOR_PARAMS.HIDDEN+1)
|
; LD D,(IY+_sBOOT_SECTOR_PARAMS.HIDDEN+1)
|
||||||
@ -669,25 +639,23 @@ RD_BPB: LD C,SLOT3
|
|||||||
LD C,A
|
LD C,A
|
||||||
LD (CORE_BUFFERS.FatBuffer.FAT1_SEC_H),BC ; high word first sector FAT #1 ; [ ] fat32
|
LD (CORE_BUFFERS.FatBuffer.FAT1_SEC_H),BC ; high word first sector FAT #1 ; [ ] fat32
|
||||||
LD (CORE_BUFFERS.FatBuffer.FAT2_SEC_H),BC ; high word first sector FAT #1 ; [ ] fat32
|
LD (CORE_BUFFERS.FatBuffer.FAT2_SEC_H),BC ; high word first sector FAT #1 ; [ ] fat32
|
||||||
LD (CORE_BUFFERS.FatBuffer.RootDirStartCluster_L),BC ; [ ] fat32
|
;LD (CORE_BUFFERS.FatBuffer.END_CHAIN_CLUSTER_H),BC ; [ ] fat32 reset variables
|
||||||
LD (CORE_BUFFERS.FatBuffer.RootDirStartCluster_H),BC ; [ ] fat32
|
;LD (CORE_BUFFERS.FatBuffer.MaxClusterHigh),BC ; [ ] fat32 reset variables
|
||||||
LD (CORE_BUFFERS.FatBuffer.END_CHAIN_CLUSTER_H),BC ; [ ] fat32 reset variables
|
|
||||||
LD (CORE_BUFFERS.FatBuffer.MaxClusterHigh),BC ; [ ] fat32 reset variables
|
|
||||||
LD (CORE_BUFFERS.FatBuffer.SectorsPerFAT_H),A ; [ ] fat32
|
LD (CORE_BUFFERS.FatBuffer.SectorsPerFAT_H),A ; [ ] fat32
|
||||||
;
|
;
|
||||||
;
|
;
|
||||||
LD DE,(CORE_BUFFERS.SECBUF + _sBOOT_SECTOR_PARAMS.SectorsPerFAT16)
|
LD DE,(CORE_BUFFERS.SECBUF + BOOT_SECTOR.SectorsPerFAT16)
|
||||||
LD A,E
|
LD A,E
|
||||||
OR D
|
OR D
|
||||||
JR NZ,.skip_high
|
JR NZ,.skip_high
|
||||||
;
|
;
|
||||||
LD BC,(CORE_BUFFERS.SECBUF + _sBOOT_SECTOR_PARAMS_FAT32.SectorsPerFAT32+4)
|
LD BC,(CORE_BUFFERS.SECBUF + BOOT_SECTOR.SectorsPerFAT32 + 2)
|
||||||
LD A,C
|
LD A,C
|
||||||
LD (CORE_BUFFERS.FatBuffer.SectorsPerFAT_H),A
|
LD (CORE_BUFFERS.FatBuffer.SectorsPerFAT_H),A
|
||||||
LD DE,(CORE_BUFFERS.SECBUF + _sBOOT_SECTOR_PARAMS_FAT32.SectorsPerFAT32)
|
LD DE,(CORE_BUFFERS.SECBUF + BOOT_SECTOR.SectorsPerFAT32)
|
||||||
.skip_high: LD (CORE_BUFFERS.FatBuffer.SectorsPerFAT_L),DE
|
.skip_high: LD (CORE_BUFFERS.FatBuffer.SectorsPerFAT_L),DE
|
||||||
;
|
;
|
||||||
LD A,(CORE_BUFFERS.SECBUF + _sBOOT_SECTOR_PARAMS.Number_of_FATs) ; amount FATs
|
LD A,(CORE_BUFFERS.SECBUF + BOOT_SECTOR.Number_of_FATs) ; amount FATs
|
||||||
CP 1
|
CP 1
|
||||||
JR Z,.one_FAT
|
JR Z,.one_FAT
|
||||||
DEC A
|
DEC A
|
||||||
@ -724,8 +692,13 @@ RD_BPB: LD C,SLOT3
|
|||||||
ENDIF
|
ENDIF
|
||||||
;
|
;
|
||||||
EX DE,HL
|
EX DE,HL
|
||||||
LD HL,(CORE_BUFFERS.SECBUF + _sBOOT_SECTOR_PARAMS.FilesInRootDIR) ; 0 for fat32
|
LD HL,(CORE_BUFFERS.SECBUF + BOOT_SECTOR.FilesInRootDIR) ; 0 for fat32
|
||||||
DEC HL ; [ ]fat32
|
; [ ]fat32 ;!TEST
|
||||||
|
LD A,H
|
||||||
|
OR L
|
||||||
|
JR Z,.skip_loop2
|
||||||
|
;
|
||||||
|
DEC HL
|
||||||
XOR A
|
XOR A
|
||||||
;NEXTAD2
|
;NEXTAD2
|
||||||
.loop2: INC A
|
.loop2: INC A
|
||||||
@ -733,7 +706,7 @@ RD_BPB: LD C,SLOT3
|
|||||||
SBC HL,BC
|
SBC HL,BC
|
||||||
JR NC,.loop2
|
JR NC,.loop2
|
||||||
;
|
;
|
||||||
EX DE,HL
|
.skip_loop2: EX DE,HL
|
||||||
LD C,A ; A - sectors in DIR
|
LD C,A ; A - sectors in DIR
|
||||||
LD B,0
|
LD B,0
|
||||||
LD (CORE_BUFFERS.FatBuffer.DirSizeInSectors),A
|
LD (CORE_BUFFERS.FatBuffer.DirSizeInSectors),A
|
||||||
@ -819,14 +792,14 @@ RD_BPB: LD C,SLOT3
|
|||||||
; LD (CORE_BUFFERS.FatBuffer.S_X_H),HL
|
; LD (CORE_BUFFERS.FatBuffer.S_X_H),HL
|
||||||
////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////
|
||||||
; [ ] fat32
|
; [ ] fat32
|
||||||
LD HL,(CORE_BUFFERS.SECBUF + _sBOOT_SECTOR_PARAMS.SectorsPerDrive)
|
LD HL,(CORE_BUFFERS.SECBUF + BOOT_SECTOR.SectorsPerDrive)
|
||||||
LD DE,(CORE_BUFFERS.FatBuffer.FirstDataSector_L)
|
LD DE,(CORE_BUFFERS.FatBuffer.FirstDataSector_L)
|
||||||
LD A,H
|
LD A,H
|
||||||
OR L
|
OR L
|
||||||
JP NZ,.HDDSMAL
|
JP NZ,.HDDSMAL
|
||||||
;
|
;
|
||||||
LD HL,(CORE_BUFFERS.SECBUF + _sBOOT_SECTOR_PARAMS.BPB_BIG_TOTAL_SECTORS_L)
|
LD HL,(CORE_BUFFERS.SECBUF + BOOT_SECTOR.BPB_BIG_TOTAL_SECTORS_L)
|
||||||
LD BC,(CORE_BUFFERS.SECBUF + _sBOOT_SECTOR_PARAMS.BPB_BIG_TOTAL_SECTORS_H)
|
LD BC,(CORE_BUFFERS.SECBUF + BOOT_SECTOR.BPB_BIG_TOTAL_SECTORS_H)
|
||||||
PUSH BC ; Total Sectors high
|
PUSH BC ; Total Sectors high
|
||||||
PUSH HL ; Total Sectors low
|
PUSH HL ; Total Sectors low
|
||||||
AND A
|
AND A
|
||||||
@ -841,18 +814,20 @@ RD_BPB: LD C,SLOT3
|
|||||||
PUSH HL ; Total Sectors low
|
PUSH HL ; Total Sectors low
|
||||||
SBC HL,DE
|
SBC HL,DE
|
||||||
;
|
;
|
||||||
.HDDBIG: LD A,(CORE_BUFFERS.FatBuffer.SectorsPerCluster)
|
.HDDBIG: CALL ClusterToSector
|
||||||
SCF
|
; LD A,(CORE_BUFFERS.FatBuffer.SectorsPerCluster)
|
||||||
.loop7: RRA
|
; SCF
|
||||||
JR C,.loop7_exit
|
; .loop7: RRA
|
||||||
RR B
|
; JR C,.loop7_exit
|
||||||
RR C
|
; RR B
|
||||||
RR H
|
; RR C
|
||||||
RR L
|
; RR H
|
||||||
JP .loop7
|
; RR L
|
||||||
|
; JP .loop7
|
||||||
;
|
;
|
||||||
.loop7_exit: INC HL
|
.loop7_exit: INC HL
|
||||||
LD (CORE_BUFFERS.FatBuffer.MaxClusterLow),HL
|
LD (CORE_BUFFERS.FatBuffer.MaxClusterLow),HL
|
||||||
|
LD (CORE_BUFFERS.FatBuffer.MaxClusterHigh),BC
|
||||||
;
|
;
|
||||||
XOR A
|
XOR A
|
||||||
LD H,A
|
LD H,A
|
||||||
@ -866,7 +841,7 @@ RD_BPB: LD C,SLOT3
|
|||||||
LD HL,(CORE_BUFFERS.FatBuffer.SectorsPerFAT_L)
|
LD HL,(CORE_BUFFERS.FatBuffer.SectorsPerFAT_L)
|
||||||
; DE:HL = SectorsPerFAT
|
; DE:HL = SectorsPerFAT
|
||||||
;
|
;
|
||||||
LD A,(CORE_BUFFERS.SECBUF + _sBOOT_SECTOR_PARAMS.Number_of_FATs)
|
LD A,(CORE_BUFFERS.SECBUF + BOOT_SECTOR.Number_of_FATs)
|
||||||
LD B,A
|
LD B,A
|
||||||
DEC A
|
DEC A
|
||||||
JR Z,.loop_mul_end
|
JR Z,.loop_mul_end
|
||||||
@ -884,7 +859,7 @@ RD_BPB: LD C,SLOT3
|
|||||||
JR NC,.no_inc_DE
|
JR NC,.no_inc_DE
|
||||||
INC DE
|
INC DE
|
||||||
.no_inc_DE: ; .RESERVED_SECTORS + .DirSizeInSectors + .Number_of_FATs * .SectorsPerFAT
|
.no_inc_DE: ; .RESERVED_SECTORS + .DirSizeInSectors + .Number_of_FATs * .SectorsPerFAT
|
||||||
LD BC,(CORE_BUFFERS.SECBUF + _sBOOT_SECTOR_PARAMS.RESERVED_SECTORS)
|
LD BC,(CORE_BUFFERS.SECBUF + BOOT_SECTOR.RESERVED_SECTORS)
|
||||||
ADD HL,BC
|
ADD HL,BC
|
||||||
JR NC,.no_inc_de
|
JR NC,.no_inc_de
|
||||||
INC DE
|
INC DE
|
||||||
@ -917,32 +892,54 @@ RD_BPB: LD C,SLOT3
|
|||||||
JR C,.its_FAT32
|
JR C,.its_FAT32
|
||||||
;
|
;
|
||||||
; It's FAT16
|
; It's FAT16
|
||||||
LD A,FAT_TYPE.x16
|
|
||||||
LD HL,#FFFF
|
LD HL,#FFFF
|
||||||
|
LD A,FAT_TYPE.x16
|
||||||
|
.Set_SN: EXX
|
||||||
|
LD HL,0
|
||||||
|
LD (CORE_BUFFERS.FatBuffer.END_CHAIN_CLUSTER_H),HL
|
||||||
|
LD (CORE_BUFFERS.FatBuffer.RootDirStartCluster_L),HL
|
||||||
|
LD HL,CORE_BUFFERS.SECBUF + BOOT_SECTOR.FAT.LABEL
|
||||||
|
EXX
|
||||||
|
LD DE,(CORE_BUFFERS.SECBUF + BOOT_SECTOR.FAT.SERIAL_NUMBER)
|
||||||
|
LD BC,(CORE_BUFFERS.SECBUF + BOOT_SECTOR.FAT.SERIAL_NUMBER+2)
|
||||||
JR .BPB_FAT
|
JR .BPB_FAT
|
||||||
;
|
;
|
||||||
.its_FAT12: LD HL,#0FFF
|
.its_FAT12: LD HL,#0FFF
|
||||||
LD A,FAT_TYPE.x12
|
LD A,FAT_TYPE.x12
|
||||||
JR .BPB_FAT
|
JR .Set_SN
|
||||||
;
|
;
|
||||||
.its_FAT32: LD A,FAT_TYPE.x32
|
.its_FAT32: EXX
|
||||||
|
LD HL,CORE_BUFFERS.SECBUF + BOOT_SECTOR.FAT32.LABEL
|
||||||
|
EXX
|
||||||
|
;
|
||||||
|
LD HL,(CORE_BUFFERS.SECBUF + BOOT_SECTOR.RootDirStartCluster)
|
||||||
|
LD (CORE_BUFFERS.FatBuffer.RootDirStartCluster_L),HL
|
||||||
|
LD BC,(CORE_BUFFERS.SECBUF + BOOT_SECTOR.RootDirStartCluster+2)
|
||||||
|
LD (CORE_BUFFERS.FatBuffer.RootDirStartCluster_H),BC
|
||||||
|
CALL ClusterToSector
|
||||||
|
LD (CORE_BUFFERS.FatBuffer.RootDirFirstSector_L),HL
|
||||||
|
LD (CORE_BUFFERS.FatBuffer.RootDirFirstSector_H),BC
|
||||||
|
;
|
||||||
|
LD A,FAT_TYPE.x32
|
||||||
LD HL,#0FFF
|
LD HL,#0FFF
|
||||||
LD (CORE_BUFFERS.FatBuffer.END_CHAIN_CLUSTER_H),HL
|
LD (CORE_BUFFERS.FatBuffer.END_CHAIN_CLUSTER_H),HL
|
||||||
LD (CORE_BUFFERS.FatBuffer.MaxClusterHigh),HL ; [ ] fat32 ;!FIXIT
|
|
||||||
LD H,L
|
LD H,L
|
||||||
|
LD DE,(CORE_BUFFERS.SECBUF + BOOT_SECTOR.FAT32.SERIAL_NUMBER)
|
||||||
|
LD BC,(CORE_BUFFERS.SECBUF + BOOT_SECTOR.FAT32.SERIAL_NUMBER+2)
|
||||||
;
|
;
|
||||||
.BPB_FAT: LD (CORE_BUFFERS.FatBuffer.FAT_TYPE),A
|
.BPB_FAT: LD (CORE_BUFFERS.FatBuffer.FAT_TYPE),A
|
||||||
LD (CORE_BUFFERS.FatBuffer.END_CHAIN_CLUSTER_L),HL
|
LD (CORE_BUFFERS.FatBuffer.END_CHAIN_CLUSTER_L),HL
|
||||||
|
LD (CORE_BUFFERS.FatBuffer.BPB_SERIAL_NUMBER),DE
|
||||||
|
LD (CORE_BUFFERS.FatBuffer.BPB_SERIAL_NUMBER+2),BC
|
||||||
|
EXX
|
||||||
|
LD DE,CORE_BUFFERS.FatBuffer.BPB_LABEL
|
||||||
|
LD BC,11 ;!HARDCODE
|
||||||
|
LDIR
|
||||||
;
|
;
|
||||||
|
|
||||||
SET_PAGE_X FATPAGE
|
SET_PAGE_X FATPAGE
|
||||||
|
|
||||||
PUSH AF
|
PUSH AF
|
||||||
; [ ] fat32
|
|
||||||
; XOR A
|
|
||||||
; HL = 0
|
|
||||||
; EX DE,HL
|
|
||||||
;
|
|
||||||
LD DE,0
|
LD DE,0
|
||||||
CALL READ_FAT_TABLE
|
CALL READ_FAT_TABLE
|
||||||
POP AF
|
POP AF
|
||||||
@ -951,7 +948,7 @@ RD_BPB: LD C,SLOT3
|
|||||||
XOR A
|
XOR A
|
||||||
RET
|
RET
|
||||||
;!TODO detect fat type by clusters!
|
;!TODO detect fat type by clusters!
|
||||||
.IBM_DOS: LD A,(CORE_BUFFERS.SECBUF + _sBOOT_SECTOR_PARAMS.DRIVE_TYPE)
|
.IBM_DOS: LD A,(CORE_BUFFERS.SECBUF + BOOT_SECTOR.DRIVE_TYPE)
|
||||||
CP #F0
|
CP #F0
|
||||||
JR C,DOS_X_Error.UnknownBPB
|
JR C,DOS_X_Error.UnknownBPB
|
||||||
; ID ram-¤¨áª - #FA
|
; ID ram-¤¨áª - #FA
|
||||||
@ -964,6 +961,24 @@ RD_BPB: LD C,SLOT3
|
|||||||
LD H,L
|
LD H,L
|
||||||
JP .BPB_FAT
|
JP .BPB_FAT
|
||||||
;
|
;
|
||||||
|
|
||||||
|
; --> BC:HL - Cluster
|
||||||
|
; <-- BC:HL - Sector
|
||||||
|
ClusterToSector:
|
||||||
|
LD A,B
|
||||||
|
AND #0F
|
||||||
|
LD B,A
|
||||||
|
LD A,(CORE_BUFFERS.FatBuffer.SectorsPerCluster)
|
||||||
|
SCF
|
||||||
|
.loop: RRA
|
||||||
|
RET C
|
||||||
|
RR B
|
||||||
|
RR C
|
||||||
|
RR H
|
||||||
|
RR L
|
||||||
|
JP .loop
|
||||||
|
;
|
||||||
|
|
||||||
DOS_X_Error:
|
DOS_X_Error:
|
||||||
.UnknownBPB: LD A,DSS_Error.sys.UNKNOWN_FORMAT
|
.UnknownBPB: LD A,DSS_Error.sys.UNKNOWN_FORMAT
|
||||||
SCF
|
SCF
|
||||||
|
|||||||
@ -240,6 +240,7 @@ READ_FROM_FAT: CALL CHECK_CLUSTER_IS_SMALLER
|
|||||||
POP BC
|
POP BC
|
||||||
LD A,B
|
LD A,B
|
||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
|
POP HL
|
||||||
RET
|
RET
|
||||||
|
|
||||||
;
|
;
|
||||||
|
|||||||
@ -1146,13 +1146,6 @@ KBD_Receiver_Overrun:
|
|||||||
; reg 0 - error reset
|
; reg 0 - error reset
|
||||||
.reset_errors: LD A,%0011'0000
|
.reset_errors: LD A,%0011'0000
|
||||||
OUT (Z84.SIO.Ch_A.Ctrl),A
|
OUT (Z84.SIO.Ch_A.Ctrl),A
|
||||||
;!TEST SIO INT
|
|
||||||
; reg 0 - return from int
|
|
||||||
IF KEYBOARD_INT_ENABLED
|
|
||||||
LD A,%0011'1000
|
|
||||||
OUT (Z84.SIO.Ch_A.Ctrl),A
|
|
||||||
ENDIF
|
|
||||||
;
|
|
||||||
;!TODO ¯à¨ ¤¥â¥ªâ¥ ¯¥à¥¯®«¥¨ï ¡ãä¥à ¯à®æ áïâì ª« ¢¨è¨ ¨§ ¯®àâ #FE ᯥªâàã¬
|
;!TODO ¯à¨ ¤¥â¥ªâ¥ ¯¥à¥¯®«¥¨ï ¡ãä¥à ¯à®æ áïâì ª« ¢¨è¨ ¨§ ¯®àâ #FE ᯥªâàã¬
|
||||||
;
|
;
|
||||||
XOR A
|
XOR A
|
||||||
|
|||||||
@ -523,10 +523,10 @@ DEFINE_PARTITIONS:
|
|||||||
.EASYDOS:
|
.EASYDOS:
|
||||||
.MEDIDOS:
|
.MEDIDOS:
|
||||||
.HIGHDOS:
|
.HIGHDOS:
|
||||||
LD E,(IY + _sMBR_PARTITION_RECORD.Start_LBA + 0)
|
LD E,(IY + BOOT_SECTOR.Partition.Start_LBA + 0)
|
||||||
LD D,(IY + _sMBR_PARTITION_RECORD.Start_LBA + 1)
|
LD D,(IY + BOOT_SECTOR.Partition.Start_LBA + 1)
|
||||||
LD L,(IY + _sMBR_PARTITION_RECORD.Start_LBA + 2)
|
LD L,(IY + BOOT_SECTOR.Partition.Start_LBA + 2)
|
||||||
LD H,(IY + _sMBR_PARTITION_RECORD.Start_LBA + 3)
|
LD H,(IY + BOOT_SECTOR.Partition.Start_LBA + 3)
|
||||||
LD IX,(CURRENT_SECTOR_L)
|
LD IX,(CURRENT_SECTOR_L)
|
||||||
ADD IX,DE
|
ADD IX,DE
|
||||||
LD DE,(CURRENT_SECTOR_H)
|
LD DE,(CURRENT_SECTOR_H)
|
||||||
@ -539,10 +539,10 @@ DEFINE_PARTITIONS:
|
|||||||
LD (IX + LOGDRV.SECTOR_OFFSET + 1),D
|
LD (IX + LOGDRV.SECTOR_OFFSET + 1),D
|
||||||
LD (IX + LOGDRV.SECTOR_OFFSET + 2),L
|
LD (IX + LOGDRV.SECTOR_OFFSET + 2),L
|
||||||
LD (IX + LOGDRV.SECTOR_OFFSET + 3),H
|
LD (IX + LOGDRV.SECTOR_OFFSET + 3),H
|
||||||
LD E,(IY + _sMBR_PARTITION_RECORD.Size_LBA + 0)
|
LD E,(IY + BOOT_SECTOR.Partition.Size_LBA + 0)
|
||||||
LD D,(IY + _sMBR_PARTITION_RECORD.Size_LBA + 1)
|
LD D,(IY + BOOT_SECTOR.Partition.Size_LBA + 1)
|
||||||
LD L,(IY + _sMBR_PARTITION_RECORD.Size_LBA + 2)
|
LD L,(IY + BOOT_SECTOR.Partition.Size_LBA + 2)
|
||||||
LD H,(IY + _sMBR_PARTITION_RECORD.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 + LOGDRV.SIZE_IN_SECTORS + 0),E
|
||||||
LD (IX + LOGDRV.SIZE_IN_SECTORS + 1),D
|
LD (IX + LOGDRV.SIZE_IN_SECTORS + 1),D
|
||||||
|
|||||||
@ -37,20 +37,20 @@
|
|||||||
; .DATE: WORD #0000 ;+ #18 +24 DATE
|
; .DATE: WORD #0000 ;+ #18 +24 DATE
|
||||||
; .FIRST_CLUSTER_L: WORD #0000 ;+ #1A +26 START CLUSTER ; [ ] fat32
|
; .FIRST_CLUSTER_L: WORD #0000 ;+ #1A +26 START CLUSTER ; [ ] fat32
|
||||||
; .F_SIZE: DWORD #00000000 ;+ #1C +28 SIZE FILE
|
; .F_SIZE: DWORD #00000000 ;+ #1C +28 SIZE FILE
|
||||||
.FS_REC: _sFAT_DIRECTORY_RECORD
|
.FS_REC _sFAT_DIRECTORY_RECORD
|
||||||
; from Core
|
; from Core
|
||||||
.F_POSITION: DWORD #00000000 ;+ #20 +32 FILE POSITION (FP)
|
.F_POSITION DWORD #00000000 ;+ #20 +32 FILE POSITION (FP)
|
||||||
.DIR_CLUSTER_L: WORD #0000 ;+ #24 +36 DIRECTORY CLUSTER LOW
|
.DIR_CLUSTER_L WORD #0000 ;+ #24 +36 DIRECTORY CLUSTER LOW
|
||||||
.DIR_CLUSTER_H: WORD #0000 ;+ #24 +38 DIRECTORY CLUSTER HIGH ; [x] fat32
|
.DIR_CLUSTER_H WORD #0000 ;+ #24 +38 DIRECTORY CLUSTER HIGH ; [x] fat32
|
||||||
.HANDLE: WORD #0000 ;+ #28 +40 HANDLE NUMBER
|
.HANDLE WORD #0000 ;+ #28 +40 HANDLE NUMBER
|
||||||
.DRIVE: BYTE #00 ;+ #2A +42 DRIVE OR CURRENT
|
.DRIVE BYTE #00 ;+ #2A +42 DRIVE OR CURRENT
|
||||||
.ACCESS_MODE: BYTE #00 ;+ #2B +43 ACCESS MODE
|
.ACCESS_MODE BYTE #00 ;+ #2B +43 ACCESS MODE
|
||||||
.TASK_NUM: BYTE #00 ;+ #2C +44 TASK
|
.TASK_NUM BYTE #00 ;+ #2C +44 TASK
|
||||||
.OptimizedClusters BYTE #00 ;+ #2D +45
|
.OptimizedClusters BYTE #00 ;+ #2D +45
|
||||||
.KnownCluster_L: WORD #0000 ;+ #2E +46 Œ« ¤è¥¥ á«®¢® ®¬¥à ª« áâ¥à ¤«ï ª®â®à®£® ¨§¢¥áâ® ®â®á¨â¥«ì®¥ ᬥ饨¥ ¢ãâà¨ ä ©«
|
.KnownCluster_L WORD #0000 ;+ #2E +46 Œ« ¤è¥¥ á«®¢® ®¬¥à ª« áâ¥à ¤«ï ª®â®à®£® ¨§¢¥áâ® ®â®á¨â¥«ì®¥ ᬥ饨¥ ¢ãâà¨ ä ©«
|
||||||
.KnownCluster_H: WORD #0000 ;+ #30 +48 ‘â à襥 á«®¢® ®¬¥à ª« áâ¥à ¤«ï ª®â®à®£® ¨§¢¥áâ® ®â®á¨â¥«ì®¥ ᬥ饨¥ ¢ãâà¨ ä ©«
|
.KnownCluster_H WORD #0000 ;+ #30 +48 ‘â à襥 á«®¢® ®¬¥à ª« áâ¥à ¤«ï ª®â®à®£® ¨§¢¥áâ® ®â®á¨â¥«ì®¥ ᬥ饨¥ ¢ãâà¨ ä ©«
|
||||||
.KnownOffset_L: WORD #0000 ;+ #32 +50 Œ« ¤è¥¥ á«®¢® ᬥ饨ï (¢ ª« áâ¥à å) ®â®á¨â¥«ì® ç « ä ©« ¤«ï á®åà ¥®£® ®¬¥à ª« áâ¥à .
|
.KnownOffset_L WORD #0000 ;+ #32 +50 Œ« ¤è¥¥ á«®¢® ᬥ饨ï (¢ ª« áâ¥à å) ®â®á¨â¥«ì® ç « ä ©« ¤«ï á®åà ¥®£® ®¬¥à ª« áâ¥à .
|
||||||
.KnownOffset_H: WORD #0000 ;+ #34 +52 ‘â à襥 á«®¢® ᬥ饨ï (¢ ª« áâ¥à å) ®â®á¨â¥«ì® ç « ä ©« ¤«ï á®åà ¥®£® ®¬¥à ª« áâ¥à .
|
.KnownOffset_H WORD #0000 ;+ #34 +52 ‘â à襥 á«®¢® ᬥ饨ï (¢ ª« áâ¥à å) ®â®á¨â¥«ì® ç « ä ©« ¤«ï á®åà ¥®£® ®¬¥à ª« áâ¥à .
|
||||||
ENDS
|
ENDS
|
||||||
;ACCESS MODE: A=0 誺平言/<EFBFBD>祠摐
|
;ACCESS MODE: A=0 誺平言/<EFBFBD>祠摐
|
||||||
; A=1 誺平言
|
; A=1 誺平言
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
950
|
973
|
||||||
@ -1 +1 @@
|
|||||||
Subproject commit 0e2bbfb73ceb70a16b2ab2b5ee6cbc6bd5005bf7
|
Subproject commit e9bcf54a516df972207fc032925d2dfb74c39a89
|
||||||
Loading…
Reference in New Issue
Block a user