Forums before death by AOL, social media and spammers... "We can't have nice things"
|    alt.os.development    |    Operating system development chatter    |    4,255 messages    |
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
|    Message 4,141 of 4,255    |
|    wolfgang kern to Mike Gonta    |
|    Re: shortest FAT32    |
|    18 Mar 24 15:26:16    |
      From: nowhere@never.at              On 18/03/2024 15:04, Mike Gonta wrote:       > On 2024-03-18 3:57 a.m., I wrote:       >> I'm still busy with manual creation of UEFI-GPT conform environment.       >> my idea is to make the first partition FAT32, but as small as possible.       >> because M$-FAT are defined by number of clusters rather then else my       >> only choice will be to set cluster-size to one sector       >> [65525 sectors] I need only 512 MB for my OS boot section, what a waste.       >> are there other ways to shorten a FAT32 w/o breaking too many rules ?       >> perhaps by write the first 8 bytes of the FAT ?              > This is a skeleton of my Fat32 Floppy Disk, (543 sector FAT32 file       > system) for 1.44 MB floppy disk.       > The trick I used was to mark the minimum FAT32 volume of 66602 outside       > the 1.44 Mb as lost (0x0FFFFFF7) in the file allocation table.       >       > [code]       > VOLUME_LENGTH = 66602 ; minimum FAT32 volume = 32.5 MB       > RESERVED_SECTORS = 21       > BYTES_PER_SECTOR = 512       > SECTORS_PER_CLUSTER = 1       > PARTITION_OFFSET = 0       > LABEL equ " " ; 11 characters maximum       > BYTES_PER_CLUSTER = BYTES_PER_SECTOR*SECTORS_PER_CLUSTER       > SECTORS_PER_FAT=((VOLUME_LENGTH-RESERVED_SECTORS)+(128*SECTORS       PER_CLUSTER-1))/(128*SECTORS_PER_CLUSTER)       > START_OF_DATA = RESERVED_SECTORS+SECTORS_PER_FAT       >       > org 0x7C00       > boot_sector:       > times 510-($-boot_sector) db 0       > dw 0xAA55       >       > fsi:       > db "RRaA"       > times 480 db 0       > db "rrAa"       > ; number of free clusters       > dd VOLUME_LENGTH-RESERVED_SECTORS-SECTORS_PER_FAT       > dd 4 ; number of the next free cluster       > times 12 db 0       > dd 0xAA550000       >       > times 7*512 db 0       >       > upcase_table:       > times 12*512 db 0       >       > file_allocation_table:       > dd 0xFFFFFFF8, 0xFFFFFFFF, 0x0FFFFFFF       > times 2880-RESERVED_SECTORS-SECTORS_PER_FAT-1 dd 0       > ; mark sectors outside 1.44MB as lost       > times VOLUME_LENGTH-2880 dd 0x0FFFFFF7       > times SECTORS_PER_FAT*BYTES_PER_SECTOR-($-file_allocation_table) db 0       >       > root: ; start of data       > db LABEL       > db 8 ; volume label       > db 0       > db HUNDREDTHS       > dw (HOURS SHL 11) + (MINUTES SHL 5 )+ SECONDS SHR 2       > dw ((YEARS - 1980) SHL 9) + (MONTHS SHL 5) + DAYS       > times 14 db 0       > times 512-($-root) db 0 ; pre-allocate 1 root directory sector       > ; extend to fill 1.44 Mb image       > times (2880-RESERVED_SECTORS-SECTORS_PER_FAT-1)*512 db 0xF6       > [/code]       >       thanks a lot, this is exactly what I searched for!       __       wolfgang              --- SoupGate-Win32 v1.05        * Origin: you cannot sedate... all the things you hate (1:229/2)    |
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
(c) 1994, bbs@darkrealms.ca