Getsnapx - XMODEM receive a .SNA file over serial link on +3 and run it
by Russell Marks (mr216@gre.ac.uk)

Public Domain


This program loads a .SNA file from the +3's serial port and runs it.
You'll need a suitable null modem lead and another computer to XMODEM
transfer the .SNA file from. No software other than something capable
of XMODEM transfers is needed for the other computer.

Getsnapx uses a couple of routines in ROM 1 on the +3. If your ROM
version differs from mine (v4.0) it might not work. OTOH, I doubt they
moved the routines. It might even work on a +2A. Maybe. Try it and
see. :-)


To use getsnapx, you need to get the file getsnapx.bin across to your
+3. Good luck. :-) You could type in a hex dump, at a stretch, but at
~600 bytes it would take a while. Only recommended for real hex
veterans...

If you use CP/M to transfer it, you'll need to add a header - COPY
"getsnapx.bin" TO SPECTRUM FORMAT should do that. Be sure to copy
getsnapx.hed over getsnapx.bin, so it has a suitable filename.

Then type this in and save it as 'getsnapx':

	10 CLEAR 25399
	20 LOAD "getsnapx.bin" CODE 25400
	30 RANDOMIZE USR 25400

Run this, XMODEM across a snapshot, and maybe it'll even work! :-)

The screen background is filled with purple as the snapshot loads;
when it's full the whole snap has loaded, so the attributes are copied
back and the snap is started up. (The first line of the screen is
corrupted by some of the code and stack used to get the snap running.)

If something goes wrong with the transfer, you should get the error 'R
Tape loading error'. If you want to abort a transfer, hit BREAK.

At 9600 baud, a snap takes about a minute to load.


If you want to look at the source for some reason, it's supplied (in a
format friendly to one of the 2^N Z80 assemblers called ZMAC) as
getsnapx.z. And yes, I already know the code is horrible.


Have fun,
-Rus.
