File DANSPY

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

*20
/DAN GRAY
/TITLE:  DANSPY
/NOVEMBER 20, 1970
/THIS PROGRAM MEETS THE REQUIREMENT
/OF THE LABORATORY ASSIGNMENT FOR
/READING AND DISPLAYING A DATA
/BLOCK OFF TAPE AND THE REQUIREMENTS
/OF A TERM PROJECT.
/THIS PROGRAM HAS THE FOLLOWING OPTIONS
/AND CONTROLS:
/RIGHT SWITCHES DETERMINE BLOCK NUMBER
/AND UNIT NUMBER(BIT ZERO ON = UNIT 1).
/NO SENSE SWITCHES CONDITION SELECTS
/BINARY DISPLAY OF TAPE BITS AS PER
/LAB ASSIGNMENT.  DATA FUNCTION 
/DISPLAYED CAN BE MOVED UP AND DOWN
/WITH POT ZERO.
/SNS 0= SCANNING TAPE BLOCKS AT A RATE
/       DETERMINED BY POT 1
/SNS 1= SCANNING TAPE FORWARD OR BACK
/SNS 2= SOURCE DISPLAY WITH NUMBER OF
/       LINES CONTROLLED BY POT 6
/       AND MOVEMENT OF LINES UP OR DOWN
/       WITH POT 2.
/SNS 3= DISPLAY CURSOR LINE IN BINARY
/       MODE AND CURSOR BOX IN OCTAL
/       MODE.  WHEN CURSOR IS DISPLAYED
/       WORDS CAN BE CHANGED BY SETTING
/       LEFT SWITCHES TO DESIRED VALUE
/       AND HITTING LETTER "C" ON TTY.
/       CHANGE IS MADE PERMANENT ON TAPE
/       BY HITTING COLON KEY ON TTY.
/       CURSOR IS MOVED THROUGH BLOCK
/       WITH POT 5.
/SNS 5= OCTAL DISPLAY OF BLOCK.  THE
/       FIRST COLUMN IS WORD NUMBER
/       OF THE START OF THAT LINE.
/       THIS SWITCH OVERRIDES SOURCE
/       SWITCH NO. 2.  NUMBER OF LINES
/       DISPLAYED IS CONTROLLED BY
/       POT 6 AND DISPLAY CAN BE MOVED 
/       UP AND DOWN BY POT 2.  MAXIMUM
/       DISPLAY IS ONE-HALF BLOCK.  
/SNS 4= SELECTION OF BOTTOM HALF OF
/       BLOCK.
/HIT KEY "D" ON TTY TO RETURN TO DIAL.
START,	CLR
	RSW		/BRING IN BLOCK
	STA		/NUMBER AND UNIT
	SW
	BCL I
	7000
	STC BN
	SFA
	BCL I		/CHANGE TO SMALL
	200		/PRINT
	ESF
BEGIN,	SET I 16
	-3		/DIGITS IN BN
	SET I 17	/TABLE TO HOLD
	TAB1+3		/BN DISPLAY
	LDA
	BN
	ROL 3
PACK,	ROL 3
	ADA I		/TO MAKE STRIP
	60		/ASCII OF BN
	STH I 17
	BCL I
	0077
	STH I 17	/PUT IN TAB1
	XSK I 16
	JMP PACK
	RSW
	APO
	JMP .+6		/SET UNIT NO.
	LDA		/IN RDC COMMAND
	UNIT		/FROM BIT 0 IN
	BCL I		/RSW
	10
	JMP .+5
	LDA
	UNIT
	BSE I
	10
	STC UNIT
	LDA
	BN
	BSE I		/FOR MEM BLOCK
	4000		/NO. FOUR
	STC BLOCK
UNIT,	RDC
BLOCK,	0000
	SAM 1		/POT 1=SPEED OF
	ADA I		/SCANNING BLOCKS
	777
	STC 15		/STORED IN B-15
DISP,	SET I 1
	20		/HORIZ POSITION
	SAM 5		/POT 5=BOX
	APO		/CURSOR POSITION
	JMP .+4		/2000-2377
	BSE I
	1000
	JMP .+3
	BCL I
	7000
	SCR 2
	BSE I
	2000
	STC 6		/B6=CURSOR INDEX
	KST I
	JMP KEY		/KEY STRUCK
	RSW
	SAE I
SW,	0000		/SWITCH CHANGES?
	JMP START
	SET I 14
	-6		/CHARACTERS IN 
	SET I 17	/BN DISPLAY
	TAB1-1		/B17=INDEX FOR
DISBN,	LDA I 17	/TAB1 FOR DISP
	ROL 1		/B14=DISP N CHAR
	ADA I		/B16=DSC REG FOR
	ZSTART-1	/BN DISPLAY
	STC 16
	LDA I
	360
	DSC I 16
	DSC I 16
	LDA I
	2
	ADM
	1
	XSK I 14
	JMP DISBN
	SNS I 5		/OCTAL?=SSW 5
	JMP OCT
	SNS I 2		/SOURCE?=SSW 2
	JMP SOURCE
	SET I 16	/NO? THEN BINARY
	777		/B16=HORIZ FOR
	SET I 17	/BINARY DISP
	3777		/B17=TAB2 INDEX
	SAM 0		/FOR BLOCK
	ADA I
	777
	SCR 1		/POT 0=VERT FOR
	STC  Y1	        /BINARY
FUN,	SNS 3		/SSW 3=CURSOR
	JMP NOCUR
	LDA
	17		/INDEX=CURSOR?
	ADA I
	1
	BCL I
	4000
	BSE I
	2000
	SAE
	6
	JMP .+2		/YES THEN JUMP
	JMP CURSOR	/CURSOR DISPLAY
NOCUR,	LDA I 17
	SCR 1		/NO THEN DISPLAY
	ADA I		/FUNCTION
Y1,	0000
	DIS I 16
	XSK I 16
	JMP FUN
CHBN,	SNS 0		/ROUTINE FOR
	JMP DISP	/CHANGING BLOCK
	XSK I 15	/NUMBER
	JMP DISP	/SSW 0=SCANNING
	LDA I		/BLOCKS
	1		/SSW 1=FORWARD
	SNS 1		/OR BACKWARD
	COM
	ADA I
BN,	0000		/CURRENT BLOCK
	STC BN
	JMP BEGIN
TAB1,	2		/B  STRIP ASCII
	16		/N  FOR BN DISP
	40		/SPACE
	0
	0
	0
	0
OCT,	CLR		/DISPLAY OCTAL
	SET I 17	/B-17 CLEAR MEM
	2400		/BLOCK 5
	STA 17
	XSK I 17
	JMP .-2
	LDA I
	350
	STC Y2		/VERT FOR DSC
	SAM 2		/POT 2=MOVE OCT
	APO		/UP AND DOWN
	JMP .+4
	BSE I
	1000
	JMP .+3
	BCL I
	7000
	SCR 6
	ROL 3
	SNS I 4		/SSW 4=TOP OR
	JMP .+4		/BOTTEM HALF OF
	ADA I		/BLOCK
	1777
	JMP .+3
	ADA I
	2177
	BSE I
	2000
	STC 17		/INDEX FOR TAB2
	SAM 6		/REGISTER NUMBER
	ADA I		/POT 6=NO. OF 
	1000		/LINES OF OCT
	BCL I		/DISPLAY
	6000
	SCR 6
	ADA I
	1
	COM
	STC 13		/INDEX FOR NO.
NULIN,	SET I 1		/LINES
	20		/HORIZ INDEX
	SET I 14
	-10		/TEN WORDS PER
	SET I 9		/LINE
	-3		/CHAR IN LINE NO
	LDA
	17
	ADA I
	1
	BCL I
	7007
	ROL 3		/SET UP DISC FOR
	STC ROW		/ROW NUMBER
	ADA I
ROW,	0000
	ROL 3
	STA
	ROW
	BCL I
	7770
	ADA I
	60		/STRIP ASCII
	ROL 1		/FOR ROW NO
	ADA I
	ZSTART-1
	STC 16
	LDA
	Y2
	DSC I 16
	DSC I 16	/DISC ROW NO
	LDA I
	2
	ADM
	1
	CLR
	XSK I 9
	JMP ROW-1
	LDA I
	20		/SPACE TO OCT 
	ADM		/LINE
	1
	SET I 12
	-4		/OCTAL CHAR PER
DISOCT,	CLR		/WORD
	SNS 3		/SSW 3= DISPLAY
	JMP  NOBOX	/BOX
	LDA
	17
	ADA I
	1
	BCL I
	4000
	BSE I
	2000
	SAE
	6		/CURSOR POT
	JMP .+2
	JMP OCTBOX	/DISP BOX
NOBOX,	LDA I 17
	STC REG
NXTWD,	LDA I
REG,	0000
	ROL 3
	STA
	REG
	BCL I
	7770
	ADA I		/STRIP ASCII
	60		/OF OCTAL WORD
	ROL 1
	ADA I
	ZSTART-1
	STC 16
	LDA I
Y2,	0000
	DSC I 16	/DISC OCT CHAR
	DSC I 16
	LDA I
	2		/SPACE TO NEXT
	ADM		/CHAR
	1
	XSK I 12
	JMP NXTWD
	LDA I
	20		/SPACE TO NEXT
	ADM		/WORD
	1
	XSK I 14
	JMP DISOCT-2
	LDA I
	-40		/SPACE TO NEW
	ADM		/LINE
	Y2
	XSK I 13
	JMP NULIN
	JMP CHBN
SOURCE,	CLR		/DISPLAY SOURCE
	LDA I
	4343		/SET MEM BLOCK 5
	SET I 10	/TO BLANKS
	2400
	STA 10
	XSK I 10
	JMP .-2
	SAM 2		/POT 2 MOVES 
	BCL I		/SOURCE UP AND
	7400		/DOWN
	ADA I
	7777
	BSE I
	6000
	STC 17
	SAM 6		/POT 6 VARIES 
	APO		/NUMBER OF LINES
	JMP .+4		/DISPLAYED
	BSE I
	1000
	JMP .+3
	BCL I
	7000
	SCR 5
	COM
	STC 16
	LDA I		/VERTICAL COORD
	370		/INATE
	STC Y3
CR,	XSK I 16
	JMP .+2		/ALL LINES DONE?
	JMP CHBN
	SET I 1
	20
	LDA I		/HORIZONTAL
	-20		/COORDINATE
	ADM
	Y3
NEXT,	CLR
	LDH I 17
	SAE I
	43		/CARRIAGE
	JMP .+2		/RETURN?
	JMP CR
	SAE I
	45		/LINE FEED?
	JMP .+2
	JMP LF
	SAE I
	47		/TAB?
	JMP .+2
	JMP TAB
	ROL 1
	ADA I
	ZSTART-4001
	STC 13		/INDEX FOR DSC
	LDA I
Y3,	0000
	DSC I 13
	DSC I 13
	LDA I
	2		/SPACE BETWEEN 
	ADM		/LETTERS
	1
	LDA
	1
	COM
	ADA I		/CR IF PAST 770
	770		/CHARACTERS
	APO
	JMP CR
	JMP NEXT
LF,	SET I 1		/CARRIAGE
	40		/RETURN AND
	LDA I		/SET DISPLAY
	-20		/^ FOR LINE FEED
	ADM
	Y3
	DJR
	XSK I 16
	JMP .+2
	JMP CHBN
	LDA I
	36
	JMP 0
TAB,	LDA I
	40		/SKIP FOUR 
	ADM		/SPACES
	1
	JMP NEXT
	PMODE
	*4800
ND,	7474
D,	304
NCOL,	7506
COL,	272
NC,	7475
	LMODE
KEY,	CLR		/SUBROUTINE FOR
	PDP		/WHEN TTY KEY
	PMODE		/STRUCK
	KRB
	TAD ND		/D? THEN CALL
	SZA		/DIAL LOADER
	JMP .+2
	JMP LOADER
	TAD D
	TAD NCOL	/COLON? THEN
	SZA		/WRITE THAT TAPE
	JMP .+2		/BLOCK
	JMP CHT
	TAD COL
	TAD NC		/C? THEN CHANGE
	SZA		/WORD INDICATED
	JMP .+2		/BY CURSOR
	JMP CHW
	LINC
	LMODE
	JMP 0
	PMODE
LOADER,	CLA
	LINC
	LMODE
	LDA I
	RCG
	STC 16
	LDA I
	7300
	STC 17
	JMP 16
	PMODE
CHW,	LINC
	LMODE
	SNS 3		/SENS 3 MUST BE
	JMP 0		/ON
	LSW
	STA 6		/LEFT SWITCHES
	JMP 0		/INTO WORD
	PMODE
CHT,	LINC
	LMODE
	SNS 3		/SENS 3 MUST BE
	JMP 0		/ON
	LDA
	BLOCK
	STC BN2
	LDA
	UNIT
	BCL I
	7767
	BSE I		/WRITE ON TAPE
	WRC
	STC UNI
UNI,	0000
BN2,	0000
	JMP BEGIN
OCTBOX,	SET I 7		/TO DRAW BOX FOR
	-5		/OCTAL CURSOR
	SFA
	BSE I		/B7=BOX LENGTH
	200
	ESF
	LDA I
	-10
	ADM
	1
	LDA
	Y2
	DSC I
	4177
	DSC I
	4141
	DJR
	XSK I 7
	JMP .-4
	DSC I
	7741
	SET I 7
	-10		/DELAY FOR 
	DJR		/FINISHING BOX
	XSK I 7
	JMP .-2
	LDA I
	-60
	ADM
	1
	SFA
	BCL I
	200
	ESF
	JMP 0
CURSOR,	LDA I 17	/DRAW CURSOR
	STA		/FOR BINARY DISP
	VALU
	SCR 1
	SET I 11
	-6		/CURSOR LENGTH
	ADA
	Y1
	DIS I 16
	DIS 16
	ADA I
	4		/SPACE BETWEEN
	XSK I 11	/DOTS
	JMP .-4
	SET I 2
	TAB3+7
	SET I 3
	-4		/DISPLAY VALUE
	LDA I		/OF DISPLAY AT
VALU,	0000		/CURSOR POSITION
	ROL 3
	STA
	VALU
	BCL I
	7770
	ADA I
	60		/B2=INDEX FOR
	STA I 2		/DISP VALUE
	XSK I 3
	JMP VALU-1	/B3=NUMBER OF
	SET I 2		/CHARACTERS
	TAB3-1
	SET I 3
	-14
	SET I 1
	600
IND,	LDA I 2		/ROUTINE FOR
	ROL 1		/DISPLAYING
	ADA I		/VALUE
	ZSTART-1
	STC 4
	LDA I
	-320
	DSC I 4		/B4=DSC INDEX
	DSC I 4
	LDA I
	2
	ADM
	1
	XSK I 3
	JMP IND
	JMP CHBN-2
TAB3,	26		/V
	1		/A
	14		/L
	25		/U
	5		/E
	75		/=
	40		/SPACE
	40		/SPACE
	00
	00
	00
	PMODE
	*5600
/ADD PATRNS HERE



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