ͻ
                    BIRNBAUM SAA/MAUS-LIB (TM) 1.0                         
                Birnensoft Communications, Inh. Gerdi Oliva                
         Junker-Bleymann-Strae 1, DW-8531 Gerhardshofen/Birnbaum          
         Bundesrepublik Deutschland - Federal Republic of Germany          
 Telefon: 09163/7674 bzw. 049/9163/7674          PLZ ab 01.07.93: D-91466  
Ķ
                           STAND: 1. APRIL 1993                            
ͼ

DIESES SHAREWAREPROGRAMM DARF NICHT FR DIE ERSTELLUNG VON GEWERBLICH
VERTRIEBENEN PROGRAMMEN BENUTZT WERDEN!  S. LIESMICH.TXT!


1.  HARDWARE- UND SOFTWAREANFORDERUNGEN:
Borland (R) Turbo C++ (TM) fr DOS ab 1.0 oder Borland C++-DOS-Compiler ab 
2.0.  Mehrere Funktionen in dieser Bibliothek sind NICHT unter Borland 
Turbo C (TM) lauffhig.  Alle Funktionen drfen sowohl in C- als auch in 
C++-Programmen verwendet werden.  Die Hardware mu die Anforderungen Ihres
Compilers erfllen und fr diese Bibliothek und dem folgenden Mindest-
standard anpassen:

640KB RAM oder mehr, eine Festplatte, eine Grafikkarte inkl. Hercules
Schwarzwei und Microsoft (R) MS-DOS (R) bzw. IBM (R) PC-DOS (R) ab 3.3.
(Diese Funktionen wurden nicht mit MS-DOS Versionen hher als 5.0 getestet!).
Wenn Sie mit Borland C++ ab 3.0 arbeiten, brauchen Sie mindestens einen
80286-Prozessor mit 2MB RAM.  

Diese Funktionen sind sowohl im C-Modus als auch im C++-Modus 100% lauf-
fhig.  C++-Erkenntnisse sind nicht erforderlich.

=============================================================================

2.  BIBLIOTHEKINSTALLATION
_____________________________________________________________________________

Es gibt zwei Mglichkeiten, die Bibliothek "Birnbaum SAA/Maus-Lib" zu instal-
lieren:

2.1  Standardbibliothek anfgen:
Wie empfehlen diese Option.  Unsere Bibliothek ist relativ klein, und Sie 
die Funktionen hchstwahrscheinlich in vielen Programmen einbauen mchten.
Wenn Sie diese Funktionen der Borland-C-Standardbibliothek anfgen, stehen 
sie Ihnen stets zur Verfgung.  Jeder Borland-Compiler hat fnf Versionen 
der Standardbibliothek:  

	CS.LIB - Fr die Speichermodelle TINY und SMALL
	CM.LIB - Fr das Speichermodell MEDIUM
	CC.LIB - Fr das Speichermodell COMPACT
	CL.LIB - Fr das Speichermodell LARGE
	CH.LIB - Fr das Speichermodell HUGE

Wenn Sie alle fnf Speichermodelle regelmig benutzen, und Sie mchten
die Funktionen der "Birnbaum SAA/Maus-Lib"-Bibliothek immer zur Verfgung 
haben, mssen Sie allen fnf Dateien die Bibliothek anfgen.

Um das zu tun, aktivieren Sie das Arbeitsverzeichnis, in dem Sie die
dekompromierten Dateien zur "Birnbaum SAA/Maus-Lib"-Bibliothek kopiert
haben!  In unseren Beispielen benutzen wir das Verzeichnis PROGRAMM als
Muster fr dieses Arbeitsverzeichnis.

Das Borland-Dienstprogramm Turbo Librarian (TM) wird benutzt, um unsere Bib-
liothek der Standardbibliothek anzufgen.  Wenn Sie Ihren Compiler richtig
installiert haben, ist der Turbo Librarian (Datei TLIB.EXE) schon in Ihrem
DOS-Suchpfad.  Sie knnen nun unsere Bibliothek mit Hilfe der folgenden
Befehl der Stndardbibliothek fr Speichedrmodelle TINY und SMALL anfgen:

	C:\PROGRAMM>tlib C:\BORLANDC\LIB\CS.LIB +BIRNBAUM.OBJ

Dieses Beispiel nimmt an, da Sie mit Borland C++ arbeiten, und da Sie den
Compiler laut Voreinstellung des Borland-Installationsprogramms instal-
liert haben.  Wenn Sie mit Turbo C++ arbeiten, wrden Sie hchstwahrschein-
lich eher mit folgendem Befehl arbeiten:

	C:\PROGRAMM>tlib C:\TC\LIB\CS.LIB +BIRNBAUM.OBJ

Wenn Sie Ihren Compiler mageschneidert installiert haben, dann mssen Sie
selber feststellen, wo die Datei CS.LIB steht.

Fr den Privatbedarf oder um das Sharewareprogramm in einem gewerblichen
Vertrieb zu testen, ist es normalerweise ausreichend, unsere Bibliothek nur
der Standardbibliothekdatei CS.LIB anzufgen.  Sie knnen allerdings die 
obige Prozedur fr jedes Speichermodell wiederholen, z.B. fr Speicher-
modell MEDIUM:

	C:\PROGRAMM>tlib C:\BORLANDC\LIB\CS.LIB +BIRNBAUM.OBJ

Als nchstes kopieren Sie bitte die Headerdatei BIRNBAUM.H ins Compilerver-
zeichnis fr C-Headerdateien, z.B.:

	C:\PROGRAMM>copy BIRNBAUM.H C:\BORLANDC\INCLUDE

Nachdem Sie diese Schritte ausgefhrt haben knnen Sie alle Funktionen der
Bibliothek "Birnbaum SAA/Maus-Lib" genaus wie scanf(), printf() und andere
Standardfunktionen verwenden.  Sie brauchen nur eine #include-Anweisung fr
die Headerdatei:

	#include <birnbaum.h>

2.2  Einbindung in einer Projekt
Wenn Sie die Funktionen der Bibliothek "Birnbaum SAA/Maus-Lib" nicht der
Borland-Standardbibliothek anfgen mchten, knnen Sie die Bibliothek 
stattdessen wahlweise in Projekten einbinden.  In diesem Fall mssen die
Dateien BIRNBAUM.H und BIRNBAUM.LIB in Ihrem Projektverzeichnis stehen.
Fgen Sie die Bibliotheksdatei BIRNBAUM.LIB Ihrer Projektliste hinzu und 
benutzen Sie die folgende #include-Anweisung in jeder Projektdatei, die
Funktionen aus der Bibliothek aufruft:

	#include "birnbaum.h"

============================================================================

3.  ERFORDERLICHE PROGRAMMIERKENNTNISSE:
Die Funktionen der Bibliothek "Birnbaum SAA/Maus-Lib" wurden absichtlich so
geschrieben, um Ihre Anwendung von neuen Programmierern mit relativ wenig
Erfahrung leicht zu machen.  Schon Programmierneulinge werden in der Lage,
Maussteuerung, Bildschirmaufbau in Farbe, Gltigkeitskontrollen usw.
schnell und schmerzlos in ihre Programme einzubauen. Jeder, der schon die 
Grundstze der Zeigerverarbeitung versteht, kann diese Funktionen ohne 
Schwierigkeiten benutzen.

Um die hchste Nutzung von diesen Funktionen zu realisieren, mssen Sie
mit manchen einfachen Consolefunktionen der Borland-Standardbibliothek
vertraut sein.  Wenn Sie mit Borland C++ arbeiten, knnen Sie diese
Funktionen in Ihrem "Referenzhandbuch" nachschlagen.  Sowohl Turbo C++- als
auch Borland C++-Programmierer knnen diese Borland-Funktionen auch mit 
Hilfe Borlands Online-Hilfeprogramm nachschlagen.  Um cprintf() nachzu-
schlagen, mssen Sie z.B. nur "cprint" irgendwo innerhalb des Rahmens der 
Borland Programmierers Plattform (TM) eintippen, den Cursor auf den ein-
getippten Begriff bewegen und [Strg]+[F1] gleichzeitig eingeben.  Die 
ntzlichen Funktionen von Borland sind:

	gotoxy()                clrscr()                cprintf()
	cscanf()                cgets()                 getch()
	getche()                putch()                 window()
	textattr()              textcolor()             textbackground()

Und lernen Sie auch die globale Systemvariable:

	_wscroll

Sie mssen _wscroll wie folgt deklarieren:

	extern int _wscroll;

Un danach benutzen Sie die folgenden Anweisungen:

	_wscroll = NULL;   /* Um Bildschirmrollen auszuschalten */
	_wscroll = 1;      /* Um Bildschirmrollen einzuschalten */

Diese Funktionen und _wscroll sind sehr gnstig in der Zusammenarbeit mit 
Funktionen der "Birnbaum SAA/Maus-Lib"-Bibliothek.

============================================================================

4.  NDERUNGEN DER BIBLIOTHEK
Viele von Ihnen werden hchstwahrscheinlich die Funktionen dieser Biblio-
thek entweder ndern oder ergnzen, um dem eigenen Bedarf mageschneidert
anzupassen.  Solche nderungen und Erweiterungen sind leicht auszufhren.
Dazu ist aber die Quellcodedatei BIRNBAUM.CPP notwendig, die nur zum Lie-
ferumfang der registrierten Lizenzversion gehrt.  Diese Vollversion erlaubt
auch die Nutzung der Bibliotheksfunktionen in gewerblichen Programmen und 
wird zusammen mit einem umfassenden gedruckten Handbuch und eine Sammlung 
von Beispielprogrammen in Quellcodeformat geliefert.  S. bitte LIESMICH.TXT!

============================================================================

5.  DIE BIRNBAUM-FUNKTIONEN
Es folgt eine kurze Zusammenfassung der Funktionen der Bibliothek gefolgt 
von ausfhrlichen Einzelbeschreibungen im Borland-Referenzbuch-Stil und einer
Liste der Farbcodes fr unsere Funktionen und Borlands textattr().

Es gibt vier Funktionen fr die Erzeugung von Bildschirmrahmen und auch
die Funktion zentriere() um Text farbig und zentriert auf dem Bildschirm
zu zeigen.  Die Funktionen rahmen(), trennzeile() und zentriere() aus 
unserer Bibliothek schreiben den folgenden hellgrauenen Rahmen auf schwarzem
Hintergrund auf den Vollbildschirm mit weiem Titel "MUSTER" zentriert:

ͻ
                                                                           
                                   MUSTER                                  
                                                                           
Ķ
                                                                           
                                                                           
                                                                           
                                                                           
                                                                           
                                                                           
                                                                           
                                                                           
                                                                           
                                                                           
                                                                           
                                                                           
                                                                           
                                                                           
                                                                           
                                                                           
                                                                           
                                                                           
                                                                           
ͼ

In Ihrem Programm, wrden Sie das so kodieren (s. auch Beschreibungen unten):

    rahmen(7,2,1,80,1,25);
    trennzeile(7,1,2,1,80,5);
    zentriere(7,3,"MUSTER");

TIP!  rahmen() schreibt den ganzen Bildschirm neu.  Deshalb schreiben Sie
Texte innerhalb des Rahmens - z.B. mit gotoxy(), zentriere() usw. - erst
nachdem Sie den Rahmen schon geschrieben haben!

Merken Sie sich bitte, da rahmen() und zentriere() Vollbildschirmfunktionen
sind!  Wenn Sie Rahmen nur in einen Teil des Bildschirms schreiben mchten,
ist es gnstiger, diesen Bereich als Fenster mit der Borland-Funktion 
window() zu definieren und dann die Birnbaum-Funktionen f_rahmen() und
f_zentriere() zu benutzen.  Ansonsten arbeiten diese zwei Fensterfuntionen
fast gleich wie rahmen() und zentriere().

Sobald Sie mit window() ein Fenster geffnet haben, werden Ihre Mglichkeiten
mit der Borland-Funktion gotoxy() beschrnkt.  gotoxy() adressiert nur
Bildschirmkoordinaten innerhalb des aktiven Bildschirmfensters.  Deshalb
wrden Sie manchmal die Birnbaum-Funktion ausgabe_wo() benutzen mchten.
ausgabe_wo() ignoriert die Grenzen des aktiven Fensters und positioniert
den Cursor auf eine beliebige Stelle innerhalb des 80x25-Textfensters.

Die Funktionen window(), f_rahmen(), trennzeile() und f_zentriere() sind
gute Werkzeuge fr die Erstellung von SAA-Mens.

Zur Birnbaum-Bibliothek gehrt eine Familie von Maussteuerung-Funktionen.
Sie werden unten ausfhrlich beschrieben.  Ihre Anwendung wird noch besser 
durch das Demoprogramm MAUSDEMO.CPP gezeigt.

(Ausfhrliche Textmaterial und zustzliche Demoprogramme fr die Erstellung
von SAA-Mens gehrt zum Lieferumfang der Lizenzversion der Birnbaum-Biblio-
thek.  Die Lizenzversion enthlt auch Quellcodebeispiele fr die SAA-Ebene-
Arbeit mit dem IBM-Erweiterten-Zeichensatz (F-Tasten, Einfg, Entf, Cursortas-
ten usw.) und eine Liste von allen Scancodes fr diese Tasten.)

Es gibt auch eine Familie von Birnbaum-Funktionen, die Borlands Zeichenkon-
versionen durch deutschsprachige Varianten ersetzen.  Borlands tolower() 
konvertiert einzelne Grobuchstaben in Kleinbuchstaben und toupper()
macht das Gegenteil.  Borlands strlwr() konvertriert alle Kleinbuchstaben
in einer Zeichenkette (String) in Grobuchstaben und strupr() umgekehrt.
Im deutschsprachigen Raum sind diese Funktionen nur von begrenztem Wert, 
weil sie die Umlautbuchstaben und das scharfe S () nicht konvertieren
knnen.

Mit einer Ausnahme konvertieren die Birnbaum-Funktionen auch die soge-
nannten deutschen Buchstaben.  Die Ausnahme ist die Konversion von SS (gro)
in  (klein).  Diese Konversion wrde ein groes grammatisches Programm
erfordern, weil viele SS-Kombinationen in ss (klein) konvertiert werden
mssen und nicht in .

Der letzte Beitrag der Birnbaum-Bibliothek ist die Makro-Funktion
init_grafik(), die alle Schritte der automatischen Grafikkarte-Initiali-
sierung in einem Schritt ausfhrt.

=============================================================================

6.  DIE FUNKTIONSBESCHREIBUNGEN

ausgabe_wo
---------------------------------------------------------------------------- 

Funktion:       Diese Textmodus-Funktion schreibt direkt auf den 
		Bildschirm an eine durch die Parameter spalte und 
		zeile beschriebene  Stelle.  Die Funktion arbeitet mit 
		absoluten Bildschirmkoordinaten, egal ob ein Fenster oder 
		mehrere offen sind.  Sonst hnelt ausgabe_wo() der Funktion 
		clrscr() in CONIO.H.

Syntax: #include <birnbaum.h>
		void ausgabe_wo(int spalte, int zeile)

Prototyp in:    birnbaum.h 

Bemerkungen:    spalte ist die absolute Bildschirmspalte und 
		zeile ist die absolute Bildschirmzeile.  Im 
		Standardmodus kann spalte Werte zwischen NULL und 
		79 enthalten, zeile dagegen Werte von NULL bis 24.

S. auch:        clrscr() in CONIO.H.

Rckgabewert:   keinen.

Portabilitt:   Borland C- und C++-Compiler.
=============================================================================
 

f_rahmen
----------------------------------------------------------------------------- 

Funktion:       Schreibt einen Rahmen von beliebiger Gre und 
		mit beliebigen Farben auf eine beliebige 
		Bildschirmstelle innerhalb eines offenen 
		Textfensters (Window).  Der Rahmen wird mit den 
		Farben des Rahmens intern gefllt.

Syntax:         #include <birnbaum.h>
		void f_rahmen(unsigned farben, unsigned typ,\
		unsigned links, unsigned rechts, unsigned oben,\
		unsigned unten)

Prototyp in:    birnbaum.h (Eigenfunktion)

Bemerkungen:    Der Programmierer mu feststellen, da die 
		notwendige Eigenbibliothek gelinkt wird, wenn 
		diese Funktion der Standardbibliothek nicht 
		hinzugefgt wurde.  farben ist ein Farbcode, der 
		den Mastben der Funktion textattr() in CONIO.H 
		pat.  typ kann mit dem Wert 1 fr einen 
		einfachen Rahmen oder 2 fr einen Doppelrahmen 
		initialisiert werden.  Die Funktionsparameter 
		links, rechts, oben und unten beziehen sich auf 
		die lokalen Bildschirmpunkte innerhalb des 
		offenen Fensters und nicht auf die absoluten 
		Punkte des ganzen Bildschirms.  links hat einen 
		Wert von 1 bis 80 und bezeichnet die Spalte im 
		Fenster in der die linke Seite des Rahmens 
		positioniert wird.  rechts ist das Gleiche aber 
		fr die rechte Seite des Rahmens.  oben  hat 
		einen Wert von 1 bis 25 und bezeichnet die Zeile 
		im Fenster in dem die obere Zeile des Rahmens 
		positioniert wird.  unten ist das Gleiche, aber 
		fr die untere Zeile des Rahmens.

S. auch:        rahmen() unten in Anhang C.

Rckgabewert:   keinen.

Portabilitt:   Borland C- und C++-Compiler.
============================================================================
 

f_zentriere
---------------------------------------------------------------------------- 

Funktion:       Zeigt eine Zeichenkette von 78 oder weniger 
		Zeichen zentriert und in einer beliebigen 
		Farbdarstellung innerhalb eines offenen 
		Textfensters (Window) auf dem Bildschirm.

Syntax:         #include <birnbaum.h>
		void f_zentriere(unsigned char farben, unsigned 
				 char zeile, unsigned links, 
				 unsigned rechts, char *string);

Prototyp in:    birnbaum.h.

Bemerkungen:    Der Programmierer mu feststellen, da die 
		notwendige Bibliothek gelinkt wird, wenn diese 
		Funktion der Standardbibliothek nicht hinzugefgt 
		wurde.  farben ist ein Farbcode, der den 
		Mastben der Funktion textattr() in CONIO.H 
		pat.  Die Funktionsparameter links, rechts, und 
		zeilen_nr beziehen sich auf die lokalen 
		Bildschirmpunkte innerhalb des offenen Fensters 
		und nicht auf die absoluten Punkte des ganzen 
		Bildschirms.  links hat einen Wert von 1 bis 80 
		und bezeichnet die Spalte im Fenster in der die 
		linke Seite des Rahmens positioniert wird.  
		rechts ist das Gleiche aber fr die rechte Seite 
		des Rahmens.  zeilen_nr ist die Nummer der 
		Bildschirmzeile innerhalb des Fensters, in die 
		der Text string geschrieben wird.  string ist die 
		zu zentrierende Zeichenkette.  Wenn die 
		Zeichenkette lnger als die Fensterbreite ist, 
		hat diese Funktion keine Wirkung.  Wenn diese 
		Funktion zusammen mit der Funktion f_rahmen() in 
		birnbaum.h verwendet wird, mu man den Rahmen mit 
		f_rahmen() schreiben bevor man die Zeichenkette 
		zentriert auf dem Bildschirm schreibt.  Wenn 
		diese Reihenfolge falsch ist, berschreibt 
		f_rahmen() die Zeichenkette.  Mehrere Zeichen-
		ketten drfen in einen Rahmen geschrieben werden.

Rckgabewert:   keinen.

S. auch:        zentriere() unten in Anhang C.

Portabilitt:   Borland C- und C++ Compiler.
============================================================================
 

init_grafik
---------------------------------------------------------------------------- 

Funktion:       Initialisiert Grafikmodus mit AutoenTdeckung des 
		Typs der Videokarte.

Syntax:         #include <birnbaum.h>
		void init_graf(void);

Prototyp in:    birnbaum.h.

Bemerkungen:    init_grafik() stellt den Typ der angeschlossenen 
		Grafikkarte fest und initialisiert den richtigen 
		Grafikmodus fr die Karte.  Beim Mierfolg 
		beendet init_grafik() die Programmausfhrung und 
		erzeugt eine Fehlermeldung.  init_grafik() 
		erzeugt eine Compilerfehlermeldung wenn das 
		Speichermodell TINY aktiv ist.

Rckgabewert:   Keinen.

Portabilitt:   Borland C- und C++ Compiler.
============================================================================


maus_bewegung
---------------------------------------------------------------------------- 

Funktion:       Registriert Daten ber Mausbewegung

Syntax:         #include <birnbaum.h>
		void maus_bewegung(int *waagerecht, int *senkrecht);

Prototyp in:    birnbaum.h.

Bemerkungen:    maus_bewegung() stellt fest, ob die Maus bewegt 
		wird, und wenn ja, in welche Richtung.  Die 
		Indikationswerte werden in die Variablen 
		geschrieben, auf die die Zeiger waagerecht und 
		senkrecht zeigen.  Die Variable, auf die der 
		Zeiger waagerecht zeigt, enthlt den Wert NULL 
		fr keine Bewegung, 1 fr Bewegung nach rechts 
		und zwei fr Bewegung nach links.  Die Variable, 
		auf die der Zeiger senkrecht zeigt, enthlt den 
		Wert NULL fr keine Bewegung, 3 fr Bewegung nach 
		oben (aufwrts) und 4 fr Bewegung nach unten 
		(abwrts).

Rckgabewert:   Keinen.

Portabilitt:   Borland C- und C++ Compiler.
============================================================================
 

maus_klick_links
---------------------------------------------------------------------------- 

Funktion:       Registriert, ob die linke Maustaste bettigt wird.

Syntax:         #include <birnbaum.h>
		int maus_klick_links(void);

Prototyp in:    birnbaum.h.

Bemerkungen:    maus_klick_links() stellt fest, ob die linke Maustaste 
		angeklickt wurde.

Rckgabewert:   maus_klick_links() gibt den Integerwert 1 zurck 
		wenn die linke Maustaste bettigt wird, und NULL 
		zurck, wenn nicht bettigt.

Portabilitt:   Borland C- und C++ Compiler.
============================================================================
 

maus_klick_rechts
 

Funktion:       Registriert, ob die rechte Maustaste bettigt wird.

Syntax:         #include <birnbaum.h>
		int maus_klick_rechts(void);

Prototyp in:    birnbaum.h.

Bemerkungen:    maus_klick_rechts() stellt fest, ob die 
		rechte Maustaste angeklickt wurde.

Rckgabewert:   maus_klick_rechts() gibt den Integerwert 1 zurck 
		wenn die rechte Maustaste bettigt wird und NULL 
		zurck wenn nicht bettigt.

Portabilitt:   Borland C- und C++ Compiler.
============================================================================
 

maus_neu_setzen
---------------------------------------------------------------------------- 

Funktion:       Stellt fest, ob eine Microsoft Mouse-kompatible 
		Maus angeschlossen ist, und wenn ja, 
		initialisiert sie die Maus, setzt den Mauszeiger 
		mitten auf den Bildschirm und schaltet ihn aus.

Syntax:         #include <birnbaum.h>
		void maus_neu_setzen(void);

Prototyp in:    birnbaum.h.

Bemerkungen:    Wenn keine passende Maus angeschlossen 
		ist, erscheint die Meldung Maus bzw. Maustreiber 
		nicht gefunden.  Wenn eine Maus gefunden wird, 
		die nicht Microsoft-Mouse-kompatibel ist, 
		erscheint die Meldung Angeschlossene Maus nicht 
		im 2-Tasten Microsoft/IBM-Modus!  Ansonsten wird 
		die Maus initialisiert.

Rckgabewert:   Keinen.

Portabilitt:   Borland C- und C++ Compiler.
============================================================================
 



maus_wo
----------------------------------------------------------------------------- 

Funktion:       Stellt fest, ob eine Microsoft Mouse-kompatible 
		Maus angeschlossen ist und wenn ja, initialisiert 
		sie die Maus, setzt den Mauszeiger mitten auf dem 
		Bildschirm und schaltet ihn aus.

Syntax:         #include <birnbaum.h>
		void maus_wo(int *x, int *y);

Prototyp in:    birnbaum.h.

Bemerkungen:    Die Spaltenkoordinate, in Mickeys gemessen, wird in 
		die Variable geschrieben, auf die der Zeiger x 
		zeigt.  Die Zeilenkoordinate wird ebenfalls in 
		die Variable geschrieben, auf die der Zeiger y 
		zeigt.  Um die Mausvariablen mit den Variablen 
		spalte und zeile zu ermitteln, wrde man das 
		folgende Codesegment verwenden:

		int spalte, zeile;         /* Deklaration */
	
		maus_wo(&spalte, &zeile);

		Im Textmodus werden die Mickey-Werte in 
		Achterschritten zurckgegeben.  Man kann den 
		Rckgabewert durch acht teilen, um 
		Spaltenkoordinaten von NULL bis 79 zu ermitteln 
		und Zeilenkoordinaten von NULL bis 24.  Im 
		Grafikmodus kann man normalerweise ein Mickey als 
		ein Pixel (Bildschirmpunkt) bersetzen.  Im 
		640x200-Modus ist allerdings ein x-Pixel (d.h 
		Zeilenbildschirmpunkt) gleich zwei Mickeys gro.

Rckgabewert:   Keinen.

Portabilitt:   Borland C- und C++ Compiler.
=============================================================================
 

maus_zeiger_aus
-----------------------------------------------------------------------------    

Funktion:       Schaltet den sichtbaren Mauscursor auf dem 
		Bildschirm aus.

Syntax:         #include <birnbaum.h>
		void maus_wo(void);

Prototyp in:    birnbaum.h.

Bemerkungen:    maus_zeiger_aus() schaltet den Mauszeiger aus.


Rckgabewert:   Keinen.

Portabilitt:   Borland C- und C++ Compiler.
=============================================================================
 

maus_zeiger_ein
---------------------------------------------------------------------------- 

Funktion:       Schaltet den sichtbaren Mauscursor auf dem 
		Bildschirm an.

Syntax:         #include <birnbaum.h>
		void maus_wo(void);

Prototyp in:    birnbaum.h.

Bemerkungen:    maus_zeiger_aus() schaltet den Mauszeiger ein.


Rckgabewert:   Keinen.

Portabilitt:   Borland C- und C++ Compiler.
============================================================================
 

pruef_datum
---------------------------------------------------------------------------- 

Funktion:       Kontrolliert die Gltigkeit eines eingegebenen Datums.

Syntax:         #include <birnbaum.h>
		int pruef_datum(int testtag, int testmonat, int testjahr);

Prototyp in:    birnbaum.h.

Bemerkungen:    pruef_datum() kontrolliert, ob ein eingegebenes 
		Datum berhaupt mglich ist.  Danach gibt sie 
		unterschiedliche Definitioncodes ans aufrufende 
		Programm zurck.

Rckgabewert:   pruef_datum() gibt den Integerwert 0 (Null) 
		zurck, wenn das Datum gltig ist und das Jahr 
		kein Schaltjahr ist.  Rckgabewert 1 heit auch, 
		da das Datum gltig ist, aber das Jahr ist ein 
		Schaltjahr.  Rckgabewert 2 heit, das Datum ist 
		ungltig.  Rckgabewert 3 heit, der 29.Februar 
		wurde fr ein nicht-Schaltjahr eingegeben.

Portabilitt:   Borland C- und C++ Compiler.
============================================================================
 

rahmen
____________________________________________________________________________ 

Funktion:       Schreibt einen Rahmen von beliebiger Gre und 
		mit beliebigen Farben auf eine beliebige 
		Bildschirmstelle.  Der Rahmen wird mit den Farben 
		des Rahmens intern gefllt.  Die Funktion gilt 
		nur fr einen Vollbildschirm, nicht fr ein 
		offenes Fenster (Window), das kleiner als 80x25 
		Bildschirmpunkte ist.

Syntax:         #include <birnbaum.h>
		void rahmen(unsigned farben, unsigned typ, unsigned links,\ 
			    unsigned rechts, unsigned oben, unsigned unten)

Prototyp in:    birnbaum.h (Eigenfunktion)

Bemerkungen:    Der Programmierer mu feststellen, da die 
		notwendige Eigenbibliothek gelinkt wird, wenn 
		diese Funktion der Standardbibliothek nicht 
		hinzugefgt wurde.  farben ist ein Farbcode, der 
		den Mastben der Funktion textattr() in CONIO.H 
		pat.  typ kann mit dem Wert 1 fr einen 
		einfachen Rahmen oder 2 fr einen Doppelrahmen 
		initialisiert werden.  links hat einen Wert von 1 
		bis 80 und bezeichnet die Spalte auf dem 
		Bildschirm in der die linke Seite des Rahmens 
		positioniert wird.  rechts ist das Gleiche aber 
		fr die rechte Seite des Rahmens.  oben  hat 
		einen Wert von 1 bis 25 und bezeichnet die Zeile 
		auf dem Bildschirm in dem die obere Zeile des 
		Rahmens positioniert wird.  unten ist das 
		Gleiche, aber fr die untere Zeile des Rahmens.

Rckgabewert:   Keinen.

S. auch:        f_rahmen() oben in Anhang C.

Portabilitt:   Borland C- und C++-Compiler.
=============================================================================
 

strlwr_d
----------------------------------------------------------------------------- 

Funktion:       Diese Funktion ist eine Erweiterung der 
		Standardbibliotheksfunktion strlwr().  Sie 
		konvertiert Grobuchstaben in Kleinbuchstaben.  
		Im Gegensatz zu strlwr(), kann strlwr_d() auch 
		die deutschen Grobuchstaben ,  und  
		konvertieren.  SS wird aber nicht in  
		konvertiert.

Syntax:         #include <birnbaum.h>
		char *strlwr_d(char *string);

Prototyp in:    birnbaum.h.

Bemerkungen:    Der Programmierer mu feststellen, da die 
		Bibliothek, in der diese Funktion steht, gelinkt 
		wird, wenn sie der Standardbibliothek nicht 
		hinzugefgt wird.  strlwr_d() funktioniert mit 
		den Zeichen A bis Z und ,  und .  Alle 
		Grobuchstaben werden zu Kleinbuchstaben kon-
		vertiert.  Andere Zeichen bleiben unverndert.

Rckgabewert:   Die konvertierte Zeichenkette.

Portabilitt:   Borland C- und C++ Compiler.
============================================================================
 

strupr_d
---------------------------------------------------------------------------- 

Funktion:       Diese Funktion ist eine Erweiterung der 
		Standardbibliotheksfunktion strupr().  Sie 
		konvertiert Grobuchstaben in Kleinbuchstaben.  
		Im Gegensatz zu strupr(), kann strupr_d() auch 
		die deutschen Grobuchstaben , ,  und  
		konvertieren.

Syntax:         #include <birnbaum.h>
		char *strupr_d(char *string);

Prototyp in:    birnbaum.h.

Bemerkungen:    Der Programmierer mu feststellen, da die 
		Bibliothek, in der diese Funktion steht, gelinkt 
		wird, wenn sie der Standardbibliothek nicht 
		hinzugefgt wird.  Der Programmierer mu auch da-
		fr sorgen, da die Dimensionierung von der zu 
		bergebenden Zeichenkette zweimal so gro ist wie 
		der tatschliche Inhalt, weil jedes Einzelzeichen 
		 zu in Zeichen (SS) konvertiert werden mu!  
		strlwr_d() funktioniert mit den Zeichen a bis z 
		und , ,  und .  Alle Kleinbuchstaben werden 
		in Grobuchstaben gewandelt.  Andere Zeichen 
		bleiben unverndert.

Rckgabewert:   Die konvertierte Zeichenkette.

Portabilitt:   Borland C- und C++ Compiler.
============================================================================


tolower_d
---------------------------------------------------------------------------- 

Funktion:       Diese Funktion ist eine Erweiterung der 
		Standardbibliotheksfunktion tolower().  Sie 
		konvertiert Grobuchstaben in Kleinbuchstaben.  
		Im Gegensatz zu tolower(), kann tolower_d() auch 
		die deutschen Grobuchstaben ,  und  
		konvertieren, aber nicht SS in .

Syntax:         #include <birnbaum.h>
		char tolower_d(char zeichen);

Prototyp in:    birnbaum.h.

Bemerkungen:    Der Programmierer mu feststellen, da die 
		Bibliothek, in der diese Funktion steht, gelinkt 
		wird, wenn sie der Standardbibliothek nicht 
		hinzugefgt wird.  tolower_d() funktioniert mit 
		den Zeichen A bis Z und .  und .

Rckgabewert:   tolower_d() gibt den konvertierten Wert von 
		zeichen zurck, wenn zeichen ein Grobuchstaben 
		ist.  Sonst wird zeichen unverndert 
		zurckgegeben.

Portabilitt:   Borland C- und C++ Compiler.
============================================================================
 

toupper_d
---------------------------------------------------------------------------- 

Funktion:       Diese Funktion ist eine Erweiterung der 
		Standardbibliotheksfunktion toupper().  Sie liest 
		Kleinbuchstaben ein und wandelt sie in 
		Grobuchstaben.  Im Gegensatz zu toupper(), kann 
		toupper_d() auch die deutschen Kleinbuchstaben , 
		 und  (aber nicht ) bersetzen.

Syntax:         #include <birnbaum.h>
		char tolower_d(char zeichen);

Prototyp in:    birnbaum.h.

Bemerkungen:    Der Programmierer mu feststellen, da die 
		Bibliothek, in der diese Funktion steht, gelinkt 
		wird, wenn sie der Standardbibliothek nicht 
		hinzugefgt wird.  tolower_d() funktioniert mit 
		den Zeichen a bis z und ,  und .

Rckgabewert:   Das konvertierte Zeichen.

Portabilitt:   Borland C- und C++ Compiler.
============================================================================


trennzeile
---------------------------------------------------------------------------- 

Funktion:       Schreibt innerhalb eines Rahmens eine Trennzeile 
		von beliebiger Gre und mit beliebigen Farben in 
		eine beliebige Bildschirmzeile.

Syntax:         #include <birnbaum.h>
		void trennzeile(unsigned farben, unsigned z_typ, unsigned \
				r_type, unsigned links, unsigned rechts,\ 
				unsigned zeilen_nr)

Prototyp in:    birnbaum.h (Eigenfunktion)

Bemerkungen:    Der Programmierer mu feststellen, da die 
		notwendige Eigenbibliothek gelinkt wird, wenn 
		diese Funktion der Standardbibliothek nicht 
		hinzugefgt wurde.  farben ist ein Farbcode, der 
		den Mastben der Funktion textattr() in CONIO.H 
		pat.  z_typ kann mit dem Wert 1 fr eine 
		einfache Zeile oder 2 fr eine Doppelzeile 
		initialisiert werden.  r_typ kann mit dem Wert 1 
		fr eine einfachen Rahmen oder 2 fr eine 
		Doppelrahmen initialisiert werden.  links hat 
		einen Wert von 1 bis 80 und bezeichnet die Spalte 
		auf dem Bildschirm in der die linke Seite des 
		Rahmens positioniert wird.  rechts ist das 
		Gleiche aber fr die rechte Seite des Rahmens.  
		zeilen_nr ist die Nummer der Bildschirmzeile, in 
		die die Trennzeile geschrieben wird.  Wenn diese 
		Funktion zusammen mit der Funktion rahmen() in 
		birnbaum.h verwendet wird, mu man den Rahmen mit 
		rahmen() schreiben bevor man die Trennzeile auf 
		dem Bildschirm schreibt.  Wenn diese Reihenfolge 
		falsch ist, berschreibt rahmen() die Trennzeile.  
		Mehrere Trennzeilen - auch einfach und doppelt 
		gemischt - drfen in einen Rahmen geschrieben 
		werden.

Rckgabewert:   Keinen.

Portabilitt:   Borland C- und C++-Compiler.
============================================================================
 

zentriere
---------------------------------------------------------------------------- 

Funktion:       Zeigt eine Zeichenkette von 78 oder weniger 
		Zeichen zentriert und in einer beliebigen 
		Farbdarstellung auf dem Bildschirm.  Die Funktion 
		gilt nur fr einen Vollbildschirm, nicht fr ein 
		offenes Fenster (Window), das kleiner als 80x25 
		Bildschirmpunkte ist.

Syntax:         #include <birnbaum.h>
		void zentriere(unsigned char farben, unsigned char zeile, \
		char *string);

Prototyp in:    birnbaum.h.

Bemerkungen:    Der Programmierer mu feststellen, da die 
		notwendige Bibliothek gelinkt wird, wenn diese 
		Funktion der Standardbibliothek nicht hinzugefgt 
		wurde.  farben ist ein Farbcode, der den 
		Mastben der Funktion textattr() in CONIO.H 
		pat.  zeilen_nr ist die Nummer der 
		Bildschirmzeile, in die der Text string 
		geschrieben wird.  string ist die zu zentrierende 
		Zeichenkette.  Wenn die Zeichenkette mehr als 78 
		Zeichen hat, hat diese Funktion keine Wirkung.  
		Wenn diese Funktion zusammen mit der Funktion 
		rahmen() in birnbaum.h verwendet wird, mu man den 
		Rahmen mit rahmen() schreiben bevor man die 
		Zeichenkette zentriert auf dem Bildschirm 
		schreibt.  Wenn diese Reihenfolge falsch ist, 
		berschreibt rahmen() die Zeichenkette.  Mehrere 
		Zeichenketten drfen in einen Rahmen geschrieben 
		werden.

Rckgabewert:   Keinen.

S. auch:        f_zentriere() oben in Anhang C.

Portabilitt:   Borland C- und C++ Compiler.
============================================================================

7. FARBCODES IM TEXTMODUS

Die gnstigste Methode, Textfarben mit den Borland C- und C++-
Compilern zu setzen, ist mit Hilfe der 
Standardbibliotheksfunktion textattr(), die in der Headerdatei 
CONIO.H definiert ist.  textattr() verlangt allerdings einen 
Farbcode.  Im Borland-Referenzhandbuch steht nur, wie man 
diese Codes ber Bitwerte berechnen kann.  Die hier stehenden 
Listen geben diese Codes direkt an.

CGA, EGA und VGA Videokarten bieten eine Auswahl von 16 
Vordergrunds- und acht Hintergrundsfarben.  Die 
Vordergrundsfarben stellen die Farben der Zeichen auf dem 
Bildschirm dar, whrend die Hintergrundsfarben einfach die 
Farbe des Bildschirmhintergrunds bestimmen.

 

1.  VORDERGRUNDFARBEN:

Code    Farbe           Code    Farbe

0       Schwarz         8       Dunkelgrau
1       Blau            9       Hellblau
2       Grn            10      Hellgrn
3       Zyan            11      helles Zyan
4       Rot             12      Hellrot
5       Magenta         13      helles Magenta
6       Orange          14      Gelb
7       Hellgrau        15      leuchtend Wei

 

2.  HINTERGRUNDFARBEN:

Code    Farbe           Code    Farbe

0       Schwarz         64      Rot
16      Blau            80      Magenta
32      Grn            96      Orange
48      Zyan            112     Hellgrau

 



3.  FARBKOMBINATIONEN:

Code    Farbkombinbation                Code    Farbkombinbation

HINTERGRUND SCHWARZ:                    HINTERGRUND ROT:

0       Schwarz auf Schwarz             64      Schwarz auf Rot
1       Blau auf Schwarz                65      Blau auf Rot
2       Grn auf Schwarz                66      Grn auf Rot
3       Zyan auf Schwarz                67      Zyan auf Rot
4       Rot auf Schwarz                 68      Rot auf Rot
5       Magenta auf Schwarz             69      Magenta auf Rot
6       Orange auf Schwarz              70      Orange auf Rot
7       Hellgrau auf Schwarz            71      Hellgrau auf Rot
8       Dunkelgrau auf Schwarz          72      Dunkelgrau auf Rot
9       Hellblau auf Schwarz            73      Hellblau auf Rot
10      Hellgrn auf Schwarz            74      Hellgrn auf Rot
11      helles Zyan auf Schwarz         75      helles Zyan auf Rot
12      Hellrot auf Schwarz             76      Hellrot auf Rot
13      helles Magenta auf Schwarz      77      Helles Magenta auf Rot
14      Gelb auf Schwarz                78      Gelb auf Rot
15      leuchtend Weis auf Schwarz      79      leuchtend Wei auf Rot

 

HINTERGRUND BLAU:                       HINTERGRUND MAGENTA:

16      Schwarz auf Blau                80      Schwarz auf Magenta
17      Blau auf Blau                   81      Blau auf Magenta
18      Grn auf Blau                   82      Grn auf Magenta
19      Zyan auf Blau                   83      Zyan auf Magenta
20      Rot auf Blau                    84      Rot auf Magenta
21      Magenta auf Blau                85      Magenta auf Magenta
22      Orange auf Blau                 86      Orange auf Magenta
23      Hellgrau auf Blau               87      Hellgrau auf Magenta
24      Dunkelgrau auf Blau             88      Dunkelgrau auf Magenta
25      Hellblau auf Blau               89      Hellblau auf Magenta
26      Hellgrn auf Blau               90      Hellgrn auf Magenta
27      helles Zyan auf Blau            91      helles Zyan auf Magenta
28      Hellrot auf Blau                92      Hellrot auf Magenta
29      helles Magenta auf Blau         93      Helles Magenta auf Magenta
30      Gelb auf Blau                   94      Gelb auf Magenta
31      leuchtend Weis auf Blau         95      leuchtend Wei auf Magenta

 


HINTERGRUND GRN:                       HINTERGRUND ORANGE:

32      Schwarz auf Grn                96      Schwarz auf Orange
33      Blau auf Grn                   97      Blau auf Orange
34      Grn auf Grn                   98      Grn auf Orange
35      Zyan auf Grn                   99      Zyan auf Orange
36      Rot auf Grn                    100     Rot auf Orange
37      Magenta auf Grn                101     Magenta auf Orange
38      Orange auf Grn                 102     Orange auf Orange
39      Hellgrau auf Grn               103     Hellgrau auf Orange
40      Dunkelgrau auf Grn             104     Dunkelgrau auf Orange
41      Hellblau auf Grn               105     Hellblau auf Orange
42      Hellgrn auf Grn               106     Hellgrn auf Orange
43      helles Zyan auf Grn            107     helles Zyan auf Orange
44      Hellrot auf Grn                108     Hellrot auf Orange
45      helles Magenta auf Grn         109     Helles Magenta auf Orange
46      Gelb auf Grn                   110     Gelb auf Orange
47      leuchtend Weis auf Grn         111     leuchtend Wei auf Orange

 

HINTERGRUND ZYAN:                       HINTERGRUND HELLGRAU:

48      Schwarz auf Zyan                112     Schwarz auf Hellgrau
49      Blau auf Zyan                   113     Blau auf Hellgrau
50      Grn auf Zyan                   114     Grn auf Hellgrau
51      Zyan auf Zyan                   115     Zyan auf Hellgrau
52      Rot auf Zyan                    116     Rot auf Hellgrau
53      Magenta auf Zyan                117     Magenta auf Hellgrau
54      Orange auf Zyan                 118     Orange auf Hellgrau
55      Hellgrau auf Zyan               119     Hellgrau auf Hellgrau
56      Dunkelgrau auf Zyan             120     Dunkelgrau auf Hellgrau
57      Hellblau auf Zyan               121     Hellblau auf Hellgrau
58      Hellgrn auf Zyan               122     Hellgrn auf Hellgrau
59      helles Zyan auf Zyan            123     helles Zyan auf Hellgrau
60      Hellrot auf Zyan                124     Hellrot auf Hellgrau
61      helles Magenta auf Zyan         125     Helles Magenta auf Hellgrau
62      Gelb auf Zyan                   126     Gelb auf Hellgrau
63      leuchtend Weis auf Zyan         127     leuchtend Wei auf Hellgrau

 

4.  BLINKENDE ANZEIGE:

Fr einen blinkenden Text addieren Sie 128 zu den obigen Werten.


5.  SCHWARZWEISSBILDSCHIRME:

Code    Anzeige                         Code    Anzeige

0       Anzeige unsichtbar              9       leuchtend, unterstrichen
1       unterstrichen                   10      leuchtend
2       normale Anzeige                 112     inverse Darstellung

============================================================================
 


