1 /READABLE PUNCH AND COPY PROGRAM 2 / 3 /BASED ON DECUDS 8-382 BUT HEAVILY MODIFIED. 4 / 5 *200 6 000200 7300 START, CLA CLL /INITIALIZE 7 000201 6046 TLS 8 000202 6026 PLS 9 000203 6014 RFC 10 000204 6032 KCC 11 000205 4271 JMS LDR 12 000206 6031 NEXT, KSF /GET A CHARACTER 13 000207 5206 JMP .-1 14 000210 6036 KRB 15 000211 6046 TLS 16 000212 3320 DCA CHAR /STORE IT 17 000213 1320 TAD CHAR 18 000214 1321 TAD M215 /IS IT CR 19 000215 7650 SNA CLA 20 000216 5206 JMP NEXT /YES GET NEXT CHAR 21 000217 1320 TAD CHAR /NO, IS IT LINEFEED 22 000220 1322 TAD M212 23 000221 7650 SNA CLA 24 000222 5206 JMP NEXT /YES GET NEXT CHAR 25 000223 1320 TAD CHAR 26 000224 1317 TAD MODE /NO IS IT ALTMODE 27 000225 7650 SNA CLA 28 000226 5301 JMP GO /YES PRODUCE LEADER 29 000227 1323 TAD C3 30 000230 3324 DCA VCNT /INITIALIZE COUNTER 31 000231 1320 TAD CHAR 32 000232 0325 AND MASK77 /STRIP CHARACTER 33 000233 3330 DCA MKAD 34 000234 1330 TAD MKAD 35 000235 7104 CLL RAL 36 000236 1330 TAD MKAD 37 000237 1331 TAD SOC 38 000240 3327 DCA PUND 39 000241 7300 PUCH, CLA CLL 40 000242 1727 TAD I PUND /GET FIRST TWO CHARS 41 000243 3320 DCA CHAR 42 000244 1320 TAD CHAR 43 000245 7012 RTR 44 000246 7012 RTR 45 000247 7012 RTR 46 000250 0325 AND MASK77 /REMOVE 2ND VECTOR 47 000251 7104 CLL RAL /COLS 2-7 ONLY 48 000252 4263 JMS PUNCH /PUNCH 1ST VECTOR 49 000253 1320 TAD CHAR 50 000254 0325 AND MASK77 51 000255 7104 CLL RAL 52 000256 4263 JMS PUNCH /PUNCH 2ND VECTOR 53 000257 2327 ISZ PUND 54 000260 2324 ISZ VCNT 55 000261 5241 JMP PUCH 56 000262 5206 JMP NEXT 57 / 58 000263 0000 PUNCH, 0 /PUNCH ROUTINE 59 000264 6021 PSF 60 000265 5264 JMP .-1 61 000266 6026 PLS 62 000267 7200 CLA 63 000270 5663 JMP I PUNCH 64 / 65 000271 0000 LDR, 0 /PRODUCE LEADER 66 000272 7300 CLA CLL 67 000273 1326 TAD LDRCNT 68 000274 3324 DCA VCNT 69 000275 4263 JMS PUNCH 70 000276 2324 ISZ VCNT 71 000277 5275 JMP .-2 72 000300 5671 JMP I LDR 73 / 74 000301 4271 GO, JMS LDR 75 000302 4305 JMS READ 76 000303 4263 JMS PUNCH 77 000304 5302 JMP .-2 78 / 79 000305 0000 READ, 0 80 000306 3324 DCA VCNT /FOR TIMEOUT LOOP 81 000307 6011 RSF 82 000310 7410 SKP 83 000311 5315 JMP .+4 84 000312 2324 ISZ VCNT 85 000313 5307 JMP .-4 86 000314 5205 JMP NEXT-1 87 000315 6016 RRB RFC 88 000316 5705 JMP I READ 89 / 90 000317 7403 MODE, -375 91 000320 0000 CHAR, 0 92 000321 7563 M215, -215 93 000322 7566 M212, -212 94 000323 7775 C3, -3 95 000324 0000 VCNT, 0 96 000325 0077 MASK77, 0077 97 000326 7600 LDRCNT, -200 98 000327 0000 PUND, 0 99 000330 0000 MKAD, 0 100 000331 0332 SOC, TABLE 101 000332 0000 TABLE, 0000 /CIRCLE A 102 000333 0000 0000 103 000334 0000 0000 104 000335 3744 3744 /A 105 000336 4444 4444 106 000337 3700 3700 107 000340 7751 7751 /B 108 000341 5551 5551 109 000342 2600 2600 110 000343 3641 3641 /C 111 000344 4141 4141 112 000345 2200 2200 113 000346 7741 7741 /D 114 000347 4141 4141 115 000350 3600 3600 116 000351 7751 7751 /E 117 000352 5141 5141 118 000353 4100 4100 119 000354 7750 7750 /F 120 000355 5040 5040 121 000356 4000 4000 122 000357 3641 3641 /G 123 000360 4545 4545 124 000361 2600 2600 125 000362 7710 7710 /H 126 000363 1010 1010 127 000364 7700 7700 128 000365 0041 0041 /I 129 000366 7741 7741 130 000367 0000 0000 131 000370 0201 0201 /J 132 000371 0101 0101 133 000372 7600 7600 134 000373 7704 7704 /K 135 000374 1022 1022 136 000375 4100 4100 137 000376 7701 7701 /L 138 000377 0101 0101 139 000400 0100 0100 140 000401 7720 7720 /M 141 000402 1420 1420 142 000403 7700 7700 143 000404 7720 7720 /N 144 000405 1004 1004 145 000406 7700 7700 146 000407 3641 3641 /O 147 000410 4141 4141 148 000411 3600 3600 149 000412 7744 7744 /P 150 000413 4444 4444 151 000414 3000 3000 152 153 000415 3641 3641 /Q 154 000416 4142 4142 155 000417 3500 3500 156 000420 7744 7744 /R 157 000421 4445 4445 158 000422 3100 3100 159 000423 2251 2251 /S 160 000424 5151 5151 161 000425 4600 4600 162 000426 4040 4040 /T 163 000427 7740 7740 164 000430 4000 4000 165 000431 7601 7601 /U 166 000432 0101 0101 167 000433 7600 7600 168 000434 7402 7402 /V 169 000435 0102 0102 170 000436 7400 7400 171 000437 7702 7702 /W 172 000440 0402 0402 173 000441 7700 7700 174 000442 6310 6310 /X 175 000443 0410 0410 176 000444 6300 6300 177 000445 6010 6010 /Y 178 000446 0710 0710 179 000447 6000 6000 180 000450 4341 4341 /Z 181 000451 4551 4551 182 000452 6100 6100 183 000453 0077 0077 /LEFT BRACKET 184 000454 4141 4141 185 000455 0000 0000 186 000456 6010 6010 /BACK SLASH 187 000457 0400 0400 188 000460 0300 0300 189 000461 0041 0041 /RIGHT BRACKET 190 000462 4177 4177 191 000463 0000 0000 192 000464 0000 0000 /UP ARROW 193 000465 0000 0000 194 000466 0000 0000 195 000467 0000 0000 /BACK ARROW 196 000470 0000 0000 197 000471 0000 0000 198 000472 0000 0000 /SPACE 199 000473 0000 0000 200 000474 0000 0000 201 202 000475 0000 0000 /! 203 000476 0075 0075 204 000477 0000 0000 205 000500 0070 0070 /QUOTES 206 000501 0070 0070 207 000502 0000 0000 208 000503 1477 1477 /POUND SIGN 209 000504 0077 0077 210 000505 1400 1400 211 000506 7777 7777 /$ 212 000507 7777 7777 213 000510 7700 7700 214 000511 0000 0000 /PERCENT 215 000512 0000 0000 216 000513 0000 0000 217 000514 0000 0000 /AMPERSAND 218 000515 0000 0000 219 000516 0000 0000 220 000517 0000 0000 /APOSTROPHE 221 000520 0000 0000 222 000521 0000 0000 223 000522 0000 0000 /LEFT PARENTHESIS 224 000523 0000 0000 225 000524 0000 0000 226 000525 0000 0000 /RIGHT PARENTHESIS 227 000526 0000 0000 228 000527 0000 0000 229 000530 0000 0000 /ASTERISK 230 000531 0000 0000 231 000532 0000 0000 232 000533 0000 0000 /PLUS 233 000534 0000 0000 234 000535 0000 0000 235 000536 0000 0000 /COMMA 236 000537 0000 0000 237 000540 0000 0000 238 000541 1010 1010 /MINUS 239 000542 1010 1010 240 000543 1000 1000 241 000544 0000 0000 /PERIOD 242 000545 0303 0303 243 000546 0000 0000 244 000547 0300 0300 /SLASH 245 000550 0410 0410 246 000551 6000 6000 247 248 000552 3641 3641 /0 249 000553 4136 4136 250 000554 0000 0000 251 000555 0021 0021 /1 252 000556 7701 7701 253 000557 0000 0000 254 000560 2345 2345 /2 255 000561 4545 4545 256 000562 3100 3100 257 000563 2241 2241 /3 258 000564 5151 5151 259 000565 4600 4600 260 000566 0414 0414 /4 261 000567 2477 2477 262 000570 0400 0400 263 000571 7251 7251 /5 264 000572 5151 5151 265 000573 4600 4600 266 000574 3651 3651 /6 267 000575 5151 5151 268 000576 4600 4600 269 000577 6043 6043 /7 270 000600 4450 4450 271 000601 6000 6000 272 000602 2651 2651 /8 273 000603 5151 5151 274 000604 2600 2600 275 000605 2251 2251 /9 276 000606 5151 5151 277 000607 3600 3600 278 000610 0000 0000 /COLON 279 000611 6363 6363 280 000612 0000 0000 281 000613 0000 0000 /SEMICOLON 282 000614 0000 0000 283 000615 0000 0000 284 000616 0000 0000 /LEFT POINTY THING 285 000617 0000 0000 286 000620 0000 0000 287 000621 0000 0000 /EQUALS 288 000622 0000 0000 289 000623 0000 0000 290 000624 0000 0000 /RIGHT POINTY THING 291 000625 0000 0000 292 000626 0000 0000 293 000627 0000 0000 /QUERY 294 000630 0000 0000 295 000631 0000 0000 296 $ C3 0323 CHAR 0320 GO 0301 LDR 0271 LDRCNT 0326 M212 0322 M215 0321 MASK77 0325 MKAD 0330 MODE 0317 NEXT 0206 PUCH 0241 PUNCH 0263 PUND 0327 READ 0305 SOC 0331 START 0200 unreferenced TABLE 0332 VCNT 0324