File HR.TK

Directory of image this file is from
This file as a plain text file

/****** TOPS8 PTR EMULATOR ********
/LAST EDIT: 29-SEP-78, HOU
/LAST EDIT: 29-AUG-75, ELC
/CREATED: 20-DECEMBER-74, ELC
/SINGLE PAGE PAPERTAPE READER EMULATOR
/THIS TASK EXPECTS THE FOLLOWING THREE IOT'S FROM THE BACKGROUND:
/
/6011	SKIP-ON-READER-FLAG. THIS IOT IS INITIALY PACHED WITH
/	A SKIP. THIS MODULE WILL TAKE CARE OF ALL SYNCRONISATION
/	THUS THE 6011 IS PURE OVERHEAD THAT CAN BETER BE AVOIDED.
/	WE DO REMEMBER HOWEVER WHERE THE 6011 WAS IN THE USERS
/	PROGRAM. IF WE TIMEOUT THE TAPEREADER AT THE END
/	WE CHANGE THE SKP IN A NOP. NORMALY BG-PROGRAMS COUNT THE 
/	NUMBER OF 6011 THAT ARE NECESARRY TO GET THE NEXT
/	CHAR FROM THE
/	TAPE AND IF IT LASTS TOO LONG THEY DECIDE IT TO BE THE END
/	OF THE TAPE. SUCH A TIMEOUT LOOP WOULD TAKE QUITE SOME
/	TIME IF EVERY 6011 HAS TO BE EMULLATED. THUS BY PATCHING
/	IT WITH A NOP WE CAN LET IT GO AS SMOOTH AS NORMALLY.
/	NOTE THAT THE SAME READER ROUTINE IN THE BACKGROUND CAN'T
/	BES RESET TO A RSF FIRST ! IS THE ACTUAL READ-INST THE READER (FIRST TIME /	READER INTERRUPT. THEN THE CHARACTER IS ORRED IN
/	THE USERS ACUUMULATOR AND WE RETURN. WHEN THE WAIT
/	EXITS WITH A TIMEOUT ERROR, WE GIVE A CONTROL-Z IN THE
/	USERS ACCUMULATOR, PATCH THE SKP TO A NOP AND MAKE
/
/6014	THIS INSTRUCTIFLOUS AND PATCHED
/	WITE IOT'S
/
	KCC=KCC&7008P
	KSF=KSF&7007+KL8P
	TASKNA HR
	200		/A ONE PAGER WITHOUT CONNECTED INT'S
	0
RE,	CDF MONFLD	/THERE ARE THE INTERRESTING THINGS
	SNA
	 JMP RECLR	/AC=0: RELEASE THIS DEVICE
	TAD C3		/AC IS POINTER TO BG-AREA
	DCA REUPC
	TAD REUPC
	IAC
	JMS DEFER
	AND C70		/GET CURRENT INSTRUCTION FIELD
	TAD C6201
	DCA RECDF	/SETUP FOR PATCHES
	STA
	TAD I REUPC
	DCA REPNT	/POINTER TO CURRENT INSTRUCTION
	TAD REUPC
	TAD C2
	DCA REUAC
	TAD REUAC
	IAC
	JMS DEFER	/GET THE TRAPPED INSTRUCTION
	RTR
	SPA CLA
	 JMP RESKP	/IOP1: SKIP
	SNL
	 JMP RENOP	/NOT IOP2
RERFC,	KCC		/IOP2: READ
	DCA .-1		/RFC ONE TIME ONLY TO START TAPE
	TAD (-DGNTICK%5!7700	/.2 SECONDS TIMEOUT
	JMS MONITOR
	   WAIT
	   HSR
	SZA CLA
	 JMP REEND	/TIMED OUT
	TAD I REUAC
	KRS		/OR-IN NEW CHAR, KICK READER
	DCA I REUAC	/GIVE BACK TO USER
	KCC
RERET,	JMS MONITOR
	   RETURN

RESKP,	ISZ I REUPC	/SKIP FIRST TIME TOO
	TAD REPNT
	DCA RESAVE	/REMEMBER WHERE RSF WAS
	TAD (SKP-NOP
RENOP,	DF TO USERS INSTRUCTION F MONFLD
	JMP RERET

+1
	CDF		/CDF TO USERS ANGE TO NOP FOR  A SMOOT TIMEOUT LOOP
	DCA I RESAVE
	CDF MONFLD
	TAD I REUAC
	AND (-232-1
	TAD (232
	DCA I REUAC	/OR-IN A ^Z
RECLR,	TAD (KCC
	DCA RERFC	/REINITIALISE READER ROUTINE
	JMS MONITOR
	   EXIT SWPREUPC,	0
REUAC,	0
REPN



Feel free to contact me, David Gesswein djg@pdp8online.com with any questions, comments on the web site, or if you have related equipment, documentation, software etc. you are willing to part with.  I am interested in anything PDP-8 related, computers, peripherals used with them, DEC or third party, or documentation. 

PDP-8 Home Page   PDP-8 Site Map   PDP-8 Site Search