
SymbOS: preemptive multitasking OS that can play mp3s, video on 8-bit Z80 PCs - sedachv
http://www.symbos.de/
======
SwellJoe
I never came across any MSX machines when I was a kid and collecting weird
computers. Did they ever make it across the pond to the US market? eBay has a
few at the moment, but all are Japanese imports, I think. Likewise, the
Amstrad seemed to have an interesting history, but I never found one and guess
they never sold in the US.

Not that I need more computers...I live in a travel trailer, and already have
a C64, a modern desktop, a modern laptop, a netbook, two tablets, and probably
other crap I'm not thinking of. But, whenever I see stuff like this, I really
want to tinker with it, on the real hardware (somehow emulation isn't _quite_
the same). I wonder if there are any FPGA recreations of these machines that
would run SymbOS? That's been a subject I've started getting interested in,
since one can have a "real" Amiga, Atari ST, and C64, in a single hardware
package just by loading new images.

Edit: So, I did some googling, and the Replay FPGA computer has begun shipping
to pre-orders, and it currently has support for Amiga and a few others. The
developer seems to be planning support for MSX (as well as the BBC machine,
which was also on my "I wish I could play with one" list). So, the MiST, the
MiniMig, and the Replay are all options for retro computing nerds who want to
not fill their closet with old machinery. That's pretty cool.

[http://www.fpgaarcade.com/platforms/](http://www.fpgaarcade.com/platforms/)

~~~
outworlder
> I never came across any MSX machines when I was a kid and collecting weird
> computers. Did they ever make it across the pond to the US market?

No, they didn't. Despite being a Microsoft standard. They were big in Europe,
Japan and Brazil.

The MSX were wonderful machines. The even had "plug and play" hardware –
cartridges were designed for software, but they could have basically anything.
Companies created disk drive interface, hard drive, lightpen, you name it. And
they would all setup automatically, due to the included ROM.

Also had great audio and video capabilities for the time. Eg. from 1989
(during the IBM PS/2 era, with VGA and the pc speaker for sound)
[https://www.youtube.com/watch?v=gcZJ64PgtgA](https://www.youtube.com/watch?v=gcZJ64PgtgA)
That's for MSX2(which still used the Z-80). An example for the original MSX in
1986:
[https://www.youtube.com/watch?v=sk5C2E90dGY](https://www.youtube.com/watch?v=sk5C2E90dGY)

It is amazing what a <4 Mhz processor can do. It did have a GPU, which helped
due to the sprites (see the zanac example above). However, much later, people
discovered that the GPU was actually a bottleneck and the CPU would have been
able to push pixels (patterns, actually) at a much faster rate if it had
access to the video memory directly.

~~~
boomlinde
I believe that the Yamaha CX5M (an MSX1 fitted with the same FM chip as the
FB-01, marketed as a music workstation) was released in the U.S., and "across
the pond" in general, I think it gained some traction in central and south
america, though I'm not sure if the models used there were actually released
domestically or imported by enthusiasts.

------
josteink
I couldn't even play MP3s on my Amiga 500 without doing seriously degraded
decoding (skipping high-frequency components and reducing playback resolution
from 44kHz to 11kHz).

If someone can make a Z80 play MP3s, in any form, I'm impressed.

~~~
kenz0r
MP3 support requires a decoder card according to the page; I remember running
into the same issues on my 486.

~~~
mhd
Yes, I had a 133-mhz 486 and had comparable or better performance than the
Pentium-60s and 90s, but mp3 was a big exception (at least until someone made
a non-floating-point decoder library). Doing that on a z80 would either mean
some in-name-only z80 contemporary clone or external decode hardware.

Or maybe a Fabrice Bellard project.

~~~
bestham
I remember the lp3 [1], a LPT printer port dongle / sound card. It was a
DSUB-25 parallel port passthrough with a headphone jack on the side. You piped
an undecoded mp3 stream into it via a Winamp plugin and any machine running
Win95 or higher could "play mp3s".

[1]:
[https://web.archive.org/web/20000311130535/http://lp3music.c...](https://web.archive.org/web/20000311130535/http://lp3music.com/)

~~~
mhd
That sounds awesome, like an update to the old Covox Speech Thing. I sometimes
miss my parallel port (or the even weirder BeBox thingamajig).

------
yitchelle
Wow, this project has been going since Nov 2000, so the 15th yr anniversary
just went past. But the genesis is much older. When the release in 2006
occurred, its history mentioned the dream was 20 yrs old.

From an idea to now, an effort that is going for 36 years so far! Incredible
persistency.

------
harel
Where do people find the time to get involved this this? This project is so
impressive I don't even have words for it. As a person who started with a Vic
20 and a former collector of old computers I know how hard that must have been
to do.

------
andyjohnson0
Maybe I'm missing something, but I can't see where it states that SymbOS
provides _preemptive_ multitasking. The facts page [1] states that " _I want
to give everything to SymbOS what a modern OS needs. Real preemptive
Multitasking, a dynamic memory-management for up to 576K and more._ ", but
thats not the same as it actually having it. I can't actually see how
preemption would be possible on a Z80. Have I missed something?

CLiPS (on the same site) appears to support preemption [2], but that requires
a C64. I don't know how that is achieved.

Very impressive work nevertheless.

[1] [http://www.symbos.de/facts.htm](http://www.symbos.de/facts.htm)

[2]
[http://www.symbos.de/mirrors/www.clips64.de/details.htm](http://www.symbos.de/mirrors/www.clips64.de/details.htm)

~~~
pmontra
Page [http://www.symbos.de/facts.htm](http://www.symbos.de/facts.htm), end of
the third paragraph "Real preemptive Multitasking, a dynamic memory-management
for up to 576K and more and a totaly MS-Windows-like GUI are the three most
important things."

I'm also a little puzzled about real preemption on a Z80, but
[http://www.cpcwiki.eu/index.php/SymbOS#Technical_background](http://www.cpcwiki.eu/index.php/SymbOS#Technical_background)
states

"Even the Z80 8-bit CPU is able to run a pre-emptive multitasking environment.
Missing mechanisms like memory protection, which are often called as a
condition for multitasking, are system stability issues only. The MP/M
operating system already proved, that multitasking on Z80 computers is
possible.

While the MOS Technology 6502 can not move the stack, the Z80 can freely
replace it to any position in the memory, which is more or less a condition
for pre-emptive multitasking. The existance of an alternative register set
accelerates the content switching between the tasks dramatically. The
restriction of Z80 systems to a 64 kB address space can be solved with bank
switching. In this way computers like the Amstrad CPC and PCW, MSX, Enterprise
or SAM Coupé are able to access hundred or thousand of kilobytes of memory. "

~~~
andyjohnson0
_Page[http://www.symbos.de/facts.htm](http://www.symbos.de/facts.htm), end of
the third paragraph "Real preemptive Multitasking, a dynamic memory-management
for up to 576K and more and a totaly MS-Windows-like GUI are the three most
important things."_

The previous sentence is " _I want to give everything to SymbOS what a modern
OS needs._ ", so I read that as being a statement of what the developer wants
the OS to have in the future.

Further down the page, in the details section, it states " _Priority based
preemptice [sic] and cooperative multitasking_ " is done. Wikipedia mentions
that a _combination_ of preemptive and cooperative task management is used
[1]. I'm confused.

(And just to be clear: I'm not trying to be negative. I'm very impressed with
the technology and tenacity of the author.)

~~~
jandrese
I'm not sure preemptive multitasking is a good idea for a Z80 anyway. You can
either run one program slowly, or two at a snail's pace.

At least it can address enough memory to make it not a complete waste.

------
agumonkey
After finding about pico8, I got interested in low res, low color depth UX,
this couldn't come at a better time.

Beside the flickering, it's pretty neat.

[https://www.youtube.com/watch?v=2-oBNh0UkQc](https://www.youtube.com/watch?v=2-oBNh0UkQc)

------
synchronise
So they support computers that have a Z80 in them, does that mean that a C128
port is possible in the future?

~~~
doctorshady
Not exactly a Z80 (more of a 8080/Z80 hybrid), but I'd love to see how a
Gameboy port turns out.

------
ctstover
Think of how much more gratifying hacking on this would be than working with
bloat-ware frameworks. Maybe it's time for another buzzword? "dignity driven
development" perhaps? Oh where did it all go so wrong...

