view 3rdparty/utils/sleuth3/genes.notes @ 3222:c086a5d69b78

Corrected ,pc should have been ,pcr in KRNP3.asm
author David Ladd <drencor-xeen@users.sourceforge.net>
date Wed, 20 Dec 2017 23:28:18 -0600
parents afd0f7d9b514
children
line wrap: on
line source

Sleuth
Notes by Gene Heskett

I got this from a friend who bought it way back then, and was then not able to
build it since it came as source only.

Not only that, but the src's were in original os9 level one version 1.0
format, with shorter names for everything.

The first thing I did was to bring it up to level one version 2.0 status.
Which I believe is where its at now. Eg, no 6309 stuffs in it yet, although
with the good organization Prof Bud Pass wrote it with, that would not be
a huge undertaking.

I called Bud on the phone shortly after I did the upgrade to the newer style
defsfiles and function names and asked him if he had any problems with what
I had done, and he was at that time very friendly and said I could do most
anything with it I wanted, so I doubt he would object to its being preserved
for posterity by becoming a part of nitros9's development.

This is a multipass disassembler that is used in a more or less recursive
loop.  It generates very nice looking source code by walking through the
object, and everytime it gets out of synch, you add the definition of what
the code is at the point where it got confused, sort of a list that tells
sleuth that a string definition starts at offset $0077 and continues to
offset $0089 etc etc.  So its a bit tedious to use, but is dead accurate
with our help.  Better by far than disasm, but slower to use.

Cheers, Gene

******************************************************************************

Sleuth3
Addendum by Bill Pierce:

I have updated the system calls to both NitrOS9 L1 & NitrOS9 L2. To use for NitrOS9 Level 1, you must change the "os9lno equ $02" to "os9lno equ #$01". Sleuth3 will then properly (I hope) disassemble Level 1 modules.

Gene had started the 6309 CPU instruction decoding, but it was never finish and remains in that state (either jumped over, or commented out). I do not have enough knowledge of 6309 code to complete this and I leave it up to those who do.

One thing I noticed, but never seemed to be able to fix, was the "pshs", "puls", "pshu", & "pulu" register order. All registers are listed in reverse order, high to low as opposed to low to high as is OS-9 convention, I.E. "u,y,x,b,a,cc" instead of "cc,a,b,x,y,u". This can be fixed, but due to the many places it's referenced, I couldn't seem to find them all so I left them as they were. The OS-9 assembler manual states that the register order in the source does not matter, that the assembler will sort it out, so I assume sources generated by Sleuth3 will assemble correctly "as is". They have for me so far.

The "Super Sleuth" user's manual I have included is actually for the RSDOS version of Sleuth, but almost all instructions still apply to the OS-9 version with the exception that this version of Sleuth disassembles OS-9 program modules and not RSDOS machine language programs.

Enjoy!
Bill Pierce