| 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 |