File RESPCAL

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

*20
/// PROG RESPCAL.
	 
/PROGRAM SAMPLES THREE CHANNELS
/OF CALIBRATION SIGNALS AND CAL-
/CULATES THE REAL WORLD VALUE PER
/VOLT FOR EACH CHANNEL AND TYPES
/IT OUT.
/USE WITH RESIRATORY DATA.
/FIRST SET UP PBLOCK. THEN RUN RESPCAL
/ON CAL PULSES OF CH1,3, & 4.
/THEN GATHER DATA USING PROGRAM COLLECT
/& THE ABOVE PBLOCK.
/RESPCAL UPDATES GIVEN PBLOCK FOR
/USE BY COLLECT.
	 
/REQUIRES REAL WORLD MIN & MAX IN
/A1, A3, & A4 OF GIVEN PBLOCK.
	 
	 
/STORES AS FOLLOWS (IN GIVEN PBLOCK):
	 
/        VAL\V     VAL AT ADC0
/CH1      P66          P67
/CH3      P72          ---
/CH4      P74          ---
	 
/TTY:
/     SPACE=PAUSE
/     RUBOUT=TERMINATE INPUT
	 
/RUNS UNTIL RUBOUT IS STRUCK.
	 
/RESTORES PBLOCK WITH ABOVE ADDITIONS
/AUTOMATICALLY.
	 
/NO LODSYM NEEDED.
	SEGMNT 5
	LMODE
	*20
	 
	 
//COMMAND SEQUENCE.
	 
BEG,	CLR
	AXO		/RIG STD TAPE
	STARTF		/STD FPP
	 
	JMP QUES	/TTY + PBLK INPUT
	 
	JMP SETUP	/SETUP PARAMETERS
	 
	JMP GETHEM	/SAMPL
	 
	JMP TYPOUT	/TYPE VAL\V
	 
	JMP PBKOUT	/RESTORES PBLK
	 
//END COMMAND SEQUENCE.
	 
	 
/ROUTINE TO GET PBLOCK.
QUES,	SET 3
	0
D1,	LIF 4
	INTRACT
	CJ1
	M1		/PROG CALIBEKG
/                        PBLOCK:
CJ1,	T1
	J1
T1,	0
J1,	JMP BEG		/CR
	JMP GTPBLK	/NUM
	 
/GET PBLOCK
GTPBLK,	COM
	ADA I
	7077
	STC CPBL
	LDF 7
	OPR 12
CPBL,	0
	 
/ROUTINE TO GET CAL TIME.
D2,	LIF 4
	INTRACT
	CJ2
	M2		/SAMPL\SEC:
CJ2,	T1
	J2
J2,	JMP BEG		/CR
	JMP CALNST
CALNST,	RECIP
	FAC
	FMUL
	FP1000
	FMUL
	FP400
	FIX
	FAC
	ISTOR1
NST,	0
	JMP 3
/END ROUTINE QUES.
	 
	 
/ROUTINE TO SET UP CHANNELS 1,3,4
/SET UP NUMBER OF POINTS TO BE SAMPLED
/SET UP CLOCK BUT NOT START IT.
SETUP,	SET 3
	0
/SET UP CHANNELS.
	LDF 7
	SET I 2
	CALCH
	LDA I
	P1
	JMP CHSET
	LDA I
	JMP DUNSAM
	STA 2
/ON BASIS OF NUM CHAN (B14), ARRANGE
/PROPER TYPOUT.
	LDA
	14		/NUM CHAN USED
	MUL I
	3
	ADA I
	STC OUT
	STC .+3
	LDA I
	JMP 3
	0		/STC OUT+
/ZERO MAXMIN & PEAK AREA.
	CLR
	SET I 4
	MAX-1
	SET I 6
	-11
	STA I 4
	XSK I 6
	JMP .-2
/SET UP CLOCK.
	LDA
	NST
	STC TICKS
	JMP 3
	 
/ROUTINE TO SET UP CHANNELS.
CHSET,	STC PWRD	/IST WORD
	ADD 0
	STC CHSETX
	STC 14		/NUM CHAN USED
	SET I 4		/START CH1
	7
	SET I 12	/BITS PER WRD
	-14
	SET I 13	/NUM CHAN ALLOWD
	-3
	SET I 15	/2 WRD CNTR
	-2
	LDA
	P15		/INVERT WRD
BKC,	STC INVCH
	LDA
PWRD,	0		/IST OR 2ND PWRD
	STC CHTST
	 
/INVERT TEST.
TS,	LDA I
	16
	SRO I
INVCH,	0
	ADD KP1
	STC INVT
	 
/CHANNEL TEST.
	ADD 4
	ADD KP1
	STC 4
	SRO I
CHTST,	0
	JMP GOTCH	/FOUND ONE
	XSK I 12	/A PWRD DUN
	JMP TS		/NO
	 
/ROUTINE TO CHECK 2ND PWRD OR TO EXIT
SECWRD,	LDA
	PWRD
	ADD KP1
	STC PWRD	/2ND PWRD
	SET I 12
	-14
	LDA
	P16		/2ND INVERT WRD
	XSK I 15	/DUN 2 ALREADY
	JMP BKC		/NO
CHSETX,	0		/YES, LEAVE
	 
/ROUTINE TO SET UP SAM COMMAND.
GOTCH,	LDA
	0
	STC GOTCHX
	ADD 4
	BSE I
	SAM
	STA 2
	LDA I
INVT,	0
	STA I 2
	JMP INC2
	XSK I 14	/BUMP NUM CHAN
	XSK I 13	/DUN ALLOWED CH
GOTCHX,	0		/NO, LEAVE GOTCH
	JMP CHSETX	/YES,LEAVE CHSET
	 
/ROUTINE TO BUMP SAM COMMAND PLACEMENT PNTR.
INC2,	XSK I 2
	XSK I 2
	JMP 0
/END CHSET.
	 
	 
FPHALF,	0
	2000
	0
	 
MAX,	0
	0
	0
MIN,	0
	0
	0
PEAK,	0
	0
	0
	 
/END SETUP.
	 
/ROUTINE TO SET UP CLOCK AND START
/SAMPLING ROUTINE IN RESPONSE TO
/TTY COMMAND
GETHEM,	SET 3
	0
D3,	LIF 4
	INTRACT
	CJ3
	M3		/CAL SAM
	   		/:
CJ3,	T3
	J3
T3,	SAMPL
	0
J3,	JMP BEG		/CR
	JMP DOSAM	/SAM
	JMP D3		/NUM
	 
	 
	 
/MAIN PROGRAM CALIB SAMPLING ROUTINE.
DOSAM,	OPR 3		/SET UP CLOCK
RATE,	1100
TICKS,	0
	 
	OPR 2		/SYSTEM OFF
	0
	IOB
	IOF
	 
/SAMPLING LOOP.
SAMLUP,	SET I 6		/SET MAXMIN PNTRS
	MIN-1
	SET I 4
	MAX-1
	 
	IOB		/WAIT FOR CLK TIC
	CLSK
	JMP .-2
	IOB
	CLSA
CALCH,	0		/SAM CH1
	0
	JMP MAXMIN
	0		/SAM CH3
	0
	JMP MAXMIN
	0		/SAM CH4
	0
	JMP MAXMIN
	0		/DUNSAM
DUNSAM,	IOB
	6031		/? TTY CALLING
	JMP SAMLUP	/NO
	IOB		/YES
	6036
	SAE I
	377		/? RUBOUT
	SKP		/NO
	JMP DOPKS	/YES
	SAE I 
	240		/? SPACE
	JMP AHD		/NO
/PAUSE LOOP.
	IOB		/YES
	6031		/WAIT FOR ANY KEY
	JMP .-2
	IOB
	6036
	JMP SAMLUP	/RESTART
	 
/CHECK FOR ABORT SAMPLING 
AHD,	SAE I
	220		/CTRL P
	JMP SAMLUP
/ABORT AND RESTART PROGRAM
	SYSON
	JMP BEG
/END DOSAM.
	 
	 
	 
/SUBROUTINE TO CALC MAX AND MIN
/AND STORE VALUES.
MAXMIN,	SET 13
	0
	STA I
HOLD,	0
/CHECK FOR A MINIMUM. REPLACE MIN IF
/(MIN-N) IS POSITIVE.
	COM
	ADA I 6		/MIN
	APO
	JMP .+4
	LDA
	HOLD
	STA 6		/MIN
/CHECK FOR A MAXIMUM. REPLACE MAX IF
/(N-MAX) IS POSITIVE.
	LDA I 4		/MAX
	COM
	ADD HOLD
	APO
	JMP 13		/LEAVE
	LDA
	HOLD
	STA 4		/MAX
	JMP 13		/LEAVE
/END MAXMIN.
	 
/GET PEAK TO PEAK VALUE & STORE AS POSITIVE
/VALUE IN PEAK LIST.
DOPKS,	SET I 13
	PEAK-1
	SET I 6
	MIN-1
	SET I 4
	MAX-1
	SET I 5
	-3
	LDA I 6
	COM
	ADA I 4
	APO
	COM
	STA I 13
	XSK I 5
	JMP .-7
	JMP 3		/LEAVE GETHEM
/END DOPKS.
/END GETHEM.
/ROUTINE TO RESTART SYSTEM.
	SYSON=JMP.
	OPR 3
	5100
	1750
	JMP 0
	 
	 
	 
/ROUTINE TO CALCULATE THE REAL WORLD PEAK
/TO PEAK OCTAL VALUES FOR THE THREE
/CHAN FROM PBLK.THEN CALC REAL WORLD VALUES
/PER VOLT AND TYPE OUT.
TYPOUT,	SET 3
	0
	SYSON
	 
	LDF 7
	SET I 15
	PEAK		/PEAK PNTR
	SET I 16
	P50		/REAL WORLD PNTR
	SET I 17
	P66		/VAL\V PNTR
	 
	JMP PCALC	/DO CH1
	LOAD		/INC 16X2
	4\16
	LOAD
	4\16
	LOAD		/INC 17X2
	4\17
	LOAD
	4\17
	JMP PCALC	/DO CH3
	JMP PCALC	/DO CH4
	 
/CALCULATE REAL WORLD VOLTS AT ADC0
/FOR CH1.
	SFLOAT
	MAX
	STORE
	MAX
	SFLOAT
	MIN
	STORE
	MIN
	SFLOAT
	PEAK
	STORE
	PEAK
	 
	LOAD
	MIN		/OCTAL MIN
	FMUL
	P51		/REAL MAX
	STORE
	MIN
	 
	LOAD
	MAX		/OCTAL MAX
	FMUL
	P50		/REAL MIN
	FSUB
	MIN
	FDIV
	PEAK		/OCTAL PEAK
	 
	STORE
	P67		/CH1 V AT ADC0
	 
	 
/NOW SETUP OUTPUT BUFFERS & TYPE OUT.
	SETWRD
	0742
	OUTPUT
	VZ1		/P67
	LOAD
	P66		/CH 1, VAL\V
	OUTPUT
	BUFCH1
	LOAD
	P72		/CH3, VAL\V
	OUTPUT
	BUFCH3
	LOAD
	P74		/CH4, VAL\V
	OUTPUT
	BUFCH4
OUT,	LIF 4
	MESOUT
	HEAD1
	LIF 4
	MESOUT
	HEAD2
	LIF 4
	MESOUT
	HEAD3
	JMP 3
	 
	
PCALC,	SET 13
	0
	LOAD
	4\16		/CH N, MIN
	FCOMP
	FADD
	4\16		/CH N, MAX
	FMUL
	FP777
	JMP ZERCHK
	STORE
	FPTEMP
	SFLOAT
	4\15		/PEAK
	FDIV
	FPTEMP
	JMP ZERCHK
	RECIP
	FAC
PAHD,	STORE
	4\17		/VAL\V
	FZER
	STORE
	4\17
	JMP 13
	
ZERCHK,	FAZE
	JMP 0		/NOT=0, OK
	FZER		/PEAK=0, BAD
	JMP PAHD
HEAD1,	0310		/CH
	6140		/1
BUFCH1,	4040
	4040
	4040
	4040
	0405		/DE
	0757		/G/
	2640		/V
	4040
VZ1,	4040
	4040
	4040
	4040
	0405		/DE
	0740		/G 
	0124		/AT
	4001		/ A
	0403		/DC
	6040		/0 
	4543
	 
HEAD2,	0310		/CH
	6340		/3
BUFCH3,	4040
	4040
	4040
	4040
	1514		/ML
	5723		//S
	0503		/EC
	5726		//V
	4543
	 
HEAD3,	0310		/CH
	6440		/4
BUFCH4,	4040
	4040
	4040
	4040
	0315		/CM
	1062		/H2
	1757		/O/
	2640		/V
	4543
	 
/END ROUTINE TYPOUT.
	 
/ROUTINE TO RESTORE PBLK WITH NEW VAL\V
/STARTING AT P66.
PBKOUT,	CLR
	AXO
	LDA
	CPBL
	STA
	.+4
	STC .+5
	LDF 7
	OPR I 12	/DISC OR TAPE
	0
	WRC		/TAPE
	0
	JMP BEG
/END PBKOUT.
	 
/BUFFERS & CONSTANTS.
FPTEMP,	0
	0
	0
FP777,	11
	3774
	0
FP1000,	12
	3720
	0
FP400,	11
	3100
	0
KP1,	1
	 
/INTRACT MESSAGES.
M1,	TEXT ZPROG RESPCALZ
	4543
	TEXT ZPBLOCK: Z
M2,	TEXT ZSAMPL\SEC: Z
M3,	TEXT ZCAL SAM Z
	4543
	TEXT Z: Z
AAEND,	0		/END PROG
	 
/PARAMETERS (PBLOCK) FOLLOW.
	NOLIST
	CLSK=6131
	CLSA=6135
//PBLOCK
/PARAMETER BLOCK ASSIGNMENTS
/
	P0=3400		/DATA TYPE
	P1=3401		/CURRENT CHAN.
	P2=3402		/CURRENT CHAN.
	P3=3403		/DATA CHAN.
	P4=3404		/DATA CHAN.
	P5=3405		/CONTINGENCY CH
	P6=3406		/CONTINGENCY CH
	P7=3407		/TRUE CONTING.
	P10=3410	/FALSE CONTING.
	P11=3411	/CONTING. WIDTH
	P12=3412	/TRUE CONTING.
	P13=3413	/FALSE CONTING.
	P14=3414	/CONTING. WIDTH
	P15=3415	/CHAN INVERSION
	P16=3416	/CHAN INVERSION
	P17=3417	/NO.SAMP IN SEG
	P20=3420	/NO.SEG IN ENSM
	P21=3421	/NO. ENSEMBLES
	P22=3422	/
	P23=3423	/BASELINE PNTS
	P24=3424	/TAPE DELAY
	P25=3425	/ENSEMBL DELAY
	P26=3426	/CLOCK RATE
	P27=3427	/CLOCK TICS
	P30=3430
	P31=3431
	P32=3432
	P33=3433
	P34=3434
	P35=3435
	P36=3436
	P37=3437	/TAPE SPEED UP
	P40=3440	/TAPE SPEED UP
	P41=3441	/TAPE SPEED UP
/
/FLOATING POINT VARIABLES
/
/
	P42=3442	/MULT FACTOR
	P43=3445	/UV PER VOLT
	P44=3450	/SEG. LENGTH
	P45=3453	/TEMP
	P46=3456	/BASELINE DELAY
	P47=3461	/CONTING WIDTH
	P50=3464	/BNDA1 MIN
	P51=3467	/BNDA1 MAX
	P52=3472	/BNDA2 MIN
	P53=3475	/BNDA2 MAX
	P54=3500	/BNDA3 MIN
	P55=3503	/BNDA3 MAX
	P56=3506	/BNDA4 MIN
	P57=3511	/BNDA4 MAX
	P60=3514	/BNDA5 MIN
	P61=3517	/BNDA5 MAX
	P62=3522	/BNDB1 MIN
	P63=3525	/BNDB1 MAX
	P64=3530	/BNDB2 MIN
	P65=3533	/BNDB2 MAX
	P66=3536	/BNDB3 MIN
	P67=3541	/BNDB3 MAX
	P70=3544	/BNDB4 MIN
	P71=3547	/BNDB4 MAX
	P72=3552	/BNDB5 MIN
	P73=3555	/BNDB5 MAX
	P74=3560	/PF MIN
	P75=3563	/PF MAX
	P76=3566	/TEMP
	P77=3571	/TRUE VOLTS
	P100=3574	/FALSE VOLTS
	P101=3577	/TEMP
	P102=3602	/V RMS
	P103=3605	/VRMS VAR
	P153=3775
/
/
/COMMAND DECODER ASSIGNMENTS
/
/
	STOP=JMP 20
	SCAN=JMP 21
	STRSCN=JMP 21
	INUNIT=JMP 22
	STORIT=JMP 23
	GETFIL=JMP 24
	GETFST=JMP 24
	GETNAM=JMP 25
	GETNXT=JMP 25
	DIRINI=JMP 26
	DIRLST=JMP 27
	ASSIGN=JMP 30
	DEASS=JMP 31
	OUTUNIT=JMP 32
	LODBLK=JMP 33
	RUNBLK=JMP 34
	FIND=JMP 35
	CALL=JMP 37
	UNCALL=JMP 40
	RUNPRG=JMP 41
	INTRACT=JMP 42
	MESOUT=JMP 43
	DISK=JMP 44
	TABSET=JMP 45
	INTABLE=JMP 45
	MISSNG=JMP 47
	TABGET=JMP 50
	TABPUT=JMP 51
	TABZER=JMP 52
	MAKDIL=JMP 53
	TABINI=JMP 54
	MGETNAM=JMP 55
	MGETFIL=JMP 56
	MSTORIT=JMP 57
/
/COMMAND LOCATIONS.
/
	FILNAM=2320
	WORD1=2323
	WORD2=2324
	INBUF=2325
/COMMAND NUMBERS.
	YES=17
	NO=20
	SAMPL=21
	TABLE=22
	GO=23
	NEXT=24
/
/EXEC3 ASSIGNMENTS
/
	OPR=500
	IOF=6002
	ION=6001
	EXC=1710
	REXC=540
	RLSW=514
	RRSW=515
/FLOATING POINT DEFINITIONS.
/
	FAC=0
	STARTE=740
	FSUB=741
	FMUL=742
	FDIV=743
	LOAD=744
	STORE=745
	SETWRD=746
	INPUT=747
	OUTPUT=750
	ISTOR1=751
	SQRT=752
	DFLOAT=753
	SFLOAT=754
	FIX=755
	FADD=756
	ISTOR2=757
	STARTF=760
	FCOMP=761
	FZER=762
	FAPO=763
	FAZE=764
	RECIP=765
	OUTBUF=771
/
/
/PBLOCK
/JUNE 73
	LIST
	 
/END PROG RESPCAL.
/APRIL 74.
/JLC,FHD



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