home.social

#zen80 — Public Fediverse posts

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

  1. With Zen80 guaranteed to run on Linux, the next logical step was to try out ZenZX and play some ZX Spectrum stuff. After a little fiddling with GL and Alsa libraries, it compiled right away and ran. Quite smoothly to my surprise!

    #zen80 #zenzx #ZXSpectrum #spectrum #speccy #retrocomputing

  2. zen80 emulating the Z80 on Linux accurately, passing zexall as part of the test suite. ZenZX is next.

    #zen80 #linux #foss #golang #z80

  3. Debugging my macros. The good thing is that after you have some well designed macros, most of the simple text user interface things behave almost like BASIC, or terminal printing in Pascal.

    Also a good chance to dog food myself using the barely improved editor, and trying to make the zenas assembler work and assemble my non-trivial Z80-based text editor. Dog food is good food!
    The only problem I found today was a regression in the vim-like command to jump to a line number. One other thing I noticed is that horizontal scroll doesn't work reliably when you have very long lines that extend beyond the right margin.

    That being said, It's a little miracle I have never seen it crash, not a single time, during actual development work.
    The best of news is that there are not many news on that front!

    #bim #tbim #zenas #z80 #zen80 #zenzx #retrocomputing #ZXSpectrum #speccy #Spectrum

  4. tbim, bim, zenas, zen80

    Yes, of course all of these things can be done mixing and matching disparate tools in some other ways, but as a matter of access and code legibility you will be able to directly examine every single bit of the toolset and toolchain.

    Every single bit traceable, nowhere left for bits to hide. That's something you can't do unless you're a highly sophisticated specialist today.

    #bim #tbim #zenas #zen80 #zenzx #retrocomputing #golang #foss

  5. zenas, zen80, bim and assorted tools

    Things starting to fall into place like Tetris bricks!

    I still can't glue the ZenZX emulator to the text mode editor, but when I decouple the text mode renderer from the editor logic (sometime next year), I should be able to render the editor and other tools using Deluxe UI in a GL-accelerated window, and I should be able to embed ZenZX in a bim pane.

    But essentially everything you see in this screenshot, from tiling manager, to editor, to assembler, to emulator, is one single coherent and consistent codebase (with the sole exception of the Spectrum ROM!)

    Lots of work ahead in 2026!

    Longer term project beyond 2026 will be to get the language ual off the ground and port all these things to ual.

    #bim #tbim #zenzx #zen80 #zenas #foss #golang #retrocomputing #z80

  6. bim and tbim

    • bim is the barely improved editor
    • tbim is a tiling manager

    The tile manager tbim almost works, and bim works save for a few missing functions. The basic Go interfaces for plugging in new viewers are in place, in code. That means that creating new viewers that run inside a pane is substantially easier, and it requires none of the unix tooling glue you typically have to patch together when using tmux with an assortment of other tools.

    The only pane viewers available right now are Text View (with scrollbars! by popular demand!) and Terminal View.
    What comes next is bim integration so that any pane can become a bim editor without launching external processes. This greatly helps resource management in constrained environments (like rpi, routers, phones, etc)

    For the time being, the screenshot shows the tbim tile manager displaying Text View panes, and one pane running a Terminal view with tileless bim running in a separate process on top of it. When tbim and bim are fully integrated, tbim and bim will become one single application and it won't need to launch an external process with a pty to run an external bim, it will all be done internally.

    And the retrocomputing bit? Ah, yes, it can run a zen80-based Z80 for scripting 🙂

    Any questions?

    #bim #tbim #foss #golang #retrocomputing #zen80 #z80

  7. bim editor

    I've just barely improved the barely improved editor to support Z80 assembler syntax. The automatic detector of assembly dialect doesn't always work right though, that's a task pending in the backlog.

    Up next: running zen80 inside the editor.

    #z80 #golang #foss #retrocomputing #bim #zen80 #zenzx

  8. So Wonderful Dizzy (a game for the ZX Spectrum 128k models) is running quite well in 128k mode on ZenZX. One caveat is that thae fast tape loading feature didn't work this time, more debugging is needed. I'm also going to have to compare the quality of music playback taking other emulators as parameters of reference. All in all, a more successful test than I anticipated.

    #ZXSpectrum #Speccy #Spectrum #spectrum128 #Spectrum128k #ZXSpectrum128 #ZXSpectrum128k
    #zenzx #emulator #golang #foss #zen80 #z80 #retrocomputing #retrogaming

  9. The emulator ZenZX has been up past one hour running a modern Speccy game continuously without memory leaks or crashes.

    Go, BubbleBack, go!

    #ZenZX #zen80 #z80 #Spectrum #Speccy #ZXSpectrum #emulator #retrogaming #retrocomputing

  10. zenas Z80 assembler

    Adding translation of UTF-8 string literals for international character sets of well known speccies, cpc, and msx.

    Should probably add blocky characters and other non-alphanumeric glyphs. That will come later.

    #z80 #retrocomputing #ZXSpectrum #tk90x #inves #speccy #spectrum #zenas #zen80 #didaktik #tk95 #cpc #msx

  11. So... I've had this under wraps for months, whilst I've been adding features and ironing out bugs...

    I've already been showing:

    The next logical piece is:

    • zenas: Z80 assembler (WIP)

    zenas is a new Z80 assembler (work in progress) following a simpler design than my earlier attempt. This is designed to work together with zen80 and zenZX, to hot test and benchmark the code the assembler emits

    I'm already seeing some promising results. I think it's a cool feature if your assembler can actually run the code it emits (using zen80) with the potential to verify your object code actually works, and every single cycle is accounted for. I can imagine in the future we can expect to have things like register colouring and other neat features.

    If we consider the zenXX tools together with the tape handling tools, and with the floppy image tools, we're approaching the status of lovely toolset that could one day be quite useful.

    #zen80 #zenzx #zenas #asm #z80 #golang #foss #assembler #retrocomputing

  12. ZenZX tape loading

    PageUp: Zoom In
    (Increments zoom factor)

    PageDown: Zoom Out
    (decrements zoom factor)

    Alt+B / Option+B: toggles visibility of the Spectrum "border"

    (2/3)

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

  13. ZenZX

    ZenZX is a ZX Spectrum Emulator based on the zen80 Z80 emulator, writen in Go

    I'm Improving tape loading support, and demonstrating how screen control keyboard shortcuts still work during tape load. Probably not something that will blow your mind, but I kind of like it. (1/3)

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

  14. ZenZX beeper audio

    Not much to show, and it's not high quality audio but it's pitch perfect and speed perfect, which is hard to get right the first time!

    It may look simple but the differences between the original physical beeper (controlled by a Z80!) and a modern audio synthesis system are so vast it's hard to believe this is even possible.

    #ZenZX #Zen80 #z80 #Spectrum #Speccy #ZXSpectrum #emulation #golang #foss #retrocomputing #retrogaming

  15. We've got stripes! All of them now!

    I actually replicate the pattern until the border is filled vertically.
    Tape loading still doesn't work well for 128k games, which in turn prevents me from hearing much music, which prevents me from improving AY-3-8912 audio playback. I will probably resort to transcribing some music to PLAY commands myself, and trying the old synthesis commands. I can work the fine detail of tape loading at a later time.

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

  16. Please suggest 128k games which aren't too strongly protected (so I can load from .tap) and have good music. If you have a link to download, all the better.
    This will help me appreciate better what needs to be improved with AY chip audio generation.

    Thank you!

    #retrocomputing #ZXSpectrum #Spectrum #speccy #zenzx #zen80 #emulator #golang #foss

  17. Nanananananana Batman

    The .tap I have for this one didn't work in fast mode, but it did work in "accurate" mode. I'm going to try to devise a middle ground mode that might work relatively fast and with reasonable accuracy. This is ongoing work. Anyway, not a big deal because you can always load the .tap file slowly and then save a snapshot. Snapshots always work.

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

  18. 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