Commit | Line | Data |
---|---|---|
7af5ad59 PH |
1 | / |
2 | / VERSION 5A 4-27-77 PT | |
3 | / | |
4 | LINC=6141 | |
5 | PDP=2 | |
6 | DIS=140 | |
7 | COMMZ #PAGE0 /STANDARD PAGE 0 | |
8 | ORG 17 | |
9 | 0 /ALPHA REG FOR PDP-12 | |
10 | ENTRY #DISP /THIS IS SO #PAGE0 CAN BE LOADED | |
11 | #DISP, | |
12 | DISPLY, 0 | |
13 | TAD BUFADR+2 /GET BUFFER ADDRESS | |
14 | DCA BUFADR | |
15 | TAD DBFLD /SET UP CHANGABLE CDF | |
16 | DCA FLDDB | |
17 | DBFLD, HLT /GO TO FIRST FIELD OF BUFFER | |
18 | TAD PLTXR+4 /NUMBER OF POINTS | |
19 | CMA | |
20 | DCA NPTS /NEGATED | |
21 | JMP ENDDL /BEGIN DISPLAY | |
22 | DSPLUP, /START OF DISPLAY LOOP | |
23 | IFSW 8 < | |
24 | TAD% BUFADR /GET X VALUE | |
25 | 6053 /LOAD X DISPLACEMENT | |
26 | CLA | |
27 | ISZ BUFADR /BUMP ADDRESS | |
28 | SKP CLA | |
29 | JMS BUMPF /BUMP FIELD | |
30 | TAD% BUFADR | |
31 | 6054 /LOAD Y DISPLACEMENT | |
32 | CLA | |
33 | ISZ BUFADR /INCR ADDRESS | |
34 | SKP CLA | |
35 | JMS BUMPF /INCR FIELD | |
36 | 6052 /SKIP ON BEAM POSITIONED | |
37 | JMP .-1 | |
38 | 6055 /INTENSIFY POINT | |
39 | > | |
40 | IFNSW 8 < | |
41 | TAD% BUFADR /GET X DISPLACEMENT | |
42 | DCAZ 17 /INTO ALPHA REG | |
43 | ISZ BUFADR /INCREMENT ADDRESS | |
44 | SKP CLA | |
45 | JMS BUMPF /INCREMENT DATA FIELD | |
46 | TAD% BUFADR /GET Y DISPLACEMENT | |
47 | CIF 10 | |
48 | LINC | |
49 | DIS 17 | |
50 | PDP | |
51 | CLA | |
52 | ISZ BUFADR /INCR BUFFER POINTER | |
53 | SKP CLA | |
54 | JMS BUMPF | |
55 | > | |
56 | ENDDL, ISZ NPTS /INCREMENT COUNTER | |
57 | JMP DSPLUP /LOOP | |
58 | CDF 10 | |
59 | JMP% DISPLY /RETURN TO IDLE Q | |
60 | BUMPF, 0 /FIELD CHANGER | |
61 | TAD FLDDB /BUMP FIELD | |
62 | TAD L10 | |
63 | DCA FLDDB | |
64 | FLDDB, HLT /CHANGE IT NOW | |
65 | JMP% BUMPF | |
66 | PUTONQ, 0 /PUT DISPLY ONTO BACKROUND Q | |
67 | TAD BUFADR+1 /CREATE CDF FOR DISPLAY LOOP | |
68 | AND L7 | |
69 | CLL RAL | |
70 | RTL | |
71 | TAD FLD0 | |
72 | DCA DBFLD | |
73 | IFSW 8 < | |
74 | 6050 /CLEAR DISPLAY LOGIC | |
75 | > | |
76 | CDF CIF | |
77 | SKP | |
78 | JMP% PUTONQ | |
79 | DCA .-2 /ONCE ONLY | |
80 | CIF CDF 10 | |
81 | JMS% ONQBX+1 | |
82 | ADDR DISPLY | |
83 | CIF CDF | |
84 | JMP% PUTONQ /CALLED VIA TRAP4 | |
85 | EXTERN ONQB | |
86 | ONQBX, ADDR ONQB | |
87 | BUFADR, 0 | |
88 | 0 | |
89 | PLTXR, 0;0;0;-1;0;0 | |
90 | FLD0, CDF | |
91 | L7, 7 | |
92 | L10, 10 | |
93 | NPTS, 0 | |
94 | \f SECT PLOT | |
95 | JA #PLOT | |
96 | NAME, TEXT +PLOT + | |
97 | PLTBAS, 0;0;0 | |
98 | XLO, | |
99 | X, 0;0;0 | |
100 | YLO, | |
101 | Y, 0;0;0 | |
102 | XHI, | |
103 | N, 0;0;0 | |
104 | YHI, 0;0;0 | |
105 | ADRBUF, 0;0;0 | |
106 | IFSW 8 < | |
107 | YSCALE, F 1022. | |
108 | YZERO, F 511. | |
109 | ORG 10*3+PLTBAS | |
110 | FNOP | |
111 | JA NAME+3 | |
112 | 0 | |
113 | PLTRET, JA . | |
114 | XSCALE, F 786. | |
115 | XZERO, F 511. | |
116 | RANGE, F 1022. | |
117 | BASE, F 511.> | |
118 | IFNSW 8 < | |
119 | YSCALE, F 510. | |
120 | YZERO, F 255. | |
121 | ORG 10*3+PLTBAS | |
122 | FNOP | |
123 | JA NAME+3 | |
124 | 0 | |
125 | PLTRET, JA . | |
126 | XSCALE, F 392. | |
127 | XZERO, F 0. | |
128 | RANGE, F 510. | |
129 | BASE, F 255.> | |
130 | L1P5, F 1.5 | |
131 | XYPAIR, 0;0;0 | |
132 | #PLOT, BASE PLTBAS | |
133 | JSA SETUP | |
134 | LDX 1,1 | |
135 | FLDA% PLTBAS,1 /GET ARG ADDRESSES | |
136 | FSTA N | |
137 | FLDA% PLTBAS,1+ | |
138 | FSTA X | |
139 | FLDA% PLTBAS,1+ | |
140 | FSTA Y | |
141 | STARTF | |
142 | FLDA% N /NUMBER OF POINTS TO PLOT | |
143 | FNEG | |
144 | ATX 1 /INTO XR 1 | |
145 | LDX -1,2 /XR 2 IS THE INDEXER | |
146 | PLTLUP, JXN PLOOP,3+ /ANY MORE ROOM IN PLOT BUFFER ? | |
147 | LDX -1,3 /NO, FIX COUNT | |
148 | JA PLTRET | |
149 | PLOOP, FLDA% Y,2+ /GET Y VALUE | |
150 | FMUL YSCALE /SCALE IT | |
151 | FSUB YZERO /SUBTRACT LOWER LIMIT | |
152 | ALN 0 | |
153 | FSTA XYPAIR | |
154 | FLDA% X,2 /GET X VALUE OF PAIR | |
155 | FMUL XSCALE /SCALE IT | |
156 | FSUB XZERO /SUBTRACT LOWER LIMIT | |
157 | ALN 0 | |
158 | STARTD | |
159 | FSTA XYPAIR,0 /XYPAIR+1,+2 CONTAINS THE POINT | |
160 | FLDA XYPAIR /STORE THIS DOUBLE WORD INTO PLOT BUFFER | |
161 | FSTA% ADRBUF,4 | |
162 | ADDX 1,4 /TROUBLE IS, WE WANT POST INCREMENT | |
163 | STARTF | |
164 | JXN PLTLUP,1+ /LOOP IF MORE POINTS | |
165 | JA PLTRET | |
166 | BASE 0 | |
167 | SETUP, JA . | |
168 | STARTD | |
169 | FLDA 30 /GET RETURN ADDRESS | |
170 | FSTA PLTRET | |
171 | FLDA 0 /GET ARG POINTER | |
172 | BASE PLTBAS | |
173 | SETB PLTBAS | |
174 | SETX PLTXR | |
175 | FSTA PLTBAS | |
176 | JA SETUP | |
177 | \f SECT PLOTR | |
178 | BASE PLTBAS | |
179 | JSA SETUP | |
180 | LDX 1,1 | |
181 | FLDA% PLTBAS,1 /GET ARG ADDRESSES | |
182 | FSTA N | |
183 | FLDA% PLTBAS,1+ | |
184 | FSTA X | |
185 | FLDA% PLTBAS,1+ | |
186 | FSTA Y | |
187 | FLDA% PLTBAS,1+ | |
188 | FSTA YHI | |
189 | STARTF | |
190 | FLDA% YHI | |
191 | ATX 5 | |
192 | FLDA% N /NUMBER OF POINTS TO PLOT | |
193 | FNEG | |
194 | ATX 1 /INTO XR 1 | |
195 | LDX -1,2 /XR 2 IS THE INDEXER | |
196 | PLOTRL, FLDA% Y,2+ /GET Y VALUE | |
197 | FMUL YSCALE /SCALE IT | |
198 | FSUB YZERO /SUBTRACT LOWER LIMIT | |
199 | ALN 0 | |
200 | FSTA XYPAIR | |
201 | FLDA% X,2 /GET X VALUE OF PAIR | |
202 | FMUL XSCALE /SCALE IT | |
203 | FSUB XZERO /SUBTRACT LOWER LIMIT | |
204 | ALN 0 | |
205 | STARTD | |
206 | FSTA XYPAIR,0 /XYPAIR+1,+2 CONTAINS THE POINT | |
207 | FLDA XYPAIR /STORE THIS DOUBLE WORD INTO PLOT BUFFER | |
208 | FSTA% ADRBUF,5 | |
209 | ADDX 1,5 /TROUBLE IS, WE WANT POST INCREMENT | |
210 | STARTF | |
211 | JXN PLOTRL,1+ /LOOP IF MORE POINTS | |
212 | JA PLTRET | |
213 | \f SECT CLRPLT | |
214 | BASE PLTBAS | |
215 | JSA SETUP | |
216 | LDX 0,4 /DISABLE DISPLAY LOOP | |
217 | LDX 1,1 | |
218 | FLDA% PLTBAS,1 /GET ARG POINTERS | |
219 | FSTA N | |
220 | FLDA% PLTBAS,1+ | |
221 | FSTA ADRBUF | |
222 | FSTA BUFADR+1 | |
223 | STARTF | |
224 | FLDA% N /SIZE OF BUFFER | |
225 | FMUL L1P5 /NUMBER OF 2 WORD PAIRS | |
226 | FNEG | |
227 | ATX 3 /INTO SOME CHOICE XRS | |
228 | TRAP4 PUTONQ /PUTISPLY ONTO IDLE Q | |
229 | CLRRET, JA PLTRET | |
230 | \f SECT SCALE /SET SCALING FACTORS | |
231 | BASE PLTBAS | |
232 | JSA SETUP | |
233 | LDX 1,1 | |
234 | FLDA% PLTBAS,1 /GET ARGS | |
235 | FSTA XLO | |
236 | FLDA% PLTBAS,1+ | |
237 | FSTA YLO | |
238 | FLDA% PLTBAS,1+ | |
239 | FSTA XHI | |
240 | FLDA% PLTBAS,1+ | |
241 | FSTA YHI | |
242 | STARTF | |
243 | FLDA% XHI /COMPUTE X RANGE | |
244 | FSUB% XLO | |
245 | FSTA XHI | |
246 | FLDA% YHI /NOW Y RANGE | |
247 | FSUB% YLO | |
248 | FSTA YHI | |
249 | FLDA RANGE /COMPUTE XSCALE | |
250 | FDIV XHI | |
251 | FSTA XSCALE | |
252 | FLDA RANGE /NOW Y SCALE | |
253 | FDIV YHI | |
254 | FSTA YSCALE | |
255 | FLDA% XLO /COMPUTE XZERO | |
256 | FMUL RANGE | |
257 | FDIV XHI | |
258 | IFSW 8 < | |
259 | FADD BASE> | |
260 | FSTA XZERO | |
261 | FLDA% YLO /NOW YZERO | |
262 | FMUL RANGE | |
263 | FDIV YHI | |
264 | FADD BASE | |
265 | FSTA YZERO | |
266 | SCLRET, JA PLTRET | |
267 | END | |
268 | \f |