GRAPHICAL
GRAPHICAL
AUTOMATIC PROGRAMMING
A. Kossiakoff
gg~~~~ 6°6~/f~132J
0193 SHZ
019 .. JlIP 8CE .0 PREVIOUS HIT UTIY
0195 COI'!PlBE BIT UTH PBEVIOOS EIfTR!
0 196 00J2511-0020061111 LOI - TO~ t
0191 00J255 00'103401 STA RC'rq
~:: =~;~
0198 003256 00)031116
0199 003251 00'10]11104
0200 003260 00200612 LOI HIT
~~~ ;b~~
0201 00)261 00]0]1116
0202 003262 0010]'10'1
020] 00)263 1001100 SPL SEE IF EQUAL UP 'f0 LIST BIT
020" 00)26'1 n1ll01 TCl
0205 003265 00303417 ::: "'1177776
0206 003266 1000110
0201
0208
003261 00103"03
00]2 70 00200612 t~: :i; :~TB:~r t~ ~~~! . H~~ IG. BourllB
~~ : ;b;~oo
0209 00]211 a 01011t20
0 210 003272 00'10]110"
0211 00 ]21] 00203401 LOl HCT4
;b~~OO
0212
0213 g~~~~~ g ~~
003216 a 01 0])17
g~:~~
PHC2
EITIlCf' 1 PIOI'! Pin. ElTlt
g~~;
00))13 o0)0)'121t
00H14 00 6 00602 ::~ ;~~L 100 Hl.Dli COOIOIIlTES B(10 }E{6,
0230 0'.)])15 -0 04 00645 SU - TD51 stOB! I I to STOI!
0231 00H 16 -00103241 J II P - PRC IETU"
0232
02)] 003J17 0020)401
PR~~\~ 1 (PI:~~oG.T. 1 (BIT),
lDtllCE I 110 IBTU ••
023 4
02)5
00H20 °06 0)42]
003321-0011006'" :~: _ ;~~~OOO
0 236 0 0 ]322 - 00 1 012'17 J!p . PRC
0237 .0 PREYlOOS u r n
00H2) 00200612 HCE LDI
g~~:
HIT
00H211 0 OJ 0]'121 I II "'11071 ! I TI1CT 1 11 0 DELTI • 110" HIT
0240
0211 1
02112
00)325 0 06 031123
003326 -0 04 006114
003321 o 01 03310
;:!. ~~~rDO ST~:; : ; \ 0 rlBlE
HIT COOIDIIlTI lYEI1GUG ( EQU1L l RPLITO OIS)
TD4
02'3
::;0::0 C~::~:I:;T:; I::;I o:E~ :~~;iT~E:I~~S .~; I ORTH
02114
0 245
0246 00]))0 00200602 BCI LDI BGEl
021f7 00))]1 0'1011 76 LGI 2
Fig. 2-Target Coordinate Computation Circuit.
~~!. ~~~r60
0248 003332 o 03031f25
00ll3) 0011 03ltO'
g~;~ 00H)4 -0 02 006115
81I1I'G 0 1 1111 BIT
025 1 003335 0110416 LGB 2
0255
0256
00])40
00)]41
003342
006 0)1104
00'103406
007031104
lDD
SUB
HCT t
HCTl
HCTl
plished by a secondary class of elements repre-
0257
0258
02'59
003H3
0033'111
00)3115
00103'104
1001100
1CJ1'J01
SU8
SPL
TCl
RCTl
g~:~
00H70 00)03112"
003371 00600602 : ~~ ;~~L !~~R~~~u~E~i:, ~ paoft HIT Data Flow Circuit representation for the pro-
0282
0283
0284
003372 00)0]'116
00))1) 00'10)405
0033 711 -0 02 006115
:;:
LO A-
~~~~
T051
gramming of real-time systems can be seen from
003375 003031116
::~ ~~;~
0285
0 286
0287
OO H76 006 03 1105
00H77 011011 71 LGa 1
l DD ! t . o r HIT
DIVIDE BY 2
COftBII! linK UnAGE BUBIIIG
a general comparison between Figs. 1 and 2. The
0288 OOlllOO 0060111011 ADD RCTl
028 9
0290
0291
0031101-004006115
00)1102 0010H17
SU .
J!P
T051
PHC2
stORE COOROItUTES I I TO STORE
ability of following the operations performed on
0292
!lTE RLT
each data input in Fig. 2 makes the interaction of
g~:~ ~g~:g~ HCT1
0295
0296
003~05
OOH06
BSS
HCT2ass
HCT3 ass 1
different variables readily visible. The ease of
0 297 003110 7 HCTIIBSS 1
0298
0299
TDII1 ! QU
TDS1 EOD
16114
16115
lDDRESS OF 1'0 STOBE VI'fH f'OB!llTN(J)U3)0(J) 01(6)
ADDIESS OF TD STOBE VI'fH FOllliT Y e(10) E(6)
representing branching at decision points and
0300 KIT EQD 1612
0)0 1 ~
0)02
BGEL :~~ 1602
tracing the resultant paths through the circuit net-
00)410 000100
00]411
0034 12
000010
003771 work reveals possible logical traps to an engineer
0034U 000030
0011114
00311 15
00)4 16
0'11000
0 1 bOOO
0000 77
much more readily than the conventional logic
0031111
0031120
0031121
177176
007000
007077
flow diagram in which the path of data flow is not
00) 1122
00)42]
170000
010000
000007
shown. It is easy to spot redundant operations,
gg~:~~ 017760
003426
00)421
OHl400
031100
which can be combined.
gg~:~~
062200
171700
Perhaps of equal significance is the fact that
each circuit element, when used in a given com-
Fig. I-Target Coordinate Computation Circuit Program. puter, has associated with it a definite set of in-
structions, except for minor variations depending
defin e its specific operation. Thus, the visual con- on the form of the inputs, and hence the number
figuration of the circuit is descriptive of its general of words in Core, and time to execute, can be
operational function. estimated quite closely at the outset. For example,
The routing of data and control signals among it will be seen later that the COMPARE element,
OPERATOR, COMPARISON, and TRANS- COMP ARE element is activated by the arrival of
FER elements are provided with an optional con- the input at connection # 2, the corresponding
trol input to serve as a gate for delaying the func- data word is in a general register AR, while the
tioning of the element until the receipt of a control other data input is in a temporary memory loca-
signal from elsewhere in the circuit. The READ tion, M6. The resulting code would have the form
FILE and DATA LOOP elements have a con- listed below for computers having a specific
trol input which serves a different purpose, namely "Compare" instruction. The instructions in word
to initiate the next cycle of the loop. form are listed in the left column and the equiva-
The maximum number of connections for any lent instructions in DDP-516 assembly code are
element is six, and for SENSE and OPERATOR listed at the right.
Loopr
I word from the file location designated by the input
I at connection #2.
I
r-- In the fully connected form of the READ FILE
'1 C element, the input required to generate the code is
'V the control input at connection # 6. When this
J X OR V input arrives, the element reads out the data word
CONTROL DATA located at the address indicated by the initial
JUNCTION LOOP
value, n, of the index, i.e. the number of items in
the file to be read out, which has been stored
Fig. 3-Examples of Data Circuit elements. previously at the data input at connection # 2.
are separately identified by the designer and opposed to an ordinary digital circuit, signals flow
recorded in a "Dictionary" accompanying the in a succession of steps, each representing the
set of Data Circuits which will be combined into transfer of a signal from an output of one element
the total program. to an input of an adjoining element. The trans-
The last column of the matrix designated "Con- formation of a Data Flow Circuit into an opera-
nections" indicates the type of each connection, tional sequence involves putting these steps into
namely: an order which can be performed efficiently by
D Data Input a general-purpose computer. A remarkably sim-
o Data Output ple set of rules produces a program that has high
C Control Input efficiency and is free from any evident pitfalls.
J Control Output These rules are listed in Table 3. They are divided
U Unconnected
TABLE 3
The data in this column enable the program to
CIRCUIT TRANSFORMATION RULES
make sure that an output always goes to an input
and that each element has the appropriate type of Output Sequence Priority
connections. 1. Last Data Output
2. Last Control Output
Transformation of Graphical into Input Handling
Logical Form
The third key feature of Graphical Automatic Element Initial Data Final Data or
Programming is the automatic transformation of Type Input Control Input
the Element Interconnection Matrix, generated by 1. FUNCTIONAL Put in Write
the graphics terminal from the Data Flow Circuit, Temporary Function
Store Code
into the desired computer program. This requires
2. DATA Jump to
the translation of the designated process repre- JUNCTION Termination
sented by a two-dimensional circuit diagram into _ 3. CONTROL Change
a one-dimensional sequence of computer instruc- JUNCTION Termination
tions. The noteworthy facts are that this trans- of Inputs
to that of
formation can be done entirely automatically and Output
that the resulting program is highly efficient in 4. DATA Write
execution time and Core usage. LOOP Function
Code
It will be recalled that in a Data Flow Circuit, as
HIT
LABEL INSTRUCTION OUTPUTS
RF5 IRS * RF2
SKP
,..---------- 5
I
3 -{> EXH
RF6
JMP * RF3
LDX *RF2
~ :. EI}
I
LDA *RFl ~ CD
: THR
I CD I I STA DSl I ~ CD
D - DS3 CD
I
~
CJ ~ -- 5 3
CD ANA CP2
CAS *CP6
12 CD 4 JMP DG3
I JMP DG3
I
I JMP CJ2
I
I CD I DG3 I LDA
I
L_________ _ JTK CD LDX *WF2
STA *WF4
WF IRS *WF2
3 JMP * CJ2
tEXT
b LINKS 2 to 7 JMP WF3
TRK
HIT
@
: I THR
STA DSl
ANA CP2
~
CAS CP6
JMP DG3
CJ 1- - -
JMP
31
DG3
I ® JMP RF5
1 DG3 LDA DSl
I LDX *WF2
I STA *WF4
I JTK IRS *WF2
L _________ 6
® JMP RF5 £. :.~i CD
CD WF JMP *WF3 ~ :.'{!F.HD
3 -~ EXT CP2 DEC MKA I ~ :.Bf2. ®
C LINKS 8 to 11 TRK CD
TABLE 4
ELEMENT OPERATIONAL SEQUENCE
Linkage/ Status
Ref
No. Code Seq. 1 2 3 4 5 6
1 RF 1 RFI/* RF2/* RF3/* DSI/O RF5/L RF6/*L
2 CP 3 /U RF4/AMP /U DG3/J RF5 / J CP6/*
3 WF 5 DG2/ AM WF2/* WF3/* WF4/* /U RF5 / J
4 DS 2 RF4/A DGI/O CP2/0 /U /U /U
5 DG 4 RF4/ M WFI/O DG3/L /U /U /U
Status:
* Stored in Linkage Location P Data to be prepared o Data Output
A Data in general register L Labelled Instruction J Control Output
M Stored in Memory C Control Input U Unconnected
- --I
--- 1
'--_~ I I
TARGET TRACK
PREDICTION
r
BEARING
ELEVATION
IT
RANGE
immediately by altering the circuit and verifying
that the errors have been eliminated.
4. The GAP technique is ideally suited to rapid
and thorough testing of the program at any desired
Fig. lo--Program module. level of realism. Thus, upon completion of a con-
stituent circuit, the designer can test it by entering
Program Dictionary-The efficient manage- sample inputs and reading out the resulting out-
ment of the process of program design requires puts. He can also quickly design a test program
careful definition , organization, and maintenance in the form of another Data Circuit which would
of all terms used in the program. The list of these perform a realistic simulation of the program in-
properties has to be assembled during the design put and automatically compare the results with
process and, when complete, constitutes a basis requirements.
for fully documenting the program and facilitating
A particularly important type of test that may
future changes.
be performed automatically is that of compatibility
The data required for this list include the code
with real-time operation. Since the functioning of
names, definitions, format, constituent parts, and
each element corresponds to a definite execution
cross-references of all of the following in a Pro-
time in the computer to be employed, it is readily
gram Dictionary:
possible to have the test program simulate the
1. Variables and constants execution time and monitor it against specified
2. Data Files events.
Conditions (Cause)
Previous entry in TD4,
(A, ~R) None Yes Yes Yes Yes
~R of hit correlates with
previous entry No Yes Yes Yes
Amplitude of hit compared
to previous entry Greater Equal Less
Actions (Effect)
Number of hits Set = 1 Add 1 Add 1 Add 1
Store in file TD4,
(N, A, ~R) New hit New hit Previous Previous
hit hit
Store in file TD5,
(B, E) New hit New hit Average
Other Exit