Jump to content

Galaksija (computer)

From Wikipedia, the free encyclopedia
(Redirected from Galaksija Character ROM)

Galaksija
Main board of Galaksija during assembly process
TypeHome computer
Release date1983; 41 years ago (1983)
MediaCompact Cassettes
Operating systemGalaksija BASIC
CPUZilog Z80A @ 3.072 MHz
Memory2–6KB RAM, 4–8KB ROM
Display64x48 monochrome
InputKeyboard
SuccessorGalaksija Plus

The Galaksija (Serbian Cyrillic: Галаксија; Serbian pronunciation: [galǎksija], 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 (Computers in your home, written by Dejan Ristanović) of a popular eponymous science magazine, published late December 1983 in Belgrade, 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.

History

[edit]

In the early eighties, restrictions in SFR Yugoslavia prevented importing computers into the country.[1] At the same time, even the cheapest computers available in the West were nearing average monthly salaries.[1] This meant that only a relative minority of people owned one — mostly a ZX Spectrum or a Commodore 64, though most Yugoslavs were only familiar with a programmable calculator.[2]

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.[3][4] 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.[2] Although using software as opposed to hardware would significantly reduce his design's performance, it also simplified the hardware and reduced its cost.[5]

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.[3] Near the same time that Antonić made his discovery, Dejan Ristanović, a computer programmer and journalist was entrusted with preparing a special edition of the Galaksija magazine that would be focused on home computers.[1] After Ristanović and Antonić met, they decided to collaborate and publish the computer's diagram in a special issue of the magazine entitled Računari u vašoj kući (Computers in your home).[1] It was released late December 1983.[2] The name of the magazine (Galaksija) would become twinned with the name of the computer.[2]

Antonić and Ristanović guesstimated that around a thousand people would try to build the computer by themselves, given that the magazine's circulation was 30,000.[5] Some 8,000 people wound up ordering the build-it-yourself kits from Antonić.[5] This number may in reality be greater if people who did not purchase any kits (including PCB and ROMs) were accounted for.

Components were provided by various manufacturers and suppliers:[6]

Later, the Institute for School Books and Teaching Aids (Serbian: Zavod za udžbenike i nastavna sredstva), together with Elektronika Inženjering, started mass commercial production of Galaksija computers, mainly to be delivered to schools.[7]

Technical specifications

[edit]

BASIC ROMs

[edit]

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.[3] 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"

[edit]

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").[2]

ROM "B"

[edit]

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

[edit]
The full character set, featuring the logo of Elektronika Inženjering

Character ROM 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.

The character encoding is based on ASCII, but has several modifications:

  • There are no lowercase characters (like ASCII-1963)[8][9]
  • Codepoints 91 to 94 (0x5B to 0x5E) represent the Serbian characters Č, Ć, Ž and Š, respectively.[8] The letter "Đ" is not present in the original version, so was commonly substituted with the digraph "DJ".
  • The 64 codepoints from 128 to 191 (0x80 to 0xBF) are the 64 distinct 2×3 matrix blocks.[8]
  • Codepoints 64 (0x40) and 39 (0x27) are used for two-halves of the logo of one of two companies: Voja Antonić's MIPRO (whose logo is a glider from Conway's Game of Life) or Elektronika Inženjering (whose logo is a stylized arrow). This logo is displayed in the "READY" prompt. EPROMs programmed by Antonić at Računari u vašoj kući offices use the MIPRO logo, while EPROMs produced at a factory use the Elektronika inženjering logo.[10]

Each character is represented as a 8×16 matrix of pixels. In this ROM, 8-pixel rows of each character are represented as 8 bits of one byte.[11]

Galaksija character encoding[8]
0 1 2 3 4 5 6 7 8 9 A B C D E F
0x
1x
2x  SP  ! " # $ % & 🢖[a] ( ) * + , - . /
3x 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
4x [a] A B C D E F G H I J K L M N O
5x P Q R S T U V W X Y Z Č Ć Ž Š _
6x
7x
8x NBSP 🬀 🬁 🬂 🬃 🬄 🬅 🬆 🬇 🬈 🬉 🬊 🬋 🬌 🬍 🬎
9x 🬏 🬐 🬑 🬒 🬓 🬔 🬕 🬖 🬗 🬘 🬙 🬚 🬛 🬜 🬝
Ax 🬞 🬟 🬠 🬡 🬢 🬣 🬤 🬥 🬦 🬧 🬨 🬩 🬪 🬫 🬬
Bx 🬭 🬮 🬯 🬰 🬱 🬲 🬳 🬴 🬵 🬶 🬷 🬸 🬹 🬺 🬻
  1. ^ a b Code points 0x27 and 0x40 are two halves of one of two possible corporate logos (Mipro or Elektronika Inženjering). The displayed Unicode characters are approximations of the Elektronika Inženjering logo halves.

"Cassette" port

[edit]

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.

Software sharing via radio

[edit]

In Autumn 1983, Računari's editor contacted Zoran Modli, the DJ of Radio Belgrade 202's Ventilator 202 program, asking him to broadcast software as part of the show.[2] As the Galaksija stored software on data cassette, Modli was able to alert listeners about an upcoming data broadcast, broadcast the data as sound over the regular FM wave and listeners were able to record the data broadcast using home cassette decks and load the software on the Galaksija via the data cassette drive. Ventilator 202 became a hub of software sharing, with home programmers editing previously broadcast software and sending in the edits for future rebroadcast.[1] Over three years Ventilator 202 broadcast 150 pieces of software for the Galaksija, the Spectrum and Commodore 64, including a digital magazine, named Hack News. Modli notes that while much of the software was written for the Ventilator 202 audience by Yugoslavian authors, plenty of those same authors were also cracking, pirating and sharing commercial software via the show.[12]

Design

[edit]

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 component-side connections to be made using wire links.

Galaksija's 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 soldered 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 wire links.

[edit]

See also

[edit]

References

[edit]
  1. ^ a b c d e Eby, Michael (8 February 2020). "The Lost History of Socialism's DIY Computer". Jacobin.
  2. ^ a b c d e f Packwood, Lewis (30 July 2013). "The story of Yugoslavia's DIY computer revolution". Eurogamer.
  3. ^ a b c Antonić, Voja. "1983: Galaksija". Archived from the original on 4 May 2009. Retrieved 17 June 2010.
  4. ^ Packwood, Lewis (24 October 2024). "How one engineer beat the ban on home computers in socialist Yugoslavia". The Guardian. ISSN 0261-3077. Retrieved 25 October 2024.
  5. ^ a b c Alberts, Gerard; Oldenziel, Ruth (2014). Hacking Europe: From Computer Cultures to Demoscenes. Springer. pp. 119–121. ISBN 978-1-44715-493-8.
  6. ^ Laphroaig, Manul (2018). PoC or GTFO, Volume 2. No Starch Press. pp. 98–100. ISBN 978-1-59327-935-6.
  7. ^ Ristanović, Dejan. "Priča o Galaksiji" [The story of the Galaksija]. Dejan Ristanovic.
  8. ^ a b c d Ristanović, Dejan. Uputstvo za upotrebu računar "galaksija" (in Serbian). pp. 5, 18.
  9. ^ Šolc, Tomaž (26 September 2017). "Avian's Blog: Testing Galaksija's memory". Avian's Blog. Tablix. Retrieved 15 November 2023.
  10. ^ Vince, Vlado (18 April 2023). "Making a Galaksija computer FAQ". Vlado Vince.
  11. ^ Vince, Vlado (17 May 2023). "Designing custom characters for the Galaksija". Vlado Vince.
  12. ^ Modli, Zoran. "Ventilator 202". Modli. Zoran Modli. Retrieved 9 December 2022.
[edit]

Articles

[edit]

Presentations

[edit]

Remakes

[edit]

Emulators

[edit]

Online museums

[edit]

Other

[edit]