Commit Graph

30 Commits

Author SHA1 Message Date
8a54815712 Add all of the functionality to allow the kernel to boot itself.
This is a trimmed down version of Syncboot integrated into the kernel.
The plan is, eventually, to allow the kernel to be booted by Syncboot, but that'll take a lot of research into QEMU.
This was just quicker to do.

This isn't tested, as I still need to figure out how to compile the EFI entry point separately.
They can be linked together, however. That's why the kernel is designed around a PE32+ format.
2019-09-11 23:44:11 +01:00
c22bd248e3 Serial reformat, minor bug fixes 2019-09-11 03:58:20 +01:00
6238fbf8fe Added serial functions to the kernel header, making them global.
Also moved the definition of IRQ_Functions out of the header, as this is changed.
2019-08-20 16:42:24 +01:00
f0ca9de14b Added the current timer tick as a global variable. 2019-08-19 22:58:45 +01:00
f92114539c It's interrupt time, baby.
This should bring the kernel to a working state.
Don't forget that the interrupts.c file absolutely must be compiled with -mgeneral-regs-only.
All the other files absolutely must be compiled with -mavx2.

:)
2019-07-24 19:47:44 +01:00
debd7ef91a Slight kernel.h cleanup. 2019-07-24 15:54:32 +01:00
633f6b925e Add bitmap font.
Half home-brand, adapted from font8x8 from the public domain.
2019-07-24 01:39:53 +01:00
f524eee6ff More minor changes.
Header and graphics had some one-liners.
2019-07-24 01:37:39 +01:00
15293681ea Add AVX memory prototypes, rename ResetDefaultScreen features to something more sensible. 2019-07-23 23:00:13 +01:00
c795a936ae Fix some oversights in the header. 2019-07-23 19:27:47 +01:00
2bfe904014 Add main kernel header.
Defines all of the structs, functions and variables for the new kernel.

Currently has some issues with GCC.
2019-07-22 22:33:07 +01:00
272d98f42e Shuffle headers
More preparing for UEFI.
2019-07-22 22:31:49 +01:00
87acb5463b Remove Multiboot header in preparation for moving to UEFI 2019-07-22 22:31:16 +01:00
4edd4b7cc8 Major refactor. Major improvements.
All ISR/IRQ stuff moved into its own header and source.

Comments added on all major parts.

Some optimisations in important functions.

All ASM removed for ISR and IRQ, instead using new GCC directives.
2019-06-27 19:57:54 +01:00
022884e20d Fixes and improvements.
Including a new, rewritten and restructured boot.s file, plus automagical Protected Mode.
2019-06-25 22:31:26 +01:00
dbce420e56 Cleanup, finalization and end of compiler issues 2019-06-22 19:08:56 +01:00
64737e06e3 Remove duplicate vga.h 2019-05-14 23:41:09 +01:00
Jenny Curle
31d2e10b69 Implement a GDT, IDT with ISR and IRQ
Basically, added error handling, interrupts and basic hardware communication is now possible. Yay.
2019-04-07 23:43:09 +01:00
Jenny Curle
388834ef8a Implement ISRs and fault handling 2019-04-07 19:25:27 +01:00
Jenny Curle
15dc60aa12 Fix GDT subroutine
Also made some type changes in serial.h
2019-04-07 16:36:51 +01:00
Jenny Curle
e4fcbb20b4 Implement Serial Console messaging.
Intended to be used for debugging, but it's useful.
2019-04-07 15:34:15 +01:00
Jenny Curle
245d09b056 Implemented IDT
But something's wrong with the GDT
Next up is a Serial Console
2019-04-07 13:16:53 +01:00
Jenny Curle
913c2d2844 Fix merge conflicts 2019-04-06 20:06:19 +01:00
Jenny Curle
a3e0852ec7 Begin support for Global Descriptor Tables 2019-04-06 20:00:11 +01:00
3fe2d7aa33 Format files 2019-04-03 17:46:58 -04:00
bc6f94e353 Finish initial ANSI Escape Sequence support - basic CSI sequences (cursor moving, line erasing) work 2019-04-03 16:44:48 -04:00
Jenny Curle
904cb38128 Add harware reading and writing functions 2019-04-03 09:51:46 +01:00
Jenny Curle
96ed9e6785 Update system to minimum working status 2019-04-01 12:46:40 +01:00
Jenny Curle
b01480d361 Initial update - fixed broken files, dependencies on outside libraries, \nThe system will now compile under 'make all', and no errors are thrown.\nThe system itself hasn't been tested, yet. Here goes... 2019-04-01 12:21:00 +01:00
Jenny Curle
b7fe138549 First upload. Libc incomplete. 2019-04-01 02:18:48 +01:00