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
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
7c3dc4cacc
Finish GDT code
2019-04-06 20:25:31 +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
92a1a2fb80
Add .gitignore and remove ignored files
2019-04-03 17:49:38 -04: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