File SAMP3.PA (PAL assembler source file)

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

/	THREE CHANNEL SAMPLING PROGRAM
/	CHANNELS TO BE SAMPLED ARE 12,13,16
/	CHANNEL 16 IS USED AS A DUMMY
/	AD 12 WILL BE DISPLAYED ON CHANNEL 1 OF THE TV
/	AD 13,16 WILL BE DISPLAYED ON CHANNEL 2
/	DEFAULT FOR ANALYSIS	VOLUME ON CHANNEL 12
/				FLOW ON CHANNEL 13
/				PTP ON CHANNEL 16
/	USR IS USED TO CALL THE COMMAND DECODER TO INPUT OUTPUT 
/		FILE NAME
/	DATA WILL BE COLLECTED TO FILL FIELD2 AND THEN WILL
/		BE WRITTEN
/	SNS 0 OFF WAIT FOR RATE IN RSW'S
/	SNS 0 ON READ RATE, SAMPLE AND DISPLAY
/	SNS 1 ON BEGIN STORAGE OF DATA
/	SNS 5 ON EXIT AND CLOSE FILE
/	EACH TIME OBUUFFER IS WRITTEN CHECKS SNS 0-2
	/MODE CHANGE AND LINC INSTRUCTIONS
	PDP=	2
	LINC=	6141
FIXMRI	LJMP=	6200
FIXMRI	LSTA=	4000
FIXMRI	LAD2=	2200	/LADD FOR OTHER THAN PAGE 0 REFERNCES
FIXMRI	LADD=	2000
	LCLR=	11
	LCOM=	0017
	SAM1=	112
	SAM2=	113
	SAM3=	116
	SAMD=	116
	ESF=	4	/FAST SAMPLE MODE WILL BE USED
	RSW=	516
	DIS0=	147	/DISP CHANNEL 1
	DIS1=	167	/AUTO INC CHANNEL 1
	DIS2=	150	/CHANNEL 2
	DIS3=	170	/AUTO INC CHANNEL 2
	DSC=	1771	/CHARACTER DISP CHANNEL 2 AUTO INC
	SNS0=	440
	SNS4=	444
	SNS1=	461	/INDIRECT SKIP ON
	SNS5=	445
/	CLOCK FUNCTIONS
	CLAB=	6133
	CLEN=	6134
	CLLR=	6132
	CLSA=	6135
	CLSK=	6131
/USR CALL FUNCTIONS
	FETCH=	1
	ENTER=	3
	CLOSE=	4
	DECODE=	5
		*07	/ORIGIN AT 00007
/	LINC ALPHA AND BETA REGISTERS
L7,	0
L10,	0
L11,	0
L12,	0
		*20
USR,	17700
NAME,	0;0;0;0
FUNK,	0		/CLOCK FUNCTION VARIABLE
RATE,	0		/CLOCK RATE VARIABLE
LPNT,	-377		/LINC CONSTANT FOR LOW POINT IN DISPLAY
FLOW,	0		/FLOW SAMPLE STORAGE
VOL,	0		/VOLUME SAMPLE STORAGE
PTP,	0		/PRESSURE SAMPLE STORAGE
BLKNTR,	0
KNTR2,	0		/WORD-BLK KNTRS
M125,	-125
		*40
ERR,	0		/ERROR HALT
	CLA
	TAD	ERR	/LOCATION OF ERR IS IN THE AC
	HLT
		*200
/	BEGIN PROGRAM
/	CALL THE DECODER INTO CORE
	CLA
	DCA	BLKNTR	/CLEAR THE BLOCK KNTR
	CDF	0	/D=CURRENT FIELD
	CIF	10	/USR IN FIELD 1
	JMS I	USR
	DECODE
	0401		/ASSUMED EXTENSION IS DA
	0		/PRESERVE ALL TENTATIVE FILES
/	FETCH THE RKB0: HANDLER
	CLA
	CDF	0
	CIF	10
	JMS I	USR
	FETCH
DEV,	DEVICE 	RKB0	/DEVICE NAME
			/DEVICE # RETURNED IN DEV+1
STRT,	6001		/LOAD HANDLER IN 6000-7000
			/STRT LOCATION RETURNED
	JMS	ERR	/ERROR RETURN
/	GET FILE NAME
	CLA
	CDF	10
	TAD I	(7601
	CDF	0
	DCA I	(NAME
	CDF	10
	TAD I	(7602
	CDF	0
	DCA I	(NAME+1
	CDF	10
	TAD I	(7603
	CDF	0
	DCA I	(NAME+2
	CDF	10
	TAD I	(7604
	CDF	0
	DCA I	(NAME+3
/	ENTER AND OPEN THE OUTPUT FILE
	TAD	DEV+1	/AC=DEVICE # OF RKB0:
	AND	(0017
	TAD	(5000
	CDF	0
	CIF	10
	JMS I	USR
	ENTER
	NAME		/FILE NAME POINTER
LNGTH,	0		/"-" FILE LENGTH
	JMS	ERR
	CLA
	TAD	LNGTH-1	/GET STARTING BLOCK
	DCA	STBLK
	TAD	(-240
	DCA	LNGTH
	DCA I	(DISBLK	/CLEA DISPLAY BLOCK KNTR
	TAD	M125	/SET WORD-BLK KNTR
	DCA	KNTR2
/	INSERT SAMPLING AND STORAGE PROGRAM HERE
	JMP I	(SWTCH0
/	ACCESSING THE HANDLER, WRITE!!!
HANDLR,	0
	CIF	0
	JMS I	STRT
WFUNK,	4020		/FUNCTION WORD	4000=OUTPUT
			/		000= 40 RECORDS OF 128(10) WORDS
			/		20= FIELD 2 BUFFER
	0000		/BUFFER ADDRESS
STBLK,	0		/STARTING BLOCK
	JMS	ERR	/ERROR RETURN
	CDF	0
	JMP I	HANDLR
/	CLOSE FILE
DKCLOS,	CLA
	TAD	DEV+1
	CDF	0
	CIF	10
	JMS I	USR
	CLOSE
	NAME
LENGTH,	240	/# OF RECORDS
	JMP	ERR
	JMP I	(7605
/	WRITE A FULL BUFFER
ENDBLK,	CDF	0
	TAD I	(DISBLK	/BUMP DISPLAY BLK COUNTER
	TAD	(1
	DCA I	(DISBLK
	TAD	(20
	TAD	BLKNTR
	DCA	BLKNTR
	JMS	HANDLR
	CLA
	TAD	(20
	TAD	STBLK
	DCA	STBLK	/BUMP WRITE BLK
	TAD	M125
	DCA	KNTR2
	TAD	LNGTH
	TAD	(20
	DCA	LNGTH
	TAD	LNGTH
	SPA
	JMP I	(SWTCH0	/GO BACK TO SWTCH0
EXIT,	CLA
	JMP	DKCLOS
		PAGE 2
/	********* INSERT PAGIING
/	CHECK TO SEE IF THE RIGHT SWITCH IS SET
/	AS WELL AS CREATING CODE WORD FOR ESF
SWTCH0,	CLA CLL
	TAD	(0300
	DCA	FUNK	/SET SPECIAL FUNCTION WORD TO FAST SAMPLE
			/AND LARGE CHARACTER MODE
WAIT0,	LINC		/TURN ON LINC MODE
	SNS5		/TERMINATE?
	LJMP	.+3	/NO
	PDP		/YES
	JMP I	(EXIT
	SNS0
	LJMP	.-1	/IS SNS 0 SET?
	RSW		/READ RIGHT SWITCHES INTO THE AC
	LCOM		/COMPLEMENT SWITCHES
/	SET ESF FOR FAST SAMPLE MODE AND LARGE CHARACTERS
	LSTA	RATE	/STORE RATE
	LADD	FUNK
	ESF		/SET SPECIAL FUNCTION REGISTER
	PDP		/GO BACK TO 8-MODE
/	START CLOCK IN MOTION
	CLA CLL
	TAD	(4000	/CLEAR CHANNEL 2 POINTERS
	DCA 	L10	/CLEAR LINC REGISTERS
	DCA 	L7
	DCA 	L11
	DCA 	L12
	DCA	KNTR	/CLEAR POINT COUNTER
	CLLR		/CLEAR CLOCK CONTROL
	CLEN		/STOP THE CLOCK WITH CLEARED ENABLE
	TAD	RATE	/ADD THE RATE
	CLAB		/CLK BUF_RATE
	CLA
	TAD	(0100	
	CLLR		/GENERATE A CLEAR COUNTER
	CLSA		/CLEAR CLOCK STATUS
	CLA
	TAD	(0300
	CLEN		/ENABLE INTERUPTS ON OVERFLOW AND BUF OR

CLSA CLA TAD (3100 CLLR /START CLOCK AT 10KHZ; MODE 1 CLKTCK, CLA TAD (377 LINC /LINC MODE DIS0 /DISPLAY UPER POINT LCLR DIS0 /DISPLAY MIDDLE POINT LADD LPNT DIS0 /DISPLAY LOWER POINT PDP
CLSK /SKIP ON CLOCK FLAG JMP CLKTCK /GO BACK CLSA /CLEAR CLOCK STATUS CLA LINC SAM1 /TRANSFER DUMMY SAM2 /TRANSFER SAM1 TO AC DIS0 /DISP CHANNEL 1 LSTA VOL /STORE VOL SAM3 /TRANSFER SAM2 TO AC DIS2 /DISP CHAN 2 LSTA FLOW /STORE FLOW SAMD /TRANSFER SAM3 TO AC DIS3 /DISP AND INC CHANNEL 2 LSTA PTP /STORE TRANS PULMONARY PRESSURE DIS1 /DISPLAY AND INC CHANNEL 1 SNS4 /ABORT AND SET NEW CLOCK? LJMP .+3 PDP /YES SET CLOCK AGAIN JMP WAIT0 SNS1 /NO; SAMPLE & STORE? LJMP .+3 PDP /NO;GET NEW CLOCK TICK JMP CLKTCK /STORAGE ROUTINE PDP /YES! DF, CDF 20 /DATA FIELD 2 AND 3 FOR STORAGE TAD VOL DCA I KNTR ISZ KNTR TAD FLOW DCA I KNTR ISZ KNTR TAD PTP DCA I KNTR ISZ KNTR ISZ KNTR2 /255 WORDS ? SKP /NO JMP BLK0 /YES RET, CDF 0 TAD (600 /BEGIN CHARACTER DISPLAY DCA 1 TAD DISBLK AND (0070 RTR TAD (777 JMS CHAR TAD DISBLK AND (0007 RAL TAD (777 JMS CHAR JMP CLKTCK /GO TO NEXT TICK CHAR, 0 /DISPLAY BLK KNT CHARACTERS LINC LSTA 11 LAD2 (200 DSC DSC PDP CLA JMP I CHAR BLK0, ISZ KNTR /CHECK FOR 8K OVERFLOW SKP JMP I (ENDBLK /WRITE 8K TAD M125 DCA KNTR2 /RESET WORD-BLK KNTR JMP RET KNTR, 0 /STORAGE ADDRESS DISBLK, 0 /DISPLAY BLOCK COUNTER *1000 /CONSTANTS FOR NUMERICAL DISPLAY 4136 3641 2101 0177 4523 2151 4122 2651 2414 0477 5172 0651 1506 4225 4443 6050 5126 2651 5122 3651



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