Bring Zeddy back to life

Discussions about Sinclair ZX80 and ZX81 Hardware
User avatar
PokeMon
Posts: 2264
Joined: Sat Sep 17, 2011 6:48 pm

Re: Bring Zeddy back to life

Post by PokeMon »

zx81user wrote: How does that fast loader work b.t.w.? 25 times faster?? I had to uncheck it in the IDE otherwise the ZX81 wouldn't load the file properly. The normal frequency of the pulses is around 3kHz, so if you would speed that up 25 times, you arrive at 75kHz which I am sure your sound card doesn't support.

Thanks again, will post some project in the next couple of weeks or so.
Cheers,
Michel
Hi Michell,

congratulations first you got it.

About the fast loader, it does need some extra volume but maybe could have some provblems depending on personal ZX81 with varying frquencies. The resonator is not very exact. I had only my personal ZX81 for testing and while improoving it's maybe a litte far to the edge. Anyway it does need some more power in output volume (about 20%) due to higher frequency. I use 30 kHz sampling rate which could give frequency of about 15 kHz. Some sound cards have a more or less strong low pass fitler which reduces ouput volume - that's the 20% more for.

I tried to write an own loader code which transfers databits more fast and not with a series of five or nine pulses. It is realized as a two stage loader, in the first part the new loader code is transferred with normal speed of about 38 chars/second. After transfer the loader is started as new program, waits for high speed data and this is transferred in the second stage.

I tried to keep the loader code as small as possible and the source is provided with the IDE (ZX81FALD.ASM). It is copied into the (normally unused) 1k Variables section of the program. So it could load 1k programs in 1k memory as well. Most 1k programs of Dr. Beep don't work with that loader as he squeezes out any possible byte, especially the variables section. So there could be an effect that a 1k file is not loaded correctly with fast loader.

I am working on a new loader (superfast) which consumpts more memory and is good for 16l / 32k RAM. I think I could speed up the code with factor 4 by smaller pulses and a faster reading code (which does use more memory) and by compressing data before transfer. In two weeks there is a meeting in germany near Fulda and there I can adapt my code for different ZX81 with different speeds (3,25 MHz +/-5%).

You could also try the loader of Zsolt, there is a special thread for it. You could give it a try. I personally had some problems with his loader and he had same with my loader. :mrgreen:
viewtopic.php?f=6&t=134
dr beep
Posts: 2076
Joined: Thu Jun 16, 2011 8:35 am
Location: Boxmeer

Re: Bring Zeddy back to life

Post by dr beep »

PokeMon wrote:I tried to keep the loader code as small as possible and the source is provided with the IDE (ZX81FALD.ASM). It is copied into the (normally unused) 1k Variables section of the program. So it could load 1k programs in 1k memory as well. Most 1k programs of Dr. Beep don't work with that loader as he squeezes out any possible byte, especially the variables section. So there could be an effect that a 1k file is not loaded correctly with fast loader.
Sorry I only have 1K, in the latest games (Pinball, Hunt the Wumpus and Locomotion) almost every byte of the systemvariables is used too.
On the other hand : 1K loading in slowload only takes app. 30 sec.
User avatar
PokeMon
Posts: 2264
Joined: Sat Sep 17, 2011 6:48 pm

Re: Bring Zeddy back to life

Post by PokeMon »

dr beep wrote: Sorry I only have 1K, in the latest games (Pinball, Hunt the Wumpus and Locomotion) almost every byte of the systemvariables is used too.
On the other hand : 1K loading in slowload only takes app. 30 sec.
Yes you are right, for 1k the fastloader is not really needed.
On the other hand, if I spend you a 16k RAM for your ZX81, will you develop further more complex games with more nice graphic using 16k RAM ? :shock:
zx81user
Posts: 54
Joined: Mon Mar 25, 2013 3:14 am

Re: Bring Zeddy back to life

Post by zx81user »

PokeMon wrote:I tried to write an own loader code which transfers databits more fast and not with a series of five or nine pulses. It is realized as a two stage loader, in the first part the new loader code is transferred with normal speed of about 38 chars/second. After transfer the loader is started as new program, waits for high speed data and this is transferred in the second stage.
Neat! I thought it had to be something like that. I am thinking about making an input and output amplifier to eliminate the need for these loud signals. It's a bit silly really that the ZX81 requires a 3Vpp input signal and only produces a 10mVpp output signal. So I am guessing 20dB for input and output, that should solve a lot of problems.

Michel
zx81user
Posts: 54
Joined: Mon Mar 25, 2013 3:14 am

Re: Bring Zeddy back to life

Post by zx81user »

sirmorris wrote:Woohoo!

Another one back to life :D Congratulations!

If you find the schematic/layout for the IO PCB I might be tempted to make one or two..!

C
I'll start a new thread for this interface, nearly finished drawing the schematic and PCB layout. If there is enough interest, I'll order some boards.

Michel
User avatar
PokeMon
Posts: 2264
Joined: Sat Sep 17, 2011 6:48 pm

Re: Bring Zeddy back to life

Post by PokeMon »

zx81user wrote: Neat! I thought it had to be something like that. I am thinking about making an input and output amplifier to eliminate the need for these loud signals. It's a bit silly really that the ZX81 requires a 3Vpp input signal and only produces a 10mVpp output signal. So I am guessing 20dB for input and output, that should solve a lot of problems.

Michel
The reason for the high power signal is that it is simply feeded directly into the ULA with TTL gates. So need something about 1.5 or 1.6 Volts to recognize a high. That's the simple trick. The output was adapted to very sensitive microphones connected to cassette recorders. There is a simple devider which decreases the 5 Volt output to 5 mV by a devider with 1:1000. I think some people tried to successfully change R29 from 1M to 100k and C12 from 47p to 470p which should increase level by factor 10 to 50mV without changing the filter characteristic.

The best way would to digitally record the ULA output/input voltage if you want to make an own solution. But this wouldn't work with other (normal) Zeddys.
dr beep
Posts: 2076
Joined: Thu Jun 16, 2011 8:35 am
Location: Boxmeer

Re: Bring Zeddy back to life

Post by dr beep »

PokeMon wrote: Yes you are right, for 1k the fastloader is not really needed.
On the other hand, if I spend you a 16k RAM for your ZX81, will you develop further more complex games with more nice graphic using 16k RAM ? :shock:
Before I coded 1K hires games on the ZX81 I exported my SHOGUN for the ZX Spectrum to the ZX81
http://minigamecompo.weebly.com/2k-page.html

Also nice would be all Wiwo DiDo games on the ZX81.
http://www.worldofspectrum.org/infoseek ... egexp=wiwo
zx81user
Posts: 54
Joined: Mon Mar 25, 2013 3:14 am

Re: Bring Zeddy back to life

Post by zx81user »

PokeMon wrote:The reason for the high power signal is that it is simply feeded directly into the ULA with TTL gates. So need something about 1.5 or 1.6 Volts to recognize a high. That's the simple trick. The output was adapted to very sensitive microphones connected to cassette recorders. There is a simple devider which decreases the 5 Volt output to 5 mV by a devider with 1:1000. I think some people tried to successfully change R29 from 1M to 100k and C12 from 47p to 470p which should increase level by factor 10 to 50mV without changing the filter characteristic.

The best way would to digitally record the ULA output/input voltage if you want to make an own solution. But this wouldn't work with other (normal) Zeddys.
I noticed, found a schematic somewhere. I think the 100k/470p trick would be good enough, that shouldn't be too much of a load on the video signal. Would still be nice to have an input amplifier that is not very critical to fluctuations in signal amplitude.
Post Reply