First iteration of a Covox interface for the ZX81 is working now.
Woohoo!
Lessons learned:
- I should NEVER solder anything when having a fever. I had to redo everything later.
- There is no IN/OUT in ZX81 basic, but PEEK/POKE is. Doing a memory-mapped device is easier to test.
- When doing a memory-mapped device, don't try to write to ROM-area and expect the data to be what you want.
- A 74x574 does NOT have an active low clock signal. I've used these quite a lot (a long time ago), but somehow I did not remember this...
- ULA:s can be slightly broken. Mine could not read 2 columns of the keyboard, and the keyboard was not faulty. The leads are even shorter now.
All excellent lessons I can't wait to hear the results
sirmorris wrote:I have heard a more charitable explanation - that writing to somewhere 'non-changable' was another clever optimisation which saved a few bytes in the ROM. I can't remember where I heard this, though.
Well, the 16k/48k/+ ZX Spectrum also does the same thing (writes to the first five ROM locations, 0000h to 0005h), but then a lot of the maths routines are very similar, the ROM code having evolved from the ZX81 ROM.
Standby alert
There are four lights!
Step up to red alert. Sir, are you absolutely sure? It does mean changing the bulb
Looking forward to summer later in the year.
>olofsen wrote:
>By the way, why does the BASIC write to ROM?
>
>This is a bug in the firmware or "BIOS".
>I think there are only a few candidates of BASIC instructions doing it. I found for example PRINT does try to write to the ROM. >I found this during testing with an EEPROM instead of a ROM.
Perhaps it is a bit out of topic but the Spectrum has a similar bug, it writes over the higher ROM locations.
Luckily it happens only while listing/editing a BASIC program, in a particular condition making a different scroll-up happen.
Hmmmm.
Well, Covox music is still being played by CPU, after all.
Will the ZX81 handle this amount of work?
It's hard even on ZX Spectrum, where Covox is fairly popular.
4 channels of MOD go on ZX with "not any stunning quality".
Also, digital stuff takes faaaaaaar more RAM than 32Kb.
I'm doing direct digital synthesis, and no it is not great quality. But it works! I enjoy writing it, you'll get to listen and try later when I'm done.