home.social

#z80 — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #z80, aggregated by home.social.

fetched live
  1. zenas v0.8.1 is out

    — a Z80 and Z80N macro assembler in Go that can also execute and test the code it assembles. No third-party assembler dependencies, one static binary.

    Highlights:

    • Closing cross-assembler compatibility gaps for Z80N: an OPT ZXNEXT source directive (0.8.0) lets a file enable Z80N itself — a source written for SNasm's own OPT ZXNEXT line now assembles unchanged — and --zxnext (0.8.1) is now recognised everywhere --next is, matching sjasmplus's own flag spelling
    • Full Z80N (ZX Spectrum Next) instruction set support, cross-validated byte-for-byte against sjasmplus for every documented and undocumented form
    • Built-in assemble-run-assert loop: zenas run executes assembled code in a bundled Z80/Z80N emulator core (zen80), and zenas assert checks the result — Go-test-style .EXPECT/.MATCH directives in *_test.asm files give PASS/FAIL output with no separate emulator or file round-trip needed
    • Broad dialect compatibility with other assemblers' source conventions (pasmo's radix and INCLUDE forms among them)

    Repo:
    github.com/ha1tch/zenas

    Download:
    github.com/ha1tch/zenas/releas

    #ZXSpectrum #retrocomputing #golang #Z80 #speccy #spectrum #spectrumnext #zxspectrumnext

  2. zen80 v0.5.1 is out — the Go Z80 CPU core behind ZenZX.

    Highlights:

    • Full Z80N (ZX Spectrum Next) extended instruction set: all 29 opcodes, opt-in and zero-cost when off. Cross-checked against ZEsarUX and Z80N emulation (CSpect via NextZXOS) where the Next's own documentation left genuine doubt — one carry-flag behaviour turned out to contradict two separate wiki revisions
    • FastMem/FastPort: an optional flat-array fast path alongside the normal Memory/IO interfaces, ~3.6x throughput on memory-heavy workloads, for callers that need to run many instructions fast (e.g. an emulator's tape-loading turbo mode)
    • ULA contention hooks with within-instruction access-position tracking, measured to ~0.33% (memory) / ~0% (I/O) position-error bounds against 4.2M real instructions
    • Three undocumented-behaviour fixes found auditing against real copy-protection code that deliberately probes them: BIT n,(HL)'s X/Y flags, HALT's refresh-register timing, and MEMPTR on conditional jumps/calls
    • Permanent debug hooks (PC, memory writes, port reads) for building cross-emulator trace tooling without patching the core

    github.com/ha1tch/zen80

    #ZXSpectrum #z80 #retrocomputing #colang #speccy #spectrum #foss #spectrumnext #zxspectrumnext

  3. Due to the way the zen80 emulator works (the Z80 emulator I wrote) and because when I started it I aimed for readability of the code and educational value more than raw performance, I've been hitting against a few limitations that seemed somewhat intractable when trying to make ZenZX load fast a good portion of the ZX Spectrum game titles that use a "turbo" copy protection.

    For many titles that don't use that specific type of copy protection, ZenZX could load .tap and .tzx files just fine in "fast" mode, instantly loading and playing a game that used to take 3 or 4 minutes to load from tape. But games like Chase H.Q. and others, especially those which have substantial 128k versions, were a different story.

    The design of zen80 (and ZenZX by extension) doesn't easily allow for dynamic acceleration of the virtual Spectrum's memory access beyond a certain limit. This would have been trivial to solve in C or C++ using a union structure to access memory through different field arrangements, but Go (the language I chose to write zen80 and ZenZX) doesn't admit union structures. (and I could have used Go's unsafe package to implement something equivalent, but that would have defeated the educational purpose of writing an emulator in safe, readable, and educationally useful Go).

    So I was faced with the difficult possibilty of having to substantially redesign the emulator I've been working on for a couple of years.

    Thankfully, that wasn't necessary. I designed an alternative "fast-track" memory that zen80 can use to read from and write to memory and i/o ports, which represents an addition and extension to the existing design, whilst keeping all the existing interfaces the same.

    What good is it to have these extensions if, essentially, the CPU that already exists, and the one that's already wired into the code can't be dynamically accelerated to the maximum? you might ask.

    Well, what it does is that it allows me to execute a second Z80 in parallel, just for the turbo loaders, with very high precision, at very high speed. The maximum speed a modern computer can achieve is potentially thousands of times the speed of an emulated Z80, especially for a Z80 that's running in parallel without need to update the screen.

    So essentially, ZenZX now has a third tape loading mode --tapemode=turbo, in addition to the already existing --tapemode=fast and --tapemode=accurate, with "accurate" being an euphemism for f* slow, identical to the original ZX Spectrum ROM tape loading routine.

    After some minor surgery to the code, a parallel Z80 instance now loads the game in a separate, faster memory, and when it's done loading and decoding whatever it has to do in turbo mode, every new tape block is copied verbatim to the memory of the user-facing emulator that ZenZX is running on the front shop.

    I don't have much evidence to show yet, as I'm ironing out a number of other new wrinkles, trying to deliver a more polished user interface than you have seen in the last week or so. The thing with screenshots when everything goes right is that they look exactly the same as when everything went wrong but you fixed the problem 🤣

    Here they are, for now you have to take my promise that these games actually loaded very fast! 🤣

    #ZXSpectrum #Spectrum #Speccy #retrogaming #retrocomputing #zenzx #emulator #golang #foss #z80

  4. Ah, the Z80—because nothing screams cutting-edge #tech like clinging to a #microprocessor older than disco 💾🕺. #IEEE waxes poetic over this relic as if it’s the Mona Lisa of silicon, perhaps forgetting it's 2023 and not a #history museum tour. 🤦‍♂️
    computer.org/csdl/magazine/mi/ #Z80 #Retro #Nostalgia #HackerNews #ngated

  5. Zenscript is not really a grown-ass language, it's more like a declarative file format inspired by subtitle files, with time-addressed steps expressed in frames, which allows you to perform certain basic scripted functions in the ZenZX emulator.

    For example wait until the machine boots up, then load a binary in memory, then press a key, leave it pressed for the duration of 10 frames, look what a variable holds, and once that variable reaches an expected value, take a screenshot.

    I'm adding to ZenZX the ability to grab a file with symbols from Zenas or Pasmo (.sym). So that's the new thing that the script in the screenshot can do, load symbols, refer to variables, and trigger conditions. The two new keywords are: wait-mem and expect-mem.

    Of course maybe you can do some of the same playing it manually, and using a good debugger. (or in the case of @stevewetherill , watching the screen border flash 🤣 ) but this is better when you need to run automated tests hundreds or thousands of times.

    This is between me and you, but I enjoy doing this a thousand times more than playing any games.

    #zenzx #emulator #z80 #ZXSpectrum #Spectrum #Speccy #retrogaming #retrocomputing #golang #foss

  6. @diyelectromusic What's then the semantic drift of EX AF, AF' ?
    Someone you no longer have a relationship with, twice the intensity?
    🤣

    #z80

  7. The problem with reading Z80 assembly after many decades on the Internet is I keep reading PUSH AF as a really, really emphasized, "yes they really mean it", push operation.

    #RetroComputing #Z80

  8. As I'm getting closer to being done moving into our house (wishful thinking), I intend to get back to coding in the next few weeks.

    I'm wondering whether some folks might be interested in some series of stream-of-consciousness posts about my reasoning for coding. I have a dormant mastodon account on another instance that would be perfect for that.

    #RetroComputing #AmstradCPC #AtariST #Z80 #M68k #DemoScene

  9. Hurrah hurrah, it really is a working RC2014 Mini II Picasso :)

    Didn't work properly with my very ancient FTDI connector for some reason, but seems to be fine with a new one that arrived today.

    The big question now is: what cool thing can I do with this little Z80 based computer. Probably more art than science, which probably leads to thinking about LEDs of course. Perhaps a bit too obvious.

    I don't have any "accessories" for it at this point.

    #rc2014 #z80

  10. I've some offers up on eBay, save a few pounds on some of my hardware for the #SAMCoupe, #ZXSpectrum, #RC2014 & Compatibles, plus my #Chiptune accessories.

    Plus some misc. retro related books and magazine auctions.

    ebay.co.uk/usr/quazar-sam-coup

    #retrocomputing #computing #retrogaming #electronics #z80

  11. #today visited the ARC@KU arcatku.org/event/arc-annual-s #retrogaming #retrocomputing exhibition with many working #Z80 #6502 #68000 etc machines, including the #BBCMicro and #Spectrum48k I had, though not the #MZ80K. Also an #Atari2600 that my brother and I had nearly 50Y ago!

  12. For customers in the USA, the worldwide shipping options I have on my site at 2014.samcoupe.com for the range of #RC2014/#RCbus peripherals I make includes the US tariff charge for items shipping from here (United Kingdom) so that's all prepaid at this end when the parcel ships.

    (Due to all the ongoing uncertainty with Tindie since their abrupt takeover I'm keeping my store there closed for the time being. All items are available direct through my website with payments via PayPal/Card through the buy it now options. Combined shipping can be arrange for 2+ items, please contact me directly and I can calculate that.)

    #electronics #chiptune #Z80 #retrocomputing #computing #hardware

  13. Le Mattel Aquarius est fascinant.
    Techniquement, il n'était pas ridicule : un Z80 à 3,5 MHz, du Microsoft BASIC, des cartouches ROM, des extensions ambitieuses...
    Mais il arrive en 1983 avec une philosophie de 1980.
    L'industrie avance si vite qu'il devient obsolète avant même d'avoir trouvé son public.
    Aujourd'hui, cette courte carrière fait tout son charme.

    As-tu connu ? As-tu pratiqué ?

    A lire : silicium.org/index.php/catalog

    #Aquarius #Mattel #RetroComputing #Z80 #Silicium

  14. BIG 😊🙏 & ❤️ to all our lovely Readers who are starting to share their love for the new issue of FREEZE-ZX.
    Grab your copy from:
    freeze64.com/freeze-zx-issue-4/
    #ZXSpectrum #Z80 #Speccy #GameDev #IndieGames

  15. Le MERA-ELZAB Meritum I arrive en production en Pologne au milieu des années 1980 avec une drôle de mission : proposer un micro-ordinateur local construit autour d’une architecture proche du TRS-80 Model I.

    Son CPU U880 compatible Z80 tourne autour de 2,5 MHz.

    Face au Commodore 64 ou à l’Atari 800XL, cela paraît austère.

    A lire silicium.org/index.php/blog-ca

    #Meritum #MeraElzab #RetroComputing #Z80 #TRS80 #VintageComputing #8bit #Poland #ComputerHistory
    ________________________________________

  16. FREEZE‑ZX 02 and 03 will be back in stock on Monday after months of being snapped up. It’s a small print‑run, so grab your pre‑order now before they disappear again.
    freeze64.com/freeze-zx-issue-2/
    freeze64.com/freeze-zx-issue-3/
    #ZXspectrum #Z80 #Speccy #GameDev #IndieGames

  17. 🟢 New Product In Stock Now...
    3 Slot Expansion Card for the Feersum MicroBeast

    The first piece of hardware specifically for the Feersum MicroBeast, my new 3 Slot Expansion Card is now listed up on my website alongside all the other RC2014/RCbus peripherals I make.
    2014.samcoupe.com

    Plugging into the single slot at the top of the MicroBeast this card then gives you three expansion slots for plugging in all your other compatible cards.

    #Electronics #Retrocomputing #Z80 #RC2014 #RCbus

  18. FREEZE-ZX issue 04 is now available to buy.
    Features a rare interview with Steve Godwin about the development of Slippery Sid and Space Rescue 1 & 2.
    Only a few copies left in stock!
    Grab yours from:
    freeze64.com/freeze-zx-issue-4
    #ZXspectrum #Z80 #Speccy #IndieGames #GameDev