GALAKSIJA
The Galaksija (pronounced Galaxiya, meaning Galaxy) was originally
a build-it-yourself computer designed by Voja Antonic. It was featured
in the special edition Racunari u vašoj kuci (Computers in your
home) of a popular science magazine of the same name, published late
December 1983 in Yugoslavia. Kits were available but not required as
it could be built entirely out of standard off-the-shelf parts. It was
later also available in complete form.
HOW IT BECAME
At the time various laws in Yugoslavia prevented importing computers
into the country. At the same time, even the cheapest computers available
on the west were nearing average monthly salaries. This meant that,
regardless of interest, only a relative minority of people owned one
- mostly ZX Spectrum or Commodore 64.
According to his own words, some time in 1983, Voja Antonic, while
vacationing in hotel Teuta in Risan he was reading the application handbook
for CDP1802 CPU and stumbled upon CPU-assisted video generation. Since
CDP1802 was very primitive, he decided that Z80 can do it as well.
Before he returned home, to Belgrade, he already had the conceptual
diagrams of a computer that uses software to generate video picture.
Although significantly reduces computer peformance it also simplifies
the hardware and reduces its cost.
Next step was to find the magazine to publish the diagrams in. Obvious
choice was SAM Magazine published in Zagreb, but due to prior bad experiences
he decided otherwise.
Popular science magazine Galaksija appeared unrelated but, after he
heard that they were working on a special issue dedicated to computers
he found his answer. He proposed publishing entire do-it-yourself diagrams,
instructions, etc to the author of the issue, Dejan Ristanovic. Everything
made its way into the special issue called Racunari u vašoj kuci.
It was released late December 1983, although it was dated January 1984.
They tried to guess the number of Galaksijas that will be built this
way. Their estimates ranged from a hundred to a thousand (a number that
sounded so optimistic it provoked laughter). Actual number built by
"do-it-yourselfers" - was around 8000! This number may in
reallity be greater if people who did not purchase any kits (including
PCB and *ROMs) are accounted for.
IMPACT
Galaksija was almost not comparable by any measure of features to the
commercially available computers at the time. However it may sound -
that was not important. What it did is sparked the minds of many people.
Many (incl. the author of this text) have learned how computers actually
work by looking at Galaksija's schematic diagrams and Voja's great descriptions.
It was a great learning tool. Making a computer yourself boosts confidence
and brings on the challenges of making the best out of it.
Computer's popularity because significant enough that it became commercially
available. Many educational institutions were given some. Although many
of them were not ready for the experience, many others used it as a
great tool to teach computer science (computer architecture and programming)
even in elementary schools (in 1984!).
BASIC in 4 KB ROM
Galaksija has a BASIC interpreter that was originally based on Microsoft
Level 1 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 language, what remained from the original
is said to be mainly flow-control and floating point code.
ROM A BASIC keywords :
-
ARR$(n) - (need details here)
-
BYTE serves as PEEK when used as
a function (e.g. PRINT BYTE(11123)) and POKE when used as a command
(e.g. BYTE 11123,123).
-
CALL n (e.g. CALL 100+4*X)
-
CHR$(n) converts an ASCII numeric
code into a corresponding character (string)
-
DOT x,y draws (command) or inspects
(function) a pixel at given coordinates (0<=x<=63, 0<=y<=47).
-
DOT * displays the clock or time
controlled by content of Y$ variable.
-
EDIT n causes specified program line
to be edited
-
ELSE standard part of IF-ELSE construct
(Galaksija did not use THEN)
-
EQ - (need details here)
-
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
(Galaksija did not use THEN)
-
INPUT
-
INT(n) a function that returns the
greatest integer value equal to or lesser than n
-
KEY(n) 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 consuption data
(need details here)
-
NEW clears the current BASIC program
-
NEW n - (need details here)
-
NEXT - standard terminator of FOR
loop
-
OLD - loads a program from tape
-
OLD n (need details here)
-
PTR
-
PRINT
-
RETURN
-
RND - function (takes no arguments)
that returns a random number between 0 and 1.
-
RUN - runs (executes) 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 (need details here).
-
STEP - standard part of FOR loop
-
STOP stops execution of BASIC program
-
TAKE
-
UNDOT x,y "undraws" (resets)
at specified coordinates (see DOT)
-
UNDOT *
-
USR
-
WORD
-
! - begins a comment (equivalent
of standard BASIC REM command.
-
#
-
& - prefix for HEX numbers
-
Approximatelly 70% of CPU time was used just to generate
video, which made Galaksija relatively slow in normal operation. This
was unacceptable while saving or loading data from the tape so video
generation was disabled during tape operations. There is also a way
to disable (and re-enable) video generation from BASIC when "fast
computation" is required. With video disabled, built-in BASIC
interpeter was in many instances able to outperform interpreters of
other home computers of the time.
-
Galaksija's BASIC has slightly different names for
standard commands (e.g. BYTE instead of PEEK and POKE, OLD instead
of LOAD, etc). This was done to assure that most commands begin with
different letters. Not only this helps the intepreter in recognizing
the command but also allowed all commands to be abbreviated to a single
letter followed by a dot (e.g. "P." instead of "PRINT")
and, thus, take less memory for the same program, albeit with reduced
readability.
-
Galaksija's intepreter can report only a few error
messages - notably "WHAT?" and "HOW?". This made
more ROM space available to code.
-
"READY" prompt (bytes in ROM representing
it) is also used as code in video generation routine.
-
To simplify "do-it-yourself" building and
reduce cost, the Printed circuit board was designed as single-layer
(single-side) board. This resulted in a relatively complicated design
requiring many components-side connections to be made using wires.
-
Among standard ways of distributing software, Galaksija
programs used to be broadcasted over FM Radio "Beograd 202"
in a show Ventilator 202, hosted by Zoran Modli. At 280 bit/s, a mere
2 KiB program would take a whole minute of characteristic noise that
only computer enthusiasts enjoyed.