Topic: Jupiter Ace

Been playing around a little bit experimenting with the Jupiter Ace.
The speaker sits on Port $FE, however it is set up a bit differently requiring a read and a write.


> Jupiter ACE I/O Ports
>
>Port FEh Read (or any Read with A0=0)
>  0-4  Keyboard Bits
>  5    Cassette Input (EAR/LOAD)
>  6-7  Not used
>Any read from this port toggles the speaker "off". Speaker IN.
>
>
>Port FEh Write (or any Write with A0=0)
>  0-2  Not used
>  3    Cassette Output (MIC/SAVE)
>  4-7  Not used
>Any write to this port toggles the speaker "on".  Speaker OUT.

So, something like:
   out     (0),a        Speaker Out
   in         a,(0)        Speaker In


So far everything has been a fail for me, but, I enjoy the fiddling around & experimenting.
One of these days I'll crack it and get something (anything) to work.

Re: Jupiter Ace

Ah, that's similar to how it works on ZX81, which isn't surprising considering the machine's history. A rather inconvenient setup for 1-bit music, but not impossible. You'll probably want to write your own engine for this though, rather than porting an existing one.

Just how many different machines do you have in that barn of yours, though? yikes

Re: Jupiter Ace

Oh my, I actually never thought it could be done this way, via in/out. Never looked up ZX81 either, as I expected it to be just a regular output register.

So I guess they're connected tape output just to the IOWR, because it is the only writable I/O port, and thus saved a trigger/register. And when extra devices with writable ports added, you'll get a buzz on the tape output when they're accessed.

Another weird method of controlling a speaker is found in the 8080-based Soviet DIY computer RK86. It lacks any interrupts whatsoever, so EI/DI control the speaker.

website - 1bit music - other music - youtube - bandcamp - patreon - twitter (latest news there)

Re: Jupiter Ace

I don't physically have one of these - I was just really intrigued to see if 1bit audio was even possible. Answer is a definite yes.
These computers do have an AY audio chip, and a pysical internal speaker.

I have since experimented with 1k2b but unfortunately didn't get very far.
Granted I really don't know what I'm doing here, but Chronos & Startip2 sort of looked straight forward of changing their looped out/out channels to in/out, and, did manage to get audio from both, (with a lot of noise of course).
First few seconds of Chronos even starts off sounding like Chronos.  Am using the emulator 'EightyOne' which supports the 16k Jupiter Ace. Free memory is from $4000 onwards; I assume that this emulator does support the entire 49k that is possible with these things. Assemble straight to a flat '.BIN' object file, and the emulator has a bin load into whatever memory location. Jupiter Ace runs Forth rather than BASIC, so then you just call it via the forth command :    16384 CALL

Re: Jupiter Ace

Shiru wrote:

Another weird method of controlling a speaker is found in the 8080-based Soviet DIY computer RK86. It lacks any interrupts whatsoever, so EI/DI control the speaker.

The PTC Sol-20 Music System is another (very early) example of this. Coincidentally it's also an 8080-based machine, though the Music System itself is an S100 card.

bushy555 wrote:

I have since experimented with 1k2b but unfortunately didn't get very far

On ZX81 it's actually a little more complicated since you write to port #ff, but read from port #fe. So if you comment out lines 64-66 and 85-87, and change line 206 to 'ld bc,#01fe', you should be nearly there, save for the drums. Really, don't torture yourself with 1k2b though. that's a horrible piece of code. Funnily enough, these new engines I made (ulasyn and PhaserF) should be fairly straightforward to port.

Re: Jupiter Ace

Heh, the more fun is that Sol-20 Music System has been 'borrowed' for the RK86 back in 1988, and published as a hex dump in a paper magazine. It is even still called Music System (MS 3.2).

website - 1bit music - other music - youtube - bandcamp - patreon - twitter (latest news there)

7 (edited by bushy555 2024-02-21 13:07:49)

Re: Jupiter Ace

...more fiddles.
Thanks to Utz with his various engines modified for the zx81 that I found. Managed to get the following working on the Jupiter Ace - at least in the EightyOne emulator.

buzzkick - just one time
squat - catching up
squat - standing wave
Eshaker - tune

...and then got SquatM running. 'Lets Go' works. Slow, lots of noise, but it works.
I'm kinda excited that I actually did a thing!

I imagine that they can be vastly improved upon for sound quality. I'll throw them up onto my github sometime as an alpha release.