File DISPLAY

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

*20
/DISPLAY (MINI MAGSPY )
/COPYRIGHT 1970
/DIGITAL EQUIPMENT CORPORATION,MAYNARD,MASS.
/MOVING WINDOW DISPLAY SUBROUTINE
/CURSOR READ OUT
/CORE OR TAPE FILE
	PMODE
	*5400
	 
	 
/INITIAL CALL GET PARAM LIST
/SET ARGS FOR RDORA
	 
	 
IDORA,	0		/GET BOUNDS
	CLA CLL
ACDF0,	CDF 0
	TAD I IDORA	/DATA BUFFER
	DCA I KMNFLD	/15 BIT
	ISZ IDORA	/LOWER BOUND
	TAD I IDORA	/AT P+1, P+2
	DCA I KMNADR	/MINFLD,MINADR
	ISZ IDORA
	TAD I IDORA	/UPPER BOUND
	DCA I KMXFLD	/AT P+3, P+4
	ISZ IDORA
	IAC		/RDORA USES
	TAD I IDORA	/MAX+1
	DCA I KMXADR
	RAL
	TAD I KMXFLD
	DCA I KMXFLD
	ISZ IDORA
	TAD I IDORA	/Y SHIFT
	DCA YSHFT
	ISZ IDORA
	TAD I IDORA	/Y SCALE
	DCA I KYSCAL
	TAD I KMNFLD	/INITIALIZE
	DCA I KBUFHI	/WINDOW
	TAD I KMNADR	/STARTING ADDR
	DCA I KBUFLO
	JMP I IDORA	/RTN TO SCR N
KMNFLD,	MINFLD
KMNADR,	MINADR
KMXFLD,	MAXFLD
KMXADR,	MAXADR
KBUFHI,	BUFHI
KBUFLO,	BUFLO
KYSCAL,	YSCAL
P401,	401
DSCLOC,	TAD P401	/DSC X,Y COORD
	DCA VCOORD
	TAD XCURHI	/FIELD
	JMS DSCWD
	TAD XCURLO	/ADDRESS
	JMS DSCWD
	TAD CORVAL	/CONTENTS OF
	JMS DSCWD	/CURSR CORE LOC
	TAD YCUR	/Y COORD OF
	TAD P401
	JMS DSCWD	/CURSOR POINT
RTNCDF,	0		/RESTORE USER
			/DATA FLD
	JMP I RDORA	/RTN
DSCWD,	0		/DSC C(AC)
	LINC
	LMODE
	STC TEMP	/SAVE VALUE
	STC XCORD	/CHAN 1
	SFA		/VC FOR FULL
	ROL I 5		/SIZE IS -40
	LDA I		/-20 FOR HALF
	-20
	LZE		/FULL CHARS ?
	ROL 1		/NO VC-40
	ADM I		/UPDATE VC
VCOORD,	0
DSCLOP,	LDA I
TEMP,	0
	ROL 3		/1 DIGIT
	STA		/AT A TIME
	TEMP		/UPDATE
	BCL I		/LOW 3 BITS
	7770		/ONLY
	ROL 1		/*2 AND REL
	ADA I		/TO GRID TAB
	TAB&1777
	STC 2
	ADD VCOORD
	DSC 2
	DSC I 2
	XSK I 1		/MAKE GAP
	XSK I 1		/BETWEEN CHARS
	SRO I		/DSC 4 CHARS ?
	3567
	JMP DSCLOP	/NO CONT
	PDP
	PMODE
	CLA CLL
	JMP I DSCWD	/RTN
TAB,	4536	/60,0
	3651
	2101	/61,1
	0177
	4523	/62,2
	2151
	4122	/63,3
	2651
	2414	/64,4
	0477
	5172	/65,5
	0651
	1506	/66,6
	4225
	4443	/67,7
	6050
RDORA,	0
	CLA CLL		/SAVE USER DF
	RDF
	TAD ACDF0
	DCA RTNCDF
	LINC
	LMODE
CSAM,	CURSAM		/CURSOR
	SCR 1		/9 BITS COVERS
	PDP		/SCOPE
	PMODE		/MAKE RANGE
	TAD P401	/-1 TO -1000
	CIA CLL
	LINC
	LMODE
	STC CURCNT&1777
WSAM,	WINSAM		/WINDOW
	SCR 4		/75 CENTS W0RTH
	SET I XCORD
	-1000		/512 PNTS
	JMP CONT&1777
FREE,	FRESAM
	SCR 1
	PDP
	PMODE
	DCA YCUR
	TAD YCUR
	LINC
	6000		/JMP 0
	PAGE
CONT,	2
CDF0,	CDF 0
	DCA DBLLO	/PUT KNOB VAL
	TAD DBLLO	/IN DAC
	SPA CLA		/PROPAGATE SIGN
	CMA		/BIT HI ORD
	DCA DBLHI
	JMS DADD
	TAD DBLLO	/UPDATE WIN ADDR
	DCA BUFLO
	TAD DBLHI
	DCA BUFHI
			/MUST CHK
			/WINDOW SA
			/WITH BOUNDS
			/TO MAINTAIN
			/BUFFER RING
	 
	JMS BOUND	/LOWER BOUND
MINFLD,	1
MINADR,	0
	SMA CLA		/LOW END WRAP?
	JMP CHKHI	/NO
	TAD MAXFLD	/RESET TO
	DCA BUFHI	/UPPER BOUND
	TAD MAXADR
WRAP,	DCA BUFLO
	JMS DADD	/CORRECT WRAP
	TAD DBLLO	/CORRECTED
	DCA BUFLO	/WINDOW SA
	TAD DBLHI
	DCA BUFHI
SETFLD,	TAD BUFLO	/SET DISPLAY
	DCA BUFPTR	/ARGS
	TAD M1000
	DCA COUNT
	TAD BUFHI
	DCA BOUND
	JMS SETDF
NXTPNT,	TAD I BUFPTR
	TAD YSHFT	/OFF SET
	LINC
	LMODE
YSCAL,	SCR 1		/SCALE FACTOR
	DIS I XCORD
	PDP
	PMODE
	ISZ CURCNT	/READY TO DIS
			/CURSOR ?
CURRTN,	SKP CLA		/NO
	JMP CURDIS
	ISZ ENDLO	/CHK FOR HI
	JMP OKEND	/END WRAP
	ISZ ENDHI
	JMP OKEND
	TAD MINADR	/RESET TO
	DCA BUFPTR	/LOWER BOUND
	TAD MINFLD
	DCA BOUND
	JMP NXTDF
OKEND,	ISZ BUFPTR	/CHK FOR FIELD
			/BOUNDARY
	JMP OKFLD	/ITS OK
	ISZ BOUND	/SET NXT FLD
NXTDF,	JMS SETDF
OKFLD,	ISZ COUNT	/512 PNTS ?
	JMP NXTPNT	/NO
	JMP I .+1	/DSC READ OUT
	DSCLOC
CHKHI,	JMS BOUND	/CHK UPR BOUND
MAXFLD,	2
MAXADR,	0
M70,	SPA CLA		/HI WRAP ?
	JMP SETFLD
	TAD MINFLD	/YES
	DCA BUFHI	/RESET TO
	TAD MINADR	/LOWER BOUND
	JMP WRAP
/DOUBLE PRECISION ADD
/(DBLHI,DBLLO)+(BUFHI,BUFLO)
/RESULT IN (DBLHI,DBLLO)
/(BUFHI,BUFLO)=INITIAL SCOPE ADDRESS
	 
DADD,	0
	CLA CLL
	TAD DBLLO
	TAD BUFLO
	DCA DBLLO
	RAL
	TAD DBLHI
	TAD BUFHI
	DCA DBLHI
	JMP I DADD
	 
/ADD -UPPER OR -LOWER BOUND
/TO (BUFHI,BUFLO)
/BOUND IS AT P+1,P+2 OF CALL
	 
BOUND,	0
	TAD I BOUND	/2S COM OF ARG
	CMA CLL		/TO DAC
	DCA DBLHI
	ISZ BOUND
	TAD I BOUND
	CIA
	SZL
	ISZ DBLHI
M1000,	NOP
	DCA DBLLO
	JMS DADD
	TAD DBLHI
	DCA ENDHI	/DAC HOLDS -NUM
	TAD DBLLO	/TO END OF BUF
	DCA ENDLO	/NO MATTER FOR
			/LOW END WRAP
	TAD DBLHI	/TO CHK FOR
	ISZ BOUND	/UPON RTN
	JMP I BOUND
SETDF,	0		/SET 8 FIELD
	TAD BOUND	/REL TO BOUND
	CLL RTL
	RAL
	TAD CDF0
	DCA .+1
DBLLO,	0
	JMP I SETDF
CURDIS,	DCA YCUR	/DISP CURSOR
	TAD BOUND	/SAVE X,Y
	DCA XCURHI	/COORDINATES
	TAD BUFPTR
	DCA XCURLO
	TAD I BUFPTR
	DCA CORVAL
	TAD M70
	DCA DBLLO
	TAD YCUR
CURLOP,	LINC
	LMODE
	SNS I 5
	JMP FREE	/FREE CURSOR
	DIS XCORD
	PDP
	PMODE
	ISZ DBLLO
	JMP CURLOP
	JMP CURRTN
CURCNT,	0
/THESE 5 GUYS MAY BE PAGE 0
BUFHI,	1
BUFLO,	0
ENDLO,	0
ENDHI,	0
	DBLHI=SETDF
	BUFPTR=DADD
	XCORD=1
	LMODE
	CURSAM=SAM 1	/CURSOR KNOB
	WINSAM=SAM 0	/WINDOW KNOB
	FRESAM=SAM 5	/FREE CURSOR
	SCALE=SCR
	SC12BU=SCR 3	/SCALE FACTOR
			/12 BIT UNSIGNED
	OF12BU=4000	/Y OFFSET FOR
			/12 BIT UNSIGNED
/THESE 6 GUYS MUST BE PAGE 0
/THEY ARE ALL CONTIGUOUS AND DEFINED
/RELATIVE TO YSHFT BUT THIS IS NOT
/A REQUIREMENT
	YSHFT=20
/THE 4 SCOPE READ OUT VALUES
	XCURHI=YSHFT+1
	XCURLO=XCURHI+1
	CORVAL=XCURLO+1
	YCUR=CORVAL+1
	COUNT=YCUR+1
/AN EXAMPLE TO DISPLAY ALL OF FIELD 1
/12 BIT UNSIGNED DATA
/PMODE
/*S0MEWHERE
/JMS I KIDORA		/INITIAL CALL
/1			/FLD
/0000			/ADDR
/1			/FLD
/7777			/ADDR
/OF12BU			/Y OFF SET
/SC12BU			/Y SCALE FAC
/JMS I KRDORA		/REFRESH CALL
/JMP .-1
/KIDORA,IDORA
/KRDORA,RDORA
	 
/DISPLAY 3 AUG 70



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