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