home.social

#zx81 — Public Fediverse posts

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

  1. Work has begun on FREEZE-ZX issue 04.
    We are going right back to the very early years of the #ZXSpectrum and chatting with someone who produced #ZX81 games before moving on to the #Speccy.
    It’s going to be another corker of an issue!
    More details soon.
    freeze64.com/freeze-zx/

  2. I have "ported" the SDL-based ZX81 emulator sz81 to macOS git.sr.ht/~drj/sz81

    This is a fork of the Sourceforge version; downloads from which give every impression of being a wretched hive of scum and villainy.

    In what i suspect has been an increasing trend over the last 40 years, the ancient code did something, a strcpy onto itself, which was Undefined Behaviour in 1990, actually harmless for most of the time it has been compiled; then, when the boffins at Apple decide to detect and trap the instances of UB that they can in the C runtime, it actually crashes on modern C stacks.

    #ZX81

  3. @neil
    16k, with blu-tak to stop it wobbling off and losing everything

    #zx81 #sinclair

  4. Tested various micros running this FLOATING POINT program. It derives Pi to 20 decimal places. Interesting stats.

    1 N=20: L=INT(10*N/3): DIM A(255): Z$="000000":T$="999999"
    2 FOR I=1 TO L: A(I)=2: NEXT I: M=0: P=0: FOR J=1 TO N: Q=0: K=2*L+1
    3 FOR I=L TO 1 STEP -1: K=K-2: X=10*A(I)+Q*I: Q=INT(X/K): A(I)=X-Q*K: NEXT I
    4 Y =INT(Q/10): A(1)=Q-10*Y: Q=Y: IF Q=9 THEN LET M=M+1: GOTO 7
    5 IF Q=10 THEN PRINT STR$(P+1);LEFT$(Z$,M);: P=0: M=0: GOTO 7
    6 PRINT STR$(P);LEFT$(T$,M);: P=Q: M=0
    7 NEXT J:PRINT STR$(P)

    #RC2014 : 14 (thank you JonV)
    #BBCMicro : 19
    #AmstradCPC : 22 (thank you Devlin)
    #AmstradPCW : 23 (thank you Pete)
    #AcornElectron : 25
    #C128 : 27 (fast mode - thank you Jonas H)
    #LuxorABC80 : 29 (thank you Erik)
    #SharpMZ700 : 32 (thank you Tim Holyoake)
    #VIC20 : 36
    #AcornAtom : 37
    #AppleII : 38 (thank you Jeroen)
    #TRS80CoCo : 42 (thank you Chip)
    #Atari800 : 42 (thank you Mark Elliott)
    #CBMPET : 43
    #C64 : 43
    #Dragon32 : 44
    #SharpMZ80K : 45 (thank you Tim Holyoake)
    #C16 : 46
    #Altair8800 : 52
    #MSX : 53 (thank you Pixel Purrito)
    #C128 : 56 (default "mode")
    #ZX80 : 57
    #ZXSpectrum : 68 (thank you Adam)
    #SharpPC1500A : 167 (thank you Karttu)
    #ZX81 : 213 (native slow mode)
    #SharpPC1245 : 405 (thank you Karttu)

    Edit: now ordered (seconds)

  5. Tested various micros running this FLOATING POINT program. It derives Pi to 20 decimal places. Interesting stats.

    1 N=20: L=INT(10*N/3): DIM A(255): Z$="000000":T$="999999"
    2 FOR I=1 TO L: A(I)=2: NEXT I: M=0: P=0: FOR J=1 TO N: Q=0: K=2*L+1
    3 FOR I=L TO 1 STEP -1: K=K-2: X=10*A(I)+Q*I: Q=INT(X/K): A(I)=X-Q*K: NEXT I
    4 Y =INT(Q/10): A(1)=Q-10*Y: Q=Y: IF Q=9 THEN LET M=M+1: GOTO 7
    5 IF Q=10 THEN PRINT STR$(P+1);LEFT$(Z$,M);: P=0: M=0: GOTO 7
    6 PRINT STR$(P);LEFT$(T$,M);: P=Q: M=0
    7 NEXT J:PRINT STR$(P)

    #RC2014 : 14 (thank you JonV)
    #BBCMicro : 19
    #AmstradCPC : 22 (thank you Devlin)
    #AmstradPCW : 23 (thank you Pete)
    #AcornElectron : 25
    #C128 : 27 (fast mode - thank you Jonas H)
    #LuxorABC80 : 29 (thank you Erik)
    #SharpMZ700 : 32 (thank you Tim Holyoake)
    #VIC20 : 36
    #AcornAtom : 37
    #AppleII : 38 (thank you Jeroen)
    #TRS80CoCo : 42 (thank you Chip)
    #Atari800 : 42 (thank you Mark Elliott)
    #CBMPET : 43
    #C64 : 43
    #Dragon32 : 44
    #SharpMZ80K : 45 (thank you Tim Holyoake)
    #C16 : 46
    #Altair8800 : 52
    #MSX : 53 (thank you Pixel Purrito)
    #C128 : 56 (default "mode")
    #ZX80 : 57
    #ZXSpectrum : 68 (thank you Adam)
    #SharpPC1500A : 167 (thank you Karttu)
    #ZX81 : 213 (native slow mode)
    #SharpPC1245 : 405 (thank you Karttu)

    Edit: now ordered (seconds)

  6. Tested various micros running this FLOATING POINT program. It derives Pi to 20 decimal places. Interesting stats.

    1 N=20: L=INT(10*N/3): DIM A(255): Z$="000000":T$="999999"
    2 FOR I=1 TO L: A(I)=2: NEXT I: M=0: P=0: FOR J=1 TO N: Q=0: K=2*L+1
    3 FOR I=L TO 1 STEP -1: K=K-2: X=10*A(I)+Q*I: Q=INT(X/K): A(I)=X-Q*K: NEXT I
    4 Y =INT(Q/10): A(1)=Q-10*Y: Q=Y: IF Q=9 THEN LET M=M+1: GOTO 7
    5 IF Q=10 THEN PRINT STR$(P+1);LEFT$(Z$,M);: P=0: M=0: GOTO 7
    6 PRINT STR$(P);LEFT$(T$,M);: P=Q: M=0
    7 NEXT J:PRINT STR$(P)

    #RC2014 : 14 (thank you JonV)
    #BBCMicro : 19
    #AmstradCPC : 22 (thank you Devlin)
    #AmstradPCW : 23 (thank you Pete)
    #AcornElectron : 25
    #C128 : 27 (fast mode - thank you Jonas H)
    #LuxorABC80 : 29 (thank you Erik)
    #SharpMZ700 : 32 (thank you Tim Holyoake)
    #VIC20 : 36
    #AcornAtom : 37
    #AppleII : 38 (thank you Jeroen)
    #TRS80CoCo : 42 (thank you Chip)
    #Atari800 : 42 (thank you Mark Elliott)
    #CBMPET : 43
    #C64 : 43
    #Dragon32 : 44
    #SharpMZ80K : 45 (thank you Tim Holyoake)
    #C16 : 46
    #Altair8800 : 52
    #MSX : 53 (thank you Pixel Purrito)
    #C128 : 56 (default "mode")
    #ZX80 : 57
    #ZXSpectrum : 68 (thank you Adam)
    #SharpPC1500A : 167 (thank you Karttu)
    #ZX81 : 213 (native slow mode)
    #SharpPC1245 : 405 (thank you Karttu)

    Edit: now ordered (seconds)

  7. Tested various micros running this FLOATING POINT program. It derives Pi to 20 decimal places. Interesting stats.

    1 N=20: L=INT(10*N/3): DIM A(255): Z$="000000":T$="999999"
    2 FOR I=1 TO L: A(I)=2: NEXT I: M=0: P=0: FOR J=1 TO N: Q=0: K=2*L+1
    3 FOR I=L TO 1 STEP -1: K=K-2: X=10*A(I)+Q*I: Q=INT(X/K): A(I)=X-Q*K: NEXT I
    4 Y =INT(Q/10): A(1)=Q-10*Y: Q=Y: IF Q=9 THEN LET M=M+1: GOTO 7
    5 IF Q=10 THEN PRINT STR$(P+1);LEFT$(Z$,M);: P=0: M=0: GOTO 7
    6 PRINT STR$(P);LEFT$(T$,M);: P=Q: M=0
    7 NEXT J:PRINT STR$(P)

    #RC2014 : 14 (thank you JonV)
    #BBCMicro : 19
    #AmstradCPC : 22 (thank you Devlin)
    #AmstradPCW : 23 (thank you Pete)
    #AcornElectron : 25
    #C128 : 27 (fast mode - thank you Jonas H)
    #LuxorABC80 : 29 (thank you Erik)
    #SharpMZ700 : 32 (thank you Tim Holyoake)
    #VIC20 : 36
    #AcornAtom : 37
    #AppleII : 38 (thank you Jeroen)
    #TRS80CoCo : 42 (thank you Chip)
    #Atari800 : 42 (thank you Mark Elliott)
    #CBMPET : 43
    #C64 : 43
    #Dragon32 : 44
    #SharpMZ80K : 45 (thank you Tim Holyoake)
    #C16 : 46
    #Altair8800 : 52
    #MSX : 53 (thank you Pixel Purrito)
    #C128 : 56 (default "mode")
    #ZX80 : 57
    #ZXSpectrum : 68 (thank you Adam)
    #SharpPC1500A : 167 (thank you Karttu)
    #ZX81 : 213 (native slow mode)
    #SharpPC1245 : 405 (thank you Karttu)

    Edit: now ordered (seconds)

  8. Tested various micros running this FLOATING POINT program. It derives Pi to 20 decimal places. Interesting stats.

    1 N=20: L=INT(10*N/3): DIM A(255): Z$="000000":T$="999999"
    2 FOR I=1 TO L: A(I)=2: NEXT I: M=0: P=0: FOR J=1 TO N: Q=0: K=2*L+1
    3 FOR I=L TO 1 STEP -1: K=K-2: X=10*A(I)+Q*I: Q=INT(X/K): A(I)=X-Q*K: NEXT I
    4 Y =INT(Q/10): A(1)=Q-10*Y: Q=Y: IF Q=9 THEN LET M=M+1: GOTO 7
    5 IF Q=10 THEN PRINT STR$(P+1);LEFT$(Z$,M);: P=0: M=0: GOTO 7
    6 PRINT STR$(P);LEFT$(T$,M);: P=Q: M=0
    7 NEXT J:PRINT STR$(P)

    #RC2014 : 14 (thank you JonV)
    #BBCMicro : 19
    #AmstradCPC : 22 (thank you Devlin)
    #AmstradPCW : 23 (thank you Pete)
    #AcornElectron : 25
    #C128 : 27 (fast mode - thank you Jonas H)
    #LuxorABC80 : 29 (thank you Erik)
    #SharpMZ700 : 32 (thank you Tim Holyoake)
    #VIC20 : 36
    #AcornAtom : 37
    #AppleII : 38 (thank you Jeroen)
    #TRS80CoCo : 42 (thank you Chip)
    #Atari800 : 42 (thank you Mark Elliott)
    #CBMPET : 43
    #C64 : 43
    #Dragon32 : 44
    #SharpMZ80K : 45 (thank you Tim Holyoake)
    #C16 : 46
    #Altair8800 : 52
    #MSX : 53 (thank you Pixel Purrito)
    #C128 : 56 (default "mode")
    #ZX80 : 57
    #ZXSpectrum : 68 (thank you Adam)
    #SharpPC1500A : 167 (thank you Karttu)
    #ZX81 : 213 (native slow mode)
    #SharpPC1245 : 405 (thank you Karttu)

    Edit: now ordered (seconds)

  9. #ZX81 And now we can fly 🚀, and crash into stuff. All coming along nicely.

  10. Renewed interest in my adventures with 1K ZX Chess for the #Sinclair #ZX81

    Includes:
    * emulation
    * rebuilds
    * CYD
    * full source explanations
    * fun! (+)

    hackaday.com/2026/04/03/for-su

    + fun not guaranteed

  11. Also on the ZX Chess front, I did a complete breakdown of the game by creating a Z80 disassembly, understanding it, commenting it, and then creating a rebuildable version. (I also found a way to save 3 bytes!)

    I won't spoil all the tricks here, but imagine my smile when I realised why the look-up movement table for the king was being purposefully ordered so it could be re-used for the queen, rooks, bishops, and (er) black pawns!

    github.com/MarquisdeGeek/1kzxc

    #sinclair #chess #zx81 #programming

  12. Did you know that the first Dinamic game ever was coded on a 1K #zx81? It was GT Cars.

    Video in the original X post:
    x.com/i/status/202960858929212

    #zxspectrum #retrogaming

  13. I don't know why I felt it was important for me to implement RLE graphics decoding in BASIC on a ZX81 today, but here it is:

    #RetroComputing #zx81 #basic

  14. Given the ZX81 anniversary, I'll re-up my least popular blog post from last year, Sinclair 4K BASIC for the ZX80: troypress.com/sinclair-4k-basi #ZX81 #ZX80 #retrocomputing #BASIC

  15. RE: famichiki.jp/@tsturm/116179336

    Mijn eerste. En niet lang daarna werd ik op de HCC usergroup bijna gecancelled omdat ik van 1K naar 16K had ge-upgrade. Een doorn in het oog van de puristen...

    Zo'n leuke homecomputer, veel plezier mee gehad. Uiteindelijk aan een neefje gegeven omdat ik een Sharp MZ700 ging kopen.

    #homecomputer #zx81 #sinclair

  16. Another late #Hackster round-up today, and I'm still waiting for two pieces to go live - but let's see what's already up for now.

    First, it's a very special day today: the Sinclair #ZX81's 45th birthday. I've written a little potted history here, digging into the reference books in the office library - and decorated with pics of my very own ZX81, which I hand-soldered from the cheapskate kit edition.

    hackster.io/news/microcomputin

    #Technology #News #VintageComputing #RetroComputing #ComputerHistory

  17. Wow the #ZX81 is 45 years old today! What a ride.

  18. Forty-five years ago today, Clive Sinclair introduced the ZX81. It wasn’t the first computer that I’d used, but it was the first that I could call my own.

    I had neither the skill nor the coordination to build the kit, but thankfully my dad had plenty of both. He even modified the RF modulator so that I could use a black-and-white monitor that I’d bought at a swap meet.

    Thanks for this computer, Sir Clive. And for the everything else, Dad.

    #Sinclair #ZX81 #SinclairZX81

    en.wikipedia.org/wiki/ZX81

  19. #OnThisDay Samuel Colt patented the first production-model revolver, the .34-caliber (1836).

    George Westinghouse patented the air #Brake (1868).

    The #ZX81, a pioneering British home #Computer, was launched by Sinclair Research (1981).

    Birth Anniversary of Gerardus Mercator (1512) - most renowned for creating the 1569 world map based on a new projection.

    knowledgezone.co.in/news

  20. New "glitch" mode on my game-in-progress. It's a ZX81, so it's not really possible to flashing rainbow spam of CGA mode: merveilles.town/@voxel/1159885

    #Glitch #ZX81

  21. The ZX81 character set is objectively the best because A to Z immediately follow on from 0 to 9. 0 has code 28; A has code 38 (unlike ASCII where there is a gap of 7 codes: 0 has code 0x30, A has code 0x41). This means that to convert from 0 to 15 to a single hex digit, we can do CHR$(28+H), where H is the digit we are converting. If we need the most significant digit of a two-digit hexadecimal number we can do CHR$(28+INT(H/16)). But. Because CHR$ rounds its input, we can remove the INT: CHR$(28+H/16). But. Mysteriously INT is mathematical floor, whereas CHR$ rounds to nearest (and 0.5 goes up). So CHR$(28+H/16) is wrong when the least sig digit is 8 to F. But can be corrected with: CHR$(27.5+H/16). Haha.
    (which is the code i used).
    #ZX81 #Hexadecimal

  22. An AI did not write this 1,000 word commentary on the ZX81 keyboard scanning routine. I did: drj11.github.io/2026-02-10/zx8

    It includes what is now one of my favourite assembler instructions: `SBC A`

    #ZX81 #Z80 #NoAI

  23. Quite pleased with how nippy the map scrolling is in my ZX81 game-in-progress. It is the first working and largely non-optimized version. It's good that it's quick and can be made quicker, because i think it will mostly determine how responsive the game feels. By comparison the other routines (that i wrote earlier) to draw the frame and the info display are shamefully slow (and mildly quadratic, haha).
    #ZX81 #RetroComputing

  24. Ha! My ZX81 game-in-progress has a map! I drew it on paper and typed all the tiles in:

    #ZX81

  25. Skimming Toni Baker's «Mastering Machine Code on your ZX81» and i love the chapter titles, which feature a hand-drawn illustration of the ZX81 circuit board. I believe the PCB tracks on the ZX81 were themselves hand-drawn, which was the fashion at the time. [edit: i see from the title page, that the illustrator is Cathy Lowe, and they like a bit of slightly wobbly Letraset Helvetica]

    #ZX81 #MachineCode

  26. Update: got one, thanks to @c64whiz !

    Is there a better scan available of the Timex Sinclair 1000 User Manual than this one on the Internet Archive?
    archive.org/details/timex-sinc

    It's a little bit cruddy, and every internet link seems to lead to it

    #RetroComputing #TimexSinclair #ZX81

  27. Update: got one, thanks to @c64whiz !

    Is there a better scan available of the Timex Sinclair 1000 User Manual than this one on the Internet Archive?
    archive.org/details/timex-sinc

    It's a little bit cruddy, and every internet link seems to lead to it

    #RetroComputing #TimexSinclair #ZX81

  28. Update: got one, thanks to @c64whiz !

    Is there a better scan available of the Timex Sinclair 1000 User Manual than this one on the Internet Archive?
    archive.org/details/timex-sinc

    It's a little bit cruddy, and every internet link seems to lead to it

    #RetroComputing #TimexSinclair #ZX81

  29. Update: got one, thanks to @c64whiz !

    Is there a better scan available of the Timex Sinclair 1000 User Manual than this one on the Internet Archive?
    archive.org/details/timex-sinc

    It's a little bit cruddy, and every internet link seems to lead to it

    #RetroComputing #TimexSinclair #ZX81

  30. Update: got one, thanks to @c64whiz !

    Is there a better scan available of the Timex Sinclair 1000 User Manual than this one on the Internet Archive?
    archive.org/details/timex-sinc

    It's a little bit cruddy, and every internet link seems to lead to it

    #RetroComputing #TimexSinclair #ZX81

  31. I implemented Bresenham's line algorithm for my ZX81 "game" (more of a demo of routines at the moment). I use it to draw the chunky grey line crossing diagonally. It's quite a fun algorithm, and apparently the second time that i have implemented it: there is a version in BASIC in Chapter 18 of the ZX81 BASIC Programming manual that i surely typed in as a child.
    #ZX81 #Bresenham

  32. I added a random number generator (a LFSR using polynomial for n=16 from XAPP052) and a subroutine for PRINT AT to my ZX81 "game".

    #zx81 #rng #lfsr

  33. So, does anyone have any recommendations for an #Android #app that will record and play back #FLAC or #WAV #audio for use with old, #tape based #microcomputers such as the #ZX81 etc? I don't mean apps that serve a specific system (e.g. Speccy) but am looking for a #digital #replacement for #computer #audio #tapes.

  34. So, does anyone have any recommendations for an #Android #app that will record and play back #FLAC or #WAV #audio for use with old, #tape based #microcomputers such as the #ZX81 etc? I don't mean apps that serve a specific system (e.g. Speccy) but am looking for a #digital #replacement for #computer #audio #tapes.

  35. So, does anyone have any recommendations for an #Android #app that will record and play back #FLAC or #WAV #audio for use with old, #tape based #microcomputers such as the #ZX81 etc? I don't mean apps that serve a specific system (e.g. Speccy) but am looking for a #digital #replacement for #computer #audio #tapes.

  36. So, does anyone have any recommendations for an #Android #app that will record and play back #FLAC or #WAV #audio for use with old, #tape based #microcomputers such as the #ZX81 etc? I don't mean apps that serve a specific system (e.g. Speccy) but am looking for a #digital #replacement for #computer #audio #tapes.

  37. So, does anyone have any recommendations for an #Android #app that will record and play back #FLAC or #WAV #audio for use with old, #tape based #microcomputers such as the #ZX81 etc? I don't mean apps that serve a specific system (e.g. Speccy) but am looking for a #digital #replacement for #computer #audio #tapes.

  38. One of the cool things about the #Minstrel4th is the fact that its #ROM not only contains the original #JupiterACE ROM and an Enhanced JupiterACE ROM by @nihirash (which enables program load via serial I/O amongst other things) - no: there are also #ZX80 and #ZX81 "compatible" #BASIC ROMs available on the additional banks, all selectable via jumpers.

    The ZX81 compatible ROM works well enough to run "Flight Simulation" by Psion Computers.

    EDIT: Oh, and it runs the ZX81 version of "Mazogs", of course ...

    What will not work is anything that uses non-standard screen and keyboard routines, as the hardware of the Minstrel 4th is slightly different from the original ZX81. Still, it's a nice extra I didn't expect.

    #RetroComputing
    #Z80
    #ZX81
    #Compatible

  39. New release of my speccydev devcontainer today: - Updated Boriel BASIC to newest version - Added the PASTA/80 PASCAL compiler - Add hdfmonkey for manipulating Spectrum Next sd cards github.com/mcphail/spec... #ZXSpectrum #ZX81 #SpectrumNext #RetroComputing #RetroGameDev

    GitHub - mcphail/speccydev: De...