Google
 

Trailing-Edge - PDP-10 Archives - tops20-v7-ft-dist2-clock - language-sources/pltutl.mac
There are 38 other files named pltutl.mac in the archive. Click here to see a list.
TITLE	PLTUTL
SUBTTL	/DZN/PAH/HD/RJF					5-Feb-88

;COPYRIGHT (c) DIGITAL EQUIPMENT CORPORATION 1973,1986,1988.
; ALL RIGHTS RESERVED.
;
;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
;ONLY  IN  ACCORDANCE  WITH  THE  TERMS  OF  SUCH LICENSE AND WITH THE
;INCLUSION OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY  OTHER
;COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY
;OTHER PERSON.  NO TITLE TO AND OWNERSHIP OF THE  SOFTWARE  IS  HEREBY
;TRANSFERRED.
;
;
;THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT  NOTICE
;AND  SHOULD  NOT  BE  CONSTRUED  AS A COMMITMENT BY DIGITAL EQUIPMENT
;CORPORATION.
;
;DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY  OF  ITS
;SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL.

SEARCH	PLTPRM
SALL


CUSTVR==0		;CUSTOMER VERSION
DECVER==5		;DEC VERSION
DECMVR==1		;DEC MINOR VERSION
DECEVR==2417		;DEC EDIT VERSION
SUBTTL	REVISION HISTORY


;START OF VERSION 4A
;1217	Clean up the listings for release.
;1220	Release on both TOPS-10 and TOPS-20 as version 4A(1220).

;Start of Version 5.1
;2026	Update copyright notice.

;Start of Version 6.0
;2403	New corporate copywrite statement.
;2417	Update copywrite statement to 1988.
;THIS PROGRAM IS GENERATED FROM AN EQUIVALENT FORTRAN PROGRAM
;OF THE SAME NAME, WHICH IS INCLUDED BELOW.

;		FUNCTION PLTUTL (XXX)
;	C	ARGUMENTS ARE PASSED IN THIS COMMON--EQUIVS. TAILOR PARTIC. LISTS
;		COMMON /PLTARG/ARG0,ARG1,ARG2,ARG3,ARG4,ARG5,ARG6,ARG7
;		1  ,X,Y,DD,TT,TOP,SIDE
;		INTEGER ARG0,PLTCHAR
;		EQUIVALENCE (PLTCHAR,ARG0)
;		REAL ARG1,ARG2,ARG3,ARG4,ARG5,ARG6,ARG7,  X,Y
;		DIMENSION X(5),Y(5),DD(1),TT(1)
;		DATA DD,TT/'TREE ','ARC  '/
;	
;		ENTRY PLTORIG 
;		EQUIVALENCE (SETTOP,ARG1),(SETSIDE,ARG2),(STPSIZ,ARG3),
;		1  (WIDNCH,ARG4),(PSTAT,ARG5)
;		INTEGER	PSTAT
;		REAL TOP,SIDE,SETTOP,SETSIDE,STPSIZ,WIDNCH
;		PLTUTL=0
;		TOP=SETTOP
;		SIDE=SETSIDE
;		CALL PLOTS(PSTAT,STPSIZ)
;		IF (PSTAT .EQ. -1) RETURN
;		ARG7=WIDNCH + 1.0
;		ARG7=-ARG7
;		CALL PLOT(0,ARG7,-3)
;		CALL PLOT(0,0.5,-3)
;		RETURN
;	
;		ENTRY PLTINIT 
;		EQUIVALENCE (XDPEST,ARG1),(YORIG,ARG2)
;		REAL XDPEST,YCENTR
;		INTEGER PLTUTL
;	
;	C	THE TWO ARGS ARE IMPLICITLY PASSED ON
;		PLTUTL=-1
;		CALL PLOTI
;		RETURN
;	
;		ENTRY PLTPOLY  
;		EQUIVALENCE (XSON,ARG1),(YSON,ARG2),
;		1  (NAMLEN,ARG3),(LNUM,ARG4),(LNAME,ARG5),(RNAME,ARG5)
;		INTEGER NAMLEN,LNUM
;		REAL XSON,YSON,RNAME
;		DIMENSION LNAME(2)
;	
;	C	IN A STATISTICAL SENSE IT IS BETTER TO DO THE 10 STATS ALWAYS
;	C	RATHER THAN CONDIT AROUND & BRANCH TO WHEN NECESSARY
;	
;		X(1)=XSON
;		Y(1)=YSON-TOP/2
;		X(2)=XSON
;		Y(2)=YSON+TOP/2
;		X(3)=XSON+SIDE
;		Y(3)=YSON+TOP/2
;		X(4)=XSON+SIDE
;		Y(4)=YSON-TOP/2
;		X(5)=X(1)
;		Y(5)=Y(1)
;	
;		IF (LNUM .GT.99999) GO TO 11
;		PLTCHAR='*'
;		CALL NUMBER(X(1)+SIDE*7.0/16.0,Y(1)+TOP/8,SIDE/8,
;		1  FLOAT(LNUM),90.0,-1)
;		CALL SYMBOL(X(1)+SIDE*14/16,Y(1)+TOP/8,SIDE/8,
;		1  LNAME,90.0,NAMLEN)
;		GO TO 99
;	
;	11	IF (LNUM .NE. 100000) GO TO 12
;		IF (PLTUTL.NE.0) GO TO 115
;	
;		X(1)=XSON
;		Y(1)=YSON
;		X(2)=XSON+SIDE/2
;		Y(2)=YSON+TOP/2
;		X(3)=XSON+SIDE
;		Y(3)=YSON
;		X(4)=XSON+SIDE/2
;		Y(4)=YSON-TOP/2
;		X(5)=X(1)
;		Y(5)=Y(1)
;	
;	115	PLTCHAR='$'
;		CALL SYMBOL(XSON+SIDE*7/16,YSON-TOP/4,SIDE/6,DD,90.0,4)
;		CALL NUMBER(XSON+SIDE*14/16,YSON,SIDE/6,RNAME,90.0,-1)
;		GO TO 99
;	
;	12	IF (LNUM .NE. 100001) GOTO 88
;		IF (PLTUTL.NE.0) GO TO 125
;	
;		X(1)=XSON
;		Y(1)=YSON-TOP/2+TOP/6
;		X(2)=XSON
;		Y(2)=YSON+TOP/2-TOP/6
;		X(3)=XSON+SIDE
;		Y(3)=YSON+TOP/2
;		X(4)=XSON+SIDE
;		Y(4)=YSON-TOP/2
;		X(5)=X(1)
;		Y(5)=Y(1)
;	
;	125	PLTCHAR='@'
;		CALL SYMBOL(XSON+SIDE*7/16,YSON-TOP/3,SIDE/6,TT,90.0,3)
;		CALL NUMBER(XSON+SIDE*14/16,YSON-TOP/4,SIDE/6,RNAME,90.0,-1)
;		CALL SYMBOL(XSON+SIDE*14/16,YSON,SIDE/6,LNAME(2),90.0,1)
;	
;	99	CALL LINE(X,Y,5,1)
;		RETURN
;	
;		ENTRY PLTLINE  
;		EQUIVALENCE(XSELF,ARG1),(YSELF,ARG2),(XDAU,ARG3),(YDAU,ARG4)
;		REAL YSELF,XSELF,YDAU,XDAU
;		PLTCHAR='='
;	
;		X(1)=XSELF
;		Y(1)=YSELF
;		X(2)=XDAU
;		Y(2)=YDAU
;		CALL LINE(X,Y,2,1)
;		RETURN
;	
;	88	PSTAT=-1
;		RETURN
;		END
	TWOSEG
	RELOC	400000

	EXTERN X,Y,SIDE,TOP,.Q0,.Q1,.Q2,.Q3,.Q4,.Q5,PLTCHA,LPBUF,ERRFND,STEPS

	EXTERN 	PLOTI,LINE,NUMBER,SYMBOL,PLOTS,PLOT,FLOAT.

	ENTRY	PLTORI,PLTPOL,PLTINI,PLTLIN

PLTORI:
	SAVALL
	ARGS	<SETTOP,SETSID,INCHES>
	MOVE	2,SETTOP
	MOVEM	2,TOP
	MOVE	2,SETSID
	MOVEM	2,SIDE
	MOVEI	16,%7M
	PUSHJ	17,PLOTS
	MOVN	2,ERRFND
	CAIN	2,1
	RETURN
%8M:
	MOVSI	2,201400
	FADR	2,INCHES
	MOVEM	2,.Q0
	MOVNS	3,.Q0
	MOVEI	16,%9M
	PUSHJ	17,PLOT
	MOVEI	16,%10M
	PUSHJ	17,PLOT
	RETURN

	
PLTINI:
	MOVE	1,-2(P)
	MOVEM	1,.Q0
	MOVE	1,-1(P)
	MOVEM	1,.Q1
	FUNCT2	PLOTI,<$2,.Q0,$2,.Q1>
	POPJ	P,0
PLTPOL:
	SAVALL
	ARGS	<XSON,YSON,NAMLEN,LNUM,LNAME,LNAME2>
	RNAME=LNAME
	MOVE	2,XSON
	MOVEM	2,X
	MOVN	3,TOP
	FSC	3,777777
	FADR	3,YSON
	MOVEM	3,Y
	MOVE	2,XSON
	MOVEM	2,X+1
	MOVE	3,TOP
	FSC	3,777777
	FADR	3,YSON
	MOVEM	3,Y+1
	MOVE	2,XSON
	FADR	2,SIDE
	MOVEM	2,X+2
	MOVE	2,TOP
	FSC	2,777777
	FADR	2,YSON
	MOVEM	2,Y+2
	MOVE	2,XSON
	FADR	2,SIDE
	MOVEM	2,X+3
	MOVN	2,TOP
	FSC	2,777777
	FADR	2,YSON
	MOVEM	2,Y+3
	MOVE	2,X
	MOVEM	2,X+4
	MOVE	2,Y
	MOVEM	2,Y+4
	MOVE	2,LNUM
	CAILE	2,303237
	JRST	0,%11P
	MOVE	3,[251004020100]
	MOVEM	3,PLTCHA
	MOVSI	2,203700
	FMPR	2,SIDE
	FSC	2,777774
	FADR	2,X
	MOVEM	2,.Q0
	MOVE	2,TOP
	FSC	2,777775
	FADR	2,Y
	MOVEM	2,.Q1
	MOVE	2,SIDE
	FSC	2,777775
	MOVEM	2,.Q2
	FUNCT2	FLOAT.,<LNUM>
	MOVEM	0,2
	MOVEM	2,.Q3
	MOVEI	16,%15M
	PUSHJ	17,NUMBER
	MOVSI	2,204700
	FMPR	2,SIDE
	FSC	2,777774
	FADR	2,X
	MOVEM	2,.Q0
	MOVE	2,TOP
	FSC	2,777775
	FADR	2,Y
	MOVEM	2,.Q1
	MOVE	2,SIDE
	FSC	2,777775
	MOVEM	2,.Q2
	MOVEM	LNAME,.Q3
	MOVEM	LNAME2,.Q4
	MOVEM	NAMLEN,.Q5
	MOVEI	16,%16M
	PUSHJ	17,SYMBOL
	JRST	0,%99P
%11P:
	MOVE	2,LNUM
	CAIE	2,303240
	JRST	0,%12P
	SKIPE	2,LPBUF
	JRST	0,%115P
	MOVN	2,SIDE
	FSC	2,777775
	FADR	2,XSON
	MOVEM	2,X
	MOVE	2,YSON
	MOVEM	2,Y
	MOVE	3,SIDE
	FSC	3,777777
	FADR	3,XSON
	MOVEM	3,X+1
	MOVE	3,TOP
	FSC	3,777775
	MOVE	2,TOP
	FSC	2,777777
	FADR	2,YSON
	FADR	2,3
	MOVEM	2,Y+1
	MOVE	3,SIDE
	FSC	3,777775
	MOVE	2,SIDE
	FADR	2,XSON
	FADR	2,3
	MOVEM	2,X+2
	MOVE	2,YSON
	MOVEM	2,Y+2
	MOVE	2,SIDE
	FSC	2,777777
	FADR	2,XSON
	MOVEM	2,X+3
	MOVN	3,TOP
	FSC	3,777775
	MOVN	2,TOP
	FSC	2,777777
	FADR	2,YSON
	FADR	2,3
	MOVEM	2,Y+3
	MOVE	2,X
	MOVEM	2,X+4
	MOVE	2,Y
	MOVEM	2,Y+4
%115P:
	MOVE	2,[221004020100]
	MOVEM	2,PLTCHA
	MOVSI	2,203700
	FMPR	2,SIDE
	FSC	2,777774
	FADR	2,XSON
	MOVEM	2,.Q0
	MOVN	2,TOP
	FSC	2,777776
	FADR	2,YSON
	MOVEM	2,.Q1
	MOVE	2,SIDE
	FDVRI	2,203600
	MOVEM	2,.Q2
	MOVEI	16,%17M
	PUSHJ	17,SYMBOL
	MOVSI	2,204700
	FMPR	2,SIDE
	FSC	2,777774
	FADR	2,XSON
	MOVEM	2,.Q0
	MOVE	2,SIDE
	FDVRI	2,203600
	MOVEM	2,.Q1
	MOVEM	YSON,.Q2
	MOVEM	RNAME,.Q3
	MOVEI	16,%18M
	PUSHJ	17,NUMBER
	JRST	0,%99P
%12P:
	MOVE	2,LNUM
	CAIE	2,303241
	JRST	0,%88P
	SKIPE	2,LPBUF
	JRST	0,%125P
	MOVE	2,XSON
	MOVEM	2,X
	MOVE	4,TOP
	FDVRI	4,203600
	MOVN	3,TOP
	FSC	3,777777
	FADR	3,YSON
	FADR	3,4
	MOVEM	3,Y
	MOVE	2,XSON
	MOVEM	2,X+1
	MOVN	4,TOP
	FDVRI	4,203600
	MOVE	3,TOP
	FSC	3,777777
	FADR	3,YSON
	FADR	3,4
	MOVEM	3,Y+1
	MOVE	2,XSON
	FADR	2,SIDE
	MOVEM	2,X+2
	MOVE	2,TOP
	FSC	2,777777
	FADR	2,YSON
	MOVEM	2,Y+2
	MOVE	2,XSON
	FADR	2,SIDE
	MOVEM	2,X+3
	MOVN	2,TOP
	FSC	2,777777
	FADR	2,YSON
	MOVEM	2,Y+3
	MOVE	2,X
	MOVEM	2,X+4
	MOVE	2,Y
	MOVEM	2,Y+4
%125P:
	MOVE	2,[401004020100]
	MOVEM	2,PLTCHA
	MOVSI	2,203700
	FMPR	2,SIDE
	FSC	2,777774
	FADR	2,XSON
	MOVEM	2,.Q0
	MOVN	2,TOP
	FDVRI	2,202600
	FADR	2,YSON
	MOVEM	2,.Q1
	MOVE	2,SIDE
	FDVRI	2,203600
	MOVEM	2,.Q2
	MOVEI	16,%19M
	PUSHJ	17,SYMBOL
	MOVSI	2,204700
	FMPR	2,SIDE
	FSC	2,777774
	FADR	2,XSON
	MOVEM	2,.Q0
	MOVN	2,TOP
	FSC	2,777776
	FADR	2,YSON
	MOVEM	2,.Q1
	MOVE	2,SIDE
	FDVRI	2,203600
	MOVEM	2,.Q2
	MOVEM	RNAME,.Q3
	MOVEI	16,%20M
	PUSHJ	17,NUMBER
	MOVSI	2,204700
	FMPR	2,SIDE
	FSC	2,777774
	FADR	2,XSON
	MOVEM	2,.Q0
	MOVE	2,SIDE
	FDVRI	2,203600
	MOVEM	2,.Q1
	MOVEM	YSON,.Q2
	MOVEM	LNAME2,.Q3
	MOVEI	16,%21M
	PUSHJ	17,SYMBOL
%99P:
	MOVEI	16,%22M
	PUSHJ	17,LINE
	RETURN
PLTLIN:
	SAVALL
	ARGS	<XSELF,YSELF,XDAU,YDAU>
	MOVE	2,[365004020100]
	MOVEM	2,PLTCHA
	MOVE	2,XSELF
	MOVEM	2,X
	MOVE	2,YSELF
	MOVEM	2,Y
	MOVE	2,XDAU
	MOVEM	2,X+1
	MOVE	2,YDAU
	MOVEM	2,Y+1
	MOVEI	16,%25M
	PUSHJ	17,LINE
	RETURN
%88P:
	SETOB	2,ERRFND
%1M:
	RETURN
; *** CONSTANTS

DD:	ASCII "TREE "
TT:	ASCII "ARC  "

	777774,,0
%25M:	200,,X
	200,,Y
	100,,[000000000002]
	100,,[000000000001]
	777774,,0
%22M:	200,,X
	200,,Y
	100,,[000000000005]
	100,,[000000000001]
	777772,,0
%21M:	200,,.Q0
	200,,.Q2
	200,,.Q1
	100,,.Q3
	200,,[207550000000]
	100,,[000000000001]
	777772,,0
%20M:	200,,.Q0
	200,,.Q1
	200,,.Q2
	200,,.Q3
	200,,[207550000000]
	100,,[777777777777]
	777772,,0
%19M:	200,,.Q0
	200,,.Q1
	200,,.Q2
	200,,TT
	200,,[207550000000]
	100,,[000000000003]
	777772,,0
%18M:	200,,.Q0
	200,,.Q2
	200,,.Q1
	200,,.Q3
	200,,[207550000000]
	100,,[777777777777]
	777772,,0
%17M:	200,,.Q0
	200,,.Q1
	200,,.Q2
	200,,DD
	200,,[207550000000]
	100,,[000000000004]
	777772,,0
%16M:	200,,.Q0
	200,,.Q1
	200,,.Q2
	100,,.Q3
	200,,[207550000000]
	100,,.Q5
	777772,,0
%15M:	200,,.Q0
	200,,.Q1
	200,,.Q2
	200,,.Q3
	200,,[207550000000]
	100,,[777777777777]
	777775,,0
%10M:	100,,[000000000000]
	200,,[200400000000]
	100,,[777777777775]
	777775,,0
%9M:	100,,[000000000000]
	200,,.Q0
	100,,[777777777775]
	777776,,0
%7M:	100,,ERRFND
	200,,STEPS
SUBTTL	THE END


	END