39148869bc
Update .gitea/workflows/onpush.yaml
2025-08-22 21:14:14 -04:00
81e6b6e835
Update Makefile
2025-08-22 21:07:47 -04:00
63c5e0d00e
Update .gitea/workflows/onpush.yaml
2025-08-22 21:04:42 -04:00
29a2a598ba
Update .gitea/workflows/onpush.yaml
2025-08-22 21:01:24 -04:00
47b18de37e
setup an action to auto build stevia
2025-08-22 20:57:15 -04:00
8129a71fdd
Merge branch 'trunk' of chtm-lapp-02.lan.chtm.me:nivirx/stevia into trunk
2025-08-22 11:58:53 -04:00
ef42ae084b
Merge branch 'fat32_sys_rewrite' into trunk
2025-08-22 11:52:48 -04:00
578e9934d8
more bug catching after changing the location of data
...
also cleanup comment from previous bug
2024-12-19 18:59:34 -05:00
2a6792ae01
moved varibles passed from vbr to .data section
...
this is to work around having to save them without .bss ready
2024-12-19 15:18:28 -05:00
2c5e5ccbee
might have fixed some of the boot_drive issues with ext_read
2024-12-19 13:13:46 -05:00
a830191547
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
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
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
4ee766304b
seperate error code for reading disk in mbr vs vbr vs stage2
2024-10-04 09:52:24 -04:00
d5aa70daf3
add macros to prevent __CDECL16 stuff from being defined multiple times
2024-10-04 09:51:44 -04:00
ec1f40c305
added isoz stage to make a compressed disk image
...
also included a work around for a WSL bug in create-disk.sh
2024-10-04 07:57:56 -04:00
36e3bd968a
change FAT partition type to 0Ch from 0Bh (W95 FAT32 LBA was CHS/LBA)
2024-10-03 21:00:49 -04:00
36b8869140
add bpb and ebpb reserve area back to vbr.nasm
2024-10-03 21:00:02 -04:00
41b9bf5134
remove this and add it back to vbr.nasm
2024-10-03 20:59:25 -04:00
b96f587921
add forked functions and remove from memory.inc for kmem*
2024-10-03 19:53:11 -04:00
89ebe30ad8
forking kmemset functions for stage2 usage
2024-10-03 19:52:24 -04:00
e98cc41403
forking kmemset functions to be updated later for mbr/vbr
2024-10-03 19:52:00 -04:00
27c41c8b0a
update some of the dword stack macros
2024-10-03 19:33:07 -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
4d05d2ae4c
move E820 function desc to memory.inc
2024-10-03 18:14:04 -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
0084747765
added entry & exit macros
2024-10-03 14:46:47 -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
2f6bd2e2d8
remove comment about CC, see docs/
2024-10-02 11:59:34 -04:00
7c446ef3b2
load our base headers in the same order as the mbr
2024-10-02 10:26:36 -04:00
2bbfa0931b
moved reservation for bpb to a include
2024-10-02 10:25:59 -04:00
8e595e8eba
added some clarification on cdecl16
2024-10-02 10:13:45 -04:00
5e4e40f7de
removed ata1 from windows bochsrc
2024-10-02 10:13:00 -04:00
6db97e3258
added bxrc config to launch on windows hosts
2024-09-21 14:09:52 -04:00
d42ee1df60
small optimization to error printer
...
saves us 5 bytes of code (15 overall)
2024-09-21 13:45:15 -04:00
96a8103e11
added debuging 'errors'
...
also there is special handling for them in error.inc
2024-09-21 13:28:52 -04:00
a5702bd92e
partially revert change, sti is still in init
2024-09-21 12:32:49 -04:00
bdc1fc5bf0
added -P option to losetup
...
this fixes an issue that appeared on WSL2 recently(ish)
2024-09-21 12:04:05 -04:00
1c27b665b0
ignore vscode personal configs
2024-09-21 11:46:36 -04:00
abc79adeb7
remove reallocation in mbr init
...
also reenable interupts in the init block
2024-09-21 11:45:22 -04:00
7fd4a89d96
Update README.md
...
updated description to more accurately reflect project status
2024-07-27 09:21:41 -04:00
355ceb49a7
changed extention from .s to .nasm
2023-08-23 10:10:30 -04:00
b590edd3ff
enable logging and bump to 128MB of memory
2023-08-23 10:10:13 -04:00
30b71d2e6e
updated gitignore
2023-08-23 10:09:49 -04:00
b2857ff9fd
clarify that WSL is supported
2023-08-23 07:35:30 -04:00
4e9e58c430
added description for create-disk script
2023-08-22 16:45:22 -04:00
5916b46a9e
Update README.md
2023-08-22 16:34:39 -04:00
d162d5dc4c
update readme with more information
2023-08-22 16:22:13 -04:00
d4dc46d770
MIT license applied to all project files
2023-08-22 16:03:46 -04:00
ad828ac1f4
use wx interface for config, gui, and debug
2023-08-22 15:56:15 -04:00
5fdde61dd3
remove packaged binaries
2023-08-22 15:55:45 -04:00
90ced63cba
small changes to License
...
🏳️⚧️
2023-08-22 14:24:35 -04:00
2c55ed5c04
Update README.md
2023-08-22 10:43:54 -04:00
94a2fb08ca
Delete COPYING
...
Removing GPL-3.0 license.
2023-08-22 10:43:01 -04:00
b9850f7ab9
Create README.md
2023-08-22 10:36:35 -04:00
Elaina Claus
f181f21e41
Merge pull request #1 from Xinnx/add-license-1
...
Create LICENSE.md
2023-02-28 22:24:40 -05:00
Elaina Claus
309a5fb95c
Create LICENSE.md
2023-02-28 22:24:32 -05:00