38bcd93ced
some debuging text for fat32 stuff
2024-10-15 20:37:49 -04:00
f1842d0cbc
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
e085cbbab7
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
915ac4c8ae
align to 16 byte bounds and add git info to build
2024-10-15 18:28:06 -04:00
e65220fece
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
6731e03e38
magic debug before touching anything in error printer
2024-10-15 13:31:51 -04:00
47a47051b2
turn off magic debug in mbr/vbr stages
2024-10-15 13:31:32 -04:00
8e2ca06406
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
2b9d0d9946
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
1ce3f67263
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
f81f358987
include disk signature and reserved bytes in part table struct
2024-10-15 12:51:34 -04:00
41db11cc64
ha ha ha, again!
2024-10-15 12:51:02 -04:00
fd7754bc60
I guess wx work again on Debian Trixie?
2024-10-15 12:50:51 -04:00
0f04e682df
change entry points (again)
2024-10-14 17:58:43 -04:00
36fcb5faf0
16 KiB stage2
2024-10-14 17:58:30 -04:00
a5296bb438
correct drive_num argument on read_disk_raw
2024-10-14 13:18:41 -04:00
933cccb88e
replace text documentation with markdown
2024-10-14 10:44:44 -04:00
ad2d37c63b
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
f32745a7e3
enable magic in the normal bochsrc.txt
2024-10-13 20:51:34 -04:00
8537d6cd5e
use bx addressing in read_disk_raw
2024-10-13 20:51:16 -04:00
e57c2cc67d
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
e4b9c5d77f
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
e3a646675f
bss for vbr stage
2024-10-13 17:52:28 -04:00
9d33469e32
fixed bss init in mbr
2024-10-13 17:52:09 -04:00
dd1a74bff0
pass location of partition_table structure to vbr
2024-10-13 16:41:39 -04:00
29db27925f
initial work on a macro to call read_disk_raw
2024-10-13 16:37:52 -04:00
7f06d47f32
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
4faffbf7fe
remove defs for memory locations (moving to bss)
2024-10-13 16:36:55 -04:00
832141efb4
bss convertion for mbr stage
2024-10-13 16:36:11 -04:00
c919144496
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
a62f3de26f
unreal gdt tweaks & fixes
2024-10-13 13:22:01 -04:00
0983ec3fd5
remove map files as well
2024-10-12 22:16:17 -04:00
bd40d6d324
relocate code sections to end up with stage2 starting at 0x500
2024-10-12 22:14:47 -04:00
3d3bcc6ea5
reduced stage2 to 24KiB
2024-10-12 22:13:12 -04:00
d1f8ec4a9e
follow standard proceedure and reallocate the mbr to 0x600
2024-10-12 21:21:43 -04:00
2fa03c31d7
partially roll back changing the segment to 0x07E0
2024-10-12 20:25:04 -04:00
f535840572
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
54b7a81648
correct typo
2024-10-12 15:39:16 -04:00
1d84f52690
definition corrections in part table stuff
2024-10-12 15:39:04 -04:00
276fe70572
use early_mem.inc
2024-10-12 15:38:47 -04:00
73b42c66fd
renamed mem.inc and removed unused items
2024-10-12 15:38:24 -04:00
9656a9465b
first version of kmemcpy5/kmemset4
2024-10-12 14:48:26 -04:00
bd80f48b1b
use NASM defined size value from structure macro
2024-10-12 12:58:32 -04:00
3fbfcbef53
BIOSMemoryMap is a location in bss now, use lea
2024-10-12 12:58:16 -04:00
31c45051e6
minor cleanup related to memory refactor
2024-10-12 12:57:56 -04:00
a523e17d27
moved stuff that is only referenced in Stage2 to stage2 bss
2024-10-12 12:55:29 -04:00
65e5a83eb4
stage2 is now a multisection binary file
...
also preparing to move memory globals to bss section.
2024-10-12 11:29:20 -04:00
cd048933ec
output symbol maps to ease debuging
2024-10-12 11:28:25 -04:00
e648fd0de6
remove PRINT_FUNC macro...this isn't it chief
2024-10-12 11:27:55 -04:00
2581e50c8b
ignore nasm symbol map files
2024-10-12 11:27:20 -04:00