view 3rdparty/utils/sleuth3/cssleuth3.asm @ 3149:afd0f7d9b514

Add the Sleuth multipass disassembler from Bud Pass Added new directory "3rdparty/utiles/sleuth3" and source files to build "sleuth3" and its utilities. Also added "sleuth3" to the Directories section of "3rdparty/utils/makefile" to faciliate the inclusion of the sleuth3 build.
author Bill Pierce <merlinious999@gmail.com>
date Sat, 04 Feb 2017 18:55:39 +0100
parents
children
line wrap: on
line source

******************************************
**
 nam CSC OS/9 Super Sleuth c1982
**
******************************************
**                                      **
**   CSC OS/9 Super Sleuth    c1982     **
**                                      **
** Computer Systems Consultants, Inc.   **
** E. M. Pass, Ph.D.                    **
** 1454 Latta Lane NW                   **
** Conyers, GA 30207                    **
**                                      **
******************************************
** Updates for OS9 Level 2 1990-1995
** M. E. (Gene) Heskett
** 291 Garton Avenue
** Weston, WV 26452
******************************************
** More Updates for NitrOS9 Level 2
** Bill Pierce 04/2016
** ooogalapasooo@aol.com
******************************************
**
vn equ $04 version number
**
 mod endmod,namemd,Prgrm+Objct,ReEnt+vn,start,endmem
**
namemd fcs "Sleuth3"
 fcb $0d
**
 fcc "CSC OS/9 Super Sleuth  c1982 v"
 fcb $0d
 fcc "All Rights Reserved by"
 fcb $0d
 fcc "E. M. (Bud) Pass, Ph.D."
 fcb $0d
 fcc "Computer Systems Consultants, Inc."
 fcb $0d
 fcc "1454 Latta Lane, Conyers, GA 30207"
 fcb $0d
 fcc "Telephone Number 404-483-1717/4570"
 fcb $0d
********************** OS/9 uses *************************
* this module is for OS/9 library definitions

 use defsfile

******************** cssvarbl ****************************
* this module contains variables used by the disassembler
* in performing its requested operations; of the entire
* disassembler, the only portions which should vary during
* execution are the variables in this module.
 ttl *** cssvarbl ***
 use cssvarbl3.asm
endmem equ .
******************** cssinitz ****************************
* this module contains the external address table,
* the initialization routines, the command interpreter.
 ttl *** cssinitz ***
 fcc "*** cssinitz ***"
 use cssinitz3.asm
******************** cssmiscl ****************************
* this module contains several utility-type routines,
* generally called from the command interpreter.
 ttl *** cssmiscl ***
 fcc "*** cssmiscl ***"
 use cssmiscl3.asm
******************** cssauxil ****************************
* this module contains routines which control auxiliary
* input and output; auxiliary input is handled by fooling
* the character input routine by making it read from the
* auxiliary file rather than from the terminal; auxiliary
* output is handled by formatting a file with data
* simulating command interpreter input.
 ttl *** cssauxil ***
 fcc "*** cssauxil ***"
 use cssauxil3.asm
******************** cssdmptb ****************************
* this module contains the routine which lists internal
* control tables to the output device.
 ttl *** cssdmptb ***
 fcc "*** cssdmptb ***"
 use cssdmptb3.asm
******************** cssshowc ****************************
* this module contains routines which implement the full
* screen display and modification of object program code;
* the specific nature of a given system and terminal is
* provided by other library files which must be included
* by the user to suit a given situation.
 ttl *** cssshowc ***
 fcc "*** cssshowc ***"
 use cssshowc3.asm
******************** cssdkdsk ****************************
* this module provides routines which obtain the input
* and output file names from the input device.
 ttl *** cssdkdsk ***
 fcc "*** cssdkdsk ***"
 use cssdkdsk3.asm
******************** cssinput ****************************
* this module provides a routine which stores an address
* range and type in a table, a routine which scans and
* verifies such a range, and a routine which obtains an
* entire input line from an input device.
 ttl *** cssinput ***
 fcc "*** cssinput ***"
 use cssinput3.asm
******************** csszapcd ****************************
* this module contains routines to assist in the editing
* and decoding an object module; two routines allow the
* inquiry and modification of the object program contents;
* modifications are stored in a table, rather than being
* actually applied to the program; one routine allows the
* locating of strings of hex characters within the object
* program; another routine outputs a OS/9-formatted
* object program from the current object program, possibly
* with user-specified modifications.
 ttl *** csszapcd ***
 fcc "*** csszapcd ***"
 use csszapcd3.asm
******************** cssdisas ****************************
* this module contains routines which disassemble the
* object program; the source of the object program must
* already be known; the destination is determined by these
* routines; actual formatting of the disassembled listing
* and disk output is done by other modules.
 ttl *** cssdisas ***
 fcc "*** cssdisas ***"
 use cssdisas3.asm
******************** cssgetcd ****************************
* this module contains routines which return the object
* program byte and type at a given address; if the address
* is outside of the specified address range or is in an
* ignored range of addresses, zero is returned.
 ttl *** cssgetcd ***
 fcc "*** cssgetcd ***"
 use cssgetcd3.asm
******************** cssiafcb ****************************
* this module contains routines used by the disassembler
* routine to assist in disassembly of the object program;
* one handles case of memory with character and hex types;
* two determine if a given address has been or is to be
* labelled; several routines handle equ and org statements
* as required by object program code and memory types;
* two routines provide logic to handle the beginning and
* ending of the disassembly output.
 ttl *** cssiafcb ***
 fcc "*** cssiafcb ***"
 use cssiafcb3.asm
******************** cssmapdk ****************************
* this module maps an input object program on disk; the
* program code is not brought into memory from disk except
* one sector at a time; this routine builds the table
* entries to allow the location of any byte of a program
* in terms of relative byte displacement in file.
 ttl *** cssmapdk ***
 fcc "*** cssmapdk ***"
 use cssmapdk3.asm
******************** cssoutcd ****************************
* this module formats the disassembled output listing and
* disk file; although the listing contains hex address,
* object code, and formatting spaces, only the actual
* disassembled source code is placed on the disk output.
 ttl *** cssoutcd ***
 fcc "*** cssoutcd ***"
 use cssoutcd3.asm
******************** cssxiort ****************************
* this module contains the i/o handlers which interface
* with the primitive OS/9 i/o routines; they are
* necessary in order to control the diversion of input and
* output from and to disk terminal.
 ttl *** cssxiort ***
 fcc "*** cssxiort ***"
 use cssxiort3.asm
******************** cssconst ****************************
* this module consists of most constants used by the
* disassembler during its processing of object code; it
* also contains text for the menu and the address table
* used by the command interpreter to vector single-letter
* commands to the corresponding routines.
 ttl *** cssconst ***
 fcc "*** cssconst ***"
 use cssconst3.asm
******************** cssparam ****************************
* this module must be selected by the user to provide the
* details of the terminal to be used; comments in the
* module provide the required information to be entered.
 ttl *** cssparam ***
 fcc "*** cssparam ***"
 use cssparam3.asm
******************** csstable ****************************
* this module contains the tables used by the disassembler
* in order to decode the operation codes and to associate
* the mnemonic names with them.
 ttl *** csstable ***
 fcc "*** csstable ***"
 use csstable3.asm
********************
 emod
endmod equ *
 end