From The Guardian...
"Very few Yugoslavians had access to computers in the early 1980s: they were mostly the preserve of large institutions or companies. Importing home computers like the Commodore 64 was not only expensive, but also legally impossible, thanks to a law that restricted regular citizens from importing individual goods that were worth more than 50 Deutsche Marks (the Commodore 64 cost over 1,000 Deutsche Marks at launch). Even if someone in Yugoslavia could afford the latest home computers, they would have to resort to smuggling.
In 1983, engineer Vojislav "Voja" Antonić was becoming more and more frustrated with the senseless Yugoslavian import laws.
Antonić was pondering this while on holiday with his wife in Risan in Montenegro in 1983. "I was thinking how would it be possible to make the simplest and cheapest possible computer," says Antonić. "As a way to amuse myself in my free time. That's it. Everyone thinks it is an interesting story, but really I was just bored!" He wondered whether it would be possible to make a computer without a graphics chip – or a "video controller" as they were commonly known at the time.
Instead of having a separate graphics chip, Antonić thought he could use part of the CPU to generate a video signal, and then replicate some of the other video functions using software. It would mean sacrificing processing power, but in principle it was possible, and it would make the computer much cheaper."
And the Galaksija (Galaxy) was born.
(Score: 4, Interesting) by looorg on Sunday October 27, @01:04PM (1 child)
I didn't even know about the machine. I was in Yugoslavia on vacation pre-war and I was under the impression that they where a ZX country, like a lot of eastern block countries. They seem to have really enjoyed making Speccy clones. It seems to have a lot of ideas, and components, and such in common with the ZX80, ZX81 and Spectrum such as the choice for a CPU (Z80).
That is not a sentence told often. Not a word used often to describe the speccy.
Still it doesn't look to shabby, for something mid-late 80s. It's not C64 level of graphics but it's fine. There is Tetris and some other games in the emulator, also linked in the article but here again for convenience.
https://galaksija.net/ [galaksija.net]
(Score: 5, Informative) by turgid on Sunday October 27, @01:30PM
That machine used the same trick as the ZX80 and ZX81 for generating the video signal, using the CPU. The ZX80, with its 4k ROM and 1k RAM couldn't generate a TV picture while running code. The ZX81 was an improvement in that it had an 8k ROM with 40-bit floating-point and the ability to generate a TV picture continuously. This slowed down processing significantly. The ZX81 had two modes: SLOW and FAST. In SLOW mode it kept the screen updated. In FAST mode it was like the ZX80 and didn't generate a picture, however, programs ran many times faster. I think the overhead of generating the picture was about 75%. The CPU ran at 3.25MHz.
One of the many improvements of the Spectrum was that the ULA (the ASIC) handled generating the TV picture, so the CPU could be fully used for processing. However, the second 16k of RAM was contended between ULA and CPU because the screen buffer was held there so code in that region ran a bit more slowly. The CPU speed was also slightly faster, at 3.54MHz.
What was disappointing about the Spectrum was that newer models didn't improve the graphics, although they did improve the sound.
I refuse to engage in a battle of wits with an unarmed opponent [wikipedia.org].
(Score: 4, Informative) by Rich on Sunday October 27, @01:31PM (4 children)
Any idea on how the video generation works? There's a 2716 on the address bus, a '166 shifter behind it, and that's it. IIRC the ZX 8x have the CPU slide across synthetic zeroes (which is a NOP) for address generation, but here?! None of that, it seems to be a feature-by-omission.
Here are two pages with more details, but they don't explain the video part:
https://blog.vladovince.com/galaksija/ [vladovince.com]
https://revspace.nl/Galaksija [revspace.nl]
(Score: 2) by JoeMerchant on Sunday October 27, @02:40PM
Atari had fairly good documentation of their GTIA chip. Essentially, you task the CPU to produce the same signals. If you only want monochrome, I believe you can get all the levels you need from two output pins. If you want some grayscale capability you can make a makeshift DAC with resistors on the digital outputs.
🌻🌻 [google.com]
(Score: 3, Interesting) by JoeMerchant on Sunday October 27, @02:46PM (1 child)
I suppose I should add: composite video is a single analog time series signal. The 2d picture is encoded in high amplitude sync pulses and lower amplitude pictures intensity levels between the pulses.
It seems to me that an ordinary CPU from the 80s wouldn't have much capability left over when producing video, but I suppose you could at least get some general purpose cycles accomplished during the blank portions of the frame scan.
🌻🌻 [google.com]
(Score: 1, Informative) by Anonymous Coward on Sunday October 27, @03:05PM
Lancaster's "Cheap Video Cookbook" explains how to do it with a 6502.
As you notice, it takes almost all of the CPU time to do that.
(Score: 3, Informative) by Rich on Monday October 28, @01:10AM
I watched the 2012 29C3 presentation on the machine by Tomaz Solc . They use the refresh counter, interleaved with "useless" single-byte instructions. The missing 8th bit of the Z80 refresh address bit is reconstructed with a bit from the '174 latch. (I think everyone - especially 4164 users - would have been happy if Zilog had eventually added 8 bit refresh to a later stepping.)
And they were SO strapped for ROM space that they dual-used ASCII text as "useless" instructions in the video driver (and complemented those in a way it wouldn't mess up state). They also used a hard-to-layout keyboard matrix that would save a few bytes for decoding.
Impressive minimalism!
(Score: 5, Informative) by Rosco P. Coltrane on Sunday October 27, @03:27PM (2 children)
is Yugoslav, not Yugoslavian.
(Score: 2) by mrpg on Sunday October 27, @07:57PM (1 child)
Good question, I checked, It seems both are correct
https://www.merriam-webster.com/dictionary/yugoslav [merriam-webster.com]
https://en.wikipedia.org/wiki/Yugoslavs [wikipedia.org]
(Score: 3, Insightful) by Rosco P. Coltrane on Sunday October 27, @10:16PM
Well I stand corrected. Thanks!
Although in my defense, I got a bad mark and a stern lesson from the geography teacher at school when I was a kid exactly because I had put Yugoslavian as demonym of Yugoslavia, and I remember it so well that I was sure it was the only one.
Maybe the teacher was wrong, or maybe Yugoslavian wasn't accepted back then, because in fairness, I was a kid when Yugoslavia was still a thing and would still be for many more years :)
(Score: 2) by number11 on Sunday October 27, @05:53PM (1 child)
My first "home computer" ran CP/M. The only graphics was the block graphics you could do with the particular terminal you had attached to it. It worked fine, so long as you were interested in things that could be described by text rather than pictures. I even made a few games that used the ability to print to any random position on the 80x40 grid.
(Score: 2) by turgid on Sunday October 27, @06:10PM
I started out on a ZX81 which was extremely limited. It essentially only had text and some block characters. Still, when I was 8 years old, in BASIC I managed to write myself some games. I even wrote my own Asteroids clone which IIRC used A, V, and the greater than and less than signs for the spaceship and the asterisk for the asteroids. I think I used minus signs or the letter I for the lasers. Man was it slow...
I refuse to engage in a battle of wits with an unarmed opponent [wikipedia.org].