Open nippur72 opened 4 years ago
Only if it's an integral component of an emulated home computer (because otherwise it's hard to test whether the emulation is somewhat correct), I just looked around a bit, and the only use I've found is as the East German clone UB8563 in this serial I/O module:
http://www.mpm-kc85.de/html/m003_v24.htm
Do you know of a computer which has a Z80 SIO integrated?
not a real home computer of the '80s, there is this DIY project called LM80C which uses the SIO to read from the host PC.
I have written an JavaScript emulator for it (find it here) but it lacks a proper SIO. And since I'm planning to switch using your chips I was wondering about the SIO. BTW the LM80C also uses Z80 CTC and PIO which you already have covered 😄.
I'll look into MAME if I there is an implementation to start with.
BTW, I have your Z80 cpu working in a experimental branch, curiously it's a lot slower than the JavaScript one because it has to go back and forth from WASM to JS on every memory read or I/O. But of course I expect it to be faster when everything will be coded in C.
I know someone who had a NorthStar CPM machine at home in the late 70s. That has an SIO option. http://www.s100computers.com/Hardware%20Index%20Page.htm With the SIO, you can go on to integrate them into the KIO and the Z84C or Z180. The Camputers Lynx has some serial not sure what https://en.wikipedia.org/wiki/Camputers_Lynx or the https://en.wikipedia.org/wiki/Enterprise_(computer)
curiously it's a lot slower than the JavaScript one because it has to go back and forth from WASM to JS on every memory read or I/O
Yes, that's totally expected. Switching between WASM and JS that often isn't a good idea. Even though calling between WASM and JS got a lot faster over time, it's still not that fast :)
For a mixed WASM/JS emulator I think it's best to expose a higher-level function to JS which runs the entire emulated system for one host system frame and only returns to Javascript for "rendering" display and audio and receiving input (or do all of this also within WASM, and only expose something like a "scripting interface" to JS, like starting and stopping the emulation, loading a data file into the emulation, etc....
@nippur72 I really like your JS emulators btw, impressive stuff :)
Impressive work on this, especially the portability. I don't see the SIO much in "home computer" stuff but it comes up often in "vintage" or single-board computer creations, particularly new efforts (Z80 MBC, MembershipCard, RetroBrew Computers, etc.). It's also sometimes paired with the CTC (which is already emulated), with the CTC functioning as a baud rate generator.
I'm hoping to use the CTC in an emulation of a Standard-BUS data acquisition system I have, but having the SIO would be a nice add eventually.
do you have plans for adding the Z80 SIO to the list of emulated chips?