1 2 /SELF STARTING BINARY LOADER 3 4 /NOVEMBER 1971 SM 5 6 /COPYRIGHT 1971 DIGITAL EQUIPMENT CORPORATION 7 / MAYNARD, MASSACHUSETTS 01754 8 9 CAF=6007 10 RIMS2=7767 11 RIMR1=7761 12 COUNT=7776 13 *200 /VRS 14 *7600 15 007600 4332 END, JMS ASSEMB /PUT CHECKSUM TOGETHER 16 *. 17 007601 7041 CIA 18 *. 19 007602 1352 TAD CKSUM /GET TOTAL 20 *. 21 007603 7440 SZA /GOOD LOAD? 22 *. 23 007604 7402 HLT /NO--HALT AND DISPLAY DISCREPANCY 24 *. 25 007605 1353 TAD SWITCH /WAS LAST DATA AN ORIGIN? 26 *. 27 007606 7640 SZA CLA 28 *. 29 007607 5216 JMP .+7 /NO--DO NOT START EXECUTION 30 *. 31 007610 6007 CAF /YES--RESTORE MACHINE STATE TO START 32 *. 33 007611 1252 TAD FLD 34 *. 35 007612 7001 IAC 36 *. 37 007613 3214 DCA .+1 /SET INSTRUCTION FIELD TO LAST LOADED FIELD 38 *. 39 007614 7402 HLT 40 *. 41 007615 5747 JMP I ORIGIN /**EXIT TO LOADED PROGRAM** 42 *. 43 007616 7402 M376, HLT /LOAD O.K, NOT SELF START 44 *. 45 007617 6032 BEGIN, KCC 46 *. 47 007620 6014 RFC 48 *. 49 007621 6214 RDF 50 *. 51 007622 1341 TAD CDF0 /SET FIELD FROM SWITCHES 52 *. 53 007623 3252 DCA FLD 54 *. 55 007624 1342 TAD MASK 56 *. 57 007625 3274 DCA LEAD /SET UP TO IGNORE BLANK TAPE & LEADER/TRAILER 58 *. 59 007626 4261 JMS FETCH /GET FIRST CHARACTER 60 *. 61 007627 5226 JMP .-1 /IGNORE UNTIL FIRST REAL DATA 62 *. 63 007630 1343 TAD LT /CHARACTER IS ORIGIN OR DATA 64 65 *. 66 007631 3274 DCA LEAD /NO LONGER IGNORE BLANK TAPE 67 *. 68 007632 3352 LOAD, DCA CKSUM 69 *. 70 007633 1346 TAD CHAR 71 *. 72 007634 3350 DCA WORD1 /STORE FIRST HALF 73 *. 74 007635 4306 JMS READ /GET SECOND HALF 75 *. 76 007636 3351 DCA WORD2 /STORE IT 77 *. 78 007637 4261 JMS FETCH /IS NEXT WORD LEADER/TRAILER? 79 *. 80 007640 5200 JMP END /YES--THIS IS THE CHECKSUM 81 *. 82 007641 4332 JMS ASSEMB /NO--PUT WORD TOGETHER 83 *. 84 007642 7420 RESTOR, SNL /IS IT AN ORIGIN? 85 *. 86 007643 5252 JMP FLD /NO 87 *. 88 007644 3347 DCA ORIGIN /YES--RESET ORIGIN 89 *. 90 007645 3353 DCA SWITCH /RESET ORIGIN SWITCH 91 *. 92 007646 1350 SUM, TAD WORD1 93 *. 94 007647 1351 TAD WORD2 95 *. 96 007650 1352 TAD CKSUM /UPDATE CHECKSUM 97 *. 98 007651 5232 JMP LOAD 99 *. 100 007652 7402 FLD, HLT /SHOULD CONTAIN CDF N0 101 *. 102 007653 3747 DCA I ORIGIN /LOAD DATA 103 *. 104 007654 2353 ISZ SWITCH 105 *. 106 007655 0070 C70, 70 /EFFECTIVE NOP 107 *. 108 007656 2347 ISZ ORIGIN 109 *. 110 007657 0177 C177, 177 111 *. 112 007660 5246 JMP SUM 113 114 115 /SUBROUTINE TO FETCH A CHARACTER FROM INPUT TAPE 116 /RETURNS TO CALL+1 IF LEADER/TRAILER 117 /RETURNS TO CALL+2 IF DATA OR ORIGIN 118 /HANDLES FIELD SETTINGS AND RUBOUTS 119 120 *. 121 007661 0000 FETCH, 0 122 *. 123 007662 3332 DCA ASSEMB /RESET RUBOUT SWITCH 124 *. 125 007663 4306 JMS READ /FETCH A CHARACTER 126 *. 127 007664 1216 TAD M376 128 *. 129 007665 7740 M40, SMA SZA CLA /IS IT A RUBOUT? 130 *. 131 007666 2332 ISZ ASSEMB /YES--WAS SWITCH -1? 132 *. 133 007667 1332 TAD ASSEMB 134 *. 135 007670 7010 RAR /NO-- 136 *. 137 007671 7630 SZL CLA /IS RUBOUT SWITCH SET? 138 *. 139 007672 5263 JMP FETCH+2 /YES--IGNORE CHARACTER 140 *. 141 007673 1346 TAD CHAR /CHARACTER IS GOOD DATA 142 *. 143 007674 7402 LEAD, HLT /WILL BE TAD M200 OR AND C177 144 *. 145 007675 7650 SNA CLA /IS IT LEADER/TRAILER? 146 *. 147 007676 5661 JMP I FETCH /YES--RETURN-- 148 *. 149 007677 1346 TAD CHAR 150 *. 151 007700 1301 TAD M300 152 *. 153 007701 7500 M300, SMA /IS IT A FIELD SETTING? 154 *. 155 007702 5326 JMP FSET /YES--HANDLE IT 156 *. 157 007703 2261 ISZ FETCH /NO--ORIGIN OR DATA 158 *. 159 007704 7600 M200, 7600 /CLA 160 *. 161 007705 5661 JMP I FETCH /--RETURN-- 162 163 /INPUT ROUTINE 164 /SET BY INITIALIZATION CODE FOR EITHER ASR33 OR HIGH SPEED READER 165 /ENTER WITH AC=0 166 /EXIT WITH CHARACTER IN AC AND IN CHAR 167 168 *. 169 007706 0000 READ, 0 170 *. 171 007707 3376 DCA COUNT /PREPARE TO TIME OUT 172 *. 173 007710 2376 ISZ COUNT /IF OUT OF TAPE 174 *. 175 007711 5321 JMP WAIT 176 *. 177 007712 6036 NOTAPE, KRB /OR RCC=6016 178 *. 179 007713 6031 TAPE, KSF /OR RSF=6011 180 *. 181 007714 5310 JMP .-4 182 *. 183 007715 6036 D07715, KRB /OR RCC=6016 184 *. 185 007716 3346 DCA CHAR 186 *. 187 007717 1346 TAD CHAR 188 *. 189 007720 5706 JMP I READ /--RETURN-- 190 *. 191 007721 1265 WAIT, TAD M40 192 *. 193 007722 3344 DCA INIT 194 *. 195 007723 2344 ISZ INIT 196 *. 197 007724 5323 JMP .-1 198 *. 199 007725 5313 JMP TAPE 200 201 /HANDLER FOR FIELD SETTING 202 /ENTERED FROM FETCH 203 204 *. 205 007726 0255 FSET, AND C70 /MASK OUT ALL BUT FIELD NUMBER 206 *. 207 007727 1341 TAD CDF0 /GET REST OF CDF 208 *. 209 007730 3252 DCA FLD /INSERT WHERE IT WILL BE EXECUTED 210 *. 211 007731 5263 JMP FETCH+2 212 213 214 /SUBROUTINE TO ASSEMBLE TWO CHARACTERS INTO ONE WORD FOR STORAGE 215 /ENTER WITH AC=0 216 /EXIT WITH WORD IN AC 217 218 *. 219 007732 0000 ASSEMB, 0 220 *. 221 007733 1350 TAD WORD1 222 *. 223 007734 7106 CLL RTL 224 *. 225 007735 7006 RTL 226 *. 227 007736 7006 RTL 228 *. 229 007737 1351 TAD WORD2 230 *. 231 007740 5732 JMP I ASSEMB /--RETURN-- 232 /CONSTANTS 233 *. 234 007741 6201 CDF0, CDF 0 235 *. 236 007742 0257 MASK, AND C177 237 *. 238 007743 1304 LT, TAD M200 239 240 241 /INITIALIZATION CODE 242 /USED ONCE ONLY--MAY BE OVERWRITTEN BY DATA BREAKS 243 244 245 /TEMPORARY STORAGE LOCATIONS 246 /MAY ALSO BE OVERWRITTEN BY DATA BREAKS 247 248 *. 249 007744 7200 INIT, CLA 250 *. 251 007745 1361 TAD RIMR1 252 *. 253 007746 3312 CHAR, DCA NOTAPE 254 *. 255 007747 1367 ORIGIN, TAD RIMS2 256 *. 257 007750 3313 WORD1, DCA TAPE 258 *. 259 007751 1361 WORD2, TAD RIMR1 260 *. 261 007752 3315 CKSUM, DCA TAPE+2 262 *. 263 007753 1242 SWITCH, TAD RESTOR 264 *. 265 007754 3372 DCA 7772 266 *. 267 007755 5217 JMP BEGIN 268 269 270 /STARTING ADDRESS FOR MANUAL START 271 *7777 272 007777 5217 JMP BEGIN 273 274 /LOCATION TO OVERLAY RIM AND START LOADER 275 *7772 276 007772 5344 JMP INIT 277 278 $