A large commit.
[pdp8.git] / sw / rescue / lab8e_goettingen / disk2_11 / rkb / paroff / hpbool.ra
CommitLineData
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
35INOT, STARTD\r
36 FLDA BINS1 / INSERT THE CORRECT INSTRUCTION IN PROCEDURE BODY\r
37 JA CON\r
38BOOL,\r
39IBOOL, STARTD\r
40 FLDA BINS2\r
41 JA CON\r
42CON,\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
53BINS, .-.\r
54 .-.\r
55 TRAP4 INOT8\r
56 FLDA ARG1 / RESULT --> FAC\r
57GOBAK, JA .-.\r
58/\r
59/\r
60TWO, 0\r
61 2\r
62BINS1, FSTA ARG1 / INSTR. USED BY INOT\r
63BINS2, JA GOBAK\r
64TMP1, ORG .+2\r
65/\r
66/\r
67EQL, STARTD\r
68 FLDA INS0 / JMP BEQL --> INS\r
69 JA CONT\r
70/\r
71/\r
72IOR, STARTD\r
73 FLDA INS1 / JMP OR --> INS\r
74 JA CONT\r
75/\r
76/\r
77IAND, STARTD\r
78 FLDA INS2 / JMP BAND --> INS\r
79 JA CONT\r
80/\r
81/\r
82CONT,\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
106GOHOME, JA .-.\r
107/\r
108/\r
109 SECT8 #BOOL8\r
110ARG1, ORG .+3\r
111ARG2, ORG .+3\r
112INS0, JMP BEQL\r
113INS1, JMP BOR\r
114INS2, JMP BAND\r
115CDI= 06203\r
116CAM= 07621\r
117MQL= 07421\r
118MQA= 07501\r
119/\r
120/\r
121INOT8, .-. / 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
136BOOL8, .-.\r
137 CLA\r
138INS, .-.\r
139 NOP / MUST BE HERE SINCE FPP STORES 2 WORDS\r
140/\r
141/\r
142BEQL, / 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
165NOTEQL, 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
173BAND, / 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
187BOR, / 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