Commit graph

11 commits

Author SHA1 Message Date
Jake Holtham
a597e79b0a Change of exactly one character, but an important detail. Target is i386 now instead of 686 in an attempt to run on retro hardware :). 2025-07-21 23:34:37 -04:00
4ffc4692ae Page frame setup done, plus makefile changes.
Makefile now has VGA=2 to set the QEMU monitor to STDOUT. Nice for
things like memory dumps.

Can now parse the memory and create a bitmap of workable regions.
Allocation soon(tm)
2025-07-11 18:29:03 -04:00
53198515c8 Temporary "default output" global, makefile changes.
Default output variable holds a generic writer, and any output that
isn't really sure where to output to can just output there. Set by the
system early in boot.

Also made some changes to the makefile to support arguments in the "make
run" or "make debug" subset of calls. For now, it's just VGA=1/0 or
SERIAL=1/0 to enable/disable VGA/serial. Defaults are VGA=1, SERIAL=0.
2025-07-04 02:20:31 -04:00
b127a659bb This underwent some crazy scope creep. Just one more feature...
- Changed primary assembler to NASM. Specifically so I could use -
- Swapped start.s to intel syntax. I find it prettier. Learned a lot
  doing it tbh.
- Changed the name of the multiboot structures in C.
2025-06-10 23:41:51 -04:00
5efb8d9fbc Moved i/o content to kerno.c
Added function for integer -> string (library pending)
Modified makefile to reflect use of include/ dir
2025-05-28 23:19:50 -04:00
5dd086565f Forgot to link libgcc. oops. That'll do. 2025-05-26 23:25:30 -04:00
7500299684 Refactoring of makefiles is here. Looks like a bit less of a mess,
thankfully.

Also now using `ld` and `as` instead of `gcc` for everything. Seems to
work OK for now - but may bite on the ass later. We'll see!
2025-05-26 22:42:41 -04:00
6423dc4610 Makefile is getting a little messy, i'll rework it later, probably.
Anyway, now:
make iso -> creates iso with bootloader
make run_iso -> runs iso in qemu
make run -> runs kernel without bootloader or img creation
2025-05-26 17:59:56 -04:00
6f0b585bfe Quick addition to the makefile, run_iso will build the ISO image and
then run the full image. As opposed to run, which will just run the
kernel from QEMU.
2025-05-26 17:46:55 -04:00
0831fb86e4 Added some framework to create a bootable ISO with grub as the
bootloader. Eventually the bootloader will be a submodule of this dir -
but for now GRUB works for boot.
2025-05-26 17:42:00 -04:00
aa4f5f070b First content commit. Added sample code hello world with personal
comments for study

Also made a makefile that can build and run the thing. Current run
method is directly from QEMU - but the makefile will later make an image
with a given bootloader.
2025-05-23 01:18:12 -04:00