Google
 

Trailing-Edge - PDP-10 Archives - tops10_tools_bb-fp64b-sb - 10,7/tstsup/tstsup.mac
There are 5 other files named tstsup.mac in the archive. Click here to see a list.
	TITLE	TSTSUP

.DCUSZ==6
PD=17

ST:	RESET
	MOVE	1,DEV
	MOVEM	1,ARGBLK
	MOVE	1,[30,,ARGBLK]
	DSKCHR	1,
	  JRST	NOSUP
	MOVE	1,.JBSYM##
LOOP:	MOVE	2,(1)
	CAMN	2,BPU
	JRST	FOUND
	AOBJN	1,.+1
	AOBJN	1,LOOP
	OUTSTR	[ASCIZ /? NO SYMBOL BPU/]
	EXIT
FOUND:	MOVE	2,ARGBLK+.DCUSZ
	MOVEM	2,1(1)
	MOVE	PD,[IOWD 20,PDL]
	SETZB	10,11
	SETZB	12,13
	INIT	17
DEV:	SIXBIT	/SUP/
	0
	  JRST	NOSUP
	MOVEI	1
	SUSET.
	  JRST	NOT12
	INPUT	L
	MOVE	CLUS,D+HOMBPC
SET:	MOVE	B
	SUSET.
	  JRST	NOT12
	INPUT	L
	GETSTS	1
	SETSTS	17
BRK1:	PUSHJ	PD,DAYTIM
	JRST	SET
P:	SOSA	B
N:	AOS	B
	JRST	SET

WRITE:	MOVE	B
	SUSET.
	  JRST	NOT12
	OUTPUT	L
	JRST	SET

B:	1
L:	-200,,.+1
	0
D:	BLOCK	1000
PDL:	BLOCK	21
BPU:	RADIX50	10,BPU
ARGBLK:	BLOCK	30
PPN=10
NM=11
EXT=12
CLUS=13
SEARCH:	CAIGE	CLUS,^D50
	SKIPN	CLUS
	MOVEI	CLUS,5
	MOVE	1,B
	IDIVI	1,(CLUS)
	SKIPE	2
	SETZM	B
SSET:	MOVE	B
	SUSET.
	  JRST	NOT12
	STATZ	40000
	JRST	SRCHFL
	INPUT	L
	HLRE	1,D
	HRRZ	2,D
	SUB	2,1
	SKIPE	D
	CAILE	2,176
	JRST	SNXT
	JUMPL	2,SNXT
	CAME	PPN,D+1
	JUMPN	PPN,SNXT
	CAME	NM,D+2
	JUMPN	NM,SNXT
	HLLZ	1,D+3
	SKIPE	EXT
	CAMN	1,EXT
BRKS:	PUSHJ	PD,DAYTIM
SNXT:	ADDM	CLUS,B
	JRST	SSET
NOSUP:	OUTSTR	[ASCIZ /NO DSK ASSIGNED AS SUP/]
	EXIT
NOT12:	OUTSTR	[ASCIZ	/NOT LOGGED IN AS [1,2]/]
	EXIT
SRCHFL:	OUTSTR	[ASCIZ	/SEARCH FAILS!
/]
	JRST	BRKS
CNVRT:	MOVE	4,2
	IDIVI	1,12
	HRLM	2,(PD)
	JUMPE	1,.+2
	PUSHJ	PD,CNVRT+1
	HLRZ	1,(PD)
	ADDI	1,"0"
	IDPB	1,3
	POPJ	PD,
DAYTIM:	MOVE	3,[POINT 7,CRTIME]
	LDB	1,[POINT 11,D+RIBPRV,23 ]
	IDIVI	1,^D60
	PUSHJ	PD,CNVRT
	MOVEI	1,":"
	IDPB	1,3
	MOVE	1,4
	IDIVI	1,12
	PUSHJ	PD,CNVRT
	MOVE	1,4
	PUSHJ	PD,CNVRT
	MOVE	3,[POINT 7,ACDATE]
	LDB	1,[POINT 15,D+RIBEXT,35]
	PUSHJ	PD,DATE
	MOVE	3,[POINT 7,CRDATE]
	LDB	1,[POINT 12,D+RIBPRV,35]
	LDB	2,[POINT 7,D+RIBEXT,20]
	DPB	2,[POINT 3,1,23]
;	JRST	DATE

DATE:	CAILE	1,32117		;IF LATER THAN 31-DEC 1999
	POPJ	PD,		;FORGET IT
	IDIVI	1,^D31
	ADDI	2,1
	EXCH	1,2
	PUSHJ	PD,CNVRT
	MOVEI	1,"-"
	IDPB	1,3
	MOVE	1,4
	IDIVI	1,^D12
	MOVE	2,MONTAB(2)
	ROT	2,7
	IDPB	2,3
	TRZ	2,177
	JUMPN	2,.-3
	MOVEI	2,"-"
	IDPB	2,3
	ADDI	1,^D64
	JRST	CNVRT
MONTAB:	ASCIZ	/Jan/
	ASCIZ	/Feb/
	ASCIZ	/Mar/
	ASCIZ	/Apr/
	ASCIZ	/May/
	ASCIZ	/Jun/
	ASCIZ	/Jul/
	ASCIZ	/Aug/
	ASCIZ	/Sep/
	ASCIZ	/Oct/
	ASCIZ	/Nov/
	ASCIZ	/Dec/

CRTIME:	ASCII	/XX:X /
CRDATE:	ASCII	/XX-XXX-X /
ACDATE:	ASCII	/XX-XXX-X /

	AOS	(PD)
	POPJ	PD,
HOMNAM==0	;"HOM" IN SIXBIT (WRITTEN BY MAP PROGRAM)
HOMHID==1	;SIXBIT UNIT ID (WRITTEN BY MAP PROGRAM)
HOMPHY==2	;LH=PHYSICAL ADDRESS OF THIS HOME BLOCK ON THIS UNIT
HOMSRC==3	;LOCICAL POSITION OF THIS STR IN "SYS" SEARCH LIST(0...N)
HOMSNM==4	;SIXBIT FILE STRUCTURE NAME THIS UNIT BELONGS TO
HOMNXT==5	;SIXBIT UNIT ID OF NEXT UNIT IN THIS FILE STRUCTURE.
HOMPRV==6	;SIXBIT UNIT ID OF PREVIOUS UNIT IN THIS FILE STRUCTURE.
HOMLOG==7	;SIXBIT LOGICAL UNIT NUMBER WITHIN FILE STRUCTURE OF THIS UNIT
HOMLUN==10	;LOGICAL UNIT NUMBER WITHIN FILE STRUCTURE OF THIS UNIT
HOMPPN==11	;PROJECT PROGRAMMER NUMBER OF USER WHO REFRESHED DISK
HOMHOM==12	;LH=LOGICAL BLOCK NUMBER WITHIN UNIT(NOT STR)
HOMGRP==13	;NO. OF BLOCKS (NOT CLUSTERS) PER GROUP TO TRY FOR
HOMBSC==14	;# BLOCKS PER SUPER CLUSTER IN THIS STR
HOMSCU==15	;# SUPER CLUSTERS PER UNIT
HOMCNP==16	;BYTE POINTER FOR CLUSTER COUNT IN A RETRIEVAL POINTER
HOMCKP==17	;BYTE POINTER FOR CHECKSUM IN A RETRIEVAL POINTER
HOMCLP==20	;BYTE POINTER FOR CLUSTER ADDRESS IN A RETRIEVAL POINTER
HOMBPC==21	;# BLOCKS PER CLUSTER(SAME FOR ALL UNITS IN AN STR)
HOMK4S==22	;# OF K WORDS OF THIS UNIT USED FOR SWAPPING
HOMREF==23	;NON-ZERO IF FILE STRUCTURE MUST BE REFRESHED
HOMSIC==24	;# SAT BLOCKS IN CORE
HOMSID==25	;SWAPPING ID - SIXBIT UNIT ID OF NEXT UNIT IN ACTIVE SWAPPING LIST
HOMSUN==26	;LOGICAL UNIT # IN ACTIVE SWAPPING LIST(0,...,7).
HOMSLB==27	;1ST. LOGICAL BLOCK ON UNIT FOR SWAPPING
HOMCFS==30	;SWAPPING CLASS FOR UNIT
HOMSPU==31	;# SAT BLOCKS PER UNIT
HOMOVR==32	;-# OF BLOCKS OF OVERDRAW ALLOWED A USER ON THIS STR BEFORE
HOMGAR==33	;UPPER BOUND ON # OF BLOCKS GUARRANTEED TO USERS BY RESERVED
HOMTAB==34	;FIRST LOC OF TABLE OF LOG. BLOCK NOS OF SYSTEM FILES
HOMSAT==HOMTAB	;LOGICAL BLOCK NO. WITHIN STR(NOT UNIT) OF 1ST RIB FOR SAT.SYS
HOMHMS==35	; " FOR HOME.SYS
HOMSWP==36	; " FOR SWAP.SYS
HOMMNT==37	; " MAINT.SYS
HOMBAD==40	; " BADBLK.SYS
HOMCRS==41	; " FOR CRASH.SAV
HOMSNP==42	; " SNAP.SYS
HOMRCV==43	; " RECOV.SYS
HOMSUF==44	; " SYS UFD
HOMPUF==45	; " PRINTR UFD
HOMMFD==46	; " FOR MFD [1,1].UFD
HOMPT1==47	; COPY OF 1ST RETRIEVAL POINTER FOR MFD FOR STR THIS UNIT IS IN
HOMUN1=50	;LOGICAL UNIT NUMBER OF UNIT ON WHICH MFD BEGINS
HOMLEN==51	;FIRST ADDRESS OF TABLE OF LENGTHS OF FILES CREATED BY REFRESH
HOMUTP==57	;UNIT TYPE ON WHICH HOME BLOCK WAS WRITTEN (SEE UNYUTP)
HOMRIP==60	;USED BY RIPOFF
HOMKLB==61	;20 WORDS USED BY PDP-11 IN KL10 SYSTEMS
HOMFEB==:61	;BLOCK NO OF FE.SYS (1ST DATA BLOCK)
   FEVALID==:100000	;VALID ADR IF ON
HOMFEL==:62	;LENGTH OF FE.SYS
HOMFEA==101	;FE-FILE ADDRESS FOR KS10
HOMFEL==102	;FE-FILE LENGTH FOR KS10
HOMTCS==103	;TRACK/CYL/SECTOR FOR KS10
HOMKLE==104	;TO FIND FILES FOR BOOTSTRAP/DUMP
HOMK4C==105
HOMBTS==106	;BITS IN THE HOME BLOCK
HOMPVS==HOMBTS	;WORD CONTAINING BIT WHICH SAYS PRIVATE STR
HOPPVS==1B35	;ON IF THIS UNIT IS CONTAINED IN A PRIVATE STR
HOMEND==106	;LAST WORD CONTAINING VALID DATA IN HOME BLOCK
HOMVID==:165	;VOLUME ID (3 WORDS, 12 PDP-11 BYTES)
HOMOKC==:170	;K FOR CRASH.SAV FILE
HOMVSY==:173	;SYSTEM TYPE (TOPS-10)
HOMCOD==176	;CONTAINS UNLIKELY CODE, LH=0
CODHOM==707070  ;THE UNLIKELY CODE FOR THE HOME BLOCK
HOMSLF==177	;LH=0, RH=THIS BLOCK (NO.T CLUSTER) ADR. WITHIN UNIT (SELF)
HOMOWN==:170	;OWNER NAME
RIBFIR==0	;CONTAINS AOBJN POINTER TO FIRST RETRIEVAL POINTER IN THIS RIB
		; I.E., LH=-MAX. POSSIBLE NO. POINTERS, RH=REL ADR OF FIRST PTR
RIBPPN==1	;(ACT)(DDB) (ENT) PROJECT,PROGRAMMER # IN OCTAL OR PROJECT
RIBNAM==RIBPPN+1;(ACT)(DDB) (ENT) 6 CHAR FILE NAME IN SIXBIT (OR OCTAL PROJECT
RIBEXT==RIBNAM+1;(ACT)(DDB) (ENT) LH 3 CHAR FILE EXTENSION IN SIXBIT; BITS 24-35
		; ACCESS DATE. BYTE=RIBACD.
RIBPRV==4	;(ACT)(DDB) (ENT)FILE ATTRIBUTES 0-8 ACCESS CODE, 9-12 MODE, 13-23
RIBATT==RIBPRV	;ANOTHER SYMBOL FOR SAME LOCATION
	RISPRV==^D9
	RINPRV==^D8
	PRTEXC==1	;EXECUTE ONLY-IE GET, R,RUN ACCESS
	PRTRED==2	;READ ONLY
	PRTAPP==3	;APPEND (ALLOCATE, DEALLOCATE, APPEND)
	PRTUPD==4	;UPDATE
	PRTWRT==5	;WRITE (SUPERSEDE,TRUNCATE)
	PRTREN==6	;RENAME (CHANGE ATTRIBUTES, NAME, EXT, DIR)
	PRTCPR==7	;CHANGE PRIVILEGE
	RIRXLK==4	;1 ALLOWS LOOKUPS IN DIRECTORY
	RIRXCR==2	;1 ALLOWS CREATES IN DIRECTORY
	RIRXRD==1	;1 ALLOWS DIRECTORY TO BE READ AS A DATA FILE
RIBSIZ==5	;(ACT)(DDB) (ENT) LH: WRITTEN LENGTH IN WORDS OR
RIBVER==RIBSIZ+1;(ENT) VERSION NUMBER (LIKE JOBVER)
		; LH=PROGRAMMER NUMBER LAST MAKING CHANGE
		; RH=OCTAL VERSION NUMBER NEVER CONVERTED TO DECIMAL
RIBSPL==7	;(ENT) POSSIBLE USER FILE NAME WHEN FILE BEING SPOOLED
RIBEST==10	;(ENT) ESTIMATED LENGTH IN CORE & NR. OF BLOCKS
RIBALC==11	;(ENT) # OF BLOCKS ALLOCATED TO FILE INCLUDING BOTH RIBS.
RIBPOS==RIBALC+1;(ENT) LOGICAL BLOCK OF # WITHIN STR OF LAST ALLOCATED GROUP OF FILE
RIBFT1==13	;ARG SAVED FOR FUTURE FOR DIGITAL TO DEFINE
RIBUNI==:RIBFT1	;(PRIV'D) UNITS WHICH WROTE FILE
		;BITS 10-17 = UNIT
		;BITS 18-20 = KONTROLLER
		;BITS 21-35 = APR SERIAL NUMBER
RIBNCA==14	;UNPRIVILEGED ARG FOR EACH CUSTOMER TO DEFINE
RIBLNA==RIBNCA	;LAST UNPRIVILEGED ARG
RIBMTA==15	;(ENT) 36 BIT TAPE LABEL IF FILE HAS BEEN PUT ON MAGTAPE
RIBDEV==16	;VALUE ONLY-FILE STRUCTURE NAME FILE STARTS ON
RIBSTS==17	;STATUS BITS FOR ALL FILES IN UFD(LH),
	RIPLOG==400000,,0	;(LH) IF 1 SAYS USER IS LOGGED IN. SET BY LOGIN CUSP
		; RIBTOT IS TO BE BELIEVED (IF RIBLOG==1) SYSTEM
	RIPCHG==:10000,,0	;(LH) FILSER SETS TO 1 IF ANY FILE WRITTEN/RENAMED.
	RIPDIR==400000	;(RH) 1 IF THIS FILE IS A DIRECTORY FILE (UFD OR MFD)
	RIPNDL==200000	;(RH)[NO DELETE] 1 IF THIS FILE CANNOT BY
	RIPDMP==:100000	;(RH) THIS FILE CONTAINS A MONITOR DUMP NOT YET
	RIPNFS==40000	;(RH)[NO FAILSAFE] 1 IF THIS FILE SHOULD NOT
	RIPABC==20000	;(RH) ALWAYS BAD CHECKSUM(SWAP.SYS,SAT.SYS)
	RIPCBS==:10000 	;(RH) COMPRESS BIT SET (RIPCMP) ON ENTRY TO COMPRESSOR
	RIPABU==4000	;(LH/RH) ALWAYS BACKUP THIS
	RIPNQC==2000	;NON QUOTA-CHECKED FILE
	RIPCMP==1000	;(RH) THIS UFD IS BEING COMPRESSED
	RIPSCE==400	;(LH/RH) 1 IF ANY FILE IN UFD/THIS FILE HAS HAD A SOFTWARE
	RIPHWE==200	;(LH/RH) 1 IF ANY FILE IN UFD/THIS FILE HAS HARD (3 TIMES)
	RIPHRE==100	;(LH/RH) 1 IF ANY FILE IN UFD/THIS FILE HAS HARD (3 TIMES)
	RIPPAL==20	;(RH) THIS IS A PRE-ALLOCATED FILE
	RIPBFA==10	;(LH/RH) 1 IF ANY FILE IN UFD/THIS FILE IN UFD FOUND BAD BY FAILSAFE
	RIPCRH==4	;(LH/RH) 1 IF ANY FILE IN UFD/THIS FILE WAS CLOSED AFTER A CRASH
	RIPBDA==1	;(LH/RH) 1 IF ANY FILE IN UFD/THIS FILE IN UFD FOUND BAD BY DAMAGE
	RIPNCK==RIPDIR!RIPABC	;DIRECTORIES HAVE BAD CHECKSUMS
	RIPNDP==:RIPNDL!RIPPAL
IOSHRE==RIPHRE
IOSHWE==RIPHWE
IOSSCE==RIPSCE
IOSERR==IOSHRE+IOSHWE+IOSSCE
IOSMER==-IOSERR-1
RIBELB==20	;LOGICAL BLOCK WITHIN ERROR (SEE RIBEUN)
		;LH=CONI BITS 12-29 ON ERROR (SEE BAFELB)
RIBEUN==21	;LH=LOGICAL UNIT # WITHIN STR ON WHICH ERROR REGION OCCURED (0..)
RIBNBB==RIBEUN	;RH=# OF CONSECUTIVE LOGICAL BLOCKS IN BAD REGION
RIBQTF==22	;(UFD ONLY) FIRST COME FIRST SERVE LOGGED IN QUOTA IN TOTAL
RIBQTO==23	;(UFD-ONLY) LOGGED-OUT QUOTA IN TOTAL NUMBER OF DATA + RIB
RIBQTR==24	;(UFD-ONLY) RESERVED LOGGED IN QUOTA IN TOTAL NUMBER
RIBUSD==25	;(UFD-ONLY) COUNT OF BLOCKS USED (INCLUDING ALL OVERHEAD BLOCKS)
		; (PROVIDED LOGBIT=0). WRITTEN BY LOGOUT, READ BY LOGIN.
RIBAUT==26	;PROJ-PROG # OF AUTHOR OF FILE, IE USER DOING
RIBNXT==27	;(ENT) SIXBIT NAME OF NEXT FILE STRUCTURE IF THIS FILE IS
RIBPRD==30	;(ENT) SIXBIT NAME OF PREDECESSOR FILE STR IF THIS
RIBPCA==31	;(ENT) PRIVILEGED ARG FOR EACH CUSTOMER TO DEFINE
RIBUFD==32	;(ENT) LOGICAL BLOCK NUMBER WITHIN STR OF UFD DATA BLOCK(RATHER THAN CLUSTER
RIBFLR==33	;(ENT) RELATIVE BLOCK NUMBER IN FILE OF FIRST BLOCK IN RIB.  IMPLEMENTED
RIBXRA==34	;(ENT) (DDB) EXTENDED RIB ADDRESS.  POINTS TO NEXT RIB IN CHAIN.  IF 0 THIS IS
RIBTIM==35	;(ENT) CREATION DATE & TIME IN NEW DATE FORMAT
RIBLAD==36	;LAST ACCOUNTING DATE (UFD)
RIBDED==37	;DIRECTORY EXPIRATION DATE (UFD)
RIBACT==40	;AOBJN POINTER TO ACCOUNT STRING
RIBENT==RIBACT  ;LAST ARG OR VALUE ON EXTENDED LOOKUP/ENTER/RENAME
RIPNUB==400000	;BIT SET IN NEW UNIT PTR. TO INSURE NON-ZERO
RIBWN1==RIBENT+PTRLEN  ;RELATIVE LOCATION OF LAST POINTER TO BE
BLKCOD==176
BLKSLF==177
ACTSTL==10
PTRLEN==7
RIBACS==RIBCOD-ACTSTL  ;BLOCK ACTSTL LONG AT END OF RIB CONTAINS
RIBCOD==BLKCOD	;CONTAINS UNLIKELY DATA WORD (I.E., NOT ASCII OR FLOATING POINT)
		;LH=0
	CODRIB==777777  ; THE UNLIKELY CODE
MRIBLN==RIBENT-RIBCOD+1+ACTSTL	;-MAX. NO. OF RETRIEVAL POINTER (AND UNITS AND ETC.)
RIBSLF==BLKSLF	;THIS BLOCK (NOT CLUSTER) NUMBER (SELF)
RIBLEN==-MRIBLN
	END	ST