Source Code

005259,000001: # Copyright 2004 Ronald S. Burkey <info@sandroid.org> 005260,000002: # 005261,000003: # This file is part of yaAGC. 005262,000004: 005263,000005: # yaAGC is free software; you can redistribute it and/or modify 005264,000006: # it under the terms of the GNU General Public License as published by 005265,000007: # the Free Software Foundation; either version 2 of the License, or 005266,000008: # (at your option) any later version. 005267,000009: 005268,000010: # yaAGC is distributed in the hope that it will be useful, 005269,000011: # but WITHOUT ANY WARRANTY; without even the implied warranty of 005270,000012: # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 005271,000013: # GNU General Public License for more details. 005272,000014: 005273,000015: # You should have received a copy of the GNU General Public License 005274,000016: # along with yaAGC; if not, write to the Free Software 005275,000017: # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 005276,000018: 005277,000019: # Filename: SmallyDVCHECK.agc 005278,000020: # Purpose: This is code written from the flowchart on p. 62-64 of 005279,000021: # E-2065, which is a document titled "Block II AGC 005280,000022: # Self-Check and Show-Banksum", by Edwin D. Smally. 005281,000023: # Mod history: 07/07/04 RSB. Began. 005282,000024: 005283,000025: # Similar code was apparently originally in Luminary and/or Colossus, 005284,000026: # but much of it was removed over the course of time to make more room. 005285,000027: # I don't know what the original code was like, but the flowcharts still 005286,000028: # exist, so I've rewritten the code from the flowcharts. 005287,000029: 005288,000030: # P. 62 of Smally. 005289,000031: 10,2003 37622 CA O-3777 005290,000032: 10,2004 54074 TS SKEEP4 005291,000033: 10,2005 24074 INCR SKEEP4 005292,000034: 10,2006 37612 CA O20000 005293,000035: 10,2007 54071 TS SKEEP1 005294,000036: 10,2010 37625 CA O-20000 005295,000037: 10,2011 54072 TS SKEEP2 005296,000038: 10,2012 37655 CA MAXN # -37777 005297,000039: 10,2013 54001 TS L 005298,000040: 10,2014 37611 CA O17777 005299,000041: 005300,000042: 10,2015 24062 INCR ERRSUB 005301,000043: 10,2016 37612 CA O20000 005302,000044: 10,2017 54063 TS TEMPI 005303,000045: 10,2020 37655 CA MAXN # -37777 005304,000046: 10,2021 54001 TS L 005305,000047: 10,2022 37611 CA O17777 005306,000048: 10,2023 00006 EXTEND 005307,000049: 10,2024 10063 DV TEMPI 005308,000050: 10,2025 54077 TS SKEEP7 005309,000051: 10,2026 30001 CA L 005310,000052: 10,2027 67631 AD NEGONE 005311,000053: 10,2030 00006 EXTEND 005312,000054: 10,2031 12033 BZF +2 005313,000055: 10,2032 12267 TCF DVERROR 005314,000056: 005315,000057: 10,2033 24062 INCR ERRSUB 005316,000058: 10,2034 37625 CA O-20000 005317,000059: 10,2035 54063 TS TEMPI 005318,000060: 10,2036 37655 CA MAXN 005319,000061: 10,2037 54001 TS L 005320,000062: 10,2040 37611 CA O17777 005321,000063: 10,2041 00006 EXTEND 005322,000064: 10,2042 10063 DV TEMPI 005323,000065: 10,2043 60077 AD SKEEP7 005324,000066: 10,2044 10000 CCS A 005325,000067: 10,2045 12046 NOOP 005326,000068: 10,2046 12047 NOOP 005327,000069: 10,2047 12267 TCF DVERROR 005328,000070: 10,2050 30001 CA L 005329,000071: 10,2051 67631 AD NEGONE 005330,000072: 10,2052 00006 EXTEND 005331,000073: 10,2053 12055 BZF +2 005332,000074: 10,2054 12267 TCF DVERROR 005333,000075: 005334,000076: 10,2055 24062 INCR ERRSUB 005335,000077: 10,2056 37612 CA O20000 005336,000078: 10,2057 54063 TS TEMPI 005337,000079: 10,2060 37651 CA MAXP 005338,000080: 10,2061 54001 TS L 005339,000081: 10,2062 37624 CA O-17777 005340,000082: 10,2063 00006 EXTEND 005341,000083: 10,2064 10063 DV TEMPI 005342,000084: 10,2065 54076 TS SKEEP6 005343,000085: 10,2066 60077 AD SKEEP7 005344,000086: 10,2067 10000 CCS A 005345,000087: 10,2070 12071 NOOP 005346,000088: 10,2071 12072 NOOP 005347,000089: 10,2072 12267 TCF DVERROR 005348,000090: 10,2073 30001 CA L 005349,000091: 10,2074 67635 AD ONE 005350,000092: 10,2075 00006 EXTEND 005351,000093: 10,2076 12100 BZF +2 005352,000094: 10,2077 12267 TCF DVERROR 005353,000095: 005354,000096: 10,2100 24062 INCR ERRSUB 005355,000097: 10,2101 37625 CA O-20000 005356,000098: 10,2102 54063 TS TEMPI 005357,000099: 10,2103 37651 CA MAXP 005358,000100: 10,2104 54001 TS L 005359,000101: 10,2105 37624 CA O-17777 005360,000102: 10,2106 00006 EXTEND 005361,000103: 10,2107 10063 DV TEMPI 005362,000104: 10,2110 60076 AD SKEEP6 005363,000105: 10,2111 10000 CCS A 005364,000106: 10,2112 12113 NOOP 005365,000107: 10,2113 12114 NOOP 005366,000108: 10,2114 12267 TCF DVERROR 005367,000109: 10,2115 30001 CA L 005368,000110: 10,2116 67635 AD ONE 005369,000111: 10,2117 00006 EXTEND 005370,000112: 10,2120 12122 BZF +2 005371,000113: 10,2121 12267 TCF DVERROR 005372,000114: 10,2122 37613 CA O37774 005373,000115: 10,2123 60076 AD SKEEP6 005374,000116: 10,2124 00006 EXTEND 005375,000117: 10,2125 12127 BZF +2 005376,000118: 10,2126 12267 TCF DVERROR 005377,000119: 005378,000120: 10,2127 24062 INCR ERRSUB 005379,000121: # P. 63 of Smally. 005380,000122: 10,2130 37612 CA O20000 005381,000123: 10,2131 54063 TS TEMPI 005382,000124: 10,2132 37651 CA MAXP # 37777 005383,000125: 10,2133 54001 TS L 005384,000126: 10,2134 37611 CA O17777 005385,000127: 10,2135 00006 EXTEND 005386,000128: 10,2136 10063 DV TEMPI 005387,000129: 10,2137 67655 AD MAXN # -37777 005388,000130: 10,2140 00006 EXTEND 005389,000131: 10,2141 12143 BZF +2 005390,000132: 10,2142 12267 TCF DVERROR 005391,000133: 005392,000134: 10,2143 24062 INCR ERRSUB 005393,000135: 10,2144 37614 CA O37776 005394,000136: 10,2145 54063 TS TEMPI 005395,000137: 10,2146 22007 ZL 005396,000138: 10,2147 37614 CA O37776 005397,000139: 10,2150 00006 EXTEND 005398,000140: 10,2151 10063 DV TEMPI 005399,000141: 10,2152 67655 AD MAXN # -37777 005400,000142: 10,2153 00006 EXTEND 005401,000143: 10,2154 12156 BZF +2 005402,000144: 10,2155 12267 TCF DVERROR 005403,000145: 10,2156 30001 CA L 005404,000146: 10,2157 67627 AD O-37776 005405,000147: 10,2160 00006 EXTEND 005406,000148: 10,2161 12163 BZF +2 005407,000149: 10,2162 12267 TCF DVERROR 005408,000150: 005409,000151: # P. 64 of Smally 005410,000152: 10,2163 30007 CA ZEROES 005411,000153: 10,2164 54071 TS SKEEP1 005412,000154: 10,2165 37630 CA NEGZERO 005413,000155: 10,2166 54072 TS SKEEP2 005414,000156: 005415,000157: 10,2167 24062 INCR ERRSUB 005416,000158: 10,2170 30007 CA ZEROES 005417,000159: 10,2171 54063 TS TEMPI 005418,000160: 10,2172 54001 TS L 005419,000161: 10,2173 00006 EXTEND 005420,000162: 10,2174 10063 DV TEMPI 005421,000163: 10,2175 54077 TS SKEEP7 005422,000164: 10,2176 10001 CCS L 005423,000165: 10,2177 12267 TCF DVERROR 005424,000166: 10,2200 12203 TCF +3 005425,000167: 10,2201 12202 NOOP 005426,000168: 10,2202 12267 TCF DVERROR 005427,000169: 005428,000170: 10,2203 24062 INCR ERRSUB 005429,000171: 10,2204 37630 CA NEGZERO 005430,000172: 10,2205 54063 TS TEMPI 005431,000173: 10,2206 22007 ZL 005432,000174: 10,2207 00006 EXTEND 005433,000175: 10,2210 10063 DV TEMPI 005434,000176: 10,2211 54076 TS SKEEP6 005435,000177: 10,2212 60077 AD SKEEP7 005436,000178: 10,2213 10000 CCS A 005437,000179: 10,2214 12215 NOOP 005438,000180: 10,2215 12216 NOOP 005439,000181: 10,2216 12267 TCF DVERROR 005440,000182: 10,2217 30001 CA L 005441,000183: 005442,000184: 10,2220 24062 INCR ERRSUB 005443,000185: 10,2221 30007 CA ZEROES 005444,000186: 10,2222 54063 TS TEMPI 005445,000187: 10,2223 37630 CA NEGZERO 005446,000188: 10,2224 54001 TS L 005447,000189: 10,2225 30007 CA ZEROES 005448,000190: 10,2226 00006 EXTEND 005449,000191: 10,2227 10063 DV TEMPI 005450,000192: 10,2230 60077 AD SKEEP7 005451,000193: 10,2231 10000 CCS A 005452,000194: 10,2232 12233 NOOP 005453,000195: 10,2233 12234 NOOP 005454,000196: 10,2234 12267 TCF DVERROR 005455,000197: 10,2235 10001 CCS L # Smally says -0, but I think +0. 005456,000198: 10,2236 12267 TCF DVERROR 005457,000199: 10,2237 12267 TCF DVERROR 005458,000200: 10,2240 12267 TCF DVERROR 005459,000201: 005460,000202: 10,2241 24062 INCR ERRSUB 005461,000203: 10,2242 37630 CA NEGZERO 005462,000204: 10,2243 54063 TS TEMPI 005463,000205: 10,2244 54001 TS L 005464,000206: 10,2245 30007 CA ZEROES 005465,000207: 10,2246 00006 EXTEND 005466,000208: 10,2247 10063 DV TEMPI 005467,000209: 10,2250 60076 AD SKEEP6 005468,000210: 10,2251 10000 CCS A 005469,000211: 10,2252 12253 NOOP 005470,000212: 10,2253 12254 NOOP 005471,000213: 10,2254 12267 TCF DVERROR 005472,000214: 10,2255 10001 CCS L 005473,000215: 10,2256 12257 NOOP 005474,000216: 10,2257 12260 NOOP 005475,000217: 10,2260 12267 TCF DVERROR 005476,000218: 10,2261 37651 CA MAXP # 37777 005477,000219: 10,2262 60076 AD SKEEP6 005478,000220: 10,2263 00006 EXTEND 005479,000221: 10,2264 12266 BZF +2 005480,000222: 10,2265 12267 TCF DVERROR 005481,000223: 005482,000224: # All done. 005483,000225: 10,2266 12270 TCF DVDONE 005484,000226: 10,2267 07437 DVERROR TC ERRORDSP 005485,000227: 10,2270 DVDONE 005486,000228: End of include-file SmallyDVCHECK.agc. Parent file is ValidateSmally.agc