File DO.TK

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

/NAME : DO	/FRIDO HANDLER MODULE

/9-JULY-1975 J.M.S.

/THIS MODULE HANDLES FRIDO INTERRUPS AND "FR"  CALLS
/CALL:
/	TAD (PR.FUNC.WORD
/	JMS MONITOR
/	CALL
/	"D^100+"O&3777
/	BUZY RETURN
/	NORM.RETURN WITH STATE IN ACC


/DEVICE FUNCTION WORD:
/
/-------------------------------------------------
/ I 0 I 1 I 2 I 3 I 4 I 5 I 6 I 7 I 8 I 9 I 10 I 11 I
/--------------------------------------------------
/ ---UNUSED---I-1-I-UNIT--I-0=AMPL-MODES--I-H/CIPULS
/			    1=FILTR-MODES
/			        0=HDFILTR
/			        1=LDFILTR
/
/
/PROGRAM FUNCTION WORD (CALLING WORD IN ACC)
/
/-------------------------------------------------------
/ I 0 I 1 I 2 I 3 I 4 I 5 I 6 I 7 I 8 I 9 I 10 I 11 I
/-------------------------------------------------------
/  W/R		   UNIT       DEV          STATE
/
/
/BIT 6-8:
/0=AMPLIFIER
/1=HP FILTER
/2=LP FILTER
/
/
/BIT 9-11:
/
/STATE	AMPL	HPF	LPF
/---------------------------
/000	10	2	500	UV
/010	100	50	5000
/011	---	---
/101	2000	---	-111	20000	---	---
/-------


EJECT


DBDI=6500
DBEI=6501
DBSK=6502
DBCI=6503
DBRI=6504
DBCO=6505
DBSO=6506
DBRO=6507


EJECT

*200

DFUNC,	"D^100+"O&3777	/NAME DO (FRI"DO")
	201		/ONE PAGE , ONE CONNECT
	FRIDO		/INTERTERRUPT LABEL
	0		/END RY,	DBDI		/ ENTRY POINT,S
	DCA DFUNC
	TAD DFUNT0=0=GET ; BIT0=1=SET
	JMP FRGET		/NO
SET,	TAD DFUNC	/CONVERTS A PROGR WORD TO A DEV WORD
	AND K300	/MASK UNIT NR
	TAD K400	/SET BIT 3 ; MUST ALWAYS
	DCA DEV
	TAD DFUNC
	AND K30		/DEV=0
	SNA
	JMP AMPPD	/YES - AMPLIFIER
	AND K20		/MASK BIT 7
	TAD K40		/ITS A FILTER:SET  BIT 6
	TAD DEV
	DCA DEV
	TAD DFUNC
	AND C3
	JMP .+3
AMPPD,	TAD DFUNC
	AND K7
	CLL RTL
	JMS FROUT
	JMP LEAVE


FROUT,	0		/GIVES FUNC TO FRIDO
	TAD DEV
	DBSO		/SET SOME OUTPUT BITS
	CMA
	DBCO		/CLEAR OTHER BITS
	CLA IAC		/GIVE A WRITE PULS ON BIT 11
	DBSO
K7,	7		/MAKES THE PULS A LITTLE LONGER
K20,	20
K30,	30
	CLA IAC
	DBCO
	CLA
	JMS LOCATE
	TAD DFUNC	/SET FUNC IN TABLE
	AND K7		/STATE
	CDF MONFLD
	DCA I UNIT
	TAD I UNIT	/RETURN WITH STATE IN ACC
	JMP I FROUT

FRGET,	JMS LOCATE
	CDF MONFLD
	TAD I UNIT	/GET STATE
	JMP LEAVE

/CONNECT INTERRUPT ENTRY

DBINT,	DBRI		///READ INPUT
	DCA DEV
	TAD DEV
	CLL RTR		///COMPUTER CONTROL ?
	SZL
	JMP QCKRET	///NO BIT///GIVE READ PULS ON BITMAKE THE PULS A LITTLE L400
	CLA IAC
	DBCO
	C A DEV WORD TO A PROGR.WORD
	AND K300	///MASK UNIT NR
	DCA DFUNC
	TAD DEV
	BSW		///BIT 6=0?
	SMA
	JMP AMPDP	///N0- AMPLIFIER
	RAL		///YES - BIT 7=0?
	SPA CLA
	IAC		///NO LPF=2
	IAC		///YES HPF=1
	CLL RTL

	TAD DFUNC
	DCA DFUNC	D DEV
	RTR
	AND C3		//PDP,	BSW		///AMPL=0
	RT
	TAD DFUNC
	DCA DFUNC
	JMS FROUT		///SEND FUNC TO FRIDO
QCKRET,	CLA
	CIF MONFLD	///
	JMP I ZFSTEXT	///RETURN FROM INTERRUPT 

LOCATE,	0
	TAD DFUNC
	BSW		/MAX 4 UNITS
	AND C3
	DCA TEMP	/UNIT NUMBER * 3
	TAD TEMP
	CLL RAL
	TAD TEMP
	TAD (COMMON	/ADD TABLE POINTER ( TABLE =FREE MONITOR CORE
	DCA UNIT	/GIVES UNIT PLACE IN TABLE
	TAD DFUNC
	RTR
	RAR
	AND C3		/DEV NUMBER
	TAD UNIT	/ADD DEV
	DCA UNIT	/UNIT DEV PLACE
	JMP I LOCATE

LEAVE,	DBEI		/ENABLE INTERRUPS FROM FRIDO
	JMS MONITOR
	EXIT

DEV,	0
UNIT,	0
TEMP,	0
	$-$-$



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