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
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
f33ecbcea2
make the Linux bochs run more inline with the Windows one
2024-10-06 15:37:19 -04:00
03a09ed54b
Merge pull request #2 from Nivirx/FAT_Refactor
...
Full refactor for modularization
2024-10-05 20:19:51 -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
d6af15a7a6
typo fix
2024-10-05 12:16:31 -04:00
a4fa48949c
Move fat32 and BIOS functions to their own files
2024-10-05 12:04:40 -04:00
0a1123c5b5
removed extra part probe and added sleep before removing disk
...
also back to putting the test 32bit mode code on the root of the volume
2024-10-05 10:14:02 -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
fdbfd811d5
increased disk size and moved bpb/ebpb a bit
2024-10-04 14:26:10 -04:00
d93236d298
some bpb/ebpb tweaks
2024-10-04 11:48:25 -04:00
86fd76e909
remove old kmem functions
2024-10-04 09:57:32 -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
63e6f1fac8
kmemset and kmemcpy cdecl16 versions
2024-10-04 09:53:01 -04:00