Line-A-Funktionen

Diese Grafik-Routinen werden in sehr eleganter Weise aufgerufen.
Die Software-Entwickler haben sich die Tatsache zunutze gemacht,
daß es im 68000 zwei Gruppen von Opcodes gibt, die vom 68000
nicht 'verstanden' werden und einen Trap, also einen Software-
Interrupt auslösen, wenn sie in einem Programm auftreten. Es
sind dies die beiden Gruppen von Opcodes, die mit $Axxx und $Fxxx
beginnen. Im ATARI ST wird der Trap der $Axxx-Opcodes genutzt,
um die Grafik-Routinen anzusprechen. Dazu überprüft der Trap-
Handler, also das durch den Trap aufgerufene Programm, welchen
Wert das unterste Byte des 'Befehls' hat. Hier sind Werte zwi-
schen Null und $F zugelassen. Damit ergeben sich insgesamt 16
Grafikroutinen:

	$A000	Adressen der benötigten Variablenbereiche ermitteln
	$A001	Punkt auf dem Bildschirm setzen
	$A002	Farbe eines Bildschirmpunktes ermitteln
	$A003	Linie auf dem Bildschirm ziehen
	$A004	horizontale Linie ziehen (sehr schnell!)
	$A005	Rechteck mit Farbe füllen
	$A006	Vieleck Zeile nach Zeile füllen
	$A007	Bit Block Transfer
	$A008	Text Block Transfer
	$A009	Maus-Cursor einschalten
	$A00A	Maus-Cursor ausschalten
	$A00B	Maus-Cursor-Form ändern
	$A00C	Sprite löschen
	$A00D	Sprite einschalten
	$A00E	Raster Form kopieren
	$A00F	Contour Fill (Flood Fill)

Diese Routinen stellen quasi das Grundgerüst, den hardware-
abhängigen Teil des ▌GEM▌..\GEM▌ dar. Alle Grafik- und Textausgaben des
▌GEM▌..\GEM▌ werden über die Routinen der $Axxx-Opcodes ausgeführt.
Besonders für Spiele lassen sich die Line-A-Opcodes vorteil-
haft einsetzen. Hier werden Windows ja nur in den seltensten
Fällen benötigt. Ein weiterer wesentlicher Punkt ist die Ge-
schwindigkeit der Line-A-Befehle. Die direkte Nutzung der
Grafikroutinen ist deutlich schneller, als wenn die Ausgaben
über das ▌GEM▌..\GEM▌ vorgenommen würden.

Hinweis: Die Line-A-Funktionen werden nur in den ST-Standard-
	 Auflösungen voll unterstützt.
