/* For disassembling the text segment. */ /* $Header$ */ #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 "switch/PrCases" /* for the muscle */ case SECONDARY: do_pr_instr(SEC_BASE + nextTCbyte()); break; case TERTIARY: do_pr_instr(TERT_BASE + nextTCbyte()); break; default: printf(">>>> bad opcode %d at PC = %lu <<<<\n", opcode, TC); break; } }