Unnützes Wissen (3): Zwiespältiges GETKEY

Nachdem mit dem DATA-Bug und dem LOAD & PEEK-Problem hier zwei Fälle von unnützem Wissen diskutiert wurden, denen man zumindest noch eine klitzekleine Restnützlichkeit attestieren könnte, kann davon beim heutigen Beitrag keine Rede sein. Man muss hier zum besseren Verständnis vorausschicken, dass es das Commodore-BASIC erlaubt, die BASIC-Befehle bei der Eingabe abzukürzen. Dazu wird der Buchstabe (oft ist es der zweite oder dritte), der dem System eine eindeutige Identifizierung des Kommandos erlaubt, „geSHIFTet“ eingetippt. Im Groß-/Kleinschriftmodus sieht das dann z.B. so aus: lI entspricht LIST; renU entspricht RENUMBER und gO entspricht GOTO.

Angeregt durch die Diskussion um den DATA-Bug, hat Hydrophilic im C128-Forum auf Commodore128.org darauf hingewiesen, dass auch zur GETKEY-Anweisung unnützes Wissen existiert. Im C128 System Guide und auch im deutschen C128 Bedienungshandbuch ist für GETKEY getkE als Abkürzung aufgeführt. Das ist nicht die ganze Wahrheit. Hydrophilic offenbarte eine andere Abkürzung: auch gEkE entspricht GETKEY.

Abkürzung für GETKEYWie die nebenstehende Abbildung zeigt, hat er recht. Damit gäbe es zwei mögliche Abkürzungen. Man kann aber genausogut behaupten, es gäbe gar keine. Denn für den BASIC-Interpreter existiert der BASIC-Befehl GETKEY überhaupt nicht!

Man kann GETKEY auch als GET KEY schreiben (was die Abkürzung gEkE bzw. gE kE erklärt). Damit besteht eine gewisse Parallele zu GOTO und GO TO; beide Schreibweisen für den Sprungbefehl sind zulässig. Während jedoch GOTO ein eigenständiger Befehl mit eigenem Token ist, für den es auch eine eigene Abkürzung gibt, gibt es kein Token für GETKEY. Für den Interpreter erscheint GETKEY daher als gespaltene Persönlichkeit mit den Namen GET und KEY und wird mit zwei Token codiert. Dabei ist GET eindeutig das dominante Ego, denn die entsprechende BASIC-ROM-Routine (im C128 ab $5612) behandelt KEY einfach als einen Parameter der GET-Anweisung.

Dieser Beitrag wurde unter C128 veröffentlicht. Setze ein Lesezeichen auf den Permalink.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Time limit is exhausted. Please reload CAPTCHA.