Tracker Disassembler

By Richard Dimond

Originally published in EUG #28

This is the disassembler which I use for all my machine coding and I find it very useful. Now that I have a Master 128, If found that it needed some small modifications to make it work satisfactorily.

The first thing was to set up CHR$255 using VDU23 as needed on the Master and this was done by changing line 1000. The program set up the character by simply setting up the bytes CF8 - CFF which can be done with the Elk.

The inversion of the colours of the flags was done by EORing the bytes of CF8 - CFF. I have modified the line 210 to use the COLOUR command.

The code is written to &72C0 and thus occupies the lower half of the Mode 6 screen. This can be avoided by switching on your MRB if you have this or using Mode 134 on the Master.

To use the program, you must enter Mode 6 (or Mode 134) first to clear the screen before running the program as it will not work if the screen has scrolled. The program can then be run by *TRACKER.

The keys to use are:

 A-to enter a new address (in hex)
F-to move forward 256 bytes
B-to move Backward 256 bytes
J-to toggle JSR on/off
M-to toggle JMP on/off
P-to toggle the printer on/off

Any other key will advance to the next op code.

ESCAPE will break out of the program but you can start up again by the command *GO. This uses a vector change so, if you are finished with the program, there is a command *RID for resetting the vectors to normal.

If you want to start the_program_at a certain address, you can set D% to this address before calling the program.

I have found that, when using the printer,_you need a buffer large enough to hold all the coding you wish to print and, when this is loaded into the buffer, you then need to press BREAK to start the printer.

Help Anyone!

I had intended to submit a SW RAM version of TRACKER but, although I have a working version of this, when I came to look for the assembler listing I could not find it and must have deleted it. I fortunately had most of the source code and so could fairly easily make it up again. However, on using it to set up the ROM image, it does not now access the disk drive as it should.

I have been able to provide a full screen display and facility for giving * commands with this version so that you can *CAT the disk or *LOAD another program without having to return to BASIC. This works fine with the first version I made but after using the new assembler listing, the drive will not start up.

I have tried making up ADFSEX and DEXAM into ROM form and the same thing happens.

Has anyone any ideas about this?

Richard Dimond, EUG #28