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