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