]> git.dujemihanovic.xyz Git - nameless-os.git/log
nameless-os.git
2 years agoSeparate loading clusters and cluster chains
Duje Mihanović [Sat, 30 Apr 2022 20:23:40 +0000 (22:23 +0200)]
Separate loading clusters and cluster chains

This will be crucial for stage 3 loading the kernel, because we will need to
relocate each cluster to 0x100000 (or somewhere after that) manually, and we
can't just do that in the driver as it's also used by the VBR which does not run
in unreal mode.

2 years agoFixes and improvements to FAT32 driver
Duje Mihanović [Sat, 30 Apr 2022 14:35:18 +0000 (16:35 +0200)]
Fixes and improvements to FAT32 driver

* Fix issue where multiple clusters would be loaded 0x800 apart rather than
  contiguously.
* Get rid of some global variables, saving space.
* si points to the start LBA address rather than the partition table entry,
  saving a bit of space as we no longer need to use offsets.
* In read_cluster_chain, drop push/popad as they in fact do not
  save the upper 16 bytes of the registers. Instead, just push
  and pops the registers that are used.

2 years agoWIP: Add new FAT32 bootloader
Duje Mihanović [Wed, 27 Apr 2022 15:47:44 +0000 (17:47 +0200)]
WIP: Add new FAT32 bootloader

Loads a LOADER.BIN which currently prints a hello message.

TODO: Make it actually load the kernel.

2 years agoRemove unused protected-mode print routine
Duje Mihanović [Sun, 20 Mar 2022 13:51:56 +0000 (14:51 +0100)]
Remove unused protected-mode print routine

2 years agoSlim down print.s
Duje Mihanović [Sun, 20 Mar 2022 11:43:11 +0000 (12:43 +0100)]
Slim down print.s

2 years agoFix keyboard interrupts
Duje Mihanović [Sat, 12 Mar 2022 12:28:35 +0000 (13:28 +0100)]
Fix keyboard interrupts

2 years agoSimplify Makefile
Duje Mihanović [Sun, 17 Oct 2021 11:19:52 +0000 (13:19 +0200)]
Simplify Makefile

2 years agoHandle interrupts
Duje Mihanović [Wed, 22 Sep 2021 20:15:40 +0000 (22:15 +0200)]
Handle interrupts

Currently handles exception 8 and IRQ 1. EXC8 is double fault, and IRQ1 is
keyboard. EXC8 handler puts out a ':(' on the top left corner of the screen and
halts the machine, while IRQ1 puts out a string on the screen. However, it will
only do so once, and I have yet to figure out why.

2 years agoMore features in VGA driver
Duje Mihanović [Thu, 16 Sep 2021 17:38:34 +0000 (19:38 +0200)]
More features in VGA driver

Now supports color (specify color when using kprint) and moves the VGA cursor as
it prints.

2 years agoAlso compile kernel as ELF for easier disassembly
Duje Mihanović [Thu, 16 Sep 2021 14:48:26 +0000 (16:48 +0200)]
Also compile kernel as ELF for easier disassembly

2 years agoEnable A20 gate
Duje Mihanović [Thu, 16 Sep 2021 14:41:24 +0000 (16:41 +0200)]
Enable A20 gate

2 years agoRestructure the bootloader
Duje Mihanović [Thu, 9 Sep 2021 09:13:53 +0000 (11:13 +0200)]
Restructure the bootloader

2 years agokprint can accept a const string
Duje Mihanović [Thu, 9 Sep 2021 08:27:18 +0000 (10:27 +0200)]
kprint can accept a const string

2 years agoBetter gitignore and tidier string
Duje Mihanović [Wed, 8 Sep 2021 08:43:37 +0000 (10:43 +0200)]
Better gitignore and tidier string

2 years agoEnable generation of debug symbols for C source files
Duje Mihanović [Wed, 8 Sep 2021 08:04:10 +0000 (10:04 +0200)]
Enable generation of debug symbols for C source files

2 years agoAdd linker script and partial VGA driver
Duje Mihanović [Tue, 7 Sep 2021 20:05:14 +0000 (22:05 +0200)]
Add linker script and partial VGA driver

2 years agoDocument the code
Duje Mihanović [Tue, 7 Sep 2021 18:33:39 +0000 (20:33 +0200)]
Document the code

2 years agoA new beginning
Duje Mihanović [Tue, 7 Sep 2021 09:25:40 +0000 (11:25 +0200)]
A new beginning

This boots into protected mode, prints a string from assembly and then prints an
A from a minimal C kernel.

2 years agoAllow controlling (no) newline when printing and listen to keystrokes
Duje Mihanović [Sat, 21 Aug 2021 15:06:36 +0000 (17:06 +0200)]
Allow controlling (no) newline when printing and listen to keystrokes

2 years agoAdd Makefile
Duje Mihanović [Sat, 21 Aug 2021 11:00:34 +0000 (13:00 +0200)]
Add Makefile

Can compile, clean and run the boot sector.

2 years agoAdd print function with some examples
Duje Mihanović [Sat, 21 Aug 2021 10:56:47 +0000 (12:56 +0200)]
Add print function with some examples

2 years agoCan now print hexadecimal numbers
Duje Mihanović [Sat, 21 Aug 2021 10:00:08 +0000 (12:00 +0200)]
Can now print hexadecimal numbers

2 years agoAdd basic bootsector
Duje Mihanović [Fri, 20 Aug 2021 14:46:08 +0000 (16:46 +0200)]
Add basic bootsector

It prints out "Gotta start somewhere". Tested on QEMU and even on real hardware
with success.