mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-15 09:21:47 +03:00
127 lines
4.9 KiB
PHP
127 lines
4.9 KiB
PHP
;
|
||
STRUCT _sStack ; 256 bytes
|
||
.buffer BLOCK 256,0
|
||
.SPoint BYTE 0
|
||
ENDS
|
||
;
|
||
|
||
;
|
||
STRUCT _sEXE_HEADER ; 512 bytes
|
||
.EXE_EXT TEXT 3,{"EX","E"}
|
||
.VERSION BYTE 0
|
||
.OFFCOD1 WORD 0
|
||
.OFFCOD2 WORD 0
|
||
.LOADER WORD 0
|
||
.RESERVED BLOCK 6,0
|
||
.LD_ADDR WORD 0
|
||
.PC_REG WORD 0
|
||
.SP_REG WORD 0
|
||
.RESERVED2 BLOCK 490,0
|
||
ENDS
|
||
;
|
||
|
||
;File Manipulator (FM)
|
||
;[ ] fat32
|
||
STRUCT _sFM ; 51 bytes
|
||
; from FAT
|
||
; .NAME: TEXT 8,{". "," "} ;+ #00 +00 NAME
|
||
; .EXT: TEXT 3,{" "," "} ;+ #08 +08 EXT
|
||
; .ATTRIBUT: BYTE #10 ;+ #0B +11 ATTRIBUT
|
||
; .RESERVED_NT: BYTE #00 ;+ #0C +12 RESERVED
|
||
; .RESERVED_FAT32: BYTE #00 ;+ #0D +13 RESERVED
|
||
; .CREATE_TIME_FAT32: WORD #0000 ;+ #0E +14 RESERVED
|
||
; .CREATE_DATE_FAT32: WORD #0000 ;+ #10 +16 RESERVED
|
||
; .RESERVED_FAT32_1: WORD #0000 ;+ #12 +18 RESERVED
|
||
; .FIRST_CLUSTER_H: WORD #0000 ;+ #14 +20 RESERVED
|
||
; .TIME: WORD #0000 ;+ #16 +22 TIME
|
||
; .DATE: WORD #0000 ;+ #18 +24 DATE
|
||
; .FIRST_CLUSTER_L: WORD #0000 ;+ #1A +26 START CLUSTER ; [ ] fat32
|
||
; .F_SIZE: DWORD #00000000 ;+ #1C +28 SIZE FILE
|
||
.FS_REC _sFAT_DIRECTORY_RECORD
|
||
; from Core
|
||
.F_POSITION DWORD #00000000 ;+ #20 +32 FILE POSITION (FP)
|
||
.DIR_CLUSTER_L WORD #0000 ;+ #24 +36 DIRECTORY CLUSTER LOW
|
||
.DIR_CLUSTER_H WORD #0000 ;+ #24 +38 DIRECTORY CLUSTER HIGH ; [x] fat32
|
||
.HANDLE WORD #0000 ;+ #28 +40 HANDLE NUMBER
|
||
.DRIVE BYTE #00 ;+ #2A +42 DRIVE OR CURRENT
|
||
.ACCESS_MODE BYTE #00 ;+ #2B +43 ACCESS MODE
|
||
.TASK_NUM BYTE #00 ;+ #2C +44 TASK
|
||
.OptimizedClusters BYTE #00 ;+ #2D +45
|
||
.KnownCluster_L WORD #0000 ;+ #2E +46 Œ« ¤è¥¥ á«®¢® ®¬¥à ª« áâ¥à ¤«ï ª®â®à®£® ¨§¢¥áâ® ®â®á¨â¥«ì®¥ ᬥ饨¥ ¢ãâà¨ ä ©«
|
||
.KnownCluster_H WORD #0000 ;+ #30 +48 ‘â à襥 á«®¢® ®¬¥à ª« áâ¥à ¤«ï ª®â®à®£® ¨§¢¥áâ® ®â®á¨â¥«ì®¥ ᬥ饨¥ ¢ãâà¨ ä ©«
|
||
.KnownOffset_L WORD #0000 ;+ #32 +50 Œ« ¤è¥¥ á«®¢® ᬥ饨ï (¢ ª« áâ¥à å) ®â®á¨â¥«ì® ç « ä ©« ¤«ï á®åà ¥®£® ®¬¥à ª« áâ¥à .
|
||
.KnownOffset_H WORD #0000 ;+ #34 +52 ‘â à襥 á«®¢® ᬥ饨ï (¢ ª« áâ¥à å) ®â®á¨â¥«ì® ç « ä ©« ¤«ï á®åà ¥®£® ®¬¥à ª« áâ¥à .
|
||
ENDS
|
||
;ACCESS MODE: A=0 ç⥨¥/§ ¯¨áì
|
||
; A=1 ç⥨¥
|
||
; A=2 § ¯¨áì
|
||
; ;!TODO A=3 § ¯¨áì ¡¥§ «¨è¨å á®åà ¥¨© ªíè FAT
|
||
; ;!TODO A=4 § ¯¨á âì ªíè FAT
|
||
;
|
||
|
||
;
|
||
; NAM EQU 0 ; LEN4 EQU 31
|
||
; EXT EQU 8 ; POS1 EQU 32
|
||
; ATR EQU 11 ; POS2 EQU 33
|
||
; TIM1 EQU 22 ; POS3 EQU 34
|
||
; TIM2 EQU 23 ; POS4 EQU 35
|
||
; DAT1 EQU 24 ; DIRCLU1 EQU 36
|
||
; DAT2 EQU 25 ; DIRCLU2 EQU 37
|
||
; CLU1 EQU 26 ; HND1 EQU 38
|
||
; CLU2 EQU 27 ; HND2 EQU 39
|
||
; LEN1 EQU 28 ; FDRV EQU 40
|
||
; LEN2 EQU 29 ; AMODE EQU 41
|
||
; LEN3 EQU 30 ; FTASK EQU 42
|
||
|
||
;
|
||
STRUCT _sFatBuffer
|
||
;.MSG: BYTE 'FAT'
|
||
.DRIVE: BYTE #FF
|
||
.FAT_TYPE: BYTE #00 ; TYPE FAT (12 - 12bit, 16 - 16bit, 32 - 32bit) ; [x] fat32
|
||
.CacheBlock: WORD #0000
|
||
.CacheUpdated: BYTE #00
|
||
;.SectorsPerBank: BYTE #00
|
||
.RootDirStartCluster_L: WORD #0000
|
||
.RootDirStartCluster_H: WORD #0000 ; [ ] fat32
|
||
.FAT1_SEC_L: WORD #0000 ; MSD_FAT_SEC first sector FAT (FAT_FRM)
|
||
.FAT1_SEC_H: WORD #0000 ; [ ] fat32
|
||
.FAT2_SEC_L: WORD #0000
|
||
.FAT2_SEC_H: WORD #0000 ; [ ] fat32
|
||
.SectorsPerFAT_L WORD #0000
|
||
.SectorsPerFAT_H BYTE #00
|
||
.RootDirFirstSector_L: WORD #0000 ; MSD_CAT_SEC first sector DIR
|
||
.RootDirFirstSector_H: WORD #0000 ; MSD_CAT_SEC first sector DIR ; !TODO ®£à ¨ç¥¨¥ ¢ 32 ƒ¨£ ;!FIXIT ¥ ¨á¯®«ì§ã¥âáï
|
||
.DirSizeInSectors: BYTE #00 ; DIR_SEC_SIZE
|
||
.FirstDataSector_L: WORD #0000 ; MSD_DAT_SEC low
|
||
.FirstDataSector_H: WORD #0000 ; MSD_DAT_SEC high ; [ ] fat32 ¡ë«® ®£à ¨ç¥¨¥ ¢ 32 ƒ¨£
|
||
.BytesPerCluster: WORD #0000 ; CLUSTER_LEN
|
||
.END_CHAIN_CLUSTER_L: WORD #FFFF
|
||
.END_CHAIN_CLUSTER_H: WORD #0FFF ; [ ] fat3
|
||
.MaxClusterLow: WORD #0000 ; ¬ ªá. ç¨á«® ª« áâ¥à®¢ (¡¥§ á«ã¦.)
|
||
.MaxClusterHigh: WORD #0000 ; ¬ ªá. ç¨á«® ª« áâ¥à®¢ (¡¥§ á«ã¦.)
|
||
;
|
||
.BytesPerSector WORD #0000
|
||
.SectorsPerCluster BYTE #00
|
||
.BPB_SERIAL_NUMBER DWORD #00000000
|
||
.BPB_LABEL BLOCK 11,' ' ; 11 ¤«ï FAT, 31 ¤«ï CDFS
|
||
; IF COMPILE_UNUSED_CODE
|
||
; .FilesPerSector: BYTE #00 ; ç¨á«® ä ©«®¢ëå § ¯¨á¥© ¢ ᥪâ®à¥
|
||
; .ClustersPerBank: BYTE #00 ; A - Clusters per bank (16k) (ç¨á«® ª« áâ¥à®¢ ¡«®ª އ“)
|
||
; ENDIF
|
||
;.READ_PG: BYTE #00 ;!TODO ¥ ¨á¯®«ì§ãîâáï ¥ª®â®àë¥ § 票ï, ® § ¤ã¬ª ¥¯«®å ï)))
|
||
;.S_X_H: DWORD #0000 ; ª®«¨ç¥á⢮ ᥪâ®à®¢ 樫¨¤à¥
|
||
ENDS
|
||
;
|
||
|
||
;
|
||
STRUCT _sBuffers
|
||
.FileManipulator _sFM ; 44 bytes + 44 bytes * (FMCOUNT-1)
|
||
.FM_RESERVE BLOCK _sFM * (FMCOUNT-1),0 ;
|
||
.FatBuffer _sFatBuffer
|
||
;.BootSector BLOCK 90,0 ; _sBOOT_SECTOR_PARAMS: 62 bytes FAT16, 90 bytes FAT32
|
||
.EXE_Header _sEXE_HEADER ; 512 bytes
|
||
.Stack _sStack ; 256 bytes
|
||
.Buffer BLOCK 512,0 ; FOR BUFFER & SECBUF
|
||
.MemoryTable BLOCK 256,0 ; 256 bytes
|
||
ENDS
|
||
; |