reenable scrollback
This commit is contained in:
@ -16,7 +16,7 @@
|
|||||||
#define __CGA_Stream_include__
|
#define __CGA_Stream_include__
|
||||||
|
|
||||||
// #include "devices/BufferedCGA.h"
|
// #include "devices/BufferedCGA.h"
|
||||||
#include "devices/CGA.h"
|
#include "devices/BufferedCGA.h"
|
||||||
#include "lib/OutStream.h"
|
#include "lib/OutStream.h"
|
||||||
|
|
||||||
// NOTE: I added this
|
// NOTE: I added this
|
||||||
@ -34,7 +34,7 @@ public:
|
|||||||
};
|
};
|
||||||
|
|
||||||
// NOTE: I added this (changed this) to use BufferedCGA
|
// NOTE: I added this (changed this) to use BufferedCGA
|
||||||
class CGA_Stream : public OutStream, public CGA {
|
class CGA_Stream : public OutStream, public BufferedCGA {
|
||||||
private:
|
private:
|
||||||
CGA_Stream(CGA_Stream& copy) = delete; // Verhindere Kopieren
|
CGA_Stream(CGA_Stream& copy) = delete; // Verhindere Kopieren
|
||||||
|
|
||||||
|
|||||||
@ -341,9 +341,9 @@ void Keyboard::trigger() {
|
|||||||
if (key.ctrl_left() && key.alt_left() && (char)key == 'r') {
|
if (key.ctrl_left() && key.alt_left() && (char)key == 'r') {
|
||||||
this->reboot();
|
this->reboot();
|
||||||
}
|
}
|
||||||
// else if ((char)key == 'k' || (char)key == 'j') {
|
else if ((char)key == 'k' || (char)key == 'j') {
|
||||||
// scroll_mode(key);
|
scroll_mode(key);
|
||||||
// }
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Where to place this?
|
// TODO: Where to place this?
|
||||||
@ -351,13 +351,13 @@ void Keyboard::trigger() {
|
|||||||
// - Ereignisverwaltung, wo man Threads registrieren kann
|
// - Ereignisverwaltung, wo man Threads registrieren kann
|
||||||
// - Blockierte Threads verwalten und aufwecken bei ereignissen
|
// - Blockierte Threads verwalten und aufwecken bei ereignissen
|
||||||
// Waits for keys to control the scrollback buffer display
|
// Waits for keys to control the scrollback buffer display
|
||||||
// void scroll_mode(Key key) {
|
void scroll_mode(Key key) {
|
||||||
// switch ((char)key) {
|
switch ((char)key) {
|
||||||
// case 'k':
|
case 'k':
|
||||||
// kout.scroll_page_backward();
|
kout.scroll_page_backward();
|
||||||
// break;
|
break;
|
||||||
// case 'j':
|
case 'j':
|
||||||
// kout.scroll_page_forward();
|
kout.scroll_page_forward();
|
||||||
// break;
|
break;
|
||||||
// }
|
}
|
||||||
// }
|
}
|
||||||
|
|||||||
38
c_os/main.cc
38
c_os/main.cc
@ -26,31 +26,30 @@ int main() {
|
|||||||
allocator.init();
|
allocator.init();
|
||||||
|
|
||||||
// Initialize scrollback buffer after allocator.init()
|
// Initialize scrollback buffer after allocator.init()
|
||||||
// kout.init(5);
|
kout.init(5);
|
||||||
|
|
||||||
// Startmeldung
|
// Startmeldung
|
||||||
if constexpr (!DEBUG) {
|
kout << "HHUos 0.10\n"
|
||||||
kout << "HHUos 0.9\n"
|
<< "=========\n"
|
||||||
<< "=========\n"
|
<< "Unterstuetzte Funktionen:\n"
|
||||||
<< "Unterstuetzte Funktionen:\n"
|
<< " - Bildschirmausgaben\n"
|
||||||
<< " - Bildschirmausgaben\n"
|
<< " - Sound ueber den PC-Lautsprecher\n"
|
||||||
<< " - Sound ueber den PC-Lautsprecher\n"
|
<< " - Tastatureingaben per Abfrage\n"
|
||||||
<< " - Tastatureingaben per Abfrage\n"
|
<< " - Einfache Heap verwaltung\n"
|
||||||
<< " - Einfache Heap verwaltung\n"
|
<< " - Tastatureingaben per Interrupt\n"
|
||||||
<< " - Tastatureingaben per Interrupt\n"
|
<< " - Kooperative Threads\n"
|
||||||
<< " - Kooperative Threads\n"
|
<< " - VESA Graphics Mode\n"
|
||||||
<< " - VESA Graphics Mode\n"
|
<< " - Einfaches Paging\n"
|
||||||
<< " - Einfaches Paging\n"
|
<< " - Preemptive Threads\n"
|
||||||
<< " - Preemptive Threads\n"
|
<< " - Einfache Synchronisierung\n"
|
||||||
<< endl;
|
<< endl;
|
||||||
}
|
|
||||||
|
|
||||||
// Tastatur-Unterbrechungsroutine 'einstoepseln'
|
// Tastatur-Unterbrechungsroutine 'einstoepseln'
|
||||||
/* hier muss Code eingefuegt werden */
|
/* hier muss Code eingefuegt werden */
|
||||||
kb.plugin();
|
kb.plugin();
|
||||||
pit.plugin();
|
pit.plugin();
|
||||||
|
|
||||||
// Interrupts erlauben (Tastatur)
|
// Interrupts erlauben (Tastatur, PIT)
|
||||||
/* hier muss Code eingefuegt werden */
|
/* hier muss Code eingefuegt werden */
|
||||||
cpu.enable_int();
|
cpu.enable_int();
|
||||||
|
|
||||||
@ -58,6 +57,7 @@ int main() {
|
|||||||
// This has to happen after the allocator is initialized but before the scheduler is started
|
// This has to happen after the allocator is initialized but before the scheduler is started
|
||||||
pg_init();
|
pg_init();
|
||||||
|
|
||||||
|
// TODO: Move this to demo
|
||||||
// Trigger Bluescreen
|
// Trigger Bluescreen
|
||||||
// kout << "Trigger Bluescreen, if you can read this it didn't work" << endl;
|
// kout << "Trigger Bluescreen, if you can read this it didn't work" << endl;
|
||||||
|
|
||||||
@ -73,6 +73,7 @@ int main() {
|
|||||||
// *page = 42; // We map logical to physical 1:1 so no need to do any lookup
|
// *page = 42; // We map logical to physical 1:1 so no need to do any lookup
|
||||||
// // If tlb is invalidated this access produces a pagefault
|
// // If tlb is invalidated this access produces a pagefault
|
||||||
|
|
||||||
|
// TODO: Make menu for demos
|
||||||
// Demo threads anlegen
|
// Demo threads anlegen
|
||||||
// scheduler.ready(new HelloWorldThread());
|
// scheduler.ready(new HelloWorldThread());
|
||||||
// scheduler.ready(new CoopThreadDemo());
|
// scheduler.ready(new CoopThreadDemo());
|
||||||
@ -86,9 +87,8 @@ int main() {
|
|||||||
// TODO: Use templates for queue so threads don't have to be casted down from chain
|
// TODO: Use templates for queue so threads don't have to be casted down from chain
|
||||||
// TODO: Change scheduler to only use references instead of pointers
|
// TODO: Change scheduler to only use references instead of pointers
|
||||||
// TODO: Rewrite all demos to threads
|
// TODO: Rewrite all demos to threads
|
||||||
// TODO: Make menu for demos
|
|
||||||
// TODO: Unify debug output format
|
// TODO: Unify debug output format
|
||||||
// TODO: Serial output
|
// TODO: Serial output, output graphviz dot data for memory etc.
|
||||||
|
|
||||||
// Scheduler doesn't return
|
// Scheduler doesn't return
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
Reference in New Issue
Block a user