PAGE 1 [3.3a] 6/28/89 17:46:28 ASSEMBLY OF BOOTROM2.TEXT PASS 1 COMPLETE. ERRORS: 0 1 * sccs info: @(#) bootrom2 8.1 84/05/04 00:19:42 * 2 3 * 4 * BOOTROM2 5 * 6 * 8/14/81 - Andy Goris 7 * 8 * This is the second half of the 9826A/B boot ROM. 9 * 10 00002000 RORG $2000 11 SPRINT 12 * 13 * CRT CHARACTER SET 14 * 15 00002000 00 dc.b 0,72,104,88,72,0,18,18 16 00002008 12 dc.b 18,30,0,0,0,0,0,0 17 00002010 00 dc.b 0,56,64,48,8,112,0,18 18 00002018 1E dc.b 30,18,0,0,0,0,0,0 19 00002020 00 dc.b 0,56,64,48,8,112,0,10 20 00002028 04 dc.b 4,10,0,0,0,0,0,0 21 00002030 00 dc.b 0,112,64,96,64,112,0,10 22 00002038 04 dc.b 4,10,0,0,0,0,0,0 23 00002040 00 dc.b 0,112,64,96,64,112,14,4 24 00002048 04 dc.b 4,4,0,0,0,0,0,0 25 00002050 00 dc.b 0,112,64,96,64,112,12,18 26 00002058 16 dc.b 22,14,0,0,0,0,0,0 27 00002060 00 dc.b 0,48,72,120,72,72,16,20 28 00002068 18 dc.b 24,20,0,0,0,0,0,0 29 00002070 00 dc.b 0,8,28,34,34,34,34,127 30 00002078 08 dc.b 8,8,0,0,0,0,0,0 31 00002080 00 dc.b 0,112,72,112,72,115,4,2 32 00002088 01 dc.b 1,6,0,0,0,0,0,0 33 00002090 00 dc.b 0,72,72,120,72,72,7,2 34 00002098 02 dc.b 2,2,0,0,0,0,0,0 35 000020A0 00 dc.b 0,64,64,64,64,119,4,6 36 000020A8 04 dc.b 4,4,0,0,0,0,0,0 37 000020B0 00 dc.b 0,68,68,40,16,0,14,4 38 000020B8 04 dc.b 4,4,0,0,0,0,0,0 39 000020C0 00 dc.b 0,120,64,112,64,79,8,14 40 000020C8 08 dc.b 8,8,0,0,0,0,0,0 41 000020D0 00 dc.b 0,56,64,64,56,14,9,14 42 000020D8 0A dc.b 10,9,0,0,0,0,0,0 43 000020E0 00 dc.b 0,56,64,48,8,118,9,9 44 000020E8 09 dc.b 9,6,0,0,0,0,0,0 45 000020F0 00 dc.b 0,56,64,48,8,119,2,2 46 000020F8 02 dc.b 2,7,0,0,0,0,0,0 47 00002100 00 dc.b 0,112,72,72,72,112,4,4 48 00002108 04 dc.b 4,7,0,0,0,0,0,0 49 00002110 00 dc.b 0,112,72,72,72,114,6,2 50 00002118 02 dc.b 2,7,0,0,0,0,0,0 51 00002120 00 dc.b 0,112,72,72,72,118,1,2 52 00002128 04 dc.b 4,7,0,0,0,0,0,0 53 00002130 00 dc.b 0,112,72,72,72,119,1,3 54 00002138 01 dc.b 1,7,0,0,0,0,0,0 55 00002140 00 dc.b 0,112,72,72,72,114,6,15 56 00002148 02 dc.b 2,2,0,0,0,0,0,0 57 00002150 00 dc.b 0,72,104,88,72,4,5,6 58 00002158 06 dc.b 6,5,0,0,0,0,0,0 PAGE 2 [3.3a] 6/28/89 17:46:28 ASSEMBLY OF BOOTROM2.TEXT 59 00002160 00 dc.b 0,56,64,48,8,112,5,2 60 00002168 02 dc.b 2,2,0,0,0,0,0,0 61 00002170 00 dc.b 0,112,64,96,64,118,5,6 62 00002178 05 dc.b 5,6,0,0,0,0,0,0 63 00002180 00 dc.b 0,56,64,64,56,0,9,13 64 00002188 0B dc.b 11,9,0,0,0,0,0,0 65 00002190 00 dc.b 0,120,64,96,64,120,17,27 66 00002198 15 dc.b 21,17,0,0,0,0,0,0 67 000021A0 00 dc.b 0,56,64,48,8,118,5,6 68 000021A8 05 dc.b 5,6,0,0,0,0,0,0 69 000021B0 00 dc.b 0,120,64,112,64,120,3,4 70 000021B8 04 dc.b 4,3,0,0,0,0,0,0 71 000021C0 00 dc.b 0,120,64,112,64,71,8,6 72 000021C8 01 dc.b 1,14,0,0,0,0,0,0 73 000021D0 00 dc.b 0,56,64,88,72,63,8,6 74 000021D8 01 dc.b 1,14,0,0,0,0,0,0 75 000021E0 00 dc.b 0,112,72,112,80,87,8,6 76 000021E8 01 dc.b 1,14,0,0,0,0,0,0 77 000021F0 00 dc.b 0,72,72,72,120,7,8,6 78 000021F8 01 dc.b 1,14,0,0,0,0,0,0 79 00002200 00 dc.b 0,0,0,0,0,0,0,0 80 00002208 00 dc.b 0,0,0,0,0,0,0,0 81 00002210 00 dc.b 0,16,16,16,16,16,0,16 82 00002218 00 dc.b 0,0,0,0,0,0,0,0 83 00002220 00 dc.b 0,40,40,40,0,0,0,0 84 00002228 00 dc.b 0,0,0,0,0,0,0,0 85 00002230 00 dc.b 0,40,40,124,40,124,40,40 86 00002238 00 dc.b 0,0,0,0,0,0,0,0 87 00002240 00 dc.b 0,16,60,80,56,20,120,16 88 00002248 00 dc.b 0,0,0,0,0,0,0,0 89 00002250 00 dc.b 0,96,100,8,16,32,76,12 90 00002258 00 dc.b 0,0,0,0,0,0,0,0 91 00002260 00 dc.b 0,32,80,80,32,84,72,52 92 00002268 00 dc.b 0,0,0,0,0,0,0,0 93 00002270 00 dc.b 0,8,16,32,0,0,0,0 94 00002278 00 dc.b 0,0,0,0,0,0,0,0 95 00002280 00 dc.b 0,8,16,16,16,16,16,8 96 00002288 00 dc.b 0,0,0,0,0,0,0,0 97 00002290 00 dc.b 0,16,8,8,8,8,8,16 98 00002298 00 dc.b 0,0,0,0,0,0,0,0 99 000022A0 00 dc.b 0,0,40,16,124,16,40,0 100 000022A8 00 dc.b 0,0,0,0,0,0,0,0 101 000022B0 00 dc.b 0,0,16,16,124,16,16,0 102 000022B8 00 dc.b 0,0,0,0,0,0,0,0 103 000022C0 00 dc.b 0,0,0,0,0,0,24,24 104 000022C8 08 dc.b 8,16,0,0,0,0,0,0 105 000022D0 00 dc.b 0,0,0,0,124,0,0,0 106 000022D8 00 dc.b 0,0,0,0,0,0,0,0 107 000022E0 00 dc.b 0,0,0,0,0,0,24,24 108 000022E8 00 dc.b 0,0,0,0,0,0,0,0 109 000022F0 00 dc.b 0,0,4,8,16,32,64,0 110 000022F8 00 dc.b 0,0,0,0,0,0,0,0 111 00002300 00 dc.b 0,56,68,76,84,100,68,56 112 00002308 00 dc.b 0,0,0,0,0,0,0,0 113 00002310 00 dc.b 0,16,48,16,16,16,16,56 114 00002318 00 dc.b 0,0,0,0,0,0,0,0 115 00002320 00 dc.b 0,56,68,4,8,48,64,124 PAGE 3 [3.3a] 6/28/89 17:46:28 ASSEMBLY OF BOOTROM2.TEXT 116 00002328 00 dc.b 0,0,0,0,0,0,0,0 117 00002330 00 dc.b 0,56,68,4,24,4,68,56 118 00002338 00 dc.b 0,0,0,0,0,0,0,0 119 00002340 00 dc.b 0,8,24,40,72,124,8,8 120 00002348 00 dc.b 0,0,0,0,0,0,0,0 121 00002350 00 dc.b 0,124,64,120,4,4,68,56 122 00002358 00 dc.b 0,0,0,0,0,0,0,0 123 00002360 00 dc.b 0,28,32,64,120,68,68,56 124 00002368 00 dc.b 0,0,0,0,0,0,0,0 125 00002370 00 dc.b 0,124,4,8,16,32,32,32 126 00002378 00 dc.b 0,0,0,0,0,0,0,0 127 00002380 00 dc.b 0,56,68,68,56,68,68,56 128 00002388 00 dc.b 0,0,0,0,0,0,0,0 129 00002390 00 dc.b 0,56,68,68,60,4,8,48 130 00002398 00 dc.b 0,0,0,0,0,0,0,0 131 000023A0 00 dc.b 0,0,24,24,0,0,24,24 132 000023A8 00 dc.b 0,0,0,0,0,0,0,0 133 000023B0 00 dc.b 0,0,24,24,0,0,24,24 134 000023B8 08 dc.b 8,16,0,0,0,0,0,0 135 000023C0 00 dc.b 0,8,16,32,64,32,16,8 136 000023C8 00 dc.b 0,0,0,0,0,0,0,0 137 000023D0 00 dc.b 0,0,0,124,0,124,0,0 138 000023D8 00 dc.b 0,0,0,0,0,0,0,0 139 000023E0 00 dc.b 0,32,16,8,4,8,16,32 140 000023E8 00 dc.b 0,0,0,0,0,0,0,0 141 000023F0 00 dc.b 0,56,68,4,8,16,0,16 142 000023F8 00 dc.b 0,0,0,0,0,0,0,0 143 00002400 00 dc.b 0,56,68,92,84,92,64,56 144 00002408 00 dc.b 0,0,0,0,0,0,0,0 145 00002410 00 dc.b 0,56,68,68,124,68,68,68 146 00002418 00 dc.b 0,0,0,0,0,0,0,0 147 00002420 00 dc.b 0,120,36,36,56,36,36,120 148 00002428 00 dc.b 0,0,0,0,0,0,0,0 149 00002430 00 dc.b 0,56,68,64,64,64,68,56 150 00002438 00 dc.b 0,0,0,0,0,0,0,0 151 00002440 00 dc.b 0,120,36,36,36,36,36,120 152 00002448 00 dc.b 0,0,0,0,0,0,0,0 153 00002450 00 dc.b 0,124,64,64,120,64,64,124 154 00002458 00 dc.b 0,0,0,0,0,0,0,0 155 00002460 00 dc.b 0,124,64,64,120,64,64,64 156 00002468 00 dc.b 0,0,0,0,0,0,0,0 157 00002470 00 dc.b 0,56,68,64,64,76,68,56 158 00002478 00 dc.b 0,0,0,0,0,0,0,0 159 00002480 00 dc.b 0,68,68,68,124,68,68,68 160 00002488 00 dc.b 0,0,0,0,0,0,0,0 161 00002490 00 dc.b 0,56,16,16,16,16,16,56 162 00002498 00 dc.b 0,0,0,0,0,0,0,0 163 000024A0 00 dc.b 0,28,8,8,8,8,72,48 164 000024A8 00 dc.b 0,0,0,0,0,0,0,0 165 000024B0 00 dc.b 0,68,72,80,96,80,72,68 166 000024B8 00 dc.b 0,0,0,0,0,0,0,0 167 000024C0 00 dc.b 0,64,64,64,64,64,64,124 168 000024C8 00 dc.b 0,0,0,0,0,0,0,0 169 000024D0 00 dc.b 0,68,108,84,84,68,68,68 170 000024D8 00 dc.b 0,0,0,0,0,0,0,0 171 000024E0 00 dc.b 0,68,68,100,84,76,68,68 172 000024E8 00 dc.b 0,0,0,0,0,0,0,0 PAGE 4 [3.3a] 6/28/89 17:46:28 ASSEMBLY OF BOOTROM2.TEXT 173 000024F0 00 dc.b 0,56,68,68,68,68,68,56 174 000024F8 00 dc.b 0,0,0,0,0,0,0,0 175 00002500 00 dc.b 0,120,68,68,120,64,64,64 176 00002508 00 dc.b 0,0,0,0,0,0,0,0 177 00002510 00 dc.b 0,56,68,68,68,84,72,52 178 00002518 00 dc.b 0,0,0,0,0,0,0,0 179 00002520 00 dc.b 0,120,68,68,120,80,72,68 180 00002528 00 dc.b 0,0,0,0,0,0,0,0 181 00002530 00 dc.b 0,56,68,64,56,4,68,56 182 00002538 00 dc.b 0,0,0,0,0,0,0,0 183 00002540 00 dc.b 0,124,16,16,16,16,16,16 184 00002548 00 dc.b 0,0,0,0,0,0,0,0 185 00002550 00 dc.b 0,68,68,68,68,68,68,56 186 00002558 00 dc.b 0,0,0,0,0,0,0,0 187 00002560 00 dc.b 0,68,68,68,40,40,16,16 188 00002568 00 dc.b 0,0,0,0,0,0,0,0 189 00002570 00 dc.b 0,68,68,68,84,84,108,68 190 00002578 00 dc.b 0,0,0,0,0,0,0,0 191 00002580 00 dc.b 0,68,68,40,16,40,68,68 192 00002588 00 dc.b 0,0,0,0,0,0,0,0 193 00002590 00 dc.b 0,68,68,40,16,16,16,16 194 00002598 00 dc.b 0,0,0,0,0,0,0,0 195 000025A0 00 dc.b 0,124,4,8,16,32,64,124 196 000025A8 00 dc.b 0,0,0,0,0,0,0,0 197 000025B0 00 dc.b 0,56,32,32,32,32,32,56 198 000025B8 00 dc.b 0,0,0,0,0,0,0,0 199 000025C0 00 dc.b 0,0,64,32,16,8,4,0 200 000025C8 00 dc.b 0,0,0,0,0,0,0,0 201 000025D0 00 dc.b 0,56,8,8,8,8,8,56 202 000025D8 00 dc.b 0,0,0,0,0,0,0,0 203 000025E0 00 dc.b 0,16,40,68,0,0,0,0 204 000025E8 00 dc.b 0,0,0,0,0,0,0,0 205 000025F0 00 dc.b 0,0,0,0,0,0,0,0 206 000025F8 00 dc.b 0,255,0,0,0,0,0,0 207 00002600 00 dc.b 0,32,16,8,0,0,0,0 208 00002608 00 dc.b 0,0,0,0,0,0,0,0 209 00002610 00 dc.b 0,0,0,56,4,60,68,62 210 00002618 00 dc.b 0,0,0,0,0,0,0,0 211 00002620 00 dc.b 0,64,64,120,68,68,68,120 212 00002628 00 dc.b 0,0,0,0,0,0,0,0 213 00002630 00 dc.b 0,0,0,56,64,64,64,56 214 00002638 00 dc.b 0,0,0,0,0,0,0,0 215 00002640 00 dc.b 0,4,4,60,68,68,68,60 216 00002648 00 dc.b 0,0,0,0,0,0,0,0 217 00002650 00 dc.b 0,0,0,56,68,120,64,56 218 00002658 00 dc.b 0,0,0,0,0,0,0,0 219 00002660 00 dc.b 0,24,36,32,112,32,32,32 220 00002668 00 dc.b 0,0,0,0,0,0,0,0 221 00002670 00 dc.b 0,0,0,60,68,68,68,60 222 00002678 04 dc.b 4,68,56,0,0,0,0,0 223 00002680 00 dc.b 0,64,64,88,100,68,68,68 224 00002688 00 dc.b 0,0,0,0,0,0,0,0 225 00002690 00 dc.b 0,16,0,48,16,16,16,16 226 00002698 00 dc.b 0,0,0,0,0,0,0,0 227 000026A0 00 dc.b 0,8,0,24,8,8,8,8 228 000026A8 48 dc.b 72,48,0,0,0,0,0,0 229 000026B0 00 dc.b 0,32,32,36,40,48,40,36 PAGE 5 [3.3a] 6/28/89 17:46:28 ASSEMBLY OF BOOTROM2.TEXT 230 000026B8 00 dc.b 0,0,0,0,0,0,0,0 231 000026C0 00 dc.b 0,24,8,8,8,8,8,8 232 000026C8 00 dc.b 0,0,0,0,0,0,0,0 233 000026D0 00 dc.b 0,0,0,104,84,84,84,84 234 000026D8 00 dc.b 0,0,0,0,0,0,0,0 235 000026E0 00 dc.b 0,0,0,88,100,68,68,68 236 000026E8 00 dc.b 0,0,0,0,0,0,0,0 237 000026F0 00 dc.b 0,0,0,56,68,68,68,56 238 000026F8 00 dc.b 0,0,0,0,0,0,0,0 239 00002700 00 dc.b 0,0,0,88,100,68,100,88 240 00002708 40 dc.b 64,64,64,0,0,0,0,0 241 00002710 00 dc.b 0,0,0,52,76,68,76,52 242 00002718 04 dc.b 4,4,4,0,0,0,0,0 243 00002720 00 dc.b 0,0,0,88,100,64,64,64 244 00002728 00 dc.b 0,0,0,0,0,0,0,0 245 00002730 00 dc.b 0,0,0,56,64,56,4,120 246 00002738 00 dc.b 0,0,0,0,0,0,0,0 247 00002740 00 dc.b 0,32,32,112,32,32,40,16 248 00002748 00 dc.b 0,0,0,0,0,0,0,0 249 00002750 00 dc.b 0,0,0,68,68,68,76,52 250 00002758 00 dc.b 0,0,0,0,0,0,0,0 251 00002760 00 dc.b 0,0,0,68,68,68,40,16 252 00002768 00 dc.b 0,0,0,0,0,0,0,0 253 00002770 00 dc.b 0,0,0,68,84,84,84,40 254 00002778 00 dc.b 0,0,0,0,0,0,0,0 255 00002780 00 dc.b 0,0,0,68,40,16,40,68 256 00002788 00 dc.b 0,0,0,0,0,0,0,0 257 00002790 00 dc.b 0,0,0,68,68,68,40,24 258 00002798 10 dc.b 16,32,64,0,0,0,0,0 259 000027A0 00 dc.b 0,0,0,124,8,16,32,124 260 000027A8 00 dc.b 0,0,0,0,0,0,0,0 261 000027B0 08 dc.b 8,16,16,16,32,16,16,16 262 000027B8 08 dc.b 8,0,0,0,0,0,0,0 263 000027C0 10 dc.b 16,16,16,16,16,16,16,16 264 000027C8 10 dc.b 16,16,16,16,0,0,0,0 265 000027D0 20 dc.b 32,16,16,16,8,16,16,16 266 000027D8 20 dc.b 32,0,0,0,0,0,0,0 267 000027E0 00 dc.b 0,0,0,0,32,84,8,0 268 000027E8 00 dc.b 0,0,0,0,0,0,0,0 269 000027F0 00 dc.b 0,40,84,40,84,40,84,40 270 000027F8 00 dc.b 0,0,0,0,0,0,0,0 271 00002800 00 dc.b 0,68,40,124,16,124,16,16 272 00002808 00 dc.b 0,0,0,0,0,0,0,0 273 00002810 00 dc.b 0,0,0,0,48,72,72,48 274 00002818 00 dc.b 0,0,0,0,0,0,0,0 275 00002820 00 dc.b 0,28,16,16,16,0,0,0 276 00002828 00 dc.b 0,0,0,0,0,0,0,0 277 00002830 00 dc.b 0,0,0,0,16,16,16,112 278 00002838 00 dc.b 0,0,0,0,0,0,0,0 279 00002840 00 dc.b 0,0,0,0,0,64,32,16 280 00002848 00 dc.b 0,0,0,0,0,0,0,0 281 00002850 00 dc.b 0,0,0,0,48,48,0,0 282 00002858 00 dc.b 0,0,0,0,0,0,0,0 283 00002860 00 dc.b 0,0,124,4,124,4,8,16 284 00002868 00 dc.b 0,0,0,0,0,0,0,0 285 00002870 00 dc.b 0,0,0,124,4,24,16,32 286 00002878 00 dc.b 0,0,0,0,0,0,0,0 PAGE 6 [3.3a] 6/28/89 17:46:28 ASSEMBLY OF BOOTROM2.TEXT 287 00002880 00 dc.b 0,0,0,8,16,48,80,16 288 00002888 00 dc.b 0,0,0,0,0,0,0,0 289 00002890 00 dc.b 0,0,0,16,124,68,4,24 290 00002898 00 dc.b 0,0,0,0,0,0,0,0 291 000028A0 00 dc.b 0,0,0,0,124,16,16,124 292 000028A8 00 dc.b 0,0,0,0,0,0,0,0 293 000028B0 00 dc.b 0,0,0,8,124,24,40,72 294 000028B8 00 dc.b 0,0,0,0,0,0,0,0 295 000028C0 00 dc.b 0,0,0,32,124,36,40,32 296 000028C8 00 dc.b 0,0,0,0,0,0,0,0 297 000028D0 00 dc.b 0,0,0,0,56,8,8,124 298 000028D8 00 dc.b 0,0,0,0,0,0,0,0 299 000028E0 00 dc.b 0,0,0,120,8,120,8,120 300 000028E8 00 dc.b 0,0,0,0,0,0,0,0 301 000028F0 00 dc.b 0,0,0,0,84,84,4,24 302 000028F8 00 dc.b 0,0,0,0,0,0,0,0 303 00002900 00 dc.b 0,0,0,0,124,0,0,0 304 00002908 00 dc.b 0,0,0,0,0,0,0,0 305 00002910 00 dc.b 0,124,4,20,24,16,16,32 306 00002918 00 dc.b 0,0,0,0,0,0,0,0 307 00002920 00 dc.b 0,4,8,16,48,80,16,16 308 00002928 00 dc.b 0,0,0,0,0,0,0,0 309 00002930 00 dc.b 0,16,124,68,68,4,8,16 310 00002938 00 dc.b 0,0,0,0,0,0,0,0 311 00002940 00 dc.b 0,0,124,16,16,16,16,124 312 00002948 00 dc.b 0,0,0,0,0,0,0,0 313 00002950 00 dc.b 0,8,124,8,24,40,72,8 314 00002958 00 dc.b 0,0,0,0,0,0,0,0 315 00002960 00 dc.b 0,32,124,36,36,36,36,72 316 00002968 00 dc.b 0,0,0,0,0,0,0,0 317 00002970 00 dc.b 0,16,124,16,124,16,16,16 318 00002978 00 dc.b 0,0,0,0,0,0,0,0 319 00002980 00 dc.b 0,0,60,36,68,4,8,48 320 00002988 00 dc.b 0,0,0,0,0,0,0,0 321 00002990 00 dc.b 0,32,60,72,8,8,8,16 322 00002998 00 dc.b 0,0,0,0,0,0,0,0 323 000029A0 00 dc.b 0,0,124,4,4,4,4,124 324 000029A8 00 dc.b 0,0,0,0,0,0,0,0 325 000029B0 00 dc.b 0,40,124,40,40,8,16,32 326 000029B8 00 dc.b 0,0,0,0,0,0,0,0 327 000029C0 00 dc.b 0,0,96,4,100,4,8,112 328 000029C8 00 dc.b 0,0,0,0,0,0,0,0 329 000029D0 00 dc.b 0,0,124,4,8,16,40,68 330 000029D8 00 dc.b 0,0,0,0,0,0,0,0 331 000029E0 00 dc.b 0,32,124,36,40,32,32,28 332 000029E8 00 dc.b 0,0,0,0,0,0,0,0 333 000029F0 00 dc.b 0,0,68,68,36,4,8,48 334 000029F8 00 dc.b 0,0,0,0,0,0,0,0 335 00002A00 00 dc.b 0,0,60,36,84,12,8,48 336 00002A08 00 dc.b 0,0,0,0,0,0,0,0 337 00002A10 00 dc.b 0,8,112,16,124,16,16,32 338 00002A18 00 dc.b 0,0,0,0,0,0,0,0 339 00002A20 00 dc.b 0,0,84,84,84,4,8,16 340 00002A28 00 dc.b 0,0,0,0,0,0,0,0 341 00002A30 00 dc.b 0,56,0,124,16,16,16,32 342 00002A38 00 dc.b 0,0,0,0,0,0,0,0 343 00002A40 00 dc.b 0,32,32,32,48,40,32,32 PAGE 7 [3.3a] 6/28/89 17:46:28 ASSEMBLY OF BOOTROM2.TEXT 344 00002A48 00 dc.b 0,0,0,0,0,0,0,0 345 00002A50 00 dc.b 0,16,16,124,16,16,16,32 346 00002A58 00 dc.b 0,0,0,0,0,0,0,0 347 00002A60 00 dc.b 0,0,56,0,0,0,0,124 348 00002A68 00 dc.b 0,0,0,0,0,0,0,0 349 00002A70 00 dc.b 0,0,124,4,40,16,40,64 350 00002A78 00 dc.b 0,0,0,0,0,0,0,0 351 00002A80 08 dc.b 8,16,0,0,0,0,0,0 352 00002A88 00 dc.b 0,0,0,0,0,0,0,0 353 00002A90 20 dc.b 32,16,0,0,0,0,0,0 354 00002A98 00 dc.b 0,0,0,0,0,0,0,0 355 00002AA0 10 dc.b 16,40,0,0,0,0,0,0 356 00002AA8 00 dc.b 0,0,0,0,0,0,0,0 357 00002AB0 00 dc.b 0,40,0,0,0,0,0,0 358 00002AB8 00 dc.b 0,0,0,0,0,0,0,0 359 00002AC0 20 dc.b 32,84,8,0,0,0,0,0 360 00002AC8 00 dc.b 0,0,0,0,0,0,0,0 361 00002AD0 00 dc.b 0,16,124,8,16,56,84,16 362 00002AD8 00 dc.b 0,0,0,0,0,0,0,0 363 00002AE0 00 dc.b 0,8,8,8,8,8,16,32 364 00002AE8 00 dc.b 0,0,0,0,0,0,0,0 365 00002AF0 1C dc.b 28,34,32,112,32,112,32,34 366 00002AF8 7C dc.b 124,0,0,0,0,0,0,0 367 00002B00 FF dc.b 255,0,0,0,0,0,0,0 368 00002B08 00 dc.b 0,0,0,0,0,0,0,0 369 00002B10 00 dc.b 0,0,16,8,68,68,68,68 370 00002B18 00 dc.b 0,0,0,0,0,0,0,0 371 00002B20 00 dc.b 0,64,64,124,64,64,64,60 372 00002B28 00 dc.b 0,0,0,0,0,0,0,0 373 00002B30 30 dc.b 48,72,72,48,0,0,0,0 374 00002B38 00 dc.b 0,0,0,0,0,0,0,0 375 00002B40 00 dc.b 0,0,124,4,4,4,8,48 376 00002B48 00 dc.b 0,0,0,0,0,0,0,0 377 00002B50 00 dc.b 0,0,0,56,64,64,68,56 378 00002B58 10 dc.b 16,8,48,0,0,0,0,0 379 00002B60 20 dc.b 32,84,8,68,100,84,76,68 380 00002B68 00 dc.b 0,0,0,0,0,0,0,0 381 00002B70 20 dc.b 32,84,8,0,88,100,68,68 382 00002B78 00 dc.b 0,0,0,0,0,0,0,0 383 00002B80 00 dc.b 0,16,0,16,16,16,16,16 384 00002B88 00 dc.b 0,0,0,0,0,0,0,0 385 00002B90 00 dc.b 0,16,0,16,32,64,68,56 386 00002B98 00 dc.b 0,0,0,0,0,0,0,0 387 00002BA0 00 dc.b 0,0,66,60,36,36,60,66 388 00002BA8 00 dc.b 0,0,0,0,0,0,0,0 389 00002BB0 1C dc.b 28,34,32,32,112,32,34,124 390 00002BB8 00 dc.b 0,0,0,0,0,0,0,0 391 00002BC0 00 dc.b 0,0,32,80,8,4,4,0 392 00002BC8 00 dc.b 0,0,0,0,0,0,0,0 393 00002BD0 18 dc.b 24,36,32,16,56,36,28,8 394 00002BD8 04 dc.b 4,36,24,0,0,0,0,0 395 00002BE0 00 dc.b 0,16,124,16,84,84,84,16 396 00002BE8 00 dc.b 0,0,0,0,0,0,0,0 397 00002BF0 00 dc.b 0,0,124,4,4,40,16,8 398 00002BF8 00 dc.b 0,0,0,0,0,0,0,0 399 00002C00 10 dc.b 16,40,0,56,4,60,68,62 400 00002C08 00 dc.b 0,0,0,0,0,0,0,0 PAGE 8 [3.3a] 6/28/89 17:46:28 ASSEMBLY OF BOOTROM2.TEXT 401 00002C10 10 dc.b 16,40,0,56,68,120,64,56 402 00002C18 00 dc.b 0,0,0,0,0,0,0,0 403 00002C20 10 dc.b 16,40,0,56,68,68,68,56 404 00002C28 00 dc.b 0,0,0,0,0,0,0,0 405 00002C30 10 dc.b 16,40,0,68,68,68,76,52 406 00002C38 00 dc.b 0,0,0,0,0,0,0,0 407 00002C40 08 dc.b 8,16,0,56,4,60,68,62 408 00002C48 00 dc.b 0,0,0,0,0,0,0,0 409 00002C50 08 dc.b 8,16,0,56,68,120,64,56 410 00002C58 00 dc.b 0,0,0,0,0,0,0,0 411 00002C60 08 dc.b 8,16,0,56,68,68,68,56 412 00002C68 00 dc.b 0,0,0,0,0,0,0,0 413 00002C70 08 dc.b 8,16,0,68,68,68,76,52 414 00002C78 00 dc.b 0,0,0,0,0,0,0,0 415 00002C80 20 dc.b 32,16,0,56,4,60,68,62 416 00002C88 00 dc.b 0,0,0,0,0,0,0,0 417 00002C90 20 dc.b 32,16,0,56,68,120,64,56 418 00002C98 00 dc.b 0,0,0,0,0,0,0,0 419 00002CA0 20 dc.b 32,16,0,56,68,68,68,56 420 00002CA8 00 dc.b 0,0,0,0,0,0,0,0 421 00002CB0 20 dc.b 32,16,0,68,68,68,76,52 422 00002CB8 00 dc.b 0,0,0,0,0,0,0,0 423 00002CC0 00 dc.b 0,40,0,56,4,60,68,62 424 00002CC8 00 dc.b 0,0,0,0,0,0,0,0 425 00002CD0 00 dc.b 0,40,0,56,68,120,64,56 426 00002CD8 00 dc.b 0,0,0,0,0,0,0,0 427 00002CE0 00 dc.b 0,40,0,56,68,68,68,56 428 00002CE8 00 dc.b 0,0,0,0,0,0,0,0 429 00002CF0 00 dc.b 0,40,0,68,68,68,76,52 430 00002CF8 00 dc.b 0,0,0,0,0,0,0,0 431 00002D00 10 dc.b 16,0,56,68,68,124,68,68 432 00002D08 00 dc.b 0,0,0,0,0,0,0,0 433 00002D10 10 dc.b 16,40,0,16,16,16,16,16 434 00002D18 00 dc.b 0,0,0,0,0,0,0,0 435 00002D20 00 dc.b 0,60,76,76,84,100,100,120 436 00002D28 00 dc.b 0,0,0,0,0,0,0,0 437 00002D30 00 dc.b 0,62,80,144,252,144,144,158 438 00002D38 00 dc.b 0,0,0,0,0,0,0,0 439 00002D40 00 dc.b 0,16,0,56,4,60,68,62 440 00002D48 00 dc.b 0,0,0,0,0,0,0,0 441 00002D50 08 dc.b 8,16,0,16,16,16,16,16 442 00002D58 00 dc.b 0,0,0,0,0,0,0,0 443 00002D60 00 dc.b 0,0,0,60,76,84,100,120 444 00002D68 00 dc.b 0,0,0,0,0,0,0,0 445 00002D70 00 dc.b 0,0,0,236,18,124,144,110 446 00002D78 00 dc.b 0,0,0,0,0,0,0,0 447 00002D80 28 dc.b 40,0,56,68,68,124,68,68 448 00002D88 00 dc.b 0,0,0,0,0,0,0,0 449 00002D90 20 dc.b 32,16,0,16,16,16,16,16 450 00002D98 00 dc.b 0,0,0,0,0,0,0,0 451 00002DA0 28 dc.b 40,0,56,68,68,68,68,56 452 00002DA8 00 dc.b 0,0,0,0,0,0,0,0 453 00002DB0 28 dc.b 40,0,68,68,68,68,68,56 454 00002DB8 00 dc.b 0,0,0,0,0,0,0,0 455 00002DC0 08 dc.b 8,16,124,64,112,64,64,124 456 00002DC8 00 dc.b 0,0,0,0,0,0,0,0 457 00002DD0 00 dc.b 0,40,0,16,16,16,16,16 PAGE 9 [3.3a] 6/28/89 17:46:28 ASSEMBLY OF BOOTROM2.TEXT 458 00002DD8 00 dc.b 0,0,0,0,0,0,0,0 459 00002DE0 00 dc.b 0,56,68,68,88,68,68,88 460 00002DE8 40 dc.b 64,0,0,0,0,0,0,0 461 00002DF0 00 dc.b 0,64,64,96,80,80,12,10 462 00002DF8 0C dc.b 12,8,8,0,0,0,0,0 463 00002E00 00 dc.b 0,0,56,0,56,0,56,4 464 00002E08 00 dc.b 0,0,0,0,0,0,0,0 465 00002E10 00 dc.b 0,0,16,32,64,68,124,4 466 00002E18 00 dc.b 0,0,0,0,0,0,0,0 467 00002E20 00 dc.b 0,0,4,4,40,16,40,64 468 00002E28 00 dc.b 0,0,0,0,0,0,0,0 469 00002E30 00 dc.b 0,0,124,32,124,32,32,28 470 00002E38 00 dc.b 0,0,0,0,0,0,0,0 471 00002E40 00 dc.b 0,32,32,124,36,40,32,32 472 00002E48 00 dc.b 0,0,0,0,0,0,0,0 473 00002E50 00 dc.b 0,0,56,8,8,8,8,124 474 00002E58 00 dc.b 0,0,0,0,0,0,0,0 475 00002E60 00 dc.b 0,0,124,4,124,4,4,124 476 00002E68 00 dc.b 0,0,0,0,0,0,0,0 477 00002E70 00 dc.b 0,56,0,124,4,4,8,16 478 00002E78 00 dc.b 0,0,0,0,0,0,0,0 479 00002E80 00 dc.b 0,72,72,72,72,8,16,32 480 00002E88 00 dc.b 0,0,0,0,0,0,0,0 481 00002E90 00 dc.b 0,0,16,80,80,84,84,88 482 00002E98 00 dc.b 0,0,0,0,0,0,0,0 483 00002EA0 00 dc.b 0,0,64,64,68,72,80,96 484 00002EA8 00 dc.b 0,0,0,0,0,0,0,0 485 00002EB0 00 dc.b 0,0,124,68,68,68,68,124 486 00002EB8 00 dc.b 0,0,0,0,0,0,0,0 487 00002EC0 00 dc.b 0,0,124,68,68,4,8,16 488 00002EC8 00 dc.b 0,0,0,0,0,0,0,0 489 00002ED0 00 dc.b 0,0,96,0,4,4,8,112 490 00002ED8 00 dc.b 0,0,0,0,0,0,0,0 491 00002EE0 00 dc.b 0,16,72,32,0,0,0,0 492 00002EE8 00 dc.b 0,0,0,0,0,0,0,0 493 00002EF0 00 dc.b 0,0,16,8,124,8,16,0 494 00002EF8 00 dc.b 0,0,0,0,0,0,0,0 495 00002F00 00 dc.b 0,0,60,32,32,32,96,32 496 00002F08 00 dc.b 0,0,0,0,0,0,0,0 497 00002F10 00 dc.b 0,0,4,56,104,40,40,40 498 00002F18 00 dc.b 0,0,0,0,0,0,0,0 499 00002F20 F0 dc.b 240,240,240,240,240,240,240,240 500 00002F28 F0 dc.b 240,240,240,240,0,0,0,0 501 00002F30 0F dc.b 15,15,15,15,15,15,15,15 502 00002F38 0F dc.b 15,15,15,15,0,0,0,0 503 00002F40 FF dc.b 255,129,129,129,129,129,129,129 504 00002F48 81 dc.b 129,129,129,255,0,0,0,0 505 00002F50 FF dc.b 255,255,255,223,191,0,191,223 506 00002F58 FF dc.b 255,255,255,255,0,0,0,0 507 00002F60 FF dc.b 255,255,255,127,191,31,191,127 508 00002F68 FF dc.b 255,255,255,255,0,0,0,0 509 00002F70 FB dc.b 251,241,234,251,251,251,251,251 510 00002F78 EA dc.b 234,241,251,255,0,0,0,0 511 00002F80 FF dc.b 255,255,255,255,131,255,255,255 512 00002F88 FF dc.b 255,255,255,255,0,0,0,0 513 00002F90 FF dc.b 255,199,187,251,247,239,239,255 514 00002F98 EF dc.b 239,255,255,255,0,0,0,0 PAGE 10 [3.3a] 6/28/89 17:46:28 ASSEMBLY OF BOOTROM2.TEXT 515 00002FA0 FF dc.b 255,31,191,191,191,25,246,246 516 00002FA8 F6 dc.b 246,249,255,255,0,0,0,0 517 00002FB0 FF dc.b 255,255,255,255,255,255,255,255 518 00002FB8 FF dc.b 255,255,255,255,0,0,0,0 519 00002FC0 00 dc.b 0,8,24,56,120,56,24,8 520 00002FC8 00 dc.b 0,0,0,0,0,0,0,0 521 00002FD0 FF dc.b 255,255,215,239,131,239,215,255 522 00002FD8 FF dc.b 255,255,255,255,0,0,0,0 523 00002FE0 FF dc.b 255,131,131,131,131,131,131,131 524 00002FE8 FF dc.b 255,255,255,255,0,0,0,0 525 00002FF0 7C dc.b 124,254,186,182,174,142,182,186 526 00002FF8 FE dc.b 254,124,0,0,0,0,0,0 527 * 528 * tables for conversion between base 10k and bdc 529 * 530 * 531 00003000 00 BIN2BCD dc.b $00,$01,$02,$03,$04 532 00003005 05 dc.b $05,$06,$07,$08,$09 533 0000300A 10 dc.b $10,$11,$12,$13,$14 534 0000300F 15 dc.b $15,$16,$17,$18,$19 535 00003014 20 dc.b $20,$21,$22,$23,$24 536 00003019 25 dc.b $25,$26,$27,$28,$29 537 0000301E 30 dc.b $30,$31,$32,$33,$34 538 00003023 35 dc.b $35,$36,$37,$38,$39 539 00003028 40 dc.b $40,$41,$42,$43,$44 540 0000302D 45 dc.b $45,$46,$47,$48,$49 541 00003032 50 dc.b $50,$51,$52,$53,$54 542 00003037 55 dc.b $55,$56,$57,$58,$59 543 0000303C 60 dc.b $60,$61,$62,$63,$64 544 00003041 65 dc.b $65,$66,$67,$68,$69 545 00003046 70 dc.b $70,$71,$72,$73,$74 546 0000304B 75 dc.b $75,$76,$77,$78,$79 547 00003050 80 dc.b $80,$81,$82,$83,$84 548 00003055 85 dc.b $85,$86,$87,$88,$89 549 0000305A 90 dc.b $90,$91,$92,$93,$94 550 0000305F 95 dc.b $95,$96,$97,$98,$99 551 * 552 00003064 00 bcd2bin dc.b 00,01,02,03,04,05,06,07,08,09,0,0,0,0,0,1 553 00003074 0A dc.b 10,11,12,13,14,15,16,17,18,19,0,0,0,0,0,0 554 00003084 14 dc.b 20,21,22,23,24,25,26,27,28,29,0,0,0,0,0,0 555 00003094 1E dc.b 30,31,32,33,34,35,36,37,38,39,0,0,0,0,0,0 556 000030A4 28 dc.b 40,41,42,43,44,45,46,47,48,49,0,0,0,0,0,0 557 000030B4 32 dc.b 50,51,52,53,54,55,56,57,58,59,0,0,0,0,0,0 558 000030C4 3C dc.b 60,61,62,63,64,65,66,67,68,69,0,0,0,0,0,0 559 000030D4 46 dc.b 70,71,72,73,74,75,76,77,78,79,0,0,0,0,0,0 560 000030E4 50 dc.b 80,81,82,83,84,85,86,87,88,89,0,0,0,0,0,0 561 000030F4 5A dc.b 90,91,92,93,94,95,96,97,98,99 PAGE 11 [3.3a] 6/28/89 17:46:28 ASSEMBLY OF BOOTROM2.TEXT 563 *------------------------------------------ 564 * PASCAL support routines Rev 1.1 565 * written by: Bob Roeder 566 * Brad Ritter 567 *------------------------------------------ 568 0000 30FE M@VEL EQU * 569 000030FE 245F MOVEA.L (SP)+,A2 SAVE RETURN ADDRESS 570 00003100 201F MOVE.L (SP)+,D0 LENGTH 571 00003102 205F MOVEA.L (SP)+,A0 DESTINATION ADDRESS 572 00003104 225F MOVEA.L (SP)+,A1 SOURCE ADDRESS 573 00003106 2F0A MOVE.L A2,-(SP) RESTORE RETURN ADDRESS 574 0000 3108 RM@VEL EQU * ENTRY POINT FOR OPERANDS IN REGISTERS 575 00003108 4A80 TST.L D0 576 0000310A 6F42 BLE.S DONEE 577 0000310C 3208 MOVE.W A0,D1 578 0000310E 3409 MOVE.W A1,D2 579 00003110 0201 0001 ANDI.B #1,D1 580 00003114 0202 0001 ANDI.B #1,D2 581 00003118 B501 EOR.B D2,D1 ARE BOTH ADDRESSES ON EVEN OR BOTH ON ODD BOUNDARIES? 582 0000311A 6708 BEQ.S FAANCY 583 0000 311C LOOOP EQU * 584 0000311C 10D9 MOVE.B (A1)+,(A0)+ 585 0000311E 5380 SUBQ.L #1,D0 586 00003120 6EFA BGT.S LOOOP 587 00003122 602A BRA.S DONEE 588 0000 3124 FAANCY EQU * 589 00003124 4A02 TST.B D2 590 00003126 6706 BEQ.S SKIIP1 591 00003128 10D9 MOVE.B (A1)+,(A0)+ MOVE ONE BYTE TO GET TO AN EVEN BYTE ADDRESS 592 0000312A 5380 SUBQ.L #1,D0 593 0000312C 6F20 BLE.S DONEE 594 0000 312E SKIIP1 EQU * 595 0000312E 2200 MOVE.L D0,D1 PERFORM COUNT DIV 4 LONG WORD MOVES 596 00003130 E489 LSR.L #2,D1 597 00003132 6706 BEQ.S SKIIP2 598 0000 3134 LOOOP2 EQU * 599 00003134 20D9 MOVE.L (A1)+,(A0)+ 600 00003136 5381 SUBQ.L #1,D1 601 00003138 6EFA BGT.S LOOOP2 602 0000 313A SKIIP2 EQU * 603 0000313A 0200 0003 ANDI.B #3,D0 604 0000313E 1200 MOVE.B D0,D1 605 00003140 E209 LSR.B #1,D1 606 00003142 6702 BEQ.S SKIIP3 607 00003144 30D9 MOVE.W (A1)+,(A0)+ 608 0000 3146 SKIIP3 EQU * 609 00003146 0200 0001 ANDI.B #1,D0 610 0000314A 6702 BEQ.S DONEE 611 0000314C 10D9 MOVE.B (A1)+,(A0)+ 612 0000 314E DONEE EQU * 613 0000314E 4E75 RTS PAGE 12 [3.3a] 6/28/89 17:46:28 ASSEMBLY OF BOOTROM2.TEXT 615 *------------------------------------------ 616 0000 3150 M@VER EQU * 617 00003150 245F MOVEA.L (SP)+,A2 SAVE RETURN ADDRESS 618 00003152 201F MOVE.L (SP)+,D0 LENGTH 619 00003154 205F MOVEA.L (SP)+,A0 DESTINATION ADDRESS 620 00003156 225F MOVEA.L (SP)+,A1 SOURCE ADDRESS 621 00003158 2F0A MOVE.L A2,-(SP) RESTORE RETURN ADDRESS 622 0000 315A RM@VER EQU * ENTRY POINT FOR OPERANDS IN REGISTERS 623 0000315A 4A80 TST.L D0 624 0000315C 6F46 BLE.S DONE 625 0000315E D1C0 ADDA.L D0,A0 626 00003160 D3C0 ADDA.L D0,A1 627 00003162 3208 MOVE.W A0,D1 628 00003164 3409 MOVE.W A1,D2 629 00003166 0201 0001 ANDI.B #1,D1 630 0000316A 0202 0001 ANDI.B #1,D2 631 0000316E B501 EOR.B D2,D1 ARE BOTH ADDRESSES ON EVEN OR BOTH ON ODD BOUNDARIES? 632 00003170 6708 BEQ.S FANCY 633 0000 3172 LOOP EQU * 634 00003172 1121 MOVE.B -(A1),-(A0) 635 00003174 5380 SUBQ.L #1,D0 636 00003176 6EFA BGT.S LOOP 637 00003178 602A BRA.S DONE 638 0000 317A FANCY EQU * 639 0000317A 4A02 TST.B D2 640 0000317C 6706 BEQ.S SKIP1 641 0000317E 1121 MOVE.B -(A1),-(A0) MOVE ONE BYTE TO GET TO AN EVEN BYTE ADDRESS 642 00003180 5380 SUBQ.L #1,D0 643 00003182 6F20 BLE.S DONE 644 0000 3184 SKIP1 EQU * 645 00003184 2200 MOVE.L D0,D1 PERFORM COUNT DIV 4 LONG WORD MOVES 646 00003186 E489 LSR.L #2,D1 647 00003188 6706 BEQ.S SKIP2 648 0000 318A LOOP2 EQU * 649 0000318A 2121 MOVE.L -(A1),-(A0) 650 0000318C 5381 SUBQ.L #1,D1 651 0000318E 6EFA BGT.S LOOP2 652 0000 3190 SKIP2 EQU * 653 00003190 0200 0003 ANDI.B #3,D0 654 00003194 1200 MOVE.B D0,D1 655 00003196 E209 LSR.B #1,D1 656 00003198 6702 BEQ.S SKIP3 657 0000319A 3121 MOVE.W -(A1),-(A0) 658 0000 319C SKIP3 EQU * 659 0000319C 0200 0001 ANDI.B #1,D0 660 000031A0 6702 BEQ.S DONE 661 000031A2 1121 MOVE.B -(A1),-(A0) 662 0000 31A4 DONE EQU * 663 000031A4 4E75 RTS PAGE 13 [3.3a] 6/28/89 17:46:28 ASSEMBLY OF BOOTROM2.TEXT 665 *------------------------------------------ 666 DEF E@MPY 667 *------------------------------------------ 668 0000 31A6 E@MPY equ * 669 000031A6 4CDF 0007 movem.l (sp)+,d0/d1/d2 get return addr and operands 670 000031AA 3041 movea.w d1,a0 671 000031AC B1C1 cmpa.l d1,a0 test for 16 bit 2's compl 672 000031AE 660E bne.s not_wd1 673 000031B0 3042 movea.w d2,a0 674 000031B2 B1C2 cmpa.l d2,a0 test for 16 bit 2's compl 675 000031B4 6610 bne.s twoXone 676 000031B6 C5C1 muls d1,d2 signed multiply 677 000031B8 2F02 move.l d2,-(sp) push result 678 000031BA 2040 movea.l d0,a0 fake rts 679 000031BC 4ED0 jmp (a0) 680 * 681 000031BE 3042 not_wd1 movea.w d2,a0 test for 16 bit 2's compl 682 000031C0 B1C2 cmpa.l d2,a0 683 000031C2 6634 bne.s twoXtwo branch to 32 x 32 bit mult 684 000031C4 C342 exg d1,d2 put 16 bit value in d1 685 * 686 000031C6 3602 twoXone move.w d2,d3 687 000031C8 C6C1 mulu d1,d3 low order partial product 688 000031CA 2802 move.l d2,d4 689 000031CC 4844 swap d4 690 000031CE C8C1 mulu d1,d4 high order partial product 691 000031D0 4843 swap d3 692 000031D2 7A00 moveq #0,d5 clear high word 693 000031D4 3A03 move.w d3,d5 694 000031D6 D885 add.l d5,d4 add middle products 695 000031D8 4A41 tst.w d1 sign of multiplier ??? 696 000031DA 6A02 bpl.s mcand 697 000031DC 9882 sub.l d2,d4 subtract multiplicand 698 000031DE 4A82 mcand tst.l d2 sign of multiplicand ??? 699 000031E0 6A06 bpl.s out 700 000031E2 3A01 move.w d1,d5 if negative 701 000031E4 4845 swap d5 702 000031E6 9885 sub.l d5,d4 subtract multiplier 703 000031E8 3044 out movea.w d4,a0 704 000031EA B1C4 cmpa.l d4,a0 test for overflow 705 000031EC 664E bne.s ovflow 706 000031EE 4843 swap d3 707 000031F0 3F03 move.w d3,-(sp) store low order part 708 000031F2 3F04 move.w d4,-(sp) store high order part 709 000031F4 2040 movea.l d0,a0 fake rts 710 000031F6 4ED0 jmp (a0) 711 * 712 0000 31F8 twoXtwo equ * 713 000031F8 2601 move.l d1,d3 look at multiplier 714 000031FA 7E00 moveq #0,d7 clear flag 715 000031FC E283 asr.l #1,d3 divide by 2 716 000031FE 6402 bcc.s even1 catch LSB 717 00003200 2E02 move.l d2,d7 use multiplicand in flag 718 00003202 3043 even1 movea.w d3,a0 check for 16 bit 2's compl 719 00003204 B688 cmp.l a0,d3 720 00003206 6700 0016 beq soneXtwo 721 0000320A 2602 move.l d2,d3 otherwise try multiplicand PAGE 14 [3.3a] 6/28/89 17:46:28 ASSEMBLY OF BOOTROM2.TEXT 722 0000320C 7E00 moveq #0,d7 clear flag 723 0000320E E283 asr.l #1,d3 divide by 2 724 00003210 6402 bcc.s even2 catch LSB 725 00003212 2E01 move.l d1,d7 use multiplier in flag 726 00003214 3043 even2 movea.w d3,a0 check for 16 bit 2's compl 727 00003216 B688 cmp.l a0,d3 728 00003218 6600 0022 bne ovflow 729 0000321C 2401 move.l d1,d2 730 0000321E 43FA 0008 soneXtwo lea muldone,a1 731 00003222 C189 exg a1,d0 use twoXone mult routine 732 00003224 2203 move.l d3,d1 733 00003226 609E bra.s twoXone 734 00003228 584F muldone addq #4,sp clean up stack 735 0000322A D643 add.w d3,d3 multiply product by 2 736 0000322C D984 addx.l d4,d4 737 0000322E D647 add.w d7,d3 add flag 738 00003230 4847 swap d7 739 00003232 48C7 ext.l d7 740 00003234 D987 addx.l d7,d4 741 00003236 4843 swap d3 put d3 in wrong order for out 742 00003238 2009 move.l a1,d0 put return address in d0 743 0000323A 60AC bra.s out 744 0000323C 4E44 ovflow trap #4 PAGE 15 [3.3a] 6/28/89 17:46:28 ASSEMBLY OF BOOTROM2.TEXT 746 *------------------------------------------ 747 DEF E@DIV 748 DEF E@MOD 749 *------------------------------------------ 750 * register usage 751 * d0 - return address 752 * d1 - divisor 753 * d2 - dividend and quotient 754 * d3 - remainder 755 * d4 - loop counter 756 * d5 - sign of remainder 757 * d6 - sign of quotent 758 * d7 - mod/div flag 759 * 760 0000323E 7E01 e@mod moveq #1,d7 set mod flag 761 00003240 6002 bra.s d_start 762 00003242 7E00 e@div moveq #0,d7 clear mod flag 763 00003244 4CDF 0007 d_start movem.l (sp)+,d0/d1/d2 read return addr and operands 764 00003248 4A81 tst.l d1 divide by zero? 765 0000324A 671A beq.s zerodiv 766 0000324C 3041 movea.w d1,a0 is divisor a 767 0000324E B288 cmp.l a0,d1 16 bit integer? 768 00003250 6616 bne.s do_full 769 00003252 2602 move.l d2,d3 try signed divide 770 00003254 87C1 divs d1,d3 771 00003256 6910 bvs.s do_full did it work? 772 00003258 4A47 tst.w d7 mod or div? 773 0000325A 6702 beq.s div_1 774 0000325C 4843 swap d3 775 0000325E 48C3 div_1 ext.l d3 776 00003260 2F03 dm_out move.l d3,-(sp) push result 777 00003262 2040 movea.l d0,a0 778 00003264 4ED0 jmp (a0) fake return 779 00003266 4E45 zerodiv trap #5 780 * 781 * convert divisor and dividend to sign magnitude 782 * 783 00003268 780F do_full moveq #15,d4 loop count - 1 784 0000326A 7C00 moveq #0,d6 sign of quotient 785 0000326C 7A00 moveq #0,d5 sign of remainder 786 0000326E 4A81 tst.l d1 divisor negative? 787 00003270 6A06 bpl.s divend 788 00003272 4481 neg.l d1 789 00003274 6948 bvs.s max_neg_dvsr 790 00003276 4646 not.w d6 set sign flag 791 00003278 4A82 divend tst.l d2 divedend negative 792 0000327A 6A10 bpl.s rmndr 793 0000327C 4482 neg.l d2 complement quotient sign 794 0000327E 6808 bvc.s not_special 795 00003280 B2BC FFFF cmp.l #-1,d1 FFFF 796 00003286 67B4 beq.s ovflow 797 00003288 4646 not_special not d6 flag 798 0000328A 4645 not d5 negative remainder 799 0000328C 7600 rmndr moveq #0,d3 clear remainder 800 0000328E 4841 swap d1 is divisor <= 16 bits 801 00003290 4A41 tst.w d1 PAGE 16 [3.3a] 6/28/89 17:46:28 ASSEMBLY OF BOOTROM2.TEXT 802 00003292 663C bne.s big_div 803 00003294 4842 swap d2 804 00003296 4841 swap d1 805 00003298 3602 move.w d2,d3 get high order dividend 806 0000329A 86C1 divu d1,d3 high part of divide 807 0000329C 3403 move.w d3,d2 high quotient to d2 808 0000329E 4842 swap d2 809 000032A0 3602 move.w d2,d3 divide low order 810 000032A2 86C1 divu d1,d3 dividend by divisor 811 000032A4 3403 move.w d3,d2 quotient in d2 812 000032A6 4243 clr.w d3 813 000032A8 4843 swap d3 remainder in d3 814 * put in correct sigh for quotient and remainder 815 000032AA 4A46 dm_fixup tst.w d6 816 000032AC 6A02 bpl.s chk_rem 817 000032AE 4482 neg.l d2 818 000032B0 4A45 chk_rem tst.w d5 819 000032B2 6A02 bpl.s dm_store 820 000032B4 4483 neg.l d3 821 000032B6 4A47 dm_store tst.w d7 div or mod? 822 000032B8 66A6 bne.s dm_out 823 000032BA C543 exg d2,d3 824 000032BC 60A2 bra.s dm_out 825 * 826 * handle maximum negative divisor 827 * 828 000032BE 4482 max_neg_dvsr neg.l d2 829 000032C0 6908 bvs.s max_max test for max neg dividend 830 000032C2 2602 move.l d2,d3 831 000032C4 4483 neg.l d3 832 000032C6 7400 moveq #0,d2 833 000032C8 60EC bra.s dm_store 834 000032CA 7401 max_max moveq #1,d2 835 000032CC 7600 moveq #0,d3 836 000032CE 60E6 bra.s dm_store 837 * 838 * 32 bit divisor 839 * 840 000032D0 4841 big_div swap d1 restore divisor 841 000032D2 4842 swap d2 move high order 842 000032D4 3602 move.w d2,d3 dividend to remainder 843 000032D6 4242 clr.w d2 shift dividend 16 bits left 844 000032D8 9681 sub.l d1,d3 subtract divisor from rem. 845 000032DA 2041 movea.l d1,a0 divisor in a0 846 000032DC 4481 neg.l d1 minus divisor in d1 847 * 848 * co-routine for negative remainder 849 * 850 000032DE D482 m_top add.l d2,d2 shift dividend and quotient 851 000032E0 D783 addx.l d3,d3 shift remainder 852 000032E2 D688 add.l a0,d3 add divisor 853 000032E4 6A12 bpl.s p_bottom remainder positive? 854 000032E6 51CC FFF6 m_bottom dbra d4,m_top loop 16 times 855 000032EA D688 add.l a0,d3 restore remainder 856 000032EC D482 add.l d2,d2 shift in last bit of quotient 857 000032EE 60BA bra.s dm_fixup 858 * PAGE 17 [3.3a] 6/28/89 17:46:28 ASSEMBLY OF BOOTROM2.TEXT 859 * co-routine for positive remainder 860 * 861 000032F0 D582 p_top addx.l d2,d2 shift dividend and quotient 862 000032F2 D783 addx.l d3,d3 shift remainder 863 000032F4 D681 add.l d1,d3 subtract divisor 864 000032F6 6BEE bmi.s m_bottom remainder negative? 865 000032F8 51CC FFF6 p_bottom dbra d4,p_top loop 16 times 866 000032FC D582 addx.l d2,d2 shift in last bit of quotient 867 000032FE 60AA bra.s dm_fixup PAGE 18 [3.3a] 6/28/89 17:46:28 ASSEMBLY OF BOOTROM2.TEXT 869 *------------------------------------------ 870 DEF E@EQUAL 871 DEF E@NEQUAL 872 *------------------------------------------ 873 0000 3300 E@NEQUAL EQU * 874 00003300 1F3C 0001 move.b #1,-(sp) 875 00003304 1F3C 0000 move.b #0,-(sp) 876 00003308 6008 bra.s strrt 877 0000 330A E@EQUAL EQU * 878 0000330A 1F3C 0000 move.b #0,-(sp) 879 0000330E 1F3C 0001 move.b #1,-(sp) 880 * obtain sets from stack 881 00003312 266F 0008 strrt movea.l 8(sp),a3 address of right op 882 00003316 286F 000C movea.l 12(sp),a4 address of left op 883 * place minimum size in d5 884 0000331A 3E1B move.w (a3)+,d7 size of right op 885 0000331C 3C1C move.w (a4)+,d6 size of left op 886 0000331E BE46 cmp.w d6,d7 887 00003320 6F04 ble.s rightmin 888 00003322 3A06 LEFTMIN move.w d6,d5 889 00003324 6002 bra.s nulltest REI 7/3/80 890 00003326 3A07 RIGHTMIN move.w d7,d5 891 00003328 6714 nulltest beq.s restof REI 7/3/80 892 893 * perform set comparison 894 0000332A E445 LONG asr.w #2,d5 determine size in long words 895 0000332C 6408 bcc.s even even number of long words 896 0000332E B94B cmpm.w (a3)+,(a4)+ compare "odd" word 897 00003330 662C bne.s nope 898 00003332 4A45 tst.w d5 min size single word? 899 00003334 6708 beq.s restof 900 00003336 B98B EVEN cmpm.l (a3)+,(a4)+ compare long words 901 00003338 6624 bne.s nope 902 0000333A 5345 subq.w #1,d5 903 0000333C 6EF8 bgt.s even 904 * if operands of unequal size, test rest of longer - 905 * if all "extra" bits not 0, sets are unequal 906 0000333E 9E46 RESTOF sub.w d6,d7 size of right op-size of left op 907 00003340 6716 beq.s yep equal size 908 00003342 6A0C bpl.s right right op longer 909 00003344 4447 neg.w d7 d7 = # bytes longer 910 00003346 4A5C LEFT tst.w (a4)+ left op longer, test it 911 00003348 6614 bne.s nope 912 0000334A 5547 subq.w #2,d7 2 bytes tested 913 0000334C 6EF8 bgt.s left 914 0000334E 6008 bra.s yep 915 00003350 4A5B RIGHT tst.w (a3)+ test right op 916 00003352 660A bne.s nope 917 00003354 5547 subq.w #2,d7 2 bytes tested 918 00003356 6EF8 bgt.s right 919 * move true or false value to result 920 00003358 1F57 000E YEP move.b (sp),14(sp) 921 0000335C 6006 bra.s fnsh 922 0000335E 1F6F 0002 NOPE move.b 2(sp),14(sp) 000E 923 00003364 2F6F 0004 fnsh move.l 4(sp),10(sp) put return address at the right place 000A PAGE 19 [3.3a] 6/28/89 17:46:28 ASSEMBLY OF BOOTROM2.TEXT 924 0000336A DFFC 0000 adda.l #10,sp eliminate extra bytes in stack 000A 925 00003370 4E75 rts PAGE 20 [3.3a] 6/28/89 17:46:28 ASSEMBLY OF BOOTROM2.TEXT 927 *------------------------------------------ 928 DEF E@ASSIGN 929 *------------------------------------------ 930 0000 3372 E@ASSIGN EQU * 931 * obtain sets from stack 932 00003372 266F 0004 movea.l 4(sp),a3 address of source 933 00003376 286F 0008 movea.l 8(sp),a4 address of dest 934 * place size in d7 935 0000337A 3E1B move.w (a3)+,d7 size of source 936 0000337C 38C7 move.w d7,(a4)+ store size in dest 937 0000337E 6710 beq.s done2 check for zero length set 938 * perform assignment 939 00003380 E447 asr.w #2,d7 determine size in long words 940 00003382 6406 bcc.s evenn even number of long words 941 00003384 38DB move.w (a3)+,(a4)+ move "odd" word 942 00003386 4A47 tst.w d7 min size single word? 943 00003388 6706 beq.s done2 944 0000338A 28DB EVENN move.l (a3)+,(a4)+ move long words 945 0000338C 5347 subq.w #1,d7 946 0000338E 6EFA bgt.s evenn 947 00003390 2F57 0008 DONE2 move.l (sp),8(sp) eliminate extra bytes in stack 948 00003394 508F addq.l #8,sp 949 00003396 4E75 rts PAGE 21 [3.3a] 6/28/89 17:46:28 ASSEMBLY OF BOOTROM2.TEXT 951 *------------------------------------------ 952 DEF E@UNION 953 *------------------------------------------ 954 0000 3398 E@UNION EQU * 955 * obtain sets from stack 956 00003398 246F 0004 movea.l 4(sp),a2 address of right op 957 0000339C 286F 0008 movea.l 8(sp),a4 address of left op 958 000033A0 266F 000C movea.l 12(sp),a3 address of result 959 * place minimum size in d5 960 000033A4 3E1A move.w (a2)+,d7 size of right op 961 000033A6 3C1C move.w (a4)+,d6 size of left op 962 000033A8 BE46 cmp.w d6,d7 963 000033AA 6F06 ble.s rightmin2 964 000033AC 3A06 LEFTMIN2 move.w d6,d5 965 000033AE 36C7 move.w d7,(a3)+ result size is max op size 966 000033B0 6004 bra.s nulltest2 REI 7/3 967 000033B2 3A07 RIGHTMIN2 move.w d7,d5 968 000033B4 36C6 move.w d6,(a3)+ result size is max op size 969 000033B6 4A45 nulltest2 tst.w d5 REI 7/3 970 000033B8 6718 beq.s restof2 REI 7/3 971 972 * perform set union 973 000033BA E445 LONG3 asr.w #2,d5 determine size in long words 974 000033BC 640A bcc.s even3 even number of long words 975 000033BE 381A move.w (a2)+,d4 union "odd" word 976 000033C0 885C or.w (a4)+,d4 977 000033C2 36C4 move.w d4,(a3)+ 978 000033C4 4A45 tst.w d5 min size single word? 979 000033C6 670A beq.s restof2 980 000033C8 281A EVEN3 move.l (a2)+,d4 union long words 981 000033CA 889C or.l (a4)+,d4 982 000033CC 26C4 move.l d4,(a3)+ 983 000033CE 5345 subq.w #1,d5 984 000033D0 6EF6 bgt.s even3 985 * move rest of longer operand 986 000033D2 9E46 RESTOF2 sub.w d6,d7 size of right op-size of left op 987 000033D4 6712 beq.s done3 equal size 988 000033D6 6A0A bpl.s right2 right op longer 989 000033D8 4447 neg.w d7 d7 = # bytes longer 990 000033DA 36DC LEFT2 move.w (a4)+,(a3)+ left op longer, move it 991 000033DC 5547 subq.w #2,d7 2 bytes moved 992 000033DE 6EFA bgt.s left2 993 000033E0 6006 bra.s done3 994 000033E2 36DA RIGHT2 move.w (a2)+,(a3)+ move right op 995 000033E4 5547 subq.w #2,d7 2 bytes moved 996 000033E6 6EFA bgt.s right2 997 000033E8 2F57 000C DONE3 move.l (sp),12(sp) eliminate extra bytes in stack 998 000033EC DFFC 0000 adda.l #12,sp 000C 999 000033F2 4E75 rts PAGE 22 [3.3a] 6/28/89 17:46:28 ASSEMBLY OF BOOTROM2.TEXT 1001 *------------------------------------------ 1002 DEF E@INCLUSION 1003 *------------------------------------------ 1004 0000 33F4 E@INCLUSION EQU * 1005 * obtain sets from stack 1006 000033F4 266F 0004 movea.l 4(sp),a3 address of right op 1007 000033F8 286F 0008 movea.l 8(sp),a4 address of left op 1008 * place minimum size in d5 1009 000033FC 3E1B move.w (a3)+,d7 size of right op 1010 000033FE 3C1C move.w (a4)+,d6 size of left op 1011 00003400 BE46 cmp.w d6,d7 1012 00003402 6F04 ble.s rightmin3 1013 00003404 3A06 LEFTMIN3 move.w d6,d5 1014 00003406 6002 bra.s nulltest3 REI 7/3 1015 00003408 3A07 RIGHTMIN3 move.w d7,d5 1016 0000340A 671C nulltest3 beq.s restof3 REI 7/3 1017 1018 * perform inclusion test 1019 0000340C E445 LONG4 asr.w #2,d5 determine size in long words 1020 0000340E 640C bcc.s even4 even number of long words 1021 00003410 381B move.w (a3)+,d4 "odd" word inclusion 1022 00003412 4644 not.w d4 1023 00003414 C85C and.w (a4)+,d4 1024 00003416 6624 bne.s nope2 1025 00003418 4A45 tst.w d5 min size single word? 1026 0000341A 670C beq.s restof3 1027 0000341C 281B EVEN4 move.l (a3)+,d4 long word inclusion 1028 0000341E 4684 not.l d4 1029 00003420 C89C and.l (a4)+,d4 1030 00003422 6618 bne.s nope2 1031 00003424 5345 subq.w #1,d5 1032 00003426 6EF4 bgt.s even4 1033 * if left operand longer, test "extra" portion 1034 00003428 9C47 RESTOF3 sub.w d7,d6 size of left op-size of right op 1035 0000342A 6F08 ble.s yep2 left op not longer 1036 0000342C 4A5C LEFT3 tst.w (a4)+ left op longer, test it 1037 0000342E 660C bne.s nope2 1038 00003430 5546 subq.w #2,d6 2 bytes tested 1039 00003432 6EF8 bgt.s left3 1040 * move boolean value to result 1041 00003434 1F7C 0001 YEP2 move.b #1,10(sp) true 000A 1042 0000343A 6006 bra.s cleanup 1043 0000343C 1F7C 0000 NOPE2 move.b #0,10(sp) false 000A 1044 00003442 2F57 0006 CLEANUP move.l (sp),6(sp) eliminate extra bytes in stack 1045 00003446 5C8F addq.l #6,sp 1046 00003448 4E75 rts PAGE 23 [3.3a] 6/28/89 17:46:28 ASSEMBLY OF BOOTROM2.TEXT 1048 *------------------------------------------ 1049 DEF E@INTERSECT 1050 *------------------------------------------ 1051 0000 344A E@INTERSECT EQU * 1052 * obtain sets from stack 1053 0000344A 246F 0004 movea.l 4(sp),a2 address of right op 1054 0000344E 286F 0008 movea.l 8(sp),a4 address of left op 1055 00003452 266F 000C movea.l 12(sp),a3 address of result 1056 * place minimum size in d7 1057 00003456 3E1A move.w (a2)+,d7 size of right op 1058 00003458 BE5C cmp.w (a4)+,d7 compare with size of left op 1059 0000345A 6F04 ble.s setsize 1060 0000345C 3E2C FFFE LEFTMIN4 move.w -2(a4),d7 1061 00003460 36C7 SETSIZE move.w d7,(a3)+ result size = min op size 1062 00003462 6718 beq.s done4 REI 7/3 1063 1064 * perform set intersection 1065 00003464 E447 asr.w #2,d7 determine size in long words 1066 00003466 640A bcc.s even5 even number of long words 1067 00003468 3C1A move.w (a2)+,d6 intersect "odd" word 1068 0000346A CC5C and.w (a4)+,d6 1069 0000346C 36C6 move.w d6,(a3)+ 1070 0000346E 4A47 tst.w d7 min size single word? 1071 00003470 670A beq.s done4 1072 00003472 2C1A EVEN5 move.l (a2)+,d6 intersect long words 1073 00003474 CC9C and.l (a4)+,d6 1074 00003476 26C6 move.l d6,(a3)+ 1075 00003478 5347 subq.w #1,d7 1076 0000347A 6EF6 bgt.s even5 1077 0000347C 2F57 000C DONE4 move.l (sp),12(sp) 1078 00003480 DFFC 0000 adda.l #12,sp 000C 1079 00003486 4E75 rts PAGE 24 [3.3a] 6/28/89 17:46:28 ASSEMBLY OF BOOTROM2.TEXT 1081 *------------------------------------------ 1082 DEF E@DIFFERENCE 1083 *------------------------------------------ 1084 0000 3488 E@DIFFERENCE EQU * 1085 * obtain sets from stack 1086 00003488 246F 0004 movea.l 4(sp),a2 address of right op 1087 0000348C 286F 0008 movea.l 8(sp),a4 address of left op 1088 00003490 266F 000C movea.l 12(sp),a3 address of result 1089 * place minimum size in d5 1090 00003494 3E1A move.w (a2)+,d7 size of right op 1091 00003496 3C1C move.w (a4)+,d6 size of left op 1092 00003498 BE46 cmp.w d6,d7 1093 0000349A 6F04 ble.s rightmin5 1094 0000349C 3A06 LEFTMIN5 move.w d6,d5 1095 0000349E 6002 bra.s setsize2 1096 000034A0 3A07 RIGHTMIN5 move.w d7,d5 1097 000034A2 36C6 SETSIZE2 move.w d6,(a3)+ result size = size of left op 1098 000034A4 4A45 tst.w d5 REI 7/3 1099 000034A6 671C beq.s restof4 REI 7/3 1100 1101 * perform difference 1102 000034A8 E445 asr.w #2,d5 determine size in long words 1103 000034AA 640C bcc.s even6 even number of long words 1104 000034AC 381A move.w (a2)+,d4 difference of "odd" word 1105 000034AE 4644 not.w d4 1106 000034B0 C85C and.w (a4)+,d4 1107 000034B2 36C4 move.w d4,(a3)+ 1108 000034B4 4A45 tst.w d5 min size single word? 1109 000034B6 670C beq.s restof4 1110 000034B8 281A EVEN6 move.l (a2)+,d4 long word difference 1111 000034BA 4684 not.l d4 1112 000034BC C89C and.l (a4)+,d4 1113 000034BE 26C4 move.l d4,(a3)+ 1114 000034C0 5345 subq.w #1,d5 1115 000034C2 6EF4 bgt.s even6 1116 * if left operand longer, move to result 1117 000034C4 9C47 RESTOF4 sub.w d7,d6 size of left op-size of right op 1118 000034C6 6F06 ble.s done5 1119 000034C8 36DC LEFT4 move.w (a4)+,(a3)+ left op longer, move it 1120 000034CA 5546 subq.w #2,d6 2 bytes moved 1121 000034CC 6EFA bgt.s left4 1122 000034CE 2F57 000C DONE5 move.l (sp),12(sp) eliminate extra bytes in stack 1123 000034D2 DFFC 0000 adda.l #12,sp 000C 1124 000034D8 4E75 rts PAGE 25 [3.3a] 6/28/89 17:46:28 ASSEMBLY OF BOOTROM2.TEXT 1126 *------------------------------------------ 1127 DEF E@IN 1128 *------------------------------------------ 1129 000034DA 205F E@IN movea.l (sp)+,a0 return address 1130 000034DC 225F movea.l (sp)+,a1 set address 1131 000034DE 201F move.l (sp)+,d0 selector value 1132 000034E0 6D18 blt.s lfalse selector<0? 1133 000034E2 81FC 0008 divs #8,d0 1134 000034E6 B051 cmp.w (a1),d0 selector>setsize? 1135 000034E8 6C10 bge.s lfalse 1136 000034EA 2200 move.l d0,d1 1137 000034EC 4841 swap d1 1138 000034EE 1031 0002 move.b 2(a1,d0),d0 get selected byte 1139 000034F2 E328 lsl.b d1,d0 construct Boolean result 1140 000034F4 EE08 lsr.b #7,d0 1141 000034F6 1F00 move.b d0,-(sp) push the result 1142 000034F8 4ED0 jmp (a0) 1143 000034FA 4227 lfalse clr.b -(sp) 1144 000034FC 4ED0 jmp (a0) PAGE 26 [3.3a] 6/28/89 17:46:28 ASSEMBLY OF BOOTROM2.TEXT 1146 *------------------------------------------ 1147 DEF E@DDELEMENT 1148 *------------------------------------------ 1149 0000 34FE E@DDELEMENT EQU * 1150 000034FE 205F movea.l (sp)+,a0 return address 1151 00003500 301F move.w (sp)+,d0 element number to add to set 1152 00003502 225F movea.l (sp)+,a1 source address 1153 00003504 2457 movea.l (sp),a2 destination address 1154 00003506 3E19 move.w (a1)+,d7 get set size of source 1155 00003508 34C7 move.w d7,(a2)+ store size value 1156 0000350A B3CA cmpa.l a2,a1 see if source and destination are equal 1157 0000350C 670C beq.s insert1 1158 * copy source set to the destination set 1159 0000350E 264A setcopy movea.l a2,a3 save destination address 1160 00003510 3C07 move.w d7,d6 save size for destination 1161 00003512 6F06 ble.s insert1 check for size of zero 1162 00003514 36D9 rept move.w (a1)+,(a3)+ sets are always an even number of bytes 1163 00003516 5546 subq.w #2,d6 1164 00003518 6EFA bgt.s rept 1165 * insert an element in a set, adjusting the size of the destination if needed 1166 0000351A 48C0 insert1 ext.l d0 1167 0000351C 81FC 0010 divs #16,d0 byte offset in low word 1168 00003520 2A00 move.l d0,d5 1169 00003522 4845 swap d5 bit offset from left of byte 1170 00003524 9A7C 000F sub.w #15,d5 1171 00003528 4445 neg.w d5 bit offset from right 1172 0000352A E340 asl #1,d0 make d0 a byte offset 1173 0000352C 3200 move.w d0,d1 compute final size into d1 1174 0000352E 5441 addq.w #2,d1 put zeros in the two bytes containing 1175 00003530 3401 move.w d1,d2 the new bit if it is beyond current size 1176 00003532 926A FFFE sub.w -2(a2),d1 1177 00003536 6F0E ble.s exxiit 1178 00003538 3542 FFFE move.w d2,-2(a2) store appropriate size for set 1179 0000353C 47F2 2000 lea 0(a2,d2),a3 1180 00003540 4263 zerout clr.w -(a3) 1181 00003542 5541 subq.w #2,d1 1182 00003544 6EFA bgt.s zerout 1183 00003546 0885 0003 exxiit bclr #3,d5 { received upgrade 9/9 } 1184 0000354A 6706 beq.s skiipp 1185 0000354C 0BF2 0000 bset d5,0(a2,d0) 1186 00003550 4ED0 jmp (a0) 1187 00003552 0BF2 0001 skiipp bset d5,1(a2,d0) 1188 00003556 4ED0 jmp (a0) PAGE 27 [3.3a] 6/28/89 17:46:28 ASSEMBLY OF BOOTROM2.TEXT 1190 *------------------------------------------ 1191 * procedure SCOPY (var destination, source: string; 1192 * index, length: integer); 1193 * procedure SAPPEND (var destination, source: string); 1194 * procedure INSERT (var source, destination: string; index: integer); 1195 * procedure DELETE (var destination: string; index, length: integer); 1196 * function POS (var target, source: string): integer; 1197 * 1198 NOSYMS 1199 1200 0000 0004 DESTINATION EQU A4 1201 0000 0003 SOURCE EQU A3 1202 0000 0002 RETURN EQU A2 1203 0000 0001 PTR EQU A1 1204 0000 0000 PTR2 EQU A0 1205 0000 0004 TARGET EQU DESTINATION 1206 1207 0000 0007 INDEX EQU D7 1208 0000 0006 LENGTH EQU D6 1209 0000 0005 DLEN EQU D5 1210 0000 0004 SLEN EQU D4 1211 0000 0003 ONRIGHT EQU D3 1212 0000 0002 COUNT EQU D2 1213 0000 0001 PTEMP EQU D1 1214 0000 0000 CHAR EQU D0 1215 0000 0005 TLEN EQU DLEN 1216 1217 0000 3558 SAPPEND EQU * 1218 00003558 4CDF 1C00 MOVEM.L (SP)+,RETURN/SOURCE/DESTINATION RETURN ADDRESS, PARAMETERS 1219 0000355C 4244 CLR SLEN 1220 0000355E 181B MOVE.B (SOURCE)+,SLEN LENGTH OF SOURCE 1221 00003560 6716 BEQ.S L2 FINISH EARLY IF NULL 1222 00003562 4245 CLR DLEN 1223 00003564 1A14 MOVE.B (DESTINATION),DLEN LENGTH OF DESTINATION 1224 00003566 43F4 5001 LEA 1(DESTINATION,DLEN.W),PTR START AT DEST[DLEN+1] 1225 0000356A DA04 ADD.B SLEN,DLEN COMPUTE LENGTH OF RESULT 1226 0000356C 650A BCS.S L2 ABORT IF TOO LONG 1227 0000356E 1885 MOVE.B DLEN,(DESTINATION) 1228 00003570 5344 SUBQ #1,SLEN 1229 00003572 12DB L1 MOVE.B (SOURCE)+,(PTR)+ TRANSFER BYTES 1230 00003574 51CC FFFC DBRA SLEN,L1 1231 00003578 4ED2 L2 JMP (RETURN) END 1232 1233 0000 357A INSERT EQU * 1234 0000357A 245F MOVEA.L (SP)+,RETURN 1235 0000357C 2E1F MOVE.L (SP)+,INDEX GET PARAMETERS 1236 0000357E 285F MOVEA.L (SP)+,DESTINATION 1237 00003580 265F MOVEA.L (SP)+,SOURCE 1238 00003582 6F32 BLE.S L6 ERROR EXIT IF NOT (INDEX > 0 ) 1239 00003584 4244 CLR SLEN 1240 00003586 181B MOVE.B (SOURCE)+,SLEN 1241 00003588 672C BEQ.S L6 EXIT IF SOURCE IS NULL 1242 0000358A 4245 CLR DLEN 1243 0000358C 1A14 MOVE.B (DESTINATION),DLEN 1244 0000358E 43F4 5001 LEA 1(DESTINATION,DLEN.W),PTR POINT TO "TAIL" OF DESTINATION 1245 00003592 3605 MOVE DLEN,ONRIGHT (SAVE DLEN FOR LATER) 1246 00003594 DA04 ADD.B SLEN,DLEN NEW LENGTH OF DESTINATION PAGE 28 [3.3a] 6/28/89 17:46:28 ASSEMBLY OF BOOTROM2.TEXT 1247 00003596 651E BCS.S L6 EXIT IF TOO LONG 1248 00003598 1885 MOVE.B DLEN,(DESTINATION) 1249 0000359A 9647 SUB INDEX,ONRIGHT NUMBER OF BYTES TO SHIFT RIGHT (LESS 1) 1250 0000359C 6C06 BGE.S L3 1251 0000359E 5243 ADDQ #1,ONRIGHT TEST FOR EXACTLY ZERO 1252 000035A0 670E BEQ.S L5 1253 000035A2 4ED2 JMP (RETURN) ERROR EXIT (INDEX > DLEN + 1) 1254 000035A4 41F1 4000 L3 LEA 0(PTR,SLEN.W),PTR2 MAKE ROOM FOR SOURCE 1255 000035A8 1121 L4 MOVE.B -(PTR),-(PTR2) BY SHIFTING RIGHT 1256 000035AA 51CB FFFC DBRA ONRIGHT,L4 1257 000035AE 5344 SUBQ #1,SLEN 1258 000035B0 12DB L5 MOVE.B (SOURCE)+,(PTR)+ TRANSFER BYTES 1259 000035B2 51CC FFFC DBRA SLEN,L5 1260 000035B6 4ED2 L6 JMP (RETURN) END 1261 1262 0000 35B8 SCOPY EQU * 1263 000035B8 245F MOVEA.L (SP)+,RETURN 1264 000035BA 2C1F MOVE.L (SP)+,LENGTH GET PARAMETERS 1265 000035BC 2E1F MOVE.L (SP)+,INDEX 1266 000035BE 265F MOVEA.L (SP)+,SOURCE 1267 000035C0 285F MOVEA.L (SP)+,DESTINATION 1268 000035C2 6F24 BLE.S L9 EXIT IF NOT (INDEX > 0) 1269 000035C4 4A86 TST.L LENGTH 1270 000035C6 6D20 BLT.S L9 ERROR IF REQUESTED LENGTH < 0 1271 000035C8 4244 CLR SLEN 1272 000035CA 1813 MOVE.B (SOURCE),SLEN 1273 000035CC 5244 ADDQ #1,SLEN 1274 000035CE 9847 SUB INDEX,SLEN LENGTH OF SUBSTRING 1275 000035D0 6D16 BLT.S L9 ERROR IF (INDEX > SLEN + 1) 1276 000035D2 BC44 CMP SLEN,LENGTH TAKE MINIMUM OF SLEN, LENGTH 1277 000035D4 6F02 BLE.S L7 1278 000035D6 3C04 MOVE SLEN,LENGTH SUBSTRING LENGTH IS SMALLER 1279 000035D8 18C6 L7 MOVE.B LENGTH,(DESTINATION)+ SET LENGTH INTO DESTINATION 1280 000035DA 5346 SUBQ #1,LENGTH 1281 000035DC 6D0A BLT.S L9 1282 000035DE 43F3 7000 LEA 0(SOURCE,INDEX.W),PTR 1283 000035E2 18D9 L8 MOVE.B (PTR)+,(DESTINATION)+ COPY THE BYTES 1284 000035E4 51CE FFFC DBRA LENGTH,L8 1285 000035E8 4ED2 L9 JMP (RETURN) 1286 1287 0000 35EA DELETE EQU * 1288 000035EA 245F MOVEA.L (SP)+,RETURN 1289 000035EC 2C1F MOVE.L (SP)+,LENGTH GET PARAMETERS 1290 000035EE 2E1F MOVE.L (SP)+,INDEX 1291 000035F0 285F MOVEA.L (SP)+,DESTINATION 1292 000035F2 6F28 BLE.S L11 EXIT IF NOT (INDEX > 0) 1293 000035F4 4A86 TST.L LENGTH 1294 000035F6 6F24 BLE.S L11 EXIT IF LENGTH <= 0 1295 000035F8 4245 CLR DLEN 1296 000035FA 1A14 MOVE.B (DESTINATION),DLEN 1297 000035FC 9A46 SUB LENGTH,DLEN NEW LENGTH OF STRING 1298 000035FE 6D1C BLT.S L11 ERROR IF < 0 1299 00003600 3605 MOVE DLEN,ONRIGHT 1300 00003602 5243 ADDQ #1,ONRIGHT 1301 00003604 9647 SUB INDEX,ONRIGHT NUMBER OF CHARACTERS TO MOVE 1302 00003606 6D14 BLT.S L11 ERROR IF NEGATIVE 1303 00003608 1885 MOVE.B DLEN,(DESTINATION) SET NEW LENGTH PAGE 29 [3.3a] 6/28/89 17:46:28 ASSEMBLY OF BOOTROM2.TEXT 1304 0000360A 5343 SUBQ #1,ONRIGHT 1305 0000360C 6D0E BLT.S L11 FINISH EARLY IF NO BYTES TO MOVE 1306 0000360E 43F4 7000 LEA 0(DESTINATION,INDEX.W),PTR 1307 00003612 41F1 6000 LEA 0(PTR,LENGTH.W),PTR2 1308 00003616 12D8 L10 MOVE.B (PTR2)+,(PTR)+ 1309 00003618 51CB FFFC DBRA ONRIGHT,L10 1310 0000361C 4ED2 L11 JMP (RETURN) 1311 1312 0000 361E POS EQU * 1313 0000361E 4CDF 1C00 MOVEM.L (SP)+,RETURN/SOURCE/TARGET 1314 00003622 4297 CLR.L (SP) POS WILL BE 0 IF SEARCH FAILS 1315 00003624 4245 CLR TLEN 1316 00003626 1A1C MOVE.B (TARGET)+,TLEN 1317 00003628 672C BEQ.S L16 POS IS 0 IF TARGET IS NULL 1318 0000362A 4284 CLR.L SLEN 1319 0000362C 181B MOVE.B (SOURCE)+,SLEN 1320 0000362E 9845 SUB TLEN,SLEN NUMBER OF POSSIBLE PLACES (LESS 1) 1321 00003630 6D24 BLT.S L16 POS IS 0 IF TARGET LONGER THAN SRC 1322 00003632 101C MOVE.B (TARGET)+,CHAR FIRST CHARACTER OF TARGET 1323 00003634 5545 SUBQ #2,TLEN LENGTH OF REST OF TARGET (LESS 1) 1324 00003636 2204 MOVE.L SLEN,PTEMP TENTATIVE VALUE OF POS 1325 1326 00003638 B01B L12 CMP.B (SOURCE)+,CHAR 1327 0000363A 57CC FFFC L13 DBEQ SLEN,L12 LOOP TILL FIND FIRST BYTE OF TARGET 1328 0000363E 6616 BNE.S L16 POS IS 0 IF DIDN'T FIND IT 1329 00003640 3405 MOVE TLEN,COUNT REMAINING CHARACTERS (LESS 1) 1330 00003642 6D0C BLT.S L15 FOUND IT IF LENGTH(TARGET) IS 1 1331 00003644 43D4 LEA (TARGET),PTR ELSE COMPARE REMAINING CHARS 1332 00003646 41D3 LEA (SOURCE),PTR2 1333 00003648 B109 L14 CMPM.B (PTR)+,(PTR2)+ LOOP TILL MATCH OR MISMATCH 1334 0000364A 56CA FFFC DBNE COUNT,L14 1335 0000364E 66EA BNE.S L13 IF MISMATCH, CONTINUE SCAN 1336 00003650 9244 L15 SUB SLEN,PTEMP FOUND IT, SO FIGURE HOW FAR 1337 00003652 5241 ADDQ #1,PTEMP WE ADVANCED 1338 00003654 2E81 MOVE.L PTEMP,(SP) RETURN INDEX VALUE 1339 00003656 4ED2 L16 JMP (RETURN) 1340 ***************************************************************************** 1341 * 1342 * These are the power-of-ten tables that are used in the 1343 * decimal <--> real conversions. 1344 * 1345 * Decimal / real numbers in the range [10^(-64),10^(64)] 1346 * convert into real / decimal numbers with one real 1347 * multiply while all other decimal <--> real conversions require 1348 * 2 real multiplies and the use of the table tb_auxpt. 1349 * 1350 * For a complete description of the conversion algorithms, see the 1351 * Math IRS. 1352 * 1353 * The table contains the real values: 1354 * 10^(-80),10^(-79),...,10^(0),.10^(1),...,10^(64). 1355 * 1356 00003658 2F52 F8AC tb_pwt dc.l $2F52F8AC,$174D6123,$2F87B6D7,$1D20B96C 1357 00003668 2FBD A48C dc.l $2FBDA48C,$E468E7C7,$2FF286D8,$0EC190DC 1358 00003678 3027 288E dc.l $3027288E,$1271F513,$305CF2B1,$970E7258 1359 00003688 3092 17AE dc.l $309217AE,$FE690777,$30C69D9A,$BE034955 1360 00003698 30FC 4501 tb_pwt8 dc.l $30FC4501,$6D841BAA,$3131AB20,$E472914A PAGE 30 [3.3a] 6/28/89 17:46:28 ASSEMBLY OF BOOTROM2.TEXT 1361 000036A8 3166 15E9 dc.l $316615E9,$1D8F359D,$319B9B63,$64F30304 1362 000036B8 31D1 411E tb_pwt4 dc.l $31D1411E,$1F17E1E3,$32059165,$A6DDDA5B 1363 000036C8 323A F5BF dc.l $323AF5BF,$109550F2,$3270D997,$6A5D5297 1364 000036D8 32A5 0FFD tb_pwtt dc.l $32A50FFD,$44F4A73D,$32DA53FC,$9631D10D 1365 000036E8 3310 747D dc.l $3310747D,$DDDF22A8,$3344919D,$5556EB52 1366 000036F8 3379 B604 dc.l $3379B604,$AAACA626,$33B011C2,$EAABE7D8 1367 00003708 33E4 1633 dc.l $33E41633,$A556E1CE,$34191BC0,$8EAC9A41 1368 00003718 344F 62B0 dc.l $344F62B0,$B257C0D2,$34839DAE,$6F76D883 1369 00003728 34B8 851A dc.l $34B8851A,$0B548EA4,$34EEA660,$8E29B24D 1370 00003738 3523 27FC dc.l $352327FC,$58DA0F70,$3557F1FB,$6F10934C 1371 00003748 358D EE7A dc.l $358DEE7A,$4AD4B81F,$35C2B50C,$6EC4F313 1372 00003758 35F7 624F dc.l $35F7624F,$8A762FD8,$362D3AE3,$6D13BBCE 1373 00003768 3662 44CE dc.l $366244CE,$242C5561,$3696D601,$AD376AB9 1374 00003778 36CC 8B82 dc.l $36CC8B82,$18854567,$3701D731,$4F534B61 1375 00003788 3736 4CFD dc.l $37364CFD,$A3281E39,$376BE03D,$0BF225C7 1376 00003798 37A1 6C26 dc.l $37A16C26,$2777579C,$37D5C72F,$B1552D83 1377 000037A8 380B 38FB dc.l $380B38FB,$9DAA78E4,$3841039D,$428A8B8F 1378 000037B8 3875 4484 dc.l $38754484,$932D2E72,$38AA95A5,$B7F87A0F 1379 000037C8 38E0 9D87 dc.l $38E09D87,$92FB4C49,$3914C4E9,$77BA1F5C 1380 000037D8 3949 F623 dc.l $3949F623,$D5A8A733,$398039D6,$65896880 1381 000037E8 39B4 484B dc.l $39B4484B,$FEEBC2A0,$39E95A5E,$FEA6B347 1382 000037F8 3A1F B0F6 dc.l $3A1FB0F6,$BE506019,$3A53CE9A,$36F23C10 1383 00003808 3A88 C240 dc.l $3A88C240,$C4AECB14,$3ABEF2D0,$F5DA7DD9 1384 00003818 3AF3 57C2 dc.l $3AF357C2,$99A88EA7,$3B282DB3,$4012B251 1385 00003828 3B5E 3920 dc.l $3B5E3920,$10175EE6,$3B92E3B4,$0A0E9B4F 1386 00003838 3BC7 9CA1 dc.l $3BC79CA1,$0C924223,$3BFD83C9,$4FB6D2AC 1387 00003848 3C32 725D dc.l $3C32725D,$D1D243AC,$3C670EF5,$4646D497 1388 00003858 3C9C D2B2 dc.l $3C9CD2B2,$97D889BC,$3CD203AF,$9EE75616 1389 00003868 3D06 849B dc.l $3D06849B,$86A12B9B,$3D3C25C2,$68497682 1390 00003878 3D71 9799 dc.l $3D719799,$812DEA11,$3DA5FD7F,$E1796495 1391 00003888 3DDB 7CDF dc.l $3DDB7CDF,$D9D7BDBB,$3E112E0B,$E826D695 1392 00003898 3E45 798E dc.l $3E45798E,$E2308C3A,$3E7AD7F2,$9ABCAF48 1393 000038A8 3EB0 C6F7 dc.l $3EB0C6F7,$A0B5ED8D,$3EE4F8B5,$88E368F1 1394 000038B8 3F1A 36E2 dc.l $3F1A36E2,$EB1C432D,$3F50624D,$D2F1A9FC 1395 000038C8 3F84 7AE1 dc.l $3F847AE1,$47AE147B,$3FB99999,$9999999A 1396 000038D8 3FF0 0000 dc.l $3FF00000,$00000000 1397 000038E0 4024 0000 dc.l $40240000,$00000000,$40590000,$00000000 1398 000038F0 408F 4000 dc.l $408F4000,$00000000,$40C38800,$00000000 1399 00003900 40F8 6A00 dc.l $40F86A00,$00000000,$412E8480,$00000000 1400 00003910 4163 12D0 dc.l $416312D0,$00000000,$4197D784,$00000000 1401 00003920 41CD CD65 dc.l $41CDCD65,$00000000,$4202A05F,$20000000 1402 00003930 4237 4876 dc.l $42374876,$E8000000,$426D1A94,$A2000000 1403 00003940 42A2 309C dc.l $42A2309C,$E5400000,$42D6BCC4,$1E900000 1404 00003950 430C 6BF5 dc.l $430C6BF5,$26340000,$4341C379,$37E08000 1405 00003960 4376 3457 dc.l $43763457,$85D8A000,$43ABC16D,$674EC800 1406 00003970 43E1 58E4 dc.l $43E158E4,$60913D00,$4415AF1D,$78B58C40 1407 00003980 444B 1AE4 dc.l $444B1AE4,$D6E2EF50,$4480F0CF,$064DD592 1408 00003990 44B5 2D02 dc.l $44B52D02,$C7E14AF6,$44EA7843,$79D99DB4 1409 000039A0 4520 8B2A dc.l $45208B2A,$2C280291,$4554ADF4,$B7320335 1410 000039B0 4589 D971 dc.l $4589D971,$E4FE8402,$45C027E7,$2F1F1281 1411 000039C0 45F4 31E0 dc.l $45F431E0,$FAE6D721,$46293E59,$39A08CEA 1412 000039D0 465F 8DEF dc.l $465F8DEF,$8808B024,$4693B8B5,$B5056E17 1413 000039E0 46C8 A6E3 dc.l $46C8A6E3,$2246C99C,$46FED09B,$EAD87C03 1414 000039F0 4733 4261 dc.l $47334261,$72C74D82,$476812F9,$CF7920E3 1415 00003A00 479E 17B8 dc.l $479E17B8,$4357691B,$47D2CED3,$2A16A1B1 1416 00003A10 4807 8287 dc.l $48078287,$F49C4A1D,$483D6329,$F1C35CA5 1417 00003A20 4872 5DFA dc.l $48725DFA,$371A19E7,$48A6F578,$C4E0A061 PAGE 31 [3.3a] 6/28/89 17:46:28 ASSEMBLY OF BOOTROM2.TEXT 1418 00003A30 48DC B2D6 dc.l $48DCB2D6,$F618C879,$4911EFC6,$59CF7D4C 1419 00003A40 4946 6BB7 dc.l $49466BB7,$F0435C9E,$497C06A5,$EC5433C6 1420 00003A50 49B1 8427 dc.l $49B18427,$B3B4A05C,$49E5E531,$A0A1C873 1421 00003A60 4A1B 5E7E dc.l $4A1B5E7E,$08CA3A8F,$4A511B0E,$C57E649A 1422 00003A70 4A85 61D2 dc.l $4A8561D2,$76DDFDC0,$4ABABA47,$14957D30 1423 00003A80 4AF0 B46C dc.l $4AF0B46C,$6CDD6E3E,$4B24E187,$8814C9CE 1424 00003A90 4B5A 19E9 dc.l $4B5A19E9,$6A19FC41,$4B905031,$E2503DA9 1425 00003AA0 4BC4 643E dc.l $4BC4643E,$5AE44D13,$4BF97D4D,$F19D6057 1426 00003AB0 4C2F DCA1 dc.l $4C2FDCA1,$6E04B86D,$4C63E9E4,$E4C2F344 1427 00003AC0 4C98 E45E dc.l $4C98E45E,$1DF3B015,$4CCF1D75,$A5709C1B 1428 00003AD0 4D03 7269 dc.l $4D037269,$87666191,$4D384F03,$E93FF9F5 1429 1430 ***************************************************************************** 1431 * 1432 * This table is used to convert those decimal numbers outside the 1433 * range of [10^(-64),10^(64)] to real numbers. It is also used 1434 * to map real numbers into the aforementioned range in the 1435 * real --> decimal conversion. 1436 * 1437 * For a complete description of the conversion algorithms, see the 1438 * Math IRS. 1439 * 1440 * The table contains the real values: 1441 * 10(^-256),10^(-192),...,10^(0),10^(64),...,10^(256). 1442 * 1443 00003AE0 0AC8 0628 tb_auxpt dc.l $0AC80628,$64AC6F43,$18123FF0,$6EEA847A 1444 00003AF0 255B BA08 dc.l $255BBA08,$CF8C979D,$32A50FFD,$44F4A73D 1445 00003B00 3FF0 0000 dc.l $3FF00000,$00000000 1446 00003B08 4D38 4F03 dc.l $4D384F03,$E93FF9F5,$5A827748,$F9301D32 1447 00003B18 67CC 0E1E dc.l $67CC0E1E,$F1A724EB,$75154FDD,$7F73BF3C 1448 1449 ***************************************************************************** 1450 * 1451 * The next table is used in converting pairs of decimal mantissa digits 1452 * into their binary value in the decimal --> real conversion. The 1453 * two decimal digits are treated as an offset into the table, where their 1454 * binary is stored. 1455 * 1456 00003B28 00 tb_bcd dc.b 0,1,2,3,4,5,6,7,8,9,0,0,0,0,0,0 1457 00003B38 0A dc.b 10,11,12,13,14,15,16,17,18,19,0,0,0,0,0,0 1458 00003B48 14 dc.b 20,21,22,23,24,25,26,27,28,29,0,0,0,0,0,0 1459 00003B58 1E dc.b 30,31,32,33,34,35,36,37,38,39,0,0,0,0,0,0 1460 00003B68 28 dc.b 40,41,42,43,44,45,46,47,48,49,0,0,0,0,0,0 1461 00003B78 32 dc.b 50,51,52,53,54,55,56,57,58,59,0,0,0,0,0,0 1462 00003B88 3C dc.b 60,61,62,63,64,65,66,67,68,69,0,0,0,0,0,0 1463 00003B98 46 dc.b 70,71,72,73,74,75,76,77,78,79,0,0,0,0,0,0 1464 00003BA8 50 dc.b 80,81,82,83,84,85,86,87,88,89,0,0,0,0,0,0 1465 00003BB8 5A dc.b 90,91,92,93,94,95,96,97,98,99 1466 1467 ***************************************************************************** 1468 * 1469 * The next table is used in converting an 8 bit integer into a pair of 1470 * decimal digits in the real --> decimal conversion. The 8 bit 1471 * integer is used as an offset into the table, where the 2 decimal digits 1472 * are stored. 1473 * 1474 00003BC2 0001 0203 tb_bin dc.l $00010203,$04050607,$08091011,$12131415 PAGE 32 [3.3a] 6/28/89 17:46:28 ASSEMBLY OF BOOTROM2.TEXT 1475 00003BD2 1617 1819 dc.l $16171819,$20212223,$24252627,$28293031 1476 00003BE2 3233 3435 dc.l $32333435,$36373839,$40414243,$44454647 1477 00003BF2 4849 5051 dc.l $48495051,$52535455,$56575859,$60616263 1478 00003C02 6465 6667 dc.l $64656667,$68697071,$72737475,$76777879 1479 00003C12 8081 8283 dc.l $80818283,$84858687,$88899091,$92939495,$96979899 1480 1481 ***************************************************************************** 1482 * 1483 * The following are coefficients used in the function evaluations. 1484 * They were all converted from decimal to reals using 80 bit math 1485 * and 20 significant decimal digits, and then rounded to the 64 bit 1486 * format. Only the 16 most significant decimal digits are displayed. 1487 * 1488 00003C26 BFE9 4415 cff_loga dc.l $bfe94415,$b356bd29 -0.7895611288749126 E +00 1489 00003C2E 4030 624A dc.l $4030624a,$2016afed 0.1638394356302153 E +02 1490 00003C36 C050 07FF dc.l $c05007ff,$12b3b59a -0.6412494342374558 E +02 1491 * 1492 00003C3E C041 D580 cff_logb dc.l $c041d580,$4b67ce0f -0.3566797773903465 E +02 1493 00003C46 4073 8083 dc.l $40738083,$fa15267e 0.3120322209192453 E +03 1494 00003C4E C088 0BFE dc.l $c0880bfe,$9c0d9077 -0.7694993210849488 E +03 1495 1496 ***************************************************************************** 1497 1498 00003C56 3F00 8B44 cff_expp dc.l $3f008b44,$2ae6921e 0.3155519276568465 E -04 1499 00003C5E 3F7F 074B dc.l $3f7f074b,$f22a12a6 0.7575318015942278 E -02 1500 00003C66 3FD0 0000 dc.l $3fd00000,$00000000 0.2500000000000000 E +00 1501 * 1502 00003C6E 3EA9 3363 cff_expq dc.l $3ea93363,$0ce50455 0.7510402839987005 E -06 1503 00003C76 3F44 AF0C dc.l $3f44af0c,$5c28d4df 0.6312189437439850 E -03 1504 00003C7E 3FAD 1728 dc.l $3fad1728,$51dfd9ff 0.5681730269855122 E -01 1505 00003C86 3FE0 0000 dc.l $3fe00000,$00000000 0.5000000000000000 E +00 1506 1507 ***************************************************************************** 1508 1509 00003C8E 3CE8 80FF cff_sin dc.l $3ce880ff,$6993df95 0.2720479095788886 E -14 1510 00003C96 BD6A E420 dc.l $bd6ae420,$dc08499c -0.7642917806891047 E -12 1511 00003C9E 3DE6 123C dc.l $3de6123c,$686ad430 0.1605893649037159 E -09 1512 00003CA6 BE5A E645 dc.l $be5ae645,$4b5dc0ab -0.2505210679827458 E -07 1513 00003CAE 3EC7 1DE3 dc.l $3ec71de3,$a524f063 0.2755731921015276 E -05 1514 00003CB6 BF2A 01A0 dc.l $bf2a01a0,$1a013e1a -0.1984126984120184 E -03 1515 00003CBE 3F81 1111 dc.l $3f811111,$111110b0 0.8333333333333165 E -02 1516 00003CC6 BFC5 5555 dc.l $bfc55555,$55555555 -0.1666666666666667 E +00 1517 1518 ***************************************************************************** 1519 1520 00003CCE BEF2 BAB7 cff_tanp dc.l $bef2bab7,$2ea2c724 -0.1786170734225443 E -04 1521 00003CD6 3F6C 0E82 dc.l $3f6c0e82,$a63baadf 0.3424887823589059 E -02 1522 00003CDE BFC1 12B5 dc.l $bfc112b5,$e54d0900 -0.1333835000642196 E +00 1523 00003CE6 3FF0 0000 dc.l $3ff00000,$00000000 0.1000000000000000 E +01 1524 * 1525 00003CEE 3EA0 B774 cff_tanq dc.l $3ea0b774,$f07678e9 0.4981943399378651 E -06 1526 00003CF6 BF34 6F64 dc.l $bf346f64,$99094841 -0.3118153190701003 E -03 1527 00003CFE 3F9A 479E dc.l $3f9a479e,$a17e2159 0.2566383228944011 E -01 1528 00003D06 BFDD DEB0 dc.l $bfdddeb0,$47fbd9d5 -0.4667168333975529 E +00 1529 00003D0E 3FF0 0000 dc.l $3ff00000,$00000000 0.1000000000000000 E +01 1530 1531 ***************************************************************************** PAGE 33 [3.3a] 6/28/89 17:46:28 ASSEMBLY OF BOOTROM2.TEXT 1532 1533 00003D16 BFE6 4BBD cff_asnp dc.l $bfe64bbd,$b5e61e65 -0.6967457344735065 E +00 1534 00003D1E 4024 4E17 dc.l $40244e17,$64ec3927 0.1015252223380646 E +02 1535 00003D26 C043 D82C dc.l $c043d82c,$a9a6da9f -0.3968886299750488 E +02 1536 00003D2E 404C 9AA7 dc.l $404c9aa7,$360ad48a 0.5720822787789173 E +02 1537 00003D36 C03B 5E55 dc.l $c03b5e55,$a83a0a62 -0.2736849452416426 E +02 1538 * 1539 00003D3E C037 D2E8 cff_asnq dc.l $c037d2e8,$6ef9861f -0.2382385915376024 E +02 1540 00003D46 4062 DE7C dc.l $4062de7c,$96591c70 0.1509527084103060 E +03 1541 00003D4E C077 DDCE dc.l $c077ddce,$fc56a848 -0.3818630336175015 E +03 1542 00003D56 407A 124F dc.l $407a124f,$101eb843 0.4171443024826041 E +03 1543 00003D5E C064 86C0 dc.l $c06486c0,$3e2b87cc -0.1642109671449856 E +03 1544 1545 ***************************************************************************** 1546 1547 00003D66 BFEA CD7A cff_atnp dc.l $bfeacd7a,$d9b187bd -0.8375829936815006 E +00 1548 00003D6E C020 FD3F dc.l $c020fd3f,$5c8d6a63 -0.8494624035132068 E +01 1549 00003D76 C034 817F dc.l $c034817f,$b9e2bccb -0.2050585519586165 E +02 1550 00003D7E C02B 60A6 dc.l $c02b60a6,$51061ce2 -0.1368876889419193 E +02 1551 * 1552 00003D86 402E 0C49 cff_atnq dc.l $402e0c49,$e14ac710 0.1502400116002858 E +02 1553 00003D8E 404D CA0A dc.l $404dca0a,$320da3d7 0.5957843614259734 E +02 1554 00003D96 4055 8A12 dc.l $40558a12,$040b6da5 0.8615734959713024 E +02 1555 00003D9E 4044 887C dc.l $4044887c,$bcc495a9 0.4106630668257578 E +02 1556 1557 ***************************************************************************** 1558 1559 00003DA6 3F3C 78FD cff_powp dc.l $3f3c78fd,$db4afc28 0.4344577567216312 E -03 1560 00003DAE 3F62 4924 dc.l $3f624924,$2e278dac 0.2232142128592426 E -02 1561 00003DB6 3F89 9999 dc.l $3f899999,$999e080e 0.1250000000050380 E -01 1562 00003DBE 3FB5 5555 dc.l $3fb55555,$5555554d 0.8333333333333321 E -01 1563 * 1564 00003DC6 3EEF 4EDD cff_powq dc.l $3eef4edd,$e392cc80 0.1492885268059561 E -04 1565 00003DCE 3F24 2F7A dc.l $3f242f7a,$e0384c74 0.1540029044098976 E -03 1566 00003DD6 3F55 D87E dc.l $3f55d87e,$18d7cd9f 0.1333354131358578 E -02 1567 00003DDE 3F83 B2AB dc.l $3f83b2ab,$6e131d98 0.9618129059517242 E -02 1568 00003DE6 3FAC 6B08 dc.l $3fac6b08,$d703026d 0.5550410866408560 E -01 1569 00003DEE 3FCE BFBD dc.l $3fcebfbd,$ff82c4ce 0.2402265069590954 E +00 1570 00003DF6 3FE6 2E42 dc.l $3fe62e42,$fefa39ef 0.6931471805599453 E +00 1571 * 1572 00003DFE 0000 0000 tb_a1 dc.l $00000000,$00000000 Dummy entry for indexing 1573 00003E06 3FF0 0000 dc.l $3ff00000,000000000,$3feea4af,$a2a490da 1574 00003E16 3FED 5818 dc.l $3fed5818,$dcfba487,$3fec199b,$dd85529c 1575 00003E26 3FEA E89F dc.l $3feae89f,$995ad3ad,$3fe9c491,$82a3f090 1576 00003E36 3FE8 ACE5 dc.l $3fe8ace5,$422aa0db,$3fe7a114,$73eb0187 1577 00003E46 3FE6 A09E dc.l $3fe6a09e,$667f3bcd,$3fe5ab07,$dd485429 1578 00003E56 3FE4 BFDA dc.l $3fe4bfda,$d5362a27,$3fe3dea6,$4c123422 1579 00003E66 3FE3 06FE dc.l $3fe306fe,$0a31b715,$3fe2387a,$6e756238 1580 00003E76 3FE1 72B8 dc.l $3fe172b8,$3c7d517b,$3fe0b558,$6cf9890f 1581 00003E86 3FE0 0000 dc.l $3fe00000,$00000000 1582 * 1583 00003E8E 0000 0000 tb_a2 dc.l $00000000,$00000000 Dummy entry for indexing 1584 00003E96 BC7E 9C23 dc.l $bc7e9c23,$179c0000,$3c611065,$89500000 1585 00003EA6 3C5C 7C46 dc.l $3c5c7c46,$b0700000,$bc641577,$ee040000 1586 00003EB6 3C76 324C dc.l $3c76324c,$05460000,$3c6ada09,$11f00000 1587 00003EC6 3C79 B07E dc.l $3c79b07e,$b6c80000,$3c78a62e,$4adc0000 1588 PAGE 34 [3.3a] 6/28/89 17:46:28 ASSEMBLY OF BOOTROM2.TEXT 1589 ***************************************************************************** 1590 1591 00003ED6 4E75 stkoper rts 1592 end PASS 1 ERRORS: 0 PASS 2 ERRORS: 0