final cleanup
This commit is contained in:
@ -58,6 +58,8 @@ public:
|
||||
pos = 0;
|
||||
}
|
||||
|
||||
// CAn't make singleton because atexit
|
||||
|
||||
// ~CGA_Stream() override = default;
|
||||
|
||||
void lock() { sem.p(); }
|
||||
|
@ -73,9 +73,11 @@ public:
|
||||
// Konstruktor. Initialisieren der Ports.
|
||||
PCSPK() = default;
|
||||
|
||||
// Can't make singleton because atexit
|
||||
|
||||
// Demo Sounds
|
||||
void tetris();
|
||||
void aerodynamic();
|
||||
static void tetris();
|
||||
static void aerodynamic();
|
||||
|
||||
// Ton abspielen
|
||||
static void play(float f, int len);
|
||||
|
@ -32,6 +32,8 @@ public:
|
||||
|
||||
VESA() : log("VESA") {}
|
||||
|
||||
// Can't make singleton because atexit
|
||||
|
||||
// Bestimmten Grafikmodus einschalten
|
||||
bool initGraphicMode(unsigned short mode);
|
||||
static void initTextMode();
|
||||
|
@ -34,11 +34,17 @@ struct BIOScall_params {
|
||||
extern BIOScall_params* BC_params;
|
||||
|
||||
class BIOS {
|
||||
private:
|
||||
// Initialisierung: manuelles Anlegen einer Funktion
|
||||
BIOS();
|
||||
|
||||
public:
|
||||
BIOS(const BIOS& copy) = delete; // Verhindere Kopieren
|
||||
|
||||
// Initialisierung: manuelles Anlegen einer Funktion
|
||||
BIOS();
|
||||
static BIOS& instance() {
|
||||
static BIOS bios;
|
||||
return bios;
|
||||
}
|
||||
|
||||
// BIOS-Aufruf, per Software-Interrupt
|
||||
static void Int(int inter);
|
||||
|
@ -11,7 +11,7 @@
|
||||
#include "kernel/Globals.h"
|
||||
|
||||
CGA_Stream kout; // Ausgabe-Strom fuer Kernel
|
||||
BIOS bios; // Schnittstelle zum 16-Bit BIOS
|
||||
const BIOS& bios = BIOS::instance(); // Schnittstelle zum 16-Bit BIOS
|
||||
VESA vesa; // VESA-Treiber
|
||||
|
||||
PIC pic; // Interrupt-Controller
|
||||
|
@ -30,7 +30,7 @@
|
||||
// I wanted to make more of these singletons but there were problems with atexit missing because of nostdlib I guess
|
||||
|
||||
extern CGA_Stream kout; // Ausgabe-Strom fuer Kernel
|
||||
extern BIOS bios; // Schnittstelle zum 16-Bit BIOS
|
||||
extern const BIOS& bios; // Schnittstelle zum 16-Bit BIOS
|
||||
extern VESA vesa; // VESA-Treiber
|
||||
|
||||
extern PIC pic; // Interrupt-Controller
|
||||
|
@ -29,6 +29,8 @@ public:
|
||||
|
||||
PIC() = default;
|
||||
|
||||
// Can't make static because atexit
|
||||
|
||||
// IRQ-Nummern von Geraeten
|
||||
enum {
|
||||
timer = 0, // Programmable Interrupt Timer (PIT)
|
||||
|
@ -6,7 +6,7 @@ void PCSPKdemo::run() {
|
||||
kout << "Playing..." << endl;
|
||||
kout.unlock();
|
||||
|
||||
(pcspk.*melody)(); // This syntax is confusing as hell
|
||||
(*melody)(); // This syntax is confusing as hell
|
||||
|
||||
kout.lock();
|
||||
kout << "Finished" << endl;
|
||||
|
@ -6,12 +6,12 @@
|
||||
|
||||
class PCSPKdemo : public Thread {
|
||||
private:
|
||||
void (PCSPK::*melody)(); // Allow to pass a melody to play when initializing the demo
|
||||
void (*melody)(); // Allow to pass a melody to play when initializing the demo
|
||||
|
||||
public:
|
||||
PCSPKdemo(const PCSPKdemo& copy) = delete;
|
||||
|
||||
explicit PCSPKdemo(void (PCSPK::*melody)()) : Thread("PCSPKdemo"), melody(melody) {}
|
||||
PCSPKdemo(void (*melody)()) : Thread("PCSPKdemo"), melody(melody) {}
|
||||
|
||||
~PCSPKdemo() override {
|
||||
PCSPK::off();
|
||||
|
@ -14,8 +14,10 @@ private:
|
||||
static int is_transmit_empty();
|
||||
|
||||
public:
|
||||
SerialOut(const SerialOut& copy) = delete;
|
||||
SerialOut();
|
||||
SerialOut(const SerialOut& copy) = delete;
|
||||
|
||||
// Can't make singleton because atexit
|
||||
|
||||
static char read();
|
||||
static void write(char a);
|
||||
|
Reference in New Issue
Block a user