|  | | 150 | 8115+ |  | ; |  | 
| 151 | 8115+ |  | PunchBlock: | ; |  |  | 
| 152 | 8115+ | 0614766 |  | lod | W6646 |  |  |  | ;=<00 0:77 8191> |  | 
| 153 | 8116 | 0677655 |  | lns | W8109 |  |  |  | ;mask end address in store, load start address | @8116 | 
| 154 | 8116+ | 1220024 |  | srl | 20 |  |  |  | ;shift start address down |  | 
| 155 | 8117 | 0337655 |  | o15 | W8109 |  |  |  | ;swap, subtract end from start | @8117 | 
| 156 | 8117+ | 0417652 |  | sto | W8106 |  |  |  | ;store negated word count |  | 
| 157 | 8118 |  | .2: | ; |  |  | 
| 158 | 8118 | 2277266577777 |  | inc | W8109 | / | lod | -1 | ;load next word | @8118 | 
| 159 | 8119 | 0517653 |  | ads | W8107 |  |  |  | ;add to checksum | @8119 | 
| 160 | 8119+ |  | .3: | ; |  |  | 
| 161 | 8119+ | 1200043 |  | sra | 35 |  |  |  | ;shift into AR |  | 
| 162 | 8120 | 0117647 |  | add | W8103 |  |  |  | ;add top bit to force oflo... | @8120 | 
| 163 | 8120+ |  |  | clo |  |  |  |  | ;when word complete, clear oflo |  | 
| 163+1 | 8120+ | 1077671 |  | jo | .1 |  |  |  |  |  | 
| 163+2 | 8121 |  | .1: | ; |  |  | 
| 164 | 8121 |  | .4: | ; |  |  | 
| 165 | 8121 | 0417656 |  | sto | W8110 |  |  |  | ;save word | @8121 | 
| 166 | 8121+ | 0077675 |  | and | .mask31 |  |  |  | ;=31 |  | 
| 167 | 8122 | 1077273700000 |  | exa | W8110 | / | otp | 0 | ;output 1 byte, reload word | @8122 | 
| 168 | 8123 | 1177674 |  | jo | .5 |  |  |  | ;word done | @8123 | 
| 169 | 8123+ | 1300005 |  | sla | 5 |  |  |  | ;shift next byte out of AR |  | 
| 170 | 8124 | 1017671 |  | jmp | .4 |  |  |  | ;and punch that | @8124 | 
| 171 | 8124+ |  | ; |  | 
| 172 | 8124+ |  | .5: | ; |  |  | 
| 173 | 8124+ | 0657652 |  | lis | W8106 |  |  |  | ;word done, bump count |  | 
| 174 | 8125 |  | .mask31: | ; |  |  | 
| 175 | 8125 | 1037666 |  | jn | .2 |  |  |  | ;still <0, repeat | @8125 | 
| 176 | 8125+ | 0000037 |  | 00 | +31 |  |  |  | ; |  | 
| 177 | 8126 |  | .6: | ; |  |  | 
| 178 | 8126 | 0077277000001 |  | 00 | W8111 | / | jmp | 1 | ; | @8126 | 
| 179 | 8127 |  | ; |  | 
| 180 | 8127 |  | ;-------------------------------------------------------------------- |  | 
| 181 | 8127 |  | DumpSub:: | ; |  |  | 
| 182 | 8127 |  | .ret: | ; |  |  | 
| 183 | 8127 | 0077573000001 |  | o00 | W8158 | / | jmp | 1 | ; | @8127 | 
| 184 | 8128 |  | ;-------------------------------------------------------------------- |  | 
| 185 | 8128 |  | ; DumpSub: parameter (in Acc): < xx y : ww z > where |  | 
| 186 | 8128 |  | ;  xx is a function code: |  | 
| 187 | 8128 |  | ;   40 - output bootstrap then block of data |  | 
| 188 | 8128 |  | ;   20 - output further block of data |  | 
| 189 | 8128 |  | ;   10 - output bottstrap trigger |  | 
| 190 | 8128 |  | ;  y & z are start and end of block to be punched (40/20) |  | 
| 191 | 8128 |  | ;  ww & z are trigger instruction (10) |  | 
| 192 | 8128 |  | ; |  | 
| 193 | 8128 |  | DumpSub: | ; |  |  | 
| 194 | 8128 | 0000000 |  | o00 | 0 |  |  |  | ; | @8128 | 
| 195 | 8128+ | 0557652 |  | cls | W8106 |  |  |  | ; |  | 
| 196 | 8129 |  | .1: | ; |  |  | 
| 197 | 8129 | 0000000 |  | o00 | 0 |  |  |  | ; | @8129 | 
| 198 | 8129+ | 0417654 |  | sto | W8108 |  |  |  | ; |  | 
| 199 | 8130 | 0077646 |  | and | W8102 |  |  |  | ;=07700000000000 | @8130 | 
| 200 | 8130+ | 1057701 |  | jz | .1 |  |  |  | ;loop stop? |  | 
| 201 | 8131 | 0557653 |  | cls | W8107 |  |  |  | ; | @8131 | 
| 202 | 8131+ | 0577654 |  | o27 | W8108 |  |  |  | ; |  | 
| 203 | 8132 |  | .2: | ; |  |  | 
| 204 | 8132 | 1037706 |  | jn | .3 |  |  |  | ;convert bit to int | @8132 | 
| 205 | 8132+ | 1320001 |  | sll | 1 |  |  |  | ;  40 = 0, 20 = 1, 10 = 2, 04 = 3 |  | 
| 206 | 8133 | 0457653 |  | inc | W8107 |  |  |  | ; | @8133 | 
| 207 | 8133+ | 1017704 |  | jmp | .2 |  |  |  | ; |  | 
| 208 | 8134 |  | ; |  | 
| 209 | 8134 |  | .3: | ; |  |  | 
| 210 | 8134 | 0140000 |  | cla | 0 |  |  |  | ; | @8134 | 
| 211 | 8134+ | 0017777 |  | o00 | +8191 |  |  |  | ;in-line constant |  | 
| 212 | 8135 | 0077257157710 |  | o00 | W8107 | / | jz | .SW | ;switch on | @8135 | 
| 213 | 8136 | 1017706 |  | jmp | .3 |  |  |  | ;loop stop? | @8136 | 
| 214 | 8136+ |  | ; |  | 
| 215 | 8136+ |  | .SW: | ; |  |  | 
| 216 | 8136+ |  | ; entry 40: |  | 
| 217 | 8136+ | 0617643 |  | lod | W8099 |  |  |  | ;+0 =99 |  | 
| 218 | 8137 | 1117717 |  | jmp | .sw0 |  |  |  | ; | @8137 | 
| 219 | 8137+ |  | ; entry 20: |  | 
| 220 | 8137+ | 0617650 |  | lod | W8104 |  |  |  | ;+1 |  | 
| 221 | 8138 | 1117714 |  | jmp | .sw1 |  |  |  | ; | @8138 | 
| 222 | 8138+ |  | ; entry 10: |  | 
| 223 | 8138+ | 0617651 |  | lod | L8105 |  |  |  | ;+2 |  | 
| 224 | 8139 | 1017714 |  | jmp | .sw2 |  |  |  | ; | @8139 | 
| 225 | 8139+ |  | ; entry 04: |  | 
| 226 | 8139+ | 0617654 |  | lod | W8108 |  |  |  | ;+3 |  | 
| 227 | 8140 |  | .sw2: | ; output bootstrap trigger |  |  | 
| 228 | 8140 | 0557653 |  | cls | W8107 |  |  |  | ;reset flag | @8140 | 
| 229 | 8140+ |  | .sw1: | ; output block of data |  |  | 
| 230 | 8140+ | 0417656 |  | sto | W8110 |  |  |  | ;store address |  | 
| 231 | 8141 |  |  | calln | , |  |  |  | ; punch address first | @8141 | 
| 231+1 | 8141 | 7377275017660 |  | lnk | W8111 | : | jmp | PunchAddr |  |  | 
| 232 | 8142 | 0617653 |  | lod | W8107 |  |  |  | ;trigger flag? | @8142 | 
| 233 | 8142+ | 1057677 |  | jz | .ret |  |  |  | ;return +1 |  | 
| 234 | 8143 | 1017727 |  | jmp | .5 |  |  |  | ;now do block of data | @8143 | 
| 235 | 8143+ |  | ; |  | 
| 236 | 8143+ |  | .sw0: | ; |  |  | 
| 237 | 8143+ | 0437652 |  | stn | W8106 |  |  |  | ; |  | 
| 238 | 8144 |  | .4: | ; |  |  | 
| 239 | 8144 | 1700000 |  | otp | 0 |  |  |  | ;punch 100 blanks | @8144 | 
| 240 | 8144+ | 0657652 |  | lis | W8106 |  |  |  | ; |  | 
| 241 | 8145 | 1037720 |  | jn | .4 |  |  |  | ;repeat loop | @8145 | 
| 242 | 8145+ | 0617644 |  | lod | W8100 |  |  |  | ;trigger into bootstrap |  | 
| 243 | 8146 | 0000000 |  | o00 | 0 |  |  |  | ; | @8146 | 
| 244 | 8146+ | 0077706 |  | and | .3 |  |  |  | ;=8191 mask out trigger address |  | 
| 245 | 8147 | 0354731 |  | stc | W6617 |  |  |  | ;save trigger address, zero acc | @8147 | 
| 246 | 8147+ | 0214771 |  | exa | W6649 |  |  |  | ;no other refs! |  | 
| 247 | 8148 | 0554770 |  | cls | W6648 |  |  |  | ;??? other ref also cls | @8148 | 
| 248 | 8148+ | 0554752 |  | cls | W6634 |  |  |  | ;word in middle of bootstrap code |  | 
| 249 | 8149 | 0617645 |  | lod | W8101 |  |  |  | ;=<00 BootStart:00 BootEnd> | @8149 | 
| 250 | 8149+ | 0417655 |  | sto | W8109 |  |  |  | ;store block address |  | 
| 251 | 8150 |  |  | calln | , |  |  |  | ;punch out bootstrap | @8150 | 
| 251+1 | 8150 | 7377275117663 |  | lnk | W8111 | : | jmp | PunchBlock |  |  | 
| 252 | 8151 |  | ; |  | 
| 253 | 8151 |  | ; bootstrap now punched, follow up with block of code |  | 
| 254 | 8151 |  | ; |  | 
| 255 | 8151 |  | .5: | ; |  |  | 
| 256 | 8151 | 0617654 |  | lod | W8108 |  |  |  | ; | @8151 | 
| 257 | 8151+ | 0417656 |  | sto | W8110 |  |  |  | ;boot load address |  | 
| 258 | 8152 | 0417653 |  | sto | W8107 |  |  |  | ;clear sumcheck | @8152 | 
| 259 | 8152+ | 0417655 |  | sto | W8109 |  |  |  | ;store block address |  | 
| 260 | 8153 |  |  | calln | , |  |  |  | ;output load address | @8153 | 
| 260+1 | 8153 | 7377275017660 |  | lnk | W8111 | : | jmp | PunchAddr |  |  | 
| 261 | 8154 |  |  | calln | , |  |  |  | ;and data block | @8154 | 
| 261+1 | 8154 | 7377275117663 |  | lnk | W8111 | : | jmp | PunchBlock |  |  | 
| 262 | 8155 | 0617653 |  | lod | W8107 |  |  |  | ; | @8155 | 
| 263 | 8155+ | 0000000 |  | o00 | 0 |  |  |  | ; |  | 
| 264 | 8156 |  |  | calln | , |  |  |  | ;output sumcheck | @8156 | 
| 264+1 | 8156 | 7377275117667 |  | lnk | W8111 | : | jmp | DumpPunch.3 |  |  | 
| 265 | 8157 | 1017677 | L8157: | jmp | .ret |  |  |  | ;return +1 | @8157 | 
| 266 | 8157+ |  | ; |  | 
| 267 | 8157+ | 0000000 |  | o00 | 0 |  |  |  | ; |  | 
| 268 | 8158 | 0000000000000 | W8158: | +0 | ; | @8158 | 
| 269 | 8159 |  | ; |  | 
| 270 | 8159 |  | ;   symbols used by bootstrap |  | 
| 271 | 8159 |  | ; |  | 
| 272 | 8159 |  | =8188 |  |  | 
| 273 | 8188 | 0000000000000 | W8188: | +0 | ; = 8188 |  | 
| 274 | 8189 | 0000000000000 | W8189: | +0 | ; = 8189 |  | 
| 275 | 8190 | 0000000000000 | W8190: | +0 | ; = 8190 |  | 
| 276 | 8191 | 0000000000000 | W8191: | +0 | ; = 8191 |  | 
| 277 | 8192 |  | ; |  |