Commit Graph

148 Commits

Author SHA1 Message Date
e33f010f73 added carry and divz checks across the fat32 code
also use the pointers we have in bss to our saved data
2024-10-16 11:58:57 -04:00
c9f4b18d2b some debuging text for fat32 stuff 2024-10-15 20:37:49 -04:00
e680620148 remove some redundant reloads of si
use xchg to swap si/di instead of the stack
uninline ClusterToLBA call
2024-10-15 20:01:24 -04:00
fb54c65caf remove jmp short init at the start of stage2
also correct total size output as combined .data + .text
2024-10-15 18:33:57 -04:00
7f6436297e align to 16 byte bounds and add git info to build 2024-10-15 18:28:06 -04:00
5159ef8a7c correct size of operand in PrintDWORD
added some magic debug points for stuff that isn't working as well.
2024-10-15 13:32:36 -04:00
56e8081118 magic debug before touching anything in error printer 2024-10-15 13:31:51 -04:00
50b08f6b72 turn off magic debug in mbr/vbr stages 2024-10-15 13:31:32 -04:00
a97e3bea9b removed bpb_offset_bx dep
reworked init: process
512 byte stack...should be more than enough for the vbr
2024-10-15 12:57:54 -04:00
aa8c7b67ab moved stack to end of bss & reduced size for now.
removed redzone label
reordered sp/bp setup and bss zeroing in init:
fixed kmemcpy call stack usage
2024-10-15 12:56:12 -04:00
b4621a7fb8 reduced stack size in mbr stage
removed some unused data in bss
reordered how/when in init we set sp/bp and zero bss
we now push the top of the stack pointer/bp at the top of the stack, which makes the stack frame more 'normal'
also use movsb instead of movsw
2024-10-15 12:53:22 -04:00
5f9567d44e include disk signature and reserved bytes in part table struct 2024-10-15 12:51:34 -04:00
2020408e8d ha ha ha, again! 2024-10-15 12:51:02 -04:00
405a5ff20e I guess wx work again on Debian Trixie? 2024-10-15 12:50:51 -04:00
4660882edb change entry points (again) 2024-10-14 17:58:43 -04:00
f683b8fd17 16 KiB stage2 2024-10-14 17:58:30 -04:00
56c18d8457 correct drive_num argument on read_disk_raw 2024-10-14 13:18:41 -04:00
cfda93048b replace text documentation with markdown 2024-10-14 10:44:44 -04:00
c49de28a15 use bochs magic breakpoints in the error printer
makes it easier to get a good state to do some investigating before reseting.
2024-10-13 20:53:13 -04:00
4a013b4a59 enable magic in the normal bochsrc.txt 2024-10-13 20:51:34 -04:00
cd833184da use bx addressing in read_disk_raw 2024-10-13 20:51:16 -04:00
7617b11199 Merge pull request #3 from Nivirx/bss-setup
convert MBR, VBR, & Stage2 to use a BSS section.
2024-10-13 18:05:19 -04:00
86564b2356 added partition_table and fat32_bpb params to stage2
also the partition table and fat32_bpb and passed/copied from the mbr/vbr now
2024-10-13 17:54:06 -04:00
5ba7801926 bss for vbr stage 2024-10-13 17:52:28 -04:00
35e9aec059 fixed bss init in mbr 2024-10-13 17:52:09 -04:00
736aad85e5 pass location of partition_table structure to vbr 2024-10-13 16:41:39 -04:00
f51d8b4142 initial work on a macro to call read_disk_raw 2024-10-13 16:37:52 -04:00
3693eca940 add reserved space for jmp short init at the start, technically this is part of the bpb anyways 2024-10-13 16:37:29 -04:00
a383f7cfb4 remove defs for memory locations (moving to bss) 2024-10-13 16:36:55 -04:00
c1a9d449df bss convertion for mbr stage 2024-10-13 16:36:11 -04:00
ce6240249a turns out huge unreal mode isn't supported in bochs
huge unreal mode is 4GiB code in 16bit mode + 4GiB data
we will just use the regular big flat model instead (64KiB code/4GiB data)
2024-10-13 14:50:49 -04:00
963dec5281 unreal gdt tweaks & fixes 2024-10-13 13:22:01 -04:00
3d1877d7fe remove map files as well 2024-10-12 22:16:17 -04:00
eb97aac673 relocate code sections to end up with stage2 starting at 0x500 2024-10-12 22:14:47 -04:00
c60bad1066 reduced stage2 to 24KiB 2024-10-12 22:13:12 -04:00
050f90517a follow standard proceedure and reallocate the mbr to 0x600 2024-10-12 21:21:43 -04:00
555cf1271b partially roll back changing the segment to 0x07E0 2024-10-12 20:25:04 -04:00
8fea1f0a06 big step...and also its completely broken right now
we are going to use 0x07E0 as our base segment so we have a bit
more memory to work with until we are fully in 32bit protected mode.

this commit is broken but is just one step towards a working release.
2024-10-12 15:41:39 -04:00
b49b2bae68 correct typo 2024-10-12 15:39:16 -04:00
5abbfa4d15 definition corrections in part table stuff 2024-10-12 15:39:04 -04:00
83aa7d1147 use early_mem.inc 2024-10-12 15:38:47 -04:00
ac6ad77249 renamed mem.inc and removed unused items 2024-10-12 15:38:24 -04:00
bc89850c00 first version of kmemcpy5/kmemset4 2024-10-12 14:48:26 -04:00
12fc8a1e37 use NASM defined size value from structure macro 2024-10-12 12:58:32 -04:00
baa146bef5 BIOSMemoryMap is a location in bss now, use lea 2024-10-12 12:58:16 -04:00
d1217182d4 minor cleanup related to memory refactor 2024-10-12 12:57:56 -04:00
5a74cd86ad moved stuff that is only referenced in Stage2 to stage2 bss 2024-10-12 12:55:29 -04:00
69c068f6be stage2 is now a multisection binary file
also preparing to move memory globals to bss section.
2024-10-12 11:29:20 -04:00
63421661a7 output symbol maps to ease debuging 2024-10-12 11:28:25 -04:00
9cde0333e6 remove PRINT_FUNC macro...this isn't it chief 2024-10-12 11:27:55 -04:00