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


RALF V50A    8-APR-92    PAGE 1

            /READ BITS AND RELAY ROUTINES
            /
            /
            / VERSION 50A 29-MAY-80 WVDM
            /
            /
            /THE FOLLOWING IS A SET OF 8 MODE (RALF TYPE)
            /ROUTINES THAT ENABLE PDP 12(8) HARDWARE OPTIONS
            /THESE ROUTINES ARE CALLABLE AT THE FORTRAN LEVEL
            /THE FOLLOWING OPTIONS ARE SUPPORTED:
            /
            /       1 READ A BIT IN THE RIGHT SWITCHES
            /       2 READ A BIT IN THE LEFT SWITCHES
            /       3 READ A SENSE SWITCH
            /       4 READ AN EXTERNAL LEVEL
            /       5 OPEN OR CLOSE A RELAY
            /
            /IF THE REQUESTED BIT OR SWITCH IS SET THE
            /SUBROUTINE RETURNS WITH THE CALLERS ARG SET TO
            /A 1,OTHERWISE IT IS SET TO A 0
            /
            /
RALF V50A    8-APR-92    PAGE 2

            
                    SECT8 RSW
                    INDEX P17
                    BASE 0
00000 1120          JSA SETUP       /CHECK ONE RSW BIT
00001 0062  
00002 4000          TRAP4 DORITE    /CALL 8 MODE ROUT USER
00003 0076  
                                    /ARG IS IN FPP XR3
00004 0006  CONT,   STARTD          /ANSWER IS IN XR3
00005 0620          FLDA% 0,XR2     /GET PTR TO CALLER ANS
00006 6201          FSTA 3
00007 0005          STARTF
00010 0033          XTA XR3
00011 6601          FSTA% 3         /GIVE ANS TO CALLER
00012 0210  GOBAK,  FLDA 30         /RTN TO CALLER
00013 0007          JAC
            /
                    ENTRY LSW
00014 1120  LSW,    JSA SETUP       /READ 1 LSW BIT
00015 0062  
00016 4000          TRAP4 DOLEFT    /CALL 8MODE ROUT
00017 0107  
00020 1030          JA CONT
00021 0004  
            /
                    ENTRY SSW
00022 0006  SSW,    STARTD          /READ A SENSE SWITCH
00023 0400          FLDA ANSNSI
00024 0176  
00025 1030          JA ESSW
00026 0045  
            /
                    ENTRY ROPEN
00027 0006  ROPEN,  STARTD          /OPEN A RELAY
00030 0400          FLDA ABCLI
00031 0166  
00032 6400  ERCLOS, FSTA MASK       /PLANT A BCLI OR BSEI IN
00033 0146  
                                    /8 MODE ROUTINE
00034 1120          JSA SETUP
00035 0062  
00036 4000          TRAP4 RELAY
00037 0137  
00040 0210          FLDA 30
00041 0007          JAC
            /
                    ENTRY EXTLVL
00042 0006  EXTLVL, STARTD          /READ AN EXTERNAL LEVEL
00043 0400          FLDA ANSXL
00044 0174  
00045 6400  ESSW,   FSTA LSKP       /PLANT SXLI OR SNS IN
00046 0130  
00047 1120          JSA SETUP       /8 MODE ROUTINE
00050 0062  
00051 4000          TRAP4 DOSXL
RALF V50A    8-APR-92    PAGE 2-1

00052 0120  
00053 1030          JA CONT
00054 0004  
            /
                    ENTRY RCLOSE
00055 0006  RCLOSE, STARTD          /CLOSE A RELAY
00056 0400          FLDA ABSEI
00057 0167  
00060 1030          JA ERCLOS
00061 0032  
            /
00062 0000  SETUP,  0;0             /GET ARGS AND SETUP RTN
00063 0000  
00064 0006          STARTD
00065 1100          SETX P17
00066 0170  
00067 0610          FLDA% 0,XR1     /GET PTR TO 1ST USER ARG
00070 6201          FSTA 3
00071 0005          STARTF
00072 0601          FLDA% 3         /USER ARG TO FAC
00073 0023          ATX XR3         /PUT IN XR FOR 8 MODE
00074 1030          JA SETUP
00075 0062  
RALF V50A    8-APR-92    PAGE 3

            
00076 0000  DORITE, 0               /READ RIGHT SWITCHES
00077 7604          LAS
00100 3346          DCA MASK
00101 4356          JMS SETBIT      /GET REQUESTED BIT
00102 0346          AND MASK        /MASK RSW
00103 7640          SZA CLA         /IF BIT IS SET,SET XR3=1
00104 2373          ISZ XR3
00105 6203          CIF CDF         /RTN TO RTS
00106 5676          JMP% DORITE
            /
00107 0000  DOLEFT, 0               /READ LEFT SWITCHES
00110 1307          TAD DOLEFT
00111 3276          DCA DORITE
00112 6002          IOF
00113 6141          6141            /LINC
00114 0517          517             /LSW
00115 0002          2               /PDP
00116 6001          ION
00117 5300          JMP DORITE+2
            /
00120 0000  DOSXL,  0               /READ SENSE SWITCH OR EXTERNAL LEVEL
00121 1373          TAD XR3         /=SSW OR LVL TO DO
00122 0370          AND P17
00123 1330          TAD LSKP
00124 3330          DCA LSKP
00125 7120          CLL CML         /SET LNK=COND MET
00126 6002          IOF
00127 6141          6141
00130 0000  LSKP,   0               /=SNS I N OR SXL N
00131 0261          261             /IF SKP FAILS THEN COND
                                    /IS MET SO ROTATE LNK
                                    /INTO AC(11) (261=ROL I 1)
00132 0002          2               /PDP
00133 6001          ION
00134 3373          DCA XR3         /SAVE ANSWER
00135 6203          CIF CDF
00136 5720          JMP% DOSXL      /RTN TO RTS
            /
00137 0000  RELAY,  0               /OPEN A RELAY
00140 1204          TAD CONT        /=6
00141 4356          JMS SETBIT      /GO SET RELAY BIT
00142 3347          DCA MASK+1
00143 6002          IOF
00144 6141          6141
00145 0015          15              /GET RELAYS
00146 0000  MASK,   0               /BCL I OR BSE I
00147 0000          0               /SET OR CLR 1 RELAY BIT
00150 0014          14              /ATR PUT RELAYS BACK
00151 0002          2
00152 6001          ION
00153 7200          CLA
00154 6203          CIF CDF
00155 5737          JMP% RELAY
            /
00156 0000  SETBIT, 0               /COME HERE TO POSITION
RALF V50A    8-APR-92    PAGE 3-1

00157 1373          TAD XR3         /BIT IN AC ACCORDING TO
                                    /C(AC)+XR3
00160 7160          CMA CLL CML     /ROTATE BIT INTO POSITION
00161 3373          DCA XR3         /XR3 MUST=0 UPON EXIT
00162 7010          RAR             /ROTATE LINK UNTIL
00163 2373          ISZ XR3         /XR3=0
00164 5362          JMP .-2
00165 5756          JMP% SETBIT     /RTN WITH AC SET
            /
00166 1560  ABCLI,  1560            /BCL I
00167 1620  ABSEI,  1620            /BSE I
00170 0017  P17,    17              /FPP XR0
00171 0001  XR1,    1
00172 0002  XR2,    2
00173 0000  XR3,    0
00174 0400  ANSXL,  400             /SXL
00175 0261          261             /ROL I 1
00176 0460  ANSNSI, 460             /SNS I
00177 0261          261
RALF V50A    8-APR-92    PAGE 4

            
RALF V50A    8-APR-92    PAGE 4-1

NO ERRORS 
26 SYMBOLS, NO ABS REFS 

 #      C 00000   #MAIN  S 00000   ABCLI    00166   ABSEI    00167  
 ANSNSI   00176   ANSXL    00174   CONT     00004   DOLEFT   00107  
 DORITE   00076   DOSXL    00120   ERCLOS   00032   ESSW     00045  
 EXTLVL   00042   GOBAK    00012   LSKP     00130   LSW      00014  
 MASK     00146   P17      00170   RCLOSE   00055   RELAY    00137  
 ROPEN    00027   RSW    8 00200   SETBIT   00156   SETUP    00062  
 SSW      00022   XR1      00171   XR2      00172   XR3      00173