File: REALTM.LS of Disk: V50/Source/Source-Listing-RALF-1
(Source file text) 


RALF V50A    8-APR-92    PAGE 1

            / A-D CLOCKED, BUFFERED SAMPLING ROUTINE
            /
            /
            / VERSION 50A 29-MAY-80 WVDM
            /
            /
                    ADSK=6534
                    ADRB=6533
                    ADST=6532
                    ADLM=6531
                    ADLE=6536
                    ADCL=6530
                    CLZE=6130
                    ESF=4
                    LINC=6141
                    PDP=2
                    SAM=100
                    CLEN=6134
                    FIELD1  SAMPLE
00000 0000          0                       /INTERRUPT TIME AD SAMPLER
                    IFNSW   8 <
00001 4261          JMS     LNCSAM          /INITIATE SAMPLE
00002 2263  NEXTCH, ISZ     SAMINS          /UPDATE SAM INST FOR NEXT CHAN
00003 4261          JMS     LNCSAM          /SAM AND INITIATE NEXT CHANNEL
                    >
00004 1342          TAD     SAMPTR          /SAVE THE OLD SAM BUFFER POINTER
00005 3351          DCA     OLDPTR
00006 1225          TAD     BUFFLD          /AND THE FIELD
00007 3240          DCA     OLDFLD
00010 2342          ISZ     SAMPTR          /BUMP BUFFER POINTER
00011 5215          JMP     FLDOK           /FIELD IS OK
00012 1225          TAD     BUFFLD          /BUMP FIELD
00013 1341          TAD     L10
00014 3225          DCA     BUFFLD
00015 2350  FLDOK,  ISZ     SAMCNT          /BUMP BUFFER COUNT
00016 5225          JMP     BUFFLD          /NOT END OF BUFFER
00017 1344          TAD     ARRAY+2         /RESET POINTER TO START OF BUFFER
00020 3342          DCA     SAMPTR
00021 1361          TAD     FLDBUF          /RESET BUFFER FIELD
00022 3225          DCA     BUFFLD
00023 1347          TAD     BUFSIZ          /RESET COUNT
00024 3350          DCA     SAMCNT
00025 7402  BUFFLD, HLT                     /GET FIELD OF NEW ADB STOP CODE
00026 1742          TAD%    SAMPTR          /IS THIS THE SAM STOP CODE ?
00027 1340          TAD     M3776           /(ILLEGAL AS A SAMPLE)
00030 7640          SZA CLA
00031 5236          JMP     NOERR
00032 2366          ISZ     TOOFAS          /SET TOO FAST SWITCH
00033 6211  SAMPLD, CDF     10
00034 3762          DCA%    XCLINT+1        /STOP SAMPLING
00035 5600          JMP%    SAMPLE
            /
00036 7150  NOERR,  CLL CMA RAR             /SET ADB STOP CODE
00037 3742          DCA%    SAMPTR
00040 7402  OLDFLD, HLT                     /GET TO FIELD OF SAMPLE
                    IFSW    8 <
RALF V50A    8-APR-92    PAGE 1-1

                    ADRB                    /READ SAMPLE
                    >
                    IFNSW   8 <
00041 1353          TAD     SAMTMP          /GET PREVIOUSLY READ SAMPLE
                    >
00042 3751          DCA%    OLDPTR          /INTO BUFFER
00043 2360          ISZ     NPOINT+2        /ANY MORE SAMPLES
00044 7410          SKP                     /YES
00045 2357          ISZ     NPOINT+1        /MORE THAN 7777 ?
00046 7410          SKP                     /YES
00047 5233          JMP     SAMPLD          /NO
00050 2354          ISZ     NCHANL+1        /ANY MORE CHANNELS TO SAMPLE ?
00051 5202          JMP     NEXTCH          /YES GO START SAMPLING
00052 1352          TAD     CSTART+2        /STARTING CHANNEL
                    IFSW    8 <
                    ADLM
                    >
                    IFNSW   8 <
00053 3263          DCA     SAMINS
00054 4261          JMS     LNCSAM          /SET CHANNEL TO START
                                            /IN CASE CLOCK INITIATED
                    >
00055 1355          TAD     NCHANL+2        /NUMBER OF CHANNELS
00056 3354          DCA     NCHANL+1        /INTO COUNTER
00057 6211          CDF     10
00060 5600          JMP%    SAMPLE
            /
                    IFSW    8 <
            NEXTCH, ADST                    /SAMPLE NEXT CHANNEL
                    ADSK                    /WAIT FOR SAMPLE
                    JMP     .-1
                    JMP     SAMPLE+1
                    >
            /
                    IFNSW   8 <
00061 0000  LNCSAM, 0                       /LINC SAM SUBROUTINE
00062 6141          LINC
00063 0100  SAMINS, SAM     0               /SAMPLE AND SELECT NEXT CHANNEL
00064 0002          PDP
00065 3353          DCA     SAMTMP          /SAVE IT
00066 5661          JMP%    LNCSAM
                    >
            /
00067 0000  ADSETU, 0                       /SET UP ROUTINE
00070 3366          DCA     TOOFAS          /CLEAR TOO FAST SWITCH
00071 1343          TAD     ARRAY+1         /GET FIELD OF BUFFER
00072 0376          AND     L7
00073 7106          CLL RTL
00074 7004          RAL
00075 1375          TAD     CDF0
00076 3361          DCA     FLDBUF
00077 1361          TAD     FLDBUF
00100 3225          DCA     BUFFLD          /SAVE IN SAMPLER CODE
00101 1344          TAD     ARRAY+2         /SET SAMPLER BUFFER POINTER
00102 7001          IAC
00103 3342          DCA     SAMPTR
RALF V50A    8-APR-92    PAGE 1-2

00104 1347          TAD     LENGTH+2        /SIZE OF BUFFER
00105 7104          CLL RAL
00106 1347          TAD     LENGTH+2        /TIMES THREE
00107 3347          DCA     BUFSIZ          /SAVE IT
00110 1347          TAD     BUFSIZ          /SET INITIAL COUNT
00111 7001          IAC
00112 3350          DCA     SAMCNT
00113 1355          TAD     NCHANL+2        /SET CHANNEL COUNT
00114 3354          DCA     NCHANL+1
                    IFSW    8 <
                    CLA CMA                 /STOP THE CLOCK
                    CLZE
                    CLA
                    ADCL                    /CLEAR AD LOGIC JUST IN CASE
                    TAD     L300            /SET AD ENABLE BITS
                    ADLE
                    TAD     CSTART+2        /STARTING CHANNEL NUMBER
                    ADLM
                    >
                    IFNSW   8 <
00115 6134          CLEN                    /STOP THE CLOCK
00116 1352          TAD     CSTART+2        /SET UP INITIAL SAM INSTRUCTION
00117 1363          TAD     L100
00120 3352          DCA     CSTART+2
00121 1352          TAD     CSTART+2
00122 3331          DCA     SAMST           /STARTING SAM
00123 1331          TAD     SAMST           /ALSO INTERRUPT TIME SAM
00124 3263          DCA     SAMINS
00125 1363          TAD     L100            /SET FAST SAM BIT
00126 6002          IOF                     /TURN OFF INTERRUPTS IN LINC MODE
00127 6141          LINC                    /ENTER LINC MODE
00130 0004          ESF
00131 0100  SAMST,  SAM     0               /SET INITIAL SAM CHANNEL
00132 0002          PDP
00133 6001          ION
00134 7200          CLA
                    >
00135 6203          CIF CDF
00136 5667          JMP%    ADSETU
            /
00137 0040  BASEX,  FNOP
00140 4002  M3776,  -3776
00141 0010  L10,    10
            SAMPTR,
00142 0000  ARRAY,  0;0;0
00143 0000  
00144 0000  
00145 0000  LENGTH, 0;0
00146 0000  
00147 0000  BUFSIZ, 0
            SAMCNT,
00150 0000  CSTART, 0
00151 0000  OLDPTR, 0;0
00152 0000  
            SAMTMP,
00153 0000  NCHANL, 0;0;0
RALF V50A    8-APR-92    PAGE 1-3

00154 0000  
00155 0000  
00156 0000  NPOINT, 0;0;0
00157 0000  
00160 0000  
            FLDBUF,
00161 0000  XCLINT, ADDR    #CLINT
00162 0000  
                    IFSW    8 <
            L300,   300
                    >
                    IFNSW   8 <
00163 0100  L100,   100
                    >
00164 0000  SAMXR,  0;0
00165 0000  
00166 0000  TOOFAS, 0
            /
                    ORG     10*3+BASEX
00167 0000          0
00170 1030          JA      NAME+3
00171 0113  
00172 0000          0
00173 1030  SAMRTN, JA      .
00174 0173  
            /
00175 6201  CDF0,   CDF
00176 0007  L7,     7
RALF V50A    8-APR-92    PAGE 2

            
                    SECT    REALTM
                    BASE    0
00000 0006          STARTD
00001 0210          FLDA    30              /GET RETURN ADDR
00002 6400          FSTA    SAMRTN
00003 0173  
00004 0200          FLDA    0               /GET ARG POINTER
                    BASE    BASEX
00005 1110          SETB    BASEX
00006 0137  
00007 1100          SETX    SAMXR
00010 0164  
00011 6205          FSTA    NPOINT          /SAVE ARG POINTER
00012 0002          FCLA
                    EXTERN  #CLINT
00013 6400          FSTA    #CLINT          /STOP ANY SAMPLING NOW!
00014 0000  
00015 0101          LDX     1,1
00016 0001  
00017 0615          FLDA%   NPOINT,1        /GET BUFFER ADDRESS
00020 6201          FSTA    ARRAY
00021 0715          FLDA%   NPOINT,1+       /GET ADDR OF LENGTH
00022 6202          FSTA    LENGTH
00023 0715          FLDA%   NPOINT,1+       /ADDR OFHANNEL START
00024 6203          FSTA    CSTART
00025 0715          FLDA%   NPOINT,1+       /ADDR OF # CHANNELS
00026 6204          FSTA    NCHANL
00027 0715          FLDA%   NPOINT,1+       /ADDR OF NUMBER OF POINTS
00030 6205          FSTA    NPOINT
00031 0201          FLDA    ARRAY           /CREATE SETX INS
00032 1400          FADD    STXMJA
00033 0120  
00034 6400          FSTA    BUFSTX
00035 0235  
00036 6400          FSTA    ADBSTX          /AND SAVE IT IN TWO PLACES
00037 0163  
00040 0005          STARTF
00041 0602          FLDA%   LENGTH          /INTEGERIZE AND NEGATE SOME ARGS
00042 0003          FNEG
00043 0010          ALN     0
00044 6202          FSTA    LENGTH
00045 0004          FNORM
00046 0021          ATX     1               /SET BUFFER COUNT
00047 0603          FLDA%   CSTART          /GET STARTING CHANNEL
00050 0010          ALN     0
00051 6203          FSTA    CSTART
00052 0604          FLDA%   NCHANL
00053 0003          FNEG
00054 0010          ALN     0
00055 6204          FSTA    NCHANL
00056 0605          FLDA%   NPOINT
00057 0003          FNEG
00060 0010          ALN     0
00061 6205          FSTA    NPOINT
00062 0102          LDX     -1,2            /SET UP FOR BUFFER CLEAR
RALF V50A    8-APR-92    PAGE 2-1

00063 7777  
00064 0002          FCLA
00065 6721  CLRBUF, FSTA%   ARRAY,2+
00066 2110          JXN     CLRBUF,1+
00067 0065  
00070 4000          TRAP4   ADSETU          /SET UP AD STUFF
00071 0067  
00072 0202          FLDA    LENGTH          /RE-GET BUFFER SIZE
00073 0004          FNORM
00074 0021          ATX     1               /BUT NOW ITS TIMES THREE
00075 0400          FLDA    STPCOD          /STORE STOP CODES
00076 0115  
00077 6601          FSTA%   ARRAY           /INTO FIRST 3 WORD
00100 0006          STARTD
00101 0400          FLDA    SAMADR          /SET UP SAMPLER INTERRUPT HANDLER
00102 0113  
00103 6400          FSTA    #CLINT
00104 0000  
00105 0005          STARTF
00106 1030          JA      SAMRTN          /RETURN
00107 0173  
            /
00110 2224  NAME,   TEXT    +RTMADB+
00111 1501  
00112 0402  
00113 0000  SAMADR, ADDR    SAMPLE
00114 0000  
00115 3776  STPCOD, 3776;3777;0
00116 3777  
00117 0000  
00120 0050  STXMJA, 1100-1030;0
00121 0000  
00122 0013  L2047,  F       2047.
00123 3777  
00124 0000  
00125 0011  L511,   F       511.
00126 3774  
00127 0000  
RALF V50A    8-APR-92    PAGE 3

            
                    ENTRY   ADB
            ADB,    BASE    0               /FETCH SAMPLE FROM BUFFER
00130 0006          STARTD
00131 0210          FLDA    30              /SAVE REUTRN
00132 6400          FSTA    SAMRTN
00133 0173  
00134 1110          SETB    BASEX
00135 0137  
00136 1100          SETX    SAMXR
00137 0164  
                    BASE    BASEX
00140 2020          JXN     SPEEDK,2        /CLOCK TOO FAST
00141 0203  
00142 0400          FLDA    ADBSTX          /SAVE OLD SETX
00143 0163  
00144 6400          FSTA    OLDSTX
00145 0175  
00146 1400          FADD    L1              /ADD ONE TO IT
00147 0237  
00150 6400          FSTA    ADBSTX          /AND SAVE IT BACK
00151 0163  
00152 2110          JXN     NORINQ,1+       /END OF BUFFER ?
00153 0162  
00154 0400          FLDA    BUFSTX          /YES, RESTART
00155 0235  
00156 6400          FSTA    ADBSTX
00157 0163  
00160 0202          FLDA    LENGTH          /RESET COUNT
00161 0021          ATX     1
00162 0005  NORINQ, STARTF
00163 1100' ADBSTX, SETX    0               /SET XR0 TO NEXT SAMPLE
00164 0000  
00165 0030  WAIT,   XTA     0               /GET THE NEXT SAMPLE
00166 2400          FSUB    L2047           /IS IT THE STOP CODE
00167 0122  
00170 1000          JEQ     WAIT            /YES
00171 0165  
00172 0030          XTA     0               /NO, FETCH THE SAMPLE
00173 0100          LDX     3776,0          /SET SAMPLE STOP CODE
00174 3776  
00175 1100' OLDSTX, SETX    0               /SET XR0 TO PREVIOUS STOP CODE
00176 0000  
00177 0100          LDX     0,0             /NOW ZERO IT
00200 0000  
00201 1030          JA      SAMRTN          /RETURN
00202 0173  
            /
            SPEEDK, EXTERN  #WRITO          /USE FORTRAN I/O
00203 3000          TRAP3   #WRITO          /TO WRITE A MESSAGE
00204 0000  
00205 1030          JA      TTYUNT          /ON THE TTY
00206 0217  
00207 1030          JA      MESSAG
00210 0222  
                    EXTERN  #RENDO
RALF V50A    8-APR-92    PAGE 3-1

00211 3000          TRAP3   #RENDO          /CLOSE THE RECORD
00212 0000  
00213 0102          LDX     0,2             /KILL TOO FAST SWITCH
00214 0000  
00215 1030          JA      SAMRTN          /RETURN FROM ADB
00216 0173  
            /
00217 0000  TTYUNT, F       0.
00220 0000  
00221 0000  
00222 5042  MESSAG, TEXT    '(" SAMPLING TOO FAST")'
00223 4023  
00224 0115  
00225 2014  
00226 1116  
00227 0740  
00230 2417  
00231 1740  
00232 0601  
00233 2324  
00234 4251  
00235 1100' BUFSTX, SETX    0
00236 0000  
00237 0000  L1,     0;1
00240 0001  
RALF V50A    8-APR-92    PAGE 3-2

NO ERRORS 
65 SYMBOLS, 3 ABS REFS 

 #      C 00000   #CLINT X 00000   #MAIN  S 00000   #RENDO X 00000  
 #WRITO X 00000   ADB      00130   ADBSTX   00163   ADCL     06530  
 ADLE     06536   ADLM     06531   ADRB     06533   ADSETU   00067  
 ADSK     06534   ADST     06532   ARRAY    00142   BASEX    00137  
 BUFFLD   00025   BUFSIZ   00147   BUFSTX   00235   CDF0     00175  
 CLEN     06134   CLRBUF   00065   CLZE     06130   CSTART   00150  
 ESF      00004   FLDBUF   00161   FLDOK    00015   LENGTH   00145  
 LINC     06141   LNCSAM   00061   L1       00237   L10      00141  
 L100     00163   L2047    00122   L511     00125   L7       00176  
 MESSAG   00222   M3776    00140   NAME     00110   NCHANL   00153  
 NEXTCH   00002   NOERR    00036   NORINQ   00162   NPOINT   00156  
 OLDFLD   00040   OLDPTR   00151   OLDSTX   00175   PDP      00002  
 REALTM S 00241   SAM      00100   SAMADR   00113   SAMCNT   00150  
 SAMINS   00063   SAMPLD   00033   SAMPLE F 00177   SAMPTR   00142  
 SAMRTN   00173   SAMST    00131   SAMTMP   00153   SAMXR    00164  
 SPEEDK   00203   STPCOD   00115   STXMJA   00120   TOOFAS   00166  
 TTYUNT   00217   WAIT     00165   XCLINT   00161