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