File: MONDUM.PA of Disk: Disks/MyPDP/m8-blue-rka1-rkb1
(Source file text)
/MONDUM.PA 1-FEB-86 / /FUNCTION:THIS PROGRAM MAKES A QUICK DUMP ON THE LINEPRIN- / TER OF ALL INTERESTING PARAMETERS IN THE FOREGROUND / MONITOR. THIS IS DONE BY LISTING THE MOST IMPORTANT / PARAMETERS FIRST AND THEN SOME MORE DETAILED DATA. / /CONCEPT:THIS PROGRAM IS INTENDED TO ASSIST THE INTERPRETA- / TION OF ERRORS THAT OCCURRED. ONE CAN NOW USE THIS / PROGRAM TO EXAMINE MORE EASILY WHAT HAS HAPPENED. / THE MODULE WORKS WITH LABELS, GENERATED DURING THE / ASSEMBLY OF THE FOREGROUND MONITOR [MS.PA). / IT WORKS UNDER OS/8 AFTER A RUN OF MULTI8, AS WELL / AS UNDER MULTI8 FROM THE BACKGROUND. IN BOTH CASES / IS WORKS IN HIS OWN WAY. UNDER OS/8 IT JUST FETCHES / DATA FROM FIELD 0, UNDER MULTI8 IT USES THE SPY-IOT / (6264) FOLLOWED BY THE REQUESTED FIELD. / /DESCRIPTION:THIS CAN BE ILLUSTRATED BY A TYPEOUT SAMPLE. / /SPECIAL:AFTER COMPLETION THE PROGRAM JUMPS TO THE KEYBOARD / MONITOR. / TYPE-OUT CAN BE STOPPED BY PRESSING THE CTRL/C KEY. / ONCE ASSEMBLED, THE PROGRAM CAN BE FORCED TO RUN IN / ANY FIELD. WHEN IT IS LOADED IN THE SAME FIELD AS / THE MULTI8 MONITOR, THE CORE AREA FROM L=BEGIN&7400 /TO L=PROGEND&7600+177 /WILL BE OVERLAIED. /OUTPUT ROUTINE IS DEVICE-DEPENDENT. IFDEF LE8E <DEVNR=66> IFNDEF DEVNR <DEVNR=04 /IF NO LINEPRINTER:TELETYPE > /START ADDRESS BEGIN=200 /START ADDRESS FOR .R MONDUM CHAIN=201 /START WHEN CHAINED TO FROM MULTI8 SM8=6254 /SKIP ON MULTI8 SPY=6264 /"LOOK IN REAL MEMORY" SYSHND=7607 /ENTRY OF OS/8 SYSTEM HANDLER *BEGIN SKP JMP MCHAIN SM8 /SKIP ON MULTI8, [BACKGROUND) JMP NOM8 /THIS MUST BE AFTERWARDS TAD FETCH5 /REPLACE "JMP I FETCH" DCA FETCH3 JMP YESM8 NOM8, MCHAIN, TAD DCATM2 /NOT IN THE BACKGROUND DCA FETCH1 /DCA TEM2 YESM8, KCF /KILL ^O RDF TAD FETCH4 DCA FETCH4 /SET CORRECT CDF JMS PRMESG /*MULTI8 V.. MONITOR DUMP. DATE * JMS SETFLD CDF 10 JMS FETCH 7666 DCA FETCH TAD FETCH CLL RAL RTL RTL AND [17 /MONTH JMS DECTYPE /PRINT DECIMAL TWO DIGITS TAD ["/-240 JMS I [OUTPUT TAD FETCH CLL RAR RTR AND [37 /DAY OF MONTH JMS DECTYPE TAD ["/-240 JMS I [OUTPUT TAD FETCH AND [7 TAD [116 /ADD "78" OCTAL JMS DECTYPE JMS SETFLD CDF 0 IFNDEF NOTIME < /PRINT THE TIME. JMS PRMESG /*TIME * JMS FETCH TIME+3 TAD [30 /ADD "24" OCTAL JMS DECTYPE TAD [":-240 JMS I [OUTPUT JMS FETCH TIME+2 /MINUTES TAD [74 /ADD "60" OCTAL JMS DECTYPE > JMS I [CRLF2 /PRINT CURTSK JMS PRMESG /*CURTSK* JMS FETCH /FETCH CURTSK CURTSK JMS I [OCTYPE /PRINT # OF FREECORE BLOCKS JMS PRMESG /*FREE BLOCKS * TAD [-MAXNAM JMP I [DU0 DECTYPE,0 /DECIMAL PRINT ROUTINE [2 DIGITS) DCA TEM1 DCATM2, DCA TEM2 TAD TEM1 DECNXT, TAD [-12 /SUBSTRACT 10 UNTIL RESULT IS NEG. SPA JMP DECFND /READY, THAT IS: 10 TOO FEW ISZ TEM2 /10 MORE JMP DECNXT DECFND, DCA TEM1 /10 TOO FEW TAD TEM2 TAD [260-240 JMS I [OUTPUT /PRINT FIRST DIGIT TAD TEM1 TAD [12+260-240 JMS I [OUTPUT /PRINT SECOND DIGIT JMP I DECTYPE /FETCH A WORD FROM REAL CORE / JMS FETCH / ADDRESS / RETURN WITH WORD IN AC FETCH, 0 TAD I FETCH ISZ FETCH FETCH1, SPY /IN FOREGROUND: DCA TEM2 FETCH2, CDF 00 /OR 10... FETCH3, TAD I TEM2 /IN BACKGROUND: JMP I FETCH FETCH4, CDF /CDF TO CURRENT INSTRUCTION FIELD FETCH5, JMP I FETCH SETFLD, 0 /SET CDF X IN FETCH ROUTINE TAD I SETFLD ISZ SETFLD DCA FETCH2 JMP I SETFLD /PRINT A MESSAGE CODED WITH THE PAL PSEUDO-OP /'TEXT'. PAL3 AND PAL8 COMPATIBLE / / JMS PRMESG / MESG / RETURN /AC=0 / /MESG, TEXT 'ABC82' /CODED AS 0102;0370;6200 PRMESG, 0 PRM1, ACM1 DCA PACKSW /PACKSW=RIGHT ISZ POINT /NEXT WORD TAD I POINT /FETCH AND ROTATE 6 BSW PRM2, AND [77 /MASK 6 BITS SNA JMP I PRMESG /ZERO ENDS THE LIST TAD [240 AND [77 JMS I [OUTPUT ISZ PACKSW /LEFT OR RIGHT? JMP PRM1 /LEFT TAD I POINT /RIGHT JMP PRM2 POINT, DAT-1 PACKSW, 0 TEM1=PRMESG TEM2=PACKSW PAGE NAMTAB, FHEAD IHEAD MHEAD CHEAD ESCNT, 0 PRQCNT=DPNTPP DU0, DCA ESCNT TADNTB, TAD NAMTAB DU1, DCA DUPTR JMS I [FETCH DUPTR, 0 ISZ ESCNT /COUNT THE NUMBER SNA SKP CLA /ESCAPE FROM ENDLES CHAIN !!!! JMP DU1 /LOOP TAD [MAXNAM-1 /ONE TOO MUCH TAD ESCNT /PRINT THE NUMBER JMS OCTYPE JMS I [PRMESG /ERRTSK JMS I [FETCH ERRTSK JMS OCTYPE JMS I [PRMESG /AT JMS I [FETCH ALARM JMS OCTYPE JMS I [PRMESG /ERRLOG JMS I [FETCH ERRLOG JMS I [OCTYPE JMS I [PRMESG /ERSTAT JMS I [FETCH ERSTAT JMS I [OCTYPE IFNZRO BGMAX < JMS I [CRLF JMS I [PRMESG /BJOB JMS I [SETFLD CDF 10 JMS I [FETCH BJOB JMS OCTYPE JMS I [PRMESG /SJOB JMS I [SETFLD CDF JMS I [FETCH SJOB JMS OCTYPE JMS I [PRMESG /LJOB JMS I [FETCH LJOB JMS OCTYPE > JMS I [CRLF2 /PRINT CONTENT OF INTQ, PRIQ, CORQ, FREQ QCNT=DPNT TAD TADNTB DCA QTAB TAD [-4 DCA QCNT TAD [-10 DCA I [TABINT QLOOP, JMS I [PRMESG QTAB, TAD NAMTAB DCA PRQP TAD [-10 DCA ESCNT PRQ1, TAD [-10 DCA PRQCNT PRQ2, JMS I [TAB TAD PRQP JMS OCTYPE /PRINT THE THREAD JMS I [FETCH PRQP, FHEAD SNA JMP PRQEND /ZERO ENDS THE CHAIN DCA PRQP ISZ PRQCNT /NEXT ITEM. ONE LINE READY ? JMP PRQ2 /N JMS I [CRLF /Y ISZ ESCNT JMP PRQ1 PRQEND, ISZ QTAB JMS I [CRLF ISZ QCNT JMP QLOOP JMP I [DU8 DPNTPP, 0 DPNT, 0 DPNTP, 0 SWITCH, 20 /PRINT AC IN OCTAL. THE PRINT ROUTINE MAY DESTROY THE LINK TEMP=DUPTR COUNT=DPNTP OCTEM, 0 OCT, OCTYPE, 0 DCA TEMP TAD [-4 DCA COUNT OCT1, TAD TEMP RAL RTL DCA TEMP TAD TEMP RAL AND [7 SNA JMP OCTPR DCA OCTEM TAD [260-240 /MAKE ASCII DCA SWITCH TAD OCTEM OCTPR, TAD SWITCH JMS I [OUTPUT ISZ COUNT JMP OCT1 /LOOP JMP I OCTYPE /IF READY:LINK=0;AC=0 PAGE F1, 0 /CONTAINS FIELD TO PRINT CNT, 0 /COUNTER PC, 0 /TEMPORARY PROGR COUNTER TEM3, 0 /CONTAINS ENTRY IN COREMAP CNTIN, 0 /INNER LOOP COUNTER TABLE, "$^100+"$ "[^100+"[ "]^100+"] ".^100+". DU8, JMS I [CRLF JMS I [PRMESG /SYSQUE TAD [SYSQ DCA I [DUMPP /SET POINTER TO SYSQ JMS I [DUMP -SYSMAX^2 /COUNT KCF /KILL ^O JMS I [CRLF2 JMS I [PRMESG /COREMAP TAD [CORMAP /SET UP BEGINADDRESS DCA DU12 TAD [CORMAP-MAPEND /TOTAL COUNT DCA CNT TAD [37 DCA F1 /SET HALF FIELD COUNTER JMP DU10 DU9, ISZ CNTIN JMP DU11 DU10, TAD [-2 DCA I [TABINT TAD [-20 /20 ENTRIES ON ONE LINE DU10A, DCA CNTIN JMS I [CRLF ISZ F1 /INCREMENT HALF FIELD COUNTER TAD F1 /PRINT FIELD CLL RAR JMS I [OUTPUT DU11, JMS I [TAB TAD [-4 DCA I [TABINT /THERE ARE 6 POSSIBILITIES: /0000 THIS PAGE IS FREE;PRINT .. /7777 THIS PAGE IS A BUFFER;PRINT ]] /7776 THIS PAGE IS A BUFFER;PRINT [[ /7775 THIS PAGE OCCUPIED BY MONITOR;PRINT $$ /NEG. THIS PAGE IS ACTIVE:PRINT TASK'S NAME /POS. THIS PAGE HAS BEEN USED BY A TASK: PRINT -NAME JMS I [FETCH DU12, CORMAP DCA TEM3 TAD TEM3 SMA SZA CLA TAD ["--240 /PRINT - JMS I [OUTPUT /OR SPACE ACM1 TAD TEM3 CLL TAD [4 SNA SZL JMP DU13 TAD [-3 CM300, SMA CIA TAD [-TCBTAB-4 /COMPUTE OFFSET IN NAMLST CLL RTR RAR TAD [NAMLST DCA DU14 JMS I [FETCH /FETCH THE NAME DU14, 0 JMP DU17 DU13, TAD [TABLE DCA TEM3 TAD I TEM3 DU17, JMS TYPH /TYPE HASHED NAME DU18, ISZ DU12 ISZ CNT /ALL DONE? JMP DU9 TAD [-5 DCA I [TABINT JMP I [DU23 /TYPE AC AS TWO CHARACTERS;6 BIT TYPN, 0 DCA TEM3 TAD TEM3 BSW JMS TYP6 TAD TEM3 JMS TYP6 JMP I TYPN TYP6, 0 TAD [240 AND [77 JMS I [OUTPUT JMP I TYP6 /TYPE AC AS TWO CHARACTERS WHICH HAVE BEEN PACKED: /"A^100+"B&3777 TYPH, 0 DCA TEM3 TAD TEM3 AND [40 SZA CLA /BIT 40 SET ? TAD [100 /N: ALPHABETIC TAD CM300 TAD TEM3 JMS TYPN /TYPE CHAR'S IN AC JMP I TYPH PAGE CNT1, 0 /DUMP SOME REGISTERS OF PAGE 0 DU20, KCF /KILL ^O TAD [-FIELDS DCA CNT1 DU21, JMS I [CRLF2 TAD [PZRT-1 DCA I [POINT DCA DUMPP /SET POINTER TO 0 JMS I [PRMESG /PAGE ZERO REGISTERS, FIELD TAD I [FETCH2 AND [70 JMS I [OCTYPE JMS DUMP -FHEAD /COUNT TAD I [FETCH2 TAD [10 DCA I [FETCH2 ISZ CNT1 JMP DU21 TAD [CDF 00 DCA I [FETCH2 /PRINT THE CONTENTS OF HRDLST KCF /KILL ^O JMS I [CRLF2 JMS I [PRMESG TAD [HRDLST DCA DUMPP JMS DUMP -TOTSLOT^2 JMP I [DUMEND IFNZRO BGMAX < /PRINT ALL SAVED BG REGISTERS DU23, KCF /KILL ^O JMS I [SETFLD CDF 10 TAD [BGDATA DCA DUMPP TAD [-BGMAX DCA CNT1 DU22, JMS I [CRLF2 TAD [BGT-1 DCA I [POINT JMS I [PRMESG /BG TAD CNT1 TAD [BGMAX+1+260-240 JMS I [OUTPUT JMS I [PRMESG / STAT MQ SC PC ... JMS DUMP -UEND ISZ CNT1 JMP DU22 JMS I [SETFLD CDF 0 / > /PRINT DETAILED INFORMATION OF EACH TASK KCF /KILL ^O JMS I [CRLF2 JMS I [PRMESG /TCBTAB BLNK THRD ... TAD [NAMLST DCA DU26 TAD [MAXNAM^10+TCBTAB+177&7600-TCBTAB%10 CIA DCA CNT1 TAD [TCBTAB DCA DUMPP DU25, JMS DUMP DM10, -10 JMS I [OUTPUT /PRINT SPACE JMS I [FETCH DU26, NAMLST SZA JMS I [TYPH /PRINT NAME ISZ DU26 JMS I [TAB ISZ CNT1 JMP DU25 JMP I [DU20 /DUMP AN ARRAY IN CORE: ALWAYS 10 ELEMENTS PER LINE. /EACH LINE IS PRECEDED BY ITS OCTAL ADDRESS IN CORE. / JMS DUMP / WORDCOUNT /POSITIVE! / NORMAL RETURN /AC=0 DUMCNT, 0 /TOTAL COUNTER DUMTEM, 0 /ELEMENTS IN ONE LINE COUNTER DUMP, .-. TAD I DUMP DCA DUMCNT /TOTAL COUNT ISZ DUMP /FOR RETURN JMP DUMP0 DUMPA, ISZ DUMTEM /ONE LINE DONE? JMP DUMP1 /N; NEXT DUMP0, JMS I [CRLF TAD ["*-240 JMS I [OUTPUT TAD DUMPP JMS I [OCTYPE JMS I [TAB TAD DM10 DCA DUMTEM /COUNTER DUMP1, JMS I [FETCH DUMPP, 0 /POINTER JMS I [OCTYPE /DO THE CONVERSION AND PRINT JMS I [TAB ISZ DUMPP /NEXT ITEM ISZ DUMCNT JMP DUMPA JMP I DUMP PAGE /NO LITERALS ON THIS PAGE PLEASE... OUTPUT, 0 TAD MC240 KSF /SKIP OUTPUT IF PENDING INPUT SKP JMP MC7600 AND CM177 DEVNR^10+6006 /PRINT CHARACTER IFDEF LE8E < IFNZRO LE8E&1 < *.-1 IFNDEF IBMPRO < CMA 6574 6577 / > IFDEF IBMPRO < 6525 CMA AND MC377 6526 CLA STL RAR 6526 NOP 6525 / >> ISZ TABCNT /SKIP DOES NOT HURT DEVNR^10+6001 /SKIP ON FLAG IFDEF LE8E < IFNZRO LE8E&1 < *.-1 IFNDEF IBMPRO < 6570 JMP .-1 / > IFDEF IBMPRO < 6522 JMP .-1 6524 6523 / >> CLA KSF JMP I OUTPUT MC7600, 7600 /CLA TAD MC7600 KRS TAD M7603 /^C ? SZA CLA JMP I OUTPUT KCF DUMEND, JMS CRLF IFDEF LE8E < TAD MC214 JMS OUTPUT /PRINT FF > DEVNR^10+6002 /CLEAR FLAG IFDEF LE8E < IFNZRO LE8E&1 < *.-1 / >> CDF CIF 0 JMP I MC7600 /PRINT CRLF CRLF, .-. TAD MC215 JMS OUTPUT TAD MC212 JMS OUTPUT DCA TABCNT /RESET TABCNT JMP I CRLF CRLF2, 0 JMS CRLF JMS CRLF JMP I CRLF2 /007 TABULATOR ROUTINE /THE USER HAS TO TAKE CARE OF: /INCREMENTING TABCNT WITH EACH INCOMING CHARACTER, CLEARING /IT WHEN CARRIAGE RETURN. TAB-INTERVAL IS VARIABLE. /A JMS TO TAB WILL MOVE THE TYPING HEAD TO THE NEXT /TABULATOR POSITION. / / CLA / JMS TAB / RETURN /AC=0 TABCNT, 0 TABINT, -10 TAB, 0 /ENTER WITH AC =0 TAD TABCNT /SUBTRACT N TIMES TO GIVE REMAINDER TAD TABINT SMA JMP .-2 CLL RAL /^2 BECAUSE OUTPUT ALSO INCREMENTS DCA TABCNT /USE AS NEGATIVE COUNTER JMS OUTPUT ISZ TABCNT /READY? JMP .-2 JMP I TAB /YES MC240, 240 M7603, -7603 MC212, 212-240 MC214, 214-240 MC215, 215-240 CM177, 177 MC377, 377 /ALL MESSAGES DAT, TEXT /MULTI8 VXX MONITOR DUMP. DATE / O=. *DAT+4 /PATCH FOR VERSION NUMBER V1=VERSHI&77 V2=VERSLO&77 V1^100+V2 *O IFNDEF NOTIME <TEXT / TIME /> TEXT /CURTSK @ FCFREE @ ERRTSK @ AT / TEXT / ERRLOG @ ERSTAT / IFNZRO BGMAX < TEXT /BJOB @ SJOB @ LJOB / > TEXT /FREE@@INTQ@@PRIQ@@CORQ/ TEXT /SYSQUEUE/ TEXT /COREMAP/ PZRT, TEXT /PAGE ZERO REGISTERS, FIELD / TEXT /HRDLST / IFNZRO BGMAX < BGT, TEXT /BG / TEXT / STAT MQ SC PC LUID AC INST SW/ > TEXT /TCBTAB BLNK THRD S.A. BLK# STAT FLD AC PC NAME/ TEXT /FREECORE DUMP@TOO MUCH TEXT/;-1;7700 PROGEND=.-1 $$$$