File MONDUM.PA (PAL assembler source file)

Directory of image this file is from
This file as a plain text file

/******* TOPS-8 MONITOR DUMP *******
/LAST EDIT:  3-AUGUST-75, JV
/
/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 TOPS-8, AS WELL
/	AS UNDER TOPS-8 FROM THE BACKGROUND. IN BOTH CASES
/	IS WORKS IN HIS OWN WAY. UNDER OS/8 IT JUST FETCHES
/	DATA FROM MONFLD, UNDER TOPS-8 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
/	MONISTOPPED BY PRESSING THE MBLED, THE PROGRAM CAN BY FIELD. WHEN IT IS LOAD
/	THE TOPS-8 MONITOR, THE CORE AREA FROM
L=BEGIN&7400	   /TO
L=PROGEND&7600+177 /WILL BE OVERLAIED.

/OUTPUT ROUTINE IS DEVICE-DEPENDENT.
IFDEF CENTRON <DEVNR=15>
IFDEF LE8E <DEVNR=66>
IFNDEF DEVNR <DEVNR=04	YPE >

/START ADDRESSSS FOR .R MONDUM
CHAIN= TO FROM TOPS-8

SM8=6GROUND
SPY=6264	/"LOOK IN MONFLD"

*BEGIN IFZERO MONFLD < SKP JMP MCHAIN > /WHEN STARTING AT 7757 JMP TO 2001 (CHAIN) SM8 /SKIP ON TOPS-8, (BACKGROUND) JMP NOM8 /THIS MUST BE AFTERWARDS TAD FETCH5 /REPLACE "JMP I FETCH" DCA FETCH3 JMP YESM8 NOM8, IFZERO MONFLD < CIF 0 /AFTER TYPING .R MONDUM JMS I (7607 /GET BACK 00000-01777 FROM SCRATCH BLOCKS 1000 /READ 10 PAGES FIELD 0 0 /STARTING 00000 33 /SYSTEM BLOCK 33 HLT /ERROR READING FROM SYS ??? > MCHAIN, TAD DCATM2 /NOT IN THE BACKGROUND DCA FETCH1 /DCA TEM2 RIF /IN WHICH FIELD ARE WE ? TAD (CDF DCA FETCH4 YESM8, TAD CDATM1 /PRINT THE DATE. DCA POINT JMS PRMESG /TOPS-8 FOREGROUND MONITOR DUMP OF JMS FETCH DATE DCA FETCH TAD FETCH CLL RAL RTL RTL AND (17 /MONTH JMS DECTYPE /PRINT DECIMAL TWO DIGITS TAD ("/-240 JMS I COUTPUT TAD FETCH CLL RAR RTR AND (37 /DAY OF MONTH JMS DECTYPE TAD ("/-240 JMS I COUTPUT TAD FETCH 70" OCTAL JMS DECTYPETHE TIME. JMS PRMESG /TIME+3 TAD (30 /ADD "
TAD (":-240 JMS I COUTPUT JMS FETCH TIME+2 /MINUTES TAD (74 /ADD "60" OCTAL JMS DECTYPE > JMS I CCRLF JMS I CCRLF /PRINT CURTSK JMS PRMESG /CURTSK JMS FETCH /FETCH FROM MONFLD CURTSK OF FREECORE BLOCKS JMSMAXNAM JMP I CDU0 CPE CDU0, DU0 CDATM1, DDECTYPE,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 COUTPUT /PRINT FIRST DIGIT TAD TEM1 TAD (12+260-240 JMS I COUTPUT /PRINT SECOND DIGIT JMP I DECTYPE /FETCH A WORD FROM MONFLD. / JMS FETCH / ADDRESS / RETURN WITH WORD IN AC FETCH, .-. TAD I FETCH ISZ FETCH FETCH1, SPY /IN FOREGROUND: DCA TEM2 FETCH2, CDF MONFLD /OR MONFLD+10... FETCH3, TAD I TEM2 /IN BACKGROUND: JMP I FETCH FETCH4, HLT /OVERLAYED BY CDF THIS FIELD FETCH5, JMP I FETCH
/010 PAL MESSAGE PRINTER /PRINTS 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 ROTATE 6 IFZERO PDPTYP PDPTYP-PDP8E < RTR 77 /MASK 6 BITS SNA S THE LIST TAD (240 AND (77 JMS I COUTPUT 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 UTPUT CPRMESG,PRMESG C CFETCH, FETCH BCRLF, TATX <CDPTAB, DPTAB> ES DU0, DCA ESCNT TADNTB, TAD NAMTAB DU1, DCA DUPTR JMS I CFETCH DUPTR, 0 ISZ ESCNT /COUNT THE NUMBER SNA SKP CLA /ESCAPE FROM ENDLES CHAIN !!!! JMP DU1 /LOOP TAD (MAXNAM-1 /ONE TOO MANY TAD ESCNT /PRINT THE NUMBER JMS OCTYPE JMS I CPRMESG /ERRTSK JMS I CFETCH ERRTSK JMS OCTYPE JMS I BOUTPUT /SPACE JMS I CFETCH ALARM SZA JMS OCTYPE IFNZRO BGMAX < JMS I CPRMESG /BJOB JMS I CFETCH BJOB JMS OCTYPE > JMS I BCRLF JMS I BCRLF /PRINT CONTENT OF INTQ, PRIQ, CORQ, FREQ QCNT=DPNT TAD TADNTB DCA QTAB TAD (-4 DCA QCNT TAD (-10 DCA I CTABINT
QLOOP, JMS I CPRMESG QTAB, TAD NAMTAB DCA PRQP TAD (-10 DCA ESCNT PRQ1, TAD (-10 DCA PRQCNT PRQ2, JMS I CTAB TAD PRQP JMS OCTYPE /PRINT THE THREAD JMS I CFETCH PRQP, FHEAD SNA JMP PRQEND /ZERO ENDS THE CHAIN DCA PRQP ISZ PRQCNT /NEXT ITEM. ONE LINE READY ? JMP PRQ2 /N JMS I BCRLF /Y ISZ ESCNT JMP PRQ1 PRQEND, ISZ QTAB JMS I QLOOP IFDEF STATX < PLOOP, TAD I DPNT SNAPP /POINTER DCA SWITCHS JMS I BCRLF JMS I CPRMESG JMS I CTAB AC0001 TAD I DPNT DCA DPNTP ISZ DPNT /FOR NEXT ONE JMS I CFETCH DPNTP, 0 JMS OCTYPE JMS I CFETCH DPNTPP, 0 JMS OCTYPE JMP DPLOOP
DPNT, 0 /PRINT ACCOUNTING REGISTERS DPTAB, INTCNT /# OF INTERRUPTS EVECNT /# EVENTS XFRCNT /# DISKTRANSFERS DERCNT /# OF DISKTRANSFER ERRORS SWPCNT /# OF MODULE SWAPS DSPCNT /# OF DISPATCHES 0 > IFNDEF STATX < JMP I CDU8 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, .-. 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 BOUTPUT ISZ COUNT JMP OCT1 /LOOP JMP I OCTYPE /IF READY:LINK=0;AC=0 PAGE
DOCTYPE,OCTYPE DOUTPUT,OUTPUT DPRMESG,PRMESG DTABINT,TABINT DTAB, TAB DCRLF, CRLF D0 DTABLE, TABLE F1, 0 CNT, 0 /COUNTER PC, 0R TEM3, 0 /CONTAINS ENT/INNER LOOP COUNTER TABLE, "$^100+"$ "[^100+"[ "]^100+"] ".^100+". DU8, JMS I DCRLF JMS I DCRLF JMS I DPRMESG /COREMAP TAD (MAPBEG /SET UP BEGINADDRESS DCA DU12 TAD (MAPEND-CORMAP&1+MAPBEG-MAPEND TAD (MAPBEG-CORMAP%4+MONZRO MAPBEG-CORMAP&17 <-20^4-2 DCA I DTABINT20 JMP DU10A > IFZERO MAPBEG-CORMAP&17 < JMP DU10 > DU9, ISZ CNTIN JMP DU11 DU10, TAD (-2 DCA I DTABINT TAD (-20 /20 ENTRIES ON ONE LINE DU10A, DCA CNTIN JMS I DCRLF ISZ F1 /INCREMENT HALF FIELD COUNTER TAD F1 /PRINT FIELD CLL RAR JMS I DOUTPUT DU11, JMS I DTAB TAD (-4 DCA I DTABINT
/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 MODULE'S NAME /POS. THIS PAGE HAS BEEN USED BY A MODULE:PRINT - NAME JMS I DFETCH DU12, MAPBEG DCA TEM3 TAD TEM3 SMA SZA CLA TAD ("--240 /PRINT - JMS I DOUTPUT /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 DFETCH /FETCH THE NAME DU14, 0 JMP DU17 DU13, TAD DTABLE DCA TEM3 TAD I TEM3ASHED NAME DU18, ISZ DU JMP DU9 JMS I DCRL5 DCA I DTABINT IFZERORE THEN 1 FOREGROUND FIELD TAD (-FIELDS > JMP I DDU20
/TYPE AC AS TWO CHARACTERS;6 BIT TYPN, .-. DCA TEM3 TAD TEM3 IFZERO PDPTYP-PDP8E < BSW > IFNZRO PDPTYP-PDP8E < RTR RTR RTR > JMS TYP6 TAI TYPN TYP6, .-. TA DOUTPUT JMP I TYP6 ERS WHICH HAVE BEEN PACKPH, .-. 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
EOUTPUT,OUTPUT EOCTYPE,OCTYPE EPRMESG,PRMESG ETABINT,TABINT ETAB, TAB ECRLF, CRLF EFETCH, FETCH ETYPH, TYPH EDUMEND,DUMEND EFCDF, FETCH2 EPZRT, PZRT-1 IFNZRO BGMAX < EBGT, BGT-1 > EPOINT, POINT CNT1, 0 /DUMP SOME REGISTERS OF PAGE 0 DU20, IFZERO FIELDS-2&4000 < /IF MORE THEN 1 FOREGROUND FIELD DCA CNT1 DU21, TAD EPZRT DCA I EPOINT > DCA DUMPP /SET POINTER TO 0 JMS I EPRMESG /PAGE ZERO REGISTERS, FIELD TAD I EFCDF AND (70 JMS I EOCTYPE JMS DUMP -FHEAD /COUNT JMS I ECRLF JMS I ECRLF IFZERO FIELDS-2&4000 < TAD I EFCDF TAD (10 DCA I EFCDF ISZ CNT1 JMP DU21 TAD (CDF MONFLD DCA I EFCDF > /PRINT THE CONTENTS OF HRDLST JMS I EPRMESG TAD (HRDLST DCA DUMPP JMS DUMP IFZERO BGMAX < -MAXSLOT^2 / > IFNZRO BGMAX < -MAXSLOT-BGMAX-1^2 / ECRLF
IFNZRO BGMAX < STERS TAD (BGDATA DC4000 < TAD (-BGMAX D DCA I EPOINT JMS I EPRMESG /BG TAD CNT1 TAD (BGMAX+1+260-240 JMS I EOUTPUT > JMS I EPRMESG / STAT MQ SC PC ... JMS DUMP -UEND JMS I ECRLF JMS I ECRLF IFZERO BGMAX-2&4000 < ISZ CNT1 DETAILED INFORMATION OF ESG /TCBTAB BLNK THRD DU26 TAD (ASSLST DCACA CNT1 TAD (TCBTAB DCA DUMPP DU25, JMS DUMP DM10, -10 JMS I EOUTPUT /PRINT SPACE JMS I EFETCH DU26, NAMLST SZA JMS I ETYPH /PRINT NAME ISZ DU26 JMS I ETAB JMS I EFETCH DU27, ASSLST SZA JMS I ETYPH /PRINT ASSIGNED NAME, IF ANY ISZ DU27 ISZ CNT1 JMP DU25 JMS I ECRLF JMS I ECRLF
IFNZRO MAXNAM^10+TCBTAB-FRECOR <FRECERR,XERROR> /DUMP ALL OF FREECORE JMS I EPRMESG /FREECORE DUMP JMS DUMP -FREEMAX^10 JMP I EDUMEND /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 ECRLF TAD ("*-240 JMS I EOUTPUT TAD DUMPP JMS I EOCTYPE JMS I ETAB TAD DM10 DCA DUMTEM /COUNTER DP, 0 /POINTER SZA CONVERSION AND PRINT NEXT ITEM ISZ DUMCNT 0 /ALL DONE JMS I EOUTPUT /SHOW WHERE WE ENDED JMP I DUMP PAGE
IFDEF CENTRON < /OUTPUT A CHARACTER TO CENTRONICS LINEPRINTER /THIS DEVICE NEEDS 20 FILLER CHARACTERS FOR EACH LF /AND 300 FOR A FORMFEED /THIS ROUTINE INCREMENTS TABCNT FOR EACH CHARACTER. > OUTPUT, .-. TAD MC240 DEVNR^10+6006 /PRINT CHARACTER ISZ TABCNT /SKIP DOES NOT HURT DEVNR^10+6001 /SKIP ON FLAG JMP .-1 MC7600, 7600 /CLA KRS TAD M203 /^C ? SNA CLA KSF JMP I OUTPUT KCF DUMEND, JMS CRLF TAD MC214 JMS OUTPUT /PRINT FF IFNDEF LE8E < OUTEM=TAB IFDEF CENTRON < TAD MD300 JMS BLANK > IFNDEF CENTRON < TAD MD10 DCA OUTEM TAD MD240 JMS OUTPUT ISZ OUTEM JMP .-3 > > DEVNR^10+6002 /CLEAR FLAG MC240, 240 CDF CIF 0 JMP I MC7600 IFDEF CENTRON < BLANK, .-. DCA OUTEM TAD MD240 JMS OUTPUT ISZ OUTEM JMP .-3 JMP I BLANK MD20, -20 MD300, -300 >
/PRINT CRLF CRLF, .-. TAD MC215 JMS OUTPUT TAD MC212 JMS OUTPUT IFD JMS BLANK > DCA TABC CRLF /007 TABULATOR O TAKE CARE OF: /INCREMINCOMING 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 TABINITH AC =0 TAD TABCNT / REMAINDER TAD TABINTAL /^2 BECAUSE OUTPUT ACNT /USE AS NEGATIVE COUNTER JMS OUTPUT ISZ TABCNT /READY? JMP .-2 JMP I TAB /YES M203, -203 MC212, 212-240 MC214, 214-240 MC215, 215-240 IFNDEF LE8E < MD240, -240 IFNDEF CENTRON < MD10, -10 > >
/ALL MESSAGES DAT, TEXT /TOPS-8 FOREGROUND MONITOR DUMP OF / IFDEF DAYTIM <TEXT / TIME /> TEXT /CURTSK @ FCFREE @ ERRTSK / IFNZRO BGMAX <TEXT / BJOB /> TEXT /FREE@@INTQ@@PRIQ@@CORQ/ IFDEF STATX <TEXT /# INTERRUPTS@@# INTRPT EVENTS/ TEXT /# DISKTRANSFERS@# DISK ERRORS/ TEXT /# MODULESWAPINS@# DISPATCHES/ > TEXT /COREMAP/ PZRT, TEXT /PAGE ZERO REGISTERS, FIELD / TEXT /HRDLST / IFNZRO BGMAX < BGT, TEXT /BG / IFZERO BGMAX-1 <*.-1;4040> TEXT / STAT MQ SC PC LUID AC INST SW/ > TEXT /TCBTAB BLNK THRD S.A. BLK# STAT FLD AC PC NAM ASS/ TEXT /FREECORE DUMP@TOO MUCH TEXT/;-1;7700 PROGEND=.-1 $$$$



Feel free to contact me, David Gesswein djg@pdp8online.com with any questions, comments on the web site, or if you have related equipment, documentation, software etc. you are willing to part with.  I am interested in anything PDP-8 related, computers, peripherals used with them, DEC or third party, or documentation. 

PDP-8 Home Page   PDP-8 Site Map   PDP-8 Site Search