@robertprice.bsky.social Thanks, I’ll check that out. I would like to get it working, I’ve just enough “silver bog roll” to give it a try!

@robertprice.bsky.social Great work, thanks for sharing! The Alphacom is a great wee printer. I was kindly given a ZX Printer recently, but (not surprisingly) the belt has completely perished. The Alpha keeps on truckin’ though. Nice work getting it working with RC2014!

@samcoupe.com Ah, just looks darker!

@samcoupe.com Ooh, are those new Trinity boards in black? Very stylish.👩🏻‍✈️

@fuzzweed.co.uk Ahh, cool. So you just need to read from $0038, it doesn’t need to be executed.

@fuzzweed.co.uk Ah I wondered if I could hear the beeper but I assumed the CPU time would be used up orchestrating everything else! That’s cool.

@fuzzweed.co.uk Awesome! Is that SID, AY and μSpeech all playing together?

@onlyretrofans.com Yes indeed (…and often with shiny wrapping paper and bonus choccy bar as a treat!) 😁

@onlyretrofans.com Mutant Caterpillar, their work is excellent.
They’ve repaired Spectrum and SAM stuff for me, highly recommended!

@fuzzweed.co.uk I can’t say I’ve tested it empirically! But Tomaz Kragelj’s Spectrum Next dev book covers it well, I think:

www.specnext.com/zx-spectrum-…

@fuzzweed.co.uk Yeah, the high byte will be the value of A. So the 16-bit address will be (256 x A) + N.

@robertprice.bsky.social Awesome!

@robertprice.bsky.social Ah, I see. I thought it was more complicated—but I suppose if it’s ZX Printer compatible then of course it’d have to be a clever/simple/cheap solution!

What are you using for the physical interface? I have one of Quazar’s RC2014-to-Spectrum adapters, but nothing for going the other way.

@robertprice.bsky.social Cool! I remember reading something about “vytes” (i.e. the data is sent as “vertical bytes”?)

@onlyretrofans.com Snap! (I don’t have any suggestions for managing the CF card tho, I’ve only really installed stuff via floppy disk!) Also, needs some stand-offs I think - I like your solution but I’ve no internal drive to brace against.

@onlyretrofans.com Agreed! Getting to know NextZXOS has helped me to appreciate +3e. (I always thought text “windows” were a weird thing for a DOS to concern itself? But looking at it from a streams/channels context, I get it now!)

@tomjamespotter.bsky.social Ta!

@fuzzweed.co.uk Heh, actually I’ve never seen it. But something something … smells like victory! ✌️

But unironically, this is a really cool project. Nice work!

@tomjamespotter.bsky.social Congratulations on the launch Tom! (I have a copy winging its way to me now!) Do you happen to know the exact “release date” that BitmapSoft started shipping it, so we can note it in ZXDB?

@fuzzweed.co.uk I love a bit of multifaceted polytimbral synergistic convergence in the morning.

@fuzzweed.co.uk This is great!

@fuzzweed.co.uk Aha. Now you’re talking!

@fuzzweed.co.uk I’ve not really looked into it, but the PlusD/DISCiple interfaces page themselves in on the interrupt. (Not sure of the exact trigger). So it still fires at 50Hz but they’re able to use a custom handler by paging in their own ROM to service it. Maybe you could mod your MIDI board to do the same??

@fuzzweed.co.uk The interrupt routine just calls the keyboard routine, and increments the FRAMES counter. You could do those in your routine instead if you want. Keyboard routine is CALL $02BF if you want to call it directly.

(You could just do an RST $31 but that will also re-enable interrupts with an EI).

@fuzzweed.co.uk I think that’s what IM2 is meant to do. The device identifies itself on the bus, and the programmer sets up their handler at the appropriate vector. The usual 257 byte table is just a Speccy hack to be able to use IM2 at all. Each vector could be a separate device handler.