Hi-speed loadings for zx81

Any discussions related to the creation of new hardware or software for the ZX80 or ZX81
User avatar
kmurta
Posts: 305
Joined: Tue Sep 01, 2009 5:04 am
Location: Belo Horizonte - BR
Contact:

Re: Hi-speed loadings for zx81

Post by kmurta »

Andy Rea wrote:Well i'll be blowed if i can get it to work on a real zeddy :(
Andy
It works for me in both zx81 and tk85, but I need to use an audio amplifier between PC audio out and the zx/tk.

See it in action loading the Dancing Demon in less than 20 secs on tk85:

http://www.youtube.com/watch?v=cgdBGnTrg90
1 x ZX81, 2 x TK85 , 1 TK82C, 1 TK95, 1 x Alphacom 32 printer, 1 x ZXpand
ZeXtender board, Joy81 - Programmable Joystick Controller, Turbo Sound 81
http://zx81.eu5.org
https://toddysoftware.itch.io/
VinCBR900
Posts: 12
Joined: Wed Jul 27, 2011 8:21 pm
Location: San Diego, CA, USA

Re: Hi-speed loadings for zx81

Post by VinCBR900 »

User avatar
zsolt
Posts: 214
Joined: Wed Apr 20, 2011 11:43 am
Location: Fót, Hungary

Re: Hi-speed loadings for zx81

Post by zsolt »

The tape loader part of SPONZY did not work with a real hardware - as it was also reported by Siggi.
So I decided to study our favorite from this perspective. The by-product of this work is in the attachment.

The basics of the hardware:

Due to the hardware solution of Zeddy's EAR-port, it is easier to produce a short, well-detectable pulse, than a longer, stable signal with well-measured length. If we have a lot of the latter in sequence, the signal is considerably distorted due to the input capacitor.

A possible solution is the amplifier recommended by Xavi, or...

The stable state of the input is the '0' (ie, the silence), into which it quickly returns after the above-mentioned short-pulse.

Why does not the interval between these short pulses carry the information?
I tested this feature and got a positive result!

The basics of the software:

A ZX81 program can not use the entire RAM area, because the ZX81-OS needs 66 bytes under RAMTOP to start the program. In which the top 4 bytes (ERR_SP and the $3E00 signaling the end of the RAM) can not be modified.

So, we have 62 bytes for fastloader!

The final result:

As in the OTLA project, a WAV file that contains 2 sections is to be produced.
The first part is for the auto-starting fastloader, and the other is for the program coded in the above described format.

The "hlg4zeddy.exe" implements this hybrid solution. Just choose the ".P" file, then the".WAV" will be created (in 44100 or 22050 samples/sec format) - see http://www.youtube.com/watch?v=f4ef-XTxC0U.

Advantages:
- easy to create;
- easy to load (LOAD "");
- quick (1K ~5sec; 16K ~26sec);
- does not need an external amplifier (according to my experience);
- the fastloader part runs directly under the RAMTOP.

Disadvantages:
- not as fast and flexible as the ZXPAND;
- the fastloader part runs directly under the RAMTOP.

If you have 16K+ of RAM:

- but the M1NOT-circuit is not implemented, the highest value for RAMTOP could be 32768
(POKE 16389,128; POKE 16388,0)

- and the M1NOT-circuit is implemented, the highest value for RAMTOP could be 49152
(POKE 16389,192; POKE 16388,0)

Enjoy
Zsolt
Attachments
hlg4zeddy.zip
(288.64 KiB) Downloaded 266 times
ZX81 (8K), ENTERPRISE 128, [ZX SPECTRUM (48K,+,+128K,+2,+2A), TS1000, TS1500, TS2068, Cambridge Z88, PRIMO A64 (red)]
User avatar
Andy Rea
Posts: 1606
Joined: Fri May 09, 2008 2:48 pm
Location: Planet Earth
Contact:

Re: Hi-speed loadings for zx81

Post by Andy Rea »

Sucess after a few attempts at tweaking the volume :-)

Fantastic work, until i saw it with my own eyes i found it hard to believe it was possible.

Great work.

Andy
what's that Smell.... smells like fresh flux and solder fumes...
User avatar
zsolt
Posts: 214
Joined: Wed Apr 20, 2011 11:43 am
Location: Fót, Hungary

Re: Hi-speed loadings for zx81

Post by zsolt »

Hi all,

Before Christmas I wrote a letter to Santa Claus with my wishlist: ZXPAND, Andy's ULA replacement,... ;)
Uselessly :( (e.g. i'm waiting for a illuminated world globe since 30 years).
In my sorrow I decided to further develop the HibrydLoader. The result and some examples are in the attachment.

Zsolt
Attachments
HybridLoaderV2.zip
(335.21 KiB) Downloaded 246 times
ZX81 (8K), ENTERPRISE 128, [ZX SPECTRUM (48K,+,+128K,+2,+2A), TS1000, TS1500, TS2068, Cambridge Z88, PRIMO A64 (red)]
User avatar
revivalstudios
Posts: 53
Joined: Wed Feb 08, 2012 9:49 pm
Contact:

Re: Hi-speed loadings for zx81

Post by revivalstudios »

hi,

just registered this forum just to say great work on the loader. However i haven't been able to get it working on my system (first part kicks in, but after a few seconds it just disrupts the screen and hangs).
great job nonetheless!
http://www.revival-studios.com - Classic videogame development. ZX81 programs at: http://www.revival-studios.com
Please Follow me on twitter (@revival_studios) for the latest information about my upcoming game projects
User avatar
zsolt
Posts: 214
Joined: Wed Apr 20, 2011 11:43 am
Location: Fót, Hungary

Re: Hi-speed loadings for zx81

Post by zsolt »

Hi,

Try to adjust the volume using a shorter, 1K program (e.g. hlg_joy4zeddy.wav - it is only 4 seconds away from your life ;) ).
Size of RAM / RAMTOP was OK (see above)?
What is your system? I tested only on (more) ZX81 and a TS1000 (which are basically the same).
You tried both versions?

Zsolt
ZX81 (8K), ENTERPRISE 128, [ZX SPECTRUM (48K,+,+128K,+2,+2A), TS1000, TS1500, TS2068, Cambridge Z88, PRIMO A64 (red)]
User avatar
PokeMon
Posts: 2264
Joined: Sat Sep 17, 2011 6:48 pm

Re: Hi-speed loadings for zx81

Post by PokeMon »

I think I missed this thread completely.
Just found today. :shock:

Anyway I experimented a quite long time with fast loading, here you can find it as part of my IDE.
You can try just transfering files or creating WAVs.
It's purpose was not to provide a standalone tool but load your developments directly to ZX81.

viewtopic.php?t=795

Back to the loader, it can load about 1 kByte / second plus about 7 seconds for the fastloader code which is loaded first with slow speed.
I tried many options but decided to limit speed to this transfer rate due to have a safe transfer.
Could be made faster but I wanted to have a good an safe decision between 0 and 1 bytes.
It is 1k compatible, can load normal 1k programs on a 1k ZX81.
But uses some space in printer section (about 62 or 63 byte) which shouldn't be used but found to be used in the 1k programs from dr. beep.
Code is provided with the IDE as source.

Anyway most sense makes for big programs.

Will work on a superfastloader which will minimum make 4kByte/s but need more memory for coding and increase sampling frequency.
Now it uses 30kHz, can increase to 44kHz but has maybe has lower volume output. I found with my scope that 20 kHz frequency comes with
only 70 or 75% voltage output in comparison to 15 kHz. So that could cause problems with too low output.
Anyway you don't have to find out exact volume, just use as maximum and will be okay (but do not use big amplifiers :mrgreen: ).
I tried even with notebooks and on board soundcards.
And as I use this tool nearly daily many times I know that it's working very well on my computer (with about 65-70% of maximum volume but can increase 100% to be always safe).

One last point, I use a parity bit during transfer which is checked by the loader. But due to program size it does not give an error message just uses two different points to come back to BASIC. Under normal condition, screen is empty (or what have been in transferred DFILE) and shows last line 0/5 which is 0=no error and 5 last line executed (from fastloader, which is no longer in memory). If an error occured it jumps to listing function which shows the BASIC program (same like you press NEWLINE).
User avatar
PokeMon
Posts: 2264
Joined: Sat Sep 17, 2011 6:48 pm

Re: Hi-speed loadings for zx81

Post by PokeMon »

I now played with both tools, from zsolt and decicoder.
But had no success with the software from zsolt.
Tried both versions.

As I played with the tool from decioder (wav player) and acoustically and due to the time needed to load a working program with the ZX81 rom routines, your audio is too fast, zsolt. It finishes in about 2 or 2.5 seconds with the first part which is about 5 seconds in my program. I think you even can not load an empty program with this speed. Maybe you changed the sampling frequency without adapting values ? ;)

The tool from decicoder is funny but didn't work at all (even the player).
First it is necessary to choose ZX81. There is a big ZX spectrum graphic which you maybe think is just a logo but it is in fact a selection box with big graphic symbols. :roll:
Second I can try to load a .p file but can not play and not convert because it just wants a sbb file (whatever this is).
User avatar
Andy Rea
Posts: 1606
Joined: Fri May 09, 2008 2:48 pm
Location: Planet Earth
Contact:

Re: Hi-speed loadings for zx81

Post by Andy Rea »

The hybrid loader that Zsolt wrote works well here, i used it for a while whilst developing the uber zeedy, played from my mp3 player (flat EQ, max volume) loaded the vdrive loader first go maybe 95% of the time.

Regards Andy
what's that Smell.... smells like fresh flux and solder fumes...
Post Reply