Bananymous
267367333e
Kernel: Move paging code to a helper
2022-12-28 19:01:01 +02:00
Bananymous
06a4ef1d87
Kernel: Commandline parsing does not depend on kmalloc anymore
2022-12-28 04:17:46 +02:00
Bananymous
5d7a767f8b
Kernel: Enable basic paging
2022-12-28 04:17:34 +02:00
Bananymous
3e8590687f
Kernel: Cleanup code and move kmalloc initialization to later
2022-12-28 04:16:21 +02:00
Bananymous
2a65c5fd0f
Kernel: Shell now actually prints to its TTY
2022-12-27 20:11:49 +02:00
Bananymous
f0fd62c703
BAN: Strings can now be constructed using BAN::Formatter
2022-12-27 20:01:05 +02:00
Bananymous
fd4fdffd46
BAN::Formatter now takes putc like function as a parameter
...
This allows us to use capturing lambdas as a putc like function
2022-12-27 19:55:07 +02:00
Bananymous
98fc72b0d0
Kernel: kmalloc now aligns everything by alignof(max_align_t)
...
kmalloc properly aligns everything now.
I also changed so that kmalloc addresses are stored as uintptr_t
instead of void* or uint8_t* for easier arithemetic and less casting
2022-12-27 19:07:20 +02:00
Bananymous
9169020ad2
Kernel: Remove unnecessary checks from GraphicsPutCharAt()
2022-12-27 18:29:51 +02:00
Bananymous
620b836fc3
Kernel: VESA now somewhat handles Cursor in Graphics mode
2022-12-27 18:29:02 +02:00
Bananymous
2d46281c16
Kernel: TTY scroll is now done using memmove
...
This will be faster when memory functions will be optimized
2022-12-27 17:45:47 +02:00
Bananymous
5ae1fc58e9
Kernel: Clean code in tty and vesa
2022-12-27 17:22:45 +02:00
Bananymous
2535eb1c4c
Kernel: TTY now handles keeping terminal buffer
...
VESA Driver cannot scroll anymore, this is handled by tty
2022-12-27 17:06:33 +02:00
Bananymous
f7eb85babd
Kernel: IDT exceptions print better errors now
2022-12-23 15:56:10 +02:00
Bananymous
d8fd6afd12
Kernel: Make TTY a class
2022-12-23 15:55:45 +02:00
Bananymous
3f7a61a4d2
Kernel: VESA driver has now second buffer for fast scrolling
...
This allows us to not read from video memory, since it was very slow
I also implemented fast path for graphics clearing and scrolling if bpp is 32
2022-12-20 14:02:44 +02:00
Bananymous
5e2680cade
Kernel: You can now disable APIC from the grub commandline
2022-12-20 11:57:09 +02:00
Bananymous
6732cabf20
BAN: StringView::Split now accepts a function
...
Original overload with char is not threadsafe anymore, but I don't
want to duplicate code :)
2022-12-20 11:50:32 +02:00
Bananymous
7ae00ac76e
BAN: Vector now has a Has() function
2022-12-20 11:38:29 +02:00
Bananymous
4c559f50a4
BAN: StringView::Split() now precomputes number of elements
...
We dont have to resize vector on PushBack()'s if we reserve required size
2022-12-20 11:37:28 +02:00
Bananymous
d5a068f90c
BAN: String and StringView don't have to compute strlen for equality
2022-12-20 11:36:01 +02:00
Bananymous
c82caacbaa
Kernel: Cleanup APIC code
...
APIC seems to work on my main machine, but not on other one
2022-12-20 04:45:46 +02:00
Bananymous
64a5a28ff0
Kernel: Add time since boot to Shell
2022-12-19 11:46:38 +02:00
Bananymous
c8866aa88b
Kernel: Move GDT and IDT assembly to inline assembly
2022-12-19 11:46:38 +02:00
Bananymous
0bdb01ee04
Kernel: Replace PIC with APIC
...
If APIC/IOAPIC is not found, we fallback to PIC
Interrupts don't seem to work on real hardware (?)
2022-12-19 11:46:25 +02:00
Bananymous
7efa5bfb75
Kernel: Shell backspace unicode detection cleanup
2022-12-16 11:53:59 +02:00
Bananymous
f244728d33
Kernel: Add unicode support
2022-12-16 03:55:13 +02:00
Bananymous
6fe0d04f07
Kernel: Implement basic VESA Graphics mode driver
...
We now support VESA Graphics mode with some bitmap fonts
2022-12-16 00:47:03 +02:00
Bananymous
9274c9ee2f
Kernel: Abstract TTY to use new VESA
2022-12-15 19:05:07 +02:00
Bananymous
930661619b
Kernel: Add more functionality to Shell
...
commands 'time', 'cpuid', 'random'
2022-12-15 17:29:35 +02:00
Bananymous
a2d38af37a
Kernel: Implement 'cpuid' and enumerations for features
2022-12-15 17:28:54 +02:00
Bananymous
9fa3d891e9
BAN: Vector now has a copy constructor
2022-12-15 17:28:12 +02:00
Bananymous
7bddcafadd
Kernel: Remove a lot of empty lines
2022-12-14 21:17:46 +02:00
Bananymous
c21766760b
Add strlen comparing back to StringView since it is not nullterminated
2022-12-13 22:45:51 +02:00
Bananymous
711ba19a82
Kernel: Add basic Shell to test functionality
2022-12-13 21:34:50 +02:00
Bananymous
f8224e55b1
Kernel: Force strlen compilation so BAN can use it
2022-12-13 21:33:54 +02:00
Bananymous
ced05ff5f2
BAN: use only memcmp when comparing string(view) with const char*
2022-12-13 21:32:51 +02:00
Bananymous
833a82c8d1
Kernel: Fix keymay brace/bracket to correct way around
2022-12-13 21:10:25 +02:00
Bananymous
bf7a320050
BAN: Fix Time format printing
2022-12-13 21:04:09 +02:00
Bananymous
5345b6b8c3
BAN: overloaded operator== for more types
2022-12-13 20:55:09 +02:00
Bananymous
fd6e0ed0f7
Kernel: debug printing now show system time correctly
2022-12-13 20:44:52 +02:00
Bananymous
d806778a6d
BAN: Formatter now passes arguments as const references
...
We used to take everything by value, since I wasn't sure if I wanted
to overload bigger types
2022-12-13 20:43:43 +02:00
Bananymous
cb6dee9d91
BAN: Implement more basic functionality
...
String has more features
StringView was implemented
Basic move semantics are now working
Added file for forward declarations
2022-12-13 20:41:32 +02:00
Bananymous
174daa3e02
Kernel: Keyboard event callback can now be registered later
2022-12-13 16:15:10 +02:00
Bananymous
941238830e
BAN: Now actually build libban :D
2022-12-13 16:13:38 +02:00
Bananymous
57b5e7ecf3
BAN: Add pragma once to String and Vector
2022-12-13 15:15:36 +02:00
Bananymous
b42469efd7
BAN: Vector now has Back() and Front() helpers
2022-12-13 15:08:12 +02:00
Bananymous
b491007eac
BAN: Default constructed string is now nullterminated
2022-12-13 15:07:35 +02:00
Bananymous
07f61d9b82
BAN: Implement basic vector
2022-12-13 14:43:58 +02:00
Bananymous
171a33bbcd
Kernel/BAN: Add weekday to Time structure and get it with RTC
2022-12-13 14:37:10 +02:00