File FRQANA

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

*20
/
/
/
/
/
/
/FRQANA
/NOVEMBER 6, 1969
/
/THIS PROGRAM IS A MODIFICATION
/OF FREQANA TO RUN UNDER THE SALES DEMO
/MONITOR.  IT ACCEPTS INPUT FROM
/THE KEYBOARD TO DRAW WAVEFORMS.
LMODE
*20
START,	JMP .+7
RETREV,	RDC I
	5114
	RDC 
	6115
	RDC
	7116
	LIF 3
	JMP GETIT1
COSGET,	RDC I
	6107
	RDC
	7110
	JMP J2
P3,	CLR
	STC A3
	SET I 6
	-5000
	SET I 10
	777
O3,	CLR
	STC L3
	STC R3
	LDA I
	1
	ADM I
A3,	WT
	SET I 1
	1
	SET I 2
	P2
	SET I 3
	H3-1
	SET I 4
	I3-1
N3,	LDA
	1
	MUL
	A3
	STA I
J3,	0
	ADA I
	-200
	JMP G3
	CLR
	LDA I 3
	MUL 5
	APO
	JMP W3
	LAM I
L3,	0
	STC K3
X3,	LAM I
R3,	0
	LDA
	J3
	JMP G3
	CLR
	LDA I 4
	MUL 5
	APO
	JMP Y3
	LAM
	L3
	STC K3
Z3,	LAM
	R3
	XSK I 1
	XSK I 2
	JMP N3
	LDA
	L3
U3,	STA I 10
	SCR 3
	DIS I 6
	XSK 6
	JMP O3
	CLR
	ATR
	JMP J2
G3,	SET 7
	0
	APO I
	JMP .+4
	ADA I
	1000
	JMP .-4
	BSE I
	7000
	STC 5
	JMP 7
K3,	0
W3,	LAM
	L3
	LDA MZERO
	JMP X3
Y3,	LAM
	L3
	LDA MZERO
	JMP Z3
C2,	SET I 4
	I3-1
	LDA I
	LDA I
	STC I2
	STC H2+1
O2,	CLR
	STC B2
	STC D2
	SET I 3
	P2
	SET I 2
	1
H2,	LDA I
	0
	STC A2
	DIS 3
	SET I 6
	-1000
	SET I 1
	7777
L2,	CLR
	ADD 2
	ADM I
A2,	0
	JMP G3
	LDA 5
	MUL I 1
	APO
	JMP M2
	LAM I
B2,	0
	STC 0
	LAM I
D2,	0
	XSK I 6
	JMP L2
	LDA I 2
	LDA
	D2
	ROL 4
	BCL I
	17
	STC D2
	ADD B2
	ROL 4
	BCL I
	7760
	ADD D2
	STA I 4
	CLR
	STC B2
	STC D2
	XSK I 3
	JMP H2
I2,	LDA I
	-200
	STC H2+1
	LDA I
	JMP J2
	STC I2
	SET I 4
	H3-1
	JMP O2
M2,	LAM
	B2
	LDA MZERO
	JMP D2-1
R2,	LDA
	0
	STC Q2
	SET I 4
	P2
	JMP Z2-1
S2,	STC 0
	DIS I 2
	DIS I 2
	DIS I 2
	LDA I 1
Z2,	SCR I
	ROL I 1
	AZE
	JMP .+3
	APO
	COM
	STA
	Q2+3
	STC 0
	DIS 2
	SAE
	Q2+3
	JMP .+4
	XSK I 4
	JMP S2
	JMP Q2
	ADD Q2+1
	LZE
	ADD Q2+2
	JMP .-12
Q2,	EXIT
	1
	-2
	0
K2,	SET I 1
	7777
	SET I 2
	-5000
	SET I 3
	777
	SAM 1
	COM
	STC 0
	LDA I 1
	SCR 3
	ADD 0
	DIS I 2
	SAM 1
	STC 0
	LDA I 3
	SCR 3
	ADD 0
	DIS 2
	XSK 2
	JMP .-16
	JMP J2
A4,	SET I 4
	P2
B4,	LDA I 1
	SCR
	STA
	.+2
	MUL I
	0
	STC 0
	LDA I 5
	SCR
	STA
	.+2
	MUL I
	0
	ADD 0
A7,	AZE I
	JMP B7+1
	APO
	JMP B7+1
	STC K3
	ADD Q2+1
	STC Q2
	JMP G7
F7,	STC K3
G7,	ADD Q2+2
	ADM
	Q2
	ADD K3
	AZE
	APO I
	JMP F7
	LDA
	Q2
	COM
B7,	SCR 1
	ROL 3
	ADD Q2+1
	COM	
	STC 10
	DIS 2
	ADD Q2+1
	XSK I 10
	JMP .-3
	STC 0
	DIS I 2
	DIS I 2
	DIS I 2
	XSK I 4
	JMP B4
J2,	SAM 2
	ROR 6
	BCL I
	7770
	BSE I
	SCR 0
	STA
	B4+1
	STA
	B4+10
	BSE I
	20
	STC Z2
	OKST
	JMP REJUMP
	JMP T2
REJUMP, XSK FLAG1
	JMP K2   /INPUT DISPLAY FLAG1=0
	SET I 1  /SPECTRUM DISPLAY  FLAG1=-0
	I3-1
	SET I 5
	H3-1
	SET I 2
	4000
	XSK FLAG2
	JMP A4   /FLAG2=0 DISPLAY POWER
	JMP R2   /FLAG2=-0 DISPLAY COS,SIN
	SET I 1
	H3-1
	SET I 2
	4400
	JMP R2
	JMP J2
T2,	KBDA
	BCL I
	7700
	SHD I
	2400	/T
	JMP P3
	SHD I 
	0600	/F
	JMP C2
	SHD I
	2200	/R
	JMP RETREV
	SHD I
	2300	/S
	JMP SCALDN
	SHD I 
	1400	/L
	JMP SCALUP
	SHD I
	2000	/P
	JMP POWER
	SHD I
	0300	/C
	JMP COSSIN
	SHD I
	1100	/I
	JMP POWER+1
	JMP J2
SCALDN,	CLR
	LDA I
	3
	JMP SCALE
SCALUP,	CLR
	LDA I
	2
SCALE,	ROR I 1
	BSE I
	SCR 0
	STC SKR
	SET I 1
	3777
	SET I 2
	-1000
	LDA I 1
SKR,	SCR
	LZE
COMP,	COM
	ADA 1
	STA 1
	XSK I 2
	JMP .-7
	JMP J2
POWER,	LDA MZERO
	STC FLAG1
	STC FLAG2
	JMP J2
COSSIN,	LDA MZERO
	STC FLAG1
	LDA MZERO
	JMP POWER+2
*11
FLAG1,	0	/-0 FOR TIME FUNCTION (INPUT)
FLAG2,	0	/-0 FOR POWER,+0 FOR COS-SIN
MZERO,	L2-1
H3=600
I3=700
P2=7677
EXIT=507
XXXX=0
WT=0
KBDA=513
RETV=505
OKST=512
/
/
/
/
/
/
/
/
/
/
/
SEGMNT 3
/QANDA SUBROUTINE FOR THE
/PDP-12
/REMOVE *1000 BELOW IF
/INSERTING SOURCE DIRECTLY
/INTO YOUR PROGRAM SOURCE
*1000 /REMOVE,IF DESIRED
/
/TO HERE TO INITIALIZE THE ROUTINE
/
QAINIT,	LDA I		/SAVE JMP RETURN
	2
	ADD 0
	STA I
QAB,	0		/JMP 	+3
	ADD QAL+3
	STC 1		/PTR TO FIRST PARAM
	LDA 1		/GET FIRST PARAM
	ADD QAQ+1	/PTR TO HALFWORD-1
	STC QAG-3
	LDA I 1
	STC QARFSH-1
	STC 6		/XR6 USED AS A SWITCH. =0 IF NO ANSWER FIELD, =1777 IF YES
QACA,	SET 3	/XR3 TO PTR TO ANSWERS
	QARFSH-1
	SET 4		/XR4 TO PTR TO QUESTIONS
	QAG-3
			/TO HERE IF FIRST TIME THROUGH OR FOLLOWING A CR
	SET 1
	4
	JMP QAT
	NOP		/F
	LDH I 4		/H. BUMP PTR IF H OR F
QAD,	JMP QAO
	JMP .+6		/74
	JMP QAE		/34
	SAE I		/CR?
	43
	JMP QAD		/NO
	JMP QACA+4 /EXAMINE NEXT CHAR
			/INITIALIZE ANSWER BUFR
	STH 3		/74 TO ANSWERS
	LDH I 4		/NEXT HALFWORD
	ADA I
	-60
	COM
	STC 6
	STH I 3		/0 IN AC
	XSK I 6
	JMP .-2
	LDH I 3		/BUMP PTR TO ANSWERS
	JMP QAD
			/ANSWER BUFR IS INITIATED
QAE,	STH 3
	SET I 4		/XR4 TO PTR TO LAST TYPED CHAR IN ANSWER BUFR
	0
			/----RE-ENTER HERE TO REFRESH----
QARFSH,	LDA I		/INITIAL Y POSITION
277
	STC QAH-1
	SET I 3		/XR3 TO PTR TO HALFWORD QUESTIONS-1
	0
	SET 5		/XR5 TO PTR TO LAST DISPLAYED CHAR IN ANSWER BUFR
	QARFSH-1
QAG,	SET 1
	3
	JMP QAT
	JMP .+7		/F
	LDH I 3		/H. BUMP PTR
	LDA I		/NEITHER. ASSUME HALF SIZE
	BCL I
	STC QAM+2	/SET INSTR TO CLEAR FF FOR HALF SIZE
	ADD QAW		/NOP IN AC
	JMP QAM
	LDH I 3		/BUMP PTR
	LDA I
	BSE I
	STC QAM+2	/SET INSTR TO SET FF FOR FULL SIZE
	ADD QAW+1	/ADD 9U IN AC
QAM,	STC QAP+3
	MSC I 4		/EAD CONTROL REGISTER
	BSE I		/THIS INSTR CHANGES. EITHER BSE & OR BCL &
	200
	MSC 4		/AC TO CONTROL REGISTER
	SET I 1		/XR1 TO INITIAL X POSITION
	100
	LDA I		/Y COORDINATE MULTIPLE
	-40
	ADM I		/Y COORDINATE
	0
QAH,	LDH I 3
	JMP QAO+1
	JMP QAZ		/74 BUMP PTR TO NEXT CHAR, PUT 40 IN AC
	JMP QAJ		/34
	SHD I		/NEITHER
	4300
	JMP QAG		/CR. MOVE X AND Y COORDINATE
	JMP QAP		/ISPLAY CHAR
	JMP QAH		/PICK UP NEXT CHAR
	JMP QAP		/TO HERE IF DISPLAYING ANSWER BUFR
	SRO I	/SWITCH TO DISPLAY CURSOR. EITHER 0000 OR 7777
	0		/IFXR4=XR5, THEN SWITCH=7777
	JMP QAF
			/QUESTION MODE
QAI,	LDH I 5
	JMP QAO+1
	JMP QAH		/74
	JMP QAH		/34
	JMP QAI-4	/NEITHER. DISPLAY IT
QAJ,	JMP GETKBD	/TO HERE IF DISPLAYED BUFFER
	AZE I
	JMP QAB	/NOTHING TYPED . EXIT
	SET I 2
	QAY
	SHD 2		/LF?
	JMP QAK+4	/YES. EXIT
	SHD I 2		/CR?
	JMP QAN
	XSK 6		/IS THERE AN ANSWER FIELD?
	JMP QARFSH
	SHD I 2		/<?
	JMP QAL
	SHD I 2		/>?
	JMP QAK
	SHD I 2		/ALT?
	JMP QACA /REINITIALIZE
	SHD I 2		/BACK SLASH?
	JMP QARFSH	/IGNORE
	SHD I 2		/RUBOUT?
	JMP QAL		/IGNORE
	SHD I 2		/TAB?
	JMP QARFSH	/IGNORE
	STC .+5		/ACCEPTABLE CHAR
	JMP QAO		/TEST NEXT CHAR
	JMP QAQ		/74 BACK PTR UP BY 1
	JMP QAQ		/34 ^
	LDA I		/OK. STORE IT
	0
	STH 4
	JMP QARFSH	/REDISPLAY
QAL,	LDH 4		/TO HERE IF RUBBOUT OR <
	JMP QAO+1
	JMP QARFSH	/74 IGNORE
	-6002
	LDH 2		/TEST THE CHAR
	SAE I		/RUBOUT?
	37
	JMP QAQ		/NO. BACK PTR UP BY 1
	SET 5
	4
	SET 3
	4
	JMP .+2
	LDH I 5		/BUMP PTR
	LDH I 3		/GET NEXT CHAR
	JMP QAO+1
	NOP		/IF 74 OR 34, REPLACE CURRENT CHAR WITH 0
	CLR
	STH 5
	AZE		/WAS IT 74 OR 34?
	JMP .-7		/NO. CONTINUE
	JMP QAQ		/BACK PTR UP BY 1
			/TO HERE IF CR
QAN,	XSK 6	
	JMP QAK+4	/EXIT ROUTINE IF NO ANSWER FIELD
	JMP QAO
	JMP QARFSH	/74 MOVE PTR TO NEXT QUESTION FIELD
	JMP QAE+1	/34 END OF BUFR. MOVE PTR TO FIRST QUESTION FIELD
	JMP QAN+2
	
QAO,	LDH I 4		/S\R
	SHD I		/	+1 74 BEGIN FIELD
	7400		/	+2 34 END BUFR
	JMP 0		/	+3 NEITHER 74 NOR 34
	SAE I
	34
	XSK I 0
	XSK I 0
	JMP 0
			/S\R TO DISP LINC CHAR IN AC
QAP,	ROL 1		/MULT BY 2 FOR INDEX TO ADDRESS OF TABLE
	ADD QAX+4
	STC 2		/ADDRESS OF CHAR TO DISP IN XR2
	ADD QAU		/THIS INSTR CHANGES. EITHER OP OR ADD 9U
	ADD QAU
	ADD 1		/ADD 4 TO XR1 TO SPACE CHAR
	STC 1
	ADD 5		/GET ADDRESS OF ANSWER BUFR
	COM
	ADD 4
	AZE
	CLR
	STC QAI-2	/SWITCH=0 OR 7777
	ADD QAH-1	/Y COORDINATE IN AC
	DSC 2
	DSC I 2		/DISPLAY CHAR
	JMP 0
QAQ,B<B)C]B>B,B;BMB=%
TE%$



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