1
0
mirror of https://github.com/PDP-10/stacken.git synced 2026-03-07 11:17:06 +00:00
Files
Lars Brinkhoff 6e18f5ebef Extract files from tape images.
Some tapes could not be extracted.
2021-01-29 10:47:33 +01:00

275 lines
5.1 KiB
Plaintext
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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