ack/util/int/disassemble.c

1777 lines
27 KiB
C
Raw Normal View History

1988-06-22 16:57:09 +00:00
/*
For disassembling the text segment.
*/
1994-06-24 11:31:16 +00:00
/* $Id$ */
1988-06-22 16:57:09 +00:00
#include "global.h"
#include "opcode.h"
#include "memdirect.h"
#include "proctab.h"
#include "alloc.h"
PRIVATE ptr TC;
PRIVATE do_pr_instr();
/* This text is copied and modified from text.h */
#define text_loc(a) (*(text + (p2i(a))))
/* Reading the opcode.
*/
#define nextTCbyte() (TC+=1, btou(text_loc(TC-1)))
/* Shortie arguments consist of the high order value, derived from
the opcode and passed as a parameter, and the following byte.
*/
#define St_arg(h) (TC+=1, ((h)<<8) + btol(text_loc(TC-1)))
/* Two-byte arguments consist of the following two bytes.
*/
#define Lt_arg_2() (TC+=2, (btol(text_loc(TC-1)) | \
(btos(text_loc(TC-2)) << 8)))
#define Pt_arg_2() (TC+=2, (btol(text_loc(TC-1)) | \
(btos(text_loc(TC-2)) << 8)))/* should test */
#define Nt_arg_2() (TC+=2, (btol(text_loc(TC-1)) | \
(btos(text_loc(TC-2)) << 8)))/* should test */
#define Ut_arg() (TC+=2, (btol(text_loc(TC-1)) | \
(btol(text_loc(TC-2)) << 8)))
/* The L-, P-, and N-4-bytes #defines are all equal, because
we assume our longs to be 4 bytes long.
*/
#define Lt_arg_4() (TC+=4, (btol(text_loc(TC-1)) | \
(btol(text_loc(TC-2)) << 8) | \
(btol(text_loc(TC-3)) << 16) | \
(btos(text_loc(TC-4)) << 24)))
#define Pt_arg_4() (TC+=4, (btol(text_loc(TC-1)) | \
(btol(text_loc(TC-2)) << 8) | \
(btol(text_loc(TC-3)) << 16) | \
(btos(text_loc(TC-4)) << 24)))/* should test */
#define Nt_arg_4() (TC+=4, (btol(text_loc(TC-1)) | \
(btol(text_loc(TC-2)) << 8) | \
(btol(text_loc(TC-3)) << 16) | \
(btos(text_loc(TC-4)) << 24)))/* should test */
/* This text was generated by mkswitch Pr and then modified */
PRIVATE PrAARl2(arg) long arg;
{
printf(" AAR %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrAARm(arg) long arg;
{
printf(" AAR %ld\n", arg);
}
PRIVATE PrAARz() {
printf(" AAR\n");
}
PRIVATE PrADFl2(arg) long arg;
{
printf(" ADF %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrADFs(hob, wfac) long hob; size wfac;
{
printf(" ADF %ld\n", St_arg(hob) * wfac);
}
PRIVATE PrADFz() {
printf(" ADF\n");
}
PRIVATE PrADIl2(arg) long arg;
{
printf(" ADI %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrADIm(arg) long arg;
{
printf(" ADI %ld\n", arg);
}
PRIVATE PrADIz() {
printf(" ADI\n");
}
PRIVATE PrADPl2(arg) long arg;
{
printf(" ADP %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrADPl4(arg) long arg;
{
printf(" ADP %ld\n", Lt_arg_4() * arg);
}
PRIVATE PrADPm(arg) long arg;
{
printf(" ADP %ld\n", arg);
}
PRIVATE PrADPs(hob, wfac) long hob; size wfac;
{
printf(" ADP %ld\n", St_arg(hob) * wfac);
}
PRIVATE PrADSl2(arg) long arg;
{
printf(" ADS %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrADSm(arg) long arg;
{
printf(" ADS %ld\n", arg);
}
PRIVATE PrADSz() {
printf(" ADS\n");
}
PRIVATE PrADUl2(arg) long arg;
{
printf(" ADU %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrADUz() {
printf(" ADU\n");
}
PRIVATE PrANDl2(arg) long arg;
{
printf(" AND %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrANDm(arg) long arg;
{
printf(" AND %ld\n", arg);
}
PRIVATE PrANDz() {
printf(" AND\n");
}
PRIVATE PrASPl2(arg) long arg;
{
printf(" ASP %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrASPl4(arg) long arg;
{
printf(" ASP %ld\n", Lt_arg_4() * arg);
}
PRIVATE PrASPm(arg) long arg;
{
printf(" ASP %ld\n", arg);
}
PRIVATE PrASPs(hob, wfac) long hob; size wfac;
{
printf(" ASP %ld\n", St_arg(hob) * wfac);
}
PRIVATE PrASSl2(arg) long arg;
{
printf(" ASS %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrASSz() {
printf(" ASS\n");
}
PRIVATE PrBEQl2(arg) long arg;
{
printf(" BEQ %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrBEQl4(arg) long arg;
{
printf(" BEQ %ld\n", Lt_arg_4() * arg);
}
PRIVATE PrBEQs(hob, wfac) long hob; size wfac;
{
printf(" BEQ %ld\n", St_arg(hob) * wfac);
}
PRIVATE PrBGEl2(arg) long arg;
{
printf(" BGE %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrBGEl4(arg) long arg;
{
printf(" BGE %ld\n", Lt_arg_4() * arg);
}
PRIVATE PrBGEs(hob, wfac) long hob; size wfac;
{
printf(" BGE %ld\n", St_arg(hob) * wfac);
}
PRIVATE PrBGTl2(arg) long arg;
{
printf(" BGT %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrBGTl4(arg) long arg;
{
printf(" BGT %ld\n", Lt_arg_4() * arg);
}
PRIVATE PrBGTs(hob, wfac) long hob; size wfac;
{
printf(" BGT %ld\n", St_arg(hob) * wfac);
}
PRIVATE PrBLEl2(arg) long arg;
{
printf(" BLE %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrBLEl4(arg) long arg;
{
printf(" BLE %ld\n", Lt_arg_4() * arg);
}
PRIVATE PrBLEs(hob, wfac) long hob; size wfac;
{
printf(" BLE %ld\n", St_arg(hob) * wfac);
}
PRIVATE PrBLMl2(arg) long arg;
{
printf(" BLM %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrBLMl4(arg) long arg;
{
printf(" BLM %ld\n", Lt_arg_4() * arg);
}
PRIVATE PrBLMs(hob, wfac) long hob; size wfac;
{
printf(" BLM %ld\n", St_arg(hob) * wfac);
}
PRIVATE PrBLSl2(arg) long arg;
{
printf(" BLS %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrBLSz() {
printf(" BLS\n");
}
PRIVATE PrBLTl2(arg) long arg;
{
printf(" BLT %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrBLTl4(arg) long arg;
{
printf(" BLT %ld\n", Lt_arg_4() * arg);
}
PRIVATE PrBLTs(hob, wfac) long hob; size wfac;
{
printf(" BLT %ld\n", St_arg(hob) * wfac);
}
PRIVATE PrBNEl2(arg) long arg;
{
printf(" BNE %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrBNEl4(arg) long arg;
{
printf(" BNE %ld\n", Lt_arg_4() * arg);
}
PRIVATE PrBNEs(hob, wfac) long hob; size wfac;
{
printf(" BNE %ld\n", St_arg(hob) * wfac);
}
PRIVATE PrBRAl2(arg) long arg;
{
printf(" BRA %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrBRAl4(arg) long arg;
{
printf(" BRA %ld\n", Lt_arg_4() * arg);
}
PRIVATE PrBRAs(hob, wfac) long hob; size wfac;
{
printf(" BRA %ld\n", St_arg(hob) * wfac);
}
PRIVATE PrCAIz() {
printf(" CAI\n");
}
PRIVATE PrCALl2(arg) long arg;
{
printf(" CAL %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrCALl4(arg) long arg;
{
printf(" CAL %ld\n", Lt_arg_4() * arg);
}
PRIVATE PrCALm(arg) long arg;
{
printf(" CAL %ld\n", arg);
}
PRIVATE PrCALs(hob, wfac) long hob; size wfac;
{
printf(" CAL %ld\n", St_arg(hob) * wfac);
}
PRIVATE PrCFFz() {
printf(" CFF\n");
}
PRIVATE PrCFIz() {
printf(" CFI\n");
}
PRIVATE PrCFUz() {
printf(" CFU\n");
}
PRIVATE PrCIFz() {
printf(" CIF\n");
}
PRIVATE PrCIIz() {
printf(" CII\n");
}
PRIVATE PrCIUz() {
printf(" CIU\n");
}
PRIVATE PrCMFl2(arg) long arg;
{
printf(" CMF %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrCMFs(hob, wfac) long hob; size wfac;
{
printf(" CMF %ld\n", St_arg(hob) * wfac);
}
PRIVATE PrCMFz() {
printf(" CMF\n");
}
PRIVATE PrCMIl2(arg) long arg;
{
printf(" CMI %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrCMIm(arg) long arg;
{
printf(" CMI %ld\n", arg);
}
PRIVATE PrCMIz() {
printf(" CMI\n");
}
PRIVATE PrCMPz() {
printf(" CMP\n");
}
PRIVATE PrCMSl2(arg) long arg;
{
printf(" CMS %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrCMSs(hob, wfac) long hob; size wfac;
{
printf(" CMS %ld\n", St_arg(hob) * wfac);
}
PRIVATE PrCMSz() {
printf(" CMS\n");
}
PRIVATE PrCMUl2(arg) long arg;
{
printf(" CMU %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrCMUz() {
printf(" CMU\n");
}
PRIVATE PrCOMl2(arg) long arg;
{
printf(" COM %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrCOMz() {
printf(" COM\n");
}
PRIVATE PrCSAl2(arg) long arg;
{
printf(" CSA %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrCSAm(arg) long arg;
{
printf(" CSA %ld\n", arg);
}
PRIVATE PrCSAz() {
printf(" CSA\n");
}
PRIVATE PrCSBl2(arg) long arg;
{
printf(" CSB %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrCSBm(arg) long arg;
{
printf(" CSB %ld\n", arg);
}
PRIVATE PrCSBz() {
printf(" CSB\n");
}
PRIVATE PrCUFz() {
printf(" CUF\n");
}
PRIVATE PrCUIz() {
printf(" CUI\n");
}
PRIVATE PrCUUz() {
printf(" CUU\n");
}
PRIVATE PrDCHz() {
printf(" DCH\n");
}
PRIVATE PrDECz() {
printf(" DEC\n");
}
PRIVATE PrDEEl2(arg) long arg;
{
printf(" DEE %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrDEEl4(arg) long arg;
{
printf(" DEE %ld\n", Lt_arg_4() * arg);
}
PRIVATE PrDEEs(hob, wfac) long hob; size wfac;
{
printf(" DEE %ld\n", St_arg(hob) * wfac);
}
PRIVATE PrDELn2(arg) long arg;
{
printf(" DEL %ld\n", Nt_arg_2() * arg);
}
PRIVATE PrDELn4(arg) long arg;
{
printf(" DEL %ld\n", Nt_arg_4() * arg);
}
PRIVATE PrDELp2(arg) long arg;
{
printf(" DEL %ld\n", Pt_arg_2() * arg);
}
PRIVATE PrDELp4(arg) long arg;
{
printf(" DEL %ld\n", Pt_arg_4() * arg);
}
PRIVATE PrDELs(hob, wfac) long hob; size wfac;
{
printf(" DEL %ld\n", St_arg(hob) * wfac);
}
PRIVATE PrDUPl2(arg) long arg;
{
printf(" DUP %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrDUPm(arg) long arg;
{
printf(" DUP %ld\n", arg);
}
PRIVATE PrDUSl2(arg) long arg;
{
printf(" DUS %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrDUSz() {
printf(" DUS\n");
}
PRIVATE PrDVFl2(arg) long arg;
{
printf(" DVF %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrDVFs(hob, wfac) long hob; size wfac;
{
printf(" DVF %ld\n", St_arg(hob) * wfac);
}
PRIVATE PrDVFz() {
printf(" DVF\n");
}
PRIVATE PrDVIl2(arg) long arg;
{
printf(" DVI %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrDVIm(arg) long arg;
{
printf(" DVI %ld\n", arg);
}
PRIVATE PrDVIz() {
printf(" DVI\n");
}
PRIVATE PrDVUl2(arg) long arg;
{
printf(" DVU %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrDVUz() {
printf(" DVU\n");
}
PRIVATE PrEXGl2(arg) long arg;
{
printf(" EXG %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrEXGs(hob, wfac) long hob; size wfac;
{
printf(" EXG %ld\n", St_arg(hob) * wfac);
}
PRIVATE PrEXGz() {
printf(" EXG\n");
}
PRIVATE PrFEFl2(arg) long arg;
{
printf(" FEF %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrFEFz() {
printf(" FEF\n");
}
PRIVATE PrFIFl2(arg) long arg;
{
printf(" FIF %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrFIFz() {
printf(" FIF\n");
}
PRIVATE PrFILu(arg) long arg;
{
printf(" FIL %ld\n", Ut_arg() * arg);
}
PRIVATE PrFILl4(arg) long arg;
{
printf(" FIL %ld\n", Lt_arg_4() * arg);
}
PRIVATE PrGTOu(arg) long arg;
{
printf(" GTO %ld\n", Ut_arg() * arg);
}
PRIVATE PrGTOl4(arg) long arg;
{
printf(" GTO %ld\n", Lt_arg_4() * arg);
}
PRIVATE PrINCz() {
printf(" INC\n");
}
PRIVATE PrINEl2(arg) long arg;
{
printf(" INE %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrINEl4(arg) long arg;
{
printf(" INE %ld\n", Lt_arg_4() * arg);
}
PRIVATE PrINEs(hob, wfac) long hob; size wfac;
{
printf(" INE %ld\n", St_arg(hob) * wfac);
}
PRIVATE PrINLm(arg) long arg;
{
printf(" INL %ld\n", arg);
}
PRIVATE PrINLn2(arg) long arg;
{
printf(" INL %ld\n", Nt_arg_2() * arg);
}
PRIVATE PrINLn4(arg) long arg;
{
printf(" INL %ld\n", Nt_arg_4() * arg);
}
PRIVATE PrINLp2(arg) long arg;
{
printf(" INL %ld\n", Pt_arg_2() * arg);
}
PRIVATE PrINLp4(arg) long arg;
{
printf(" INL %ld\n", Pt_arg_4() * arg);
}
PRIVATE PrINLs(hob, wfac) long hob; size wfac;
{
printf(" INL %ld\n", St_arg(hob) * wfac);
}
PRIVATE PrINNl2(arg) long arg;
{
printf(" INN %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrINNs(hob, wfac) long hob; size wfac;
{
printf(" INN %ld\n", St_arg(hob) * wfac);
}
PRIVATE PrINNz() {
printf(" INN\n");
}
PRIVATE PrIORl2(arg) long arg;
{
printf(" IOR %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrIORm(arg) long arg;
{
printf(" IOR %ld\n", arg);
}
PRIVATE PrIORs(hob, wfac) long hob; size wfac;
{
printf(" IOR %ld\n", St_arg(hob) * wfac);
}
PRIVATE PrIORz() {
printf(" IOR\n");
}
PRIVATE PrLAEu(arg) long arg;
{
printf(" LAE %ld\n", Ut_arg() * arg);
}
PRIVATE PrLAEl4(arg) long arg;
{
printf(" LAE %ld\n", Lt_arg_4() * arg);
}
PRIVATE PrLAEs(hob, wfac) long hob; size wfac;
{
printf(" LAE %ld\n", St_arg(hob) * wfac);
}
PRIVATE PrLALm(arg) long arg;
{
printf(" LAL %ld\n", arg);
}
PRIVATE PrLALn2(arg) long arg;
{
printf(" LAL %ld\n", Nt_arg_2() * arg);
}
PRIVATE PrLALn4(arg) long arg;
{
printf(" LAL %ld\n", Nt_arg_4() * arg);
}
PRIVATE PrLALp2(arg) long arg;
{
printf(" LAL %ld\n", Pt_arg_2() * arg);
}
PRIVATE PrLALp4(arg) long arg;
{
printf(" LAL %ld\n", Pt_arg_4() * arg);
}
PRIVATE PrLALs(hob, wfac) long hob; size wfac;
{
printf(" LAL %ld\n", St_arg(hob) * wfac);
}
PRIVATE PrLARl2(arg) long arg;
{
printf(" LAR %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrLARm(arg) long arg;
{
printf(" LAR %ld\n", arg);
}
PRIVATE PrLARz() {
printf(" LAR\n");
}
PRIVATE PrLDCl2(arg) long arg;
{
printf(" LDC %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrLDCl4(arg) long arg;
{
printf(" LDC %ld\n", Lt_arg_4() * arg);
}
PRIVATE PrLDCm(arg) long arg;
{
printf(" LDC %ld\n", arg);
}
PRIVATE PrLDEl2(arg) long arg;
{
printf(" LDE %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrLDEl4(arg) long arg;
{
printf(" LDE %ld\n", Lt_arg_4() * arg);
}
PRIVATE PrLDEs(hob, wfac) long hob; size wfac;
{
printf(" LDE %ld\n", St_arg(hob) * wfac);
}
PRIVATE PrLDFl2(arg) long arg;
{
printf(" LDF %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrLDFl4(arg) long arg;
{
printf(" LDF %ld\n", Lt_arg_4() * arg);
}
PRIVATE PrLDLm(arg) long arg;
{
printf(" LDL %ld\n", arg);
}
PRIVATE PrLDLn2(arg) long arg;
{
printf(" LDL %ld\n", Nt_arg_2() * arg);
}
PRIVATE PrLDLn4(arg) long arg;
{
printf(" LDL %ld\n", Nt_arg_4() * arg);
}
PRIVATE PrLDLp2(arg) long arg;
{
printf(" LDL %ld\n", Pt_arg_2() * arg);
}
PRIVATE PrLDLp4(arg) long arg;
{
printf(" LDL %ld\n", Pt_arg_4() * arg);
}
PRIVATE PrLDLs(hob, wfac) long hob; size wfac;
{
printf(" LDL %ld\n", St_arg(hob) * wfac);
}
PRIVATE PrLFRl2(arg) long arg;
{
printf(" LFR %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrLFRm(arg) long arg;
{
printf(" LFR %ld\n", arg);
}
PRIVATE PrLFRs(hob, wfac) long hob; size wfac;
{
printf(" LFR %ld\n", St_arg(hob) * wfac);
}
PRIVATE PrLILm(arg) long arg;
{
printf(" LIL %ld\n", arg);
}
PRIVATE PrLILn2(arg) long arg;
{
printf(" LIL %ld\n", Nt_arg_2() * arg);
}
PRIVATE PrLILn4(arg) long arg;
{
printf(" LIL %ld\n", Nt_arg_4() * arg);
}
PRIVATE PrLILp2(arg) long arg;
{
printf(" LIL %ld\n", Pt_arg_2() * arg);
}
PRIVATE PrLILp4(arg) long arg;
{
printf(" LIL %ld\n", Pt_arg_4() * arg);
}
PRIVATE PrLILs(hob, wfac) long hob; size wfac;
{
printf(" LIL %ld\n", St_arg(hob) * wfac);
}
PRIVATE PrLIMz() {
printf(" LIM\n");
}
PRIVATE PrLINl2(arg) long arg;
{
printf(" LIN %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrLINl4(arg) long arg;
{
printf(" LIN %ld\n", Lt_arg_4() * arg);
}
PRIVATE PrLINs(hob, wfac) long hob; size wfac;
{
printf(" LIN %ld\n", St_arg(hob) * wfac);
}
PRIVATE PrLNIz() {
printf(" LNI\n");
}
PRIVATE PrLOCl2(arg) long arg;
{
printf(" LOC %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrLOCl4(arg) long arg;
{
printf(" LOC %ld\n", Lt_arg_4() * arg);
}
PRIVATE PrLOCm(arg) long arg;
{
printf(" LOC %ld\n", arg);
}
PRIVATE PrLOCs(hob, wfac) long hob; size wfac;
{
printf(" LOC %ld\n", St_arg(hob) * wfac);
}
PRIVATE PrLOEl2(arg) long arg;
{
printf(" LOE %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrLOEl4(arg) long arg;
{
printf(" LOE %ld\n", Lt_arg_4() * arg);
}
PRIVATE PrLOEs(hob, wfac) long hob; size wfac;
{
printf(" LOE %ld\n", St_arg(hob) * wfac);
}
PRIVATE PrLOFl2(arg) long arg;
{
printf(" LOF %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrLOFl4(arg) long arg;
{
printf(" LOF %ld\n", Lt_arg_4() * arg);
}
PRIVATE PrLOFm(arg) long arg;
{
printf(" LOF %ld\n", arg);
}
PRIVATE PrLOFs(hob, wfac) long hob; size wfac;
{
printf(" LOF %ld\n", St_arg(hob) * wfac);
}
PRIVATE PrLOIl2(arg) long arg;
{
printf(" LOI %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrLOIl4(arg) long arg;
{
printf(" LOI %ld\n", Lt_arg_4() * arg);
}
PRIVATE PrLOIm(arg) long arg;
{
printf(" LOI %ld\n", arg);
}
PRIVATE PrLOIs(hob, wfac) long hob; size wfac;
{
printf(" LOI %ld\n", St_arg(hob) * wfac);
}
PRIVATE PrLOLm(arg) long arg;
{
printf(" LOL %ld\n", arg);
}
PRIVATE PrLOLn2(arg) long arg;
{
printf(" LOL %ld\n", Nt_arg_2() * arg);
}
PRIVATE PrLOLn4(arg) long arg;
{
printf(" LOL %ld\n", Nt_arg_4() * arg);
}
PRIVATE PrLOLp2(arg) long arg;
{
printf(" LOL %ld\n", Pt_arg_2() * arg);
}
PRIVATE PrLOLp4(arg) long arg;
{
printf(" LOL %ld\n", Pt_arg_4() * arg);
}
PRIVATE PrLOLs(hob, wfac) long hob; size wfac;
{
printf(" LOL %ld\n", St_arg(hob) * wfac);
}
PRIVATE PrLORs(hob, wfac) long hob; size wfac;
{
printf(" LOR %ld\n", St_arg(hob) * wfac);
}
PRIVATE PrLOSl2(arg) long arg;
{
printf(" LOS %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrLOSz() {
printf(" LOS\n");
}
PRIVATE PrLPBz() {
printf(" LPB\n");
}
PRIVATE PrLPIl2(arg) long arg;
{
printf(" LPI %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrLPIl4(arg) long arg;
{
printf(" LPI %ld\n", Lt_arg_4() * arg);
}
PRIVATE PrLXAl2(arg) long arg;
{
printf(" LXA %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrLXAm(arg) long arg;
{
printf(" LXA %ld\n", arg);
}
PRIVATE PrLXLl2(arg) long arg;
{
printf(" LXL %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrLXLm(arg) long arg;
{
printf(" LXL %ld\n", arg);
}
PRIVATE PrMLFl2(arg) long arg;
{
printf(" MLF %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrMLFs(hob, wfac) long hob; size wfac;
{
printf(" MLF %ld\n", St_arg(hob) * wfac);
}
PRIVATE PrMLFz() {
printf(" MLF\n");
}
PRIVATE PrMLIl2(arg) long arg;
{
printf(" MLI %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrMLIm(arg) long arg;
{
printf(" MLI %ld\n", arg);
}
PRIVATE PrMLIz() {
printf(" MLI\n");
}
PRIVATE PrMLUl2(arg) long arg;
{
printf(" MLU %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrMLUz() {
printf(" MLU\n");
}
PRIVATE PrMONz() {
printf(" MON\n");
}
PRIVATE PrNGFl2(arg) long arg;
{
printf(" NGF %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrNGFz() {
printf(" NGF\n");
}
PRIVATE PrNGIl2(arg) long arg;
{
printf(" NGI %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrNGIz() {
printf(" NGI\n");
}
PRIVATE PrNOPz() {
printf(" NOP\n");
}
PRIVATE PrRCKl2(arg) long arg;
{
printf(" RCK %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrRCKm(arg) long arg;
{
printf(" RCK %ld\n", arg);
}
PRIVATE PrRCKz() {
printf(" RCK\n");
}
PRIVATE PrRETl2(arg) long arg;
{
printf(" RET %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrRETm(arg) long arg;
{
printf(" RET %ld\n", arg);
}
PRIVATE PrRETs(hob, wfac) long hob; size wfac;
{
printf(" RET %ld\n", St_arg(hob) * wfac);
}
PRIVATE PrRMIl2(arg) long arg;
{
printf(" RMI %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrRMIm(arg) long arg;
{
printf(" RMI %ld\n", arg);
}
PRIVATE PrRMIz() {
printf(" RMI\n");
}
PRIVATE PrRMUl2(arg) long arg;
{
printf(" RMU %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrRMUz() {
printf(" RMU\n");
}
PRIVATE PrROLl2(arg) long arg;
{
printf(" ROL %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrROLz() {
printf(" ROL\n");
}
PRIVATE PrRORl2(arg) long arg;
{
printf(" ROR %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrRORz() {
printf(" ROR\n");
}
PRIVATE PrRTTz() {
printf(" RTT\n");
}
PRIVATE PrSARl2(arg) long arg;
{
printf(" SAR %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrSARm(arg) long arg;
{
printf(" SAR %ld\n", arg);
}
PRIVATE PrSARz() {
printf(" SAR\n");
}
PRIVATE PrSBFl2(arg) long arg;
{
printf(" SBF %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrSBFs(hob, wfac) long hob; size wfac;
{
printf(" SBF %ld\n", St_arg(hob) * wfac);
}
PRIVATE PrSBFz() {
printf(" SBF\n");
}
PRIVATE PrSBIl2(arg) long arg;
{
printf(" SBI %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrSBIm(arg) long arg;
{
printf(" SBI %ld\n", arg);
}
PRIVATE PrSBIz() {
printf(" SBI\n");
}
PRIVATE PrSBSl2(arg) long arg;
{
printf(" SBS %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrSBSz() {
printf(" SBS\n");
}
PRIVATE PrSBUl2(arg) long arg;
{
printf(" SBU %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrSBUz() {
printf(" SBU\n");
}
PRIVATE PrSDEu(arg) long arg;
{
printf(" SDE %ld\n", Ut_arg() * arg);
}
PRIVATE PrSDEl4(arg) long arg;
{
printf(" SDE %ld\n", Lt_arg_4() * arg);
}
PRIVATE PrSDFl2(arg) long arg;
{
printf(" SDF %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrSDFl4(arg) long arg;
{
printf(" SDF %ld\n", Lt_arg_4() * arg);
}
PRIVATE PrSDLn2(arg) long arg;
{
printf(" SDL %ld\n", Nt_arg_2() * arg);
}
PRIVATE PrSDLn4(arg) long arg;
{
printf(" SDL %ld\n", Nt_arg_4() * arg);
}
PRIVATE PrSDLp2(arg) long arg;
{
printf(" SDL %ld\n", Pt_arg_2() * arg);
}
PRIVATE PrSDLp4(arg) long arg;
{
printf(" SDL %ld\n", Pt_arg_4() * arg);
}
PRIVATE PrSDLs(hob, wfac) long hob; size wfac;
{
printf(" SDL %ld\n", St_arg(hob) * wfac);
}
PRIVATE PrSETl2(arg) long arg;
{
printf(" SET %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrSETs(hob, wfac) long hob; size wfac;
{
printf(" SET %ld\n", St_arg(hob) * wfac);
}
PRIVATE PrSETz() {
printf(" SET\n");
}
PRIVATE PrSIGz() {
printf(" SIG\n");
}
PRIVATE PrSILn2(arg) long arg;
{
printf(" SIL %ld\n", Nt_arg_2() * arg);
}
PRIVATE PrSILn4(arg) long arg;
{
printf(" SIL %ld\n", Nt_arg_4() * arg);
}
PRIVATE PrSILp2(arg) long arg;
{
printf(" SIL %ld\n", Pt_arg_2() * arg);
}
PRIVATE PrSILp4(arg) long arg;
{
printf(" SIL %ld\n", Pt_arg_4() * arg);
}
PRIVATE PrSILs(hob, wfac) long hob; size wfac;
{
printf(" SIL %ld\n", St_arg(hob) * wfac);
}
PRIVATE PrSIMz() {
printf(" SIM\n");
}
PRIVATE PrSLIl2(arg) long arg;
{
printf(" SLI %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrSLIm(arg) long arg;
{
printf(" SLI %ld\n", arg);
}
PRIVATE PrSLIz() {
printf(" SLI\n");
}
PRIVATE PrSLUl2(arg) long arg;
{
printf(" SLU %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrSLUz() {
printf(" SLU\n");
}
PRIVATE PrSRIl2(arg) long arg;
{
printf(" SRI %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrSRIz() {
printf(" SRI\n");
}
PRIVATE PrSRUl2(arg) long arg;
{
printf(" SRU %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrSRUz() {
printf(" SRU\n");
}
PRIVATE PrSTEl2(arg) long arg;
{
printf(" STE %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrSTEl4(arg) long arg;
{
printf(" STE %ld\n", Lt_arg_4() * arg);
}
PRIVATE PrSTEs(hob, wfac) long hob; size wfac;
{
printf(" STE %ld\n", St_arg(hob) * wfac);
}
PRIVATE PrSTFl2(arg) long arg;
{
printf(" STF %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrSTFl4(arg) long arg;
{
printf(" STF %ld\n", Lt_arg_4() * arg);
}
PRIVATE PrSTFm(arg) long arg;
{
printf(" STF %ld\n", arg);
}
PRIVATE PrSTFs(hob, wfac) long hob; size wfac;
{
printf(" STF %ld\n", St_arg(hob) * wfac);
}
PRIVATE PrSTIl2(arg) long arg;
{
printf(" STI %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrSTIl4(arg) long arg;
{
printf(" STI %ld\n", Lt_arg_4() * arg);
}
PRIVATE PrSTIm(arg) long arg;
{
printf(" STI %ld\n", arg);
}
PRIVATE PrSTIs(hob, wfac) long hob; size wfac;
{
printf(" STI %ld\n", St_arg(hob) * wfac);
}
PRIVATE PrSTLm(arg) long arg;
{
printf(" STL %ld\n", arg);
}
PRIVATE PrSTLn2(arg) long arg;
{
printf(" STL %ld\n", Nt_arg_2() * arg);
}
PRIVATE PrSTLn4(arg) long arg;
{
printf(" STL %ld\n", Nt_arg_4() * arg);
}
PRIVATE PrSTLp2(arg) long arg;
{
printf(" STL %ld\n", Pt_arg_2() * arg);
}
PRIVATE PrSTLp4(arg) long arg;
{
printf(" STL %ld\n", Pt_arg_4() * arg);
}
PRIVATE PrSTLs(hob, wfac) long hob; size wfac;
{
printf(" STL %ld\n", St_arg(hob) * wfac);
}
PRIVATE PrSTRs(hob, wfac) long hob; size wfac;
{
printf(" STR %ld\n", St_arg(hob) * wfac);
}
PRIVATE PrSTSl2(arg) long arg;
{
printf(" STS %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrSTSz() {
printf(" STS\n");
}
PRIVATE PrTEQz() {
printf(" TEQ\n");
}
PRIVATE PrTGEz() {
printf(" TGE\n");
}
PRIVATE PrTGTz() {
printf(" TGT\n");
}
PRIVATE PrTLEz() {
printf(" TLE\n");
}
PRIVATE PrTLTz() {
printf(" TLT\n");
}
PRIVATE PrTNEz() {
printf(" TNE\n");
}
PRIVATE PrTRPz() {
printf(" TRP\n");
}
PRIVATE PrXORl2(arg) long arg;
{
printf(" XOR %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrXORz() {
printf(" XOR\n");
}
PRIVATE PrZEQl2(arg) long arg;
{
printf(" ZEQ %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrZEQl4(arg) long arg;
{
printf(" ZEQ %ld\n", Lt_arg_4() * arg);
}
PRIVATE PrZEQs(hob, wfac) long hob; size wfac;
{
printf(" ZEQ %ld\n", St_arg(hob) * wfac);
}
PRIVATE PrZERl2(arg) long arg;
{
printf(" ZER %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrZERs(hob, wfac) long hob; size wfac;
{
printf(" ZER %ld\n", St_arg(hob) * wfac);
}
PRIVATE PrZERz() {
printf(" ZER\n");
}
PRIVATE PrZGEl2(arg) long arg;
{
printf(" ZGE %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrZGEl4(arg) long arg;
{
printf(" ZGE %ld\n", Lt_arg_4() * arg);
}
PRIVATE PrZGEs(hob, wfac) long hob; size wfac;
{
printf(" ZGE %ld\n", St_arg(hob) * wfac);
}
PRIVATE PrZGTl2(arg) long arg;
{
printf(" ZGT %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrZGTl4(arg) long arg;
{
printf(" ZGT %ld\n", Lt_arg_4() * arg);
}
PRIVATE PrZGTs(hob, wfac) long hob; size wfac;
{
printf(" ZGT %ld\n", St_arg(hob) * wfac);
}
PRIVATE PrZLEl2(arg) long arg;
{
printf(" ZLE %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrZLEl4(arg) long arg;
{
printf(" ZLE %ld\n", Lt_arg_4() * arg);
}
PRIVATE PrZLEs(hob, wfac) long hob; size wfac;
{
printf(" ZLE %ld\n", St_arg(hob) * wfac);
}
PRIVATE PrZLTl2(arg) long arg;
{
printf(" ZLT %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrZLTl4(arg) long arg;
{
printf(" ZLT %ld\n", Lt_arg_4() * arg);
}
PRIVATE PrZLTs(hob, wfac) long hob; size wfac;
{
printf(" ZLT %ld\n", St_arg(hob) * wfac);
}
PRIVATE PrZNEl2(arg) long arg;
{
printf(" ZNE %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrZNEl4(arg) long arg;
{
printf(" ZNE %ld\n", Lt_arg_4() * arg);
}
PRIVATE PrZNEs(hob, wfac) long hob; size wfac;
{
printf(" ZNE %ld\n", St_arg(hob) * wfac);
}
PRIVATE PrZREl2(arg) long arg;
{
printf(" ZRE %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrZREl4(arg) long arg;
{
printf(" ZRE %ld\n", Lt_arg_4() * arg);
}
PRIVATE PrZREs(hob, wfac) long hob; size wfac;
{
printf(" ZRE %ld\n", St_arg(hob) * wfac);
}
PRIVATE PrZRFl2(arg) long arg;
{
printf(" ZRF %ld\n", Lt_arg_2() * arg);
}
PRIVATE PrZRFz() {
printf(" ZRF\n");
}
PRIVATE PrZRLm(arg) long arg;
{
printf(" ZRL %ld\n", arg);
}
PRIVATE PrZRLn2(arg) long arg;
{
printf(" ZRL %ld\n", Nt_arg_2() * arg);
}
PRIVATE PrZRLn4(arg) long arg;
{
printf(" ZRL %ld\n", Nt_arg_4() * arg);
}
PRIVATE PrZRLp2(arg) long arg;
{
printf(" ZRL %ld\n", Pt_arg_2() * arg);
}
PRIVATE PrZRLp4(arg) long arg;
{
printf(" ZRL %ld\n", Pt_arg_4() * arg);
}
PRIVATE PrZRLs(hob, wfac) long hob; size wfac;
{
printf(" ZRL %ld\n", St_arg(hob) * wfac);
}
/* Original code! */
/******** Disassembly of Text Segment ********/
struct ep { /* procedure entry points */
int ep_idf;
ptr ep_ep;
size ep_nloc;
};
disassemble()
{
register ptr low = 0;
register ptr high = DB;
register int idf;
register int cnt;
struct ep *ep; /* list of entry points */
/* collect the entry points */
ep = (struct ep *)Malloc((size)(NProc * sizeof (struct ep)),
"entry points");
for (idf = 0; idf < NProc; idf++) {
register struct proc *pr = &proctab[idf];
ep[idf].ep_idf = idf;
ep[idf].ep_ep = pr->pr_ep;
ep[idf].ep_nloc = pr->pr_nloc;
}
/* a very naive sorting algorithm */
for (idf = 0; idf < NProc; idf++) {
register int jdf;
for (jdf = 0; jdf < NProc; jdf++) {
if ( (ep[idf].ep_ep < ep[jdf].ep_ep)
!= (idf < jdf)
) {
struct ep p;
p = ep[idf];
ep[idf] = ep[jdf];
ep[jdf] = p;
}
}
}
TC = low;
cnt = 0;
idf = 0;
while (TC < high) {
if (cnt == 0) {
printf("%lu\n", TC);
}
cnt = (cnt + 1) % 10;
if (idf < NProc && TC >=ep[idf].ep_ep) {
register struct ep *p = &ep[idf];
printf("P[%d]+%lu: ; %ld %s\n",
p->ep_idf, TC - p->ep_ep,
p->ep_nloc,
p->ep_nloc == 1 ? "local" : "locals");
idf++;
}
do_pr_instr(nextTCbyte()); /* advances TC */
}
}
/* See switch.c */
PRIVATE do_pr_instr(opcode)
unsigned int opcode;
{
switch (opcode) {
#include "PrCases" /* for the muscle */
1988-06-22 16:57:09 +00:00
case SECONDARY:
do_pr_instr(SEC_BASE + nextTCbyte());
break;
case TERTIARY:
do_pr_instr(TERT_BASE + nextTCbyte());
break;
default:
1989-04-17 10:10:59 +00:00
printf(">>>> bad opcode %u at PC = %lu <<<<\n",
1988-06-22 16:57:09 +00:00
opcode, TC);
break;
}
}