Token

Aus C64-Wiki
Wechseln zu: Navigation, Suche

In der internen Darstellung eines BASIC-Programms werden für die kompaktere Darstellung und schnellere Verarbeitung sogenannte Token (englischer Herkunft, zu deutsch etwa Schlüsselzeichen) statt der Schlüsselwörter verwendet. Im Direktmodus eingegebene BASIC-Schlüsselwörter werden vom BASIC-Interpreter (dem Tokenizer) zunächst im Prozess der Tokenisierung in ein Token umgewandelt. Dabei handelt es sich um ein Byte, das eine dem Befehl entsprechende Zahl zwischen 128-255 speichert (bis Commodore BASIC 4.0, ab Commodore BASIC 7.0 gibt es wegen den umfangreichen BASIC-Befehlsvorrat Zwei-Byte-Tokens).
Durch diesen Mechanismus wird die interne Verarbeitung der Befehle vereinfacht und insbesondere von BASIC-Programmen im Arbeitsspeicher auch weniger Platz verbraucht als es mit ausgeschriebenen Befehlen der Fall wäre (siehe auch BASIC-Speicherbelegung). Dadurch ändern sich unter BASIC 7.0 auch viele Abkürzungen der BASIC-Schlüsselwörter!

Hinweis: Es können nur BASIC-Befehle abgekürzt werden, die in der Token-Liste enthalten sind. Zwar können beliebige BASIC-Befehlsabkürzungen bei der Programmeingabe verwendet werden. Diese werden mit LIST im aufgelisteten BASIC-Programmcode optisch richtig angezeigt, führen aber bei Ausführung mit RUN zu einem Fehlerabbruch mit Meldung ?SYNTAX ERROR!

Ergänzend sind die BASIC-Abkürzungen der Schlüsselwörter aufgeführt.

Token BASIC-Schlüsselwort Abkürzung
Dez Hex Zeichen-
kürzel
Tastenkombination Zeichenkürzel
BASIC 7.0
Tastenkombination
BASIC 7.0
BASIC-Befehle
128 $80 END eN E  SHIFT +N  - -
 
129 $81 FOR FOR-NEXT-Schleife fO F  SHIFT +O  - -
130 $82 NEXT nE N  SHIFT +E  - -
 
131 $83 DATA dA D  SHIFT +A 
132 $84 INPUT# iN I  SHIFT +N 
133 $85 INPUT -
134 $86 DIM dI D  SHIFT +I 
135 $87 READ rE R  SHIFT +E  reA R  E  SHIFT +A 
136 $88 LET lE L  SHIFT +E 
137 $89 GOTO gO G  SHIFT +O 
138 $8a RUN rU R  SHIFT +U 
139 $8b IF -
140 $8c RESTORE reS R  E  SHIFT +S 
141 $8d GOSUB goS G  O  SHIFT +S 
142 $8e RETURN reT R  E  SHIFT +T 
143 $8f REM -
144 $90 STOP sT S  SHIFT +T  stO S  T  SHIFT +O 
145 $91 ON -
146 $92 WAIT wA W  SHIFT +A 
147 $93 LOAD lO L  SHIFT +O 
148 $94 SAVE sA S  SHIFT +A 
149 $95 VERIFY vE V  SHIFT +E 
150 $96 DEF dE D  SHIFT +F 
151 $97 POKE pO P  SHIFT +O  poK P  O  SHIFT +K 
152 $98 PRINT# pR P  SHIFT +R 
153 $99 PRINT ? ? 
154 $9a CONT cO C  SHIFT +O  - -
155 $9b LIST lI L  SHIFT +I 
156 $9c CLR cL C  SHIFT +L 
157 $9d CMD cM C  SHIFT +M 
158 $9e SYS sY S  SHIFT +Y  - -
159 $9f OPEN oP O  SHIFT +P 
160 $a0 CLOSE clO C  L  SHIFT +O 
161 $a1 GET gE G  SHIFT +E 
162 $a2 NEW -
Befehlszusätze und Spezialfunktionen
163 $a3 TAB( tA T  SHIFT +A 
164 $a4 TO -
165 $a5 FN -
166 $a6 SPC( sP S  SHIFT +P  - -
167 $a7 THEN tH T  SHIFT +H 
168 $a8 NOT nO N  SHIFT +O 
169 $a9 STEP stE S  T  SHIFT +E 
Operatoren
170 $aa + -
171 $ab - -
172 $ac * -
173 $ad / -
174 $ae ^ -
175 $af AND aN A  SHIFT +N 
176 $b0 OR -
177 $b1 > -
178 $b2 = -
179 $b3 < -
mathematische und Systemfunktionen
180 $b4 SGN sG S  SHIFT +G 
181 $b5 INT -
182 $b6 ABS aB A  SHIFT +B 
183 $b7 USR uS U  SHIFT +S 
184 $b8 FRE fE F  SHIFT +E 
185 $b9 POS -
186 $ba SQR sQ S  SHIFT +Q 
187 $bb RND rN R  SHIFT +N 
188 $bc LOG lO L  SHIFT +O 
189 $bd EXP eX E  SHIFT +X 
190 $be COS -
191 $bf SIN sI S  SHIFT +I 
192 $c0 TAN -
193 $c1 ATN aT A  SHIFT +T 
194 $c2 PEEK pE P  SHIFT +E  peE P  E  SHIFT +E 
Stringfunktionen
195 $c3 LEN -
196 $c4 STR$ stR S  T  SHIFT +R 
197 $c5 VAL vA V  SHIFT +A 
198 $c6 ASC aS A  SHIFT +S 
199 $c7 CHR$ cH C  SHIFT +H 
200 $c8 LEFT$ leF L  E  SHIFT +F 
201 $c9 RIGHT$ rI R  SHIFT +I 
202 $ca MID$ mI M  SHIFT +I 
Bis hier Commodore BASIC 1.0
Ab hier Commodore BASIC 2.0
203 $cb GO gehört zu GO TO (ab BASIC 7.0 auch zu GO64)
Bis hier Commodore BASIC 2.0
Ab hier Commodore BASIC 3.5
204 $cc RGR
205 $cd RCLR
206 $ce RLUM wurde in BASIC 7.0 entfernt; der Code wurde als Präfix wiederverwendet
207 $cf JOY
208 $d0 RDOT
209 $d1 DEC
210 $d2 HEX$
211 $d3 ERR$
212 $d4 INSTR
213 $d5 ELSE Ergänzung für IF-THEN
Fehlerbehebungsbefehle
214 $d6 RESUME
215 $d7 TRAP
216 $d8 TRON
217 $d9 TROFF
Soundbefehle
218 $da SOUND
219 $db VOL
220 $dc AUTO
Zahlenformatierung
221 $dd PUDEF
Grafikbefehle
222 $de GRAPHIC
223 $df PAINT
224 $e0 CHAR
225 $e1 BOX
226 $e2 CIRCLE
227 $e3 GSHAPE
228 $e4 SSHAPE
229 $e5 DRAW
230 $e6 LOCATE
231 $e7 COLOR
232 $e8 SCNCLR
233 $e9 SCALE
234 $ea HELP
DO-LOOP-Schleife
235 $eb DO
236 $ec LOOP
237 $ed EXIT
DOS-Befehle
238 $ee DIRECTORY
239 $ef DSAVE
240 $f0 DLOAD
241 $f1 HEADER
242 $f2 SCRATCH
243 $f3 COLLECT
244 $f4 COPY
245 $f5 RENAME
246 $f6 BACKUP
Weitere Befehle
247 $f7 DELETE
248 $f8 RENUMBER
249 $f9 KEY
250 $fa MONITOR
251 $fb USING formatierte PRINT-Ausgabe
Bedingungen für DO-LOOP-Schleife
252 $fc UNTIL
253 $fd WHILE
254 $fe Präfix für BASIC 7.0-Token
255 $ff π Zahl Pi
BASIC 7.0-Funktionen mit Präfix-Token 206/$ce
0 $00 aus programmiertechnischen Gründen unbenutzt (ein Nullbyte markiert das Zeilenende)
1 $01 aus programmiertechnischen Gründen unbenutzt
2 $02 POT
3 $03 BUMP
4 $04 PEN
5 $05 RSPPOS
6 $06 RSPRITE
7 $07 RSPCOLOR
8 $08 XOR
9 $09 RWINDOW
10 $0a POINTER
BASIC 7.0-Befehle mit Präfix-Token 254/$fe
0 $00 aus programmiertechnischen Gründen unbenutzt (ein Nullbyte markiert das Zeilenende)
1 $01 aus programmiertechnischen Gründen unbenutzt
2 $02 BANK
3 $03 FILTER
4 $04 PLAY
5 $05 TEMPO
6 $06 MOVSPR
7 $07 SPRITE
8 $08 SPRCOLOR
9 $09 RREG
10 $0a ENVELOPE
11 $0b SLEEP
12 $0c CATALOG
13 $0d DOPEN
14 $0e APPEND
15 $0f DCLOSE
16 $10 BSAVE
17 $11 BLOAD
18 $12 RECORD
19 $13 CONCAT
20 $14 DVERIFY
21 $15 DCLEAR
22 $16 SPRSAV
23 $17 COLLISION
24 $18 BEGIN
25 $19 BEND
26 $1a WINDOW
27 $1b BOOT
28 $1c WIDTH
29 $1d SPRDEF
30 $1e (QUIT)
31 $1f STASH
32 $20 aus programmiertechnischen Gründen unbenutzt (Leerzeichen, wird überlesen)
33 $21 FETCH
34 $22 aus programmiertechnischen Gründen unbenutzt (Gänsefüßchen, hat Sonderbedeutung)
35 $23 SWAP
36 $24 (OFF)
37 $25 FAST
38 $26 SLOW


Weblinks[Bearbeiten]

WP-W11.png Wikipedia: Token
WP-W11.png Wikipedia: Tokenisierung