TITLE CSHDMP - Dump out the cache SEARCH MACTEN,UUOSYM .TEXT |,REL:MAP,REL:SCAN/SEARCH/INCLUDE:.TOUTS| TWOSEG RELOC 400K T4=<1+>>> P4=<1+>>> U=12 P=17 ND LN$PDL,50 ND CODRIB,777777 ND RIBCOD,176 ND UNINAM,0 ND UNILOG,1 ND JACCT,1 ND MX$BLK,^D300 PHASE 0 .CBNHB:! BLOCK 1 ;NEXT HASH BLOCK .CBPHB:! BLOCK 1 ;PREVIOUS HASH BLOCK .CBNAB:! BLOCK 1 ;NEXT ACCESSED BLOCK .CBPAB:! BLOCK 1 ;PREVIOUS ACCESS BLOCK .CBUDB:! BLOCK 1 ;UDB OF UNIT .CBBLK:! BLOCK 1 ;THE BLOCK NUMBER .CBDAT:! BLOCK 1 ;ADDRESS OF BLOCK IN CORE .CBHIT:! BLOCK 1 ;HITS THIS BLOCK .CBLEN:! ;LENGTH DEPHASE CSHDMP: JFCL RESET MOVE P,[IOWD LN$PDL,PDL] MOVEI T1,.TOCHR## PUSHJ P,.TOINI## MOVE T1,[MP.SPY##] MOVEM T1,MAPARG MOVEI T1,MAPARG PUSHJ P,.MAPI## JRST MAPERR PUSHJ P,CCSET PUSHJ P,SETPRV MOVEI P3,1 MOVX T1,%LDCHD PUSHJ P,.MAPG## JRST MAPERR MOVE P2,T1 MOVEI T1,.CBNAB(T1) PUSHJ P,.MAPE## JRST MAPERR MOVE P1,T1 MOVEI T1,TTL PUSHJ P,.TSTRG## LOOP: CAMN P2,P1 JRST LOOPE PUSHJ P,DMPBLK MOVEI T1,.CBNAB(P1) PUSHJ P,.MAPE## JRST MAPERR MOVE P1,T1 AOJA P3,LOOP LOOPE: EXIT TTL: ASCIZ / Unit Block# Hits Typ File ------ ------ ------ --- -------------------- / MAPERR: OUTSTR [ASCIZ/ ?Unhandled MAP error: /] OUTSTR MAPDAT##+.MPMET## OUTSTR [BYTE(7) .CHCRT, .CHLFD] OUTSTR MAPDAT##+.MPXET## EXIT SUBTTL CCSET - Setup for ^C trapping CCSET: MOVE T1,[4,,CCTRAP] ;NEW PC MOVEM T1,CCBLK+.ERNPC ;SAVE MOVX T1,ER.ICC ;^C TYPE MOVEM T1,CCBLK+.ERCLS ;SAVE SETZM CCBLK+.EROPC ;CLEAR OLD PC MOVEI T1,CCBLK ;GET TRAP BLOCK ADDRESS MOVEM T1,.JBINT ;ENABLE ^C TRAPS POPJ P, ;AND RETURN CCTRAP: PUSH P,CCBLK+.EROPC ;SAVE OLD PC SETZM CCBLK+.EROPC ;RE-ENABLE EXIT 1, ;EXIT QUICKLY POPJ P, ;RETURN IF CONTINUE SUBTTL SETPRV - Set JACCT so we can SUSET. SETPRV: MOVX T1,%LDFFA ;GET GOD GETTAB T1, ;.. MOVE T1,[1,,2] ;DEFAULT GETPPN T2, ;OUR PPN JFCL CAMN T1,T2 ;MATCH? POPJ P, ;YES--ALL SET MOVE T1,[.GTSTS,,.GTSLF] ;GETTAB STATUS WORD TABLE GETTAB T1, ;.. POPJ P, ;CANT ANDI T1,-1 ;KEEP JUST ADDRESS PJOB T2, ;GET CURRENT JOB ADDI T1,(T2) ;INDEXED BY MY JOB HRROI T2,.GTSTS ;GET MY STATUS WORD GETTAB T2, ;.. POPJ P, ;CANT MOVE T3,T2 ;COPY TLOE T3,JACCT ;TURN ON JACCT POPJ P, ;ALREADY HAVE IT! MOVE T4,[3,,T1] ;SETUP ARGS POKE. T4, ;GET THE PRIVS JFCL ;CANT POPJ P, ;AND RETURN SUBTTL DMPBLK - Output this block DMPBLK: PUSHJ P,.SAVE3## MOVEI T1,.CBUDB(P1) PUSHJ P,.MAPE## JRST MAPERR MOVE U,T1 MOVEI T1,UNINAM(U) PUSHJ P,.MAPE## JRST MAPERR ; CAME T1,[SIXBIT/XXXX/] ; POPJ P, MOVEM T1,FBLK+.FODEV MOVE T1,P3 MOVEI T3,^D3 PUSHJ P,.TDECJ## MOVEI T1,"." PUSHJ P,.TCHAR## MOVEI T1,2 PUSHJ P,.TSPAN## MOVE T1,FBLK+.FODEV MOVEI T3,^D6 PUSHJ P,.TSIXJ## MOVEI T1,2 PUSHJ P,.TSPAN## MOVEI T1,.CBBLK(P1) PUSHJ P,.MAPE## JRST MAPERR MOVEI T3,^D6 PUSHJ P,.TDECJ## MOVEI T1,2 PUSHJ P,.TSPAN## MOVEI T1,.CBHIT(P1) PUSHJ P,.MAPE## JRST MAPERR MOVEI T3,^D6 PUSHJ P,.TDECJ## MOVEI T1,2 PUSHJ P,.TSPAN## MOVEI T1,UNILOG(U) PUSHJ P,.MAPE## JRST MAPERR MOVEM T1,OBLK+.OPDEV MOVEI T1,.CBDAT(P1) ;GET ADDRESS OF DATA BLOCK PUSHJ P,.MAPE## JRST MAPERR MOVE P2,T1 ;SAVE ADDRESS ADDI T1,RIBCOD ;OFFSET TO RIBCOD PUSHJ P,.MAPE## ;GET IT JRST MAPERR CAMN T1,[CODRIB] ;THAT MAJIC CODE? JRST GOTRIB ;YES! MOVX T1,.IODMP!UU.PHS MOVEM T1,FBLK+.FOIOS MOVEI T1,.FOSIO MOVEM T1,FBLK+.FOFNC MOVE T1,[4,,FBLK] FILOP. T1, HALT MOVEI T1,.CBBLK(P1) PUSHJ P,.MAPE## JRST MAPERR MOVE P3,T1 PUSHJ P,GETBLK MOVEI P2,0 UFDB: SUBI P3,1 JUMPLE P3,UFDE ADDI P2,1 CAILE P2,MX$BLK JRST UFDE MOVE T1,P3 PUSHJ P,GETBLK MOVE T1,BLK+RIBCOD CAME T1,[CODRIB] JRST UFDB HLLZ T1,BLK+.RBEXT CAME T1,[SIXBIT/UFD/] CAMN T1,[SIXBIT/SFD/] CAIA JRST UFDE MOVEI T3,^D5 PUSHJ P,.TSIXJ## PUSHJ P,PRTRIB MOVEI T1,[ASCIZ/ (block /] PUSHJ P,.TSTRG## MOVE T1,P2 PUSHJ P,.TDECW## MOVEI T1,")" PUSHJ P,.TCHAR## PUSHJ P,.TCRLF## POPJ P, UFDE: MOVEI T1,[ASCIZ/can't trace back block/] PUSHJ P,.TSTRG## PUSHJ P,.TCRLF## POPJ P, GOTRIB: MOVSI T1,'RIB' MOVEI T3,^D5 PUSHJ P,.TSIXJ## MOVE T1,P2 ADDI T1,.RBNAM PUSHJ P,.MAPE## JRST MAPERR MOVEM T1,BLK+.RBNAM MOVE T1,P2 ADDI T1,.RBEXT PUSHJ P,.MAPE## JRST MAPERR MOVEM T1,BLK+.RBEXT MOVE T1,P2 ADDI T1,.RBPPN PUSHJ P,.MAPE## JRST MAPERR MOVEM T1,BLK+.RBPPN PUSHJ P,PRTRIB PUSHJ P,.TCRLF## POPJ P, SUBTTL PRTRIB - Print the RIB filespec PRTRIB: MOVEI T1,.RBMAX MOVEM T1,BLK MOVEI T1,OBLK MOVEI T2,BLK PUSHJ P,.TOLEB## POPJ P, SUBTTL GETBLK - Read the block GETBLK: SUSET. T1, HALT MOVE T1,[IOWD 200,BLK] MOVEI T2,0 INPUT T1 POPJ P, SUBTTL STORAGE XLIST LIT LIST RELOC 0 MAPARG: BLOCK 4 PDL: BLOCK LN$PDL CCBLK: BLOCK 4 FBLK: BLOCK .FOMAX LBLK: BLOCK .RBMAX OBLK: BLOCK 3 BLK: BLOCK 200 END CSHDMP