psychosisinteractive / vitalityx

VitalityX, Bootloader/OS/Kernel, Exomonolothicmicrokernel
Other
2 stars 1 forks source link

Implement VXBFS fully, and implement FAT support #4

Open nougatchi opened 4 years ago

nougatchi commented 4 years ago

The bare minimum requirements:

  1. VXBFS file READ support,
  2. FAT file READ support.

IDE is already ready, we can read/write standard ATA (no write to ATAPI yet),

VXBFS format:

+----------------+
| VXBFS Header   |
|                |
+-+--------------+           +--+
  |                     +---->MB|
  |                     |    +--+
  |                     |
+-v--+          512B    |
|    |          +--+    |
|File+---------->MB+----+  end of files data is when the next address on a modblock == 0
|    |          +--+
+-+--+                 a modblock is 1 512 byte sector
  |
  |              modblocks dont have to be sequential, they just have to point to eachother
  |                          +--+
  |          +--+            |MB|
  |          |MB+------+     +-^+
  |          +-^+      |       |
  |            |       |       |
+-v--+         |     +-v+      |
|    |         |     |MB+------+
|File+---------+     +--+
|    |
+----+
nougatchi commented 4 years ago

Currently, whats done as so far: Loading the Header works Loading the File Header works Loading File Modblocks I am unsure of at the moment however. In QEMU, my test image (sys.img) it says that the file size of SHELL is: 0xFFF00AD bytes, and is located at 0x30666666h. In Bochs, it wont show the SHELL size and address and hangs. SHELL should be 1 modblock and should be located at 0x73C when loaded by the system (at the moment it loads at 0x500).