forked from virtualagc/virtualagc
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathSmallyDASINCR.agc
133 lines (121 loc) · 2.61 KB
/
SmallyDASINCR.agc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
# Copyright 2004 Ronald S. Burkey <[email protected]>
#
# This file is part of yaAGC.
#
# yaAGC is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# yaAGC is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with yaAGC; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
# Filename: SmallyDASINCR.agc
# Purpose: This is code written from the flowchart on p. 41 of
# E-2065, which is a document titled "Block II AGC
# Self-Check and Show-Banksum", by Edwin D. Smally.
# Mod history: 07/07/04 RSB. Began.
# 07/09/04 RSB. Finished.
#
# Similar code was apparently originally in Luminary and/or Colossus,
# but much of it was removed over the course of time to make more room.
# I don't know what the original code was like, but the flowcharts still
# exist, so I've rewritten the code from the flowcharts.
# P. 41 of Smally
CA NEGONE
TS L
CA TWO
INCR ERRSUB # 36
DDOUBL
AD NEGFOUR
EXTEND
BZF +2
TCF DIERROR
CA L
AD TWO
EXTEND
BZF +2
TCF DIERROR
CA MAXP # 37777. Smally incorrectly says 3777.
TS SKEEP3
CA MAXN # 40000
TS SKEEP4
CA NEGTWO
TS L
CA THREE
INCR ERRSUB # 37
# Smally incorrectly says here that c(A)==+0 and c(L)==+1.
# This is actually reversed.
DAS SKEEP3
AD NEGONE
EXTEND
BZF +2
TCF DIERROR
CCS L
TCF DIERROR
TCF +3
TCF DIERROR
TCF DIERROR
CA SKEEP3
AD NEGONE
EXTEND
BZF +2
TCF DIERROR
CA SKEEP4
AD ONE
EXTEND
BZF +2
TCF DIERROR
INCR ERRSUB # 40 octal
INCR SKEEP4
CCS SKEEP4
TCF DIERROR
TCF DIERROR
TCF DIERROR
INCR ERRSUB # 41
CA ZEROES
TS L
INCR L
INCR A
AD NEGONE
EXTEND
BZF +2
TCF DIERROR
CA L
AD NEGONE
EXTEND
BZF +2
TCF DIERROR
CA MAXN # 40000
TS SKEEP1
CA MAXP # 37777
TS SKEEP2
CA THREE
TS L
CA NEGTHREE
INCR ERRSUB # 42
# Here Smally says that c(SKEEP1)==+1 and c(SKEEP2)==-2
# after the addition. I think both signs are the opposite of
# what they should be.
DAS SKEEP1
AD ONE
EXTEND
BZF +2
TCF DIERROR
CA SKEEP1
AD ONE
EXTEND
BZF +2
TCF DIERROR
CA SKEEP2
AD NEGTWO
EXTEND
BZF +2
TCF DIERROR
TCF +2
DIERROR TC ERRORDSP