File CALIB

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

*20
	*20
/// PROG CALIB.
	 
/PROGRAM SAMPLES SEVEN CHANNELS
/OF CALIBRATION SIGNALS AND CAL-
/CULATES THE REAL WORLD VALUE PER
/VOLT FOR EACH CHANNEL AND TYPES
/IT OUT.
/REQUIRES REAL WORLD MIN & MAX IN
/A1, A2,A3,A4,A5,B1,B2,
/STORES VAL\V IN P73.
	 
/NO LODSYM NEEDED.
	SEGMNT 5
	LMODE
	*20
	 
	 
//COMMAND SEQUENCE.
	 
BEG,	CLR
	AXO		/RIG STD TAPE
	STARTF		/STD FPP
	 
	JMP QUES	/TTY INPUT
	 
	JMP SETUP	/SETUP PARAMETERS
	 
	JMP GETHEM	/SAMPL
	 
	JMP TYPOUT	/TYPE VAL\V
	 
//END COMMAND SEQUENCE.
	 
	 
/ROUTINE TO GET PBLOCK.
QUES,	SET 3
	0
D1,	LIF 4
	INTRACT
	CJ1
	M1		/PROG CALIB
/                        PBLOCK:
CJ1,	T1
	J1
T1,	0
J1,	JMP BEG		/CR
	JMP GTPBLK	/NUM
	 
/GET PBLOCK
GTPBLK,	COM
	ADA I
	7077
	STC .+3
	LDF 7
	OPR 12
	0
	 
/ROUTINE TO GET CAL TIME.
D2,	LIF 4
	INTRACT
	CJ2
	M2		/CAL RUN TIME (SEC):
CJ2,	T1
	J2
J2,	JMP BEG		/CR
	JMP .+1		/0
	STORE
	CALTIM
	JMP 3		/LEAVE
CALTIM,	0
	0
	0
/END ROUTINE QUES.
	 
	 
/ROUTINE TO SET UP UP TO 7 CHANNELS
/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
	COM
	STA I
CHAN,	0		/CHAN CNTR
/SET UP NO. OF PTS.
	SFLOAT
	P17		/SAMP\SEG
	FMUL
	CALTIM
	FDIV
	P44		/SEG LENGTH(SEC)
	FADD
	FPHALF		/+0.5
	FCOMP
	FIX
	FAC
	ISTOR1
	NUMPTS		/CNTR
/ZERO MAXMIN AREA.
	SET I 4
	MAX-1
	SET I 6
	-6
	STA I 4
	XSK I 6
	JMP .-2
/SET UP CLOCK.
	LDA
	P26		/CLK RATE
	STC RATE
	LDA
	P27		/CLK TICS
	STC TICKS
	JMP 3		/LEAVE
	 
/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
	-7
	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
	 
/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,	0
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 CH2
	0
	JMP MAXMIN
	0		/SAM CH3
	0
	JMP MAXMIN
	0		/SAM CH4
	0
	JMP MAXMIN
	0		/SAM CH5
	0
	JMP MAXMIN
	0		/SAM CH6
	0
	JMP MAXMIN
	0		/SAM CH7
	0
	JMP MAXMIN
	0		/DUNSAM
DUNSAM,	LDA
	KP1
	ADM I
NUMPTS,	0		/-NUM PTS
	AZE
	JMP SAMLUP	/MORE PTS
	JMP DOPKS	/DUN, GET PEAKS
	JMP 3		/LEAVE DOSAM
/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 MAX LIST.
DOPKS,	SET 13
	0
	SET I 6
	MIN-1
	SET I 4
	MAX-1
	SET I 5
	-3
	LDA I 6
	COM
	ADA I 4
	APO
	COM
	STA 4
	XSK I 5
	JMP .-7
	JMP 13		/LEAVE
/END DOPKS.
	 
	 
	 
/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
	 
	OPR 3		/START SYSTEM
	5100		/1\10SEC RATE
	1750
	 
	LDF 7
	SET I 15
	MAX		/PEAK PNTR
	SET 14
	CHAN		/NUM CHAN CNTR
	SET I 16
	P50		/REAL WORLD PNTR
	SET I 17
	P73		/VAL\V PNTR
	 
	JMP PCALC	
	XSK I 14
	JMP .-2
	 
	SETWRD		/NOW TYPE OUT
	0642
	SET I 14
	P73
	SET 7
	CHAN 		/CHAN CNTR
	LDA I
	BUFCH1
	STC OPNTR
MROUT,	LOAD
	4\14
	OUTPUT
OPNTR,	0		/BUFCH1
	ADD OPNTR
	ADD KP12
	STC OPNTR
	XSK I 7
	JMP MROUT
	SET 7
	CHAN
	LDA I
	HEAD1
	STC MPNTR
MRTYP,	LIF 4
	MESOUT
MPNTR,	0
	LDA
	MPNTR
	ADD KP12
	STC MPNTR
	XSK I 7
	JMP MRTYP
	JMP BEG
	 
	
PCALC,	SET 13
	0
	LOAD
	4\16		/CH N, MIN
	FCOMP
	FADD
	4\16		/CH N, MAX
	FMUL
	FP777
	STORE
	FPTEMP
	SFLOAT
	4\15		/PEAK
	FDIV
	FPTEMP
	RECIP
	FAC
	STORE
	4\17		/VAL\V
	JMP 13
	
HEAD1,	0310		/CH
	6140		/1
BUFCH1,	4040
	4040
	4040
	4040
	2601		/VA
	1457		/L/
	2640		/V
	4543
HEAD2,	0310		/CH
	6240		/2
BUFCH2,	4040
	4040
	4040
	4040
	2601		/VA
	1457		/L/
	2640		/V
	4543
HEAD3,	0310		/CH
	6340		/3
BUFCH3,	4040
	4040
	4040
	4040
	2601		/VA
	1457		/L/
	2640		/V
	4543
HEAD4,	0310		/CH
	6440		/4
BUFCH4,	4040
	4040
	4040
	4040
	2601		/VA
	1457		/L/
	2640		/V
	4543
HEAD5,	0310		/CH
	6540		/5
BUFCH5,	4040
	4040
	4040
	4040
	2601		/VA
	1457		/L/
	2640		/V
	4543
HEAD6,	0310		/CH
	6740		/6
BUFCH6,	4040
	4040
	4040
	4040
	2601		/VA
	1457		/L/
	2640		/V
	4543
HEAD7,	0310		/CH
	6740		/7
BUFCH7,	4040
	4040
	4040
	4040
	2001		/VA
	1457		/L/
	2640		/V
	4543
	 
/END ROUTINE TYPOUT.
	 
/BUFFERS & CONSTANTS.
FPTEMP,	0
	0
	0
FP777,	11
	3774
	0
KP1,	1
	 
KP12,	12
	 
/INTRACT MESSAGES.
M1,	TEXT ZPROG CALIBZ
	4543
	TEXT ZPBLOCK: Z
M2,	TEXT ZCAL RUN TIME (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 CALIB.
/SEPT 73
/JLC
	 



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