Die Tastaturcodes des ST

Normale Eingaberoutinen (Read, Input, ...), egal welche Sprache, liefern meist nur den ASCII-Code des eingegebenen Zeichens. Beim ST ist jeder Taste allerdings ein weiterer Code zugeteilt, der SCAN-Code. Mit ihm kommt man auch an die Funk-tions- und andere Sondertasten heran, die keinem ASCII-Zeichen entsprechen.

Dazu ist im Betriebssystem eine Routine enthalten, die dem Anwender diese beiden Codes liefert. Diese Funktion (‘GEMDOS(l)’) trägt den Namen CO-NIN und ist durch den entsprechenden GEMDOS-Aufruf(Trap #1) erreichbar. Zurück bekommt man einen 16 Bit Wert, der in den oberen 8 Bit den SCAN-Code und in den unteren 8 Bit den ASCII-Code der gedrückten Tasten enthält. Der Aufruf dieser GEMDOS-Funktion ist eigentlich in allen Programmiersprachen (z. B. C, Pascal, Modula) und sogar in Basic kein Problem, zumindest in GfA- und Omikron-Basic.

Das Beispielprogramm wurde in GfA-Basic geschrieben und zeigt in einfacher Weise, wie man die Funktionstasten sowie die HELP und UNDO-Tasten abfragt. Die Abfragefunktion selbst wurde nicht durch CONIN, sondern über den ON MENU Befehl realisiert. Dieser ermöglicht eine komfortable Programmsteuerung, wie sie bisher in Basic unmöglich war. Er sorgt dafür, daß bei einem entsprechenden Ereignis, also in diesem Fall bei einer gedrückten Taste, zur Prozedur Tastenmenu verzweigt wird, wo die Auswertung erfolgt.

Der Tastenwert, also die 16 Bit, steht dort in der Variablen MENU(14) zur Verfügung. Aus dieser Zahl erhält man durch UND-Verknüpfen dieses Wertes mit 255 den ASCII-Code. Den SCAN-Code hingegen kann man durch

Teilen des 16-Bit-Wertes durch 256 ausfiltern. Die daraus entstehenden Zahlen stimmen mit der Tabelle überein.

Viel Erfolg beim Experimentieren.

	' Programm Tastenbelegung
	'
	'
	On Menu Key Gosub Tastenmenu
	'
	Do
		On Menu
	Loop
	'
	'
	Procedure Tastenmenu 
		' SCAN-Code sieben 
		Taste=Menu(14) Div 256 
		Print Hex$(Taste)''
		On Taste-&H3A Gosub F1,F2
		On Taste—&H60 Gosub Undo,Help
	Return
	'
	Procedure F1
		Alert 1,"Hier spricht F1",1," Toll ",Dum
	Return
	'
	Procedure F2
		Alert 1,"F2 hat auch|was zu sagen",1,"Na sowas",Dum
	Return
	'
	Procedure Undo
		Alert 1." Undo | ist auch | möglich",1," Wow !!", Dum
	Return
	'
	Procedure Help
		Alert 1." |Hilfe gibt's nicht",1,"Schade",Dum
	Return
Die Tastaturcodes


Aus: ST-Computer 11 / 1986, Seite 84

Links

Copyright-Bestimmungen: siehe Über diese Seite