This commit is contained in:
Anatoliy Belyanskiy 2024-03-22 04:05:42 +10:00
parent 42dfec0720
commit 68681fbc50
3 changed files with 58 additions and 35 deletions

View File

@ -551,12 +551,15 @@ SYS_PAGE EQU #FE
.INT_PAGE EQU #C126 ; áâà ­¨æ  á ®¡à ¡®â稪®¬ ¯à¥à뢠­¨ï .INT_PAGE EQU #C126 ; áâà ­¨æ  á ®¡à ¡®â稪®¬ ¯à¥à뢠­¨ï
.INT_ID EQU #C127 ; ¥á«¨ = #AA - §­ ç¨âì ®¡à ¡®â稪 ãáâ ­®¢«¥­ .INT_ID EQU #C127 ; ¥á«¨ = #AA - §­ ç¨âì ®¡à ¡®â稪 ãáâ ­®¢«¥­
.DS_1440 EQU #C128 ; ä« £¨ ¯¥à¥ª«î祭¨ï 720/1440 .DS_1440 EQU #C128 ; ä« £¨ ¯¥à¥ª«î祭¨ï 720/1440
.F_P_S EQU #C129 ; ç¨á«® ä ©«®¢ëå § ¯¨á¥© ¢ ᥪâ®à¥ ;.F_P_S EQU #C129 ; ç¨á«® ä ©«®¢ëå § ¯¨á¥© ¢ ᥪâ®à¥
.S_P_C EQU #C12A ; ç¨á«® ᥪâ®à®¢ ä ©«®¢ëå § ¯¨á¥© ¢ ª« áâ¥à¥ Root Dir ;.S_P_C EQU #C12A ; ç¨á«® ᥪâ®à®¢ ä ©«®¢ëå § ¯¨á¥© ¢ ª« áâ¥à¥ Root Dir
.FilesPerSector EQU #C129 ; ç¨á«® ä ©«®¢ëå § ¯¨á¥© ¢ ᥪâ®à¥
.SectorsPerCluster EQU #C12A ; ç¨á«® ᥪâ®à®¢ ä ©«®¢ëå § ¯¨á¥© ¢ ª« áâ¥à¥ Root Dir
.COUNT_FL EQU #C12B ; áç¥â稪 ä ©«®¢ ¢ ᥪâ®à¥ .COUNT_FL EQU #C12B ; áç¥â稪 ä ©«®¢ ¢ ᥪâ®à¥
.COUNT_SEC EQU #C12C ; áç¥â稪 ᥪâ®à®¢ ¢ ª â «®£¥ .COUNT_SEC EQU #C12C ; áç¥â稪 ᥪâ®à®¢ ¢ ª â «®£¥
.CURRENT_HDD EQU #C12D ; [x] bit0 - master/slave, bit1: Primary/Secondary, bit2..3: ¨á¯®«ì§ãî騩áï à §¤¥« ¢ MBR .CURRENT_HDD EQU #C12D ; [x] bit0 - master/slave, bit1: Primary/Secondary, bit2..3: ¨á¯®«ì§ãî騩áï à §¤¥« ¢ MBR
;.C_P_B EQU #C12D ; <20>ˆ<CB86>Žœ‡“…Ÿ ç¨á«® ª« áâ¥à®¢ ­  ¡«®ª އ“ ;.C_P_B EQU #C12D ; <20>ˆ<CB86>Žœ‡“…Ÿ ç¨á«® ª« áâ¥à®¢ ­  ¡«®ª އ“
;.ClusterPerBank EQU #C12D ; <20>ˆ<CB86>Žœ‡“…Ÿ ç¨á«® ª« áâ¥à®¢ ­  ¡«®ª އ“
;!TODO WORD EQU #C12E ;!TODO WORD EQU #C12E
.FAT_FLAG EQU #C130 ; FAT ä« £ + FAT sector??? #81FF - FAT16, #01FF - FAT12 .FAT_FLAG EQU #C130 ; FAT ä« £ + FAT sector??? #81FF - FAT16, #01FF - FAT12
.MSD_CONT_SEC EQU #C132 ; ⥪ã騩 ᥪâ®à ¤«ï MS-DOS .MSD_CONT_SEC EQU #C132 ; ⥪ã騩 ᥪâ®à ¤«ï MS-DOS
@ -737,7 +740,8 @@ FDD_0 EQU SYS_PAGE.FDD_0
.HEADS EQU FDD_0+2 .HEADS EQU FDD_0+2
.CYLINDL EQU FDD_0+3 .CYLINDL EQU FDD_0+3
.CYLINDH EQU FDD_0+4 .CYLINDH EQU FDD_0+4
.B_P_S EQU FDD_0+5 ;WORD ;.B_P_S EQU FDD_0+5 ;WORD
.BytesPerSector EQU FDD_0+5 ;WORD
FDD_1 EQU SYS_PAGE.FDD_1 FDD_1 EQU SYS_PAGE.FDD_1
.DISK EQU FDD_1+0 .DISK EQU FDD_1+0
.F144 EQU .DISK .F144 EQU .DISK
@ -746,7 +750,8 @@ FDD_1 EQU SYS_PAGE.FDD_1
.HEADS EQU FDD_1+2 .HEADS EQU FDD_1+2
.CYLINDL EQU FDD_1+3 .CYLINDL EQU FDD_1+3
.CYLINDH EQU FDD_1+4 .CYLINDH EQU FDD_1+4
.B_P_S EQU FDD_1+5 ;.B_P_S EQU FDD_1+5 ;WORD
.BytesPerSector EQU FDD_1+5
ENDMODULE ENDMODULE
; ;

View File

@ -28,6 +28,7 @@ FAT_ATTR:
.NoDIRnoVolID EQU .READ_ONLY + .HIDDEN + .ARCHIVE + .SYSTEM ; .NoDIRnoVolID EQU .READ_ONLY + .HIDDEN + .ARCHIVE + .SYSTEM ;
.NoVolID EQU .READ_ONLY + .HIDDEN + .DIRECTORY + .ARCHIVE + .SYSTEM ; .NoVolID EQU .READ_ONLY + .HIDDEN + .DIRECTORY + .ARCHIVE + .SYSTEM ;
.NoSYSnoVolID EQU .READ_ONLY + .HIDDEN + .DIRECTORY + .ARCHIVE ; .NoSYSnoVolID EQU .READ_ONLY + .HIDDEN + .DIRECTORY + .ARCHIVE ;
.HiddenSysDir EQU + .HIDDEN + .DIRECTORY + + .SYSTEM ;
;------------[DSS Functions]------------ ;------------[DSS Functions]------------
Dss: Dss:
.Version EQU #00 .Version EQU #00

View File

@ -4,29 +4,46 @@
.JMP: BLOCK 3,0 ; +#00 "JMP" .JMP: BLOCK 3,0 ; +#00 "JMP"
.ID_NAME: TEXT 8, {"DSS_1.7","0"} ; +#03 DOS NAME - DB "DSS_1.70" .ID_NAME: TEXT 8, {"DSS_1.7","0"} ; +#03 DOS NAME - DB "DSS_1.70"
; Block Parameters BIOS ; Block Parameters BIOS
.B_P_S: WORD #200 ; +#0B BYTE PER SECTOR .BytesPerSector: WORD #200 ; +#0B <20> §¬¥à ᥪâ®à  ¢ ¡ ©â å
.S_P_C: BYTE 2 ; +#0D SECTORS PER CLUSTER .SectorsPerCluster: BYTE 2 ; +#0D <20> §¬¥à ª« áâ¥à  ¢ ᥪâ®à å
.RESERVED_SECTORS: WORD 1 ; +#0E <20> §¬¥à á¨á⥬­®© ®¡« á⨠(¢ª«îç ï íâ®â ᥪâ®à) RESERVE SECTORS .RESERVED_SECTORS: WORD 1 ; +#0E <20> §¬¥à á¨á⥬­®© ®¡« á⨠(¢ª«îç ï íâ®â ᥪâ®à) RESERVE SECTORS
.FAT_NUM: BYTE 2 ; +#10 AMOUNT FATS .Number_of_FATs: BYTE 2 ; +#10 Š®«¨ç¥á⢮ â ¡«¨æ FAT
.F_P_DIR: WORD 112 ; +#11 —¨á«® ®¯¨á â¥«¥© ä ©«®¢ ¢ ª®à­¥¢®¬ ª â «®£¥ (¢ FAT32 - 0) .FilesInRootDIR: WORD 112 ; +#11 —¨á«® ®¯¨á â¥«¥© ä ©«®¢ ¢ ª®à­¥¢®¬ ª â «®£¥ (¢ FAT32 - 0)
.S_P_D: WORD 1440 ; +#13 ޡ饥 ç¨á«® ᥪâ®à®¢ ­  ¤¨áª¥ (¥á«¨ 0, â® à §¬¥à - ¢ .BPB_BIG_TOTAL_SECTORS) .SectorsPerDrive: WORD 1440 ; +#13 ޡ饥 ç¨á«® ᥪâ®à®¢ ­  ¤¨áª¥ (¥á«¨ 0, â® à §¬¥à - ¢ .BPB_BIG_TOTAL_SECTORS)
.DRIVE_TYPE: BYTE #F0 ; +#15 ’¨¯ ãáâனá⢠ .DRIVE_TYPE: BYTE #F0 ; +#15 ’¨¯ ãáâனá⢠
.S_P_F: WORD 2 ; +#16 SIZE FAT IN SECTORS (0 ¢ FAT32) .SectorsPerFAT16: WORD 2 ; +#16 <20> §¬¥à ®¤­®© FAT ¢ ᥪâ®à å (0 ¢ FAT32)
.S_P_T: WORD 9 ; +#18 SECTOR PER TRACK .SectorsPerTrack: WORD 9 ; +#18 <20> §¬¥à ¤®à®¦ª¨ ¢ ᥪâ®à å
.HEADS: WORD 2 ; +#1A AMOUNT SIDES .HEADS: WORD 2 ; +#1A ª®«¨ç¥á⢮ £®«®¢®ª
.HIDDEN: DWORD 0 ; +#1C HIDDEN SECTORS .HIDDEN: DWORD 0 ; +#1C ª®«¨ç¥á⢮ ªàëâëå ᥪâ®à®¢
.BPB_BIG_TOTAL_SECTORS_L: WORD 0 ; +#20 BIG TOTAL SECTOR Low word .BPB_BIG_TOTAL_SECTORS_L: WORD 0 ; +#20 BIG TOTAL SECTOR Low word
.BPB_BIG_TOTAL_SECTORS_H: WORD 0 ; +#22 BIG TOTAL SECTOR High word .BPB_BIG_TOTAL_SECTORS_H: WORD 0 ; +#22 BIG TOTAL SECTOR High word
; FAT 12-16 ; FAT 12-16
.BPB_PHISICAL_DRIVE_NUMBER: BYTE #80 ; +#24 PHISICAL DRIVE NUMBER .BPB_PHISICAL_DRIVE_NUMBER: BYTE #80 ; +#24 ”¨§¨ç¥áª¨© ­®¬¥à ¤à ©¢ 
.reserved: BYTE 0 ; +#25 ‡ à¥§¥à¢¨à®¢ ­® .reserved: BYTE 0 ; +#25 ‡ à¥§¥à¢¨à®¢ ­®
.BPB_EXT_BOOT_RECORD_SIGNATURE: BYTE #29 ; +#26 EXTENDED BOOT RECORD SIGNATURE .BPB_EXT_BOOT_RECORD_SIGNATURE: BYTE #29 ; +#26 ‘¨£­ âãà  - #29
.BPB_SERIAL_NUMBER: DWORD 0 ; +#27 VOLUME SERIAL NUMBER .BPB_SERIAL_NUMBER: DWORD 0 ; +#27 VOLUME SERIAL NUMBER
.BPB_LABEL: TEXT 11, {"NO NAME"," "} ; +#2B DISK LABEL .BPB_LABEL: TEXT 11, {"NO NAME"," "} ; +#2B Œ¥âª  ¤¨áª 
.ID_FAT: TEXT 8, {"FAT16"," "} ; +#36 FILE SYSTEM ID (BPB_FS_ID) ;!TODO detect fat type by clusters! .ID_FAT: TEXT 8, {"FAT16"," "} ; +#36 FILE SYSTEM ID (BPB_FS_ID) ;!TODO detect fat type by clusters!
ENDS
;.BOOT_CODE BLOCK 448,0 ; +#3E boot loader's code ;.BOOT_CODE BLOCK 448,0 ; +#3E boot loader's code
;.MBR_PARTITION_TABLE BLOCK 4*16 ; +#1BE table = 4x16 bytes ;.MBR_PARTITION_TABLE BLOCK 4*16 ; +#1BE table = 4x16 bytes
;.MBR_SIGNATURE WORD #AA55 ; +#1FE Signature ;.MBR_SIGNATURE WORD #AA55 ; +#1FE Signature
;
; FAT 32
STRUCT _sBOOT_SECTOR_PARAMS_FAT32
.SectorsPerFAT32: DWORD 4 ; +#24 <20> §¬¥à ®¤­®© FAT ¢ ᥪâ®à å
.MainFATnumber WORD 0 ; +#28 <20>®¬¥à £« ¢­®© â ¡«¨æë FAT
.Version WORD 0 ; +#2A ‚¥àá¨ï FAT32 (®¡ëç­® 0)
.RootDirStartCluster: DWORD 2 ; +#2C <20>¥à¢ë© ª« áâ¥à ª®à­¥¢®£® ª â «®£  (®¡ëç­® 2)
.FSINFO_Sector WORD 1 ; +#30 <20>®¬¥à ᥪâ®à  áâàãªâãàë FSINFO (®¡ëç­® 1)
.CopyBootSector WORD 6 ; +#32 <20>®¬¥à ᥪâ®à  - ª®¯¨¨ § £à㧮筮£® (®¡ëç­® 6)
.reserved_block: BLOCK 12 ; +#34 ‡ à¥§¥à¢¨à®¢ ­®
.FDD_Number BYTE 0 ; +#40 <20>®¬¥à ¤¨áª®¢®¤  ¤«ï ä㭪権 BIOS
.reserved: BYTE 0 ; +#41 ‡ à¥§¥à¢¨à®¢ ­®
.BPB_EXT_BOOT_RECORD_SIGNATURE: BYTE #29 ; +#42 ‘¨£­ âãà  - #29
.BPB_SERIAL_NUMBER: DWORD 0 ; +#43 VOLUME SERIAL NUMBER
.BPB_LABEL: TEXT 11, {"NO NAME"," "} ; +#47 Œ¥âª  ¤¨áª 
.ID_FAT: TEXT 8, {"FAT16"," "} ; +#52 €¡¡à¥¢¨ âãà  ä ©«®¢®© á¨á⥬ë
ENDS ENDS
; ;
@ -71,10 +88,10 @@
.CREATE_TIME_FAT32: WORD #0000 ;+ #0E +14 RESERVED .CREATE_TIME_FAT32: WORD #0000 ;+ #0E +14 RESERVED
.CREATE_DATE_FAT32: WORD #0000 ;+ #10 +16 RESERVED .CREATE_DATE_FAT32: WORD #0000 ;+ #10 +16 RESERVED
.RESERVED_FAT32_1: WORD #0000 ;+ #12 +18 RESERVED .RESERVED_FAT32_1: WORD #0000 ;+ #12 +18 RESERVED
.FIRST_CLUSTER_H: WORD #0000 ;+ #14 +20 RESERVED .FIRST_CLUSTER_H: WORD #0000 ;+ #14 +20 START CLUSTER high ;!TODO fat32
.TIME: WORD #0000 ;+ #16 +22 TIME .TIME: WORD #0000 ;+ #16 +22 TIME
.DATE: WORD #0000 ;+ #18 +24 DATE .DATE: WORD #0000 ;+ #18 +24 DATE
.FIRST_CLUSTER_L: WORD #0000 ;+ #1A +26 START CLUSTER ;!TODO fat32 .FIRST_CLUSTER_L: WORD #0000 ;+ #1A +26 START CLUSTER low
.F_SIZE: DWORD #00000000 ;+ #1C +28 SIZE FILE .F_SIZE: DWORD #00000000 ;+ #1C +28 SIZE FILE
ENDS ENDS
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------