File: PLOT.LS of Disk: V50/Source/Source-Listing-RALF-1
(Source file text)
RALF V50A 8-APR-92 PAGE 1 /SCOPE PLOTTING ROUTINES / / / VERSION 50A 29-MAY-80 WVDM / / LINC=6141 PDP=2 DIS=140 COMMZ #PAGE0 /STANDARD PAGE 0 ORG 17 00017 0000 0 /ALPHA REG FOR PDP-12 ENTRY #DISP /THIS IS SO #PAGE0 CAN BE LOADED #DISP, 00020 0000 DISPLY, 0 00021 1307 TAD BUFADR+2 /GET BUFFER ADDRESS 00022 3305 DCA BUFADR 00023 1225 TAD DBFLD /SET UP CHANGABLE CDF 00024 3260 DCA FLDDB 00025 7402 DBFLD, HLT /GO TO FIRST FIELD OF BUFFER 00026 1313 TAD PLTXR+4 /NUMBER OF POINTS 00027 7040 CMA 00030 3320 DCA NPTS /NEGATED 00031 5250 JMP ENDDL /BEGIN DISPLAY / DSPLUP, /START OF DISPLAY LOOP IFSW 8 < TAD% BUFADR /GET X VALUE 6053 /LOAD X DISPLACEMENT CLA ISZ BUFADR /BUMP ADDRESS SKP CLA JMS BUMPF /BUMP FIELD TAD% BUFADR 6054 /LOAD Y DISPLACEMENT CLA ISZ BUFADR /INCR ADDRESS SKP CLA JMS BUMPF /INCR FIELD 6052 /SKIP ON BEAM POSITIONED JMP .-1 6055 /INTENSIFY POINT > IFNSW 8 < 00032 1705 TAD% BUFADR /GET X DISPLACEMENT 00033 3017 DCAZ 17 /INTO ALPHA REG 00034 2305 ISZ BUFADR /INCREMENT ADDRESS 00035 7610 SKP CLA 00036 4254 JMS BUMPF /INCREMENT DATA FIELD 00037 1705 TAD% BUFADR /GET Y DISPLACEMENT 00040 6212 CIF 10 00041 6141 LINC 00042 0157 DIS 17 00043 0002 PDP 00044 7200 CLA 00045 2305 ISZ BUFADR /INCR BUFFER POINTER RALF V50A 8-APR-92 PAGE 1-1 00046 7610 SKP CLA 00047 4254 JMS BUMPF > 00050 2320 ENDDL, ISZ NPTS /INCREMENT COUNTER 00051 5232 JMP DSPLUP /LOOP 00052 6211 CDF 10 00053 5620 JMP% DISPLY /RETURN TO IDLE Q / 00054 0000 BUMPF, 0 /FIELD CHANGER 00055 1260 TAD FLDDB /BUMP FIELD 00056 1317 TAD L10 00057 3260 DCA FLDDB 00060 7402 FLDDB, HLT /CHANGE IT NOW 00061 5654 JMP% BUMPF / 00062 0000 PUTONQ, 0 /PUT DISPLY ONTO BACKROUND Q 00063 1306 TAD BUFADR+1 /CREATE CDF FOR DISPLAY LOOP 00064 0316 AND L7 00065 7104 CLL RAL 00066 7006 RTL 00067 1315 TAD FLD0 00070 3225 DCA DBFLD / IFSW 8 < / 6050 /CLEAR DISPLAY LOGIC / > 00071 6203 CDF CIF 00072 7410 SKP 00073 5662 JMP% PUTONQ 00074 3272 DCA .-2 /ONCE ONLY 00075 6213 CIF CDF 10 00076 4704 JMS% ONQBX+1 00077 0000 ADDR DISPLY 00100 0020 00101 6203 CIF CDF 00102 5662 JMP% PUTONQ /CALLED VIA TRAP4 / EXTERN ONQB 00103 0000 ONQBX, ADDR ONQB 00104 0000 00105 0000 BUFADR, 0 00106 0000 0 00107 0000 PLTXR, 0;0;0;-1;0;0 00110 0000 00111 0000 00112 7777 00113 0000 00114 0000 00115 6201 FLD0, CDF 00116 0007 L7, 7 00117 0010 L10, 10 00120 0000 NPTS, 0 RALF V50A 8-APR-92 PAGE 2 SECT PLOT 00000 1030 JA #PLOT 00001 0065 00002 2014 NAME, TEXT +PLOT + 00003 1724 00004 4040 00005 0000 PLTBAS, 0;0;0 00006 0000 00007 0000 XLO, 00010 0000 X, 0;0;0 00011 0000 00012 0000 YLO, 00013 0000 Y, 0;0;0 00014 0000 00015 0000 XHI, 00016 0000 N, 0;0;0 00017 0000 00020 0000 00021 0000 YHI, 0;0;0 00022 0000 00023 0000 00024 0000 ADRBUF, 0;0;0 00025 0000 00026 0000 IFSW 8 < YSCALE, F 1022. YZERO, F 511. / ORG 10*3+PLTBAS FNOP JA NAME+3 0 PLTRET, JA . / XSCALE, F 786. XZERO, F 511. RANGE, F 1022. BASE, F 511.> IFNSW 8 < 00027 0011 YSCALE, F 510. 00030 3770 00031 0000 00032 0010 YZERO, F 255. 00033 3770 00034 0000 / ORG 10*3+PLTBAS 00035 0040 FNOP 00036 1030 JA NAME+3 00037 0005 00040 0000 0 00041 1030 PLTRET, JA . RALF V50A 8-APR-92 PAGE 2-1 00042 0041 / 00043 0011 XSCALE, F 392. 00044 3040 00045 0000 00046 0000 XZERO, F 0. 00047 0000 00050 0000 00051 0011 RANGE, F 510. 00052 3770 00053 0000 00054 0010 BASE, F 255.> 00055 3770 00056 0000 00057 0001 L1P5, F 1.5 00060 3000 00061 0000 00062 0000 XYPAIR, 0;0;0 00063 0000 00064 0000 / #PLOT, BASE PLTBAS 00065 1120 JSA SETUP 00066 0140 00067 0101 LDX 1,1 00070 0001 00071 0610 FLDA% PLTBAS,1 /GET ARG ADDRESSES 00072 6203 FSTA N 00073 0710 FLDA% PLTBAS,1+ 00074 6201 FSTA X 00075 0710 FLDA% PLTBAS,1+ 00076 6202 FSTA Y 00077 0005 STARTF 00100 0603 FLDA% N /NUMBER OF POINTS TO PLOT 00101 0003 FNEG 00102 0021 ATX 1 /INTO XR 1 00103 0102 LDX -1,2 /XR 2 IS THE INDEXER 00104 7777 00105 2130 PLTLUP, JXN PLOOP,3+ /ANY MORE ROOM IN PLOT BUFFER ? 00106 0113 00107 0103 LDX -1,3 /NO, FIX COUNT 00110 7777 00111 1030 JA PLTRET 00112 0041 / 00113 0722 PLOOP, FLDA% Y,2+ /GET Y VALUE 00114 4206 FMUL YSCALE /SCALE IT 00115 2207 FSUB YZERO /SUBTRACT LOWER LIMIT 00116 0010 ALN 0 00117 6217 FSTA XYPAIR 00120 0621 FLDA% X,2 /GET X VALUE OF PAIR 00121 4212 FMUL XSCALE /SCALE IT 00122 2213 FSUB XZERO /SUBTRACT LOWER LIMIT 00123 0010 ALN 0 00124 0006 STARTD 00125 6400 FSTA XYPAIR,0 /XYPAIR+1,+2 CONTAINS THE POINT RALF V50A 8-APR-92 PAGE 2-2 00126 0062 00127 0217 FLDA XYPAIR /STORE THIS DOUBLE WORD INTO PLOT BUFFER 00130 6645 FSTA% ADRBUF,4 00131 0114 ADDX 1,4 /TROUBLE IS, WE WANT POST INCREMENT 00132 0001 00133 0005 STARTF 00134 2110 JXN PLTLUP,1+ /LOOP IF MORE POINTS 00135 0105 00136 1030 JA PLTRET 00137 0041 / BASE 0 00140 1030 SETUP, JA . 00141 0140 00142 0006 STARTD 00143 0210 FLDA 30 /GET RETURN ADDRESS 00144 6400 FSTA PLTRET 00145 0041 00146 0200 FLDA 0 /GET ARG POINTER BASE PLTBAS 00147 1110 SETB PLTBAS 00150 0005 00151 1100 SETX PLTXR 00152 0107 00153 6200 FSTA PLTBAS 00154 1030 JA SETUP 00155 0140 RALF V50A 8-APR-92 PAGE 3 SECT PLOTR BASE PLTBAS 00000 1120 JSA SETUP 00001 0140 00002 0101 LDX 1,1 00003 0001 00004 0610 FLDA% PLTBAS,1 /GET ARG ADDRESSES 00005 6203 FSTA N 00006 0710 FLDA% PLTBAS,1+ 00007 6201 FSTA X 00010 0710 FLDA% PLTBAS,1+ 00011 6202 FSTA Y 00012 0710 FLDA% PLTBAS,1+ 00013 6204 FSTA YHI 00014 0005 STARTF 00015 0604 FLDA% YHI 00016 0025 ATX 5 00017 0603 FLDA% N /NUMBER OF POINTS TO PLOT 00020 0003 FNEG 00021 0021 ATX 1 /INTO XR 1 00022 0102 LDX -1,2 /XR 2 IS THE INDEXER 00023 7777 00024 0722 PLOTRL, FLDA% Y,2+ /GET Y VALUE 00025 4206 FMUL YSCALE /SCALE IT 00026 2207 FSUB YZERO /SUBTRACT LOWER LIMIT 00027 0010 ALN 0 00030 6217 FSTA XYPAIR 00031 0621 FLDA% X,2 /GET X VALUE OF PAIR 00032 4212 FMUL XSCALE /SCALE IT 00033 2213 FSUB XZERO /SUBTRACT LOWER LIMIT 00034 0010 ALN 0 00035 0006 STARTD 00036 6400 FSTA XYPAIR,0 /XYPAIR+1,+2 CONTAINS THE POINT 00037 0062 00040 0217 FLDA XYPAIR /STORE THIS DOUBLE WORD INTO PLOT BUFFER 00041 6655 FSTA% ADRBUF,5 00042 0115 ADDX 1,5 /TROUBLE IS, WE WANT POST INCREMENT 00043 0001 00044 0005 STARTF 00045 2110 JXN PLOTRL,1+ /LOOP IF MORE POINTS 00046 0024 00047 1030 JA PLTRET 00050 0041 RALF V50A 8-APR-92 PAGE 4 SECT CLRPLT BASE PLTBAS 00000 1120 JSA SETUP 00001 0140 00002 0104 LDX 0,4 /DISABLE DISPLAY LOOP 00003 0000 00004 0101 LDX 1,1 00005 0001 00006 0610 FLDA% PLTBAS,1 /GET ARG POINTERS 00007 6203 FSTA N 00010 0710 FLDA% PLTBAS,1+ 00011 6205 FSTA ADRBUF 00012 6400 FSTA BUFADR+1 00013 0106 00014 0005 STARTF 00015 0603 FLDA% N /SIZE OF BUFFER 00016 4216 FMUL L1P5 /NUMBER OF 2 WORD PAIRS 00017 0003 FNEG 00020 0023 ATX 3 /INTO SOME CHOICE XRS 00021 4000 TRAP4 PUTONQ /PUTISPLY ONTO IDLE Q 00022 0062 00023 1030 CLRRET, JA PLTRET 00024 0041 RALF V50A 8-APR-92 PAGE 5 SECT SCALE /SET SCALING FACTORS BASE PLTBAS 00000 1120 JSA SETUP 00001 0140 00002 0101 LDX 1,1 00003 0001 00004 0610 FLDA% PLTBAS,1 /GET ARGS 00005 6201 FSTA XLO 00006 0710 FLDA% PLTBAS,1+ 00007 6202 FSTA YLO 00010 0710 FLDA% PLTBAS,1+ 00011 6203 FSTA XHI 00012 0710 FLDA% PLTBAS,1+ 00013 6204 FSTA YHI 00014 0005 STARTF 00015 0603 FLDA% XHI /COMPUTE X RANGE 00016 2601 FSUB% XLO 00017 6203 FSTA XHI 00020 0604 FLDA% YHI /NOW Y RANGE 00021 2602 FSUB% YLO 00022 6204 FSTA YHI 00023 0214 FLDA RANGE /COMPUTE XSCALE 00024 3203 FDIV XHI 00025 6212 FSTA XSCALE 00026 0214 FLDA RANGE /NOW Y SCALE 00027 3204 FDIV YHI 00030 6206 FSTA YSCALE 00031 0601 FLDA% XLO /COMPUTE XZERO 00032 4214 FMUL RANGE 00033 3203 FDIV XHI IFSW 8 < FADD BASE> 00034 6213 FSTA XZERO 00035 0602 FLDA% YLO /NOW YZERO 00036 4214 FMUL RANGE 00037 3204 FDIV YHI 00040 1215 FADD BASE 00041 6207 FSTA YZERO 00042 1030 SCLRET, JA PLTRET 00043 0041 RALF V50A 8-APR-92 PAGE 5-1 NO ERRORS 50 SYMBOLS, NO ABS REFS # C 00000 #DISP 00020 #MAIN S 00000 #PAGE0 Z 00121 #PLOT 00065 ADRBUF 00024 BASE 00054 BUFADR 00105 BUMPF 00054 CLRPLT S 00025 CLRRET 00023 DBFLD 00025 DIS 00140 DISPLY 00020 DSPLUP 00032 ENDDL 00050 FLDDB 00060 FLD0 00115 LINC 06141 L1P5 00057 L10 00117 L7 00116 N 00016 NAME 00002 NPTS 00120 ONQB X 00000 ONQBX 00103 PDP 00002 PLOOP 00113 PLOT S 00156 PLOTR S 00051 PLOTRL 00024 PLTBAS 00005 PLTLUP 00105 PLTRET 00041 PLTXR 00107 PUTONQ 00062 RANGE 00051 SCALE S 00044 SCLRET 00042 SETUP 00140 X 00010 XHI 00016 XLO 00010 XSCALE 00043 XYPAIR 00062 XZERO 00046 Y 00013 YHI 00021 YLO 00013 YSCALE 00027 YZERO 00032