Source Code
003696,000001: # Copyright 2004 Ronald S. Burkey <info@sandroid.org>
003697,000002: #
003698,000003: # This file is part of yaAGC.
003699,000004:
003700,000005: # yaAGC is free software; you can redistribute it and/or modify
003701,000006: # it under the terms of the GNU General Public License as published by
003702,000007: # the Free Software Foundation; either version 2 of the License, or
003703,000008: # (at your option) any later version.
003704,000009:
003705,000010: # yaAGC is distributed in the hope that it will be useful,
003706,000011: # but WITHOUT ANY WARRANTY; without even the implied warranty of
003707,000012: # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
003708,000013: # GNU General Public License for more details.
003709,000014:
003710,000015: # You should have received a copy of the GNU General Public License
003711,000016: # along with yaAGC; if not, write to the Free Software
003712,000017: # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
003713,000018:
003714,000019: # Filename: SmallyDASINCR.agc
003715,000020: # Purpose: This is code written from the flowchart on p. 41 of
003716,000021: # E-2065, which is a document titled "Block II AGC
003717,000022: # Self-Check and Show-Banksum", by Edwin D. Smally.
003718,000023: # Mod history: 07/07/04 RSB. Began.
003719,000024: # 07/09/04 RSB. Finished.
003720,000025:
003721,000026: # Similar code was apparently originally in Luminary and/or Colossus,
003722,000027: # but much of it was removed over the course of time to make more room.
003723,000028: # I don't know what the original code was like, but the flowcharts still
003724,000029: # exist, so I've rewritten the code from the flowcharts.
003725,000030:
003726,000031: # P. 41 of Smally
003727,000032:
003728,000033: 04,2425 37424 CA NEGONE
003729,000034: 04,2426 54001 TS L
003730,000035: 04,2427 37431 CA TWO
003731,000036:
003732,000037: 04,2430 24062 INCR ERRSUB # 36
003733,000038: 04,2431 20001 DDOUBL
003734,000039: 04,2432 67427 AD NEGFOUR
003735,000040: 04,2433 00006 EXTEND
003736,000041: 04,2434 12436 BZF +2
003737,000042: 04,2435 12553 TCF DIERROR
003738,000043: 04,2436 30001 CA L
003739,000044: 04,2437 67431 AD TWO
003740,000045: 04,2440 00006 EXTEND
003741,000046: 04,2441 12443 BZF +2
003742,000047: 04,2442 12553 TCF DIERROR
003743,000048:
003744,000049: 04,2443 37443 CA MAXP # 37777. Smally incorrectly says 3777.
003745,000050: 04,2444 54070 TS SKEEP3
003746,000051: 04,2445 37447 CA MAXN # 40000
003747,000052: 04,2446 54071 TS SKEEP4
003748,000053: 04,2447 37425 CA NEGTWO
003749,000054: 04,2450 54001 TS L
003750,000055: 04,2451 37432 CA THREE
003751,000056:
003752,000057: 04,2452 24062 INCR ERRSUB # 37
003753,000058: # Smally incorrectly says here that c(A)==+0 and c(L)==+1.
003754,000059: # This is actually reversed.
003755,000060: 04,2453 20071 DAS SKEEP3
003756,000061: 04,2454 67424 AD NEGONE
003757,000062: 04,2455 00006 EXTEND
003758,000063: 04,2456 12460 BZF +2
003759,000064: 04,2457 12553 TCF DIERROR
003760,000065: 04,2460 10001 CCS L
003761,000066: 04,2461 12553 TCF DIERROR
003762,000067: 04,2462 12465 TCF +3
003763,000068: 04,2463 12553 TCF DIERROR
003764,000069: 04,2464 12553 TCF DIERROR
003765,000070: 04,2465 30070 CA SKEEP3
003766,000071: 04,2466 67424 AD NEGONE
003767,000072: 04,2467 00006 EXTEND
003768,000073: 04,2470 12472 BZF +2
003769,000074: 04,2471 12553 TCF DIERROR
003770,000075: 04,2472 30071 CA SKEEP4
003771,000076: 04,2473 67430 AD ONE
003772,000077: 04,2474 00006 EXTEND
003773,000078: 04,2475 12477 BZF +2
003774,000079: 04,2476 12553 TCF DIERROR
003775,000080:
003776,000081: 04,2477 24062 INCR ERRSUB # 40 octal
003777,000082: 04,2500 24071 INCR SKEEP4
003778,000083: 04,2501 10071 CCS SKEEP4
003779,000084: 04,2502 12553 TCF DIERROR
003780,000085: 04,2503 12553 TCF DIERROR
003781,000086: 04,2504 12553 TCF DIERROR
003782,000087:
003783,000088: 04,2505 24062 INCR ERRSUB # 41
003784,000089: 04,2506 30007 CA ZEROES
003785,000090: 04,2507 54001 TS L
003786,000091: 04,2510 24001 INCR L
003787,000092: 04,2511 24000 INCR A
003788,000093: 04,2512 67424 AD NEGONE
003789,000094: 04,2513 00006 EXTEND
003790,000095: 04,2514 12516 BZF +2
003791,000096: 04,2515 12553 TCF DIERROR
003792,000097: 04,2516 30001 CA L
003793,000098: 04,2517 67424 AD NEGONE
003794,000099: 04,2520 00006 EXTEND
003795,000100: 04,2521 12523 BZF +2
003796,000101: 04,2522 12553 TCF DIERROR
003797,000102:
003798,000103: 04,2523 37447 CA MAXN # 40000
003799,000104: 04,2524 54066 TS SKEEP1
003800,000105: 04,2525 37443 CA MAXP # 37777
003801,000106: 04,2526 54067 TS SKEEP2
003802,000107: 04,2527 37432 CA THREE
003803,000108: 04,2530 54001 TS L
003804,000109: 04,2531 37426 CA NEGTHREE
003805,000110:
003806,000111: 04,2532 24062 INCR ERRSUB # 42
003807,000112: # Here Smally says that c(SKEEP1)==+1 and c(SKEEP2)==-2
003808,000113: # after the addition. I think both signs are the opposite of
003809,000114: # what they should be.
003810,000115: 04,2533 20067 DAS SKEEP1
003811,000116: 04,2534 67430 AD ONE
003812,000117: 04,2535 00006 EXTEND
003813,000118: 04,2536 12540 BZF +2
003814,000119: 04,2537 12553 TCF DIERROR
003815,000120: 04,2540 30066 CA SKEEP1
003816,000121: 04,2541 67430 AD ONE
003817,000122: 04,2542 00006 EXTEND
003818,000123: 04,2543 12545 BZF +2
003819,000124: 04,2544 12553 TCF DIERROR
003820,000125: 04,2545 30067 CA SKEEP2
003821,000126: 04,2546 67425 AD NEGTWO
003822,000127: 04,2547 00006 EXTEND
003823,000128: 04,2550 12552 BZF +2
003824,000129: 04,2551 12553 TCF DIERROR
003825,000130:
003826,000131: 04,2552 12554 TCF +2
003827,000132: 04,2553 07240 DIERROR TC ERRORDSP
003828,000133:
End of include-file SmallyDASINCR.agc. Parent file is ValidateSmally.agc