This comes as a sequel to last issues not-a-review on this program, It became apparent to me that I was not the only person that had to reread the Hot Z manual in order to absorb the necessary information. When I got my original version 1.3, about 2 years ago, I was confounded by all the new abilities I had at my disposal. Once I got the hang of using this creation, I rather enjoyed paging through those unbreakable programs (among other things) to see what made them tick. I had all the commands down practically as second nature.
Ray Kingsley (a ZX80er and Sir Clive admirer from way back) decided to one up everybody and redesign Hot Z. Hot Z II has a completely rewritten structure so as to be relocatable (as was V1.7). No easy feat! A direct memory assembler is also added. HZ II is made for the 2068, but fortunately it was written on and available for a TS1000 too, The minor changes include all commands being shifted rather than one button pushes as Hot Z is. This of course means relearning where all the commands are plus the new ones, Instead of reviewing per se, I feel some hints and warnings would be more appropriate. Indeed, knowing Hot Z is an education in itself.
On loading, the HZ cover comes up, Hitting S will save the 16K (only) version and come back to the screen. Any other key press starts the tour. Location 0000 is first up. Enter 4000 to see your TS operating system variables nicely labeled and use ENTER to page through memory. A BIG REM is also on the tape. Enter shift Q and load it in Basic, It
will come up and tell you it’s a BIG REM. You now have a place to write and save your MC routines as well as the whole 16K block (see notes, set RAMTOP, ELINE, STKEND, STKBOT). The 64K version also has an extra name file to load to add meaning to some of those routines. Be careful loading large basic programs, because HZ II does not reset RAMTOP to protect itself, Function 2 in the write mode will (set address to first screen location before F-2). One of the great features of HZ is the “LOAD, look and COPY” (personal use only please) ability for ANY program. I spent a year trying to “break” HZ I in order to boot it on another system (CAI stringy floppy at the time). I couldn’t, but Ray has since removed the muss and fuss and I now have HZ II on the Compusa disc drive.
The power of this program will make you a much more prolific machine coder, With the power comes the headaches also. You must stay aware of the mode your in and where END is, as you write (especially insert and delete) your code. Move END around often (it is very useful) and try to keep it as close as what is practical to where you are working. Keep your data and op codes separated. This will help you relocate your program easier if needed. HZ will keep track of relative jumps so that if you insert some code, it will change the relative jump to a regular jump. Be careful changing code back because HZ is a memory edit. You can overwrite an adjacent instruction accidently (set END properly to avoid this).
HZ also has a single step mode. This gem lets you test each instruction separately and check the values of each register and status flags. You can change these values quite easily if necessary. A good way to crash is to start at a rom routine and start running calls (a way to get through those huge timing loops, etc.) You will invariably RETurn with nowhere to go so be careful. Don’t POP IX or JUMP IX either. The IX controls the video display. Some operating systems may have these commands in them.
When you SAVE from HZ, set END to the last byte you want to keep and the cursor to the first. Execute a shift Q from the write mode. Write down the difference total, When you want to LOAD this data, set END to the number You wrote down and the cursor to the first byte and shift Q again. Set END to the sum value and start loading (shift Q does HEX arithmetic), You can load your code to any block conveniently, HZ is loaded with this sort of nicety. One thing HZ II does not have that HZ I did, is a command list, (this list has since been added to the 2068 version) Sorry, no room for it in this version. The 64K version does have a name file for some of the HZ routines. Another feature is the alternate name file capability. On the TS1000, the rom name file can be loaded an set so that when you’re pageing around the rom, you can see routines by name, Instructions on how to change name files (ALNA) are quite complete as are most of the functions, I suggest writing the necessary code to make the change and use the transfer command to move it in place (just good practice).
Along with the Read, Write and One Step modes, there is a Floating Point mode available, This mode allows you to look at those RST28 codes using the forth like terms of the calculator, Along with these one byte codes come those 5 byte numbers of the Successive approximator (for sine, cosine, etc.). This byte appears often and can cause a tremendous slowdown of the screen display and print a lot of gibberish when accessed at the wrong time, Fortunately there are commands available to turn off this beast when not needed and invoke it when necessary (shift 4 and W in read mode).
There are several commands that are meant to be used in series with other commands. For instance, before you load data from a tape, you should clear the area between the cursor and END with Function 0. Relocating code, again needs several steps. There are 9 variable slots (all named) in the operating system calculator stack. These must be set for code, data and variables depending on what you are relocating and execute a Function 8. Function 7 will readdress jump tables. If your routine prints to the screen, then an alternate screen can be set up in memory to watch the action. There is so much to learn in this program that it cannot be presented in just two pages.
The 2068 version has added commands above what the 1000 has. Tom Woods tells me that his 2068 version will load in 1000 tapes. He didn’t say if it converted them to ASCII or not though (it doesn’t), Of all the programs I have ever used, this one has captured my curiosity and is keeping me intrigued! Still!