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