The Galaksija (pronounced Galaxiya , meaning Galaxy) was a build-it-yourself computer designed by Voja Antonić. It was featured in the special edition Računari u vašoj kući
[ Računari u vašoj kući] ( Computers in your home, written by Dejan Ristanović) of a popular eponymous science magazine, published late December 1983 in Belgrade, SFRY. 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.
In the early eighties, various laws in Yugoslavia prevented importing computers into the country. At the same time, even the cheapest computers available in the West were nearing average monthly salaries. This meant that regardless of demand for home computers, only a relative minority of people owned one – mostly a ZX Spectrum
or a Commodore 64.
According to his own words,
some time in 1983, Voja Antonić, while vacationing in Hotel Teuta in Risan, was reading the application handbook for the RCA CDP1802 CPU and stumbled upon CPU-assisted video generation. Since the CDP1802 was very primitive, he decided that a Zilog Z80 processor could perform the task as well.
Before he returned home to Belgrade, he already had the conceptual diagrams of a computer that used software to generate a video picture. Although using software as opposed to hardware would significantly reduce his design's performance, it also simplified the hardware and reduced its cost.
His next step was to find a magazine to publish the diagrams in. The obvious choice was SAM Magazine published in Zagreb, but due to prior bad experiences he decided to publish elsewhere.
The popular science magazine Galaksija appeared incompatible but he heard that they were working on a special issue dedicated to computers. He proposed publishing entire do-it-yourself diagrams, instructions, etc. to the author of the issue, Dejan Ristanović. Everything made its way into the special issue called Računari u vašoj kući (Computers in your home). It was released late December 1983, although it was dated January 1984.
They tried to guess the number of Galaksijas that would be built by readers. Their estimates ranged from a hundred to a thousand (a number that sounded so optimistic it provoked laughter). The actual number built by known "do-it-yourselfers" – was around 8000!
This number may in reality be greater if people who did not purchase any kits (including PCB and read-only memory) are accounted for.
Components were provided by various manufacturers and suppliers:
MIPRO and Elektronika Buje from Buje, together with Institut za elektroniku i vakuumsku tehniku (English language Institute for electronics and vacuum technology) delivered PCBs, keyboards and masks,
Mikrotehnika from Graz sent integrated circuits
Voja Antonić personally programmed all
Galaksija collected requisition forms and organized deliveries
Later, Institute for school books and teaching aids together with Elektronika Inženjering started mass commercial production of Galaksija computers, mainly to be delivered to schools.
CPU: Zilog Z80A 3.072 MHz
ROM "A" or "1" – 4 KB (2732 EPROM) contains bootstrap, core control and Galaksija BASIC interpreter code
ROM "B" or "2" – 4 KB ( optional, also 2732 EPROM) – additional Galaksija BASIC commands, assembler, machine code monitor, etc.
Character ROM – 2 KB (2716 EPROM) contains character definitions, characters are 8 x 13 pixels, the block graphics were vertically divided in a 4:5:4 scheme, and horizontally in a 4:4 scheme.
RAM: 2 to 6 KB of 6116 static RAM in base model, expandable to 54 kilobyte
Text mode 32 x 16 characters, monochrome
Pseudographics: 2x3 dot matrix combinations in graphic character subset – 64x48 dots total. More was done using tricks – see video generation.
Sound: None according to specifications, but tape interface was occasionally used as audio output port – like the "EAR" port on ZX Spectrum can be used both as audio and cassette port. See cassette port for details.
Storage media: cassette tape, recording at 280 bit rate rate
I/O ports: 44-pin edge connector with Z80 Bus, tape (DIN connector), monochrome video out (PAL timings, DIN connector), and UHF TV out (RCA connector)
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 control flow
and floating point
code. It was fully contained in 4 kilobyte
ROM "A" or "1". Additional ROM "B" or "2" provided more Galaksija BASIC commands, assembler, monitor, etc.
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 booting
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").
"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 trigonometry) 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 read-only memory
of home computer
Galaksija is a 2716 EPROM
chip that contains graphical definitions of Galaksija's character set. It had no special name and was labeled "2716" after the type of 2 KB EPROM needed.
Galaksija had a slightly modified (localized) ASCII character set:
There were no lowercase characters
Codes 91 to 94 represented Serbian language characters Č, Ć, Ž and Š, respectively. Letter "Đ" was not present in original version and was commonly replaced with "DJ".
It contained 64 pseudo-graphics characters, having different combinations of dots in 2x3 dot matrix.
Character codes 64 and 39 are used for two-halves of the logo of Elektronika Inženjering company (they can be seen in "READY" prompt)
Each character was represented as 8x13 matrix of . In this read-only memory, 8-pixel rows of each character are represented as 8 of one byte.
Galaksija did not have a dedicated video circuitry. Inspired by a CDP 1802 application book,
its Z80A CPU
was directly responsible for modulating the monochrome video signal with a little help of a shift register
. Galaksija's CPU would write one byte
to the shift register, which would, in turn, serialize its 8 bits one by one to the video output.
Since Galaksija had little RAM, a portion of it was taken not to store information for each pixel separately but character codes. CPU then had to look up character definitions in its character definitions ROM to find the values to send to the shift register.
This was the standard operation available in Galaksija's ROM. Some software, however, reportedly took the responsibility for driving the shift register (and thus generating video) and was able to use various tricks to achieve what appears as high-resolution graphics, such as with user defined graphic characters.
It was thus possible for Galaksija with sufficient RAM upgrade (having at least 6144 bytes available for video memory) to achieve 256x208 graphics without any specialized circuitry. Other resolutions were also possible while maintaining only pixel width, by changing the amount of the active area of video picture and/or handling two interlacing video fields separately. Changing the number of active lines would have also altered the CPU usage for video generation and ratio of it available for other use.
Approximately 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, the built-in BASIC interpreter was in many instances able to outperform interpreters of other of the time.
Galaksija used cassette tape
as secondary storage. It featured a 5-pin DIN connector
used to connect the computer to a cassette tape recorder. Tape interface circuitry was rudimentary – other than few elements controlling the levels it was essentially one-bit digital equivalent to the one in the ZX Spectrum
. The input signal was routed to the integrated circuit otherwise responsible for keyboard, so the CPU would "see" the input signal as a series of very fast key presses of varying lengths and gaps between them.
It is normally stated that original Galaksija does not have any dedicated (separate) audio ports and most of the programs were written as silent. It was, however, possible to utilize the cassette tape port as an audio output as well like it is done in ZX Spectrum (its "EAR" connector). The only technical difference between ZX Spectrum and Galaksija in regards to existence of audio is that ZX Spectrum has a built-in beeper, while Galaksija's plans do not include any kind of a speaker.
To simplify "do-it-yourself" building and reduce cost, the printed circuit board was designed as single-layer (one-side) board. This resulted in a relatively complicated design requiring many components-side connections to be made using wires.
Galaksija's computer case was not pre-built. Instead, the guide suggested it to be built out of the printed circuit board material (such as Pertinax) also used for the mainboard. Thus, the top, sides and reinforcements were soldering together to form the "lid". acrylic glass was recommended for the underside. The guide included instructions on cleaning, painting and even decorating the assembled case. The name "GALAKSIJA" and decorative border were to be added using Letraset transfer letter sheets after the first (white) coat of paint but before the second coat of final colour. After the paint dried, transferred decorations were supposed to be scratched off, exposing underlying white paint.
The keyboard is laid out such that keys have their own memory-mapped addresses that, in most cases, follow the same order as ASCII code of the letter on the key. This saved the ROM space by reducing lookup tables but significantly increased the complexity of single-layer keyboard PCB such that it alone required 35 jumpers.
== Gallery ==
Galaksija BASIC – details about Galaksija's BASIC programming language
Galaksija Plus – improved version of Galaksija, announced in Jun/July 1984 (6th) issue of "Računari" magazine (English language: Computers, renamed from "Računari u vašoj kući")
Voja Antonić – the creator of Galaksija
Dejan Ristanović – well known Serbs writer and computer publicist who authored much of the special issue magazine featuring Galaksija
Z80 – Galaksija's CPU
ZX80 - Sinclair ZX80 which predates the Galaksija by 4 years and has a remarkably similar system design including using the Z80A to drive the video output.
Computers in your home – short overview by Dejan Ristanović, the author of Računari u vašoj kući magazine issue, in English language
1983: Galaksija – how it all started, by Galaksija's creator Voja Antonić himself (in Serbian language)
Computer Galaksija – detailed description of computer operation for those planning to build it, as published in the Računari u vašoj kući magazine issue. Written by creator Voja Antonić, in Serbian language.
Uputstvo za upotrebu – complete, original, user manual on-line, in Serbian language.
Magazine Scans – scans of original magazine pages containing schematic diagrams, building and other instructions and programs for Galaksija (text in Serbian language)
Računar Galaksija by Dejan Ristanović, the author of Računari u vašoj kući magazine issue, in Serbian language