Galaksija BASIC

Galaksija BASIC
Deweloperzy Microsoft , Voja Antonić
Pierwsze wydanie 1983 ; 40 lat temu ( 1983 )
Platforma Galaksija
Typ Microsoft BASIC

Galaksija BASIC był interpreterem języka BASIC dla domowego komputera Galaksija z Jugosławii . Będąc częściowo opartym na kodzie zaczerpniętym z TRS-80 Level 1 BASIC, który twórca uważał za Microsoft BASIC , obszerne modyfikacje Galaksija BASIC - takie jak włączenie podstawowej obsługi tablic , kodu generowania wideo (tak jak zrobił to sam procesor to w przypadku braku dedykowanych obwodów wideo) i ogólnie ulepszenia języka programowania — mówi się, że pozostawiły niewiele więcej niż sterowanie przepływem i kod zmiennoprzecinkowy pozostały z oryginału.

Podstawowa implementacja interpretera była w całości zawarta w pamięci ROM „A” lub „1” o pojemności 4 KiB . Oryginalna płyta główna komputera miała zarezerwowane gniazdo dla rozszerzenia ROM „B” lub „2” , które dodało więcej poleceń i funkcji, takich jak wbudowany asembler Zilog Z80 .

ROM „A”/„1” symbole i słowa kluczowe

Podstawowa implementacja w pamięci ROM „A” lub „1” zawierała 3 specjalne symbole i 32 słowa kluczowe:

!
rozpoczyna komentarz (odpowiednik standardowej komendy BASIC REM)
#
Odpowiednik standardowej instrukcji BASIC DATA
i
przedrostek dla liczb szesnastkowych
ARR$(n)
Przydziela tablicę łańcuchów, jak DIM, ale może przydzielać tylko tablicę o nazwie A$
BYTE
służy jako PEEK gdy jest używany jako funkcja (np. PRINT BYTE(11123)) i POKE , gdy jest używany jako polecenie (np. BYTE 11123,123).
CALL n
Wywołuje podprogram BASIC jako GOSUB w większości innych BASIC-ów (np. CALL 100+4*X)
CHR$(n)
konwertuje kod numeryczny ASCII na odpowiedni znak (łańcuch znaków)
DOT x, y
rysuje (polecenie) lub sprawdza (funkcja) piksel o danych współrzędnych (0<=x<=63, 0<=y<=47).
DOT *
wyświetla zegar lub czas kontrolowany przez zawartość zmiennej Y$. Nie w standardowym ROM
EDIT n
powoduje edycję podanej linii programu
ELSE
standardowa część konstrukcji IF-ELSE (Galaksija nie użyła THEN)
EQ
porównanie wartości alfanumerycznych X$ i Y$
FOR
standard pętla FOR
GOTO
standard GOTO polecenie
HOME
odpowiednik standardowego BASIC Komenda CLS - czyści ekran
HOME n
chroni n znaków z góry ekranu przed przewijaniem
IF
standardowa część konstrukcji IF-ELSE (Galaksija nie użyła THEN)
INPUT
wpis użytkownika zmiennej
INT(n)
funkcja zwracająca największa liczba całkowita równa lub mniejsza od n
KLAWISZ(n)
sprawdza, czy dany klawisz na klawiaturze jest wciśnięty
LISTA
wyświetla program. Opcjonalny argument liczbowy określa numer pierwszego wiersza, od którego ma się rozpocząć wyświetlanie.
MEM
zwraca dane o zużyciu pamięci (potrzebne szczegóły tutaj)
NEW
czyści bieżący program BASIC
NEW n
czyści program BASIC i przesuwa początek obszaru BASIC
NEXT
standardowy terminator pętli FOR
OLD
ładuje program z taśmy
OLD n
ładuje program pod inny adres
PTR
Zwraca adres zmienna
PRINT
Drukowanie wyrażenia numerycznego lub łańcuchowego.
RETURN
Powrót z podprogramu języka BASIC Funkcja
RND
(bez argumentów) zwracająca liczbę losową z zakresu od 0 do 1.
RUN
uruchamia (wykonuje) program w języku BASIC. Opcjonalny argument liczbowy określa numer wiersza, od którego ma się rozpocząć wykonywanie.
SAVE
zapisuje program na taśmie. Opcjonalne dwa argumenty określają zakres pamięci do zapisania (szczegóły są potrzebne tutaj) .
Standardowa część pętli FOR
STEP
STOP
zatrzymuje wykonanie programu BASIC
TAKE
zastępując READ i RESTORE. Jeśli parametrem jest nazwa zmiennej, działa jako READ, jeśli jest liczbą, działa jako RESTORE
UNDOT x, y
„cofa” (resetuje) w określonych współrzędnych (patrz DOT)
UNDOT *
Zatrzymuje zegar, nie jest częścią ROM
USR
Wywołuje kod maszynowy podprogram
WORD
Podwójny bajt PEEK i POKE

ROM „B”/„2” dodatkowe symbole i słowa kluczowe

Rozszerzone funkcje języka BASIC w pamięci ROM „B” lub „2” zawierały jeden dodatkowy zarezerwowany symbol i 22 dodatkowe słowa kluczowe:

  • %
  • / ETYKIETA
  • ABS( x )
  • ARCTG( x )
  • COS( x ) COSD( x )
  • DEL
  • WYSYPISKO
  • EXP( x )
  • INP( x )
  • LDUMP
  • LISTA
  • LN( x )
  • LPRINT
  • NA ZEWNĄTRZ
  • Liczba Pi
  • POW( x , y )
  • REN
  • GRZECH( x ), SIND( x )
  • SQR( x )
  • TG( x ) TGD( x )

Zobacz też

Linki zewnętrzne