Source Code

003896,000001: # Copyright 2004 Ronald S. Burkey <info@sandroid.org> 003897,000002: # 003898,000003: # This file is part of yaAGC. 003899,000004: 003900,000005: # yaAGC is free software; you can redistribute it and/or modify 003901,000006: # it under the terms of the GNU General Public License as published by 003902,000007: # the Free Software Foundation; either version 2 of the License, or 003903,000008: # (at your option) any later version. 003904,000009: 003905,000010: # yaAGC is distributed in the hope that it will be useful, 003906,000011: # but WITHOUT ANY WARRANTY; without even the implied warranty of 003907,000012: # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 003908,000013: # GNU General Public License for more details. 003909,000014: 003910,000015: # You should have received a copy of the GNU General Public License 003911,000016: # along with yaAGC; if not, write to the Free Software 003912,000017: # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 003913,000018: 003914,000019: # Filename: SmallyDASINCR.agc 003915,000020: # Purpose: This is code written from the flowchart on p. 41 of 003916,000021: # E-2065, which is a document titled "Block II AGC 003917,000022: # Self-Check and Show-Banksum", by Edwin D. Smally. 003918,000023: # Mod history: 07/07/04 RSB. Began. 003919,000024: # 07/09/04 RSB. Finished. 003920,000025: 003921,000026: # Similar code was apparently originally in Luminary and/or Colossus, 003922,000027: # but much of it was removed over the course of time to make more room. 003923,000028: # I don't know what the original code was like, but the flowcharts still 003924,000029: # exist, so I've rewritten the code from the flowcharts. 003925,000030: 003926,000031: # P. 41 of Smally 003927,000032: 003928,000033: 04,2425 37631 CA NEGONE 003929,000034: 04,2426 54001 TS L 003930,000035: 04,2427 37636 CA TWO 003931,000036: 003932,000037: 04,2430 24062 INCR ERRSUB # 36 003933,000038: 04,2431 20001 DDOUBL 003934,000039: 04,2432 67634 AD NEGFOUR 003935,000040: 04,2433 00006 EXTEND 003936,000041: 04,2434 12436 BZF +2 003937,000042: 04,2435 12553 TCF DIERROR 003938,000043: 04,2436 30001 CA L 003939,000044: 04,2437 67636 AD TWO 003940,000045: 04,2440 00006 EXTEND 003941,000046: 04,2441 12443 BZF +2 003942,000047: 04,2442 12553 TCF DIERROR 003943,000048: 003944,000049: 04,2443 37651 CA MAXP # 37777. Smally incorrectly says 3777. 003945,000050: 04,2444 54073 TS SKEEP3 003946,000051: 04,2445 37655 CA MAXN # 40000 003947,000052: 04,2446 54074 TS SKEEP4 003948,000053: 04,2447 37632 CA NEGTWO 003949,000054: 04,2450 54001 TS L 003950,000055: 04,2451 37637 CA THREE 003951,000056: 003952,000057: 04,2452 24062 INCR ERRSUB # 37 003953,000058: # Smally incorrectly says here that c(A)==+0 and c(L)==+1. 003954,000059: # This is actually reversed. 003955,000060: 04,2453 20074 DAS SKEEP3 003956,000061: 04,2454 67631 AD NEGONE 003957,000062: 04,2455 00006 EXTEND 003958,000063: 04,2456 12460 BZF +2 003959,000064: 04,2457 12553 TCF DIERROR 003960,000065: 04,2460 10001 CCS L 003961,000066: 04,2461 12553 TCF DIERROR 003962,000067: 04,2462 12465 TCF +3 003963,000068: 04,2463 12553 TCF DIERROR 003964,000069: 04,2464 12553 TCF DIERROR 003965,000070: 04,2465 30073 CA SKEEP3 003966,000071: 04,2466 67631 AD NEGONE 003967,000072: 04,2467 00006 EXTEND 003968,000073: 04,2470 12472 BZF +2 003969,000074: 04,2471 12553 TCF DIERROR 003970,000075: 04,2472 30074 CA SKEEP4 003971,000076: 04,2473 67635 AD ONE 003972,000077: 04,2474 00006 EXTEND 003973,000078: 04,2475 12477 BZF +2 003974,000079: 04,2476 12553 TCF DIERROR 003975,000080: 003976,000081: 04,2477 24062 INCR ERRSUB # 40 octal 003977,000082: 04,2500 24074 INCR SKEEP4 003978,000083: 04,2501 10074 CCS SKEEP4 003979,000084: 04,2502 12553 TCF DIERROR 003980,000085: 04,2503 12553 TCF DIERROR 003981,000086: 04,2504 12553 TCF DIERROR 003982,000087: 003983,000088: 04,2505 24062 INCR ERRSUB # 41 003984,000089: 04,2506 30007 CA ZEROES 003985,000090: 04,2507 54001 TS L 003986,000091: 04,2510 24001 INCR L 003987,000092: 04,2511 24000 INCR A 003988,000093: 04,2512 67631 AD NEGONE 003989,000094: 04,2513 00006 EXTEND 003990,000095: 04,2514 12516 BZF +2 003991,000096: 04,2515 12553 TCF DIERROR 003992,000097: 04,2516 30001 CA L 003993,000098: 04,2517 67631 AD NEGONE 003994,000099: 04,2520 00006 EXTEND 003995,000100: 04,2521 12523 BZF +2 003996,000101: 04,2522 12553 TCF DIERROR 003997,000102: 003998,000103: 04,2523 37655 CA MAXN # 40000 003999,000104: 04,2524 54071 TS SKEEP1 004000,000105: 04,2525 37651 CA MAXP # 37777 004001,000106: 04,2526 54072 TS SKEEP2 004002,000107: 04,2527 37637 CA THREE 004003,000108: 04,2530 54001 TS L 004004,000109: 04,2531 37633 CA NEGTHREE 004005,000110: 004006,000111: 04,2532 24062 INCR ERRSUB # 42 004007,000112: # Here Smally says that c(SKEEP1)==+1 and c(SKEEP2)==-2 004008,000113: # after the addition. I think both signs are the opposite of 004009,000114: # what they should be. 004010,000115: 04,2533 20072 DAS SKEEP1 004011,000116: 04,2534 67635 AD ONE 004012,000117: 04,2535 00006 EXTEND 004013,000118: 04,2536 12540 BZF +2 004014,000119: 04,2537 12553 TCF DIERROR 004015,000120: 04,2540 30071 CA SKEEP1 004016,000121: 04,2541 67635 AD ONE 004017,000122: 04,2542 00006 EXTEND 004018,000123: 04,2543 12545 BZF +2 004019,000124: 04,2544 12553 TCF DIERROR 004020,000125: 04,2545 30072 CA SKEEP2 004021,000126: 04,2546 67632 AD NEGTWO 004022,000127: 04,2547 00006 EXTEND 004023,000128: 04,2550 12552 BZF +2 004024,000129: 04,2551 12553 TCF DIERROR 004025,000130: 004026,000131: 04,2552 12554 TCF +2 004027,000132: 04,2553 07437 DIERROR TC ERRORDSP 004028,000133: End of include-file SmallyDASINCR.agc. Parent file is ValidateSmally.agc