Token
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 | ? | ? | ||||
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 | - | ||||
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 |
Verwandte Themen[Bearbeiten | Quelltext bearbeiten]
Simons' Basic
Sonstige BASIC-Erweiterungen
- Exbasic Level II Token
- Laser_BASIC Token
- PLH Token
- Special Basic Token
- Structured BASIC
- Supergrafik Token
Weblinks[Bearbeiten | Quelltext bearbeiten]
Wikipedia: Token |
Wikipedia: Tokenisierung |