Commit | Line | Data |
---|---|---|
81e70d48 PH |
1 | /\r |
2 | / H P B O O L . R A \r | |
3 | /\r | |
4 | / F4 INTEGER FUNCTIONS IOR (A,B)\r | |
5 | / IAND (A,B)\r | |
6 | / INOT (A)\r | |
7 | / IBOOL (A)\r | |
8 | / F4 REAL FUNCTION BOOL (A)\r | |
9 | / F4 LOGICAL FUNCTION EQL (A,B)\r | |
10 | /\r | |
11 | / IOR RETURNS THE 36 BIT BITWISE OR BETWEEN A AND B\r | |
12 | / IAND "" " " " " " AND "" A " B\r | |
13 | / INOT "" " " " " " COMPLEMENT OF A\r | |
14 | / IBOOL "" " " " UNCHANGED PARAMETER A (FOR TYPELESS ASSIGNMENT)\r | |
15 | / BOOL "" " " " " " " " " " " " " "\r | |
16 | / EQL "" A .TRUE. IF ALL 36 BITS OF A MATCH THE 36 BITS OF B\r | |
17 | /\r | |
18 | / THE INPUT PARAMETERS A AND B REMAIN UNCHANGED.\r | |
19 | /\r | |
20 | / HARDWARE: LAB8/E, SOFT/HARD FPP12\r | |
21 | /\r | |
22 | / VER 0.0 21-AUG-80 HA\r | |
23 | /\r | |
24 | /\r | |
25 | SECT #BOOL\r | |
26 | BASE 0\r | |
27 | ENTRY IOR / I=IOR(A,B) 36 BIT LOGICAL OR\r | |
28 | ENTRY IAND / I=IAND(A,B)\r | |
29 | ENTRY INOT / I=INOT(A)\r | |
30 | ENTRY BOOL / TYPELESS ASSIGNMENT TO REAL\r | |
31 | ENTRY IBOOL / TYPLESS ASSIGNMENT TO INTEGER\r | |
32 | ENTRY EQL / LOGICAL BITWISE TEST A WITH B\r | |
33 | /\r | |
34 | /\r | |
35 | INOT, STARTD\r | |
36 | FLDA BINS1 / INSERT THE CORRECT INSTRUCTION IN PROCEDURE BODY\r | |
37 | JA CON\r | |
38 | BOOL,\r | |
39 | IBOOL, STARTD\r | |
40 | FLDA BINS2\r | |
41 | JA CON\r | |
42 | CON,\r | |
43 | FSTA BINS / INSERT INSTRUCTION INTO PROC. BODY\r | |
44 | FLDA 3*10 / GET RETURN ADR.\r | |
45 | FSTA GOBAK\r | |
46 | FLDA 0 / GET FIRST PARAMETER\r | |
47 | FADD TWO\r | |
48 | FSTA 3\r | |
49 | FLDA% 3 / ADR. OF FIRST PARAMETER --> FAC\r | |
50 | FSTA 3\r | |
51 | STARTF\r | |
52 | FLDA% 3 / FIRST PARAMETER --> FAC\r | |
53 | BINS, .-.\r | |
54 | .-.\r | |
55 | TRAP4 INOT8\r | |
56 | FLDA ARG1 / RESULT --> FAC\r | |
57 | GOBAK, JA .-.\r | |
58 | /\r | |
59 | /\r | |
60 | TWO, 0\r | |
61 | 2\r | |
62 | BINS1, FSTA ARG1 / INSTR. USED BY INOT\r | |
63 | BINS2, JA GOBAK\r | |
64 | TMP1, ORG .+2\r | |
65 | /\r | |
66 | /\r | |
67 | EQL, STARTD\r | |
68 | FLDA INS0 / JMP BEQL --> INS\r | |
69 | JA CONT\r | |
70 | /\r | |
71 | /\r | |
72 | IOR, STARTD\r | |
73 | FLDA INS1 / JMP OR --> INS\r | |
74 | JA CONT\r | |
75 | /\r | |
76 | /\r | |
77 | IAND, STARTD\r | |
78 | FLDA INS2 / JMP BAND --> INS\r | |
79 | JA CONT\r | |
80 | /\r | |
81 | /\r | |
82 | CONT,\r | |
83 | FSTA INS / INSERT THE CORRECT INSTRUCTION INTO INS\r | |
84 | FLDA 3*10\r | |
85 | FSTA GOHOME\r | |
86 | FLDA 0\r | |
87 | FADD TWO\r | |
88 | FSTA 3\r | |
89 | FSTA TMP1\r | |
90 | FLDA% 3 / ADR. FIRST PARAM. --> FAC\r | |
91 | FSTA 3\r | |
92 | STARTF\r | |
93 | FLDA% 3 / FIRST PARAMETER --> FAC\r | |
94 | FSTA ARG1 / AND STORE INTO ARG1\r | |
95 | STARTD\r | |
96 | FLDA TMP1\r | |
97 | FADD TWO\r | |
98 | FSTA 3\r | |
99 | FLDA% 3 / ADR. SECOND PARAM.\r | |
100 | FSTA 3\r | |
101 | STARTF\r | |
102 | FLDA% 3 / SECOND PARAM. --> ARG2\r | |
103 | FSTA ARG2\r | |
104 | TRAP4 BOOL8\r | |
105 | FLDA ARG1 / RESULT --> FAC\r | |
106 | GOHOME, JA .-.\r | |
107 | /\r | |
108 | /\r | |
109 | SECT8 #BOOL8\r | |
110 | ARG1, ORG .+3\r | |
111 | ARG2, ORG .+3\r | |
112 | INS0, JMP BEQL\r | |
113 | INS1, JMP BOR\r | |
114 | INS2, JMP BAND\r | |
115 | CDI= 06203\r | |
116 | CAM= 07621\r | |
117 | MQL= 07421\r | |
118 | MQA= 07501\r | |
119 | /\r | |
120 | /\r | |
121 | INOT8, .-. / COMPLEMENT ARG1\r | |
122 | CLA\r | |
123 | TAD ARG1\r | |
124 | CMA\r | |
125 | DCA ARG1\r | |
126 | TAD ARG1+1\r | |
127 | CMA\r | |
128 | DCA ARG1+1\r | |
129 | TAD ARG1+2\r | |
130 | CMA\r | |
131 | DCA ARG1+2\r | |
132 | CDI\r | |
133 | JMP% INOT8\r | |
134 | /\r | |
135 | /\r | |
136 | BOOL8, .-.\r | |
137 | CLA\r | |
138 | INS, .-.\r | |
139 | NOP / MUST BE HERE SINCE FPP STORES 2 WORDS\r | |
140 | /\r | |
141 | /\r | |
142 | BEQL, / TEST FOR EQUALITY BETWEEN ARG1 AND ARG2\r | |
143 | TAD ARG1 / LOAD FIRST WORD OF ARG1\r | |
144 | CMA IAC / TWO'S COMPLEMENT AC\r | |
145 | TAD ARG2 / AND ADD FIRST WORD OF SECOND ARGUMENT\r | |
146 | SZA / IF THE THE WORDS MATCH THEN THE RESULT IS ZERO AND WE TEST\r | |
147 | JMP NOTEQL / TEST FOR THE NEXT WORD ELSE WE GO HOME\r | |
148 | TAD ARG1+1\r | |
149 | CMA IAC\r | |
150 | TAD ARG2+1\r | |
151 | SZA\r | |
152 | JMP NOTEQL\r | |
153 | TAD ARG1+2\r | |
154 | CMA IAC\r | |
155 | TAD ARG2+2\r | |
156 | SZA \r | |
157 | JMP NOTEQL\r | |
158 | CLA IAC / 1 --> AC\r | |
159 | DCA ARG1 / INSERT .TRUE. INTO THE RESULT\r | |
160 | CLA CLL CML RTR / 2000 --> AC\r | |
161 | DCA ARG1+1\r | |
162 | DCA ARG1+2\r | |
163 | CDI\r | |
164 | JMP% BOOL8\r | |
165 | NOTEQL, CLA\r | |
166 | DCA ARG1\r | |
167 | DCA ARG1+1\r | |
168 | DCA ARG1+2 / RETURN A .FALSE.\r | |
169 | CDI\r | |
170 | JMP% BOOL8\r | |
171 | /\r | |
172 | /\r | |
173 | BAND, / AND BETWEEN ARG1 AND ARG2\r | |
174 | TAD ARG1\r | |
175 | AND ARG2\r | |
176 | DCA ARG1\r | |
177 | TAD ARG1+1\r | |
178 | AND ARG2+1\r | |
179 | DCA ARG1+1\r | |
180 | TAD ARG1+2\r | |
181 | AND ARG2+2\r | |
182 | DCA ARG1+2\r | |
183 | CDI\r | |
184 | JMP% BOOL8\r | |
185 | /\r | |
186 | /\r | |
187 | BOR, / OR BETWEEN ARG1 AND ARG2\r | |
188 | TAD ARG1\r | |
189 | MQL\r | |
190 | TAD ARG2\r | |
191 | MQA\r | |
192 | DCA ARG1\r | |
193 | TAD ARG1+1\r | |
194 | MQL\r | |
195 | TAD ARG2+1\r | |
196 | MQA\r | |
197 | DCA ARG1+1\r | |
198 | TAD ARG1+2\r | |
199 | MQL\r | |
200 | TAD ARG2+2\r | |
201 | MQA\r | |
202 | DCA ARG1+2\r | |
203 | CDI\r | |
204 | JMP% BOOL8\r | |
205 | /\r | |
206 | /\r | |
207 | END\r | |
208 | \1a\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 |