; 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) STRUCT _sFM ; 47 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 .RESERVED_FAT32_2: WORD #0000 ;+ #14 +20 RESERVED .TIME: WORD #0000 ;+ #16 +22 TIME .DATE: WORD #0000 ;+ #18 +24 DATE .ST_CLUSTER: WORD #0000 ;+ #1A +26 START CLUSTER .F_SIZE: DWORD #00000000 ;+ #1C +28 SIZE FILE ; from Core .F_POSITION: DWORD #00000000 ;+ #20 +32 FILE POSITION (FP) .DIR_CLUSTER: WORD #0000 ;+ #24 +36 DIRECTORY CLUSTER .HANDLE: WORD #0000 ;+ #26 +38 HANDLE NUMBER .DRIVE: BYTE #00 ;+ #28 +40 DRIVE OR CURRENT .ACCESS_MODE: BYTE #00 ;+ #29 +41 ACCESS MODE признак изменения файла .TASK_NUM: BYTE #00 ;+ #2A +42 TASK ;.EMPTY: BYTE #00 ;+ #2B +43 EMPTY .KnownCluster_L: BYTE 0 ;+ #2B +43 Младший байт номера кластера для которого известно относительное смещение внутри файла .KnownCluster_H: BYTE 0 ;+ #2C +44 Старший байт номера кластера для которого известно относительное смещение внутри файла .KnownOffset_L: BYTE 0 ;+ #2D +45 Младший байт смещения (в кластерах) относительно начала файла для сохраненного номера кластера. .KnownOffset_H: BYTE 0 ;+ #2E +46 Старший байт смещения (в кластерах) относительно начала файла для сохраненного номера кластера. ENDS ; ; ; 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 _sBuffers FileManipulator _sFM ; 44 bytes + 44 bytes * (FMCOUNT-1) FM_RESERVE BLOCK _sFM * (FMCOUNT-1),0 ; BootSector _sBOOT_SEC ; 62 bytes ;!TODO перенести в область буферов EXE_Header _sEXE_HEADER ; 512 bytes Stack _sStack ; 256 bytes Buffer BLOCK 512,0 ; FOR BUFFER & SECBUF MemoryTable BLOCK 256,0 ; 256 bytes ENDS ;