Galaksija BASIC is a
BASIC interpreter originally partly based on code taken from
TRS-80 Level 1 BASIC, which the creator believed to have been a
Microsoft BASIC. However, after extensive modifications to include video generation code (as the
CPU was a major participant to reduce the cost of hardware) and improve the
programming language, what remained from the original is said to be mainly
flow-control and
floating point code. It was fully contained in 4
KB ROM "A" or "1". Additional
ROM "B" or "2" provided more Galaksija BASIC commands, assembler, monitor, etc.
ROM "A" The chip labeled as "A" by the creator of Galaksija,
Voja Antonić was commonly referred to as "ROM 1" or just "ROM". ROM "A" contained
bootstrap code of Galaksija, its control code (rudimentary
operating system), video generation code (as Galaksija did not have advanced video subsystem its
Z80 CPU was responsible even for generating
video signal) and
Galaksija BASIC. Fitting all this functionality in 4 KB of 2732
EPROM required a lot of effort and some sacrifices. For example, some message text areas were also used actual code (e.g. "READY" message) and the number of error messages was reduced to only three ("WHAT?", "HOW?" and "SORRY").
ROM "B" ROM "B" of the Galaksija is a 2732
EPROM chip that contains extensions to the original
Galaksija BASIC available in
base ROM ("A"). It was labeled as "B" by the creator of the Galaksija,
Voja Antonić, but was commonly referred to as "ROM 2". ROM "B" contained added Galaksija BASIC commands and functions (mostly
trigonometric) as well as a
Z80 assembler and a
machine code monitor. This ROM was not required and was an optional upgrade. Although planned on the mainboard, the content of ROM "B" was not automatically initialized during
booting. Instead, users had to execute a Galaksija BASIC command to run a
machine code program from ROM "B" before they can gain additional features. This also meant that even Galaksijas with ROM "B" plugged in can behave entirely as base models. == Character ROM ==