home | terminal | snapshot | hardware | microcode engine | operating system | c compiler & assembler | c library | resources | photos & videos | system overview | interrupts & dma | instruction set | system verilog model | kernel overview | file system | system calls | shell | programs & games | how to build a program | github | youtube | contact

Very sketchy for now. This will be updated in time.

 info for : IDE SERVICES INTERRUPT
 IDE read/write 512-byte sector
 al = option
 user buffer pointer in D
 AH = number of sectors
 CB = LBA bytes 3..0  
------------------------------------------------------------------------------------------------------;
 FILE SYSTEM DATA STRUCTURE
------------------------------------------------------------------------------------------------------;
 for a directory we have the header first, followed by metadata
 header 1 sector (512 bytes)
 metadata 1 sector (512 bytes)
 HEADER ENTRIES:
 filename (64)
 parent dir LBA (2) -  to be used for faster backwards navigation...

 metadata entries:
 filename (24)
 attributes (1)  |_|_|file_type(3bits)|x|w|r| types: file, directory, character device
 LBA (2)
 size (2)
 day (1)
 month (1)
 year (1)
 packet size = 32 bytes

 first directory on disk is the root directory '/'


 FILE ENTRY ATTRIBUTES
 filename (24)
 attributes (1)       :|0|0|file_type(3bits)|x|w|r|
 LBA (2)              : location of raw data for file entry, or dirID for directory entry
 size (2)             : filesize
 day (1)           
 month (1)
 year (1)
 packet size = 32 bytes  : total packet size in bytes


Paulo Constantino - CC BY-NC-SA 4.0 DEED Attribution-NonCommercial-ShareAlike 4.0 International