Aufgabe 1: Ausgabefunktionen und Tastaturansteuerung für OOStuBS
Lernziel
Kennenlernen der Entwicklungsumgebung
Auffrischen der Programmiersprache C++
Hardwarenahe Programmierung (CGA-Bildschirm und Tastatur)
Aufgabenbeschreibung
Für Testausgaben und zur Erleichterung der Fehlersuche soll das Übungsbetriebssystem OOStuBS als erstes Ausgabefunktionen erhalten. Diese sollen ähnlich wie bei der C++-I/O-Streams-Bibliothek verwendet werden können und mit Hilfe der Klassen IO_Port, CGA_Screen, Stringbuffer, O_Stream und CGA_Stream implementiert werden. Dabei wird die Klasse IO_Port von uns vorgegeben.
Um die Ausgabefunktionen überall in OOStuBS nutzen zu können, soll ein globales CGA_Stream-Objekt kout erzeugt werden.
Um interaktive Anwendungsprogramme zu erlauben, sollt ihr zusätzlich noch die Klasse Keyboard_Controller vervollständigen, die neben Key in der Vorgabe enthalten ist.
Die Funktionsfähigkeit der genannten Klassen soll mit Hilfe eines aussagefähigen Testprogramms gezeigt werden. Dazu soll in dem Hauptprogramm main () des "Betriebssystems" OOStuBS das Objekt kout für verschieden formatierte Ausgaben genutzt werden. Für den Test der Tastatureingabe ist ein Keyboard_Controller-Objekt zu instanziieren. In einer Schleife sind dann Zeichen von der Tastatur abzufragen und mittels kout auszugeben.
Hinweis: In späteren Aufgaben soll Anwendungs- und Testcode in der Klasse Application (aus der Vorgabe) und nicht in main () implementiert werden. Wer möchte, kann dies natürlich auch bei Aufgabe 1 schon so handhaben.
Implementierungshinweise
Die Aufgabe besteht im Wesentlichen aus den zwei Teilen "Ausgaben" und "Eingaben", wobei der Test der "Eingaben" ohne "Ausgaben" nicht möglich ist. Die Teilaufgabe "Ausgaben" kann zudem in drei voneinander unabhängige Teile gegliedert werden, die sehr gut einzeln gelöst und getestet werden können. Daher empfehlen wir folgende Bearbeitungsreihenfolge:
Ausgaben
Die Klasse CGA_Screen und eine kleine Testanwendung.
Vervollständigung der Klasse Keyboard_Controller und die endgültige Testanwendung.
Vorgabe
Neben der ersten Vorgabe benötigt ihr für die Lösung der Aufgabe oostubs.tar.gz, das einige Tools, Assemblerdateien und ein Makefile enthält, mit deren Hilfe ihr euer Programm übersetzen und auf eine Bootdiskette schreiben könnt.