PDP-9 RIM PUNCHER

/ACS-0 DOWN, FIRST ADDRESS IN ACS AND CONTINUE.
/ON HALT, LAST ADDRESS IN ACS AND CONTINUE.
/ON HALT, ACS-0 DOWN I NEW BLOCK, UP IF START BLOCK. ADDRESS IN ACS
/AND CONTINUE.
/FOR NEW TAPES, REPEAT PROCEDURE FROM THE TOP.

/TWO VERSIONS: LOW--SA 100; HIGH--SA 17000
100/
RIMP,	HLT
	LAM -400
	JMS FEED		/FEEDS 3-1/2 FFU OF TAPE
	LAS		/FIRST ADDRESS FROM ACS
RIM2,	XOR (DAC
	DAC BFST
	HLT
	LAS		/LAST ADDRESS FROM ACS
	SPA
	JMP RIM2 2	/WILL NOT PROCEED UNLESS ACS-0 IS DOWN
	ADD (DAC 1
	DAC BLAST
PCH,	LAC BFST
	SAD BLAST
	JMP PSTB
	JMS P1B	/RIM WORD
	LAC I BFST
	JMS P1B		/DATA WORD
	ISZ BFST
	JMP PCH
PSTB,	LAM -20
	JMS FEED
	HLT
	LAS		/NEXT ADDRESS
	SMA
	JMP RIM2	/IF NEW DATA BLOCK
	XOR (200000	/IF NEW START BLOCK
	JMS P1B
	CLA
	JMS P1B		/DUMMY WORD TO STOP TAPE
	LAM -131
	JMS FEED
	JMP RIMP
FEED,	0
	DAC HOLD
	PLS 10
	PSF
	JMP .-1
	ISZ HOLD
	JMP FEED 2
	JMP I FEED
P1B,	0
	DAC TEMP
	LAM -2
	DAC CHRC
PLIN,	LAC TEMP
	RTL	RTL	RTL
	DAC TEMP
	RAL
	AND (77
	ADD (200
	PLS
	PSF
	JMP .-1
	ISZ CHRC
	JMP PLIN
	JMP I P1B

BFST,	0
BLAST,	0
CHRC,	0

TEMP=FEED
HOLD=P1B

START RIMP
