| 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 |