mirror of
https://github.com/PDP-10/stacken.git
synced 2026-03-07 11:17:06 +00:00
547 lines
9.6 KiB
Plaintext
547 lines
9.6 KiB
Plaintext
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
|