PLOTLIB - Routinen
-------------------------------------------------------------------------------

WINDOW(IX0,IY0,IX1,IY1)		

Entry		WINDOW
Externals	XBEAM,YBEAM,XMIN,YMIN,XMAX,YMAX	in Modul PUTP

setzt das Plott-Fenster XMIN,YMIN und XMAX,YMAX. Die Koordinaten der neuen
linken unteren Ecke (IX0,IY0) und der rechten oberen Ecke (IX1,IY1) sind
absolute Bildschirm-Koordinaten und werden auf die Bildschirmgrenzen abge-
testet. Die momentane Plott-Position XBEAM,YBEAM wird auf (0,0), d.h. die
linke untere Ecke gesetzt.

-------------------------------------------------------------------------------

LINETO(IX1,IY1,IPEN)

Entry		LINETO
Externals	XBEAM,YBEAM	in Modul PUTP
Calls		VECTOR		in Modul VECTOR

plottet (IPEN=1) bzw. loescht (IPEN=0) eine Strecke vom momentanen Plott-Punkt
(XBEAM,YBEAM) zum Punkt (IX1,IY1).

-------------------------------------------------------------------------------

MOVETO(IX,IY)

Entry		MOVETO
Externals	XBEAM,YBEAM,XMIN,YMIN	in Modul PUTP

macht (IX,IY) zum momentanen Plott-Punkt XBEAM,YBEAM bezgl. der linken
unteren Fensterecke XMIN,YMIN.

-------------------------------------------------------------------------------

VECTOR(IX0,IY0,IX1,IY1,IPEN)

Entry		VECTOR
Calls		PUTBD im Modul PUTP

plottet (IPEN=1) bzw. loescht (IPEN=0) eine Strecke vom Punkt (IX0,IY0) zum
Punkt (IX1,IY1).

-------------------------------------------------------------------------------

CIRCLE(IXM,IYM,IR,IPEN)

Entry		CIRCLE
Calls		PUTPBD im Modul PUTP

plottet (IPEN=1) bzw. loescht (IPEN=0) einen Kreis um den Mittelpunkt (IXM,IYM)
mit dem Radius IR.

-------------------------------------------------------------------------------

GETP(IX,IY,IPEN)

Entry		GETP
External	XMIN,YMIN,XMAX,YMAX,MULTAC in Modul PUTP

liefert IPEN = -1 (true), wenn der Semi-Graphik-Punkt (IX,IY) gesetzt bzw.
IPEN = 0 (false), wenn er nicht gesetzt ist. Falls die Grenzen des momentanen
Plott-Fensters ueberschritten sind oder das Video-Byte kein Grafikzeichen ist,
ist IPEN = 0.

-------------------------------------------------------------------------------

GETGW(IX,IY,IW)

Entry		GETGW
External	XMIN,YMIN,XMAX,YMAX,MULTAC in Modul PUTP

liefert das Grafik-Wort, das den Plottpunkt (IX,IY) enthaelt, nach IW.
Falls die Grenzen des momentanen Fensters ueberschritten sind oder das 
Video-Byte kein Grafikzeichen ist, ist IW = 0.

-------------------------------------------------------------------------------

PUTGW(IX,IY,IW)

Entries		PUTGW,PUTGBD,PUTGDE
External	XMIN,YMIN,XMAX,YMAX,MULTAC in Modul PUTP.

schreibt das Grafik-Wort IW, das den Plottpunkt (IX,IY) enthaelt, in den
Video-RAM. Falls die Grenzen des momentanen Fensters ueberschritten sind,
wird nicht geschrieben.

Einsprung ueber Entry
- PUTGW  mit Adresse von x in HL, Adr.von y in DE und Adr.von Wort in BC.
- PUTGBD mit x in BC, y in DE und Wort in A
	 In beiden Faellen gelten die Koordinaten bezgl. des Fensters
	 XMIN <= x <= XMAX und YMIN <= y <= YMAX.
- PUTGDE mit x in E, y in D und Wort in A
	 Hier werden absolute Schirmkoordinaten erwartet.
	 Die Grenzen werden nicht abgetestet.

-------------------------------------------------------------------------------

GETWIN(IFELD)

Entry		GETWIN
External	XMIN,YMIN,XMAX,YMAX,MULTAC in Modul PUTP

schreibt das gesamte momentane Plott-Fenster aus dem Video-RAM in das
Ausgabefeld IFELD. Die Ausgabe erfolgt von YMAX nach YMIN und von XMIN
nach XMAX, also zeilenweise von oben nach unten und von links nach rechts.
Das Attribut-Byte wird ins Low Byte, das Character-Byte ins High Byte des
Integer-Elements geschrieben. 
Das Feld muss ausreichend dimensioniert worden sein.

-------------------------------------------------------------------------------

PUTWIN(IFELD)

Entry		PUTWIN
External	XMIN,YMIN,XMAX,YMAX,MULTAC

holt das gesamte momentane Plott-Fenster aus dem Eingabefeld IFELD in den
Video-RAM. Die Ausgabe erfolgt von YMAX nach YMIN und von XMIN nach XMAX,
also zeilenweise von oben nach unten und von links nach rechts.
Das Attribut-Byte wird aus dem Low Byte, das Character-Byte aus dem High Byte
des Integer-Elements geholt.
Das Feld muss ausreichend dimensioniert worden sein.

-------------------------------------------------------------------------------

PUTP(IX,IY,IPEN)

Entries		PUTP,PUTPBD,PUTPDE,MULTAC
Public		XBEAM,YBEAM,XMIN,YMIN,XMAX,YMAX

setzt den Semi-Graphik-Punkt (IX,IY) dunkel (IPEN = 0) bzw. hell (IPEN <> 0).

Einsprung ueber Entry
- PUTP   mit Adresse von x in HL, Adr.von y in DE und Adr.von Pen in BC.
- PUTPBD mit x in BC, y in DE und Pen in A
	 In beiden Faellen gelten die Koordinaten bezgl. des Fensters
	 XMIN <= x <= XMAX und YMIN <= y <= YMAX.
	 Falls die Grenzen ueberschritten sind, wird nicht geplottet.
- PUTPDE mit x in E, y in D und Pen in A
	 Hier werden absolute Schirmkoordinaten erwartet.
	 Die Grenzen werden nicht abgetestet.
- MULTAC multipliziert den Akku mit Reg.C, Ergebnis in HL.

XBEAM,YBEAM enthalten die momentane Plott-Position.
XMIN,YMIN und XMAX,YMAX enthalten die Grenzen des momentanen Plott-Fensters.

-------------------------------------------------------------------------------

Joystick-Routinen

-------------------------------------------------------------------------------

Modul	JOY

Entries		INIJOY,JOYA,JOYB,JOYAA,JOYBA

INIJOY
initialisiert die Ports A und B von PIO 2 fuer die Joysticks.

JOYA(I)
JOYB(I)
liefern die Eingabebytes der Joystick-Ports in die Integer-Variable I.

JOYAA
JOYBA
stellen das Bitmuster nur im Akku bereit.

Die Routinen sind ausgelegt fuer Joysticks mit 4 Himmelsrichtungen und
2 Push Buttons zum Anschluss an die 4 Datenleitungen D0-D3 einer PIO.
Die Bitzuordung zu den Himmelsrichtungen der Sticks ist wie folgt:
Bit 0 = Nord	Bit 1 = Ost	Bit 2 = Sued	Bit 3 = West.
Die Richtung ist aktiviert, wenn das Bit gesetzt ist.
Jeweils benachbarte Richtungen koennen zusammen aktiviert sein.
Der linke Push Button aktiviert Bit 0 und 2, der rechte Bit 1 und 3.
Alle Kombinationen fuehren zu den arithmetischen Summen der Bits,
so dass Integer-Werte von 0 bis 15 als Ausgabe moeglich sind.

-------------------------------------------------------------------------------
