Galaksija BASIC
Galaksija BASIC was the BASIC interpreter of the Galaksija build-it-yourself home computer from Yugoslavia. While being partially based on code taken from TRS-80 Level 1 BASIC, which the creator believed to have been a Microsoft BASIC, the extensive modifications of Galaksija BASIC—such as to include rudimentary array support, video generation code and generally improvements to the programming language—is said to have left not much more than flow-control and floating point code remaining from the original.
The core implementation of the interpreter was fully contained in the 4 KiB ROM "A" or "1". The computer's original mainboard had a reserved slot for an extension ROM "B" or "2" that added more commands and features such as a built-in Zilog Z80 assembler.ROM "A"/"1" symbols and keywords
The core implementation, in ROM "A" or "1", contained 3 special symbols and 32 keywords:
- ! - begins a comment
- # - Equivalent of standard BASIC DATA statement
- & - prefix for hex numbers
- ARR$ - Allocates an array of strings, like DIM, but can allocate only array with name A$
- BYTE serves as PEEK when used as a function and POKE when used as a command.
- CALL n Calls BASIC subroutine as GOSUB in most other BASICs
- CHR$ converts an ASCII numeric code into a corresponding character
- DOT x, y draws or inspects a pixel at given coordinates.
- DOT * displays the clock or time controlled by content of Y$ variable. Not in standard ROM
- EDIT n causes specified program line to be edited
- ELSE standard part of IF-ELSE construct
- EQ - compare alphanumeric values X$ and Y$
- FOR standard FOR loop
- GOTO standard GOTO command
- HOME equivalent of standard BASIC CLS command - clears the screen
- HOME n protects n characters from the top of the screen from being scrolled away
- IF standard part of IF-ELSE construct
- INPUT user entry of variable
- INT a function that returns the greatest integer value equal to or lesser than n
- KEY test whether a particular keyboard key is pressed
- LIST lists the program. Optional numeric argument specifies the first line number to begin listing with.
- MEM returns memory consumption data '
- NEW clears the current BASIC program
- NEW n - clears BASIC program and moves beginning of BASIC area
- NEXT - standard terminator of FOR loop
- OLD - loads a program from tape
- OLD n - loads program to different address
- PTR - Returns address of the variable
- PRINT - Printing numeric or string expression.
- RETURN - Return from BASIC subroutine
- RND - function that returns a random number between 0 and 1.
- RUN - runs BASIC program. Optional numeric argument specifies the line number to begin execution with.
- SAVE - saves a program to tape. Optional two arguments specify memory range to be saved '.
- STEP - standard part of FOR loop
- STOP stops execution of BASIC program
- TAKE - replacement for READ and RESTORE. If the parameter is variable name, acts as READ, if it is number, acts as RESTORE
- UNDOT x, y "undraws" at specified coordinates
- UNDOT * - Stops the clock, not part of ROM
- USR - Calls machine code subroutine
- WORD - Double byte PEEK and POKE
ROM "B"/"2" additional symbols and keywords
The extended BASIC features, in ROM "B" or "2", contained one extra reserved symbol and 22 extra keywords:
- %
- /LABEL
- ABS
- ARCTG
- COS, COSD
- DEL
- DUMP
- EXP
- INP
- LDUMP
- LLIST
- LN
- LPRINT
- OUT
- PI
- POW
- REN
- SIN, SIND
- SQR
- TG, TGD