File $THRUF0

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

*20
/THIS ROUTINE READS 1 CHANNEL AT UP
/TO 100/SEC AND OUTPUTS TO TAPE VIA
/F0S DEFINITION.  ASSUMES CALLED BY
/S X=FX (CHN,PTS,SYNC,RATE)
PMODE
INTEGER=53
CHAR=66
PUSHJ=4540
EVAL=1613
ERROR3=4566
FINT=4407
FPUT=6000
FGET=0
FMUL=4000
FSUB=2000
FADD=1000
FNOR=7000
BOTTOM=35
B1FLG=2125
B2FLG=B1FLG+4
FEXP=4620
FEXT=0
FDIV=3000	/A DASH OF INDIVIDUALITY
FLAC=44
EFUN3I=136
CLKFLG=2661
CLEN=6134
CLSK=6131
CLSA=6135
CLSA=6135
CLLR=6132
PFX=411
*BOTTOM
	FX-25
*PFX
	FX
*4200
	LISTAPE	-7
	EJECT
/**********CHANNEL**********
FX,	JMS I	INTEGER	/CHANNEL NO.
	AND	P37
	TAD	P1OO	/MAKE A SAM
	DCA I	SAMPT
	TAD	CHAR
	TAD	MCCMA	/COMMA
	SZA CLA
	ERROR3		/17.07
/**********NUMBER OF POINTS**********
	PUSHJ		/GET NO. PTS
	EVAL-1
	FINT
	FPUT	TOTLCT
	FEXT
	JMS I INTEGER
	CMA IAC
	DCA I	COUNTP	/NO. POINTS,MOD 4K
	ISZ I 	COUNTP	/ACCOUNTS FOR INIT READING
	CMA
	DCA I PCNT2	/INTEGER IS MOD 4K
	TAD FLAC+1	/SO SET UP 2ND COUNT
	SNA
	JMP 	.+3	/LESS THAN 4K
	CMA
	DCA I	PCNT2
	TAD	FILTAB	/F0 PARAMETERS
	DCA	TAPTR
	CDF	10
	TAD I	TAPTR	/FILE TYPE MUST BE S
	CDF	0
	TAD	M2
	SZA CLA
	ERROR3		/17.31
	ISZ	TAPTR
	TAD P27		/SET UP LENGTH
	DCA NOBLKS
	DCA NOBLKS+1
	CDF	10
	TAD I	TAPTR	/LENGTH
	CDF	0
	DCA NOBLKS+2
	TAD NOBLKS+2
	SPA CLA		/ABS TBLK GETS 7777
	JMP NOCHK
	FINT
	FGET NOBLKS
	FNOR NOBLKS
	FPUT NOBLKS
	FGET	TOTLCT
	FDIV	M128	/NO. REQUESTED
	FADD	NOBLKS	/ENUF ROOM?
	FEXT
	JMS I	INTEGER
	SPA CLA
	ERROR3		/17.53
	EJECT
NOCHK,	ISZ	TAPTR
	CDF	10
	TAD I	TAPTR	/UNIT
	CDF	0
	RAR		/SAV UNIT IN LINK
	AND	P3	/XTENDED UNIT BITS
	TAD	P1030
	DCA I	PXUNIT
	TAD I	PXUNIT
	DCA	CUNIT
	RTL		/RETRIEVE UNIT
	RTL		/FROM LINK
	TAD	P706	/WRI
	DCA I	TPUPTR
	TAD I	TPUPTR
	DCA	CORDER
	TAD	P6000
	DCA I	PBUFSW	/1ST BUFFER
	TAD	P6000
	DCA I	PBFSW
	ISZ	TAPTR
	CDF	10
	TAD I	TAPTR	/1ST TBLK
	CDF	0
	DCA I	PBLK
	TAD I	PBLK
	DCA	CBLOCK
	IOF
	LINC
	LMODE
	LDA I		/FLD 1, XTEN ADDR,
CUNIT,	1030		/AND NO PAUSE
	AXO
	LDA I
	6000
	TMA
CORDER,	0		/WRI 1ST TBLK
CBLOCK,	0		/TO BE SURE
	STD
	JMP	.-1
	PDP
	PMODE
	CLA
	ION
	JMP I	PSYNC
	EJECT
P37,	37
P1OO,	100
MCCMA,	-254
PCNT2,	COUNT2
TOTLCT,	0;0;0
FILTAB,	2135		/FOCAL-12S F0 TABLE
/FILE TYPE (1,2,3=U,S,F) -LENGTH - UNIT - 1ST BLOCK
TAPTR,	0
NOBLKS,	27;0;0
M128,	10;5777;7777
M1,	-1
P27,	27
P3,	3
M2,	-2
P1030,	1030
P6000,	6000
PXUNIT,	XUNIT
PBUFSW,	BUFFPT
PBFSW,	BUFFSW
P706,	706
COUNTP,	COUNT
TPUPTR,	TPUNIT
PBLK,	BLKPTR
PSYNC,	SYNCH
SAMPT,	SETSAM
	EJECT
PAGE
/
/SET UP THE SYNC FUNCTION
/
SYNCH,	TAD CHAR
	TAD MCOMA
	SZA CLA
	ERROR3	/18.03
/**********SYNC**********
	PUSHJ
	EVAL-1
	  JMS I	INTEGER
	DCA	TEMP
	TAD	TEMP
	TAD	M31
	SMA SZA CLA
	ERROR3		/TOO BIG 18.05
	TAD	TEMP
	TAD	M11
	SMA SZA CLA
	JMP	SLINE	/SYNC ON SENSE LINE
	TAD	TEMP
	TAD	M5
	SMA SZA CLA
	ERROR3		/DONT GOT NONE 18.19
/
/SET UP SYNC ON SENSE SWITCH
/
	TAD	TEMP	/SS NO.
	TAD	P440	/MAKE AN SNS
	DCA	SYNCSW
	JMP	GETIME
/
/SET UP FOR SENSE LINE SYNC
/
SLINE,	TAD	TEMP	/LINE NO. (10-25)
	TAD	M12
	AND	P17
	TAD	P400	/MAKE AN SXL
	DCA	SYNCSW
GETIME,	TAD	CHAR	/GET TIME BEFORE SYNC
	TAD MCOMA
	SZA CLA
	ERROR3		/18.32
/**********RATE**********
	PUSHJ
	EVAL-1
/
/INITIAL DELAY FOR SYNC
/
	IOF
	LINC
	LMODE
SYNCSW,	0		/SET TO SNS/SXL
	JMP	.-1
	PDP
	PMODE
	EJECT
/
/TAKE FIRST READING AND START CLOCK
JUSTGO,	IOF
	JMS	SAMRTN	/READS, STORES A/D
	FINT		/SECS TO 100HZ
	FMUL	M100
	FEXT
	CLLR		/CLR MODES
	CLEN		/CLR ENABLES
	JMS I 	INTEGER	/-NO. COUNTS
	CLAB		/LOAD PRESET REG
	CLA
	TAD P100
	CLLR
	TAD P200
	CLEN
	TAD P4600	/REALLY 5100SINCE NO CLR
	CLLR
	CLA
	FINT
	FGET	I PT1
	FEXT
	JMP I	.+1
	LOOP
/ROUTINE TO READ AND STORE VALUES
/USING F0; SET UP TO STORE S TYPE
/SWITCHES BUFFS AS NECESSARY AND WRITES
/
SAMRTN,	0
	LINC
	LMODE
SETSAM,	0
	PDP
	PMODE
	CLL RAL		/EXP 0
	CLL RAL
	CDF 10
	DCA I BUFFPT
	ISZ BUFFPT
	DCA I BUFFPT	/INSUFFICIENT
	CDF 0
	ISZ BUFFPT
/CHECK FOR FULL BUFFER
	TAD	BUFFPT
	AND	P377
	SZA CLA
	JMP I	SAMRTN	/NOT FULL
/TIME TO SWITCH BUFFERS AND
/WRITE OUT THIS ONE
FULBUF,	LINC
	LMODE
	STD
	JMP	.-1
	LDA I
XUNIT,	1030		/FLD1,XTEN ADDR, NO PAUS
	AXO
	LDA I
BUFFSW,	6000
	TMA
TPUNIT,	0		/WRI
BLKPTR,	0		/TBLK
	PDP
	PMODE
	CLA
	TAD	BUFFSW	/SWITCH BUFFERS
	TAD	P400
	AND	P6400
	DCA	BUFFSW
	TAD	BUFFSW
	DCA	BUFFPT
	ISZ	BLKPTR
	NOP
	JMP I	SAMRTN	/XIT
M100,	7;4700;0
P100,	100
P400,	400
P6400,	6400
P377,	377
BUFFPT,	6000
MCOMA,	-254
M11,	-11
M12,	-12
M5,	-5
PT1,	TOTLCT
P17,	17
TEMP,	0
M31,	-31
P440,	440
P200,	200
P4600,	4600
PX1,	RTN
/
/MAKE SURE LAST BUFFER IS MT
/
CHKLST,	CLA
	TAD PX1		/SET UP FOR PARTIAL BUFF
	DCA SAMRTN	/WHICH SHOULD BE SENT OUT
	TAD	BUFFPT
	AND	P377
	SZA CLA
	JMP	FULBUF	/WRITE OUT PARTIAL
RTN,	LINC
	LMODE
	STD
	JMP	.-1
	PDP
	PMODE
	CDF	10	/IN CASE FILES WERE ACTIVE
	DCA I	PB1FLAG	/LET FOCAL-12 KNOW THEY
	DCA I	PB2FLAG	/ARE GONE
	CDF 	0
	ION
	JMP I EFUN3I	/XIT TO FOCAL
PB1FLAG,	B1FLG
PB2FLAG,	B2FLG
	EJECT
/
/LOOP TO KEEP THINGS GOING
/
*4154
LOOP,	ISZ I 	PCLKFLG	/SET UP WAIT FOR CLOCK TIC
	ION
	TAD I	PCLKFLG	/CLEARED ON CLK INT
	SZA CLA
	JMP 	LOOP+2	/NOT YET
	IOF
	JMS	I PSAMRTN	/ITS TIME
	ISZ	COUNT
	JMP	LOOP
	ISZ 	COUNT2	/CHK IF MORE
	JMP 	LOOP	/YES-KEEP GOING
	JMP I	PCHKLST	/FINI
COUNT,	0
COUNT2,	0
F4000,	14;3720;0
PSAMRTN,	SAMRTN
PCHKLST,	CHKLST
PCLKFLG,	CLKFLG



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