• Please review our updated Terms and Rules here

Trouble with the 'Eighty One' ZX81 emulator

SiriusHardware

Veteran Member
Joined
Feb 15, 2014
Messages
933
Location
UK
I dusted off my original ZX81 a few weeks ago and powered it up - still working so I was pondering what to do next.

Nowadays it should be easier to create and test software, especially machine language software, on an emulator before converting it into a form that a real ZX81 can load, so with that thought in mind I downloaded the 'Eighty One' emulator for Windows and it runs up fine, and if I go and fetch a .TZX file from the likes of 'ZX81 Stuff', that loads and runs fine through 'File / Load Tape'.

However, if I type in a six line BASIC program and then name and save it through File / Save Tape, which does successfuly create a .tzx file with the name I choose, I can't then load it back in again with File / Load Tape. The load routine goes through the motions of auto-typing 'Load ""' and then goes through to the classic 'dancing lines' load screen (as though waiting to start reading something in from tape) but it never loads the .TZX and therefore does not exit from the load screen.

What am I doing wrong?

'Eighty One' version is V1.41, OS is Win10 64 bit - allthough Eighty One is a 32-bit program it seems to run OK from the point of letting me type a BASIC program in, letting me run the BASIC program, and letting me load a .TZX file from an online source. The only thing I can't get it to do is to load a .TZX that it has saved itself.

Anyone else running this ZX81 emulator? What happens if you try the same, type in and save a short BASIC program then try to reload it?
 
Further to this, I loaded one of the 'problem' BASIC program files saved by EightyOne into a hex file editor and discovered that the file consists only of a line of description text, but does not contain any tokenised BASIC code. Small wonder that EightyOne can not load it back in.
 
I remember EightyOne being a little clunky doing this - you have to use the tape manager to create a new tape, then save, then close, or something like that. Fuse was simpler, but not zx81..
 
Yes, sorry, I forgot to update this thread. It works more or less as you said. This is logical if you understand (as I did not, initially) that a .TZX file is a digital file representation of a tape which may have only one program saved on it or may have many files saved on it, just like a real tape.

Where it gets less logical is when trying to save ZX81 specific single-file programs in say '.P' format. Past experience has taught me that these should just be saved directly to and loaded directly from the emulator's working directory but in EightyOne even .P files and other ZX81 file formats have to be 'saved to a tape', which doesn't make a whole lot of sense.
 
As long as the computer system and it's tape interface are properly emulated, anything that the original machine can load from tape will be easy enough to load from virtual tape.

In order to provide any other mechanism for loading a program other than entering it via the keyboard (using a monitor program or BASIC's peek/poke) or loading it from tape, the person who wrote the emulator has to do extra work.

That is, they have to devise a way to get the program from a file on the host machine into the emulator's memory in the right location and format.

It might be easier for you to find a utility that will take in a text file containing an untokenized BASIC program for the ZX81 and produce a tape that can be loaded. Not so fun perhaps, but less of a PITA.
 
Sorry I didn't respond earlier - I still consider it a quirk that EightyOne needs to save formats like ZX81 .P files to a virtual tape which itself then has to be saved as a file when similar utilities just save them to / load them from the utility's working directory. It's a bit of oddness I have learned to work around.
 
Back
Top