Trailing-Edge
-
PDP-10 Archives
-
bb-x130a-sb
-
cshdmp.mac
There are 4 other files named cshdmp.mac in the archive. Click here to see a list.
TITLE CSHDMP - Dump out the cache
SEARCH MACUNV
$INIT (CSHDMP,+)
.REQUEST MACLIB
.REQUEST REL:MAP
$SEGMENT(PURE)
U=12
ND LN$PDL,50
ND CODRIB,777777
ND RIBCOD,176
ND UNINAM,0
ND UNILOG,1
ND JACCT,1
%LDCHD==131,,16
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
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
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,^D2
PUSHJ P,.TSPAN##
MOVE T1,FBLK+.FODEV
MOVEI T3,^D6
PUSHJ P,.TSIXJ##
MOVEI T1,.CBBLK(P1)
PUSHJ P,.MAPE##
JRST MAPERR
MOVEI T3,^D6
PUSHJ P,.TDECJ##
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
$LOW
MAPARG: BLOCK 4
PDL: BLOCK LN$PDL
CCBLK: BLOCK 4
FBLK: BLOCK .FOMAX
LBLK: BLOCK .RBMAX
OBLK: BLOCK 3
BLK: BLOCK 200
END CSHDMP