von Markus Rösner Der heutige Kursteil fällt etwas kürzer aus als sonst. Ich hatte ursprünglich in diesem Teil noch die neuen Diskbe- fehle drin, doch dann entdeckte ich, daß im allerersten Teil dieser Serie, den noch der Ulf tippte, diese bereits besprochen wurden, also mußte ich sie wieder herausnehmen. Jetzt aber zu den neuen Sprungebefehl- en: Was sagt euch folgende Programmzeile: "80 GOTO 9000" ? Hä ? Genau, das war die Antwort. Man hat ein älteres Pro- gramm vor sich und da steht folgende Zeile. Aber was ist ab 9000 ? Also Listen abbrechen, nachschauen, was ab 9000 los ist und wieder abbrechen und wieder ab Zeile 80 listen, das ist doch Nervlich ohne Ende. In Basic schon, in Turbo-Basic nicht, denn hier kann man den Unterprogrammen und sogar den Main- programmen Namen geben, das ist was !!! Nehmen wir mal an, daß ab 9000 die Game-Over Zermonie vonstatten geht, dann könnte die Zeile 80 folgender- massen aussehen: 80 GO# OVER oder 80 GO# GAMEOVER . . . 9000 # OVER bzw. 9000 # GAMEOVER Dies kann man auch mit TRAP#, RESTORE# oder ON ... GO# anwenden. Beispiele: 10 TRAP# FEHLER . . . 100 # FEHLER oder 10 RESTORE# ONE . . . 50 # ONE 60 DATA .... oder 10 ON X GO# ONE,TWO Das ist ja alles schön und gut, aber wo bleibt das Gosub, das man ja sehr oft benötigt ? Basic: 10 IF X=1 THEN GOSUB 30 20 END 30 ? "Yeah !!!" 40 RETURN Turbo-Basic: 10 IF X=1 THEN EXEC YEAH 20 END 30 PROC YEAH 40 ? "Yeah !!!" 50 ENDPROC Ok, länger ist's schon, aber dafür übersichtlicher und aussagekräftiger. PROC xx bestimmt den Beginn des Unter- programmes, ENDPROC gibt dessen Ende an und entspricht in Basic dem RETURN- Befehl. Mit EXEC xx wird das Unterpro- gramm aufgrufen. Natürlich darf der Labelname auch einen Unterstrich beinhalten. Das war's dann für heute. Nächstes mal geht's dann um die Besonderheiten sowie um einige Tips und Tricks, die u.a. auch den Compiler betreffen, da dieser nicht ganz fehlerfrei ist. Bis dahin wünsche ich fröhliches arbeiten ! FEHLER IN DER LETZTEN TURBO-BASIC-ECKE -------------------------------------- In der letzten Ausgabe des TB-Kurses hat sich wohl ein kleiner Fehler ein- geschlichen: ... 60 ? "Drücke Space" 70 REPEAT 80 UNTIL PEEK(764)=32 Es stimmt zwar schon, daß der ATASCII- Code für Space 32 ist, leider liefert das Register 764 (bzw. $D209) aber nicht einen ATASCII- Wert, sondern einen internen Tastaturcode, der sich auch nicht umrechnen läßt. Deshalb existiert im Betriebssystem eine Tabelle, die den entsprechenden ATASCII- Wert für den Tastaturcode liefert. Nutzen läßt sich diese aber nur auf den XL/XE- Gerätern, da nur dort ein Pointer auf diese Tabelle vorhanden ist, nämlich der Vektor $79/$7A. Die korrekte Routine lautet: in Turbo-BASIC: ... 60 ? "Drücke Space" 70 REPEAT 80 POKE 712,X 90 X=X+1 100 K=PEEK(764) 110 UNTIL PEEK(DPEEK($79)+K)=32 die Zeilen 100 und 110 können auch zusammengefaßt werden: 100 UNTIL PEEK(DPEEK($79)+PEEK(764))=32 In Assembler: .1 LDY 764 LDA ($79),Y CMP #32 BNE .1 Good Byte Tim-Philipp Müller