Tokeny Atari BASIC

From Atariki

(Różnice między wersjami)
Jump to: navigation, search
Wersja z dnia 23:48, 22 lip 2015
Mono (Dyskusja | wkład)
(Tokeny operatorów, funkcji i zmiennych - lit.)
← Previous diff
Aktualna wersja
KMK (Dyskusja | wkład)

Linia 1: Linia 1:
-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:+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. * 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.

Aktualna wersja

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:

HexDecInstrukcja
$000REM
$011DATA
$022INPUT
$033COLOR
$044LIST
$055ENTER
$066LET
$077IF
$088FOR
$099NEXT
$0a10GOTO
$0b11GO TO
$0c12GOSUB
$0d13TRAP
$0e14BYE
$0f15CONT
$1016COM
$1117CLOSE
$1218CLR
$1319DEG
$1420DIM
$1521END
$1622NEW
$1723OPEN
$1824LOAD
$1925SAVE
$1a26STATUS
$1b27NOTE
$1c28POINT
$1d29XIO
$1e30ON
$1f31POKE
$2032PRINT
$2133RAD
$2234READ
$2335RESTORE
$2436RETURN
$2537RUN
$2638STOP
$2739POP
$2840?
$2941GET
$2a42PUT
$2b43GRAPHICS
$2c44PLOT
$2d45POSITION
$2e46DOS
$2f47DRAWTO
$3048SETCOLOR
$3149LOCATE
$3250SOUND
$3351LPRINT
$3452CSAVE
$3553CLOAD
$3654"domyślne" LET
$3755ERROR- (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.

HexDecOperator lub funkcja
$0e14stała liczbowa
$0f15stała tekstowa
$1016niewykorzystany
$1117niewykorzystany
$1218przecinek
$1319znak $
$1420koniec instrukcji
$1521średnik
$1622koniec linii
$1723GOTO w instrukcji ON
$1824GOSUB w instrukcji ON
$1925TO
$1a26STEP
$1b27THEN
$1c28znak #
$1d29liczbowe "mniejszy lub równy"
$1e30liczbowe "różny"
$1f31liczbowe "większy lub równy"
$2032liczbowe "mniejszy"
$2133liczbowe "większy"
$2234liczbowe "równy"
$2335operator potęgowania ^
$2436operator mnożenia *
$2537operator dodawania +
$2638operator odejmowania -
$2739operator dzielenia
$2840NOT
$2941OR
$2a42AND
$2b43nawias otwierający wyrażenie liczbowe
$2c44nawias zamykający wyrażenie liczbowe
$2d45operator przypisania wartości liczbowej =
$2e46operator przypisania wartości tekstowej =
$2f47tekstowe "mniejszy lub równy"
$3048tekstowe "różny"
$3149tekstowe "większy lub równy"
$3250tekstowe "mniejszy"
$3351tekstowe "większy"
$3452tekstowe "równy"
$3553+ znak liczby
$3654- znak liczby
$3755nawias otwierający indeks w zmiennej tekstowej
$3856nawias otwierający indeks w zmiennej tablicowej
$3957nawias otwierający wymiar zmiennej tablicowej
$3a58nawias otwierający argumenty funkcji
$3b59nawias otwierający wymiar zmiennej tekstowej
$3c60przecinek w zmiennej tablicowej
$3d61STR$
$3e62CHR$
$3f63USR
$4064ASC
$4165VAL
$4266LEN
$4367ADR
$4468ATN
$4569COS
$4670PEEK
$4771SIN
$4872RND
$4973FRE
$4a74EXP
$4b75LOG
$4c76CLOG
$4d77SQR
$4e78SGN
$4f79ABS
$5080INT
$5181PADDLE
$5282STICK
$5383PTRIG
$5484STRIG
Personal tools