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 |