Nascom Newsletter |
Volume 3 · Number 1 · April 1983 |
Page 9 of 37 |
---|
Welcome to Part II – I hope that you managed to struggle through Part I alright, but don’t worry, it can only get worse. By now you should have your print routine working to your satisfaction – called PRDIS.
Now there are 9 subroutines to write, yes 9! and also a lot of data. One of these, is a sort of controller, and calls one of the remainder depending upon the data it is fed. A great deal of the disassembler is a great deal of data, organised into tables.
I will define the control routines;
Obviously HL” must contain the correct address. This is achieved by creating a table of twelve addresses, corresponding to the 12 combinations of TYPE and F. Let me explain, TYPE represents whether the instruction to be disassembled began with £ED, £CB or neither. It can only have 3 possible values – use 0, 1 and 2 because life is so much easier. F will hold bits 6 and 7 of the instruction being disassembled. Therefore, it has 4 possible values. Hence 12 combinations. There should be an address in your table for each possible case. Get it into HL’.
This should cause no problems if you order your table correctly. For example: (and may I recommend this method)
TAPST | TYPE = 0 | F = 0 |
TYPE = 0 | F = 1 | |
TYPE = 0 | F = 2 | |
-----"----- | ||
TYPE = 2 | F = 3 |
Now the first byte of each address is given by TABST + (2 x
Page 9 of 37 |
---|