Post on 19-May-2022
MSFC-SE-1528
Interim Report
CAS Epa
COPY
DEVELOPMENT OF AMTRAN ON
THE DATACRAFT DC6024
May 1972
TELEDYNEBROWN ENGINEERING
Research Park • Huntsville, Alabama 35807
INTERIM REPORTMSFC-SE-1528
DEVELOPMENT OF AMTRAN ON THEDATACRAFT DC6024
May 1972
Prepared For
COMPUTATION LABORATORYGEORGE C. MARSHALL SPACE FLIGHT CENTER
HUNTSVILLE, ALABAMA
Contract No. NAS8-26756
Prepared By
SCIENCE AND ENGINEERINGTELEDYNE BROWN ENGINEERING
HUNTSVILLE, ALABAMA
ABSTRACT
The AMTRAN system has been implemented on the Datacraft
DC6024 computer. Activities have been directed toward providing
greater user convenience and faster operation, development of a
multi-user time-sharing capability, and system support for user
applications. During this reporting period, the major portion of time
was devoted to completing a two-user time-sharing operating system
and initiating work on an n-user system, with plans to provide service
to up to n=8 users at this time. Flowcharts for the multi-user AMTRAN
system are presented to document progress on this part of the system.
The Datacraft DC6024 AMTRAN time-sharing system comprises
both software internal to AMTRAN and in the computer operating
system. Only the AMTRAN portion was developed as part of this
contract and is presented here.
Approved:
JlN.E. Chatterton, Ph. D.ManagerResearch Department
C.G. p-ueltmanVice PresidentScience and Engineering
11
TABLE OF CONTENTS
Page
INTRODUCTION 1
TECHNICAL DISCUSSION 2
System Changes and Additions 2
System Support 4
APPENDIX. FLOW CHARTS FOR TIME-SHARINGAMTRAN SYSTEM A-l
111
INTRODUCTION
This document is an interim report which covers the period
January 15, 1971 through December 24, 1971, submitted in accordance
with the requirements of Contract No. NAS8-26756.
In the following pages, Teledyne Brown Engineering presents a.
discussion of the activities and accomplishments pertaining to the
development of the AMTRAN system on the Datacraft DC6024.
TECHNICAL DISCUSSION
SYSTEM CHANGES AND ADDITIONS
In order to provide compatibility with the 1130 AMTRAN symbol
set, the concatenate operator was changed to "&", the backspace symbol
was changed to "#", and the function designation was modified to "@"
in the Datacraft AMTRAN system. The operators INTERVALS and LAST
were also included in the Datacraft version of AMTRAN to ensure intrin-
sic operator compatibility with the 1130 AMTRAN system.
Software changes were incorporated into the system which allow
user selection of scientific or E-formatted data output by sense switch.
To provide the user at a remote site with the information of which sense
switches are currently selected, a STATUS operator was added. This
operator checks the on/off condition of the first 15 sense switches and
types a list of those sense switches which are currently set to the "on"
condition by the user.
The modules which constitute the AMTRAN system were recom-
piled under extended precision, and necessary modifications to the logic
involved with the execution of the logical operators LT, GT, EQ, NE,
LE, and GE were made. The newly implemented operator INTEGER
which returns the integer-part of the specified variable, constant, or
expression also required modification under extended precision.
For user convenience, backspace, line delete, and statement
delete features were added to the INPUT operator. For each entry in
the EXPLAIN file, the explanation was extended and an example of its
usage was supplied in order to facilitate understanding of the usage of
each operator.
Software for the 8K 1130 AMTRAN system was changed to per-
mit AMTRAN to fit within 8K of core using current levels of the IBM
1130 disk monitor (Version II, Mod. VIII). The purpose of this endeavor
was to provide an 8K version of AMTRAN to those users who received
8K AMTRAN decks under the earlier version of the IBM 1130 software
and who requested AMTRAN under the new 1130 monitor.
As the use of AMTRAN increased, system errors involving
functions and the exceeding of the console program area were detected,
analyzed, and corrected. This work falls in the category of completing
the checkout of the current AMTRAN system.
After receiving an additional 8K of core for the Datacraft DC6024,
the three major execution subroutines were combined into one module,
and the two primary output subroutines were put into the same overlay.
This effort resulted in an increase of AMTRAN execution speed by
eliminating the number of overlays required for execution.
In accordance with the requirement for multiple user files,
16 user files were made available. These files are selected by unique
three-letter access codes typed in by the user.
The major effort under the contract was expended in the design
and development of a multiple user version of AMTRAN which allows
more than one user to have access to AMTRAN from separate input/
output terminals. The software additions and modifications to allow
multiple users for Datacraft AMTRAN was implemented in four phases.
The first three phases included the incorporation of the logic to allow
for call up and hang up conditions and for swapping users upon detec-
tion of a buffer full condition in the main read subroutine, the principal
initialization program, and the input subroutine. During this time, the
logic to allow the Computek and the Tektronix terminals to be utilized
in the multiple user version of AMTRAN was implemented. Since the
swapping logic appeared in only these three subroutines, if one user
had filled a buffer but the other user was executing, detection of the
buffer full, call up, or hang up conditions could not occur until the user
who was executing returned to one of the three modules mentioned
above. However, with the installation of an additional 8K of core and
an interval timer, the fourth phase of multiple user AMTRAN was
begun. This included modifications to the main programs of all the
execution subroutines to enable swapping users who were executing
after a specified time interval. The determination of when to swap
was accomplished by software reference to the interval timer which
monitors the number of seconds of run time for each user. At the
end of this phase, two users could simultaneously run in AMTRAN as
each user's common was either swapped into core along with the
appropriate module or swapped out onto the disk according to the de-
tection of call up, hang up, or buffer full conditions. Swapping common
was determined on the basis of waiting for input conditions, or de-
tection of the maximum allowable number of seconds of run time by the
current user during execution.
The appendix contains more detailed information concerning
the implementation of AMTRAN for two users.
SYSTEM SUPPORT
One primary area of activity in which Teledyne Brown Engineering
personnel participated was the development and/or modification of
applications programs written in AMTRAN. Some of these programs
simulated interplanetary orbits using electric propulsion while others
provided a management information system for the long-range budget
forecasting division of NASA at Marshall Space Flight Center. Software
support was provided when these programs were demonstrated locally,
at NASA headquarters in Washington, D. C. , and at the Federal Executive
Institute in Charlottesville, Virginia. An 1130 AMTRAN demonstration
disk was provided for backup for these demonstrations. Several AMTRAN
demonstrations and instruction assistance meetings were held for pro-
spective users at Marshall Space Flight Center by Teledyne Brown
Engineering personnel. During these meetings, newly updated AMTRAN .
users' manuals were distributed which provided detailed descriptions of
the procedures for local and remote use of AMTRAN and descriptions
and specific examples of statement and console program construction, of
AMTRAN intrinsic operators, and of general usage of AMTRAN.
APPENDIX. FLOW CHARTS FOR TIME-SHARINGAMTRAN SYSTEM
A-l
A P P E N D I X
T A B L E OF C O N T E N T SPAGE
I NTERNAL STORAGE ORGANIZATION A-2
SYSTEM DATA BASE A-3 - A-4
SYSTEM FUNCTIONAL FLOW CHART A-5
AMTRAN AND ITZ MODULES A-6
SUBSYSTEM 1 A-7
SUBSYSTEM 2 A-8
MODULE ROLL A-9
LIST OF MODULES MODIFIED FOR TIME SHARING A-10
FLOWCHARTS OF TIME SHARING LOGIC IN ROLL A-ll - A-19
SUBSYSTEMS A-20
SUBSYSTEM 4 A-21 - A-22
FLOWCHARTS OF TIME SHARING LOGIC IN MAINPROGRAM OF LSG MODULE A-23 - A-34
to
ccgcc5
COoec§COOcci a"
LU *~
2°=So
oco
IX8CM
OI—<
Iz.ooLUo
CO
I<
Q.
OC1-
RE
SID
EN
T
DIS
K B
OO
TS
(16, „
OR
20,
WO
RD
S)
I U
o
LU
13 Sz co S
ri
AR
EA
F
OR
P
RO
GR
AM
CO
NS
TR
UC
TIO
N
AN
DE
XE
CU
TIO
N
o
>1•1
LUCC
Q
OCLUCO
"1
SY
ST
EM
CO
NS
TA
NT
S
SY
ST
EM
IN
DIC
AT
OR
S
LU_J
03<1-
2<o
CD
ff
I
SY
ST
EM
VA
RIA
BL
ES
(KE
PT
D
UE
T
O
TIM
E S
BCM
< ™_i Qcc 5
AM
TR
AN
M
OD
ULE
O
VE
LA
RG
ES
T(1
0817, n
O
R 25101, W
C1
0
o
co
NO
N-R
ES
IDE
NT
S
YS
TE
IV(1
096,.
O
R
2110,
WO
R1
U
B
coQ
RE
SID
EN
T
SY
ST
EM
(3450, Q
O
R
6572
g
WO
R
£"~ S
Uj™CO>.
2 W
i 1-1 28 sW CO0 £ o.2 ^
> A
MT
RA
N
MO
DU
LE
A
> N
ON
-RE
SID
EN
T
AN
DA
ND
D
ISK
B
OO
TS
TR
• A
VA
ILA
BL
E
CO
RE
• T
OT
AL
• • • »
LUOC CO~, LU
< CC IVPQIX00^:0<LO
COotree§i2 «
D; ill CO CMr» oco p in
(O
A-2
SYSTEM DATA BASE
COMMON
4 FILES ON DISK• SYSTEM WORKING FILE I (7360 WORDS FOR EACH USER)
A CORE PROGRAM DURING STOREV CORE PROGRAM DURING ED ITA CONTROL TABLES FOR ACTIVE AREA OVERLAYA ACTIVE TABLE AND CONSOLE PROGRAMS
• SYSTEM WORKING FILE 11 (12160 WORDS FOR EACHUSER)
A KEYBOARD PROGRAM SOURCEA STORE PROGRAM SOURCEA ED IT PROGRAM SOURCE
• USER PROGRAM FILE (44800 WORDS FOR EACH FILE)16 FILES
A INDICATORS FOR FIRST AVAILABLE RECORDFILE STATUS, AND NUMBER OF CONSOLEPROGRAMS ON FILE
A CONSOLE PROGRAM TABLEA CONSOLE PROGRAM STORAGE
• SYSTEM CONTROL FILE(15360 WORDS)A INTRINSIC TABLEA CARD CODE TABLE* ERROR STATEMENT TABLEA INTRINSIC DESCRIPTION TABLE
^TELEDYNE BROWN ENGINEERING
A-3
soc
^ oSecceo-
is£§8&
— z<00 — u.
>. Q • o
II =o< «, <H._<o -IDoc co ceouj g ui uiu *** *^ \^liV «" ^ ^uj«- OUI
UI
03
1—
ND
A
CT
IVE
^ccg5oz
tec= o
WO
RD
S)
JQ
in
ocO
o
5
, P
OIN
TE
R
<inoc
111 OC
< C
UJOC M
EC
UT
ION
A
154.
W
OR
D!
5
X wUI
OC
S°ooc Sa <oo <*>K »a. -—
LU o
OH—<
O
oLUO
O
CO
co
O
«oc C
UIoc
O QK OC
w ?!z 58 "
a o'
(OQOC
iUJ Scc m
>- O
C eoUJ 0)> »O C
toQOC
I
I < g
OC «*UI *~eo «JjD £»
<
z8UI
coCO
ccO
CN
ocO
UJ
CO
COOoc
SCM
OCo
Q C
En tt
si iinCMOCO
53!
oo
u.
z en9 2
Ql_CC1
UI —
> Ou.O Q O
oc C
A-4
O
Ol_l_
I
^OI—O
CO>-CO
A-5
AMTRAN MODULE
INITIALIZES TIME SHARING INDICATORSWAITS FOR REMOTE OR LOCAL CALL UPSETS UP RUN INDICATOR (IDENTIFIES USER WHO IS
RUNNING)CALLS TIMER ROUTINE AND SETS INITIAL USED TIME
TO 0CALLS CHAIN LOADER TO READ ITZ INTO CORE
I N I T I A L I Z E S Y S T E M
ITZ MODULE
ERASES IF NECESSARY*T1ME SHARING LOGIC*READS THREE LETTER ACCESS CODE CORRESPONDING
TO A USER FILEPACKS USER PROGRAM FILE IF NECESSARYINITIALIZES SCAN TABLES AND SYSTEM CONSTANTSINITIALIZES* CARD STATUSA OVERLAY STATUSA STATEMENT ENTRY MODE* ENTRY TO RSTA VARIABLE COUNTA PREVIOUS VARIABLE COUNTA FUNCTION EXECUTION COUNTER* RANDOM NUMBER GENERATOR
^TELEDYNE BROWN ENGINEERING
A-6
00>-COCOZD00
A-7
CM
co>-COCD:DCO
->
scoUl_iDai
COLUQ
8_i<ccLUH
LA
BE
LS
W
ITH
ll>
PLA
CE
LUCC
§<ocCDOOCQ.
Oz<LU_lOQ<
cc<
2
COUl
cczLU
Z
LU
*<
aure
RE
QU
II
CO<
coUl_lOQ<
_l_J<U
coocUl1-zD
8s<ocoocca
VA
RIA
BL
E
AN
DilN
TA
IN
§2
Z<a.XUl
QZ<
Crtfe0 J2Z -1
s o*»* i25o <0 O^^
5> L-*«=: )••
HQ
coujCO Ul"
&<*
12Q£Z LU<CCa.ui o_N Dz"S»-"O uiU v>LU UJOC OC
COocLUH-0<OC<Iu
1<uLUa.coQZ<co
<
NU
ME
RIC
C
ON
Sl
;RN
AL C
ODES
UUI
ujHo z<~*£LU tccg
HZ
8H
US
ER
C
ON
ST
A^
JN
TA
IN
«t1
uTCO
a. i_><
1-2co a!Wrf ^L.< UJ-IKuToozz<< .CC LL
|iCC •y
5 =^f AMi U.
t- M--**• UJ
1sO uiLL o_
ND
SP
EC
IAL
LY
1
INT
ER
VA
LS
, T
YI
6*HtLU XQ LU
LU
LU_lLUQ
QZ<
LU
rfCO
tLU1-LUQ
co
SY
NT
AX
C
HE
CK
RF
OR
M
LUa.
(
1—— x
LU
I
A-8
MODULE R O L L
( NORMAL.ENTRY
IF REQUIRED, SAVE OVERLAY II, READ &OVERLAY 1 AND SET OVERLAY STATUS ^
^r READ AN
SYSTEMWORKINGFILE
READ AND VERIFY EACH CARD IN PROGRAM
CONVERT EACH STATEMENT TO AMTRANCHARACTER CODES
PACK EACH STATEMENT TWO CHARACTERS PERWORD, SAVE ON FILE UPDATING STATEMENTINDEX TABLE AND FILE POINTER
AFTER PROCESSING THE LAST STATEMENT,"SET STATEMENT COUNT, FILE POINTER ANDCARD STATUS
IF AN ERROR OCCURRED ON THE LASTSTATEMENT, RESET FILE POINTER ANDCLEAR ERROR INDICATOROTHERWISE , SET:
LAST PREVIOUS INSTRUCTIONPOINTERPREVIOUS VARIABLE AND PROGRAMCOUNTSSTATEMENT NUMBER
OUTPUT MESSAGE IF LAST STATEMENT
PROGRAMON CARDS
SYSTEMWORKINGFILE
/ OUTPUT STATEMENT NUMBER/ 'TIME SHARING LOGIC*( READ STATEMENT FROM KEY-\ BOARD AND CONVERT TO\ AMTRAN CHARACTER CODES r
CLEAR VARIABLE TABLE ENTRIESAS REQUIREDSET VARIABLE COUNT AND PROGRAMCOUNT
READ STATEMENT FROM KEYBOARD,SYSTEM WORKING FILE, OR USERPROGRAM FILEIF IN THE EDIT MODE, AS REQUIRED,UPDATE FILE POINTER AND LAST STATE-MENT EDITED COUNTER
IF INPUT NOT FROM SYSTEM WORKING FILE.SAVE STATEMENT ON FILEIF INPUT FROM FILE, UNPACK STATEMENTUPDATE FILE POINTERREMOVE STATEMENT NUMBER AND BLANKSBEFORE EACH LINE IN STATEMENTSET CHARACTER COUNT, WORKING REGISTERS
CIEXIT
SYSTEMWORKINGFILE
USERPROGRAMFILE
SYSTEMWORKINGFILE
A-9
M O D U L E S M O D I F I E D F O R T I M E S H A R I N G
PAGEAMTRAN MODULE A-6
GROUP I MODULES
ITZ A-6
•RDLL A-9
STV A-22
Group I modules require buffer full conditions for FORTRANread statements and were changed under the first three phasesof time - sharing implementation.
GROUP II MODULES
CDR A-20
*LSG A-21
WRT A-22
IIP A-22
These modules were modified under the fourth phase of time -Sharing implementation and are all execution modules exceptCDR.
WTELEDYNE BROWN ENGINEERING
A-10
FLOWCHART OF TIME-SHARING LOGIC IN MODULE ROLL
A-15
A-15
OUTPUTSTATEMENTNUMBER
SET UP A READREQUEST FOR THESPECIFIED USER
MUXST(NUSER)
RETURN THESTATUS OF THEHANDLER IN NUSER
NUSER = 0AND BOTH
USERS ACTIVE?
READ MODULEINDICATOR ANDPOSITION INDI-CATOR
MODULEINDICATOR?
OTHER USER GOINGTO GROUP I
(ITZ, ROLL. ORSTV) MODULES
1
SET GROUP II(CDR, LSG, WRT,OR ITP) MODULEINDICATOR
GROUP IIPOSITION
INDICATOR?
OTHER USERWAITING TO READ
TO RELEASE PAUSE
> RUN INDICATOR (IRUN) = N WHERE N IS THEUSER WHO IS CURRENTLY RUNNING
• STATUS OF HANDLER (RETURNED IN NUSER)= O NO BUFFERS FULL, NO CALLUPS. OR NO HANGUPS= N USER N HAS FILLED A BUFFER= 32+N USER N HAS CALLED UP= 64+N USER N HAS HUNG UP
THE LETTER-NUMBER COMBINATION AT THE UPPER LEFTOF THE CONNECTORS REFERS TO PAGE NUMBERS.
A-11
MORE THAN 2
RUNINDICATOR= HANDLER
STATUS ?
ACTIVEUSER
INDICATOR?
USER WHO IS RUN-NING AGREE WITH
WHOSE BUFFERIS FILLED
HOW MANYACTIVE USERS
RUNINDICATOR= HANDLER
STATUS ?
USER WHO IS RUN-NING AGREE WITH
WHOSE BUFFERIS FILLED
GROUP IPOSITION INDICATOR
SET GROUP I POSITIONINDICATOR TO NORMAL SWAP
DID CURRENT USERJUST BACKSPACE,
LINE DELETE, OR STATEWENT DELETE?
RUN INDICATOR
A-12
WRITE CURRENT USER'SCOMMON ON DISKREAD NEW USER'SCOMMON FROM DISK
TIMEAORUN, LT, 2)
SET ELAPSED TIMEINDICATOR TO ZERO
GROUP IIMODULE INDICATOR
GET CORRECTMODULE INTOCORE
IS NEW USER GOINGTO A GROUP II
MODULE
MODULEINDICATOR ?
USER GOING TOINITIALIZATIONMODULE (ITZ) ?
READ ITZINTO CORE
MODULEINDICATOR
READ STVINTO CORE
USER GOING TOINPUT MODULE
(STV) ?
MODULEINDICATOR
USER GOING TOREAD LINE MODULE
(RDLL) ?
w
MUXIN(IRUN)
SETS UP POINTERTO READ BUFFER
r
MUXOP(IRUN)
SET UP OUTPUTDEVICE TO SPECIFIEDDEVICE
A-14
A-13
GROUP IPOSITION
INDICATOR ?
DID THIS USERBACKSPACE JUSTBEFORE HE WASSWAPPED OUT ?
GROUPPOSITION
INDICATOR ?
DID THIS USER LINEDELETE JUST BEFORE
HE WAS SWAPPEDOUT ?
GROUP IPOSITION
INDICATOR ?
DID THIS USER .STATEMENT DELETE
JUST BEFORE HEWAS SWAPPED
OUT ?
END OFLINE INDICATOR
DID THIS USER COMPLETEA LINE OF THE STATEMENT
JUST BEFORE HE WASSWAPPED OUT ?
SET POSITIONINDICATOR TONORMAL
SET POSITIONINDICATOR TONORMAL
SET POSITIONINDICATOR TONORMAL
RESET END OFLINE INDICATOR
INITIALIZE PROGRAM INDICATORS
CARD OR KEYBOARDINPUT ?
READ INPUTFROM TERMINAL
I
READ INPUTFROM CARDS
A-14
ACTIVEUSER INDICATOR ?
MORE THAN2 ACTIVEUSERS ?
RUNINDICATOR +32=
HANDLER STATUS ?
USER WHO IS RUN-NING AGREE WITHUSER WHO CALLED
UP ?
GROUP IPOSITION INDICATOR ?
DID CURRENT USER JUSTBACKSPACE, LINE DELETE, OR
STATEMENT DELETE ?
SET GROUP I POSITION INDICATOR TO NORMAL SWAP
A-15
o <E K 1«
DCO
->— 3 -"O tju. w co cc <p <
t CC |*J (_ H w HP — UI 2 O UI
— O. V)</> U. U. CO
ocI-
ccUI
LU§UI
N CC
UlCec —
A-16 .
ACTIVE USERINDICATOR VALID
NUMBER?
MODIFY ACTIVEUSER INDICATOR TOREFLECT HANGUPOF USER 1
SET INDICATOR TOSPECIFY USER 1
TIMEA
RETURNS TOTAL RUNTIME IN SECONDSFOR SPECIFIED USER
TIMEA(IRUN,LT.4)
RETURNS TOTAL RUNTIME IN SECONDSFOR SPECIFIED USER
ACTIVE USERINDICATOR = 0
READ AMTRANINTO CORE
DID THE LASTUSER HANG UP
COMSWP
WRITE CURRENT USER'SCOMMON ON DISK
READ NEW USER'SCOMMON FROM DISK
TIMEA(IRUN,LT,3)
CHARGE RUN TIMETO USER 2
A-17
NO-SWAPINDICATOR
= 0 ?
WAS PRESENT USER'SCOMMON SWAPPED
INTO CORE?
GROUPMODULE INDICATOR?
CURRENT USER GOINGTO GROUP II?
GROUPPOSITION INDICATOR
WAS USER WAITINGTO READ TO RELEASE
PAUSE?
A-18
ACTIVE USERINDICATOR VALID
NUMBER?
MODIFY ACTIVEUSER INDICATOR TOREFLECT HANGUPOF USER 2
SET INDICATOR TOSPECIFY USER 2
TIMEA
RETURNS TOTAL RUNTIME IN SECONDSFOR SPECIFIED USER
TIMEAORUN.LT.4)
RETURNS TOTAL RUNTIME IN SECONDSFOR SPECIFIED USER
READ AMTRANINTO CORE
DID THE LASTUSER HANG UP
COMSWP
WRITE CURRENT USER'SCOMMON ON DISK
READ NEW USER'SCOMMON FROM DISK
TIMEA(IRUN,LT,3)
CHARGE RUN TIMETO USER 1
A-18 *
A-19
CO>-GOCO:z>00
cc
ILI
MO
DU
LE
C
DR
<$
20CCu.yy
oo<z
fG
EN
ER
AT
E
PO
LIS
H
ST
INT
ER
NA
L
CO
DE
ST
RI
00cyj&U111
PE
RF
OR
M
SY
NT
AX
C
H
2glilUJQ?SSzoLU<gQL_. C/5 fto °-H§u.^goOOrf
CO
NV
ER
T
PO
LIS
H
ST
AIN
TE
RP
RE
TE
R
INS
TR
UIN
IN
ST
RU
CT
ION
A
RE
;C
ON
ST
RU
CT
ION
A
RE
A
oo\s2£U111
PE
RF
OR
M
SY
NT
AX
C
H
>v
XUJ
A-20
S U B S Y S T E M 4 M O D U L E S
UNDER EACH SUBROUTINE IS A LIST OF THE INTRINSIC OPERA-TORS WHICH ARE EXECUTED IN THE MODULE OR A LIST OF THEFUNCTIONS PERFORMED BY THE MODULE.
LSG MODULE
LSG SUBROUTINEREPEAT, LOAD, LOAD/FREE TEMPORARYSIN, COS, EXP, SQRT, NEG,**, *, /, +, -, LT, GT, EQ, NE, GE, LE, CONCATENATEGOTO, NOT, BRANCH TRUE, BRANCH FALSESTORE, AND FREE TEMPORARY
RTN SUBROUTINECALL CONSOLE PROGRAMRETURN FROM CONSOLE PROGRAM OR FROM FUNCTIONEVALUATIONDEFINE FUNCTION
TRG SUBROUTINESETARRAYMIN, MAX, INTRP, SUMF, LASTLN, ARCTAN, ABS, SUM, MAGNITUDE
WTELEDYNE BROWN ENGINEERING
A-21
WRT MODULE
WRT SUBROUTINETYPE IN F O R E FORMATTYPEOUT WITH 1 OR 4 PARAMETERSTABTYPES OUTAMTRAN ERROR MESSAGES
SCP SUBROUTINEPLOT
ITP MODULE
ITP SUBROUTINEINTRP
STY MODULE
STV SUBROUTINEINPUT
^TELEDYNE BROWN ENGINEERING
A-22
( ENTRY J
SET UP ARRAYS FORCATEGORIZING OPERATIONSCODES
INITIALIZE TIME SHARING INDICATORS
ACTIVEUSER INDICATOR
7
1 OR 2 USERS?
GROUP IIPOSITION INDICATOR?
GETCOM
GET OTHER USER'S MODULEINDICATOR AND GROUP IIPOSITION INDICATOR
A-24 b ,r
RESET GROUP IIPOSITION INDICATORTO NORMAL
i
RESET GROUP IIPOSITION INDICATORTO NORMAL
T
A-28 J
Qr
RESET GROUP IIPOSITION INDICATORTO NORMAL
A-24 A-24 A-24
MAIN PROGRAM OF MODULE LSG
A-23
RETURNEDPARAMETER?EXECUTE
INSTRUCTION
YES> !>
RTN
EXECUTEINSTRUCTION
RETURNEDPARAMETER
7
EXECUTEINSTRUCTION
SET MODULE INDICATORTO WRT VALUE
ERRORINDICATOR
= 0 ?
FUNCTIONEXECUTION
COUNTER =0 ?
USER ONEXECUTION
LEVEL?
SET MODULE INDICATORTO RTN VALUE
A-24
SET BRANCH INSTRUCTIONPOINTER TO ZERO
INCREMENT POINTTO NEXT INSTRUCTION
HAVE ALLINSTRUCTIONS
BEEN EXECUTED
EXECUTINGSTORED PROGRAM
UNPACK INSTRUCTION
ACTIVEUSER INDICATOR?
HOW MANY USERSARE ACTIVE?
CHAIN
READ ROLLINTO CORE
TIME A (IRUN, LT, 3}
RETURN ELAPSEDTIME IN LT
CLASSIFY OPERATORSET MODULE INDICATORTO APPROPRIATE VALUE
FOR LSG, WRT, ITP, ORSTV OR SET POSITION
INDICATOR FOR SUBROUTINELSG, TRG, OR RTN OR WRITE
PAUSE TO USER
A-26
LT LESSTHAN 5
SECONDS?
SET TIME SHARINGEXIT INDICATOR
A-2 5
A-28
A-30
NUSER = 0 \YESAND BOTH USERS >—^ T
ACTIVE ?
ROUP I MODULEINDICATOR OR GROUP IIPOSITION INDICATOR?
IF HANG UP OF LSG USEROCCURRED IN THIS MODULEIS NEW USER GOING TOGROUP I OR IS NEW USERWAITING TO READ TO
RELEASE PAUSE?
NUSER=33? N——M A
A-26
A-27
ACTIVEUSER INDICATOR
HOW MANY ACTIVEUSERS?
RUNINDICATOR
HANDLER STATUS
USER WHO IS RUNNINGAGREE WITH WHOSEBUFFER IS FILLED?
GROUP IMODULE INDICATOR?
IF HAND UP OF LSGUSER OCCURRED INTHIS MODULE, IS NEW
USER GOING TOGROUP I?
A2S
READ A CHARACTERFROM THE KEYBOARD
A-27 SET GROUPINDICATOR
i
MUXOP
II POSITIONTO NORMAL
i
(IRUN)
SET UP OUTPUTDEVICE TO SPECIFIEDDEVICE
MUXIN
SET POINTERTO READ BUFFER
A-28
RUNINDICATOR =
HANDLER STATUS?GROUP II
POSITION INDICATOR
USER WHO IS RUNNINGAGREE WITH WHOSEBUFFER IS FILLED?
IS USER WAITINGTO READ TO
RELEASE PAUSE?
MODULEINDICATOR OR GROUP II
POSITION INDICATOR?
OTHER USER GOING TO AGROUP I MODULE OR IS
USER WAITING TOREAD TORELEASEPAUSE?
WRITE CURRENT USER'SCOMMON ON DISKREAD NEW USER'SCOMMON FROM DISK
OR UN. LT, 2)
SET ELAPSED TIMEINDICATOR TO ZERO
MODULEINDICATOR OR GROUP II
POSITION INDICATOR?
IS USER GOING TO LSG MODULEOR IS USER WAITING TO READ
TO RELEASE PAUSE ?
A-29
ACTIVEUSER INDICATOR?
MORE THAN2 ACTIVE
USERS?
RUNINDICATOR +32=
HANDLER STATUS?
USER WHO IS RUNNINGAGREE WITH USER WHO
CALLED UP?
A-30
v-^
si g11=8a. LU 2 ir
m fc<
o2<co
cco"• **t **J
cc _ cc t-._. ^^ ^T
CO
COLLJ
O — LJ
-10 O< p <
H t w H
CO LL LL. CO — Q.O LU
COcc
E 2 ^gCC O 5- LL
02^2
*ioiL_ & Q S£g<2cc o LU oSocco
Q. LU
Lufe
Hw
Ha 'ujo:CO LL. I
i i< *9 at
. COLU^CCNjgo
CO LU
- 5 uIS bCO CC
_J __ V-, *-/
<-6 <CO
±95S<E
ccLU
LU
sgiI -I O' <5
LU £o ccOcoo
—^ <o
LUN CCto
O
A-31
ACTIVE USERINDICATOR VALID
NUMBER?
MODIFY ACTIVEUSER INDICATOR TOREFLECT HANGUPOF USER 1
RUNINDICATOR= 1 ? SET INDICATOR TO
SPECIFY USER 1 RETURNS TOTAL RUNTIME IN SECONDSFOR SPECIFIED USER
TIMEA(IRUN,LT,4)
RETURNS TOTAL RUNTIME IN SECONDSFOR SPECIFIED USER
ACTIVE USERINDICATOR = 0 ?
READ AMTRANINTO CORE
DID THE LASTUSER HANG UP
A-32
A-33
ACTIVE USERINDICATOR VALID
NUMBER?
MODIFY ACTIVEUSER INDICATOR TOREFLECT HANGUPOF USER 2
SET INDICATOR TOSPECIFY USER 2
TIMEA
RETURNS TOTAL RUNTIME IN SECONDSFOR SPECIFIED USER
TIMEA(IRUN,LT.4)
RETURNS TOTAL RUNTIME IN SECONDSFOR SPECIFIED USER
ACTIVE USERINDICATOR = 0 ?
READ AMTRANINTO CORE
DID THE LASTUSER HANG UP
RUN INDICATOR= 1 ? MODIFY NO-SWAP INDICATOR
WHO IS RUNNING
COMSWP
WRITE CURRENT USER'SCOMMON ON DISK
READ NEW USER'SCOMMON FROM DISK
TIMEA(IRUN,LT,3)
CHARGE RUN TIMETO USER 1
A-33
A-34