Signature Redacted
Signature Redacted
by
Signature redacted
Signature of Author.. .0..
Department of Mechii dUl, Efgnee ring, May 9, 1975
Certified by .... Signature redacted
1SiVgflatu
I A - t u % Tie ais Supervisor
Accepted by. . . . . . re redacted
.
Archives
2
ABSTRACT
ACKNOWLEDG.EMENTS
TABLE OF CONTENTS
Abstract page 2.
Acknowledgements page 3.
Table of Contents page 4.
List of Tables and Figures page 5.
Tables:
Table, 1. Roles of Digital Computers in page 7.
Hybrid Computation and Simulation
Table 2. Goals of System page 13.
Table 3. Hybrid Operations and Commands page 19.
Figures:
Figure 1. Hybrid Computing System page 9.
Figure 2. Bilateral Computer System page 10.
Figure 3. Hybrid Programming System page 14.
Figure 4. Interpreter Flow Chart page 15.
Figure 5. Example Block Program page 20.
Figure 6. Example Hybrid Program page 21.
Figure 7. Bar Simulation Diagram page 24.
Figure 8. Hybrid Model of Bar page 25.
Figure 9. Bar Program Listing page 26.
Figure 10. Gas Turbine Ship Diagram page 27.
Figure 11. Hybrid Model of Ship page 28.
Figure 12, Ship Program Listings page 29,
13. 30-
6
INTRODUCTION
Digital computers:
1) Have the facility to memorize numerical and nonnumer-
ical data indefinitely.
2) They perform logical operations and decision making
using numerical or nonnumerical data.
3) Floating point arithmetic eliminates scale-factors.
4) Information can be handled in discrete form.
5) Digital programs can control and modify themselves,
or analog systems by control signals.
An outline of hybrid operations is shown in table 1.
7
c) Report preparation.
-Table 1.
8
LO(rk C
?AT CA
M~
NPUTT
?MliVE A/t
-
Co~vekskom
5-'
Z/ I\CwTbR
AMD
1/0 (WSI STO PkG
CRT
R ft N 'A
G~UQR.
A LO&(7- b\CzTAAWAC
I /Q
z\ \10
31(ITA ANA\..%oO& M
/
0.1
El\r'RE. ?.
11
2) Program compiler.
In this mode the system inputs the users hybrid pro-
gramming language statements and compiles them into
an intermeadiate code. This code is stored in disk
files which are referenced by the loader at load time.
3) Analog control.
In this mode the system reads the users command and
performs the desired operation on the analog system.
Control operations normally done manually at the
analog control console are done automatically by
the digital computer.
12
4) Input/Output.
This mode controls the reading, printing, and plot-
ting of data requested by the user. After control
is passed from the supervisor to this section, the
storage area referenced is located in the symbol
table, and the operation performed. Scaled fraction
data is used as the data type for the system. The
present input output operations include reading,
printing, and plotting, and are called by giving
the operation, the storage area identifier, and
any required parameters.
5) Loader.
This mode controls data base and program loading.
The compiled program is loaded from the disk and the
storage allocated by the compiler is initialized to
the required form. Buffers, tables, and delay lines
are cleared and special pointers and constants loaded.
The system can now perform input/output or enter
the hybrid interpreter section.
6) Hybrid Interpreter.
This mode controls the actual parallel operation of
the analog and digital computers. The users hybrid
program is translated from the intermeadiate form,
generated by the compiler, into core addresses in
the digital computer. The interpreter then synch-
ronizes itself with an external real time clock and
begins execution. The users program is executed line
by line for the specified time. Automatic A/D and
D/A conversions are performed each cycle. After the
cycle is completed, the interpreter waits for the
clock time step to finish and then restarts the cycle.
If time steps specified are too small to complete a
program cycle, error messages are given. (See fig. 4.)
A system structure and information flow diagram of the complete
system is shown in figure 3.
13
GOALS OF SYSTEM
Table- 2.
14
STAkpT o
r -
-
~ZZZZ~
CARDSb
AtANoc' SET xP
oNTRo N
IL-I9RTE ~mOC~~
0co)
DA -1
bo.
ALtmt"INTc h/DWA A/
0 taflOu %tocs
-IH isy c14Rt4%%%t.
4YUM
? PRo(&RPtA L\NK PRO &MRAtN&
-- + CONNack. %Nm VV ST -M
KEY DATA ho%)
lNFOMAT\0
Com"oN DATA FLOW)
2znP 90ROAM cot.
-FeARlE 3,
1
-
(E VT RY
SYNCtOMI'VE WT c,tOC-K
ZONE YS ITLR
N4
I TNT ERRFTE
I r ow CAKAT
F Cvvgt 4 4
16
I.) Operations:
ADD (add two inputs)
SUBTRACT ( subtract two inputs)
MULTIPLY ( multiply two inputs)
DIVIDE ( divide two inputs)
FUNCF1 ( one input function)
FUNCF2 ( two input function)
DELAY ( delay input N cycles)
PUT ( input into buffer)
GET ( output from buffer)
INTEGRAT ( integrate input,store in output)
MOVE ( move input to output location)
INVERT ( invert input
)
II.) Commands:
*PROGRAM start new compilation)
*RUN execute program)
*LOAD load program from disk files)
*LIST print program code to orinter)
*SYMBOL print program symbol table)
*EXEC link to EXECUTIVE program)
*READ) input data to specified locations)
*PRINT print contents of specified arg.)
*PLOT plot buffer on CRT
)
Table 3.
PULT
151APPA
A/0-1 zwoky
>(D -0 b/A-1
ADI
A/0-3
Z/A-M
C
Fw
A/D' ma)
(INT
A/~S
)
oAMe.~L
0.
FuIGURE S.
21
DEFINE VARIABLE
DELAY DLIAPADOIPABI;
ADD AB1,#AO03o#DA0jJ
PUT PDA01,BUF;
SUBTRACT @AD04,AD02pDTP;
FUNCF2 DTPi0AD03,#DA04;
MULTIPLY @AD05,*0.030sX1
INTEGRAT X1,INT;
ADD PAD02,INTPODA02;
END;
FIARE (o.
22
SYSTEM OPERATION
ztA=4TF' PC
'II
F' :iV C
F I GIARS 7.
*N
-m
A/0-0
A%/r~O
IDELAYf
Rt3 A
y
Lo
-3
I,93C
WID
Owl
F1sRE 8.
26
*PROGRAM;
PUT @AD01,VOUT;
PUT PAD03,AOUTi
END;
*EXEC;
*TIMEOP 10.0,0020J
*LOAD;
*RUN;
*EOUJ
- FIGURE 9.
IFV
Towu+
v.0 To .LST
R1PM
E10.
L
SSTT 110( Si A/0-0
a mw
'I
p
*1'
ml
II L Ft~c.
A/D
-
bIA.f~ S
II
a Ak~- PP,
-I
I'
II
I Fv~c.t, Ib/A I
II
II
II
D/A3
P/A - 3 (Fu~cv)
*sol
AItop
AWALOGP MODIEL. I
II
II DIWAL ~TSmOcxV PROGAT
HYSRM S41? SI1..AJL~*4 I
I
F~~I~R
29
*PROGRAMj
DEFINE VARIABLE Xj
DEFINE VARIABLE Z;
DEFINE VARIABLE Y;
DEFINE VARIABLE R;
FUNCF2 FPRCP(aAD01,@AD04,DA03J
FUNCF1 FRICs@AD04,(DA04;
PUT PADO1sRPMJ
PUT AD04pVSHIPJ
PUT AD00sBUF2)
ENDJ
FIGLAE \I.
30
*EXEC;
*READ TORQE(21s21);
*READ FPROP(21,21);
*READ TPROP(21121);
*TIMEOP 10.0s0.010'
*LOAD;
*RUN,
CONCLUSION
RECOMMENDATIONS
BIBLIOGRAPHY
Rubis, C.J.
"Acceleration and Steady-State Propulsion Dynamics of a
Gas Turbine Ship with Controllable Pitch Propeller",
New York: The Society of Naval Architects and Marine
Engineers. , 1972.
34
APPENDIX
A 5j
-LO' oi~ L. a a 2 0 11 a
IL 0 0.1 ILA 0.Li Q.6& 07Y I.U &9
SCA'SI. Tr
M
v4
Lo v I I 9 I 9 1 9 U
Ki
--A--..- a I A s
.
"T
SC-X-S T 8.s89c
vy c IFT 5 rmc,
S
ILO I v v 13
I 9 v
2
I v i r
Vvo t f,
a'ms
co
AL I
a A A 2 ft ft
--- L- - - - - i
4tOo.p" V-GF
~Abe QQ-ql -sw
per rSU aV Z 1) 5V Pu, E. eV T 0
9 0
40
COMMON/PRnGRM/PSTARTPCOUNTPENDNSTVTsPNUMNDFCSERRORS
COMMON/SYmBOL/SYrTAF, SYMVALSYMTYP
COMmO\ PROGS
C * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * **
C DATA INTTIALI 7 ATION
DATA ATESTDTESTsVTESTsSTEST/'9AD ','9DA I'Is 1s0# '/
DATA LTABPLBUF/ITABLE ','RUFFER '/
DATA nPSYMDsOPSYMYsOPSYMF/'DEFI's'DELA's'FUNCI/
DATA ATSIGN/'I '/sLPOUND/'# I/
DATA AqTRKsBLANKDQLSGN/f* fit ',$ '/
DATA rLEAp/I I
DATA LITAr)CiLITDAC/'AD's '0A'/
DATA LVAR/'VARIALE'/
DATA rTEST/'J 'I/
DATA LDOLLDEL/IDOUBLE 'I'DELAY '/
DATA OPSYmV/'DATAI/
DATA LITALITZ/'A 'PIZ '/
C ********* ***************************************************************
C FILE SPECIFICATION STATFMENTS
DEFT! FILE 1(109,3,1PIRFC1)
DEFTNF FILE ?(60,2,U,IPEC2)
DEFTNF FILE 3(10V00siUIREC3)
C * *** ***** ** ************ ****** *******************************************
C MAPK PILE I WITH PROGRAM ID
PCOIINTOO
PSTAPT=0
C CLEAR SYtTAR
DO 7qP I sNSYMAX
SYMTAP (I).CLEAR
42
SYMVAL ()=0
SYMTYP( I)=
7910 CONTINUE
9150 FORVAT (5ys4A2,2X I
)
GO TC 1
C PRINT ERROR MESSAGE
I WRITE(NTYp,9120)IERPORsB!FSYM
9120 FORMAT(IX,'***** ERROR #sIp5p' SYMBOL ERROR P> 's A8,'SKIP CARD')
C * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * **
IF(IERROR.NE.10)ERRORS=ERRORS+1
1) CONTINUE
ITYpE=7
KKaoi
BUFRYMnCLEAR
IERRpCpo
oNE=t
THRFE=3
ZEROzo
LCOUNT=LOCCNT
IF(LOCCNT.GE.TOPCOR) GO TO 6000
C READ IN A CARD AND PROCESS
CALL CARDTN(ANGPFL AGsOPFLAGIERROR)
11 CONTINUE
IF(TE OR.NE. 9) GO TO 1
CALL mOVE(ARG(1),OiPTESTS0,8)
C LCOK IN OoERATUR TABLE
DO 95o K=isNOPTAF
IF(OPTEST.EQ.PCODE(K)) GO TO 600
55e CONTINUE
C IF OP COCE ILLEGAL DO ERROR ROUTINE
WRITE (NTYpi9102)OfPTFST
9102 FOPfiAT(1ys'ILLEGAL OPERATION CODE w> 'iIA8)
IERPCP=4
BUFSyM=OPTEST
GO TC 1
600 OPEpCn=OPVAL(K)
C TEST ARGE FOR TYPE
C * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * **
C GET ARG 0
C TEST FOR IMMEAVIATE
TF(OPFLAG.EQ9.) GO TO 30po
C TEST FOp DEFINE ,FUNCTION, DFLAY STATEMENTS
OPHALF=REAL(OPTEST)
IF(npwALF.EQ.UPSYMD) GO TO 1000
IF(lpwALF.EQ.OPSYMY) GO TO 1100
IF(fPLJALF.EQ.UPSYMF) GO TO 1200
C NOT TYPE cTAT MENT C CHECK APGS FOR TYPE
C q IS AN I/O CHANNEL
C * IS A qCALEO FRACTION CONSTANT
43
*
C DEFINE STATEMENT PROCESSOR
I10v! 9UFSYM=AprG(3)
TF(NSYMRLEQ0.) GO To 10P0
C TEST FOR CONFLICT
C L0OK IN SyMBO1 TABLE FOR LOCAT ION
DO looci I~lsNSYMFL
IF(RUFSYMEQ.SYMTAB(I)) GO TO 1010
10A5 CONTT INUE
GO TO 102o
1010 WPTTF(NTyP9107)BUFSYM
9ir07 FORMAT(lXiNAME CONFLICT => ',1A8.' PREVIOUSLY DEFINED NAME')
IERROR=6
0 TO I
10pV CTECTuSLANIK
CALL pYTE(BUFSYM,0pCTESTp0)
IF(CTESTeLT.LITA) GO TO 1025
IF(CTFST nToLITZ) GO TO 1025
C 1'UT NEV' NAME N SYMTAB
NSYMBL=NSyMBL+1
IF(NqYMPL*GT*NSYMAX) GO TO 1021
T uNzymL
SYMTA (NSyMBL ) =BUFSYM
C SYMBOL VALUE TS LOCATION COUNTER
SYMVAL ( NSYMBL)=LOCCNT
5YMTYD( I ).1
LStAVEwL OCCNT
LOCrNT=LOCCNT+1
FUFSym=ARq(2)
45
TF(egUAL(ARG(5)s#sETESTspsi)) GO TO 1071
IwIcFTY(FpIN(ARG(5)yZEPO))
1071 LOCCNT= OCCNT+NN+P
GO TO 1051
10b VRITr (NTyP s9110) RUFSYM
46
*
C DELAY STATFMENT PROCESSOP
1100 CONTINUE
BUPSYM=A R (2)
C LOOK IN SYv1BOL TABLE
DO 1101 I1NSYMPL
IF(PtjFrYM.EQ.SYMTAB(I)) SO TO 1105
IIz1 CONT TJUE
IEROP=P0
GO TO 1
11qib LSAVyoSYVAL(I)
IF(cyMTyP(I).LT.*) GO TO 1106
IEPwPo:"6
GO TO 1
1IL6 APG(p).ApG(3)
ARG(3)-APG(4)
C SHIFT DFLAY NAME TO 4 Tw ARGUMENT SLOT
APG(4) BUjFSYM
GO TO 900
**
C FUNCTION 5TATrMENT PPOCESSOR
12 0 BUFSY"=ApG(2)
DO 121l Imit NSYMRL
IF(qUFqYM.EQ.SYMTAB(I)) GO TO 1215
12 1 CONTINUE
WRITE(NJTYpP9135)PUFSYM
'115 FORMAT( 1XUNDEFIN'ED FUNCTION NAME =>I'1A8)
IERPOP=9
GO TO I
IF(mPr'CD,EQ.ANAVAL) GO TO 8000
IF(OPFPCn9EQ*SETPOT) GO TO 9000
C TF OP IN ryEC LINK TC EXFC
IF(nPERCDEQ.EXEC) GO TO 3001
IF(OPrRCDEQ.LOAD) GO TO 3001
IF(oPFRCDEQ.LIST) GO TO 3001
TF(nPFRCDEQ.PRINT) GO TO 3001
IF(OPERCneEQ* PLOT) GO TO 3001
IF(OPERCDEG.READ) GO TO 3001
1F (OPERCn.EQ*RUN) GO TO 3001
IF(OPrRCD.EQ.TIMEOP) GO TO 3001
r. TLLEAGAL 00VRATION
IERROP=10
GO TO 1
C LINK TO EXqC MAIN
30(1 CALL CHATN(PROGS,2)
C ~*****************************************
C qYMBrL TAPLE LIST BLOCK
36v' CONT TNUE
WRITF(NTyPp9371)LOCCNTTOPCOR
9371 FOpMAT(l//' LOCATI'lN COUNTER =' ,T6s' OF '1I6.#/)
WRITE(NTYpP9372)
9372 FORMAT(IX,'SYMBOL TABLE',/)
WRITE(NITYp,9370) (SY"TAB( ) SYMVAL (I), SYMTYP(), 1.a1NSYMBL)
93 7 (- FORtAT(4(,Xp1A8Sp 'I16p' (TYPE ',I~,')'))
GO TO 1
C ~***** *************************************************** *************
C tEMORY rULL FATAL ERROR
60o CONTINUE
WRITE(\'TYps,9395)LOCCNTpTOPCOR
93n5 FORMAT(1X'MEMOPY FULL, LOCATION COUNTER a o,16s' AVAILABLE CORE=
1'I16,' FATAL FRROR',/)
GO TO 500V
C ~********* *************************************************************
C 7ET ANALOG TImE SCALE
70 CINT INU
NNwNCFl (ApG(2),ZERO)
CALI HINT
CALL TSCL(NN)
GO TO 10
C ********** ************* ***********************************************
C rET ANALOq o Vo01TAGE FROM SPECIFIED CHANNEL
4 V, CONTT\IUJE
CAL[ MOVE(ARG(3)p pPOT. ,4)
CALL HINT
VAL=ANVA, (POT)
PUTVAL.,
GO TO 10
C ********* D**********************************************************
C SE T SERvrn 0 0T SE T TING AND DI'SPL AY ERROR
48
900V CONTTNUE
CALL MlVEARG(2)i0oP0Tp0p4)
vALFpTN(ARG(3)iZER0
)
CALL MINT
CALL, sPOT(POTiVALsIFR)
PUTIER
GO TO 10
C END OF JOR EXTT TO OPERATING SYSTEM
150(0V CONTTNUE
WRITE(NTYps9400)
94c0 FORMAT(1yo'* * + * * END OF JOB * * * * *
)
C FKD OF DROGRAM
END
49
*
C MAPK FILE I WTTH PROGRAM ID
NFILE33
IPC0DF=P
WRITE(NFILEl'1)IPCODE
CALL VHTMFS(' $EXEC ;')
C READ COPE LOAn FROM DAFILE
REA (NFILc3'1)(DATTAB(I)sI=1TOPCOR)
GO TO 10
1 CONTINUE
C wRITE ERROR MFSSAGE AND PROBABLE SYMOL
WRITE NTYpsv9001)IEPRORpB )FSYM
9001 FORMAT(1X,'***** ERROR #',I5,' 4UFSYM =sIPA8)
10 CONiTTIJNUE
C INITIALZF FLAGS AND BUFS
BUrSvMmCLEAR
ERRORSwl
ZERomm
IRFLAG=0
IERPOPm0
OPFLAG"0
C PEAD A CARD AND PROCESS INTO ARGS AND FLAGS
CALL rARDTN(ARGPFL\GOPFLAGIERROR)
IF(TEPPOR.NE90) GO TO 1
C IF NOT TMmEADTATE OPERATION GOTO MAIN
IF(nPrLAG.NEe1) GO o 15
OPTEsT=ApG(1)
C LrJOK IN op CODE TABLE FOR VALUE OF OP
00 16 T=1,NOPTAB
IF(OpTFST.EQoOPCODE(I)) GO TO 17
16 CONTINUE
IERROP=4
GO TO 1
C * *********~*************************************************************
17 OPEpCnr)PVAL(I)
9 -10 FORmAT(jXplV(jA8p2X))
C TEST ANn nO Tr PROPER SURBLOCK
IF(nPFECD.EQ.TIMEOP) GO TO 3800
TF(OPFRCD.EQ.NEAP) Go TO 3100
IF(rPrRCD.EoPRINT) G0 TO 3200
Iv( 0 P*E.RUN) GC TO 3400
IC(f7PFCD.E.L0AD) lO TO 2000
TF(rnpcPCD.EQ.LIST) rio To 2500
TP(nPErC0.EQ*DUMP) Go TO 3500
51
IF(fPFRCD.EU.PLOT) On TO 4000
C RETURN TO MAIN IF NOT A * OPFRCODE
IF IPCODF=5
C wIRTE CORr LOAD TO DAFILE
WRITE(NF1LE3'1)(DATTAB(I),I=is TOPCOR)
WRITE (N'IL El'1) IPCODEs IEPROR
CALL CHATN(PROGSil)
C **********************************************************************i
C LOAD PRnGRAM AND INITIALIZE DATA BASE
2000 PSTART=LnCCNT
PCOUNT=PSTART
DO ?010 1.2pNSTMT
REAo(,JFTLFI)DATTAB(PCONT),DATTAB(PCOUNT+l) ,DATTAB(PCOUNT+2),DATT
ITAB(PCOUNT+3) *DATTA9(PCOU'NT+4) ,JJ
PCOuNT=PCnUNT+5
2010 CONITTNUE
PCOUNT=PCOUNT-5
PENr pC0UKT
WPITF(NTyP19200) PSTAPT,PEND
92g FOPMAT(lys'PROGRAM STARTS AT 'AI5,5XjvPROGRAM ENDS AT ',15,/)
DO iCrA IlsNL)FCS
REAn(NFILF2'I)ITYPEPLOCsLENGTHtNN
PUTITYPELOCLENGT ,NN
C TA9LE(jFUFRpnELAYs#.sDONF
IF( TTYPEOF O I) GO TO 110o
!F(ITvPE.EQO2) GO TO 120o
TF(TTYPE.tEQ*3) GO TO 130
TF(ITYPEorQ-4) GO To 140q
rF(TyPrE*CQeP) GO TO 1500
I ER popRI
GO '0 I
1100 DATTA(,OC)u0
GO TO 999
120. DATTM3(LOC)=NN
GO TO 999
I3'W DATAR(LnC)=LENGTH
DATTAq(LnC+l)=l
DATTARP(L 0 Cr +2
)wNN
GO q c99'
14 0 DArTA(LnC)wLENGTH
999 CON INU
10V CONT INUE
150A CONTIPTUE
IF(PEND.eLT TOPCOP) GO TO 10
C IF CORE LOAr TOO LARGE FRROR
WRITE(NTYpp9500)PEN "TOPOOR
990V POPMAT(ly,'PROGRAM TOO LARGE =',16p'AVAILABLE CORE ='16p/)
GO Tr)
C *********************************************************************
52
BUFqYMwARG (2)
IERqop=i
GO TO 1
3120 LSAVE=SYVVAL(I)
ITYPEnqYMTYP(I)
IF(CTYeF:T.0)LSAVE=LSA VE+2
IF(!TYPEe!(J-0) LSAVE=LS AVE-1
PUT, NN MM
DO ai-ic' IINN
RE ADNNp905o) (X(jJ) JJ.1sMM)
90'4v FORMAT(Ierio*5
)
[ - lip,; J'Is mm
KiLQAVE+J
rATTAp(K)=ISFIX(X(J))
3125 CnNTINUr
L S AVF L AVE +MM
3130 CON TT'NUE
GO TO I0
C ***** ***~******** ******************** ********************************4
C PRINT OPPRATION ,PROCESS ARGP
320V RiiFSYMiARG(2)
C LOOK IN SyMBOL TABLE FOP LOCATION
D)O i2l T.INSYMPL
IFC(qjrSYM.EQ.sYMTAB(I)) SO TO 32?1
53
32 10 CONTINUE
WRITE(NTYpp9230)
BUFSYM=ARG(2)
GO TO 1
322 LSAVE.SYMVAL(I)
NN=NCFD (ARG (3),7ER)
MMaNN/10
+
PUTNNIMM
DO 230 I1=,M
DO 12? J.il10
K=LSAvr+")
3225 X(J)=rLOTs(DATTAP(K))
WRITE (NTYp,9240)(X(JJ)sJj=Is10)
9240 FORMAT(1X,1F12.5)
LSAVF=LSAVE+10
3230 CONTTINUE
GO TO 10
C ************************
C RUN OPERATION,INITIALIZE AND CALL INTERP
34V, CONTINuE
jF(pSTAPT.E.PEND) Go TO 1
CALL w INT
CALL CVTO,0)
CALL 'C
PAUJE 10
C LINK TO ASM INTERPRETER PHASF
CALL T'NTEP(DATTABPSTARTNSTMTTSTEPNCYCL)
CALL 9'
CALL rVTO(1)
C r)ONE SIstAATInNPETUPkN
GO TO 10
C ******** *****~***** ****************************
C CLEAR STOPAGE
3500 uO 1511 I1.1TOPCOR
351V DATTAR(T)=V
WRITE(NFILE 3 '1) (DATTAB( I) IunlTOPCOR)
GO Tfl i0
C ********************* ***************************************************'
C CLOCK ST .LOCK
C WRITF OUT CLOrK VALUES AND SFT CLOCK
387V DTFPIN (ARG(3)AZER0)
ZERnat7
TIMprPIN (ARG(2),ZEP0)
NCYCLu+IPIX(TIMF/DT)
TSTFPpISFIX(DT)
PUTtT"IFNenTsNCYCL, TTEP
CALL wTNT
CALL CTqTP(DT)
GO TO 10
C *~** ***** * ****** **** ***************************************************
54
)
ZEResa p
4b0 BUFSyM=APG(2)
C LOOK IN SyMBOI TAbLE FOR LOCATION
f00 4010 T=IPNSYMPL
IF(rtUAL(qUFSYMsesSYMTAB(I)s0,8) GO TO 4020
4010 CONTINUE
IERRO=41
GO TO I
402 V KaSYMVAL (I)
MMU,
IBOx.?
IPLnTml
IF(rQUAL(FTEST, 0s ARG (4 )p P I GO TO 40?1
ZEROU.
MM.n'CFO ( AmG ( 4), ZERO)
IF(rouAL(FTESToARG (5)so,1)) GO TO 4021
IBOva7
IF( FAL (TEST# Op ARG (6 )s i )I) GO TO 4021
)
IPL T=2
40p1 CONTTNUE
DO 403? I1,NN
JWK+I**m
XPLoT(I)=FLOTS(DATTAR(j))
403C CON T TNUE
C ;ET SCALE FACTORS
XSCL (i)=o.0
XSCL (p )=1.0
x SC L ( )=-1.
XSCL ( 4)=1
.
*
DATA PNAMFS/HYBOLMAN9s 'HYBOLRUN?,'HYBOLSETt/
DATA oPC/D0EFINE 's'FUNCF1 O'PDELAY ''SETPOT ','ADD ','SUB
1UBTpACT' iMUL TIPLY',?DIVIDE ',s'COS ''EXP 's'LOG ','GET
2E T ,iPUT 'I'SENCE p'REAV ''PRINT titPLOT 11RU
3RUN ','END ','SIN ',tINTEGRAT,''CONVOLUT,'sDELAYS ',tFU
4FUNCFP ','ODE ','SOPT ','rOJ 'P'PROGRAM','DUMP lp
5 'MnVF 's'SYMBOL ',sANVAL V'OLIST ', 'LOAD fs'RETURN ','
6 P'rxEC 's'TSCL ','TIMEOP Is'FUNCHYSTipt I/
C * ********* *** ******9* ******************** *******************************
C FILE SPFCFIFCATION STATEMENTS
C CALL DFy Tn OvEN FILES
ICAPTS'l
CALL !rI(fHYBULFL1 ',ICAPTs,1IER)
IF(TFPNE.O) Go TO 9R76
ICApTw?
CALL -H(,
YBOLFL? ',ICAPT,2? IER)
IF(TFP.NEe) Go TO 3R76
ICAPT=r,
CALL DFI 'DAFILE 'YICARTp3, IER)
IF(TEP.NE,0) Go TO q876
DEFTNF PI'E 1(100p3#UpTRFC1)
DEFINF rI 1 E 2(60,2,'JIREC2)
Nlr ILE 3(j10009'iUTREC3)DEF F
IPCnOrD=
56
N F IL E33
NFILE=P2
NFILEImI
C ClLEAR FTLEq 1,2o3 TO ZERO
nO 9 T=IP100
5 WRITE(JFILE1 I)ZEROZEROZEROZEROZEROIZERO
DO 10 I.1,60
10 WcITF( NFILE2 I) ZERO, ZERO, ZERO, ZERO
DO i5 !.1,TOPCOR
WRITE(NFILE3'I)ZEROZERO
15 CONTINE')
C MARK FILE 1 WTTH PROGRAM ID
WRITE (NFILE1 '1) IPC0E
DO I T"1'3
3 PROGS(I).pNAMES(I)
C sET UP CONTROL INFORMATION
NTYP.5
NINPup
NOPTAAn=40
NSYMA= 10
NSYMPL=M
L 0 A n=34
TIMFOP=38
EXECxlA
RE An=1
PROIRm=28
PR IN' T a 16
PLOT=17
RUN=I,
EOJ=27
CORE=?
SYmROL=31
rOUMo a9
LIST=??
SETDoT=4
MODCEpF
TSCL=37
ANVAL=12
C * * * * * * * * * * * * * * * * * * * * * * * * * * * * ********
C TiANSFEp nATA INTO OPCOiF TAPLES
DO P T"1,NOPTAB
opcnnF(T)=OPC(T)
OPVAL (T)=T
2 CONTINUE
OPVAL (40)=0
C s"T jP pnGRAM CHAINING LINKAGE
CALL SFTCpN(PROGS,3)
C CHAIN Tr wy;OL MAIN
CALL CHATN(PROGS,1)
C ENn nF opnGRAM
57
SUBROjTINF CARDIN(ARGsPFLAGsOPFLAGsIERROR)
C SLUBROUTTNF TO READpRINT AND PROCESS A CARD*
REAL*9 ARq(10)
INTrGF*2 BUFFER(40),BFIELD(IO)
INTPGrP*2 CARDICARDALITALITZsOPFLAGIJIJJKKASTRSKBUFFER,
I BFIELDCTEST*SEMICLCOMMAIERRORBLANK
INTFGER*2 NINPNTYPKsIPOSoJPFLAG
INTpGrR*2 PARRIPARL
INT'rr.*2 SLASH
LOGICAL EQUAL
nIMENION CARD(8q)
C PITA FOc C-ARACTER TESTING
F)ATA C-OMMAPSEMICL/'s ot) I/
DA T A PARRPARL/') ','( I
DATA LITA/'A '/pLITZ/'7 '/
DATA ALANK/' '/
DATA FTFST/'J
rATA NI!NPNTYP/g15/
DATA ASTRqK/'* v/
DATA qLASq/'/ '/
C ***********************************************************************
10 CONT INUE
IEPRu=0
RE An(NINJP,9001) (CARI ( 1), TIis80)
WRITE(NTYpp9160) CARD
916tU FOPmAT(/, IX,'INPUT CAPD => ',80Atil' <0')
PFL A G=(
OPFLAn=0
90V1 FORMAT(9Al)
C IF / COMMFOT CARD JUST FPINT
IF(coUAL(CARD(j)A0ASLASHp0,j)) GO TO 10
DO 15 !1=s80
CARnI=CARn(I)
C L(OK FOP A ; (
)
IF(EclAL(CARDIpsFTESTs0,1)) GO TO 105
IF(FQAL(CARDI, pPARspi)) CARDu()=COMMA
IF(FQUAL(CARDI~pPA4Lp,1p)) CARD(I)=COMMA
15 CON T IUE
WPITE (NTYPP9390)
939V FORMAT(IX,'NO SEMICOLEN TERMINATOR CHARACTER IN CARD INPUTI)
IFRqop=1
PETtIPN
105 CARn(T)=CnMMA
CAR!)(!+1)=SEMICL
I 1
10 II=I+1
CA RnIm=L A NK
CALL RYTE(CARD(I),@0CAPDI0)
!F(T.,rT.1O) IERROR.?
IF(T.T.1op) RETUPN
59
EXTRN OPSP
ENTRY INTERP
* AYBOL AcM INTFRPRETER PHASE 2 REAL TIME PROGRAM EXEC.
* CALL INTERP(DATTABPFTARTNSTMTsTSTEPNCYCL,...
* TNTERPRPTER ENTRY
RO EQU 0
pI EQU 1
RR EQU 2
R3 EOU 3
R4 EQU 4
R5 ETU 5
R6 LOU 6
R7 EQU 7
R8 EQU 8
R9 LOU 9
Ril EGU to
RI EQU II
RI EaU 12
91 3 EaU 13
R 14 EQU 14
RI9 EQU I s
ONE EQU I
7E!t4 EaU rA
TWO EQU 2
OPNU1-m EU
ADN'4UM EQU 16
DPA 11M EQU 1?
B GFTADD
* START INTEPRFTER
CONTNU EQU *
LH R12,PNCYCL
LIS R10,1' OAD FIRST TIME STFP VALUE INTO 10
* STOP ANn wAIT FOP CLOCK TO RESET
LHI RIPX'69' LOAD CLOCK ADDRESS INTO I
CWAIT SSR RjpR2 SENCE CLOCK STATUS
BNCS CWATT LOOp UNTIL CLOCK RESTETS
LHI 3,X'90 4 7'
LHI 2,X10401'
OCR 1,3
WwR 1,?
CYCLDN FQU
*
*
* READ IN DATA FROM A/D BLoCK
* CODE TO RFAD A BLOCK OF A/D CONVERTEPS
READAD LH RITARLE LOAD A(DATTAB) INTO Rj
LHI R?,ADNtjM LOAD NUM OF A/DS
Lul R3,X' 8 4 ' LOAD OPCODE TO READ IN ADC AND INCREMENT MUX
LHI R5PX'A4' LOAD A HEX A4
LHI R6sXIAP' LnAD A HEX Ap
XwR 7,7 7EPR RrG 7
RFA)Y OCR R6,R5 SEND AN A4 TO DEVICE AP
WMR R6sR 7 SEND CHANNEL NtUME EP
LIS Rq9gi LOAD A 10 AND COUNT DOWN TO WAIT 10 MICROSECS
RWAIT SIS apQi WAIT FOR Pq tAICROSECONDS
BNMS RWATT
REAU OCR R6,R3 SEND AN 84 TO THE INTERFACE
PHR R6sRp RFAn SCALED FPACTION INTO R
NHI RRpX'FFCO'
STH RSO(R 1 ) SAVE VALUE IN DATTAB
AIS RIP2 INCREMENT ADDRESS
ATS R7,1 INCREMENT CHANNEL
#
TEST EQU
* :ET OP rODEsApG1,ARG?,ARG3
* < INSTRiCTION OVERHEAD PER SET
ATS R13,10
LH Rlp9)(p1q)
Lw R2,2(pti)
L 4 R-1,4(qi3)
Lw R4,i6(oii)
63
Lp R5,8(pR3)
STH R2,APGP SAVE ADDPESSES
STH R3oARG3 RECAUSE SOME OPS NEED THEM
LH R2,0(92) GET VALUFS OF tRGS FOR IMMEADIATES
LH R3s0k 3)
9R RI BRANCH To OP CODE RLOCK
SVC204 DC X10004'
DC X'4007'
TABLE DC X''
PSTART DC x'~o
NSTMT DC y'o'
PROGAD DC x'i'
TSTEP DC X''
SVCONE DC XiO001'
ERROR DC y'o'
ERRORS DC X't"'
LINE DC X'l'
NCYCL DC X'l'
ARr;2 DC Xfol
ARG3 DC Xiot
A2VAL DC X'4200'
MASKAD DC x'FFCo'
LOST DC Xvol
SAVEAR DS 3?
* SVC 2 MESSAGE BLOCKS
MESSIN DC 7
DC 10
DC C' ENTER INT'
MESSS DC 7
DC 6
DC C' DO OP'
MESSI DC 7
Dc 10
DC C' RE4D ADCS'
MESSR DC 7
Or 10
DC C' WRTTF DAS'
MESSCL DC 7
DC 10
DC C' CHECK CLk''
* OPCODE AND BLtCK ADDFESS TABLE
OPCODE DC 5
DC A(ADDOP)
DC 6
DC A(SUBnp)
DC 7
DC A(MUL TOP)
64
DC 12
DC A(GETOP)
DC 13
DC A(PUTnP)
DC 8
DC A (DIVn0P)
DC 3
DC A(DELAY)
DC 19
DC A (ENDnps)
DC 21
DC A(INTGRT)
DC 23
DC A(DELAYS)
DC 22
DC A(CONVLT)
DC 2
DC A (FUNAC)
DC ?4
DC A(FUNCFp)
DC 30
DC A(MOVFoP)
DC A(ENDoPP)
DC 40
DC A(INVPRT)
B TEST
* MULTIPLY TV!O pCALEr) FRACTIONS
MULIOP L 4p pqpR?
MMk R8>Ro MULTYPY BY SF
SLA R8s I
STk R8,?(4) SAVE PESULT IN OUTPUT ARG LOC
B TEST
* DIVIDE TWn SCALED FRACTIONS
DIvDOP LHR P9oP 2
SHP R99tq
SPA p8,1
OHR RFPR DIVIlIE BY SF
STH 99s (4)
B TEST
INVERT LH R3,ARq3 GET LOC BACK
XHP P 1 ,9 1 CLEAR REG I TO 0
65
*
* PUT VALUE TNTn BUFFEP ( NCYCL)
PUTOP LH p3,ARG3
LHR R4,RIO GFT TSTEP
#
AH R4,R4
AHR R4,P3-
STH R2,?( 4 ) PUT VALUE IN RUFFER
B TEST
* GET VALUE FROm BUFFEP(NCYCL)
GETOP LH p3,ARGI
LH R2,ARr-
AHR R4,PR 4
AHR R4,RI
LH P3,O(R4)
STH R3PQ(?)
B TEST
MOVEOP LH PJAARG3 GET ADDRESS OF 3 BACK
STH R 2 oO(P 3 ) MOVE VAL Tl LOC OF 3
R TEST
DELAYS EQj
*
q TEST
CONVLT EQgi
*
e TEST
4 1 S P71I
STH R7p2(R4) OVE PNT+1 IN PNT
e TEST
* * * * * * * di * * * * * * * *i * * * *i * * * * * * * * * *i ** * *i * * *i
* ONE DIMCNsIONAL TABLE LOOKUP
FUNCI LH !3,ARG)
ATS P4,2 INCRMEN1 PNT TO DATA
FCOMP CH 42,0(R4 ) COMPARE X WITH X(I) IN TABLE
BE FE!JUAL X HIT TABLE EXACT
35ms FUNCO IF X LT POINT OK
ATS R 4 ,4 TNCRFMENT TO NFXT ADDRESS
RS FCOMP
FUNCDO SIq P4,4 SET 4 FOR X(I)
LH R5,0(9 4 ) LOAD X(1) IN 5
LH P6,2(R4) R6 Y(I)
Lw 97#4(94) R7=X(I+I)
LH R9,6(R4) Rj=Y(I+1)
SWR RqR6 99"y(I+1)-Y(I)
SHN R7pRP R7=y(I+1)wX(I)
SHP R2pRs p2=X-X(I)
MpR RgsRn P9=Pq*(X"X(I)) RESULT IN R8
Dwk R8,R 7 P8mp8/X(I+I-XfI) RFSULT IN R9
AHR Rq.ReA qsRR9+Y(2)
STH R9,po() pUT AT OUT LOC
S TEST DINE SO RETURN
FEQUAL LH p?22(p 4 ) GET Y(I)
STH R,0(R 3 ) pUT AT OUT LOC
B TFST
* ** **di* *** diiidd **i*
*** *d* ** ** ** ** * * *d**
*
V3276 DC 3276
FORTY2 DC 4P
TEN DC 10
TWENTY DC 20
?? INPUT FuNCTTON TABLE LOOK UP
FUNCF2 LH9 qjRF SAVE TAPLE AnDRESS IN I
Lwk RpR,4 SAVF OUTPUT LC IN 0
LH R5pP2 PUT X IN 5
LwR R7PR 3 PUT Y IN 7
M4 P4,TWP'NTY
Mw P6,TWPNTY
Lwk RgpR 4
Mw R6,FOTY? J=J*4?
* R7 NOW HAc ROW OFFSET BYTES
* xIYJmL0-+p0W+'OL
67
ENnoPS E0U
*
oC R1,A2vAL SEND AN A2
WHR RiRR PUT IN RESET JAM MODE
OCR R1,R SET CHANNEL VALUE
WHR R 1 ,Rs WRITE FIRST ADDRESS
!RITDA OCP RlR 6 SEND SET COMM
WH RlP(P2) SFND VALUE
AIS R2,2 NFW AnD
SIS R4,i rECPEMENT LOOP
BNJZS WRITDA
OC R1,A3VAL SENU AN A3 TO INTERFACE FOR TFANSFER COMMAND
WHP RipRr SEN JUNK
* DONE WRTTTNKG pLOCK
AIS R 1 0, 1 ADD A ONE TO 10 TO COUNT STEPS DONE
SIS R12,i cSU1TpACT 1 FROM 12 TO SET CC FOR DONE
Bz DONE TF CC 7 ERO FINISrED RUN
LHI RoX!6P' LOAD CLOCK ADDPESS INTO 2
*
* of INTEqUPT CHECK IF FINISHES PROG OK
* FINISHEn PUNNTNG PROGRAM
DONE LH PIEPPOPS
BAL 5,S'p
nC 2
L-A PpSAVEAf' pETURN FEGISTFPS FOR FOPTRAN
AH r15, RETURN ADDRESS
(Ri5) GET
RR R1.