Commit | Line | Data |
---|---|---|
81e70d48 PH |
1 | / |
2 | / VERSION 5A 4-26-77 MH | |
3 | / | |
4 | /THE FOLLOWING IS A SET OF 8 MODE (RALF TYPE) | |
5 | /ROUTINES THAT ENABLE PDP 12(8) HARDWARE OPTIONS | |
6 | /THESE ROUTINES ARE CALLABLE AT THE FORTRAN LEVEL | |
7 | /THE FOLLOWING OPTIONS ARE SUPPORTED: | |
8 | / | |
9 | / 1 READ A BIT IN THE RIGHT SWITCHES | |
10 | / 2 READ A BIT IN THE LEFT SWITCHES | |
11 | / 3 READ A SENSE SWITCH | |
12 | / 4 READ AN EXTERNAL LEVEL | |
13 | / 5 OPEN OR CLOSE A RELAY | |
14 | / | |
15 | /IF THE REQUESTED BIT OR SWITCH IS SET THE | |
16 | /SUBROUTINE RETURNS WITH THE CALLERS ARG SET TO | |
17 | /A 1,OTHERWISE IT IS SET TO A 0 | |
18 | / | |
19 | / | |
20 | \f SECT8 RSW | |
21 | INDEX P17 | |
22 | BASE 0 | |
23 | JSA SETUP /CHECK ONE RSW BIT | |
24 | TRAP4 DORITE /CALL 8 MODE ROUT USER | |
25 | /ARG IS IN FPP XR3 | |
26 | CONT, STARTD /ANSWER IS IN XR3 | |
27 | FLDA% 0,XR2 /GET PTR TO CALLER ANS | |
28 | FSTA 3 | |
29 | STARTF | |
30 | XTA XR3 | |
31 | FSTA% 3 /GIVE ANS TO CALLER | |
32 | GOBAK, FLDA 30 /RTN TO CALLER | |
33 | JAC | |
34 | ENTRY LSW | |
35 | LSW, JSA SETUP /READ 1 LSW BIT | |
36 | TRAP4 DOLEFT /CALL 8MODE ROUT | |
37 | JA CONT | |
38 | ENTRY SSW | |
39 | SSW, STARTD /READ A SENSE SWITCH | |
40 | FLDA ANSNSI | |
41 | JA ESSW | |
42 | ENTRY ROPEN | |
43 | ROPEN, STARTD /OPEN A RELAY | |
44 | FLDA ABCLI | |
45 | ERCLOS, FSTA MASK /PLANT A BCLI OR BSEI IN | |
46 | /8 MODE ROUTINE | |
47 | JSA SETUP | |
48 | TRAP4 RELAY | |
49 | FLDA 30 | |
50 | JAC | |
51 | ENTRY EXTLVL | |
52 | EXTLVL, STARTD /READ AN EXTERNAL LEVEL | |
53 | FLDA ANSXL | |
54 | ESSW, FSTA LSKP /PLANT SXLI OR SNS IN | |
55 | JSA SETUP /8 MODE ROUTINE | |
56 | TRAP4 DOSXL | |
57 | JA CONT | |
58 | ENTRY RCLOSE | |
59 | RCLOSE, STARTD /CLOSE A RELAY | |
60 | FLDA ABSEI | |
61 | JA ERCLOS | |
62 | SETUP, 0;0 /GET ARGS AND SETUP RTN | |
63 | STARTD | |
64 | SETX P17 | |
65 | FLDA% 0,XR1 /GET PTR TO 1ST USER ARG | |
66 | FSTA 3 | |
67 | STARTF | |
68 | FLDA% 3 /USER ARG TO FAC | |
69 | ATX XR3 /PUT IN XR FOR 8 MODE | |
70 | JA SETUP | |
71 | \fDORITE, 0 /READ RIGHT SWITCHES | |
72 | LAS | |
73 | DCA MASK | |
74 | JMS SETBIT /GET REQUESTED BIT | |
75 | AND MASK /MASK RSW | |
76 | SZA CLA /IF BIT IS SET,SET XR3=1 | |
77 | ISZ XR3 | |
78 | CIF CDF /RTN TO RTS | |
79 | JMP% DORITE | |
80 | DOLEFT, 0 /READ LEFT SWITCHES | |
81 | TAD DOLEFT | |
82 | DCA DORITE | |
83 | IOF | |
84 | 6141 /LINC | |
85 | 517 /LSW | |
86 | 2 /PDP | |
87 | ION | |
88 | JMP DORITE+2 | |
89 | DOSXL, 0 /READ SENSE SWITCH | |
90 | /OR EXTERNAL LEVEL | |
91 | TAD XR3 /=SSW OR LVL TO DO | |
92 | AND P17 | |
93 | TAD LSKP | |
94 | DCA LSKP | |
95 | CLL CML /SET LNK=COND MET | |
96 | IOF | |
97 | 6141 | |
98 | LSKP, 0 /=SNS I N OR SXL N | |
99 | 261 /IF SKP FAILS THEN COND | |
100 | /IS MET SO ROTATE LNK | |
101 | /INTO AC(11) (261=ROL I 1) | |
102 | 2 /PDP | |
103 | ION | |
104 | DCA XR3 /SAVE ANSWER | |
105 | CIF CDF | |
106 | JMP% DOSXL /RTN TO RTS | |
107 | RELAY, 0 /OPEN A RELAY | |
108 | TAD CONT /=6 | |
109 | JMS SETBIT /GO SET RELAY BIT | |
110 | DCA MASK+1 | |
111 | IOF | |
112 | 6141 | |
113 | 15 /GET RELAYS | |
114 | MASK, 0 /BCL I OR BSE I | |
115 | 0 /SET OR CLR 1 RELAY BIT | |
116 | 14 /ATR PUT RELAYS BACK | |
117 | 2 | |
118 | ION | |
119 | CLA | |
120 | CIF CDF | |
121 | JMP% RELAY | |
122 | SETBIT, 0 /COME HERE TO POSITION | |
123 | TAD XR3 /BIT IN AC ACCORDING TO | |
124 | /C(AC)+XR3 | |
125 | CMA CLL CML /ROTATE BIT INTO POSITION | |
126 | DCA XR3 /XR3 MUST=0 UPON EXIT | |
127 | RAR /ROTATE LINK UNTIL | |
128 | ISZ XR3 /XR3=0 | |
129 | JMP .-2 | |
130 | JMP% SETBIT /RTN WITH AC SET | |
131 | ABCLI, 1560 /BCL I | |
132 | ABSEI, 1620 /BSE I | |
133 | P17, 17 /FPP XR0 | |
134 | XR1, 1 | |
135 | XR2, 2 | |
136 | XR3, 0 | |
137 | ANSXL, 400 /SXL | |
138 | 261 /ROL I 1 | |
139 | ANSNSI, 460 /SNS I | |
140 | 261 | |
141 | \f |