Commit Graph

59 Commits

Author SHA1 Message Date
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
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
bd40d6d324 relocate code sections to end up with stage2 starting at 0x500 2024-10-12 22:14:47 -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
276fe70572 use early_mem.inc 2024-10-12 15:38:47 -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
60aaf5cdd9 move far jump setup in EnterUnrealMode to right after we save CS 2024-10-11 21:51:07 -04:00
075e51c8bc move macro definition super early
fix a few mistakes in macro defs
2024-10-11 19:31:31 -04:00
48cd0f742d added macros to define cstr and str
aligned all the entry points for proceedures to 4 bytes
added a PrintString wraper macro
2024-10-11 19:05:15 -04:00
e5fb1b41eb added bochs debug wrappers 2024-10-11 19:03:27 -04:00
802d47fbf7 fix passing stage2 wrong data for boot drive 2024-10-11 13:09:17 -04:00
056551fdd1 rename file to BOOT.BIN
K.I.S.S.
2024-10-11 12:16:01 -04:00
00daf92df5 unreal gdt now has 2 selectors 1 code, 1 data
ss, and e/f/g segments are loaded to the same flat 4gb segment
moved gdt notes to documentation
2024-10-08 20:22:21 -04:00
6ae68d1a19 ensure 2 byte jmp rel8 thunk to init
surpress reloc abs warnings
corrected include paths/filenames
2024-10-08 08:55:17 -04:00
4218a08658 force the first jump to init in all stages to be the rel8 version 2024-10-07 20:39:39 -04:00
2bbdaddb68 jmp imm32 vs jmp rel8 (5 bytes vs 2 bytes) 2024-10-06 21:46:32 -04:00
213ea11209 cutting out everything from miniboot
this file has always just been a place holder to get some code to load from the disk
I wanted to cut out all the extra stuff in it just to simplify things down.
2024-10-06 18:52:20 -04:00
e41b597056 surpress some of the relocation warnings for mbr, vbr & stage2 2024-10-06 18:50:32 -04:00
145e9fbaa9 fixed read_disk_raw in ReadFATCluster
boot_drive and partition_offset are global pointers now
removed an extra error from mbr disk read
and some general formating and cleanup 😅
2024-10-05 20:14:00 -04:00
8f95c8f267 tons more work on modularizing the code 2024-10-05 18:55:00 -04:00
5440a1ae61 more modularization and updating date in MIT licence header 2024-10-05 13:35:39 -04:00
a4fa48949c Move fat32 and BIOS functions to their own files 2024-10-05 12:04:40 -04:00
e162e268c4 remove the dword stack macros and just use the 32bit override 2024-10-05 10:13:18 -04:00
62f036b645 change test kernel stage name
also pointed up a bug in memory.inc
2024-10-04 22:17:35 -04:00
d93236d298 some bpb/ebpb tweaks 2024-10-04 11:48:25 -04:00
3f029e6b4c vbr cdecl overhaul
refactored read_disk_raw to read_stage2_raw
switched to new kmem functions
2024-10-04 09:56:41 -04:00
30c4f1b82c move cdecl macros to nearly the top so early functions can use them 2024-10-04 09:55:45 -04:00
597132df9f cdecl16 overhaul for mbr code
switch to cdecl kmem* functions
refactored read_disk_raw to read_vbr_raw
fixed a small issue where the mbr wasn't checking its signature
2024-10-04 09:55:19 -04:00
36b8869140 add bpb and ebpb reserve area back to vbr.nasm 2024-10-03 21:00:02 -04:00
b96f587921 add forked functions and remove from memory.inc for kmem* 2024-10-03 19:53:11 -04:00
015def8d52 rough pass on fixing the stack across the board 2024-10-03 19:02:47 -04:00
8157dd301c swap order of entering Unreal mode and getting an E820
also InitFATDriver should be ok to add to the start process again.
2024-10-03 18:15:18 -04:00
de5b0ddc5d cdecl16 update for EnterUnrealMode 2024-10-03 17:59:29 -04:00
2cfe86efac refactored and validated MemoryMap funciton 2024-10-03 17:41:48 -04:00
c8ca94d7ba some general cleanup & moving the halt to the next point in main() 2024-10-03 16:43:10 -04:00
ac6110aa40 cdecl16 work and cleanup in MemoryMap 2024-10-03 16:34:27 -04:00
46717935a1 src/stage2/stage2.nasm:573: warning: label alone on a line without a colon might be in error [-w+label-orphan] 2024-10-03 15:28:44 -04:00
f691000a31 cdecl16 for EnableA20 ver.1 2024-10-03 15:10:22 -04:00
c524d8801d replace prologs and epilogs in cdecl functions so far 2024-10-03 14:51:43 -04:00
929962eaca bunch of changes mostly to do with cdecl16 conformity
moved top of stack marker to init
SetTextMode and Cursor done before hello msg
corrected CC/Stack usage to conform with cdecl16 for PrintString
corrected CC/Stack usage to conform with cdecl16 for PrintChar
corrected stack usage to conform with cdecl16 for SetTextMode
corrected stack usage to conform with cdecl16 for disable_cursor
2024-10-03 13:49:44 -04:00
054f4320ba fixing how the stack works stage1 😳 2024-10-02 12:37:21 -04:00