#z80

River City Random ☑️rivercityrandom@bitbang.social
2025-08-11

We take so much for granted now. In 1982, you would have to fork over the cost of a new Nissan Sentra just to type the same letters you can type now with any e-waste dumpster laptop made in the last 20 years, a $50 inkjet printer, and an office suite you can download for free. But would you look as cool doing it? I would definitely love that #trs80 and the #dotmatrix printer for my collection. #retrocomputers #retrocomputing #radioshack #8bit #z80 #tandy #scripsit

2025-08-11

Bruce Lee RX running on a ZenZX emulator prototype, loaded from .sna file. Flawlessly.

#ZXSpectrum #Spectrum #speccy #retrogaming #retrocomputing #foss #golang #z80 #zenzx #zen80

2025-08-11

I've just uploaded a scan of my (xeroxed) manual for the "C7420 Home Computer Module" to @internetarchive.

The C7420 is a cartridge with CPU and RAM expansion for the Philips () + video game console.

I did not find any manual for that online - neither Enlish nor German. So, here you are:

archive.org/details/C7420-heim

2025-08-11

That wasn't too hard either. Now I'm dealing with tape and floppy access stuff, but for the most part this is working surprisingly well.

I only had to adjust the translation of keypresses, so you can use a PC/Mac keyboard arrows and Tab=Edit and so on, but other than that, surprisingly straightforward when you start with a clean codebase.

#ZXSpectrum #Spectrum #Speccy #retrocomputing #foss #golang #z80

2025-08-10

ZX Spectrum: emulated

To be honest, I thought it was going to be a lot harder, and it would take a lot of debugging to get this done.

But ultimately, I only had to grab parts of the older Spectrum emulator I had started last year, remove the old spaghetti Z80 that didn't work well, and plug the new well-tested zen80.

I would call this a very successful weekend 🙂

#ZXSpectrum #Spectrum #Speccy #Z80 #emulator #golang #foss #zen80 #zenzx #retrogaming #retrocomputing

2025-08-10

zen80 roadmap

Having achieved high quality emulation, I'm moving to draft what comes next
github.com/ha1tch/zen80/blob/m

  • Development so far had focused primarily on two things: accuracy (for an emulator that doesn't want or need to be a clock-exact simulator), and readability (code that can be understood and grown, not optimised too early because that makes extensibility difficult).

  • Up next, I'm devising ways by which we can obtain both, the already existing readability of the code (for educative purposes), and also performance improvements that allow for other features to become possible (leaving more cycles available for host system implementation, like, say a ZX Spectrum).

  • This way, in our next iteration, zen80 aims to become one of the few Z80 emulators that is behaviourally accurate (done!), extensible and legible (already is), but also performant for serious practical use (work is ongoing).

  • I still need to update the README and documentation, I will be doing that soon, as I take a little rest completing some of the other adjacent projects, like the ZXA assembler 🙂

#z80 #emulator #zen80 #ZXSpectrum #Speccy #Spectrum #golang #foss #retrocomputing

2025-08-10

Adding the keyboard input routines to the emulator took a bit more work. Mostly trying to find the correct routines in #FreePascal (KeyPressed and ReadKey). (Read and Readln are both buffered - they read a line and only return when the user hits enter).

#quiche #quichelang #compiler #z80

//Based on CP/M version 2.2

//Waits for a character (and echos it)
[corrupts all]
function C_READ(func:C = 1):A as Char;call $0005;

//Write a character
[corrupts all]
procedure C_WRITE(Ch:E as Char;func:C = 2);call $0005;

//If a character is available returns it, otherwise returns $00
//Operation: $ff - No echo
//           $00 - echo
[corrupts all]
function C_RAWIO(Operation:E = $ff;func:C=6):A as Char;call $0005;

//Tests whether a character is available.
//Returns 0 if available, non zero if not.
[corrupts all]
function C_STAT(func:C = 11): A;call $0005;

var Ch: Char
repeat
  Ch := C_RAWIO
  if Ch <> #0
  begin
    C_WRITE({'You pressed: ',}Ch)
    C_WRITE(' ')
  end
until Ch = 'Z'
Alberto Gonzalez :mastodon:agonzalez
2025-08-10

A breadboard is good for a first prototype, but a custom is much better. 😃
What do you think about my NOP Tester?

2025-08-10

More of our lovely FREEZE-ZX readers sharing their love for the first ever issue 😊🙏❤️
If you haven’t already got yourself a copy, pre-order from:
freeze64.com/freezezx-issue-1
#ZXSpectrum #Speccy #Z80 #Sinclair

2025-08-10

zen80 update x5: ZEXALL is PASS

After successfully passing zexdoc and zexall for the first time, including all undocumented flag behaviours, zen80 is on equal footing with superzazu's and flooh's rZ80's emulation in terms of Z80 behavioural accuracy

Timings, interrupt accuracy, and system mimicking is a whole another story, however. The next task at hand is plugging this new Z80 into the older Spectrum emulator that had a bad hardcoded Z80 in it.

#z80 #Spectrum #ZXSpectrum #Speccy #emulator #foss #golang

2025-08-10

zen80 update x4

The Z80 emulator passes 100% of the unit tests, Spectrum ROM coverage, and ZEXDOC stress tests

Coming up next is preparation of the ZEXALL test, which tests the Z80 implementation against a series of stringent probes that examine the most idiosyncratic quirks, undocumented features, and mindbending side effects known on the Z80.

#z80 #ZXSpectrum #Speccy #Spectrum #emulator #golang #foss #zen80

2025-08-10

zen80 update x3

COVERAGE.md now reflects the implementation of undocumented features, hidden registers, odd Z80 quirks, complete implementation of Z80 interruption modes

The emulator successfully runs both synthetic test suites (ZEXDOC) and real-world software (Spectrum ROMs), demonstrating both theoretical correctness and practical compatibility.

github.com/ha1tch/zen80/blob/m

#ZXSpectrum #Speccy #Spectrum #z80 #emulator #golang #foss

2025-08-10

zen80 update x2:

This is what it does when it runs the ZX Spectrum 128 initialisation process

It ensures that the toastrack's ROMS 0 and 1 are paged, and that we correctly run an extensive coverage of the instruction set using one of the most widely distributed pieces of non-trivial Z80 code.

The ZX Spectrum 128 ROMs don't use the entire instruction set, our stats say that at least the initialisation process covers about 69% of the Z80 instruction set.

#zen80 #Spectrum #Z80 #Speccy #ZXSpectrum #retrocomputing #emulator #golang #foss

2025-08-10

zen80 update: improved tests

Apart from the already substantial unit tests, we now have two additional and rather stringent tests:

  1. This test loads the ZX Spectrum 128 ROMs (0 and 1) and runs that machine's initialisation process. Then it shows a statistical analysis of the instruction coverage that's been executed during rom initialisation. (total percentage of different opcodes executed for each instruction group)

  2. The second big test implements traps as barebones CP/M shims, loads ZEXDOC.COM and runs its extensive stress test (this can be long).

Work is ongoing to support ZEXALL.COM as well, an even more stringent version of zexdoc that also tests undocumented registers and quirks of the Z80, one of the hardest tests known. This will be next, after I'm certain that this passes all ZEXDOC tests without a hitch. So far so good!

#zen80 #emulator #ZXSpectrum #Speccy #Spectrum #golang #foss #z80

2025-08-09

zen80 progress update:

All tests passing, even some of the weird bits. Looking in great shape here, for what unit testing can accomplish, at least.

Up next: load testing roms and compare behaviours with Fuse and other mature emulators.

#ZXSpectrum #Speccy #Spectrum #Z80 #retrocomputing #zen80 #golang

2025-08-09

Thank you to our new FREEZE-ZX readers who have started sharing their love for the first ever issue 😊🙏❤️
If you haven’t already got yourself a copy, pre-order from:
freeze64.com/freezezx-issue-1/
#ZXSpectrum #Speccy #Z80 #Sinclair

2025-08-09

Wrote a bit about reading the date and time from the Spectrum Next's Real Time Clock.

#specnext #zxspectrum #z80 #programming

elite.uk.com/mike/posts/2025-0

2025-08-09

zen80 emulator UPDATE:

Published a detailed implementation status report and instruction set coverage for our Z80 emulator in Go.

github.com/ha1tch/zen80/blob/m

All documented Z80 instructions work correctly. Most undocumented features implemented, with some known gaps: IXH/IXL register access, simplified I/O flags, and a few edge cases in block instructions.

The emulator runs most Z80 software perfectly - it's only software relying on obscure undocumented behaviours that might have issues.
Full instruction-by-instruction breakdown now in the repo, with every opcode mapped to its implementation function and realistic status markers.

#z80 #emulation #retrocomputing #golang #zen80

2025-08-08

Brand new… FREEZE-ZX magazine…
Only 3 copies left from the original batch!
Grab one today from:
freeze64.com/freezezx-issue-1/
More stock coming next week.
#ZXSpectrum #Z80 #Speccy #Sinclair

Client Info

Server: https://mastodon.social
Version: 2025.07
Repository: https://github.com/cyevgeniy/lmst