This section will use the ZMAKEBAS tool to convert your TXT listing back into a ZX Spectrum .TAP file. There are multiple versions out there and here’s the two that I found. Personally, I’m using the Windows 64-bit edition.
- Linux: https://github.com/ohnosec/zmakebas
- Windows (64 bit) – https://github.com/ohnosec/zmakebas/releases/tag/v1.8.2
My thanks go to the original author (Russell ..) and whoever it was (I need to find their name, tut!) who created the Windows 64-bit version for non-Linux users like myself.
There is a lot of information available on the OhNoSec page above that’s applicable for both versions.
Including the bug I found in one game where “LET IN=2” was being converted to “LET IN =2” and it broke the game on the Spectrum with the “C:Nonsense in BASIC in 90:3” error message. To fix this I needed to change the variable from IN to INV – so that it didn’t look like the INK command – and then it worked fine.
Compiling
I use a simple .BAT file (listed below) which will call the Windows version of ZXMAKEBAS and point it to the .BAS source code and tell it to create a new .TAP file. Then the testing begins.
Testing
I use ZX Spin to test my compiled game or utility, but use whatever set up you prefer. This is mine:
- ZX Spin – for loading multiple copies of the compiled code
- Notepad++ – with the source code open ready to tweak stuff
- Command Line – read to recompile the code into (yet another) .TAP.
If I spot an error, then I just need to tweak the code listing that’s in Notepad++, recompile the code back into a fresh version of the .TAP then reset ZX Spin and reload it. Because I’ve not changed the name of the compiled TAP, I don’t need to tell ZX Spin to find another copy of it.
This is especially useful for text adventures, as you need to make sure your translated text fits into the ZX Spectrum’s 32-character wide display. I’ve found (so far) that English is generally a lot shorter than German or Spanish text in games. This, sometimes, results in descriptions that were 4 lines long, shrinking down to 3 lines.
And yes, it’s a painful process, especially with text adventures, but needs must if you’re going to submit your translated work to somewhere like Spectrum Computing.
After you’ve created your TAP
Once you compile your program back into a .TAP file, you are good to go. Unless it uses an extra files, such as a new font, UDGs or a block of Z80 code. There are, for me, two methods of combining all the extra files with the new version of the code.
Combining files (Old School Way)
Or you can set up a DOS Batch file to copy all the bits (in the right order!) by way of the COPY command, but you must include the /b binary switch.
From a command prompt type:
COPY /b <name of TAP> + <extra binary file 1> + <extra binary file 2> NewProg.TAP
Repeat the <extra binary file> parts for as many extra binary files as you need for the end result. Once done, launch the TAP file in your favourite emulator to check that it works as it should.
Combining files (New Way)
There are many tools out there (for multiple OSes) that will help you combine all of your files into a single .TAP file. I use ZX Blockeditor, but there are others, such as Tapir and Tapeditor (for Windows) which do the same sort of job.