Commit Graph

122 Commits

Author SHA1 Message Date
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
60aaf5cdd9 move far jump setup in EnterUnrealMode to right after we save CS 2024-10-11 21:51:07 -04:00
59678149e0 added debug config for bochs 2024-10-11 21:49:15 -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
208729ed01 split e820 bios call documentation to its own file under docs/ 2024-10-11 17:20:53 -04:00
086cf9d8ea correct src size in op 2024-10-11 16:52:57 -04:00
095822fa27 inlined ClusterToLBA
removed caller save kludge for now
init first_root_dir_sector from ebpb data
2024-10-11 15:55:24 -04:00
71f13fd6b5 somewhat of a cludge, but added a macro to save all caller saved regs 2024-10-11 14:25:01 -04:00
802d47fbf7 fix passing stage2 wrong data for boot drive 2024-10-11 13:09:17 -04:00
4af0637c7f use kmemset to 0 out fat32_state in InitFATDriver 2024-10-11 13:00:45 -04:00
07197b0d5b reduce proceedure local storage to 16 bytes 2024-10-11 12:59:36 -04:00
056551fdd1 rename file to BOOT.BIN
K.I.S.S.
2024-10-11 12:16:01 -04:00
0aae0616fd more comments to seperate setups 2024-10-11 12:08:09 -04:00
aff631f3db force 1-1 logical to physical sectors
copy our VBR code to backup VBR
2024-10-11 12:04:44 -04:00
a3a768adf4 more error handling in detecting disk image creation
will need ported to macOS sometime
2024-10-11 11:44:04 -04:00
d684d4f11f more error handling for dd writes 2024-10-11 11:31:38 -04:00
75c046f9cd use gs for vesa framebuffer (was fs) 2024-10-08 20:23:16 -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
5ab7e70455 Update README.md 2024-10-08 09:08:47 -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
586f3f0106 converted error handler to a 16bit far jump
optimized the early error printer a bit to save some bytes
removed DEBUG_HCF macro
2024-10-08 08:53:30 -04:00
8301fc20a8 renamed files to show code vs defs
files that actually include code should be in .nasm files
defines/macros/non-code should be in .inc files
2024-10-07 20:41:15 -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