Tokeny Atari BASIC

Z Atariki mirror
Przejdź do nawigacjiPrzejdź do wyszukiwania

Program w BASIC-u przechowywany jest w pamięci oraz w plikach BAS jako zbiór symboli, tak zwanych "tokenów". Dzielą się one na kilka grup w zależności od położenia w programie. Grupy te to:

  • Numery wierszy programu. Numer oznaczający początek wiersza jest zakodowany w postaci dwubajtowej wartości całkowitej z zakresu od 0 do 32767. Wartość ta znajduje się na początku każdej linii programu. W pozostałych miejscach programu (np. jako numer po instrukcji GOTO) wartość ta zapisana jest w postaci zmiennoprzecinkowej.
  • Offset do następnej linii programu. Jest to bajt występujący zaraz po numerze wiersza.
  • Offset do następnej instrukcji - jest to jeden bajt występujący na początku każdej instrukcji.
  • Tokeny instrukcji
  • Tokeny operatorów i funkcji
  • Tokeny zmiennych

Tokeny instrukcji

Token instrukcji to ośmiobitowa liczba o wartości z zakresu teoretycznie od 0 do 255, w praktyce od 0 do 55; konstrukcja interpretera wyklucza zastosowanie tokenów instrukcji o wartości ponad 127. Ich wartości przedstawia poniższa tabela:

Hex Dec Instrukcja
$00 0 REM
$01 1 DATA
$02 2 INPUT
$03 3 COLOR
$04 4 LIST
$05 5 ENTER
$06 6 LET
$07 7 IF
$08 8 FOR
$09 9 NEXT
$0a 10 GOTO
$0b 11 GO TO
$0c 12 GOSUB
$0d 13 TRAP
$0e 14 BYE
$0f 15 CONT
$10 16 COM
$11 17 CLOSE
$12 18 CLR
$13 19 DEG
$14 20 DIM
$15 21 END
$16 22 NEW
$17 23 OPEN
$18 24 LOAD
$19 25 SAVE
$1a 26 STATUS
$1b 27 NOTE
$1c 28 POINT
$1d 29 XIO
$1e 30 ON
$1f 31 POKE
$20 32 PRINT
$21 33 RAD
$22 34 READ
$23 35 RESTORE
$24 36 RETURN
$25 37 RUN
$26 38 STOP
$27 39 POP
$28 40 ?
$29 41 GET
$2a 42 PUT
$2b 43 GRAPHICS
$2c 44 PLOT
$2d 45 POSITION
$2e 46 DOS
$2f 47 DRAWTO
$30 48 SETCOLOR
$31 49 LOCATE
$32 50 SOUND
$33 51 LPRINT
$34 52 CSAVE
$35 53 CLOAD
$36 54 "domyślne" LET
$37 55 ERROR- (błąd składni)

Tokeny o wartościach wyższych nie są zdefiniowane, napotkanie ich przez interpreter w trakcie wykonywania programu powoduje przeważnie zawieszenie komputera.

Tokeny operatorów, funkcji i zmiennych

Taki token to ośmiobitowa liczba z zakresu od 0 do 255, oznaczająca operator, funkcję lub zmienną. Tokeny operatorów i funkcji mają wartości od 0 do 127 (z czego Atari BASIC używa zakresu od 14 do 84), natomiast tokeny zmiennych - wartości od 128 do 255. Token zmiennej to oczywiście jej numer kolejny w tabeli wartości zmiennych, powiększony o 128. Jest to główny powód, dla którego program w Atari BASIC nie może mieć więcej niż 128 zmiennych.

Hex Dec Operator lub funkcja
$0e 14 stała liczbowa
$0f 15 stała tekstowa
$10 16 niewykorzystany
$11 17 niewykorzystany
$12 18 przecinek
$13 19 znak $
$14 20 koniec instrukcji
$15 21 średnik
$16 22 koniec linii
$17 23 GOTO w instrukcji ON
$18 24 GOSUB w instrukcji ON
$19 25 TO
$1a 26 STEP
$1b 27 THEN
$1c 28 znak #
$1d 29 liczbowe "mniejszy lub równy"
$1e 30 liczbowe "różny"
$1f 31 liczbowe "większy lub równy"
$20 32 liczbowe "mniejszy"
$21 33 liczbowe "większy"
$22 34 liczbowe "równy"
$23 35 operator potęgowania ^
$24 36 operator mnożenia *
$25 37 operator dodawania +
$26 38 operator odejmowania -
$27 39 operator dzielenia
$28 40 NOT
$29 41 OR
$2a 42 AND
$2b 43 nawias otwierający wyrażenie liczbowe
$2c 44 nawias zamykający wyrażenie liczbowe
$2d 45 operator przypisania wartości liczbowej =
$2e 46 operator przypisania wartości tekstowej =
$2f 47 tekstowe "mniejszy lub równy"
$30 48 tekstowe "różny"
$31 49 tekstowe "większy lub równy"
$32 50 tekstowe "mniejszy"
$33 51 tekstowe "większy"
$34 52 tekstowe "równy"
$35 53 + znak liczby
$36 54 - znak liczby
$37 55 nawias otwierający indeks w zmiennej tekstowej
$38 56 nawias otwierający indeks w zmiennej tablicowej
$39 57 nawias otwierający wymiar zmiennej tablicowej
$3a 58 nawias otwierający argumenty funkcji
$3b 59 nawias otwierający wymiar zmiennej tekstowej
$3c 60 przecinek w zmiennej tablicowej
$3d 61 STR$
$3e 62 CHR$
$3f 63 USR
$40 64 ASC
$41 65 VAL
$42 66 LEN
$43 67 ADR
$44 68 ATN
$45 69 COS
$46 70 PEEK
$47 71 SIN
$48 72 RND
$49 73 FRE
$4a 74 EXP
$4b 75 LOG
$4c 76 CLOG
$4d 77 SQR
$4e 78 SGN
$4f 79 ABS
$50 80 INT
$51 81 PADDLE
$52 82 STICK
$53 83 PTRIG
$54 84 STRIG