Commit Graph

67 Commits

Author SHA1 Message Date
2691c1e30e Seriously prioritise output.
Added a beep function to allow PC Speaker output.
This will require an edit to the current QEMU launchscript to get working.
2019-08-19 22:58:26 +01:00
437e10e86c Prioritise output before all else, just so we know when the kernel actually works. 2019-08-19 22:55:28 +01:00
24aad1e4a5 Fix a silly issue with the Interrupts using bits instead of bytes when reading and writing ports. 2019-08-19 22:54:08 +01:00
bec10bcee8 Gitignore weirdness. 2019-07-25 00:44:34 +01:00
a5ce202055 Update README for new build.
NOTE: for every new successful build, start incrementing the SYNC_VERSION constants in kernel.h :D
2019-07-24 21:53:01 +01:00
f9dcdf5cc9 Update compiler script.
It all works now.
\o/
2019-07-24 21:50:26 +01:00
d2d532c535 Add missing file to c_files.txt 2019-07-24 21:50:01 +01:00
7cafb959dd Add missing Reserved ISR Handler function. 2019-07-24 21:49:49 +01:00
5ed922bd20 Update serial functions for new WritePort system. 2019-07-24 21:49:35 +01:00
ebbe1d9346 Now that all the files we need are available..
Added the c_files.txt file required by the sneklang compiler script.
2019-07-24 20:25:21 +01:00
5760ed1dde Add some public-domain memory manipulation files as a stand-in for my AVX functions.
These are messy, but they let the kernel compile.
2019-07-24 20:24:38 +01:00
78dcb1a707 New compiler script!
Now with 100% more sneklang!
2019-07-24 20:19:49 +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
f74809718a Slight cleanup of utils.c
Also added the missing memX functions needed for compilation.
Interrupts next, I do believe.
2019-07-24 15:54:14 +01:00
e4500c27e3 Finish basic memory management.
This won't compile, as it's missing the xAVX functions.
I have a sort-of implementation of them, but it's brutal.
5400 lines total.

For now, they can be substituted with the x functions (remove AVX) to compile the kernel.
2019-07-24 15:53:39 +01:00
633f6b925e Add bitmap font.
Half home-brand, adapted from font8x8 from the public domain.
2019-07-24 01:39:53 +01:00
f88524a9b9 Starting memory management. 2019-07-24 01:39:12 +01:00
874e7e9a05 The print file.
A whopper. Lots of printing functions, most of them internal.
No this doesn't mean actual physical printing, it's printf, etc.
2019-07-24 01:39:00 +01:00
cdd8b7933f Remove inb and outb, since they have counterparts in ReadPort and WritePort. 2019-07-24 01:38:00 +01:00
f524eee6ff More minor changes.
Header and graphics had some one-liners.
2019-07-24 01:37:39 +01:00
80154dbb51 Update main kernel file and Utils for the new functions.
Can't use term_x any more.
2019-07-23 23:01:12 +01:00
15293681ea Add AVX memory prototypes, rename ResetDefaultScreen features to something more sensible. 2019-07-23 23:00:13 +01:00
d14da0af89 Add Graphics file.
A few TODOs here, but nothing that can't be handled.
2019-07-23 22:59:33 +01:00
67cbaad539 Add the bootstrap file.
Provides all the functions necessary to get the kernel started, and to continue working in the future.
It is to be split up in the future.
2019-07-23 20:32:24 +01:00
c795a936ae Fix some oversights in the header. 2019-07-23 19:27:47 +01:00
c9bd659f5c Add bootstrap source.
Made to manage holdover from Syncboot, but is half-finished because of
an issue with the prior mentioned header file.
2019-07-22 22:34:02 +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
04e70ab274 Commenting improvements
Even more preparing for UEFI.
2019-07-22 22:32:35 +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
8df29db4bf Shuffle files in preparation for the shift to UEFI 2019-07-21 19:13:42 +01:00
d4e6dd4da8 Merge branch 'master' of http://git.gemwire.uk:3000/gwdev/sync 2019-07-17 02:08:03 +01:00
93729c40b5 Change branding, ProjectRED -> Sync.
Additionally, added header comments to all files.
The next few commits will likely be structure and comment-related.
2019-07-17 02:04:04 +01:00
dba3b4163e Update 'README.md'
Brutal honesty is the best kind of honesty.
2019-07-17 01:27:35 +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
1ae4339d7a Minor changes for parity 2019-06-22 18:54:21 +01:00
a1c00187c4 Add flag to tell linker not to add a build ID 2019-06-20 20:08:53 -04:00
b7eb10f77b bochs weirdness 2019-06-21 00:59:39 +01:00
93f2fb7e44 kernel added briefly for testing 2019-06-21 00:53:42 +01:00
0a552f62d8 Fix stack error when compiling on Common-GCC 2019-06-20 23:39:18 +01:00
81d4d93c12 Fix issues with ASM 2019-06-20 23:32:03 +01:00
f5dc9b961b Collate ASM files
All ASM now uses Intel syntax.
isr.s and gdt.s are now collated into the main file.
It's bulky, but ¯\_(ツ)_/¯
UNTESTED, cause i'm thick.
2019-05-14 23:57:03 +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
d845a64a4e Update all essential code to working state 2019-04-07 16:58:36 +01:00
Jenny Curle
15dc60aa12 Fix GDT subroutine
Also made some type changes in serial.h
2019-04-07 16:36:51 +01:00