PB - 1000


Site Home

PB-1000 Home


The ASM codes

The Memory

The Disassembler





Procedure description

- To identify the useful ROM functions, a disassembler was needed.

- So i wrote one in BASIC for the PB-1000. The problem was that it was too big (30 KO) and too slow (0.5 second to disassemble an instruction).

- Then I modified this program to run it on a PC but the ROM source was needed for this. As the FA-7 interface could only transfer ASCII files, I wrote a program that could convert the PB-1000 ROM to an ASCII file (reading with a text editor). For speed reasons, this program is in assembler.


With theses 2 programs, it was possible to disassemble the PB-1000 ROM from a PC. But having discovered that some UNDOCUMENTED codes (UD) existed, it was necessary to disassemble the ROM line by line to check if the code seem coherent (If the prog finds an undocumented code, it indicates "???" instead of a known mnemonic). It is then needed to find the next valid adress to re-start disassembling (as an undocumented code can use several bytes). All this is possible with the program.

But the problem of the UD codes was still present ! In order to identify some of theses, I wrote a little assembler program that showed the values of all the 32 registers before and after a selected UD code. By comparing the values before and after, it was then possible to get an idea of the meaning of the code. This allowed me to find the signification of some of the UD codes of whose list and neaning is available in this page. Theses discovered UD codes and their nmemonic (invented) are known by the available disassembler.


Airbug.two 2002