Aufgabe 1: Ein-/Ausgabefunktionen für OO-Stubs
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 OO-Stubs als allererstes Ausgabefunktionen
erhalten.
Diese sollen ähnlich wie bei der C++ IO-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 OO-Stubs 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"
OO-Stubs das Objekt kout für verschieden
formatierte Ausgaben genutzt werden. Für den Test der
Tastatureingabe ist ein KeyboardController 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 in eine kleine Testanwendung.
- Die Klassen
Stringbuffer und
O_Stream
und in eine kleine Testanwendung.
- Die Klasse
CGA_Stream und das Testprogramm.
Eingaben
- Vervollständigung der Klasse
Keyboard_Controller
und die entgü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.
Hilfestellung