mirror of
https://github.com/PDP-10/stacken.git
synced 2026-03-07 11:17:06 +00:00
275 lines
5.1 KiB
Plaintext
275 lines
5.1 KiB
Plaintext
TITLE CSHDMP - Dump out the cache
|
||
|
||
SEARCH MACTEN,UUOSYM
|
||
.TEXT |,REL:MAP,REL:SCAN/SEARCH/INCLUDE:.TOUTS|
|
||
|
||
TWOSEG
|
||
RELOC 400K
|
||
|
||
T4=<1+<T3=1+<T2=1+<T1=1>>>>
|
||
P4=<1+<P3=1+<P2=1+<P1=5>>>>
|
||
U=12
|
||
P=17
|
||
|
||
ND LN$PDL,50
|
||
|
||
ND CODRIB,777777
|
||
ND RIBCOD,176
|
||
ND UDBNAM,0
|
||
ND UNILOG,13
|
||
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,UDBNAM(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
|