PDH
  24
BOOT@@MAN
CLAWBYJOB
DC@@@@JOB
DCSIM@JOB
DCT@@@JOB
DCTESTJOB
DELAY@JOB
DELAY@SRC
DLERPLJOB
FC@@@@JOB
FCMAINSRC
FCTESTJOB
FCTESTSRC
FPDIV2JOB
FPDIV@JOB
LOOK@@001
MOUNT@JOB
PRINT@SRC
SNAPDFSRC
TAPDMPJOB
TIMOUTJOB
TPULSEJOB
TRACERJOB
WITS@@JOB
[\].
BOOT@@MAN
			BOOTSTRAPPING
			=============
 
	FOR A COLD START, BEGIN WITH STEP 1.
	FOR A WARM START, BEGIN AT STEP 5 WITH 'RKBOOT'.
 
 1.  LOCATE TAPE (ABSL11, PIREX3, RKBOOT) AND PLACE IN READER.
 
 2.  ON PDP-11 DEPRESS 'HALT'.
 
 3.  ON PDP-15 SET ADDRESS TO 77700; STOP & RESET TOGETHER; READIN.
 
 4.  WHEN TAPE STOPS AT END OF FIRST PUNCHED SECTION:
	ON PDP-11 PRESS START (HALT IS DOWN - THIS DOES I/O RESET).
	    SET SW'S 14 & 15 UP; LOAD ADRS; ENABLE; START.
	ON PDP-15 PRESS 'CONTINUE'.  (THIS LOADS PDP-11 PROGRAM)
 
 5.  WHEN TAPE STOPS AT END OF SECOND (LONG) PUNCHED SECTION
     (AC SHOULD BE 0), THE PDP-11 IS RUNNING.  THE SYSTEM MUST
     NOW BE BOOTED FROM THE DISK.  SET ADDRESS TO 77637;
     STOP & RESET TOGETHER; READIN.
 
 6.  THE VT05 SHOULD HAVE ANNOUNCED ITSELF AND REQUESTED THE
     DATE.  ENTER THE DATE.  ALSO ENTER THE TIME TO THE NEAREST
     MINUTE.  E.G. $T 1431<CR> WHERE <CR> SIGNIFIES RETURN KEY.
 
 7.  START SPOOLER:	$SPOOL<CR>
 
			SPOOLER
 
				RK[0]  <CR>
 
				BEGIN(Y)  <CR>
 
			SPOOLING ENABLED
 
 8.  INVOKE RSX:	$RSX<CR>
 
 9.  WHEN LA30 TYPES 'MCR>' START BATCH FROM VT05:
 
			^T
			TDV>BAT<CR>
 
10.  ON LA30:		MCR>REQ CLOCK<ALT>
 
			^X
			OPR>GO<CR>
 
     NOTE THAT 'REQ CLOCK' IS OPTIONAL, BUT <ALT> IS MANDATORY.
 
11.  TO READ CARD DECKS, PLACE CARDS IN CARD READER AND PRESS
     'RESET'.  SINCE THE SPOOLER IS RUNNING, THE CARDS SHOULD
     IMMEDIATELY BEGIN READING IN.  IF THE CARD READER SHOULD
     STOP UNEXPECTEDLY, CHECK ERROR LIGHTS ON CARD READER.  IF
     NO HARDWARE ERRORS, THE PROBLEM IS PROBABLY A MIS-PUNCHED
     CARD.  THE LA30 WILL EVENTUALLY TELL YOU ABOUT IT:
 
		*** UC15 ERROR CDU NNNNNN
 
     REFER TO THE SHEET ABOVE THE LA30 FOR ERROR CODES.
 
12.  TO BEGIN PROCESSING THE DECKS, AT LA30:
 
			^C
			MCR>QUE 14<ALT>
 
13.  WHEN ALL DECKS HAVE BEEN READ, THE 4 CARD DECK ON THE SHELF
 
	$JOB     FLUSH CARD READER
	$END
	   (GREEN CARD)
	   (BLUE CARD)
 
     MUST BE RUN.  THIS FORCES THE END OF THE LAST JOB THROUGH THE
     SPOOLER (BOTH CARD READER & PRINTER), AND TERMINATES THE
     BATCH JOB STREAM FROM THE CARD READER.
 
14.  ANY DECKS READ IN AFTER A GREEN 'EOF' CARD (COL 1 ALL PUNCHED)
     MUST RESTART AT STEP 11.
[\].
CLAWBYJOB
$JOB 73(005) 'CLAWBY' PAUL HENDERSON
$UIC <PDH>
$FOR BRE_CLK013
$MAC BRE_AWAKE 002
$MAC BRE_BUSY 002
$TKB
NRM}
CLOCK}
25}
GRAFIX}
CLK013}
 }
$DEL CLK013 BIN
$TKB
NRM}
AWAKE}
500}
SMALL0}
AWAKE}
 }
$DEL AWAKE BIN
$TKB
NRM}
BUSY}512}
LV}
BUSY} }
$DEL BUSY BIN
$END
[\].
DC@@@@JOB
$JOB 73(010) 'DC' PAUL HENDERSON
$UIC <PDH>
$MAC BRE_DC 004
$TKB
EXM,NFP,PGR}
DC....}
1}
LV}
 }
DC}
 }
 
$END
[\].
DCSIM@JOB
$JOB 73(003) 'DCSIM' PAUL HENDERSON
$UIC <PDH>
$MAC BNXF_SNAPDF,DCSIM 005
$TKB
NRM,IOT}
DCSIM}
511}
PIP}
DCSIM}
 }
 
$DEL DCSIM BIN
$REM DCSIM
$INS DCSIM
$REQ DCSIM
$END
[\].
DCT@@@JOB
$JOB 73(005) 'DCT' PAUL HENDERSON
$UIC <PDH>
$MAC BRE_DCT 006
$TKB
EXM}
DCT}
511}
VW}
 }
DCT}
 }
 
$END
[\].
DCTESTJOB
$JOB 73(003) 'DCTEST' PAUL HENDERSON
$UIC <PDH>
$MAC BREF_SNAPDF,DCTEST 005
$BTK DCTEST
$DEL DCTEST BIN
 $REM DCTEST
 $INS DCTEST
 $REQ DCTEST
 $REM DCTEST
$END
[\].
DELAY@JOB
$JOB 73(015) 'DELAY' PAUL HENDERSON
$UIC <PDH>
$WAT BL_FCMAIN
 $MAC BL_DELAY
$UIC <PDH>
$PUP T 15 _ 41 SNP BIN,.INTRP BIN,.ARITH BIN
$TKB
NRM}
DELAY}
6}
TDV}
FCMAIN,DELAY,.INTRP,.ARITH,SNP}
 }
 
$INS DELAY
$PAUSE ALL ASSIGNMENTS MADE?
$REQ DELAY
$REM DELAY
$DELETE .INTRP BIN,.ARITH BIN,SNP BIN
$END
[\].
DELAY@SRC
	.TITLE	DELAY
/
/  22 FEB 77 - PAUL HENDERSON
/
IDX=ISZ
/
	.GLOBL	DELAY,DWAIT,.ARG
/
DELAY	XX
	JMS*	.ARG
	JMP	.+3
LUN
DLY
	LAC*	LUN		/ GET LUN
	DAC	FCLUN
	LAC*	DLY
	IDX	DLY
	DAC	MOST
	LAC*	DLY
	DAC	LEAST
	CAL	FCPUT		/ START FAST CLOCK FOR SPECIFIED DELAY
	JMP*	DELAY		/ AND RETURN
/
DWAIT	XX
	CAL	WTFOR		/ WAIT FOR FAST CLOCK
	JMP*	DWAIT
/
FCPUT	3100;	EV;FCLUN;MOST;LEAST; 0
WTFOR	20;	EV
EV	0
	.END
[\].
DLERPLJOB
$JOB 73(003) 'DLERPL' PAUL HENDERSON
$UIC <PDH>
 $MAC BRE_DLERPL 001
$TKB
NRM}
DLERPL}
10}
GRAFIX(10000)}
DLERPL}
 }
 
$REM DLERPL
$INS DLERPL
$END
[\].
FC@@@@JOB
$JOB 73(002) 'FC' PAUL HENDERSON
$UIC <PDH>
$MAC BNX_FC 015
$TKB
EXM,NFP,PGR}
FC....}
1}
LV}
 }
FC}
 }
 
$END
[\].
FCMAINSRC
C     .TITLE FCMAIN
C
C  22 FEB 77 - PAUL HENDERSON
C
C  PROGRAM TO TRY TO VALIDATE TIME DELAYS
C
      INTEGER*2 LUN/29/
      INTEGER*4 DLY/10000000/
C
      CALL OFF
      DO 3 J=1,10
      WRITE (16,*) 'BEGIN INNER LOOP',J
      DLY = J*1000000
      WRITE (16,*) DLY,'MICROSECONDS'
      DO 2 K=1,6
      CALL DELAY (LUN,DLY)
      CALL PDATE (16)
      CALL DWAIT
   2  CONTINUE
      CALL PDATE (16)
   3  CONTINUE
      STOP 7
      END
[\].
FCTESTJOB
$JOB 73(009) 'FCTEST' PAUL HENDERSON
$UIC <PDH>
$MAC BL_FCTEST
$BTK FCTEST
$INS FCTEST
$INS FC....
$PAUSE EXECUTION!!!?? (REA 29 FC NONE)
$REQ FCTEST
$REM FCTEST
$PAUSE (MCR>REA 29 NONE FC)
$REM FC....
$END
[\].
FCTESTSRC
	.TITLE	FCTEST
/
/  22 FEB 77 - PAUL HENDERSON
/
/  ROUTINE TO TEST OUT THE FAST CLOCK DEVICE HANDLER
/
	.DEC
MCR=3
FC=29
	.OCT
/
FCTEST	CAL	WRFRST		/ OUTPUT MESSAGE
	LAW	-5
	DAC	COUNT		/ TRY FOR 5 DELAYS
LOOP1	CAL	DY10M		/ OF 10 SECONDS
	CAL	WTFOR
	CAL	WRITE
	ISZ	COUNT
	JMP	LOOP1
/
	LAW	-7		/ THEN TRY FOR 7 DELAYS
	DAC	COUNT
LOOP2	CAL	DY5M		/ OF 5 SECONDS
	CAL	WTFOR
	CAL	WRITE
	ISZ	COUNT
	JMP	LOOP2
	CAL	WRLAST		/ THIS ONE IS TO TIDY UP THE I/O
	CAL	WTFOR
	CAL	(10
/
DY10M	3100;	EV;  FC; 46; 113200; 0
DY5M	3100;	EV;  FC; 23; 045500; 0
WTFOR	20;	EV
WRFRST	2700;	0;  MCR;  2; FIRST
WRITE	2700;	0;  MCR;  2; LINE
WRLAST	2700;	EV; MCR;  2; LAST
/
FIRST	FI-.*400+2;EV;	.ASCII	'BEGIN'<15> ;FI=.
LINE	LI-.*400+2;COUNT; .ASCII	'TEST LINE'<15> ;LI=.
LAST	LA-.*400+2; 0;	.ASCII	'LAST LINE'<15> ;LA=.
	.END	FCTEST
[\].
FPDIV2JOB
$JOB 73(005) 'FPDIV2' PAUL HENDERSON
$UIC <ARK>
$DECK FPDIV2
	.TITLE	FPDIV2
/
/  16 AUG 77 - PAUL HENDERSON
/
/  CHECK OUT FPP DIVISION
/
IDV=712000
EDV=712100
ERD=712500
ILD=713000
ELD=713100
IDX=ISZ
/
FPDIV2	LAW	-10
	DAC	COUNT
	LAC	(DIVISR
	DAC	FPADR1
	LAC	(DIVEND
	DAC	FPADR2
	CLA!IAC
	PAX
/
LOOP	LAC*	FPADR2,X
	LMQ			/ STORE DIVISOR IN AC, MQ
	LAC*	FPADR2
	ELD;FPADR1
	SNAP	1,402
	ERD;FPADR2
	SNAP	2,403
	IDX	FPADR1
	IDX	FPADR1
	IDX	FPADR2
	IDX	FPADR2
	ISZ	COUNT
	JMP	LOOP
	CAL	(10
/
	.DEC
DIVEND	0; 1; 0; 2; 0; 4; 0;  8; 0; 16; 0; 32; 0;  64; 0; 128
DIVSOR	0; 2; 0; 4; 0; 8; 0; 16; 0; 32; 0; 64; 0; 128; 0; 256
	.OCT
COUNT
	.END	FPDIV2
$EOF
 $PUP T 16 (F) _ 15 FPDIV2 SRC
$MAC BNXF_SNAPDF,FPDIV2
$BTK FPDIV2
$REM FPDIV2
$INS FPDIV2
$EJECT
$REQ FPDIV2
$REM FPDIV2
$DEL FPDIV2 SRC,FPDIV2 BIN,FPDIV2 TSK
$END
[\].
FPDIV@JOB
$JOB 73(005) 'FPDIV' PAUL HENDERSON
$UIC <ARK>
$DECK FPDIV
	.TITLE	FPDIV
/
/  25 AUG 77 - PAUL HENDERSON
/
/  CHECK OUT FPP DIVISION
/
IDV=712000
ILD=713000
UNDST=713770
UNSWQ=715270
/
FPDIV	LAW	-20
	DAC	COUNT
	LAC	(22		/ BEGINNING DIVISOR
/
LOOP	DAC	DIVISR		/ SAVE UPDATED DIVISOR
	ILD;	(12		/ DIVIDEND IS ALWAYS 12
	SNAP	1,402		/ DISPLAY LOADED DIVIDEND
	IDV;	DIVISR
	SNAP	2,403		/ DISPLAY DIVISOR, QUOTIENT, "REMAINDER"
/
	ILD;	(12
	IDV;	DIVISR		/ NOW DO THE WHOLE DIVISION
	UNSWQ;	0		/ WITHOUT INTERMEDIATE SNAPS.
	UNDST;	REMAIN		/ STORE THE REMAINDER
	SNAP	3,2,REMAIN,REMAIN+2  / DISPLAY FP REG'S & REMAINDER
	LAW	-1
	TAD	DIVISR		/ DECREMENT THE DIVISOR
	ISZ	COUNT
	JMP	LOOP
	CAL	(10
/
DIVISR;COUNT
REMAIN	.BLOCK	3
	.END	FPDIV
$EOF
$PUP T 16 (F) _ 15 FPDIV SRC
$MAC BNXF_SNAPDF,FPDIV
$BTK FPDIV
$REM FPDIV
$INS FPDIV
$EJECT
$REQ FPDIV
$REM FPDIV
$DEL FPDIV SRC,FPDIV BIN,FPDIV TSK
$END
[\].
LOOK@@001
	.TITLE	LOOK
/
/   9 JUL 76 - PAUL HENDERSON
/
/  PROGRAM TO LOOK AT PBDL'S TO FIND OUT ABOUT VIRTUAL PARTITION SIZES.
/
P.BA	0
P.SZ	0
SPY	31			/ CPB FOR 'SPY' DIRECTIVE
	EV
SPYADR
SPYCON
/
LOOK	CAL	PARINF		/ FIND OUT ABOUT THIS PARTITION
	JMS	WAITFR
	NOP			/ IN CASE WE WANT A BREAKPOINT
	LAC	(250		/ PBDL LISTHEAD
LOOP	DAC	SPYADR
	CAL	SPY
	JMS	WAITFR
	LAC	SPYCON		/ ADDRESS OF CURRENT PBDL
	DAC	P.FP
	AAC	4		/ POINT TO BASE ADDRESS
	DAC	SPYADR
	CAL	SPY
	LAC	SPYCON		/ GET BASE ADDRESS OF CURRENT PBDL AND
	SAD	P.BA		/ COMPARE IT WITH THIS PARTITION
	JMP	FOUND		/ HAVE FOUND THE CORRECT PBDL NODE
	LAC	P.FP
	DAC	SPYADR		/ NOT CORRECT ONE YET.
	CAL	SPY
	JMS	WAITFR
	LAC	SPYCON		/ GET POINTER TO NEXT PBDL NODE
	JMP	LOOP
/
FOUND	LAC	P.FP
	AAC	6		/ POINT TO ACTUAL PARTITION SIZE
	DAC	SPYADR
	CAL	SPY
	LAC	P.FP
	AAC	11		/ POINT TO VIRTUAL PARTITION SIZE
	DAC	SPYADR
	CAL	SPY
	NOP
/
	CAL	PREAL		/ NOW PRE-ALLOCATE A BUFFER AND
	JMS	WAITFR		/ SEE WHAT IT LOOKS LIKE
	JMP	FOUND
/
WAITFR	XX
	CAL	WAITF
	LAC	EV
	JMP*	WAITFR		/ LEAVE WITH EV IN AC
WAITF	20
	EV
/
PARINF	26
	EV
	0; 0
	P.BA
/
PREAL	2300
	EV
	21			/ LUN 17 IS DISK
/
P.FP;EV
	.END	LOOK
[\].
MOUNT@JOB
$JOB 73(025) 'MOUNT' PAUL HENDERSON
$UIC <SCR>
$DECK MOUNT
C     .TITLE MOUNT
C
C   9 JUN 77 - PAUL HENDERSON
C
      INTEGER LP/6/,PP/7/
C
   1  WRITE (LP,99)
      WRITE (LP,98)
      WRITE (PP,98)
      DO 2 K=1,70
      WRITE (LP,97)
      WRITE (PP,97)
      WRITE (LP,96) K
      WRITE (PP,96) K
   2  CONTINUE
      WRITE (LP,95)
      WRITE (PP,95)
      WRITE (LP,94)
      STOP 7
  99  FORMAT ('1',T60,'LISTING OF BATCH FILE')
  98  FORMAT (' $JOB 99(050) GENERATE MANY UFD''S')
  97  FORMAT (' $DSM RK1')
  96  FORMAT (' $MNT RK1 <A00>',T13,I2)
  95  FORMAT (' $END')
  94  FORMAT (T60,'END OF LISTING OF BATCH FILE',/,'1')
      END
$EOF
$WAT BL_MOUNT
$BTK MOUNT
$REM MOUNT
$INS MOUNT
$REQ MOUNT
$REM MOUNT
$DEL MOUNT SRC,MOUNT BIN,MOUNT TSK
$END
[\].
PRINT@SRC
C     .TITLE PRINT
C
C  31 AUG 78 (003; PDH) RESURECT FROM CLOBBERED DECTAPE
C   1 DEC 77 (PDH) CLOSE LP AFTER 5 LINES OF OUTPUT; PAUSE
C  29 NOV 77 - PAUL HENDERSON
C
      INTEGER LP/6/
      CHARACTER*1 ALPH(26)/'A','B','C','D','E','F','G',
     * 'H','I','J','K','L','M','N','O','P','Q',
     * 'R','S','T','U','V','W','X','Y','Z'/
      CHARACTER*1 LINE(130),WLINE(0/130)
C
   1  INDEX = 1
      DO 3 J=1,5
      DO 2 K=1,26
      LINE(INDEX) = ALPH(K)
      INDEX = INDEX + 1
   2  CONTINUE
   3  CONTINUE
C
      DO 4 K=1,130
      WLINE(K) = ' '
   4  CONTINUE
C
   5  CALL OPEN (LP, 'LISTNGLST')
   5  DO 7 J=1,5
      WRITE (LP,*) ' '
      DO 6 K=1,130
      WLINE(K) = LINE(K)
      WLINE(K-1) = ' '
      WRITE (LP,99) WLINE
   6  CONTINUE
      WLINE(130) = ' '
   7  CONTINUE
      CALL CLOSE (LP)
      PAUSE 1
      GO TO 5
  99  FORMAT ('+',131A1)
      END
[\].
SNAPDFSRC
	.TITLE	SNAP MACRO DEFINITION
/
/  23 AUG 76 - PAUL HENDERSON
/
/  THE 'SNAP' MACRO HAS THE FOLLOWING INVOCATION:
/
/	SNAP	ID,CODE,BEGIN,END
/
/  WHERE:	ID    IS A DECIMAL NUMBER NOT GREATER THAN 511
/		CODE  SPECIFIES WHICH REGISTERS TO DUMP
/		BEGIN IS THE ADDRESS TO START DISPLAYING CORE LOCATIONS
/		END   IS THE LAST ADDRESS (VARIABLE) TO DISPLAY
/
/  PRESENTLY IMPLEMENTED VALUES FOR CODE ARE:
/
/    0 DISPLAY SPECIFIED VARIABLES ONLY
/    1 DISPLAY  L AC MQ XR LR  IN ADDITION TO VARIABLES
/    2 DISPLAY FLOATING POINT REGISTERS
/    4 DISPLAY CONTENTS OF AUTO-INDEX REGISTERS.
/  400 OMIT OUTPUT OF SPECIFIED VARIABLES ('BEGIN' & 'END' NOT REQUIRED)
/
/  THE BITS ARE TESTED INDIVIDUALLY, SO THE NUMBERS MAY BE MICRO-CODED.
/
/  LUN 6 IS USED FOR OUTPUT IN A NON-FILE ORIENTED MANNER.
/
	.DEFIN	SNAP,ID,CODE,BEGIN,END
	.GLOBL	.SNAP
BG=BEGIN-1
	.DEC
ID2=ID
	.OCT
	JMS*	.SNAP
	CODE+0*1000 ID2&777
	BG
	END-BG*777777
	.ENDM
	.EOT
[\].
TAPDMPJOB
$JOB 73(003) 'TAPDMP'
$UIC <PDH>
$MAC BNX_TAPDMP 001
$BTK TAPDMP
$REM TAPDMP
$INS TAPDMP
$REQ TAPDMP
$ERROR
$EJECT
$REM TAPDMP
$END
[\].
TIMOUTJOB
$JOB 73(003) 'TIMOUT' PAUL HENDERSON
$UIC <PDH>
$MAC BFRE_SNAPDF,TIMOUT 001
$LIST TIMOUT
$REM TIMOUT
$TKB
NRM,IOT}
TIMOUT}
200}
TDV}
TIMOUT}
 }
 
$EJECT
$INS TIMOUT
$PAUSE ARE ALL ASSIGNMENTS MADE?
$REQ TIMOUT
$REQ TIMOUT 4
$REQ TIMOUT 512
$REM TIMOUT
$END
[\].
TPULSEJOB
$JOB 73(005) 'TPULSE' PAUL HENDERSON
$UIC <PDH>
 $MAC BRE_PULSE 029
 $EJECT
$FOR BR_TPULSE
$TKB
NRM,UL:F4LIB}
TP}
400}
GRAFIX}
TPULSE,PULSE}
 }
 
$REM TP
$INS TP
$END
[\].
TRACERJOB
$JOB 73(003) 'TRACER' PAUL HENDERSON
$UIC <PDH>
$MAC BRE_TRACER 008
$TKB
EXM,PGR}
TRACER}
512}
SMALL0}
 }
TRACER}
 }
 
$END
[\].
WITS@@JOB
$JOB 73(005) 'WITS' ASSEMBLY
$UIC <PDH>
$MAC BNX_WITS 006
$TKB
EXM}
WITS}3}
PIP}
 }
WITS} }
 
$PUP T 51 _ 15 WITS TSK
$END
[\].
