Research Note 86-07

THE COMPUTER-AIDED ANALYTIC PROCESS MODEL:

S APPENDIX TO THE OPERATIONS HANDBOOK FOR THE APM DEMONSTRATION PACKAGE

. 0.

Ronald G. Shapiro

Dunlap and Associates, East, Incorporated

for

ARI FIELD UNIT AT FORT BENNING, GEORGIA

Joel D. Schendel, Acting Chief

TRAINING RESEARCH LABORATORY

Seward Smith, Acting Director

Qm.

DTIC

L~j ELECTE

APR 10imB

U. S. Army

Research Institute for the Behavioral and Social Sciences

January 1986

Approved for public rlee; distribution unlimited.

86 4 9 070 VA
U. S. ARMY RESEARCH INSTITUTE

FOR THE BEHAVIORAL AND SOCIAL SCIENCES

A Field Operating Agency under the Jurisdiction of the

Deputy Chief of Staff for Personnel

WM. DARRYL HENDERSON

EDGAR M. JOHNSON COL, IN

Technical Director Commanding

Research accomplished under contract

for the Department of the Army

Dunlap and Associates, East, Incorporated

This report,. as submitted by the contractor,. has been cleared fcr release to Defense Technical Information Center

1 (DTIC) to comply with regulatory requirements. It has been given no primary distribution othe, than to DTIC a nd will be available only through DTIC of other reference services such as the National Technical information Service (NTISI. The vitos. opiniins. and/or findings contained in this report ore those of the authorisi eand

by other official documentation.

;,.. % 

1110M
Unclassified

SECURITY CLASSIFICATION OF THIS PAGE (fhon Dee Entered)

REPORT DOCUMENTATION PAGE READ INSTRUCTIONS

BEFORE COMPLETING FORM

T. REPORT NUMBER 2. GOVT ACCESSION NO. 3. RECIPIENT'$ CATALOG NUM4BER

Research Note 86-07 1

4. TITLE (ad Subtile) S. TYPE OF REPORT & PERIOD COVERED

The Computer-Aided Analytic Process Model: Final Report

Appendix to the Operations Handbook for the APM May. 1980 - February 1983

Demonstration Package G. PERFORMING ORG. REPORT NUMBER

293-26

7. AUT OR(q) 6. CONTRACT OR GRANT NUMSER(.)

Ronald G. Shapiro M.DA903-80-C-0345

9. PERFORMING ORGANIZATION NAME AND ADDRESS 10. PROGRAM ELEMENT. PROJECT, TASK

U Dunlap and Associates East, Inc. AREA & WORK UNIT NUMBERS

17 Washington Street

Norwalk, CT 06584

11. CONTROLLING OFFICE NAME AND ADDRESS 12. REPORT DATE

U.S. Army Research Institute for the Behavioral January 1986

and Social Sciences' 13. NUMBER OF PAGES

5001 Eisenhower Ave., Alexandria, VA 22333-5600 318

14. MONITORING AGENCY NAME I ADDRESS(If dlffermit from Con lling Office) IS. SECURITY CLASS. (of his report)

ARI Field Unit

P.O. Box 2086 Unclassified

Fort Benning, Georgia 31905 1s. OECLASSIFrCATION/DOWNGRAD1NG SCHEDUL.E%

16. DISTRIBUTION STATEMENT (of thie Report)

Approved for public release; distribution unlimited.

17. DIST RIBUTION ST ATEMENT (of the abstrol etered in Block 20. fi dlfferent from Report)

%I%

S II. SUPPLEMENTARY NOTES %

,. Dr. Seward Smith, Contracting Officer's Representative

'N.

19. KE Y WORDS (Continue on ,eree side If necessary ad identify by block number)

Computer-Aided Model; Analytic Process Model; PASCAL; Computer Program;

Apple 1

20. AP5TU ACT (Cenham mrevr ,old if ecsemy and Identify by block nmbe)

The Computer-Aided APM Demonstration Package provides the analyst with the

opprtunity to perform a thorough analysis of a system while the computer keeps

tra(c- of the analysis and insures that the analyst examines the parts of the data

bas,- which are of interest. This is, however, a demonstration package which can

onl process small data bases. Because the package is implemented on an Apple 11

Plt. processing is relatively slow. An explanation of the AP,, listings of the data

set! derived using the APM and recommendations for further development of the

" AP>71 appear in the companion volume-:.'The Analytic Process Model for System

P D 72 ED~oWoF IMOV6SISOSSOLETE Unclassified

i SECURITY CLASSIt.5FICATION OF ThIS PAGE (O1n De. Enterd) .%

5.-.-.%-
Unclassified

se tIY Wr CLAWFICATW OIR TIS. PAGoggdf t 0. Ra ead'...

20.Design and Measurement: A Computer-Aided Tool for Analyzing Training Systems

and Other Human-Machine Systems." A separate companion volume-*Te Computer

Aided Analytic Process Model: Operations Handbook foi the APM Demonstation

Package" is also available under separate cover. "-beptesent volume, which is an

Appendix to theilOperations Handbook, contains the actual PASCAL computer code

listings. Disks containing: this code and the data bases in machine-readable format

are also available. - --- p,

'f A- 4't_ 

* A -A

I

CodeAMA!

-S . t

Unannuief e

SI. DtJC5;mP ISton, D

Uncl1ass if ied

-\".)v "..~ .. ,..- ''r* 7 1'%- % .,~J~-

A... "-.t% . . J"..,? 1%% CLSSPIAO -O- WIS .. PAE1V5f Def Essf . . ..- . - •
TABLE OF CONTENTS

Page f

I. EXECUTIVE SUMMARY 1

ii. GREETING PROGRAM 3

Inl. PERFORMANCE ITEM PROGRAM (PERFITEM) 55

IV. MEASURES AND ATTRIBUTES PROGRAM (MEASATTR) 119

V. MEASUREMENT PURPOSE PROGRAM (MEASPURP) 179

IVi. PRINT 223

VII. PACK 265

VIII. MISCELLANEOUS 307

I I{

. . . .. . . ... . .. . . .. ..
1. EXECUTIVE SUMMARY

This report is a supporting document to the Final Summary Report* on an

analytic process model (APM) for systems design and measurement. The

present document, the Appendix to the Operations Manual for the

computer-aided version of the APM,** contains a listing of the Pascal code for the computer-aided model. The model was developed for the Army Research Institute (ARI) Field Unit, Fort Benning, over the period from March 1980 to

: f 1 February 1983.

The objective of the computer-aided APM is to provide a routinized,

I thorough, adaptive and efficient procedure to help testers, analysts and l.

- I ~researchers develop design specifications and evaluation measures for any

planned or existing human-machine system, and especially for any training

I system. The demonstration version of the computer-aided model, as described

in this report, performs a sample of the routines expected in any ultimate .-. version that may be developed in the future. Specifically, the demonstration

model helps one to derive evaluation measures, but not design specifications.

In addition, it contains data bases for training systems, but not for any other

human-machine system. Finally, it contains data bases for only half of the six

i training subsystems (for design, enabling and delivery, but not for command,

I logistics or emplacement). For demonstration purposes, this development

represents an appropriate and sufficient allocation of project resources, since

the more significant effort was needed to develop the underlying concepts for

both a feasible "manual" model and the computer-aided model. The

demonstration model, using an Apple II Plus computer with two 5*-inch disk

drives, programmed in PASCAL, can be exercised straight through, beginning

with identifying the system and ending with a subset of its performance

measures. Any larger capability than presently exists in the demonstration

routine would require a computer with substantially greater capacity and .

speed.

Program listings are contained in Chapters 2-8. Chapter 2 contains a

" I listing of the GREETING program which displays the title page, instructions

and the analytic procedure menu. When the computer is turned on and the

: APM system disk is inserted, the title page is displayed first. Whenever the

analyst decides to select a different analytic procedure, this program is loaded

and the analytic procedure menu is displayed.

*Bloom, R.F., Oates, J.F., Jr., Shapiro, R.G. and Hamilton, J.W. The

Analytic Process Model for System Design and Measurement: A

Computer-Aided Tool for Analyzing Training Systems and Other Human-Machine .

Svs- m. Norwalk, CT: Dunlap and Associates East, Inc., 28 February 1983.

F inal Summary Report)

*Shapiro, R.G., Bloom, R.F. and Oates, J.F., Jr. The Analytic Process

Model For System Design and Measurement: Operations Handbook for the APM

Demonstration Package. Norwalk, CT: Dunlap and Associates East, Inc., 28

February 1983.

1 -

~ .y ~ N:- NCf -* *.'::-.
F3.. ..

Chapter 3 contains a listing of the PERFormance ITEM (PERFITEM)

program. This program allows the analyst to add, reword, remove and print

performance items (objectives, functional purposes and characteristics).

Chapter 4 contains a listing of the MEASures and ATTRibutes (MEASATTR)

program. MEASATTR allows the analyst to add, reword, remove and print _ attributes and measures for a given performance item. Chapter 5 contains a

listing of the MEASurement PURPose (MEASPURP) program. MEASPURP allows

the analyst to define a measurement purpose and associate (or disassociate) j each of the characteristics with the measurement purpose.

Chapter 6 contains a listing of the PRINT program which allows the

analyst to print the performance items, attributes and measures for a given

measurement purpose, or an entire subsystem. Chapter 7 contains listings of

the PACK program which arranges the data set for a given subsystem in order by item reference number, and packs the data sets so that any unused space is placed at the end of the data set so that it can be used.

Chapter 8 contains listings for a variety of programs which support the

APM system. STARTUP asks the analyst to place the APM SYSTEM disk in

Drive #1 at the appropriate time. GREETSHORT reminds the analyst to place

the APM system disk in Drive #1 if he does not do so. BLOCKHELP and

BLOCKINSTR set up the HELP, BRIEFHELP and INSTR data sets so that they

are blocked efficiently for usage by the APM system. VIDPATCH modifies the

SYSTEM.APPLE program for use with the VIDEX board. It only needs to be

run once with each copy of the SYSTEM.APPLE program.

The operations handbook contains item-by-item directions for starting up "

and carrying out all the steps in the demonstration routine, schematic flow

charts and miscellaneous information about the equipment and maintenance. j Thus, it ought to be understood prior to reading the actual Pascal listings.| .

I t. - "

I"

LA

-2-

.. .4.. ,. , .- .': ..-. .. . . ._ -. _ * --. .. 2 .- ". 
161

GREETING PROGRAM

t

The greeting program presents the title page, instructions (if desired).

establishes which system class, system and subsystem the analyst intends to

use (while allowing for the possibility of creating new ones). The Greeting

Program concludes by determining which analytic procedure is to be performed

next. Whenever any analytic procedure is completed, the analytic procedure

menu in this program is displayed to find out which program ought to be

C I executed next.

-3-.

i.-

- --3- oestalises ass sytemand hichsysem ubsste theanaystinteds o "'-" us wiealwn o h osblt f raignwoe) h reig"'.. "_ rora y etrmiin cneuds wic aalti, roedue s o e erored??'-

net hnve n nlti rcdr i copetd the anayti proeedure .; ',-
I N

1 I ld A (SSL PRINTERM)

2 1 1:10 ( 6M)

3 13 I 1M ($Progrea to greet user, instruct user, end set up table of systems and subsystems*)

1 3 I: ( oaeld G. Shapiro V2.O 10/25/928) I "

61 111 1 Progr m Greeting;

7 1 1V3 3

6 29 1:3 3

9 28 2:3 I PROCEDURE SETCHAIN(TYTLE:STRING);

10 28 31 1 PROCEDURE SETCYAL(VALISTRING)l

11 28 43 1 PROCEDURE GETCVALQJAR UAL:STRING); 1 .,

12 26 53 1 PROCEDURE SwPOw; ( .

13 28 61 1 PROCEDURES MAPOFF14 28 63D I

15 1 131 1 USES CNAINSTUFF;

16 1 lD 3

Ie

I ..<i

.

These procedures are part of the Apple Computer's CHAINSTUFF library entry.

The demonstration package uses only SETCIIAIN which causes another program

to be activated.

-4-

.. c :: x . . . . . . *-. .i*
17 1 100 3 (SSPS)TYPE is I 1:* 3 PASSFILE-kECORDJ • -19 A 1:0 3 CURSYS,CIRSPCURSUI ,PAC:STAING[O; , 20 1 I:D 3 NCURSYSPNCURSPPNCUR<SUi ,NPACFLAGItFLAGtO~FL/tO3:INTEOIER;

21 1 1:D 3 fEN;f

22 1 ID 3

23 1 1:D 3 SUDSYSFILE-RECORD

24 1 1ID 3 NSUBSYS: INTEGER; 25 1 IM" 3 SUb SYS3STRINGE803;

e 7 J 1 1:D1 |D26 3 END;

28 1 1:0 3 SPSYSFILEuRECORD

29 1 lID 3 NSPSYS: INTEGER;

30 1 1:b 3 SPSYS:STRINGEBOI;

31 110 3 END; ! 32 1 IM+ 3 -"-.

33 1 ID 3 SYSIILE-RECORD

34 1 lID 3 NSYSTEM: INTEGER;

35 1 1:D 3 SYSTEM:STRINGEO03; I 36 1 ID 3 END;

37 1 ID 3

38 1 i:D 3 INSTRFILEeRECORD

39 1 I:D 3 LINE:ARRAYC1..20) OF STRINGESO;

40 1 ID 3 END; .i... -

41 1 1:ID 3

42 1 I:D 3 HELPFILE=RECORD

43 1 :ID 3 LINE:ARRAYI..10 OF STRINGEo3;

44 1 ,:D 3 END;

45 1 lID0 3

46 1 l:D 3 FASTFILEaRECORD

47 1 1: 3 PRINTIT:ARRAYEI.*3003OF BOOLEAN;

49 1 I:D 3 END;

49 1 1:1D 3

". PASSFILE passes information about: 1) system class [CURSYS,NCURSYS] 2) system

[CURSP,NCURSP] 3) subsystem (CURSB,NCURSB] 4) aspect [PAC,NPAC] from one

program to another. Flag 1 is used to tell the GREETING program whether to

begin with title page or analytic procedure list. Flags 2 and 3 are unused.

SUBSYSFILE contains a list of the defined subsystems for each system. SPFILE

contains a list of the defined systems for each system class. SYSFILE contains

a list of the defined system classes. INSTRFILE contains the instructions.

HELPFILE contains the help commands. FASTFILE allows fast printing of a

measurement purpose if the measurement purpose had been printed before.

~r"

4.*_:::::
50 1 12M 3 (S$PSWVAR

51 1 IM 3 XFU4PUR,X08JECTfl'EPAC#CURSYSCURSP1 CURSUBLINEREOLJNEANSER:STINGEBSO3

52 1 1:D 372 AWSMHo~iANS2,AMS:CHAR;

53 1 IM 375 DOKE,Owc9oVER,MEG: BOOLEAN;

54 1 1:0 379 NLENGTHLLENGTH~PPEI,NDATAIIII2,JK,LhNNNFUNPUR,NO8JECTIVE,

55 1 i:ia 379 NPAC,NCURSYSNCURSPNCURSU8ZINTEGER;

56 1 1:D 397 .MELPtHELP:INTEGER;

57 1 12M 399 CORELAS7,EMJINTEOER1C8J

58 1 13 405 APMDSK:STRINGES);

59 1 1:0 410 NAKEFILETESTNANEFASTISSUEFILESPNMEFRAE:STRING243;

60 1 120 462

61 1 1:D 462 ASPECTARRAYCI..53 OF 9TRINGE143;( \

62 1 1:D 502 SUDSYSSPSYS,SYSTEN:ARRAYEI..103 OF STRINGESOJI

63 1 1M 1732 SCRATCH:AkRAYEI..203OF STRING0BOJ

64 1 1:D 2552 NSCRATCNARRAYLI..203 OF 10TEGER;

*65 1 1M 2572 NSU3SYS,NSPSYS,NSYSTEM:ARRAYEI..103 OF INTEGER;

66 1 1:0 2602

67 1 1:D 2602 SYSLIST:FILE OF SYSFILE;

68 1 1WO 2944 SUbSYSLISTWILE OF SUBSYSFILE;

69 1 1:D 3286 SPSYSLIST:FILE OF SPSYSFILE I

70 1 1:0 3628 PASSNODE:FILE OF PASSFILE;

*71 1 1:D 4099 INSTFILE:FILE OF IMSTRFILE;

72 1 1:0 5219 HELPER:FILE OF HELPFILE; 73 1 12M 5929 PRNT:EXT;

74 1 1M 6230 FILETEST:TEXT;

75 1 10 6531 FAS715SUE:FILE OF FASTFILE;

*76 1 1:0 7131

r

-6-'
77 2:0 1 (*rP$)PROCEDUE KEY;FORWARD; , -78 1 3:D 1 PROCEDURE KEYN;FORWAkb;

79 1 4:D I PROCED B .C.OUI;FGRWARD;

so 9 1 5: 1 PROCEDURE SYSTENFILES;FORIMRD;

81 1 6:D 1 PROCEDURE GO RW T;

92 1 7:D 1 PROCEDURE S2;FORRARD;

63 1 8:0 1 PROCEDURE S5;FORWARD;

94 1 9:D 1 PROCEDURE MENU;FORWARD;

95 1 10:D 1 PROCEDURE PROPERMAINDISW;ORWARD;

86 1 11:D I PROCEDURE OPENSPFILES;FORWARD;

87 1 12:D I PROCEDURE GOSPSYSCREA7E;FOIJARD;

Be 1 13:D 1 PROCEDURE SPSYSCREATE;FORMARD; -

99 1 W4D I PROCEDURE SPSYSTEINFILES;FOkMARD;

90 1 15:D 1 PROCEDURE SUPISYSTEMFILES;FORWARD;

91 1 WD~ I PROCEDURE PREPSPCREATE;FORNARD;

92 1 17;D 1 PROCEDURE *ELPROUTINEWORWARD;

93 1 189D 1 PROCEDURE GOSUDCREATE;FORWARD;

94~ 1 18:D I

J95 1 19:D 1

-.-

I

1:4

1 L

I.

I

"- ~These procedures are presented later on in the GREETING program.. -

- --
';7 -. 7 z

96 19S1S8PS*PROCEDURE 1 KEYNPREP(HLP:INTEGER;MSG:STRIHG)I

97 1 19:0 0 BEGIN

98 

99 

1 

1 

19:1 

19:1 

0 

9 

HELP:wHLP; 

WRITE(MSG);

F

100 1 19:1 20 KEYN; 101 1 19:0 22 END;

102 1 1930 34

1
1 03F S 201D I (ISOMP'ROCCDUfiE v'IEPKEY(HLP:INIEGE(;ptSo:sTh2#G);

104 1 20:0 0 SEG'"

~:f105 1 20:1 0 HELP.*=HLP;

1"9 REPEAT

107 1 20:2 9 WITE(MSO);

10 1 20:2 20 KV

109 1 20:1 22 U071L (AtSey') OR (ANS'N)

110 1 2020 35 END;

Ur

PRPE ipasamsaete al KYt edalte epnefo h keybard isnotY, If y repone Nn, es o No it ediplas th mesag

andE dnegiplas msa o tepncse KYt.eda etrrsonefoh

K ~ ~~~~~~~~~~~~~~~ ,N ,YsorNi.eiply kebad7farepneiorY h esg ~ 
-. ~t" L LA -M 1. -A -_ -P I p ! i j

112 1 2:3 1 (SPSP)PROCEDURE KEY;

113 1 230 0 EOIN

114 1 2:0 @ M8R-SI

us a 231 0 hNSVIER:,' 'a

116 1 2t 24 REPEAT

117 1 2:2 24 REALN(ANSWER)l

l13 1 2:2 43 ANtS;,NSWERC13.

119 1 2:2 50 IF (ANS(>y')AND(ANS<>")AND(ANSOH')AND(ANS0'y')AND

120 1 22 73 (ANS<>'n)AND(ANS<>h') THEN

121 1 213 37 MRITELN('PLEASE RESPOND YES OR NO1')1

122 1 232 132 IF ORD(ANS)>90 THEN

123 1 2S3 139 NEGIN

124 1 214 139 112 -0RD(ANS)-32|

125 1 2:4 147 ANSI-CHR(112)1 %

126 1 2:3 153 END; .

127 1 211 153 UNTIL (ANS,"Y') OR (MNS,'N') OR (AMSw'H')|

129 1 2:1 172 (S$R )

129 1 2:1 172 IF AMS-'H' THEN

130 1 212 179 NELPROUTIN."

131 1 2:0 131 END;

132 1 210 196

": '..

.0

I~

KEY reads a letter response from the keyboard. If response is 1) y or Y, it places

a Y in ANS and returns to calling procedure; 2) n or N, it places an N in ANS

and returns to calling procedure; 3) h or H1, it calls the HELP routine, places an

H in ANS and returns to calling program; or 4) any other key-it displays PLEASE

RESPOND YES OR NO and awaits a Y, N, H, y, n or h response. NOTE: Only

the first character/line is processed. The rest is ignored.

V ...,-. . . . . . .

-" .5,

i i i i -10-
133 1 21:0 1 (SSP#)PROCEDURE ANYKEY;

134 1 21:0 0 EGIN -, [135 1 21:1 0 URITELNV )

136 1 21:1 13 NRITELN(VSS Please press any Key to continue $8*);

137 1 21:1 78 (IlR-0)

133 1 21:1 76 AEAD(ADS);

139 1 21:1 89 ($RtAW)

• 140 1 21:0 69 END; 141 1 21:0 102

iJ

rOU .1 9

:1-

ANYKEY displays "Please Press any Key to Continue" then it awaits a Keypress

before returning control to the calling procedure.

-11- "'
a. I

142 1 3:3 1 (asP*)PROCEDURE KEYN;

143 1 3:0 1 VAR

144 1 3:3 1 ANSWER: STRING[40;

145 1 3:3 22 I1: ARRAYC1..43 OF INTEGER;

146 1 3:3 26 OK:BOOLEAN;

147 1 3D 27 IIO:INTEGER;

1461 3V 28

149 1 3:0 0 BEGIN

150 1 3:0 0 (SR-S)

151 1 3:1 0 OK:-TRUE;

152 1 3:1 3 REPEAT 1

153 1 3:2 3 REPEAT

154 1 33 3 1:8-1;

155 1 3:3 8 ANSNER:="

156 1 3:3 35 READLN(ANSWER); S

157 1 3:3 54 IF LENGTH(ANSVER)-O THEN

159 1 3:4 62 URITELN('Pleee enter the integer ogain');

159 1 3:2 112 UNTIL LENGTN(ANSVER)0>O

160 1 3:2 120 IF (ANSMEREIJ-'H') OR (ANSMERC13o'h) THEN I -161 1 3:3 135 BEGIN3

162 1 3:4 135 NELPROUTINE;

163 1 3:4 137 i:=999; or

*164 1 314 143 EXIT(KEYN);

165 1 3:3 147 END

166 1 3:2 147 FOR I:zI TO 4 DO

167 1 33 162 BEGIN

166 1 3:4 162 11CI2=ORD(ANSWER12)-48I 169 1 3 :4 180 IF (ll EI)<O ) OR (II I)9 ) THEN

170 1 3:5 207 BEGIN

171 1 3:6 207 IF (I1m) OR (II[II)(ORD( ')-48)) THEN

172 1 3:7 229 BEGIN 3

173 1 3:8 229 OK:sFALSE; (

174 1 3:8 232 WRITELN(PLEASE RESPOND WITH A POSITIVE INTEGER');

175 1 3:7 290 END;

176 1 3:5 290 END]

177 1 3:3 290 END; I

176 1 3:1 300 UNTIL TRUE;

179 1 3:1 303 I0:-llr;IIi

160 1 3:1 313 FOR I:-2 TO 4 DO

181 1 3:2 328 BEGIN

182 1 33 328 IF (IICIJ>=O) AND (IICIJ<=9) THEN

183 1 3:4 355 110:=l11010l+1111;

184 1 3:2 372 END;

185 1 3:2 302 (SSR4S)

186 1 3:1 382 I:zII0; .le

197 1 3:0 387 END;

1oo 1 3:0 410

KEYN reads a 1 or 2 digit response from the keyboard and places it into 1. If [

an H or an h are typed in, it places a 999 in I and calls the HELP routine. If

more than 2 characters are typed, only 2 characters are read. The rest are L

ignored. If the character(s) are not positive intergers, KEYN will display an L

appropriate warning and wait for a response.

-

-12-
169 1 2226 1 M*PS)PROCEDURE SNOWALINE;

190 1 22:0 0 BEGIN

Mf 1 22:1 0 NLENGTHuwLENCTH(LJNE); 192 1 22:1 7 WHILE LINECNLENGTH~" ' 90

193 1 22:2 is NLENSTNI'mLENGTN-1;

194 1 22:1 29 IF NLENOTH<wLLENGTII THEN

195 1 22:2 37 SEGIN

196 1 22:3 37 WRITE(LINE);

197 1 2223 49 EXIT(SHOWALINE);

198 1 22:*2 52 END;

'a1" 1 22:1 52 L:wLLENGTH;

200 1 22:1 58 WHILE LINEEL30<>' DO

201 1 22:2 69 LIOL-11 r202 1 22:1 79 U*=L-1;

203 1 22:1 67 REGUINE:=COPY(LJNE91YL); 204 1 22:1 104 L:nL+2;

205 1 22:1 112 MRJTELNIREGLJNE))

206 1 22:1 131 NLENGTH:uNLENGTH-L+tU

207 1 22:1 143 REGLINEDCOPVYL1NE,LNLEMOTH); 209 1 22:1 142 WRITEC' 'PREGLINE);

209 1 22:0 167 END;

~1210 1 22*.0 204

210 1 22*:0 204 MI! *5:HELPTEXT.TEXTS)

1~9

* SHOWALINE displays text on the screen. If, by chance, the text is longer than

the amount of space available on the current line, the display continues onto

a second line.

-13-

ze >K*> - .K:* **______
211 1 23U*D 1 (SSP*)POCDURE PRNTHELP;

212 1 23:0 0 BEGIN

213 1 23:1 o IONE:xFALSE;

214 1 23:1 4 REURITE(PRNTP'PRINTER:');

215 1 23:1 25 PAOE(PRNT);

216 1 23:1 35 NRITELN(PftNTtCNR(I4)v'AnaJy'tc Process Model'#CNRt13));

217 1 23:1 97 WRITELN(PRI4TCHR(14)r'N@1p File'pchr(13) ; 219 1 23:1 146 P6E:a21*

219 1 23:1 150 REPEAT

220 1 2322 150 SEEK(HELPER,PGE);

223 23: 179 K:wPGE-1;,

224 1 23:2 197 MRITELM(PRNTP,

225 1 23:2 239 Page ',K);

226 1 23:2 308 FOR J!-1 TO 10 DO

227 1 23:3 322 URI7ELN(PRWT.MELPERA.LINEEJ3);

226 1 23:2 362 IF COPY(HELPERA LINE123v2,1O0Wconclusion' THEN

229 1 23:3 399 DONEszTRUE I

r.230 1 23:2 403 PGE:nPGE+1;

231 1 23:1 411 UN71L(DONE);

232 1 23:1 416 PAGE(PANT);

233 1 23:1 426 CLOSE(PRNT);

234 1 23:0 435 END;

235 1 23:0 452

PRINTHELP prints the HELP file on the printer. It is called by HELPROUTINE.

r

-14-
. ,% P,

236 1 17D8 1 (SPS)PROCEDURE HELPROUTINE;

237 1 17:0 0 BEGIN

1238 1 17:0 0 (SI-*)

239 1 1731 0 RESET(HELPER5 NTTELP')K

240 1 171 16 s MITL )

241 1 1731 1s I3IRESUSLT;

242 1 17:1 23 IF (100) THEN

243 1 17:2 30 KElN

244 1 1733 30 PAGE(OUTPJT);

245 1 1733 40 WRITELN('UNFORTUNATELYe THE HELP FILE IS NOT AVAILABLE ON YOUR DISK');

, 246 1 1733 119 R1TELN( )

247 1 17M 136 WRITELN('PLEASE PRESS ANY KEY TO CONTINUE PROCESSING');

248 1 1733 199 READANS);

249 1 17:3 210 EXIT HELPROUTINE)I

'* 250 1 1732 214 END;I

251 1 1731 214 13.03

252 1 1731 213 POE:=HELP*IJ

253 1 17:1 226 DONE3.FALSE;

- 254 1 1711 230 REPEAT

255 1 17:2 230 SEEK(HELPERoPOE).

256 1 1722 241 OET(HELPER);

257 1 17:2 249 PAGE(OUTPUT)

258 1 17:2 259 GOTOXY(73,0);

259 1 1732 264 K:-PGE-1; %

260 1 17:2 272 WRITELN("Pge IK).

261 1 17:2 309 GOTOXY(OO);

262 1 17:2 314 FOR J.1= TO 10 DO

263 1 17:3 328 WRITELN(HELPERA.LINEEJ3);

264 1 17:2 369 IF COPY(ELPERA.LINE(2],2plO)sconclsion' THEN

265 1 17:3 405 DONE*:TRUE;

266 1 1732 409 YRTELN(' ')

267 1 1732 427 WRITELN('$*S$PLEASE PRESS RETURN KEY TO VIEW NEXT PAES8');.'

266 1 1732 496 URITELN( '" PLEASE TYPE PAGE NU ER AND PRESS RETURN KEY TO VIEW ANOTHER

PAGE , ,).

269 1 17:2 589 WRITE ('**$SSPLEASE PRESS ESC AND RETURN KEYS TO ESCAPE HELP ROUTIHES8 ° )

I 270 1 1732 664 PGE:-PGEl;-

271 1 17:2 672 (*5R-8)

272 1 1732 672 ANSWER:='

273 1 17:2 689 READLN( ANSWER);

- 274 1 17:2 706 p4ge(output);

I_ HELPROUTINE displays appropriate help commands when it is called by KEY or

KEYN. HELPROUTINE knows which HELP to display because the calling program

places the appropriate help page number into HELP. Once the analyst sees the

* - first help message, he/she can ask for other help messages by typing in the page

number of the desired help messages. Note that the HELP file is made by

- editing a series of files (HELP1 . . HELPN) using the Apple editor. Then,

they are processed by the BLOCKHELP program (see Chapter VIII). The HELP

file produced by BLOCKHELP is suitable for use with the HELPROUTINE.

" 'HELPROUTINE "knows" it has hit the last page of the file because the word

-, "conclusion" appears on the second line of the last page.

..: ,-15-

. -*s- :a.'.- a . . "

-
275 1 17:2 718 IF ORD(ANSIEI)s27 THEN

276 1 17;3 726 BEGIN

277 1 17:4 726 CLOSE(HELPER);

278 1 17:4 735 (*5R8)

279 1 17:4 735 EXIT (HELPROUTINE);

280 1 17:4 739 (MSR-$)

231 1 17:3 739 END;

282 1 17:2 739 IF (ANSERLIr-J'0') AND (ANSWERE1<-'9') THEN

283 1 17:3 754 BEGIN

284 1 17:4 754 PGE:,ORD(ANSWER[1I)-49; a

285 1 17:4 763 IF (ANSHERE2I3>'0') AND (ANSUER(23<w'9") THEN 26 17:5 778 PGE:&PGE$10 4 ORD(AMSWERC21)-48; 207 1 17:4 793 PGE:,PGE+I; .7

288 17:4 801 IF PGE<2 THEN . 289 1 17:5 808 PGE4:02;

290 1 1714 812 DONE:,,FALSE; e 'r

291 1 17:3 016 END;

292 1 7:1 916 UNTIL (DONE) AND ((MNSWERL13<'0') OR (ANSERrI3>'9'))

293 1 17:1 835 PAGE(OUTPUT);

294 1 17:1 845 PREPKEY(2t'Nould you like to print the help file?').

295 1 17:1 89 IF ANSuy'Y THEN

296 1 17:2 996 BEGIN

297 1 17:3 896 KEYNPFEP(2,'How many copies? 1);

298 1 17:3 919 FOR N:-l TO I DO

299 1 17:4 935 PRNTHELP;

300 1 17:3 947 IRITELN(DONE');

301 1 17:2 971 END; ,

302 1 17:1 971 CLOSEI4ELPER)

303 1 17:1 960 ,85R+*)

304 1 17:0 980 END;

305 1 17:0 1000

306 1 17:0 1000

307 1 1730 1000 (,I 5:HELPTEXT.TEXT*)

300 1 17:0 1000

Io . -i

I.

See previous page for program description.

-16-

.°5 

I. '

1.6:;r
1 309 1 24:D I M8PS)PROCEDURE OUIT; N

310 1 24:0 0 BEGIN

311 1 24:1 0 PAGE(OUTPUT);

312 1 24:1 10 REPEAT

313 1 24:2 10 Write('Vould you like to return to title page?');

314 1 24:2 61 help:&2J

315 1 24:2 65 key

316 1 24:1 65 until (ensu'Y') or (answ'N');

317 1 24:1 s0 if anuu'Y' then

319 24:2 87 begin

S319 1 24"3 67 setchain( 'greeting" ) |

(320 1 24:3 101 possnodeA.flogl:&50

321 1 24:3 109 branchout;

322 1 24:3 111 exit(progroa);

323 1 24:2 115 end;

324 1 24:1 115 REPEAT

323 1 24:2 115 write('iould you like to turn off computer for nou?');

326 1 24:2 171 help:z2;

327 1 24:2 175 key I

328 1 24:1 175 until (ons-'Y') or (nsz'N');

329 1 24:1 190 if ans-'Y" then

330 1 24:2 197 begin

331 1 24S3 197 posonodeA.flogl:0uO 332 1 24:3 205 branchout;

333 1 24:3 207 page(output);

334 1 24:3 217 writeln(lbye...');

335 1 24:3 243 uriteln("");

336 1 24:3 263 uriteln(" I hope to see you again very soonl');

337 24:3 318 writeln(" ")

• 338 1 24:3 336 mriteln('You soy nou:');

339 1 24:3 368 writeln(' 1. Remove the disks.')-

340 1 24:3 409 writeln(' 2. Turn off printer.');

341 1 24:3 450 writeln(' 3. Turn off computer.');

342 1 24:3 492 uritelni' 4. Turn off this display screen.')l

1 343 1 24:3 545 OVER:-FALSE;

344 1 24:3 549 REPEAT

* 345 1 24:4 549 11

346 1 24:3 549 UNTIL OvERTRUE;

347 1 24:2 561 end;

€ 348 1 24:1 561 REPEAT

I ,,,°-

i. S??

* Im

* QUIT asks the analyst what he/she wants to do next 1) return to the title page,

2) turn off the computer, 3) access the Apple operating system. If options 2 or

3 are selected, it says bye . . . and displays some helpful advice. If option I

is selected, the computer then goes into an infinite loop, whereas if option 3 is

selected, the analyst gains control of the Apple operating system. If the analyst

selects no option, then he/she is sent back into the APAI demonstration package, ,* approximately where he/she left off.

--7

-17.""

-.-~~j'~j .. *'. .. ,~.*~ -.--- ~ ~ -.
TV..

349 1 24:2 561 write'Would you like to leave *ode] and access cosputer operating systes?')i

350 1 24:2 640 help:=2;

351 1 24:2 644 key

352 1 24.1 644 until (ans='Y'

) or (hsa'N');

353 1 24:1 659 if onsa'Y' then

354 1 24:2 666 begin

355 1 24:3 666 passnodeA.flagl:-O;

356 1 24:3 674 branchout;

357 1 24:3 676 PAGE(OUTPUT);

358 1 24:3 686 writeln('bye.,.')"

359 1 24:3 712 writeln("); 4

360 1 24:3 732 uriteln(' I hope to see you again very soon!');

361 1 24:3 788 uriteln'');

362 1 24:3 908 writeln(' You are now on your own with the Apple OS);

363 1 24:3 970 writeln(");

364 1 24:3 690 writeln(' good luck,,.')- 365 1 24:3 923 for i:=1 to 1000 do

366 1 24:4 939 :=le10; I .

367 1 24:3 957 exit(progras); ) -,.

368 1 24:2 961 end;

369 1 24:1 961 writaln('Since you hove selected not to exit fro& this progras, I will ')

370 1 24:1 1043 writeln(' send you back to where you left off as soon as you press any key.');

371 1 24:1 1129 (Sir-8)j -" 372 1 24:1 1129 read(ons);

373 1 24:1 1140 (8Sr+8)

374 1 24:0 1140 END;

375 1 24:0 1166

I

I III II ' -

See previous page for program description. V '

%"%

r ..-.

-18- r

........... -.......-. '. "" -* ''%'* "'" ***- ... . -..... " .. ' *....." "''''"'''- * '-*..."-'" -"" " ' '__' " , _
376 1 25:D I (SPSPROCEDURE HELLO;

377 1 25tO 0 BEGIN f378 1 25:1 0 PAGE(OUTPUT); F 4379 1 25:1 10 WRITELN' ')5 '.

* 380 1 25:1 28 WRITELN(' )

391 25:1 46 MRITELN(' %)

1 382 1 25:1 64 URITELN(• ')1 .1 ]

383 1 25:1 62 MRITELN(' AN ANALYTIC PROCESS MODEL FOR');

364 1 25:1 156 URITELNV ';

385 1 25:1 174 MAITELN(' SYSTEMS DESIGN AND MEASUREMENT:');

36 1 25:1 249 WAITELN( ');

387 1 25:1 267 MRITELN(' APPLICATIONS TO TRAINING SYSTEMS');

388 1 25:1 343 WURITELN' ');.

389 1 2S'1 361 UIRUELNV '"

390 1 25:1 379 WRITELN( ')"

I 391 1 25:1 397 U1RITELN(" ')-

392 1 25:1 415 MAITELN( '")

393 1 23:1 433 MRITELN( Prepared for: ARI Field Unit, Fort Benning, Georgia')l

394 1 25:1 509 IiRITELN(" Prepared by: Dunlap i Associates East, Inc. Noruma1l, Conn');

395 1 25:1 599 WRITELN(' Date: 25 October 1962');

396 1 25:1 645 MRITELN( ');

397 1 25:1 663 VAITELN(' ")-

398 1 25:1 "81 4 AITEV' PLEASE PRESS ANY KEY TO BEGIN');

3" 1 25:1 746 1864-0)

400 1 25:1 746 REAID(ANS);

401 1 25:1 757 (S6R#S)

402 1 25:0 757 END;

403 1 25:0 770

404 2:0 770

HELLO displays the title page.

9..9 **

j-19-
405 1 26:1D 1 (SSPS)PROCEDURE PRNTINSTRUCTIONS;

406 1 26:0 0 BEGIN

407 1 26:1 0 PONE:-FALSE;' .-

406 1 26:1 4 REWRITE(PkNTt'PRINTER:');

409 1 26:1 25 PAGE(PkNT);

410 1 26:1 35 URITELN(PRNT,CHR(14),'Anaytlic Process flodel',CHR(13));

411 1 26:1 97 URITELN(PkNT,C1R(4),'Instructions',chr(13));

412 1 26:1 149 PGE:m2;

413 1 26:1 153 REPEAT

414 1 26:2 153 SEEKlINSTFILE,PSE); -I 415 1 26:2 164 GET(INSTFILE);

416 1 26:2 172 PAE(PRNT);

417 1 26:2 182 K:-PGE-1; ,-

418 1 26:2 190 MITELN(PRNT,' ,

419 1 26:2 242 Page ',K);

420 1 26:2 311 FOR J:zl TO 20 DO

421 1 26:3 325 URITELN(PRNTINSTFILEALINEEJ]);

422 1 26:2 365 IF COPY(INSTFILE^,LINEE23,2,10)='conclusion ' THEN if

423 1 26:3 402 DONE:-TRUE;."

424 1 2612 406 PGE:zPGE#I;

425 1 26:1 414 UNTIL(MONE);

426 1 26:1 419 PAGE(PRNT)-

427 1 26:1 429 CLOSE(PRNT)!

428 1 26:0 438 END;

429 1 26:0 454

PRINTINSTRUCTIONS prints the instructions on the printer when it is called by

INSTRUCTIONS. (It is nearly identical in structure to PRINTIIELP.) . -

-20-

-1-

-0- I
i .t.. .r-.. . . . . . . . . .

t": 

430 1 27:1D 1 (SP*)PROCEDURE INSTRUCTIONS;

431 1 27:0 0 BGIN

, 432 1 27:0 0 (S1-$)

i 433 1 27:1 0 RESET(INSTFILE'APIUTL:INSTRUCT');

434 27:1 26 486I+*)

435 1 27:1 26 I:=JORESULT;

S436 1 27:1 31 IF I19 THEN

437 1 27:2 38 BEGIN

439 1 27:3 38 PROPERMAINDISK;

* 439 1 27:3 40 INSTRUCTIONS;

440 1 27:3 42 EXIT(INSTRUCTIONS);

441 1 27:2 46 END;

442 1 27:1 46 IF (I<>O)AND(I<>9) THEN

" 443 1 27:2 59 BEGIN

' 444 1 27:3 59 PAGE(OUTPUT);

, 445 1 27:3 69 URITELN('UNFORTUNATELY. INSTRUCTION FILE IS NOT AVAILABLE ON YOUR DISK');

446 1 27:3 154 VRITELN( ) __

447 27:3 172 tRITELN('PLEASE PRESS ANY KEY TO CONTINUE PROCESSING');

44 1 27:3 235 READ(ANS);

449 1 27:3 246 EXIT(INSTRUCTIONS);

450 1 27:2 250 END;

451 1 27:1 250 1:-O;

452 1 27:1 254 POE:-2.

453 27:1 258 DONE:-FALSE;

454 1 27:1 262 REPEAT

455 1 27:2 262 SEEK(INSTFILE,PGE);

456 1 27:2 273 GET(INSTFILE);

457 1 27:2 281 PAGE(OUTPUT);

458 1 27;2 291 GOTOXY(73,0) %

459 1 27:2 296 K:=PGE-1;

460 1 27:2 304 WRITELN('Pogo '9K);

- 461 1 27:2 341 GOTOXY(O,O)

462 1 27:2 346 FOR J:l TO 20 DO

* 463 1 2713 '360 WRITELN(INSTFILEA.LINEEJJ);

464 1 27:2 400 IF COPY(INSTFILEA.LZNEE2,2,10)z'concIusion' THEN

465 1 27:3 437 DONEf:*TRUE;

466 1 27:2 441 WRITELN(' ');

467 1 27:2 459 MRITELN('SSSSPLEASE PRESS RETURN KEY TO VIEW NEXT PAGES$$$');

. 468 1 27:2 528 WRITELN('**$PLEASE TYPE PAGE NUhBER AND PRESS RETURN KEY TO VZEN NOTHER

PAGES$$');

INSTRUCTIONS displays the instructions. Functionally, it is virtually identical

to IIELPROUTINE.

-21-

..*- i" o. . o -. . %*%. . . .• * * . -. % ." ..•, %
469 1 27:2 621 WRITE V1 *ESPLEASE PRESS ESC AND RETURN KEYS TO ESCAPE JNSTRUCTXONS*$**a;

471 1 27:2 704 (*$R-*I

472 1 27:2 704 ANSUER~z'

473 1 27:2 721 READLNANSWER);

474 1 27:2 740 page(output);

*475 1 27:2 750 IF ORD(ANSWEkE1J)=27 THEN

476 1 27:3 758 BEGIN

477 1 2734 758 CLOSE(INS7FILE);

*478 1 2734 767 (IR+8)

479 1 27:4 767 EXIT (INSTRUCTIONS);

480 1 2734 771 (SR-a)Y

481 1 27:3 771 END;

482 1 27:2 771 IF (ANSWERCIJ>='0') AND (ANSWERE13<n'9') THEN

483 1 2723 786 BEGIN

484 1 2734 786 PGE:=ORDCANSWERE13)-46;

485 1 27:4 795 IF (ANSWERE23>='0'I AND (ANSWERE23<*'9') THEN

486 1 2725 810 PGE=xPGESIO + ORD(ANSWERE2])-48;

487 1 27:4 825 PGE:=PGE+lp*

488 1 27:4 833 IF PGE<2 THEN

489 1 27:5 840 PGE:=2;6.

490 1 2714 644 DONE:FALSE;

491 1 27:3 848 END;

492 1 27:1 848 UNTIL (DONE) AND ((AMSWERLI13V0') OR (ANSWER113>'9'))l 6

493 1 27:1 867 PAGE(OUTPUT);

494 1 27t1 877 PREPKEY(2#'iiould Youa 111. to print those instrUctions?');

495 1 27:1 926 IF ANS-'Y' THEN

*496 1 27:2 933 BEGIN

*497 1 27:3 933 KEYNPREP(2,'How many copies? '

498 1 27:3 956 FOR N~zI TO I DsO

499 1 27:4 972 PRNTINSTRUCTIONS;

500 1 27:3 984 WR17ELN('DONE');

501 1 27*t2 £008 END;

502 1 27:1 1008 CLOSE(INSTFILE)

503 1 27'o1 1017 ($IR+S) -1

504 1 27:0 1017 END;

505 1 27:0 1038

* See previous page for program description.

7:.'-
I _7 

506 1 4311 1 (*SS)PROCEDURE BRNC4OUT;

507 1 4:0 0 BEGIN

50S I 4:0 0 (8SI-*)

59 1 431 0 RESET(PASSNODEP.PASSTHRU');

510 1 4:1 it (861+8) 511 1 4:1 19 IM(ORESULT<>0) THEN 512 .1 4:2 25 WRITE('SERIOUS ERROR -- 0N FILE PASSTNRU AT BRAMNOUT') 513 1 4:1 83 ELSE

514 1 4:2 95 BEGIN

515 1 4:3 95 PASSNGDEA.*CURSYSnCURSYS,

5516 1 4:3 95 PASSNODEA.CURSUB:2CURSUB;

1517 1 4:3 104 PASSHODEA.CURSP:uCURSP;

Sig1 1 4:3 114 PASSNODEA%.PAC:=PAC;

*519 1 4:3 122 PASSNODEA.NcURSYS:=MCuRSYS;

520 1 4:3 132 PASSNODEA.NCUUDU'NCURSU3;

-,I~521 1 4:3 142 PASSMODEA.NCURSP~nMCURSP;

522 1 4:3 152 PASSkODEA.NPAc:uMPAC;

3524 A 4:3 170 PUT(PASSNODE);

1525 1 4:3 178 IF EOF(PASSNDDE) THEN

3 26 1 4:4 188 NRITELN('OUT OF DISKr SPACE WHILE WRITING PASSTHRU');

527 1 4:3 249 CLOSE(PASSNODEPLOCK)I

529 1 4:2 257 END;

529 1 4:0 257 END;

530 1 430 272

* BRANCHOUT loads the PASSTHRU file with appropriate data for use by called -- programs.

-23-
IF . v -Z IF V.

531 1 28:0 1 (86P*ROCEDURE 9RANCHIN;

533 1 28:0 0 BEGINe

53 1 28:0 o ($$1-N

534 1 28:1 0 RESET(PASS01DE,'PASSTHRU')l

535 1 28:1 19 (*$1+$)

536 1 28:1 19 IF IORESULT<)0 THEN

537 1 28:2 25 BEGIN

538 1 28:3 25 REWkITE(PASSNODE,'PA5SSIRU');I

53? 1 28:3 46 PASSMOLE4.CURvSY:a";

540 1 28:3 56 PASSNODEA.CUkSUb:u";

541 1 28:3 66 PASNoDEA.PAC:=.;

542 1 28:3 74 PASSNOIEA.NCuRSYS:.0;

543 1 28:3 82 PASSNODEA.NCURSP:=O5

544 1 28:3 90 PASSNODEA.NCURSuB:=Q;

545 1 28:3 t9 PASSNODEA.NPAC:=0;

546 1 28:3 106 PUT(PASSHODE);

547 1 28:3 114 IF EOF(PASSNODE) THEN

548 1 28:4 124 WRITELNVOUI OF D'ISK SPACE WHILE WRITING PASSTHRU');

549 1 28:3 184 CLOSE(PASSNODEvLOCK);

550 1 28:3 193 RESET(PASSNODE9'PASSTHRU')

551 1 2e:2 214 END;

552 1 28:1 214 GET(PASSNODE);

553 1 28:1 222 CURSYS:-PASSNOIEA,CURSYS;

554 1 28:1 232 CURSP:*PASSNODEA.CURSP;

555 1 28:1 242 CURSUD:UPASSNODE^.CURSUB;

556 1 28:1 251 PAC:UPASSNODEA.PAC;

557 1 28:1 259 NCURSYS:-PASSNdODEA.NCURSYS;

558 1 28:11 268 NCURSUD:ZPSSNODEA.NCURSUR;

559 1 28:1 277 NPAC:-PASSNODEA.NPAC;

560 1 28:1 286 CLOSE(PASSNODEPLOCK);I

561 1 28:0 295 END;

562 1 28:0 310

BRANCHIN gets information from the PASSTHRU file for use by this program.

-'7-7

-24-
lN

563 1 29:D I (SSPS)PROCEDURE NAKEDISK;

564 1 29:0 0 BEGIN

565 1 29:1 0 FREPKEY(54#'Uould you like to prepare a new data disk for this subsystem?');

566 1 29:1 67 IF ANSx'N' THEN

567 1 29:2 74 BEGIN

*568 29:3 74 HENU;

569 1 29:3 76 EXIT(HAKEDISK);

570 1 29:2 90 ENDO"

571 1 29:1 80 URITELN(I can neither format nor name a diskt so I will tell you what to do'

572 29:1 159 chr(13)," then you will hove the opportunity to do it.'echr(13)M

573 129,1 237 " 1. Turn to page 184 of the APPLE PASCAL Operating System Reference

'I -anual. 

, chr(13),

574 1 29:1 335 ' 2. Insert Apple 3 in drive 1, and follow the directions.',chr(13),

575 1 29:1 415 '3. When finished, turn to page 33 of the same manual.',chr(13)p -

576 1 29:1 492 " 4. Enter the FILER progrea.',chr(13)t

- 577 1 29:1 543 ' 5. Turn to page 45 and run the change program, changing',chr(13).

578 1 29:1 622 BLANK: to the new name followed by a colon. The new',chr(13),

579 1 29:1 703 ' name consists of the first 3 letters of the system name',chr(13),

580 1 29:1 787 followed by the first 3 letters of the subsystem name.'.chr(13),

581 1 29:1 970 ' 6. Good Luck--I will see you again soon');

562 1 29:1 931 EXIT(PROGRAN);

583 1 29:0 935 END;

584 1 29:0 948

I%

-25-

7 7

-" MAKEDISK tells analyst how to format a new disk if no disk is available for

the subsystem requested.

-25- :

*' - ".""" - . "...'.-. '.-... " ." . :.':'i" .'.- - .- " " .'i':- . .' ..-- - "':" '2 " " " "2''' '' ' "'" "" i:' " ". .
565 1 1O'D 1 ($SP)PROCEDURE PROPERMINDISK;

566 1 10:0 0 SEGIN

567 1 10:1 0 PAGE(OUIPUT);

see 1 10:1 10 REPEAT

589 1 10:1 t0 (861-9)

590 1 10:2 10 RESEI(INSTFILE.'APNU7L:INSTRUCT");

591 1 10:2 36 (85t8

592 1 10:2 36 K:&IORESULT;

593 1 10:2 41 IF K*0 THEN

594 1 10:3 46 CLOSE(INSTFILE);

595 1 10:2 57 IF K-9 THEN I 596 1 10:3 64 DEGIN ell

597 1 10:4 64 WRITELNC'Please place the APR UTILity disk (APHUTIL) in drive * 2.'); • 598 1 10:4 141 ANYkEY

599 1 10:3 143 END;

600 1 10:1 143 UNTIL K<9"

"0 1 10:0 150 END;

602 1 1o:o 164

4.

PROPERMAINDISK checks to be sure that the APMUTILITY disk is in Drive #2 -.

when it is needed. I

-26- .

. . _."--; ... - - -.-.... . .-.. , . . .< .. __. ____ _ . ... -. . . . . . . . . , . . . . .- .. . .. ,..-t.
I .

603 1 30: D (*SPS)PROCEDURE PROPCRDISK;

604 1 30:0 0 BEGIN r 65 1 30:1 0 OIK:-TRUE;

606 1 30:1 4 PAGE(OUTPUT);

607 1 30:1 14 URITELN'Systes class: ',CURSYS);

606 1 30:1 60 URITELN('Systea: ',CURSP)

609 1 30:1 100 WRITELN('Subsyste e ',CURSUD);

610 1 30:1 142 MRITELN' ')I

611 1 30:1 360 APNDSK:uCONCAT(COPY(CURSYS,1,2)COPY(CURSP1,2),COPY(CURSUD,1,2),' ')1

612 1 30:1 245 NNEILETEST:UCONCAT(APIDSKt'TEST');

613 1 30:1 277 REPEAT

614 1 30:1 277 ($-I)

615 1 30:2 277 RESET(FILETESTNAMEFiLETEST);

616 1 30:2 268 ($$I$)

617 1 30:2 268 K:-IRESULT;

616 1 30:2 293 IF K-9 THEN

619 1 30:3 300 BEGIN

620 1 30:4 300 HELP:22;

621 1 30:4 304 ULITELN(Ilf the disk for this system classo syst.., end subsyste* is'.

622 1 30:4 375 chr(13),' evailablet place it in Drive @ 2 and type Y (retrn).'O

: 623 1 30:4 459 chr(13),' Otherwise, type N (return).');

624 1 30:4 518 KEY;

625 1 30:4 520 IF ANS-'Y' THEN

626 1 30:5 527 BEGIN ",

627 1 30:6 527 PROPERDISK;

628 1 30:6 529 EXIT(PROPERDISK);

629 1 30:5 533 END;

630 1 30:4 533 IF (ANSa'N') OR (ANSu'n') THEN

631 1 30:5 546 OK:-FALSE; 632 1 30: 3 550 END.;

633 1 30:1 550 UNTIL (K<>9) OR (OKUFALSE);

634 1 30:1 564 IF OK=FALSE THEN

635 1 30:2 572 AKEDISK;

636 1 30:0 574 END;

637 1 30:0 590

.. .4-.- ,

PROPERDISK checks to be sure that the appropriate disk for the system class,

system and subsystem selected is in Drive #2 before branching to another program.

- -27-

I77.
638 1 31:D 1 M*PS)PROCEDUAE RENOVEFASTISSUE;I

63?9A 31:0 0 SEGINIL

640 1 3120 0 (*$1-*)

*641 1 3121 0 NA&FASTISSUE:uCONCAT(cAPNISKCOPY(CURSYS,1.4),COPY(CURSP,14)COPY(CURSU5.,4,@FA');

642 1 31:1 95 RESET(FASTISSUEtNANEFASTISSUE);

643 A 31:1 106 CLOSE(FASTISSUEPPURGE);

*644 1 3111 113 (861M$)

645 1 31:0 113 END;

646 1 31:0 126

RE OEATSU eesteFSISEfl hnvrPC DT srn

[AnwFSISEflewl ecetdte ettm h RNTpormi u.

.9-28-
1647 1 32:9 1 (*6P5)PR0tEDURE SNOVNENU;

649 1 3210 0 BEGIN

649 1 3211 0 page(output)I

650 1 321 10 URITLN('Systea class; ",cursys);

651 1 3211 56 WRITELM('Systeam 'cursp)l

652 1 3211 96 WRITELN('Sbsystem: 'rcursub);

653 1 32:1 138 MAITELN(" )l

654 1 3211 156 WRITELN('You may perform the following analytic procedures:');

655 1 32:1 226 writeln(" *);

656 1 32:1 244 wrjteln( '1. Add, modify, or delete performance itess',chr(13),

657 1 32:1 310 '2. Add, modify or delete measurable attributes or measures'gchr(13),

658 1 32:1 392 '3. Add, modifyt or delete measurement purposes',chr(13),

659 1 32:1 461 '4. Print out selected results from your analysis',chr(13),

660 1 32:1 532 "5. Pack your disk files most efficiently (a slow process)',chr(13).

661 1 32:1 612 "6. Change System class Systet and/or Subsystem to be analyzed'echr(13) C.--

662 1 32:1 698 "7. Review Instructions',chr(13),

663 1 321 743 'S. Stop for now'schr(13),chr(13))

664 1 32:0 799 END;

665 132:0 912

77r

Iu

" [ '-.-r

' [ SHOW MENU displays the list of analytic procedures available."

int
.- z~~~ V7XZtVT

666 1 9:1 1 (OsPefROCEDURE M HU;

667 1 9:0 0 BEGIN

668 1 9:1 0 SHOWMENU;

669 1 9:1 2 REPEAT

670 1 9:2 2 KEYNPREP(5,'ih1ch would you like to do');

671 1 9:2 35 IF 1-999 THEN

672 1 9:3 44 BEGIN

673 1 9:4 44 MENU;

674 1 9:4 46 EXIT(MENU); W.

675 1 9:3 so END;

676 1 9:2 50 IF (>) OR (1<1) THEN j ¢"

677 1 9:3 63 WR1TELN('Please type an integer between I and 8');

676 1 9:1 121 UNTIL (1>O) AND (1-9);

679 A 9:1 134 IF 1<6 THEN 680 1 9:2 141 BEGIN |

681 1 9:3 141 PROPERDISK'

682 1 9:3 143 IF Kz9 THEN

663 1 9:4 150 BEGIN

604 1 9:5 150 dRITELN(Options I to 5 are not available, because you are not able', '-

685 1 9:5 220 chr(13), 'to insert the appropriate disk. Please select',

686 1 9:5 288 chr(13), 'Option 6, 7P or 8 when the menu reappears');

687 1 9:5 359 ANYKEY;

68 1 9:5 361 MENU;

689 1 9:4 363 END;

690 1 9:2 363 END; 691 1 9,2 363,.'...

692 1 9:1 363 CASE I OF

693 1 9:1 368 1: BEGIN

694 1 9:3 368 SETCHAIN('PERFITEN');

695 1 9:3 302 EXIT(PROGRA..);

696 1 9:2 306 END;

697 1 9:1 386 2t BEGIN

69 1 9:3 38 SETCHAZ('NEASTTR');

699 1 9:3 402 EXIT(PROGRAM);

704 1 9:2 426 END;

7 1 1 :11 40 CASEIN

702 1 9,'3 408 SETCH^IN( fEASPURP' );|"''*

703 1 9:3 422 EXIT(PROGRAM) ; *' ..

704 1 9:2 426 ENDr, .'*"

705 1 9:1 428 4: BEGIN

MENU calls SHOWMENU to display the list of analytic procedures available.

Then, menu calls KEYN to find out which analytic procedure the analyst wishes

to perform. It then sets up the Apple chaining program to execute the desired

procedure. Then, it branches to that procedure.

t

-30- t '
I 7" 1 9:3 428 SETCAIN('PRINT')I;

707 1 9:3 439 EXZT(PROGMA);

706 1 9:2 443 END;

709 1 9:1 445 5: BEGIN

710 1 9:3 445 REMOVEFASTISSU;" 711 1 9:3 447 SETCHA]NC'PACNATA')| -l''

712 1 9 461 EXIT(PROGRAM)"

713 1 9:2 465 ENDe; 1*714 1 9:1 467 6: BEGIN

715 1 :3 41 RPRADIN

716 1 9:3 469 SYSTERFILES;

717 1 9:3 471 SPSYSTEWILES;

719 1 9:3 473 SUOSYSTERFILES;

719 1 9:3 475 PAANCHOUT"

720 1 9:3 477 MENU;

S721 1 9:3 479 EXIT(MENU);

722 1 9:2 493 END;

723 1 9:1 485 7 BEGIN

724 1 9:3 485 PROPERMAINDISK;

725 1 9:3 487 INSTRUCTIONS;

726 1 9:3 489 HENU;

727 1 9:2 491 END;

728 1 9:1 493 S: BEGN

729 1 9:3 493 QUI;

730 1 9:3 495 MENU;

731 1 9:3 497 EXIT(MENU);

732 1 9:2 501 END;

734 1 9:0 526 END; 735 1 9:0 548 .-

,,, e:

See previous page for program description.

....

-. .

a *a*...*.~.*.,..."'"
il

736 1 33:D I ($SPS)PROCEDURE SUBSYSCREATE;

737 1 33:0 0 BEGIN

1% 736 1 33:1 0 REPEAT

739 1 33:2 0 1:os;

740 1 33:2 4 REPEAT

741 1 33:3 4 I:-1i;-

742 1 33:2 12 UNTIL(IzIO) OR (SUBSYS(12-");

743 1 33:2 38 IF 1*10 THEN I :

744 1 33:3 45 BEGIN

746 1 33:4 138 ANYKEY; I

747 1 33:4 140 EXIT4SUBSYSCREATE)

748 1 33:3 144 END

749 1 33:2 144 ELSE

750 1 33:3 146 GOSUSCREATE;

751 1 33:1 148 UNTIL OK;

752 1 33:0 153 END;

753 1 33:0 170

:-..'

(

SUBSYSCREATE enters subsystem names into the SUBSYSFILE for a given "| :*

system class and system. [

10* -32

-32- rPi
M. 0.

S754 1 I8:D 14(4PS)PROCEDURE GOSUDCREATE;

755 1 18:0 0 IEGIN

756 1 18:1 0 WRITECWhat is the name of your subsystem?');

!7 I 18:1 47 SUbSYS(z:-";

758 1 18:1 65 REPEAT

759 S 18:2 65 READLN(SUBSYSCIJ);

7601 18:2 95 IF SUBSYS[I3x" THEN

7611 18:3 115 EXIT(SURSYSCREATE);

762 1 18:2 119 IF LENGTH(SUbSYS[IJ)<5 THEN fL

763 1 18:3 138 WRITE'Subsystem name must contain at least 5 letters--',CHR(13),

7 64 1 18:3 208 'Please type a new name:,);

765 1 18:2 243 K:-POS" ",SUBSYSCI3);

766 1 18:2 268 IF (K0) AND (K<6) THEN

767 1 18:3 281 IRITE('None of the first five characters of subsystem name can be blonk--',chr(13),

766 1 18:3 369 'Please type a new name:');

769 1 16:1 404 UNTIL (LENGTH(SUBSYSCI])>=5) AND ((K<1) OR (K>5));

770 1 18:1 435 NSUOSYSCI:=I;

771 1 18:1 452 MRITELNCSubsystem 'PSUBSYSEI,' is member number ',NSUBSYSCIJ,

772 1 18:1 549 CHR(13),' of system ',CURSP);

773 1 18:1 602 RESET(SUBSYSLZST,FRAME);

774 1 18:1 615 SEEK4SU&SYSLZST,Ifl

775 1 18:1 626 SUBSYSLISTA.NSUBSYS:-NSUBSYSEIY ;

776 1 16:1 644 SUBSYSLISTA.SUBSYS:&SU&SYSE3I;

777 1 I:1 664 PUT (SUBSYSLIST);

778 1 18:1 672 CLOSE(SUBSYSLISTLOCK);

779 1 18:1 681 URITELN(' ') 780 1 18:1 699 REPEAT

781 1 18:2 699 WRITELN('Mould you like to proceed with the analysis of system class ',CURSYS.

782 1 19:2 793 "|',CHR(l3,'system ',CURSP,' ;subsystem ',SUPSYSCI],'T')

783 1 18:7 98 HELP:=33;

784 1 18:2 902 KEY;

785 1 1:1 904 UNTIL (ANS-'Yl) OR (ANS='N');

786 1 18:1 917 IF ANS='Y ' THEN

797 1 18:2 924 BEGIN

786 1 16:3 924 CUkSUb:xSUBSYSc13;

j 789 1 18:3 941 NCUkSUP:=NSUbSYS1-3;

790 1 18:3 958 PASSNODEA.FLAG1:.0;

791 1 18:3 966 bRANCHOUT;

792 1 19:3 968 MENU;

793 I 18:2 970 END;

GOSUBCREATE is a continuation of SUBSYSCREATE.

-33-

%.

.-. ~~~ le..*
794 1 19:1 970 REP'EAT%

795 1 19:2 970 WRITE('Mould You like to add sort Sub~y~teas to systes 'tCUIRSP#'?') r

796 1 19:2 1052 wELP:=54;

797 1 18:2 1056 KE 799 1 18:1 1056 UNTIL (ANS='Y') Ok (ANS'N');

799 1 18:1 1071 OK:=7RUE;

Bo 18;1 1075 IF ANS='Y' THEN

801 1 18:2 1092 0Ik:xFALSE

902 1 19:1 1092 ELSE%

803 1 19:2 1089 EXIT(SUBSYSCFkEA1E)I -

904 1 18:0 1092 END;

e05 1 1a:o 1110

905 1 19:0 1110 (8$! *5:GREE72.TEXTS)

See previous page for program description.

-34-
806 1 34:1) 1 (*SPSJPROCEDURE OPENSYSTEMFILES;

807 1 34:0 0 BEGIN

809 1 34:1 0 PROPERIMAINDISK;

8 909 1 34:1 2 ($$I--)

810 1 34:1 2 RtESET(SYSLST'APMUTL:AP9SYSTENIS');

811 1 34:1 30 ($$I$) 812 1 34:1 30 IF IORESULT<>0 THEN

813 1 34:2 36 BEGIN

814 1 34:3 36 REMRITE(SYSLIST,'APflUTL: APSYSTElS');

815 1 34:3 66 FOR I:al TO 10 DO

816 1 344 80 BEGIN

87 1 34:5 so SYSLISTA.NSYSTEtt:=I;

818 1 34:5 87 SYSLISTA.SYSTEM:-""

819 1 34:5 97 SEEK(SYSLISTID; 820 1 34:5 108 PUT(SYSLIST);

821 1 34:5 116 IF EOF(SYSLIST) THEN

922 1 34:6 126 BEGIN

823 1 34:7 126 S RXTELN OUT OF DISK SPACE!I');

824 1 34:7 166 ANYKEY; 825 1 34:7 168 EXITO SYSTEMFILES);

826 1 34:6 172 END;

827 1 34:4 172 END; -i 929 1 34:3 182 CLOSESYSLISTL.CK);

829 1 34:3 191 GPENSYS7ENFILES; 830 1 34:3 193 EXIT(OPENSYSTEMFILES) 931 1 34:2 197 END;

832 1 34:1 197 BEGIN

833 1 34:2 197 FOR 1X=1 TO 10 DO

834 1 34:3 211 BEGIN

835 1 34:4 211 SEEK(SYSLIST )1

8 36 1 34:4 222 GET(SYSLIST);

837 1 34:4 230 NSYSTEMECU:xSYSLIST A ASYSTEM;

939 1 34:4 249 SYSTEMLIJ:USYSLISTA.SYSTEM;

939 1 34:3 268 END;

641 1 3481 297 END;

0e42 1 34:0 27, END; -. 43 1 34:0O 306 '.'.

*OPENSYSTEMFILES opens the file containing the list of defined system classes.

If such a file does not exist, GOSYSTE,]FILES creates one.

-35-

.* . i .- * * . -.- .... 7 .... ' . ... 

... ._- ,. __- , ;-_ ._ .. - ., . . . . - : 1,-,:. -c,, . ,. %- . ., .,. , , r ,.- , .,,,
844 1 35:DI 1 (SSP)PROCEPURE OPENSUBFILES;

645 1 35*:0 0 BEGIN

846 1 35:0 0 ($1-$) I

847 1 35:1 0 RESET(SUBSYSLISTFRAME);

849 1 35:1 11 ($614W )

849 1 35:1 11 IF IORESULT0O THEN 10

850 1 35:2 17 BEGIN ,

851 1 35:3 17 REWRITE(SUbSYSLISTFRAME) ; 852 1 35:3 30 FOR :al TO 10 DO

853 1 35:4 44 BEGIN

854 1 35:5 44 SUPSYSLIST^.NSUBSYS:I:;

855 1 35:5 51 SU8SYSLISTA.SUBSYS "

:2;

856 1 35:5 61 SEEK(SUBSYSLISTI);

857 1 35:5 72 PUT(SUBSYSLIST);

859 1 35:5 80 IF EOF(SUBSYSLIST) THEN

859 1 35:6 90 BEGIN

860 1 35:7 90 MRITELNVOUT OF DISK SPACE:!!')L

861 1 35:7 130 ANYKEY;

862 1 35:7 132 EXIT(OPENSUBFILES); 963 1 35:6 136 END; ' 66 136 ND

864 1 35:4 136 END;

865 1 35:3 146 CLOSE(SUDSYSLISTLOCK);

866 1 35:3 155 RESET(SU8SYSLIST*FRAME) ;.

867 1 35:2 168 END; .

868 1 35:1 168 BEGIN

869 1 35:2 168 FOR I:=1 TO 10 DO

870 1 35:3 192 BEGIN

872 1 35:4 182 SEEK(SUPSYSLST) ;

872 1 35:4 193 GET(SUBSYSLIST).

873 1 35:4 201 NSUBSYSEI2:-SUBSYSLISTA.NSUBSYS;

874 1 35:4 219 SUBSYSEI3:SUBSYSLI STA.SUBSYS;

875 1 35:3 239 END;

876 1 35:2 249 CLOSE(SUPSYSLISTL4CK)

9 77 1 35:1 258 END;

878 1 35:0 258 END;

879 1 35:0 276

880 1 3530 276

OPENSUBFILES opens file containing the names of the subsystems for a givenl -

system class and system. If such a file does not exist for the given system

class and system, it creates it.

'a...

-36- a

...... " . "-. . - " . . -.
8 81 1 36: D I 81SPS)PROCEDURE PRE.FSUDCREATE;

682 1 36:0 0 BEGIN

683 1 36:1 0 FRME :uCNCAT('APMuIL:',COPY(CURSYs,15S),COPY(CURSP,1,5),'su6 );

884 1 3631 02 OPENSUILES;

985 1 38:1 84 SUPSYSCREATE;

886 1 36:0 86 END;

867 1 36:0 98

PR PU I'U C E T cal FLE n U S S R AT sncsay

-37
880 1 37:D I (8M)UOCEDUE SYSCkEATE; 889 A 37:0 0 BEGIN

890 1 37:1 0 REPEAT

891 1 37:2 0 1I

892 1 3712 4 REPEAT

893 1 37:3 4 1:1+il;

894 1 37:2 12 UNTIL (I310) OR (SYSTEMEI]z"); V

895 1 37:2 38 IF 1-IO THEN

896 1 37:3 45 BEGIN

897 1 37:4 45 AITELN('SMSkARING SYSTEM IS FULLSS');

898 I 37s4 93 ANYKEY;-

899 1 37:4 95 EXIT(SYSCREATE); r 900 1 37.3 99 END

901 1 37:2 99 ELSE

902 1 37:3 101 BEGIN £

903 1 37:4 101 WRITE('V at is the name of your new class of systems?');

904 1 37:4 159 SYSTEMC13:=";

905 1 37:4 177 REPEAT

906 1 37:5 177 READLN(SYSTENEIJ);

907 1 37:5 207 IF SYSTEH[Iz-" THEN

908 1 37:6 227 EXIT(SYSCREATE);

909 1 37:5 231 IF LENGTH(SYSTEnI))<5 TNEN

910 1 37:6 250 URITE('Systes class name must contain at least 5 characters',

912 1 3735 359 K:=POS(' 'vSYSTEMEJI);

913 1 37:5 384 IF (K>O) AND (K6) THEN

*914 1 37:6 397 WRITELN('None of the first five characters of a system class name can be blank--',chr(13),

915 1 37:6 490 'Please type a new name')I 916 1 .37:4 532 UNTIL(LENGTH(SYSTEhLII)>-S) AND ((K<l) OR (K05)); -'"

917 1 37:4 563 NSYSTENCIf:cI918 1 37:4 580 WRITELN('System class 'SYSTEM[IJ.' has been added to the list of I "

system classes');

919 1 37:4 692 WRITELNt" as system number ',NSYSTEMCI]);

920 1 37:4 754 RESET(SYSLIST,'APNUTL:APNSYSTEIIS')I

921 1 37:4 784 SEEK(SYSLISTI);

922 1 3714 795 SYSLISTA.NSYSTEM:uKSYSTENII

923 1 37:4 813 SYSLISTA.SYSTEN:'SYSTERCI3;

924 1 37:4 833 PUT (SYSLIST)

925 1 37:4 841 CLOSE(SYSLISTPLOCK);

Ii

SYSCREATE enters system class names into the list of system classes.

r:

-38-

............... .....-.. ''',..' '...--......".,,.,.
927 

926 

923 

1 

1 

1 

37:4 

37:4 

3734 

850 

868 

85 

CURSYS:=SYSTEN[I 

NCURSYS:mNSYSTENCIJ;

URITELN( )_

I

929 1 3714 903 REPET 930 1 ? ,37: M,, ,R , ,+o,,ld You, like to def,,,. ,now, ..,...S for System .. Class

SYSTEM I, "?');

931 1 37:5 1002 HELP:.56; 932 37'5 10" KEY

933 1 37:4 1006 UN71L (ANSB'Y') OR (AMSS'N');

934 1 37;4 1021 IF ANS-'Y' THEN

935 1 37:5 1029 BEGIN

936 1 3716 1029 PREPSPCREATE;

937 1 37:5 1030 END

938 1 37:4 1030 ELSE

939 1 37:5 1032 S2;

940 1 37:4 1034 PREPKEY(33,'Uould you like to develop a now class of systems?');

941 1 37:4 1069 IF ANS'Y' THEN

942 1 37:5 1096 OK:zFALSE

943 1 37:4 1096 ELSE

944 1 37:5 1102 EXIT(SYSCREATE)I

946 1 37:1 1106 UNTIL OK;

947 1 37:0 1111 END;

948 1 37.0 1136

, I

See previous page for program description.

3I ,.. - ...+-,

a . ."-*- -- *. .*---. ** *
wC

949 1 5:0 1 (SSPS)PROCEDsURE SYSTERFILESI

950 1 5:0 0 BEGIN

951 1 s: 0 ANSHOL:=' ';:

952 1 S: 4 OPENSYSTENFILES

953 1 5:1 6 REPEAT

954 955 1 1 5:2 10 6 OVER:xTRUE; PAGE(OUTPUT);

956 1 5:2 20 NOATA:=0;

957 1 5:2 24 VRITELN( I have data for the fOllowing classes of human-machine systems:');

958 1 5:2 108 FOR I:=1 TO 10 DO

959 1 5:3 122 BEGIN

960 1 5:4 122 IF SYSTEC3I<>'" THEN 961 1 5:5 142 BEGIN

962 1 5:6 142 WRITELN(' ',NSYSTEflIJ,'. ',SYSTEMCII);

963 1 5:6 224 NDATA:&I

964 1 S:5 224 END;

965 1 5:3 228 END;

966 1 5:2 238 WRITELN(" "1

967 1 5:2 256 IF NDATA= 0 THEN

968 1 5:3 263 BEGIN

969 1 5:4 263 1280,

970 1 5:4 267 MkRTELN(" ... none');

971 1 5:3 297 END

972 1 5:2 297 ELSE

973 1 5*3 299 BEGIN

974 1 5;4 299 REPEAT

975 1 5:5 299 KEYNPREP(33,'lhch system Class would you like to anolyze (type 0

for none of the ebove)?')I

*976 1 5:5 381 IF Is999 THEN

*977 1 5:6 390 BEGIN -- 978 5:7 390 SYS7ENFILES; ~ 979 1 51:7 392 EXIT(SYSTEMFILES);

980 1 5*6 396 END;

*981 1 5:5 396 IF(1<0) OR (1>10) THEN 992 1 5:6 409 URITELNIPLEASE TYPE AN INTEGER BETWEEN 0 AND 10')

983 1 5:4 468 UNTIL (I>=O) AND (1<-10);

984 1 514 481 IF 1<>0 THEN

985 1 5:5 488 BEGIN I %

986 1 5:6 488 IF SYSTEMCI9C'" THEN

987 1 517 508 BEGIN

I~ I

SYSTEMIFILES displays the names of defined system classes and determines

which one the analyst wishes to analyze.

S, - .

9 ..... ..- : 

-40- -
988 5:a 508 VRITELN(NSYSTEMEIJ,' DOES NOT EXIST AT PRESENT'); -

989 1 5:8 577 WRITELN('PLEASE TRY ANOTHER SYSTEM CLASS');

990 1 5:8 628 ANYKEY;

991 1 5:8 630 OVER:"FALSE;

* 992 1 5:7 634 END;

* 993 1 5:S 634 END;

994 A 5:3 634 END;

995 a 5:2 634 IF IO THEN

996 1 5:3 641 BEGIN

997 a 5:4 641 PREPKEY(33,'Iould you like to develop a new class of systems?');

990 a 5:4 696 IF ANSY' THEN

999 1 5:5 703 D9flT

4 100 5:6 703 SYSCRATE"

1001 5:6 705 OVER:=FALSE

o1002 5:5 705 END

1003 a 5:4 709 ELSE

1004 1 5:5 711 BEGIN

1005 1 56 711 PREPKEY(2,'Mould you like to stop for nowT');

1006 1 5:6 746 IF ANS-'Y' THEN

S 1007 1 5:7 755 QUIT

oos 1 5:6 755 ELSE

1009 1 :7 759 BEGIN

1010 1 538 759 WAITELN('There are no other options--so I will present the options again'); -"%"

1011 1 5:S 842 MRITELN('SSSPlease press any key to review the options6*$')j1012 1 5:8 910 480R-8)

1013 1 5:s 910 READ(ANS);

1014 1 5:8 921 (*$Rfl)

1015 1 5:7 921 END;

1016 1 5:5 921 END;

1017 1 54 921 OVER :FALSE;

101e 1 5:3 925 END;

1019 1 5:1 925 UNTIL OVER;

1020 1 5:1 930 CURSYS:-SYSTEMI3;

1021 1 : 948 NCURSYS:-NSYSTEM(IC; 1022 1 5: 965 END; '

*1023 1 5:o 994

:? 14

See previous page for program description. NQ

-41-

-41-
1024 1 1510 I (SSPS)PROCEDUkE SUBSYSTERFILES; 1025 1 15:0 0 BEGIN 1026 1 15:1 o FRAkME:=CONCA7('APNUTL:*tCOPY(CUkSYSI,5)rCGPY(CURSPI 5),'SU&');

' 1027 1 I11 82 OPENSUBF|LES;

. 1028 1 1511 94 REPEAT

, 1029 1 15:2 84 OVER:=TRUE; . 1030 1 J5:2 Be PAGE(OUTPUM) 1031 1 15!2 98 LINEIxCURSP;

1032 1 15:2 105 LLENGTH:m271 ;-

1033 1 I12 109 WRITE(V| have data for the following $ubsystes$ of $ystoo: )

1034 1 15:2 173 SHOWALINE;I "

1035 1 15:2 175 WRIIELNV"') 1036 1 15:2 193 NDAlTA:=O; 1037 1 15:2 197 FOR 1:-l TO 10 DO . --.

1038 1 15:3 211 BEGIN

1039 1 15:4 211 IF SUPSYSEI30>" THEN

1040 1 15:5 231 BEGIN

1041 1 15:6 231 WRITELNV 'o"NSUSSYSE13,', "PSUbSYSEI3);

1042 1 15:6 313 NDATA:zl;

1043 1 15:5 317 END;

1044 1 15:3 317 END; r'

1045 1 15:2 327 URITELN('V |! "

1046 1 15:2 345 IF NDATAwO THEN :

i1047 1 15:3 352 BEGIN

1048 1 15:4 352 VR17ELHV",. none');

1049 1 15:4 382 Sl ,21

1050 1 15:3 382 END 1051 1 15:2 384 ELSE

1052 1 15:3 386 REPEAT. i 1053 1 M54 306 REPEAT

1054 1 15:5 386 KEYNPREP(549'Which subsyotes "ould you like to analyze (type 0 for .

none of the oboyVe)) 105 1 15:5 463 ZF A&V99 THEN

1056 1 15:6 474 BEGIN

1057 1 15:7 474 SUBSYSTERFILES;

105 1 15:7 476 EXIT(SUBSYSTEHFILES)

1059 1 15:6 480 END;

1060 1 1515 480 IF O) OR (1>10 THEN. 1061 1 15:6 493 LRITELN(PLEA TYPE AN INTEGER BETWEEN 0 AND 10')

1062 1 15:4 552 NTIL (I>=O)AND (I101

7.°

SUBSYSTEFILES displays the names of the defined subsystems for a given."-

system."I :

-42-

....... 103 :¢ 1 1532:..' 173 .-...- . .H .0 N.E-. -". . - .. . • . .' .. .,. . . . . . .. . '.;
. -v -w 2 . 1; -j W- v W -- W

1 1063 1 15:4 565 OK:-FhLSE;

1064 1 15:4 569 IF 100 THEN

1065 1 15:5 576 BEGIN

1066 1 15:6 576 OK:TRUE;

1067 1 156 580 IF SUISYSEI]-" THEN

1068 1 s:7 600 BEGIN

1069 1 1S:8 600 IRITELN(NSUBSYSEIJP' DOES NOT EXIST AT PRESENT');

1070 1 IS:8 669 MRITELN('PLEASE TRY ANOTHER SYSTEI');

1071 1 15:8 714 OK:FALSE

1072 1 15:7 714 END;

,I ' 1073 1 15:s 718 END

1074 1 15:4 718 ELSE -

1075 1 15:5 720 BEGIN

1076 1 15:6 720 OK:TRUE;

1077 1 15:6 724 OVERWFALSE;

1078 1 15:5 728 END

1079 1 15:3 729 UNTIL OK;

1090 1 15'2 733 IF 1-0 THEN

1081 1 15:3 740 51;

1082 1 15:1 742 UNTIL OVER;

* 1083 1 15:1 747 CURSUB:xSUBSYSCI;

- 1084 1 15:1 764 NCURSU:=NSUBSYSE13;

1095 1 15:o 781 END;

1086 1 15:0 806

I . | '*.

" See previous page for program description.

-43-

; € 2 o' . *.p'..'. " "o" - * .""* ,'-. .- >- ". . - . . - " ." ". - " '. -,'.• .'.. . " . . ". '- . . * °. -. .- ', k' . .. .". " -. . .
7 .n ~'. T~ . ~1 ., x' W 7.07 Z. T,.7~~ ~*

1087 1 6:1 1(SPS)PROCEDURE SI;

1088 1 6:0 0 BEGIN 1089 1 6'1 0 kfEPKEY(54,'Mould you like to add subsystems to this system?');

1090 1 6:1 54 IF (ANS='Y°

IO091 6:2 67 BEGIN ) OR (ANS='Y') THEN (

1092 1 6:3 67 SUbSYSCREATE;

1093 1 6:3 69 OVER:=FALSE a

1094 1 62 69 END 1

1095 1 6:1 73 ELSE

1096 1 6:2 75 BEGIN

1097 1 6:3 75 PREPKEY(33,'iould you like to process another class of systems?');

1098 1 6:3 132 IF ANS='Y' THEN

1099 1 6:4 139 BEGIN

1100 1 6:5 139 SYSTENFILES;

1101 1 6:5 141 SPSYS7ENFILES;

1102 1 6:5 143 SIJSSYSTENFILES;

1103 1 6:5 145 PASSNODEA.FLGI1=O;

1104 1 6 5 153 BRANCNOUT;

1105 1 835 155 NENU; 1106 1 6:4 157 END;I " 1107 1 6:3 157 PREPKEY42,'Would you like to stop for now?');

1108 1 6:3 194 IF (ANSs'Y') OR (ANS='y') THEN " 1109 1 6:4 207 OUIT ' 1110 16:3 207 ELSE . 111 1 6:4 211 BEGIN

1112 1 615 211 NRITELN('THERE ARE NO MORE OPTIONS--SO I MILL PRESENT OPTIONS LIST AGAIN') 1113 1 6,'5294 MRITELN('SSSPI&ose press any Ney to continue$8');

1114 1 615 352 (8$R-8)

1115 1 6:5 352 REAI(ANS);

1116 1 6:5 363 (S+8)6-

1117 1 6:4 363 END;

1118 1 6:4 363

1119 1 6:3363 OVER:-FALSE;

1120 1 612 367 END;

1121 1 6:0 367 END;

1122 1 610384

Si is a continuation of SUBSYSTEMFILES.

I--

-44-r

,v" %. F ., 

* 4. ** * ** ~ **** 
-. W -4 L - - \s

1123 1 7:0 1 (SSPS)PPOCEPUIE S2; ~ 1124 1 7:0 0 BEGIN

1125 1 7:1 0 REPEAT 1126 1 7:2 0 MAITE('Yom have chosen not to divide system class ',CURSYS9' into systemsp

1127 1 7:2 92 chr(13)9'ouad You~ like to proceed wiith applying the model to this system?');

1128 1 732 179 RELP:.33;

1129 1 7:2 183 KEY I. I1130 1 7:1 183 UNTIL (ANSo'Y') Oft (ANSw.');

1131 1 7:1 193 IF ANSuY' THEN

1132 1 7:2 205 BEGN V1133 1 7:3 205 FILEPMMW'.CNCAT(flHLC0 CPY(CURSYSl5)'SP');

113,11 71 277SEEK(SPSYSLJST,l);

1137 1 7:33286 SPSYSLIST^.MSPSYS:U1;

1136 1 713 291 SPSYSLXSTA.SPSYS~xCURSYS;

1139 1 7:3301 PUT(SPSYSLIST); I'1141 1140 1 7:3 309 CLOSE(SPSYSLISTPLOCK); 1 7:3 319 CuRSP:.CURsYS;

1142 1 7:3 326 NCURSP=1I;

1143 1 7:3 330 FRAME:=CONCAT('APNUTL:',COPY(CURSYS,1,5),COPY(CURSP,1,5),'SUB');

1144 1 7.*3 412 OPENSUSFILES;

1145 1 7:3 414 RESE7(SU9SYSLISTtFRAME)v

1146 1 7:3 427 SEEK(SUBSYSLIST91);

1147 1 7:3 436 SUBSYSLISTA.NsUBsYs:51;

1149 1 7:3 441 SUPSYSLISTA.SUBSYS:nCURSYS;

611149 1 733 451 PUT (SUBSYSLIST);

1150 1 7:3 459 CLOSE(SUBSYSLIST,LOCK);

1151 1 7:3 468 CURSUB8-CURSYSI

1152 1 7:3 475 OCURSUB:=1;

1153 1 7:3 479 PASSNODEA.FLAG1:uO;

1154 1 7:3 467 BRANCHOUTI

1155 1 7:3 4919 "EMU;

1156 1 712 491 END;

1157 1 7:0 491 END;

1160 17058

1161 1 7:0 508

1161 1 7:0 508

S2 is a continuation of SYSCREATE.

.r %

-45-
.. ~.. -. m

1162 1 11I 1 ($$PS)PROCEDURE OPENSPFILES;

1163 1 11:0 0 BEGIN

1164 1 11:0 0 (*$1-*)

1165 1 11:1 0 RESET(SPSYSLISTFILESPNAHE);

1166 1 11:1 11 (81+3)

1167 1 11:1 11 IF IORESULT0O THEN

116 1 11:2 17 BEGIN jk

1169 1 11:3 17 REWRITE(SPSYSLISTFILESPNAME); 1170 1 11:3 30 FOR I:=1 TO 10 DO

1171 1 11:4 44 BEGIN

1172 1 11:5 44 SPSYSLISTA.NSPSYS:=J;

1173 1 11:5 51 SPSYSLISTA.SPSYS:='; 1174 1 11:5 61 SEEK(SPSYSLISTI);

1175 1 ii:S 72 PUT(SPSYSLIST);

1176 1 11:5 80 IF EOF(SPSYSLIST) THEN

1177 1 11:6 90 BEGIN I

1178 1 11:7 90 URITELNVOUT OF DISK SPACE!!');

1179 1 11:7 130 ANYKEY;

1180 1 11:7 132 EXIT(OPENSPFILES);

1181 1 11:6 136 END ; 1182 1 11:4 136 END;

1183 1 11:3 146 CLOSE(SPSYSLISTLOCK);

1194 1 11:3 155 RESET(SPSYSLISToFILESPNANE);

1195 1 112 168 END;

1196 1 11;I 168 BEGIN

1187 1 11:2 168 FE I:z TO 10 DO

1188 1 11:3 182 BEGIN

1189 1 11:4 182 SEEK(SPSYSLISTI);

1190 1 11:4 193 GET(SPSYSLIST);

1191 1 11:4 201 NSPSYS[I]:=SPSYSLISTA.NSPSYS;

1192 1 11:4 219 SPSYS(13:-SPSYSLISTA.SPSYS;

1193 1 11:3 239 END; 1194 1 11:2 249 CLOSE(SPSYSLIST,LOCK);

1195 1 11:1 258 END;

1196 1 11:0 258 END; 1197 1 11;0 276

V

* OPENSPFILES opens file containing the names of all systems for a particular

system class. If such a file does not exist, it creates one.

-46- * .. * . . 2.2. .. 
%

1198 113:D I (c*P$)PROCEDURE SPSYSCREATE; I 11991 1310 0 ,EGIN

1200 1 13:1 0 REPEAT

1201 1 33:2 0 J:-01 4

1202 1 13:2 4 REPEAT

1203 1 13:3 4 I:a1+1.

1204 113:2 12 UNTIL(I-10) OR (SPSYSI'3=");

1205 113;2 38 IF [-10 THEN

1206 113:3 45 bEGIN

1207 113:4 45 kNRITELN('SSWARMNING SYST: NO ROOM FOR MORE SPSYSTEMS FOR SYSTEM CLASS',CURSYS);

1206 1 13:4 137 ANYKEY; 1209 1 13:4 139 EXIT(SPSYSCREATE)

1210 113:3143 END

1211 1 13:2 143 ELSE

12121 13"3 145 GOSPSYSCREATE; e12131 13:1 147 UNTIL OK;-. 12141 152 END;

1215 1 13:0168 NIO

.: t

LA "

SPSYSCREATE enters new system names into the file of system names for a

.- particular system class.

-47-

9. 9.',.

S ..

*,, ", :: F : : : N :: ; + % ... ,..,,.-, ,. .+,,,..,, ,*. 4 .-4
- I "

1216 1 12:0D 1(S$P$)PkDCEDURE OOSPSYSCREATE;

217112:0 0 BEGIN 12181 12:1 0 MRITE('hat is the name of your system?');

2191 12:1 44 SPSYS[IJ:-";

1220 1 12:1 62 REPEAT

221 1 12:2 62 READLN(SPSYSEI3);

222 1 12:2 92 IF SPSYSCII]'" THEN 4 223 1 12:3 112 EXIT(SPSYSCREATE);

224 1 12:2 116 IF LENGTH(SPSYSCIJ)<5 THEN

225 1 12:3 135 WRITE('System name must contain at least 5 letters--',CHR(13),

226 1 12:3 202 'Please type a now name:,);( 2271 12:2237 K:-POS( ",SPSYSEI);

228 1 12:2 262 IF (K>O) AND (K<6) THEN .

2291 12:3 275 WRITE('Noe of the first five characters of subsystem name can be blank--'rchr(13) :.r

L2301 12:3 363 'Please type a new name:');bbn h(

231 1 12:1398 UNTIL (LENGTH(SPSYSEI)>=5) AND ((K<I) OR (K>5)); ( 232 11221 429 NSPSYSCII:a-; I 233 1 12:1 446 WRITELN('System ",SPSYSE1],' is member number ',NSPSYSCIIchr(13),•m -

234 1 12:1 550 " of system class ',CURSYS);

1235 1 12:1 599 RESET(SPSYSLIST,FILESPNME);

1236 1 12:1 612 SEEK(SPSYSLISTI);

237 1 12:1 623 SPSYSLISTA.NSPSYS:aNSPSYS[I3;

238 1 12:1 641 SPSYSLISTA.SPSYS;zSPSYSEI];

1239 112:1 661 PUT (SPSYSLIST);

240 1 12:1 669 CLOSE(SPSYSLIST,LOCK);

241 1 1221 678 URITELN(' '); 242 1 12:1 696 REPEAT! .

2431 12:2 696 WRITE ('Mould you liKe to proceed with the analysis of system class ", I

1244 1 12:2 768 ' ',CURSYS,','tCHR(13),' system 'PSPSYSIJ,'T');

1245 1 12:2 867 HELP:-33;

1246 1 12:2 871 KEY ,

1247 1 12:1 871 UNTIL (ANS='Y') OR (ANS='N');

1248 1 12:1 886 IF ANS='Y' THEN

12491 12:2 893 BEGIN I 1250 1 12:3 893 CURSP:-SPSYSEI]; t 1251112:3911 NCURSP:xNSPSYSCI];

1252 1 12:3 928 SUBSYSTEMFILES;

12531 12:3 930 PASSNODEA.FLAGI:-O; 3 ..

1254 1 12.3 938 BRANCHOUT; I 1255 1 1223 940 MENU;

* GOSPSYSCREATE is a continuation of SPSYSCREATE.

AV -4.

-a -48- - T
*-;.*T 1-7: M 

y47

M26 1 12:2 942 END;

1257 1 1211 942 REPEAT

1259 1 12:2 942 WRITE('Uould you like to add &are systeas to systee class ',CURSYS,?')I

1259 1 12:2 1027 HELP:=56;

1260 1 12:2 1031 KEY

1261 1 12:1 031 UNTIL (ANS='Y') OR (ANS='N');

1262 1 12:1 1046 OK:=TRUE; 1263 1 12:1 1050 IF ANS='Y' THEN 1264 1 12:2 1057 OK:sFALSE 1265 1 12:1 1057 ELSE 1266 1 12:2 1063 EXIT(SPSYSCREATE);

1267 1 12:0 1067 END;

1268 1 12:0 1086

MV'

*1 J

See prvospg o rormdsrpin

* 19

orM
1269 1 16:1) 1 (SSPS)PROCEDURE P'REF'SPCIREATES

1270 1 16:0 0 BEGIN

*1271 1 16:1 0 FILESPNAnE:=CONCAT('APIUTL*',COFYCURSYS,1,5),'SP');

1273 1 16:1 59 SPSYSCREATE;

*1274 1 16:0 61 END;

*1275 1 16:0 74

-50-
4 Hi

1276 1 14:D 1 (*$PS)PROCEDURE SPSYSTENFILES;

1277 1 1410 0 BEGIN

1278 1 14:1 0 FILESPNAME:=CNCAT('APUTL:'CDPY(CURSYS,1,5),'SP')

1279 1 14:1 57 OPENSPFILES;

1280 1 14:1 59 REPEAT

1291 1 14:2 59 OuER:*TRUE;

1282 1 14:2 63 PAGE(OUTPUT)

1293 1 14:2 73 WRITELN('I have data for the following Systems of system class: 'tCURSYS);

1284 1 14:2 160 NDATA:zO;

1285 1 14:2 164 FOR I:= TO 10 DO

1286 1 14:3 178 BEGIN J1287 1 14:4 179 IF SPSYS130-' THEN

1288 1 14:5 198 BEGIN

1289 1 1416 198 NRITELN( 'NSPSYSrI2,'. 'PSPSYS(CI);

* 1290 1 1426 290 NDATA:zl;

- 1291 1 14:5 284 END;-{

1292 1 14:3 284 END;

1293 1 14:2 294 MRITELN(" )

1294 1 14:2 312 IF NDATAaO THEN

. 1295 1 14*3 319 BEGIN

1296 1 14:4 319 NRITELN(" oo, none');

1297 1 14:4 349 S5

1298 1 14*3 349 END

1299 1 14:2 351 ELSE

1300 1 14:3 353 REPEAT *

1301 1 1424 353 REPEAT

1302 1 14:5 353 KEYNPREP(57p'Uhich system would you like to analyze (type 0 for

none of the above)?');

1303 1 14:5 429 IF 1=999 THEN

1304 1 14:6 438 BEGIN

1305 1 14:7 438 SPSYSTENFILES;

" 1306 1 14:7 440 EXIT(SPSYSTERFILES)|

1307 1 14:6 444 END;

1308 1 14:5 444 IF(I<O) OR (1>10) THEN

- 1309 1 14:6 457 MRITELNVPLEASE TYPE AN INTEGER BETWEEN 0 AND 10')

1310 1 14:4 516 UNTIL (I>zO)AND (I<(10)"

1311 1 14:4 529 OK:wFALSE;

1312 1 14:4 533 IF I<>0 THEN %

1313 1 14:5 540 BEGIN

1314 1 14:6 540 OK:=TRUE;

* SPSYSTEMFILES displays the name of the system files and determines which

system the analyst wishes to use.

-51-
1315 1 14:6 544 IF SPSYSCIJ"' THEN

1316 1 14:7 564 BEGIN

• 1317 1 14:6 564 ITELN(NSPSYSLI],' DOES NOT EXIST AT PRESENT');

1318 1 14;, 633 hIITELN(PLEASE TRY ANOTHER SYSTEM');

1319 1 14:8 678 OK:FALSE

1320 1 14:7 678 END;

1321 1 14:5 682 END

1322 1 14:4 682 ELSE

1323 £ 14:5 664 KeIN

1324 1 1496 684 OK:,TRUE;

1325£ 14:6 688 OVER wFALSE;

1326 1 14:5 692 END

1327 1 14:3 692 UNTIL OK;

1329 1 14:2 697 IF 1-0 THEN

1329 1 14:3 704 S5 ,1

1330 1 14:1 706 UNTIL OVER;

1331 1 14:1 711 CURSP:6SPSYS(I];

, 1332 1 14:1 729 NCURSP:-NSPSYSrI3;

1333 1 14:0 746 END;

1334 1 1410 770

i{ See previous page for program description.

2 0 * Se rvospgefrporm decito.. :.

% ft.',

"-52-

.'.i'.~~~ '''".?' " . . . ',. . f't'" ..... ~ .. . .f'- - . ." , ,'. ." "" "" . ." ""... ." ," ..' ... " .".," -".... ". i2:
1335 1 8:D i(mSPs)PROCEDURE SN

1336 0 6:0 0 BEGIN

13371 8:1 0 PREPKEY(57,'Would you like to add systems to this class of systems?'); -7

13381 8:1 61 IF (ANS-'') OR (ANS-'y') THEN

1339 1 8:2 74 BEGIN

1340 1 e:3 74 SPSYSCREATE;

1341 1 8:3 76 OVER.FALSE

1342 1 1:2 76 END

1343 1 0:1 80 ELSE

1344 1 8:2 62 BEGIN

1345 1 8:3 92 IF NSDTA=' THEN 1346 1 8*4 89 $2;t

1347 1 8:3 91 PREPKEY(57,'Would you like to process another class of systes?'); .13481 i :3 148 IF ANS='Y" TH4EN

13491 8:4 155 BEGIN * I 1350 1 8:5 155 SYSTERFILESI ,g* Y

1351 1 8:5 157 SPSYSTEMFILES;

1352 1 8:5 159 PASSNODEA.FLAGI:=0;

1353 18:5 167 DRANCHOUI£

1354 1 8:5 169 MENU;

1355 18:4 171 ENDO

13561 8:3 171 PREPKEY(2,'Would you like to stop for now?');

13571 8:3 208 IF (ANS='Y') OR (ANSz'y') THEN

1358 1 8:4 221 OUIT

13591 8:3 221 ELSE

13601 0:4225 BEGIN

1361 1 8:5 225 URITELN(QTHERE ARE NO MORE OPTIONS--SO I WILL PRESENT OPTIONS LIST AGAIN');

13621 8:5 308 WRITELN('$S8Please press any key to continue*8$'); ;e

1363 1 8:5 366 (ISR-8)

1364 1 8:5 366 READ(ANS);

1365 1 6:5377 (8$R+)

1366 1 8:4 377 END;

1367 1 8:4 377

1369 1 8:3 377 OVER:wFALSE;

1369 1 8:2 381 END;

13701 8:0381 END; 1371 1 8:0 398 -

~1372 1 8:0390

13731 8:0398(SS1 45:GREET3.TEXT$)

1374 1 8:0398

S5 is a contuation of SPSYSTEMFILES.

-53-

%. ._ .

•* 44

.4. 4..-'

-* I .+" :,,",'- , r "-'.'-" . .. ,'.. .4-,". , ,'.-, ,. " - , '., .. .. : . . .,. . . -. •,- . . . - - ,
1375 1 1:o 0 BEGIN

1376 1 i:1 0 DRANCHIN;

1377 1 1:1 111 IF PASSNODA.FLAGI<>I THEN

1376 1 1:2 121 BEGIN

1379 1 1:3 121 HELLO;

1380 1 1:3 123 PAGE(OUTPUT)I

1361 1 1:3 133 PREPKEY(lP'Would you like instructions (type yes or no, then press the

return key)?');

1382 1 1:3 211 IF ANSn' ' THEN

1383 1 1:4 218 INSTRUCTIONS;

1384 1 1:3 220 SYSTENFILES;

1385 1 1:3 222 SPSYSTENFILES;

1386 1 1:3 224 SUBSYSTENFILES;

1387 1 1:2 226 END;-.

1388 1 1:1 226 ,RANCHOUT; .

1389 1 1:1 228 NENU;

1390 1 1:0 230 END.

syte an usse(eetd

-54-

I

M AINPROGRAM: If c old start 1) displays title page, 2) determines which syste m L '"iJ

class/system/and subsystem analyst wants, 3) determines which analytic procedure

teanalyst awants useand 4) brancheSseetdto appropriate analytic procedure for system class, ) :;p

sysem ndsubysem elcte.

1 ' u . °....

-54- e L
WTVV.

PERFORMANCE ITEM PROGRAM (PERFITEM)

* -5

-A7'
.WV LLi Ir

2 1 z:D I (11648)

3 1 i:D I PROGRAM builddataftle;

4 1 a:o 3 (*program to process the performance items*)

5 1 1:0 3 (Ionald 0. Shapiro V2.0 10/25/92*)

6 1 z:o 3

7 28 a:o 3

S 26 2:0 1 PROCEDURE SETCHAINCIYTLE:SYRING);

9 In VD I PROCEDURE SETCVAL(VAL:STRING);

10 29 4:D 1 PROCEDURE GETCYAL(VAR VAL:STRING);

11 23 S:D 1 PROCEDURE SMAPON;

12 29 6:D 1 PROCEDURE SWAPOFF;

13 29 6:D I

14 1 i:3 1 USES CI4AINSTUFF;

15 1 VlD 31

%

These procedures are part of the Apple Computer's CH-AINSTUFF library entry.

The demonstration package uses only SETCtIAIN which causes another program

* to be activated.

-p r

* -56-
" *"- "-- . - y.-'~° .. j"- y. yu'll . " 1 o-.. .' ~J ."WJ m,.r_,ls..)r F r - * ,r P- -. - .- . ., ... .- ,*- -

7>. W6 -L -FD

)~ .4

17 16 IM 3 M8P$ICONST 1 ID 3 OBLIn'The system must be capable of:'; 1? 1 11D 3 O3JLBL2a'The system must Carry out the follouinq activities:';

19 1 0 3 OJLuL3z'The system must produce.;-

20 1 3D 3 0JLDL4u'Performance objectives must be net despit:'-.

21 1 I:D 3 OUJLDLS'Performance objectives most be met despite:'"

22 1 1:I0 3

23 1 l:D 3 FPURLDLI'This system capability allows:.;

24 1 1:0 3 FPURLL2n'The reasons for carrying out this activity are to:';

S25 1 10 3 FPURLIL3='This product will be used by the system to:';

26 1 1:0 3 FPURLIL4'System purposes must be satisfied despite:';

27 1 1:D 3 FPURLBLS='System purposes must be satisfied despite:';

28 1 i:D 3

- 29 1I :D 3 CHARLOLI'For this purpose, the system must have the potential for'';

30 1 13 3 CHARLOL2w'The tasks required to satisfy this activity are to:'; 1 31 1 13 3 CHARLL3a'To realize that product the system oust first produce:'"

32 1 l:D 3 CHARLBL4'Performance characteristics must be acceptable despite:';

33 1 I:D 3 CHARLDL5s'Performance characteristics must be acceptable despite:';

ii

I. .

P.- --

F ' '- ' '.

_ ." ?'...-. 

**'*'* *.~**.4' .. .
35 1 ID 3 (*$P*)TYPE

36 1 1:1 3

37 1 1 D 3 PASSFILE*RECORD

39 1 ID 3 CURSYSCURSPCURSUBPAC:STRNGcO]J;

39 1 ID 3 NCURSYSNCURSPNCURSUDNPC FLAGIFLA0G2,FLA03: INTEGER;

40 1 i11 3 END;

41 1 1:11 3

42 1 UD 3 DATABASEMRECORD -

43 1 1; 3 NTAXAIARRAYEI..43 OF INTEGER;

44 1 1:1 3 TAXAZSTRING1803 *

45 1 lID 3 END; I -.-

46 1 I:D 3 (

47 1 ID 3 NELPFILE*RECORD

4 1 I:D 3 LINE:ARRAY[I..10 OF STRINGC80;"

59 1 1:9 3 E 49 1 1:0 3 EN;I:-

I'-

PASSFILE passes information about 1) system class [CURSYS, NCURSYS], 2)

system ICURSP, NCURSPI, 3) subsystem [CURSUB, NCURSUBI, and 4) aspect

[PAC, NPAC] from one program to another. Flag 1 is used to tell the

GREETING program whether to begin with title page or analytic procedure

list. Flags 2 and 3 are unused. DATABASE contains the performance items.

HELPFILE contains the help commands.

-58-r *'~j~jj§3j :. o

ak!i a , 
51 1 1:D 3 (OSPS)VAR

52 1 1:0 3 XCNARAC 9XFUNPUR9 XOBJEC71VE pPAC oCU1RSYSwC1RSPPCURSUBP ANSWER: STRING[93 SO

53 1 1:0 331 ANSI4OLD PANS2,PANS: CHAR;

54 1 1:0 334 DONEPOK90VERtPOS,NEG:BOOLEAN;

55 1 1:11 339 R,1P12tJ,K,L,I,,NCHARAC,NFUNPUR,NODJECTIVE,NPAC,NCURSYSNCURSP,NCURSUBDINTEOER;

56 1 1WD 354 IMJINECALLPP,LLENTNNLENGTNPGE,JNELP,TEP,LEAVEHELPNSCREE4,NPRINTNDATA t

NCORELAST:ITEGER;

57 1 IMD 367 TSCRTEMIP,CORELAsTEIY:JNTEGEREBJ;

56 1 lID 379 NAMELPFILENAMECOREFILE,NANMEDATAFILE:STRINGCZ43;

59 3 VtD 419 RECLXNE.LINE:STRJNGES03; I*61 -60 1 1:0 500 APMDSKISTRING[83;

1 ltD1 505

62 1 ltD1 505 ASPECT:ARRAYC1..53 OF STRINGE143;

63 1 1:D 545

I64 1 11D 545 SCRATCH:ARRAYE1..203OF STRINGc903;

65 1 1WD 1365 OISCRATCH:ARRAYri..203 OF INTEGER;

*66 1 1:D 1365

67 1 I:D 1385 CORE:ARRAYCI..3003 OF INTEGERES];

6o 1 lt3 2265

70 1 1WD 256; DATANOM~FILE OF DATABASE;

69 1 ltD 2953 CAOEE:ILE OF PANTEGEC;

72 1 1:113404 HELPRNFILE F ELFIi 73 1 11141 RNiET

These strings, arrays and variables are used by this program.

-59-

77 '

p. I
75 1 2:9 1 (SSPS)PROCEDURE CORECLOSE;FORMARD;

76 1 3D I PROCEDURE CNARCREATEGFORWARD;

77 1 4WD I PROCEDURE CNARACTERISTICS;FORWARD;o

79 

78 1 

1 

5:0 

6:D 

1 

I 

PROCEDURE 

PROCEDURE 

PCHARCREATE;FoRARD; 

OBJECTIVES;FORJARD;

V so 1 7:D 1 PROCEDURE FCC;FORWARD;

81 1 SWD I PROCEDURE JNDEX;ORWARD;

32 1 9:D I PROCEDURE DELFUNFORWARD;

63 1 10:W I PROCEDURE DELCARgFORUARD;

64 1 11:0 I PROCEDURE DISPSCRATCH;FORUARD;

35 1 12:D 1 PROCEDURE OBJCREATE;FORIARD;

86 1 13:D 1 PROCEDURE HELPROUTINE;FORUARD I

9 7 1 14:D I PROCEDURE 03J7;FORWAR';

89 1 15:D I PROCEDURE PPUR;FORUARD;

* *~ i isro

69 1 15:D 1 (S61 05:PERFITEM2.TEXT )-

90 1 I:D 1 ARU 

91 1 1:0 4415 INDENT:INTEGER;

92 1 9D 4416 LINEOKMO0LEAN; O 93 1 1:0 4417 LOGLINE:STRINGEC253;

94 1 i:D 4480

95 1 :D 1 PROCEDURE KEYN ;FORWARD;

96 1 17:D I PROCEDURE KEY)FORMARD;

97 1 183:D PROCEDURE LRANCHOUT;FORWARD;

96 1 19:D 1 PROCEDURE REOVJE;FORWARD;

99 1 20:D 1 PROCEDURE PREFIXO;FORIAD;

100 1 21:D 1 PROCEDURE PREFIXF;FORARD;

101 1 22:D 1 PROCEDURE PREFIXC;FORWARD;

102 1 23:D I PROCEDURE ANYKEY;FOWARD;

103 1 23:D I

103 23:D 1 1..-

These procedures are presented later on in this program.

L L .-

'7: .................... .*.v.*.*. .* q -- p-A -- .. * --. . . . -- - - * ---- * --- ~ --- -- - * ... ...- . -..-.-
104 1 24D0 1 (SOPS)PRtDCEDURE KEYNPREP(HLP:INTEOER;NSG:STRING);

105 1 24t0 0 BEGIN

106 1 2431 0 HELPuwHLP;

107 1 24:1 9 VRJTE(MSG)I

109 1 2430 22 END; 11 40 3

::NPE dipasaoeln esgteIclsKY ora ubrfo

F77
111 1 25:D JI (:ISP$)PROCEDURE PREPKEY(H4LP:]NTErGER;MSG:STRING);

113 1 2:1 0 HELP.--HLP|- .-

114 1 25:1 9 REPEAT :

115 1253:2 9 WRITE(MSO) ;

116 2 25:2 20 KEY ; "

19 125:0 5

1

II

.- I.-.

P1EPKEY displays a message then calls KEY to read a letter response from the

keyboard. If a response is not Y, y, N, n, Yes or No, it redisplays the message ,-

and, once again, waits for a response. _'=,

-62- ''1

,' .'",-''. "' :"112. . 1, 2.5.."." D IN', ..... '"" ".' ''.. : .0."" ', , . ." ', . " """".' ""G ''.,, .,.". """
120 1 26:1 1 (S$P$)PROCEDURE PROPERVISKO

121 1 26:0 0 BEGIN

122 1 26:1 0 REPEAT

123 1 26:1 0 (Sol-*)

124 1 26:2 0 RESET(HELPERNAMEHELPFILE);

125 1 26:2 11 (861+8)

126 1 26:2 11 Ka:IORESULT;

127 1 26:2 16 IF K=9 THEN

128 1 26:3 23 BEGIN

4 129 1 26:4 23 PAGE(OUTPUT);

130 1 26:4 33 VRITELN('Pleose reinsert your daot disk into Drive f 2'); 1 131 1 26:4 98 ANYKEY;

132 1 26:3 100 END; ",__

133 1 26:1 100 UNTIL K09;

134 1 26:1 107 CLOSE(HELPER);

135 1 26:0 116 END; -e

136 1 26:0 130

4)L

- PROPERDISK checks to be certain the appropriate subsystem's disk is in

Drive #2.

-63-

-. . -- . .'.... . . *.4 . . ~*~'* 4*o**'-
137 1 27:11 1 (SIP$)PROCEDURE PRNTHELP;

139 1 27:0 0 BEGIN

139 1 27:1 0 DONE:-FALSE;

140 1 27:1 4 REURITE(PRNT,'PRINTER:');

141 1 27:1 25 PAGE(PRNT);

142 1 27:1 35 NRITELN(PRNT,CHR(14),'AnIYtic Process Nodel',CHR(13));

143 1 27:1 97 MRITELN(PRNT,CHR(4),1'rief Help File',chr(I3))'.

144 1 27,1 152 PGE:=2;

145 1 27:1 156 REPEAT 146 1 27:2 156 SEEK(HELPER,PGE);

147 1 27:2 167 SET(HELPER);

148 1 27:2 175 PAGE(PRNT);

149 1 27:2 185 K:ZPGE-1;

150 1 27:2 193 VRITELN(PRNT,'

151 1 27:2 245 0 Paqe ",K);

' 152 1 53 1 1 27:*3 27:2 314 32"8 FOR WRITEL XJ:1 TO ( PRNT#MELPER^. 10 DO Um!Er j3);| .

154 1 27:2 368 IF COPY(HELPERA.LINEE23,2,1O)='conclusion' THEN

155 1 27:3 405 DONE: -TRUE;

156 1 27:2 409 POE:zPGE+I;| " 157 1 27:1 417 UNTILMIONE);

* 158 1 27:1 422 PAGE(PRNT);

159 1 27:1 432 CLOSE(PRNT);

* 160 1 27:0 441 END;

161 1 27:0 458

t ..

PRNTHELP prints the HELP file on the printer. It is called by IlELPROUTINE.

-64-

4. .. - .. * . .- .. .- -- *....-..............- . .... .. ........- ..- ...... ......... . •.- . . .- • . . .. -. , -. .. "
16 1 13:10 1 (I6P*)PROCEDURE HELPROUTINEI t63 1 13%0 0 BEGIN

f165 1 13:1 0 RESET(MELPER,'45:HCLP'); 166 1 13:1 19 (*6140)

167 1 13:1 19 I:-IORESULT;

168 1 13:1 23 IF (<>O) THEN

169 1 13:2 30 DEGIN

170 1 13:3 30 PAGE(OUTPUT);

171 1 13:3 40 WRITELNCUNFORTUNATELY THE HELP FILE IS NOT AVAILAB'LE ON YOUR DISK');

172 1 13:3 118 IRITELN(' ',

173 1 13:3 136 MRITELN('PLEASE PRESS ANY KEY TO CONTINUE PROCESSING');

174 1 13:3 199 READ(ANS);

175 1 13:3 210 EXIT(HELPROUTIHE);

176 1 13:2 214 END;

177 1 13:1 214 1 1s0;

178 1 13:1 218 POE:*HELP41;

179 1 13:1 226 DONE:"FALSE;

180 1 13:1 230 REPEAT 181 1 13:2 230 SEEK(HELPER#PGE);

182 1 13:2 241 GET(HELPER);

183 1 13:2 249 PAGE(OUTPUT);

184 1 13:2 259 GOTOXY(73,0);

195 1 13:2 264 K~xPGE-1; 186 1 13:2 272 MRITELN'Pae ',K);

197 1 13:2 309 GOTOXY(OO);

198 1 13:2 314 FOR Jl1 TO 10 DO

199 13:3 320 WRITELN(HELPER^.LINEEJ3) .y

190 1 13:2 368 IF COPY(HELPERA.LINEE23p2rlO)=conclusion" THEN

191 1 13:3 405 DONE:,TRUE;

192 1 13:2 409 WRITELNU ')

193 113:2 427 WRITELN('SSIPLEASE PRESS RETURN KEY TO VIEW NEXT PAGE*S*'); 194 1 13:2 496 WRITELN('***PLEASE TYPE PAGE NUIBER AND PRESS RETURN KEY TO VIEW .'

ANOTHER PAGE,,,,' );

19 1 13:2 589 WRITE (' PLEASE PRESS ESC AND RETURN KEYS TO ESCAPE HELP ROUTINE** $');

196 1 13:2 664 PGE:uPOE+1;

197 1 13:2 672 (*6R-t)

198 3 13:2 672 ANSWER:*, : 199 1 13:2 699 READLN(NSWER);

200 1 13:2 709 0oge(output);

41

HELPROUTINE displays appropriate help commands when it is called by KEY or

KEYN. HELPROUTINE knows which HELP to display because the calling program "2. i places the appropriate help page number into HELP. Once the analyst sees the

first help message, he/she can ask for other help messages by typing in the page number of the desired help messages. Note that the HELP file is made by

editing a series of files (HELPI . . . HELPN) using the Apple editor. Then,

they are processed by the BLOCKHELP program (see Chapter VIII). The HELP

file produced by BLOCKHELP is suitable for use with the HELPROUTINE.

HELPROUTINE "knows" it has hit the last page of the file because the word

"conclusion" appears on the second line of the last page.

-65-

, ,, . .,' "* ."-. .. ,,..". ...... .V .1 ... .. . . * . .
201 1 13:2 718 IF ORDANSWEREM)-27 THEN

202 1 13:3 726 BEGIN

203 1 13:4 726 CLOSE(MELPER);

204 1 1314 735 PROPERDISK; 205 1 13:4 "37 ($00*)

206 1 13:4 737 EXIT (HELPROUTINE);

207 1 13:4 741 MOR-$)

209 1 13:3 741 END;

209 1 1332 741 IF (ANSWERI2>M'O') AND (AKSWERCI)<u'9') THEN

210 1 13:3 756 BEGIN

211 1 13:4 756 PGE3.ORDANSdERC1)-46;

212 1 13:4 765 IF (ANSWERC23>w'0') AND (ANSER[23<='9') THEN

213 1 13:5 790 PGEuPGE*10 * ORD(ANSWERC23)-4. -

214 1 13:4 795 POE:-PGEI;

215 1 13:4 603 IF PGE<2 THEN "1

216 1 13:5 310 PGE:z2;

217 1 13:4 314 DONE:-FALSE;

218 1 13:3 819 END;

219 1 13:1 818 UNTIL (DONE) AND ((AN9SERCI3('0') OR (ANSWER[IJ>'9',);

220 1 13:1 637 PAGE(OUTPUT);

221 1 13:1 947 PREPKEY(2p'Would you like to print the help filel);

222 1 13:1 B91 IF A€NS'Y' THEN

223 1 13:2 898 BEGIN

224 1 13:3 698 KEYNPREP(2,'Hoo cony copies? ')

225 1 13:3 921 FOR N:=l 70 I DO

226 1 13:4 937 PRNTHELP; ,

227 1 13:3 949 MRITELN(DONE')| ;. .

228 1 13:2 973 END; .

Z2Y 1 13:1 973 CLOSEHELPER);

230 1 13:1 982 PROPERDISK;

231 1 13:1 984 (4R0*)

232 1 13:0 984 END;

233 1 13:0 1004

*See previous page for program description.

** *-* -*, ****. .,,.-. -66- '
234 1 170 I (sisP)PROCEDUR KEY;

235 1 17:0 0 BEGIN

236 1 17:0 0 (*S-*)

237 1 17:1 0 ANSWER:=' 'y

238 1 171 24 REPEAT

239 1 17:2 24 READLN(ANSWER)l

j 240 1 17:2 43 ANS:-ANSVER11C;

241 1 17:2 so If (ANS<;-'Y')ANII(ANS<)'N')ANII(ANS:>'H')AND(ANS<>'Y')AND

242 1 17*2 73 (ANS<'n')ANI(ANS,>'h') THEN

243 1 17:3 67 MRITELN('PLEASE RESPOND YES OR NO!'); .244 1 17:2 132 IF ORD(ANS)>90 THEN .

245 1 17:3 139 BEGIN

246 1 17:4 139 112:-ORD(ANS)-32;

247 1 7:4 147 ANS:,CHR(Z2);

246 1 17:3 153 END;

249 1 17:1 153 UNTIL (ANSu'Y') OR (ANS2'N ') OR (ANS-'H')|

250 1 17:1 172 (B$R+*)

251 1 17:1 172 IF ANSo'N' THEN

252 1 17:2 179 HELPROUTINE ;

253 1 17:0 191 END;

254 1 17:0 196

SKEY reads a letter response from the keyboard. If response is 1) y or Y, it places

a Y in ANS and returns to calling procedure; 2) n or N, it places an N in ANS

and returns to calling procedure; 3) h or 11, it calls the HELP routine, places an 11 in ANS and returns to calling program; or 4) any other key-it displays PLEASE

RESPOND YES OR NO and awaits a Y, N, H, y, n or h response. NOTE: Only. VT-_q

the first character/line is processed. The rest is ignored.

-67-
-- 7tT T L 

255 1 1623 1 (SPS)PROCEDURE KErN; I

256 1 16:0 0 BEGIN

257 1 16:0 0 ($lR-$)

258 1 16:1 0 ANSUER' #I

259 1 16:1 25 REPEAT

260 1 1622 25 REPEAT

261 1 16:3 25 READLNANSWER);

262 1 1633 44 IF LENGTH(ANSWER),O THEN

263 1 16:4 52 VRITELN('Pleose enter the integer ooin');

264 1 16:2 102 UNTIL LENGTH(ANSWERK)o;

265 1 16:2 110 ANS:aNSWERC1];

266 1 16:2 117 ANS2:=ANSE2 [2);

267 1 16:2 124 If (ANS'H') OR (ANS.'h') THEN I

268 1 16:3 137 BEGIN

269 1 16:4 137 NELPROUTINE5"

270 1 16:4 139 I:=999;

271 1 16:4 145 EXIT(KEYN -

272 1 16:3 149 END;

273 1 16:2 149 II~xOAD(ANS)-48;

274 1 16:2 157 II2:Z-1;

275 1 16:2 162 112:-ORDANS2)-48;

276 1 16:2 170 IF (11<0) OR (11>?) THEN

277 1 16:3 193 WRITELN('PLEASE RESPOND WITH AN INTEGER!');

279 1 16:1 247 I:zI1; .

280 1 16:1 253 IF (112>z0)AND(II2<z9).THEN

281 1 16:2 266 I:-ll*1I12;

282 1 16:2 278 (*$A+*) , 293 1 16:0 278 END;

294 1 16:0 294

KEYN reads a 1 or 2 digit response from the keyboard and places it into 1. If

an H or an h are typed in, it places a 999 in I and calls the HIELP routine. If

more than 2 characters are typed, only 2 characters are read. The rest are

ignored. If the character(s) are not positive intergers, KEYN will display an

appropriate warning and wait for a response.

5.y-.

e- e ';.+

5*-,%+ .

.ii9esos KENrasaIo rmtekyor.ndpae tit ,I -

an init Hor n lacs h re a ype 99 n I nd all theHEL rotine If| -

moeta5%hrcesaetpd ny2chrcesaera.Ters rI - igoe..ftecarce ) r o pstv itresKY il ipaya .

S • .5

-, C . S*. ,. . " . ..- . . .. . ,.-. . , . . . . , . . . . . . i !.

",2 ;'2-.:;,-2..-. .. ... - '5'*-- . ... .. .. **. .. .-. ; -.. ..... -.... .... % .: . ... - 4 -
I-23M 1 23: 1 (SSPS)PROCEDURE ANYKEY;

236 1 23:0 0 IEGIM

267 1 23:1 0 URITELN( 'I;

236 1 23:1 to WIJTELNM('$ Please press ony Key to continue *SS')I

209 1 23:1 73 SSR-)

290 1 23:1 78 READ(ANS);

291 1 23:1 39 ($$R+*)

292 1 23:0 39 EnII;

293 1 23*0 102

g.7

.r. .

% '

iN40

. ; I 

:'; :;

*ANYKEY displays "Please Press any Key to Continue" then it awaits a Keypress

before returning control to the calling procedure.

~. **,

"."....................P * . . ..- . ..**,- -. . * . . . . ..-. ... .. '-.
294 1 8:3 1 (8sP)PROCEDURE IRANCHOUT

295 1 18:0 0 BEGIN

296 1 10:0 O (1-8)

297 1 10:1 0 REWRITE(PASSNODE,"PASSTHRU') ; 293 1 18:1 19 (0614) 29 1 10:1 19 IFIORESULT<>0) THEN

300 1 18:2 25 WRITE('SERIOUS ERROR -- NO FILE PASSTHRU AT BRANCHOUT')

301 1 16:1 83 ELSE

302 1 18:2 65 BEGIN 303 1 18:3 95 PASSNODEA .•CURSYS: -CURSYS;|,

304 1 18:3 94 PASSNODEA.CURSP:=CURSP; |

305 1 18:3 103 PASSNOIEA.CURSUP:zCURSUP; i

306 1133 112 PASSNODEA.PAC:,PAC C;

307 1 18:3 120 PASSNODEA.NCURSYS:-HCURSYS;

306 1 16:3 130 PASSNODEA.NCURSP:=NCURSP;I

309 1 16:3 140 PASSNODEA.NCURSUB:uNCURSUR; -

310 1 16:3 150 PASSNOPEA.NPAC:=NPC;

311 1 10:3 160 PASSNODEA.FLAGI:-1;

312 1 18:3 169 PUT(PASSNOE); 313 1 18:3 176 IF EOF(PASSNODE) THEN I -' 314 1 16:4 166 WRITELN(OUT OF DISK SPACE WHILE WRITING PASSTHRU');

315 1 16:3 246 CLOSE(PASSNODELOCK);

316 1 18:2 255 END; 1

317 1 19:0 255 END;

318 1 18:0 270

BRANCHOUT loads the PASSTHRU file with appropriate data for use by called i - '

programs.l +"" --7"IF+

* lods BRNCHO te PASTHU T fie wih apropratedatafor se b caled

. mr " - + -" " . IIII +,4l . 4.. 
t319 1 20:11 1 (16O)PROCERE PRANCNIN;

320 1 20:0 0 BEGIN

321 1 28:0 0 MI6-8)

*322 1 2911 0 RESET(PASSNODEvPASS7HRLP

*N323 1 28:1 19 48614*) T

326 1 29:3 25 REWRITE(PASSNODEP'PASSTRU');

327 1 20:3 46 PASSNOVEA.CURSYS:m;

329 1 26:3 56 PASSNOPEA.CtJRSP:8";

329 1 20:3 66 PASSNODE4.CURSUP:uI; 330 1 26:3 76 PASSNODEA.Phe:m";

331 1 2923 04 PASSNOEA.HCuRSYS:80; .

-332 1 29:3 92 PASSNoDEA.NCURSP:KO;

333 1 28:3 100 PASSMODEA.NCRSUP:80

~;1334 1 28:3 109 PASSNODEA.NPAC:w.0

335 1 29:3 116 PUT(PASSNODE);

336 1 29:3 124 IF EOF(PASSNODE) THEN

337 1 29:4 134 IIRITELt4'OUT OF DISK SPACE WHILE WRITING PASSTHAU')

336 1 26:3 194 CLOSC(PASSNODEPLOCK);

339 1 26:3 203 RESEI(PASSNODE*'PASSTHRU')

340 1 29:2 224 END;

341 1 28:1 224 GET(PASSMOVE)# -

343 1 29:1 241 CURSP:PASSoDEA.CUF(SY;

342 1 29:1 231 CURSY:aPASSNODE A CURSP;

344 1 28:1 250 CURSUV:uPASSNODEA.CURSUP;

345 1 29:1 259 PAC:*PASSNODE4.PAC;

346 1 29!1 267 CSYsPSRDANRY;

*347 i 28:1 276 MCRP-ASOE.CRP

348 1 28:1 295 RCURSUIE:xPASSNODEA.NCuRSUP;

349 1 28:1 294 RPAC:zPASSNOVE4.NPAC;

350 1 29:1 303 CLOSE(PASSNODE); y

351 1 209:0 312 ENI'

352 1 28:0 326

-71
vVs

353 1 29:: 3 ($PS)PROCEDURE INLINE;

354 1 2:0 o BEGIN ir

355 1 29*, 0 REPEAT

356 1 29:2 0 READLN(LONGLINE);

357 29:2 20 LINEOK:-TRUE;9

356 1 29:2 24 IMaLENOTH(LONGLINE)'

4359 1 29:2 32 IF M>60 THEN N .1

360 1 2913 39 BEGIN

361 1 29:4 39 NRITELN('M*WARNING LINE CONTAINS OVER 80 CHARACTERS$$');

362 1 29:4 103 WRITELN(' '), I

363 1 29:4 121 WRITELN('DO YOU WISH TO TRUNCATE TO 90 CHARACTERS?");

*364 1 2914 192 REPEAT

365 1 29:5 182 HELP:=39;

366 1 29:5 186 KEY

367 1 29:4 186 UNTIL (ANS='Y') OR (ANS='N')

368 1 29:4 201 IF ANSu'N' THENI

369 1 29:5 209 BEGIN

370 1 29:6 208 LINEOK:=FALSE;

*371 1 29:6 212 WRITELN('PLEASE RE-ENTER LINE:');

372 1 29:5 253 END

373 1 29:4 253 ELSE

374 1 29:5 255 Mco8;

375 1 29:3 259 END;

376 1 29:1 259 UNTIL LINEOK; . 377 1 29:1 264 INLINECALL:=INLINECOWLL+I;

379 1 29:1 272 IF INLINECALL>25 THEN

379 1 29:2 279 BEGIN

380 1 29:3 279 URITELN('WARNING: You have entered over 25 new performance items',

391 1 29:3 346 chr(13),' during this session. This is the limit allowed in the',

382 1 29:3 424 chr(13)1' demonstration system. To enter more, please Select a',

383 1 29:3 501 chr(13),' Different Analytic Procedure. This will re-initialize', .

384 1 29:3 579 chr(13),' the stock pointer and allow you to enter more items!');

365 1 29:3 663 ANYKEY;

396 1 29:2 665 END;

*397 1 29!1 665 SCRATCHIZ2*COPY(LONGLINE,,);j

*398 1 29:0 694 END;

399 1 29:0 714

!%%

INLINE accepts up to 80 characters of text. If more than 80 characters are

specified, it asks if it ought to ignore additional characters. If told to, it does. "

Otherwise, it allows analyst to re-enter the line.

-I72

% .

a 4

a..* ai .. . . . . - " i %r a°

*,* *...,..... ..- ** a.-.*.N*:.*.'**. .. . .. .
390 1 30D 1 (SSPS)PROCEDURE SHOUALINE: 

V

391 1 30:0 0 BEGIN

392 1 30:1 0 NLE"GTH:,LENGTN(LINE);

" 393 1 30:1 6 IF NLEHGTH<2 THEN ".

394 1 30:2 15 EXIT(SHOUALINE);

395 1 30:1 19 WHILE (LINE[NLENG7H3 ') AND (NLENGTH>1) DO

396 1 30:2 37 NLENGTH:uNLENGTH-1;

397 1 30:1 47 IF NLENGTH<.2 THEN

398 30:2 54 EXIT(SHOUALINE);

399 1 30:1 58 IF NLENGTH<LLENGTH THEN

400 1 30:2 67 BEGIN

401 3 30:3 67 NRITE(LINE);

402 1 30:3 79 EXIT(SHOUALINE).

403 1 30:2 83 END;

404 1 30:1 83 LU-LLENGTH;

1 405 1 30:1 89 WHILE (LINEEL3<' AND (L>1) DO

406 1 30:2 107 L'-L-1;

407 1 30:1 117 L:-L-1;

406 1 30:1 125 IF L>1 THEN

409 1 30:2 132 BEGIN

410 1 30:3 132 REGLINE:-COPY(LINEIL);

3 411 1 30:3 151 NRITELN(REGLINE);

412 1 30:2 171 END;

413 1 30:1 171 L:-L42;

414 1 30:1 179 NLENGTH:*NLENGTH-L+I|

415 1 30:1 191 IF RLENGTH<1 THEN

416 1 30:2 199 EXIT(SHOWALINE); "V

417 1 30:1 202 FEGLINE:=COPY(LINE,L,NLENGTH);

418 1 30:1 223 WRITE(' ',rEGULNE);

419 1 30:1 253 PC:*PC+I;

420 1 30:0 261 END;

421 1 30:0 278

SHOWALINE displays text on the screen. If, by chance, the text is longer than

the amount of space available on the current line, the display continues onto

a second line.

-73-

:. . . . .. . .. - * . * * ' *% V V . -.

~ *V ~ ~ .*.2 * ,
422 1 31D (SP$)PROCEDURE PRINTTOP|

423 1 31:0 0 BEGIN

424 1 31:1 0 u:-LENOTH(CURSYS);

425 1 31:1 7 IF H>16 THEN

426 1 31:2 14 N-161

427 1 31:1 18 LINE:zCOPY(CURSYS,1,N);

420 1 31:1 36 VRITE(PRNTr'',LINE,' Systems');

429 1 31*1 78 N:-6-LENGTH(CURSYS);

430 1 31:1 87 FOR L:-I TO N DO

431 1 31:2 103 URITE(PRNT,' );

- 432 1 31:1 123 H'=LENGTH(CURSP);

433 1 31:1 130 IF N>16 THEN

* 434 1 31:2 137 M216;

435 1 31?1 141 LINE:=COPY(CURSP,1,N)"

437 1 31:1 181 N:=l6-LENGTH(CURSP);

438 1 31il 190 FOR L= TO N DO

439 1 31:2 206 wRrTE(PRNT,' ')

440 1 31:1 226 MULENGTH(CURSUB).

441 1 31:1 233 IF H>16 THEN

442 1 31:2 240 M:=16;

443 1 31:1 244 LINE:=COPY(CURSUP,1,N)

444 1 31:1 262 MRITE(PRNT,'$',LINE);

445 1 31:1 294 N:=16-LENGTH(CURSUP);

446 1 31:! 293 FOR L:xl TO N DO

447 1 31:2 309 URITE(PRNT,' 448 1 31:1 329 lIR-]TELN (PFkNT, ' I', PAC ); 449 1 31:1 359 IF NPRINT'1 THEN

450 1 31:2 366 WRITELN(PRNT,'Ob.jective:E',NOOJECTVE, '3',XOJECTVE);

451 1 31:1 431 IF NPRINT'2 THEN 452 1 31:2 438 WRITELN(PRNT, "Fctl Prp$ :E[',tNFUNPUR, "3', XFUNPUR) ; 453 1 31:1 503 VRITELN(PRNT,' )"

454 1 31:0 521 END;

455 1 31:0 540

o..' '-9..

A

I

PRINT-TOP prints the current system class, system, subsystem, etc., on the

printer. I i,

-74

'p

74- r

*, -, . ... . - . . .. . . . ....". . . . . . *", '-**• . o°-•...".. -. •,%.. ° % , , +o+o..o ." + ." . .. +. %. - . , -.- * ., . . . . . ." . "" .
456 1 3223 t ISSPI)PROCEDURE PRIN7SCRM;

457 1 32:0 0 BEGIN

458 1 32:1 0 REURITE(PRNT,'PRINTER: );

459 32:1 21 PAGE(PANT);

460 1 32:1 31 PRINTTOP;

461 1 32:1 33 CLOSE(PRNT);

462 1 32:1 42 CLOSE(OUTPUT)|

463 1 32:1 51 REURITE(OUTPUT,'PRINTER:');

464 1 32:1 72 IF NPAINTaI THEN

465 1 32:2 79 BEGIN

466 1 32:3 79 WRITE('Objectives--') N

469 1 32:2 105 END; - 467 a 32:3 103 PREFJXO2

469 1 32:1 105 IF NPRINT2 THEN

470 1 32:2 112 BEGIN

471 1 32:3 112 URITE('Functionol purposes--');

472 1 32:3 145 PREFIXF47 1 32:2 147 END' S474 1 32:1 147 IF NPRIMT-3 THEN 475 1 32:2 154 BEGIN

476 1 32:3 154 WRITE('Chorocteristics--');

S477 1 32:3 183 PREFIXC;

478 1 32:2 185 END;

479 1 32:1 195 CLOSE(OUTPUT);

480 1 32:1 194 REMRITE(OUTPUT,'CONSOLE:');

481 1 32:1 215 REWRITE(PRNT,'PRINTER:');

482 1 32:1 236 WRITELH(PRNT,' '); • 483 1 32:1 254 FOR K:,i TO 20 DO

484 1 32:2 268 BEGIN

485 1 32:3 268 IF SCRATCH[K3<>" THEN

486 1 32:4 288 BEGIN

487 1 32:5 288 NDATA:sl;

488 1 32:5 292 WRITELN(PRNT,' ",NSCRATCH[K",', ',SCRATCHEK])

489 1 32:4 370 ENDI

490 1 32:2 370 END;

491 1 32:1 380 IF NDATAz0 THEN

492 1 32:2 387 NAR7ELN(PRNTt'I hove no dote at this time!!!!');

493 1 32:1 439 CLOSE(PRNT);

494 1 32:0 448 END;

495 1 32:0 462

PRINTSCRN prints the performance items currently being displayed on the screen.

-75-

_-- i'..-.2. ..-.- .-: .. -". " .-t .:+.-.-. ...- '. "..'.. . _ - .. .. -....- .. ... , . -. ." _ _-.- ., - ....- : -....... . . .- , .,. .. ... ... . -" .- 
496 1 33,D 1 (StP)PROCEPURE TOPSCREEN;

497 1 33:0 0 BEGIN 498 1 33!1 0 PMGECOUTPUT) ; J'-

499 1 33:1 10 f:=LENGTH(CURSYS);" *.

500 1 33:1 17 IF NH16 THEN A;.

501 1 33:2 24 M:=16; ,-..y-..

502 1 33:1 28 LINE:=COPY(CURSYSt1,N); A,

503 1 33:1 46 WRITE(S',LINE,' Systeas');

504 1 33:1 8 GOTOXY(26,0); -,

505 1 33:1 93 M:-LENGTH(CURSP);

506 1 33:1 100 IF M>16 THEN '-

507 1 33:2 107 M:=16; .

509 1 33:1 111 LINE":COPY(CURSP,1,);

509 1 33:1 129 WRITE('*',LINE);

510 1 33:1 151 GOTOXY(44,0);

511 1 33:1 156 N:-LENGTH(CURSUB);

512 1 33:1 163 IF N>16 THEN

513 1 33:2 170 M:=16;

514 1 33:1 174 LINE:=COPY(CURSUB, 1,-);

515 1 33:1 192 WRITELN('*',LZNE);

516 1 33:1 222 GOTOXY(62,0);

517 1 33:1 227 WRITELN('*',PAC);

519 1 33:1 257 M:=LENGTH(XOBJECTIVE);

519 1 33:1 265 IF M>67 THEN M:=67;

520 1 33:1 276 LINE:=COPY(XOBJECTIVE,1,N);

521 1 33:1 295 IF NSCREEN>M THEN

522 1 33:2 302 WRITELN('ObjectiveE',NOJECTIVE,':',LINE);

523 1 33:1 370 N:=LENGTH(XFUNPUR); I

524 1 33:1 378 IF N>67 THEN N:=67;

525 1 33:1 389 LINE:COPY(XFUNPUR,1,N);

526 1 33:1 408 IF NSCREEN>2 THEN

527 1 33:2 415 WRITELN('Fct1 PrpsC',NFUNPUR,':',LINE)

528 1 33:1 483 URITELNC '1)

529 1 33:0 501 END;

530 1 33:0 514

TOPSCREEN displays the system class, system, subsystem, etc., on the top of

the display screen.

-76- I
531 1 34:0 1 $PI)PROCEDURE OPENCOREFILE; 532 5 33 1 ,1 34:0 W-0 0 0 BEGIN (*$1-$)

534 1 34:1 0 RESET(COREF!LENANECOREFJLE); 535 1 34:1 11 M85+$

536 

537 

1 

1 

34:1 

34:1 

11 

16 

11-ORESULT 

IF 1<>O THEN

I

538 1 34:2 23 BEGIN

539 1 34:3 23 REURITE(COREFILE,NAMECOREFILE);

540 1 34:3 36 FOR 3:ul TO 300 DO

541 1 34:4 52 BEGIN

542 1 34:5 52 CORE13:-O;

543 1 3435 79 COREFILEA!=CORE(I);

544 1 34:5 107 PUT(COREFILE); .

545 1 34:5 115 IF EOF(COREFILE) THEN

546 1 34:6 125 BEGIN

547 1 34:7 125 WRITELNVOUT OF DISK SPACE')

548 1 34:7 165 ANYKEY; 549 1 34:7 167 BRANCHOUT;

550 1 34:7 169 SETCHAIN('GREETING');

551 1 34:7 183 EXITtPROGRAN);

552 1 34:6 187 END;

553 1 34:4 187 END;

* 554 1 34:3 197 CORELAST:-O;

555 1 34:3 212 NCORELAST:=O;

556 1 34:3 216 COREFILEA:=CORELAST;

557 1 34:3 232 PUT(COREFZLE);

558 1 34:3 240 CLOSE(COREFILELOCK)

559 1 34:2 249 END

560 1 34:1 249 ELSE

561 1 34:2 251 BEGIN

562 1 34:3 251 FOR I:=1 TO 300 DO

563 1 34:4 267 BEGIN

564 1 34:5 267 GET(COREFILE);

565 1 34:5 275 CORE[13:=COREFILE A;

566 1 34:4 303 END;

567 1 34:3 313 GET(COREFILE);

568 1 34:3 321 CORELAST:=COREFILE^; C-?

569 1 34:3 337 NCORELAST:=TRUNC(CORELAST);

570 1 34:3 350 CLOSE (COREFILE)

571 1 34:2 359 END;

572 1 34:0 359 [ND;

573 1 34:0 380

.-

OPENCOREFILE reads the index to the performance item file into core.

'!

-77-

77,
574 1 35:D 1 (ISP*)PROCEDURE OPENOBJFILE;

575 1 35:0 0 BEGIN'

576 1 35:0 0 (*$1-*

577 1 35:1 0 RESET(DATANODENANEDATAFILE);

578 1 35:1 11 (*$1+*)

579 1 35:1 11 IF IORESULT<>0 THEN

580 13:2 17 BEGIN

501 1 35:3 17 WRITELN('Please bear with me while I mbake room for your '

582 1 35:3 76 'analysis on the disk,);

583 1 35:3 116 REURITE(DATANODEPWAMEDAThFILE);

584 1 35:3 129 FOR 1:-l TO 4 DO

585 1 354 13DATANODEA.NAAI:0

596 1 35:3 169 FOR 1:-l TO 300 DO

587 1 '35:4 184 BEGIN

598 1 35:5 194 DATANaDEA.TAXA:="~;

589 1 35:5 194 SEEK(DATANODE,I);

590 1 35:5 205 PUT(DATANODE);

591 1 355 23IF EOF(DATANODE) THEN

52 1 35:6 223 BEGIN

593 1 35:7 223 VRITELNVOUT OF DISK SPACE'!!1

594 1 35:6 263 END; 595 1 354 263 ED

596 1 35:3 273 CLOSE(DATANODE,LOCK);

597 1 35:3 282 RESET(DATANODE,NANEDATAFILE)

599 1 35:2 295 END;

599 1 35:0 295 END;

600 1 35:0 314 I601 1 35:0 314

602 1 35:0 314 MI1 *5:F'ERFITEM2.TEXT 4

603 1 35:0 314

604 1 35:0 314

OPENOBJFILE creates the performance item file if it does not already exist.L

-78-- r
605 1 22:0 I 3$P$)PROCEDURE PREFIXC;

606 1 22:0 0 BEGIN

606 1 22:1 5 1: WR17ELN(CI4ARLDLI);

609 1 22:1 84 2: WRITELN(CHARLDL2);

610 1 22:1 157 3: WRITELN(CHARLOL3);

611 1 22:1 233 4: WRITEL(CHARLPL4);

612 1 22:1 310 52 URITELN(CHARLPLS);

613 1 2231 367 END;

614 1 22:0 404 END;

615 1 22:0 420

:

'-79

.; S.

~- . " .

° •.

PIUICdsly etnepeie o hrceitc 2..

I.;.
616 1 21:D 1 ($$P$)PROCEDURE PREFIXF;

617 1 21:0 0 BEGIN v611 1 21:1 0 CASE NPAC OF

619 1 21:1 5 1: WRITELN(FPURLPL1);

620 1 21:1 57 2: WRITELN(FPURLBL2),

621 1 21:1 129 3: WRITELN(FPURLDL3);

622 1 21:1 194 4: WRITELN(FPURLDL4);

623 1 21:1 258 S: WRITELN(FPURLPL5);

624 1 21:1 322 END;

625 1 21:0 340 END; v.

626 1 21:0 356 %

I

I .

PREFIXF displays sentence prefixes for a functional purpose.

-80- - '

k.*4, ,. -.
627 1 20:10 1 (SSP$)PROCEDURE PREFIXO;

628 1 20:0 0 BEGIN

629 1 20:1 0 CASE #4PAC OF

630 1 20:1 5 1: VRITELN(OBJUIJ1;

631 1 20:1 57 2: URITELN(OPJLBL2);

632 1 20:1 130 3: WRITELN(OIJLBL3);

1633 1 20:1 176 41 WRITELN(OBJLhIL4); 2

1634 1 20:*1 241 5? VRITELN(OBJLDL5);

635 1 20:1 306 END;

636 1 20O0 324 END;

637 1 20:0 340

II-

.11

r1n
639 1 36:1 1 (8SPS)PROCEDURE ASPECTS;

639 1 36!0 0 BEGIN

640 1 36:1 0 REPEAT

641 1 36:2 0 PAGECOUTPUT);

42 1 36:2 10 NRITELN('You are currently analyzing subsystem '9CURSU0,CHR(I3)v' of the ',

643 644 1 1 36:2 36:2 150 102 UR, TELNC" CURSYS,' '); class of systems');

645 1 36:2 168 ASPECTEI:-'Potentialities';

646 1 36:2 198 ASPECTC23:='Processes'l

647 1 36:2 223 ASPECTL3:s'Products';

648 1 3622 247 ASPECT14J:-'Environsent';

?, 649 50 1 1 36:2 36:2 274 301 HELP:-8;-', ASPECT[53:0'constraints'; I

51 1 36:2 305 URITELN('To proceed with the analysis you may examine the following');

52 1 36:2 383 MRITELN(' aspects of performance:'); I

53 1 36:2 428 FOR :al TO 5 DO0

54 1 36:3 442 URITELN(' ' ,'. ',ASPECT[I));

655 1 36:2 523 WRITELN(' 0. Select a different analytic procedure');

•56 1 36:2 586 VRITELN' ')

657 1 36:2 604 VRITE('Which aspect of subsystem ',CURSUP,' would you like to analyze?'); I

658 1 36:2 692 REPEAT

59 1 36:3 692 KEYN;

660 1 36:3 694 IF((I<O) OR (1)5)) AND (10999) THEN

661 1 36:4 715 WRITELN('PLEASE SELECT AN INTEGER BETUEEN 0 AND 5');

662 1 36:2 775 UNTIL((I>=O) AND (W<v5)) OR (1=999);

- 63 1 36:1 796 UNTIL 10999; *

664 1 36:1 05 IF 1=0 THEN

6 65 1 36:2 812 BEGIN

666 1 3653 812 CORECLOSE;

667 1 36:3 814 BRANCHOUT;

- 668 1 36:3 816 SETCHAIN(GREETING');

669 1 36:3 830 EXIT (PROGRAM);

670 1 36:2 834 END;

- 671 1 36:1 834 PAC:=ASPECTEI);

672 1 36:1 952 NPAC:=I;

673 1 36:1 858 WRITELN('You have chosen to analyze the ',PAC,' aspect',CHR(13)," of subsystem.

674 1 36:1 969 CURSU,' performance.');

675 1 36:0 1013 END;

676 1 36:0 1032

ASPECTS allows analyst to select the aspect he/she intends to use.

%'

-82- ,
, -

677 1 37:1 1 ($SPS)PROCEDURE FPURIJ;

678 1 37:0 0 BEGIN

679 1 37:1 0 B0TOXY0,P16);

681 1 37:1 15 REPEAT

682 1 37:2 15 ORZTE('Uhlch function4l purpose would you 10e to analyze (Type 0 to

rtcansider)T');

683 1 37:2 101 ELP:151

684 1 37:2 105 KEYN;

685 1 37:2 107 IF 18999 THEN

686 1 37:3 116 FPUR;

687 1 37:2 118 IF(I<O)OR(1>20)THEN

) 688 1 37:3 131 URITELN('PLEASE INPUT AN INTEGER BETWEEN I AND 20');

* 699 1 37:2 191 ,F(IO)AND(I<20)THEN

690 37:3 204 IF sCRATCHrimi" THEN

• 691 1 37:4 224 BEGIN

692 1 37:5 224 WRITELN(It' DOES NOT EXIST AT PRESENT');

693 1 37:5 282 IRITELNV'PLEASE TRY ANOTHER FUNCTIONAL PURPOSE');

694 1 37:5 339 I:m25;

695 1 37:4 343 END;

. 696 1 37:1 343 UNTIL (I>=0) AND (1<20)1

697 1 37:1 356 IF 1>0 THEN

"* 698 1 37:2 363 BEGIN

699 1 37:3 363 NFUNPUR:=NSCRATCHCIJ; 700 1 37$3 380 XFUNPUR::SCRATCH[3;,

S701 1 37:3 398 CHARACTERISTICS;

702 1 37:2 400 END;

703 1 37:0 400 END;

*704 1 37:0 416

° I .0- '

- ;FPUR1 asks the analyst which functional purpose he/she would like to analyze

when he/she requests to analyze characteristics.

8I

-- 83- P.
705 1 38:9 1 CSS3PSPROCEDURE FUNCCfEATE I

706 1 30:0 0 BEGIN

707 1 30:1 0 REPEAT

709 1 38:2 0 NSCREEN:-2;

709 1 38:2 4 TOPSCREEN;

*711 1 38:*2 77 VRITELNe ) IVV

712 1 39:2 95 INDEX;

713 1 38:2 97 IF 1.0 THEN

714 1 39:3 104 EXIT(FUNCCREATE);

715 1 39:2 109 FCC;

716 1 38:1 110 UNTIL 0K;

717 1 38:0 115 END;

718 1 39:0 130

FUNC REA o ceat heps newfuntioal nalsts prpoes y fidi.r a apprprite ew prpoe. idexfor he 

-z
*719 1 7:3 1 (SSPS)PROCEDURE FCC;

720 1 7:0 0 BEGIN

721 1 7:1 0 URITELN('Please specify (80 additional characters available) the new '

722 1 7:1 72 'functional purpose 'tchr(13)," within the 'PAC,

723 1 7:1 149 aspect of the 'PCURSU9,' system.');

724 1 7:1 215 URITE(CHR(13));

725 1 7:1 225 PREFIXF;

726 1 7:1 227 INLINE;

727 1 7:1 229 IF SCRATCHEI)a'" THEN

728 1 7:2 249 EXIT(FUNCCREATE);

729 1 731 253 NSCRATCHCIJ:l,;

730 1 7:1 270 WRITELN('Done');

731 1 7:1 294 DATAMODEA.NTAXAEII:=NPAC,

'732 1 7'l1 3091 DAAOD NTAXAc21:=MObJECTIVE;

733 1 7:1 324 DATANODEA.NTAXAE31:-NSCRATCHI,3"

734 1 7:1 350 DATANODENTAXAC4]:zO;

735 7:1 363 DATANODEA.T AXA:SCRATCH[I);

736 1 7:1 3813 REPEAT

737 7:2 383 BEGIN . 738 1 7:3 383 J:zTRUNC(CORELAST); . 739 1 7:3 396 IF J>=300 THEN

740 1 7:4 405 BEGIN

741 1 7:5 405 WRITELN('*$* ERROR -- YOUR DATA SET ALREADY CONTAINS 300 PERFORMANCE

ITEMS! 8$$'),

742 1 7:5 495 URITELN('*** THUS, THIS ITEH WAS NOT ADDED TO DATA SET *$$') -

74 1 715 573 ANYKEY;

744 1 7:5 575 EXIT(FUNCCREATE);

745 1 734 579 END;

746 1 7:3 579 CORELAST:-CORELAST+I;

747 1 7:3 604 J:zJ+;

748 1 7:3 612 NCORELAST:=J;

749 1 7:3 618 EII:-CORE[J] DIV 1000000;

750 1 7:2 675 END;

751 1 7:1 675 UNTIL Eli -0;

752 1 7:1 693 TEMP:=NPAC;

753 7:1 710 TSCR:-NOBJECTIVE;

754 1 7:1 727 CORECJ)::IEMP*1OOOOOO4TSCR*10000NSCRATCHI)100s0;

755 1 7:1 838 SEEK(DATANODE,J);

756 1 7:1 849 PUT(DATANODE);

757 1 7:1 857 RITELN('lt will be necessary, at some time, to add characteristics to this',

chr(13), function

! 1.

- FCC accepts the new functional purpose and stores it in the performance item

data set.

-85-

-L 7 -2. ,. ;-% L. *;. . .~ '. ! _.L . ' _ .. 'J =, *-*_.'_.' .' " .. .- , .- .. -. ,. '- , ' .. . '.....-'
759 170.1 997 PREPKEY(17,UMould you like to specify characteristics at this Usme?');

759 17:11048 IF ANSU'Y' THEN

760 17:2 1055 BEGINI

* 761 1 7:3 1055 XFUNPUIR:-SCRATCHCII;

* 762 17:3 1073 NFUNPUR:=NSCRATCHEII;

*763 17:3 1090 PCHARCREATE;

*764 17:3 1092 CHARCREATE;3

765 17:3 1094 EXIT(FUNCCREATE);

7641732 1098 END;

767 17:1 1099 PREPKEY(15,'Would you like to specify sore functional purposes for this objective');

769 1 71 1174 IF ANSz'Y' THEN

A769 17:2 1181 OK:UFALSE E

770 17:1 1181 ELSE

* 771 17:2 1197 EXIT(FUNCCREATE);3

*772 17:0 1191 END; r,

773 17:0 1209 ..

See revius decripionage or pogrm 

-86-

a2 2.
- 774 1 9W 1 ($SPS)PROCEDURE DELFUN775 1 9:0 0 BEGIN

776 1 9,1 0 REPEAT I 777 1 9:2 0 GOTOXY(O,16);

779 1 9:2 5 WRITE(chr(I),'Which one do you want to tisove(Type 0 to reconsider):');

779 1 9:2 81 HELP: 15,

S790 1 9:2 85 KEYN;

791 1 9:2 97 IF I999 THEN

792 1 9:3 96 FPUR;

793 1 9:2 9e IF (1<) OR (1>20) THEN

794 1 9:3 111 WRITELN('PLEASE TYPE AN INTEGER BETWEEN 0 AND 20);

795 1 911 170 UNTIL (I>uO)AND(I<21);

786 1 9:1 183 IF 1,0 THEN

797 1 9:2 190 BEGIN

S78 1 9:3 190 EXIT(DELFUN); I 789 1 9:2 194 END.

790 1 9:1 194 PREPIEY(1S,'Do you really want to remove this functional purpose I assoc characteristics ?');

791 1 921 277 IF ANS-'N' THEN

792 1 92 284 BEGIN

793 1 9:3 284 EXIT (DELFUN)

794 9:2 288 END;

795 1 9:1 288 J:=O;

796 1 9:1 292 REPEAT

* 797 1 9:2 292 TENP:-NPAC;

798 1 9:2 309 J:aJtI

7 1 9:2 317 IF (CORE[J3 DIV 100)=(TEMP$10000NOBJECTIVE100iI) THEN

Bo 9:3 392 REMOVE;

801 1 9:1 394 UNTIL (J-NCORELAST)

02 1 9:0 401 END;

803 1 9:0 420 "I.

ep.

DELFUN asks analyst which functional purpose he/she wishes to remove and i ~removes the functional purpose and its component characteristics. "-

.

6.

* - 8 -" p

. F - 6* .

6 - ,.'

.. . . .. ° . -87•-

:-- , -.-" " '- ' " .-.. " ." ' " -. -" - .. ". - = -' - - ..'.. ' ... _ .',.. '_." -- . ..'-.: .., : .' , .'_:-
304 1 39:1D I (P)PROCEDURE FPUR4;

605 1 3930 0 BEGIN

006 1 3921 0 GOTOXY(O,16); l

907 1 39:1 5 WRITELN(CHR(11));

909 1 392.1 23 REPEAT

809 1 39:2 23 WRITELN'You hove chosen to reword a functional purpose');

810 1 39!2 89 URITELN(' ');

911 1 3912 107 WRITELNC'Which one do you want to reword (Type 0 to reconsider)? ")1 812 1 3912 183 14LP:=1S;

8 913 1 3932 187 KEYN;

814 1 3912 199 IF 1=999 THEN

. 815 1 39:3 198 FPUR;

- 316 1 3932 200 IF (1<0) OR (1>20) THEN

817 1 39:3 213 WRITELN('PLEASE TYPE AN INTEGER BETWEEN 0 AND 20');

918 1 39:1 272 UNTIL (z>=O) AND (1<21); I -.'.'

819 1 39:1 285 IF In0 THEN

920 1 39:2 292 EXIT(FPUR4);

921 1 39:1 296 IF SCRATCHEI3=" THEN

822 1 39:2 316 BEGIN

823 1 39:3 316 NRITELN(NSCRATCH[CI,' DOES NOT EXIST');

924 1 39:3 374 EXIT(FPUR4);

625 1 39:2 379 END;

926 1 39:1 378 BOTOXY(O,16);

927 1 39:1 383 WRITELN(CH(11));

928 1 39:1 401 VRITELN('PIease reword (80 characters available) the functional purpose');

829 1 39:1 483 MRITE(CHR(13);

930 1 39:1 493 PREFIXF;

831 1 39:1 495 INLINE;

832 1 39:1 497 IF SCRATCHtII='" THEN

833 1 39:2 517 EXIT(FPUR4);

834 3 39:1 521 NSCRATCHE13:=I;

835 1 39:1 538 DATANODEANTAXAEI:=NPAC;

836 1 39:1 553 DATANODEA.NTAXACZ:=NOBJECTIVE;

837 1 39:1 568 ITANODEA.NTAXA[3J:=NSCRATCH[I);

838 1 39:1 594 DATANODEA.NTAXA[4]:*O; 639 1 3911 607 DATANODEAoTAXAt-SCRATCHEII; 840 1 39:1 627 TERP:=NPAC;

841 1 39:1 644 TSCR:zNOPJECTIVE;

842 1 39:1 661 TEMP:=TEPIOOOOOO4TSCRIOOOO+NSCRATCH[138100+O; I '

943 1 39:1 760 J:8O; _

944 1 39:1 764 REPEAT

845 1 39:2 764 J:-J#l 946 1 39:1 772 UNTIL TENP-COREEJ3; !

847 1 39:1 903 MRITELN('OK');

848 1 39:1 625 SEEK(DATANODE,J);

04 1 39:1 636 PUT(DATAMODE);

*850 1 39:0 644 END;

951 1 3910 960

FPUR4 asks the analyst which functional purpose to reword and

it asks them to reword the functional purpose.

-88-h.I1+ '

o~o
952 1 40:9 1 (SSI)PROCEDURE FPUR5;

953 1 40:0 0 BEGIN

955 1 40:1 76 NPRIWT:=2;

856 1 40:1 so PRINTSCRN;

957 1 40:0 92 END;

359 1 40:0 94

FPR al RNSR opitteetiecnet ftefntoa ups fdisplay
959 1 41:D) I (h$P$)PROCEDURE FPUR7;

860 1 41:0 0 BEGIN

861 1 41:1 0 ASPECTS;

862 1 41:1 2 OBJECTIVES;

963 1 41:0 4 END;

864 1 41:0 16

L 6'

-90-

. . . . . . .
865 1 42: 1 ($P$)PROCEDURE SELECTFPS;

866 I 42:0 0 BEaIN

867 1 42:1 0 GOTOXY(O,16);

968 1 42 1 5 RITELN(CHR(l)); " 69 1 42:1 23 WRITE('You ay perform any of the following procedures:',chr(13)t

970 1 42:1 93 I. Analyze chararacteristics 2. Specify neu functional purposes',chr(13),

971 1 42:1 187 " 3. Remove a functional purpose 4. Reuord a functional purpose',chr(13),

872 1 42:1 277 5 5. Print these functional purposes 6. Analyze a different objective',chr(13),

973 1 4211 369 " 7. Analyze a different aspect 6. Select a different analytic proc.',chr(13),

974 1 42:1 465 'Please select one: ")

975 1 42:1 496 REPEAT

976 1 42:2 496 HELPtw15|

. 877 1 42:2 500 KEYN;

978 1 42:2 502 IF I-999 THEN

979 1 42t3 511 FPUR;

890 1 42:2 513 IF (1<1) OR (I>M) THEN

891 1 42:3 526 URITELNC'Please type an integer between I and 8");

882 1 42:1 584 UNTIL (I>-l) AND (I<=S);

883 1 42:1 597 GOTOXY(O,16);

884 1 42:1 602 WRZTE(CHR(1l));

885 1 42:1 612 CASE I OF

886 1 42:1 617 1: FPURI;

987 1 42:1 621 2: FUNCCREATE;

888 1 42:1 625 3: DELFUN;

889 1 42:1 629 4: FPUR4;

890 1 42:1 633 5: FPURS;

891 1 42:1 637 6: OBJECTIUES;

892 1 42:1 641 7: FPUR7;

893 1 42:1 645 8: OBJ7; MYES, IT IS OK*)

994 1 42:1 649 END;

995 1 42:0 672 END;

396 1 42:0 686

I

1~

SELECTFPS displays analytic options available to the analyst at the bottom of

the functional purposes page.

" "-91-

kn tt°.st. .* .l*~.t
I9 5:3 I (WWS)ROCEDIRE FPUR; 595 1 15*0 0 BEGIN 7

3" 1 15:1 0 NSCREEN:s2;

900 1 15:1 4 TOPSCREEN;

901 1 15:1 6 WRIYE'Functional purposes--');

902 1 15*1 39 PREFIXF

903 1 15:1 41 FOR J*a1 TO 20 DO cV0

904 1 15:2 55 BEGIN

905 1 15:3 55 SCRATCHCJ]:8'";

906 1 15:3 73 WSCRATCHEJ)-J

*907 1 15:2 tooN;

90 15:1 100 FOR 1.*= TO NCORELAST DO

909 1 15:2 116 BEGIN

910 115:3 116 IF CORE[I DIV IO00O-NPACSIOO+NOBJECTIVE THEN

911 1 15:4 165 BEGIN

912 1 15:5 165 IF COREEI)-COREEII DIV 10000 S 10000 0 0 THEN

913 1 15:6 239 BEGIN

914 1 15:7 239 IF COREEI - CORECI2 DIV 100 S 100 0 0 THEN

915 1 15:8 309 BEGIN ___

916 1 15:9 309 SEEK(DATANODE,I);

917 1 15:9 320 GET (DATANODE);

918 1 15:9 329 J:DATANODEA.NTAXAC3I1

919 1 15:9 343 NSCRATCHCJIi=DATANODEA.NTAXAC33;

920 1 15:9 369 SCRATCHCJ3:aDATANODEATAXA; .

921 1 15:8 369 END;

922 1 15:6 369 END;

923 1 15:4 389 END;

924 1 15:2 369 END;

925 1 :i 399 DISPSCRATCH;.

926 1 1s:1 401 IF NDATAzO THEN

927 1 15:2 408 NRITELN('I do not hove any functional purposes for objective nuber',

928 1 15:2 479 NODJECTIVE,' at the present time'); !

929 1 15:1 530 SELECTFPS;

930 1 15:1 532 FPUR;

931 1 15:0 534 END;

932 15:0 556

FPUR governs the primary display of functional purposes.

-92-
9331 5:9 1 ($$PSI)IMME£BJI PCHMRCIRTE;

- ,231F2J, ~ m - -

L,| 9361& 5:2 14 KEGIN '37 5:3 14 SC TCH[JEA T1

939 1 5:2 45 END; 940 1 5: 0 59 END;

,.941 1 5:0 74

4

"7 I

PCIIARCREATE clears the STRATOJI array which is used in producing the body * of the display for objectives, functional purposes and characteristics.

.- °.a * --

..- .: ~. 

-93-

7. | , ,l _
I .

9421 33 1 I(SPS)PROCEDURE INiX;

943 1 9:0 0 REGIN

944 1 SU 0 110;

945 1 611 4 FOR J:20 DOUWNTO I DO I

946 1 0:2 is IGIN

947 1 :3 is IF(SCRTCHJs' ) THEN

946 1 6:4 38 NA

949 1 912 44 ElND I

950 1 9:1 54 IF Igo THEN

951 1 6:2 61 DEGIN

952 1 3:3 61 WIRITELNCA11 20 indexes ore currently in use!!'); I

953 1 8:3 118 ANYKEY; !

954 1 9:2 120 END;

955 1 0:0 120 END;

956 1 810 134

956 1 6:0 134 (it M5PERFZTEN3.TEXTS)

.4.

i%

INDEX determines whether there are 20 objectives for a given aspect, 20

functional purposes for a given objective or 20 characteristics for a givenn . ..

. functional purpose before allowing new performance items to be added. If %

the maximum are in use, additional items cannot be added.

5, b Z .

%%

-94-

.. . . .- . ... .. . . . 1 . , . . .
I

- 957 43:D 1 (SP0PROCEDUM 0JCNODE.

96 1 4310 0 Kelm

959 1 4311 0 DATANODE.NTAXAC132.NPAC1 960 1 4311 15 DATWKA. NTAXA(23:-,SCRATCHC 31 961 1 43:1 41 DTANODEA* NTAXA[3J *0;

962 1 43:1 54 DATANOD' *NIAXAE421: 0 I

963 1 43:1 67 TAiOKA. T&XA; oSCRATCH( 13;

964 1 43:1 67 REPEAT

965 1 4312 37 BEGIN

966 1 43:3 87 J.TRUNC (CORELAST) |

,* ~ 967 1 4313 100 IF J>=300 THEN

969 1 4314 109 DEGIN

969 1 43:5 109 R11TELN('8** ERROR - YOUR DATA SET ALREADY CONTAINS 300 PERFORMANCE

ITEMGS! ts8 ; J, %

970 1 4315 199 HRITELN('881 THUS, THIS ITEM WAS NOT VDED TO DATA SET ***')I

971 1 43:5 277 ANYKEY;

972 1 43:5 279 EXIT(O1JCREATE)I

973 1 43:4 263 END;

: 974 1 4313 293 CORELAST uCORELAST+I

975 1 43!3 309 JJ+. .

976 1 43'3 316 EIJ:zCORECJ3 DIV 1000000;

1977 1 4313 373 NCORELAST lJ;

979 1 43:2 379 END;"

979 1 43:1 379 UNTIL ElI z0;

990 1 43:1 397 TEMP -NPAC;

991 1 43:1 414 TSCR:,NSCRATCH[I3;

982 1 43:1 442 COREEJ3:=TEPI10000004TSCRS1000040100403

983 1 43:1 540 SEEK()ATANOLE, J); •

984 1 43:1 551 PUT(DATAHODE);

985 1 43:0 559 END; Pd

986 1 43:0 576

I -

OBJCNODE adds a now objective to the performance item list.

-95-

I.. -95-% . . . .o . . . , .* +,
1? 44:D I (8$PS)PROCEDURE OBJI;

906 1 44:0 0 BEGIN

99 1 44:1 0 WRITE('Which objective would you like to analyze (type 0 to reconsider)"');

990 1 44:1 77 REPEAT

991 1 44:2 77 HELP:=23;

992 1 44:2 e1 KEYN;

993 1 44:2 83 IF 1*999 THEN

S994 1 44:3 92 OBJECTIVES;

9 1 44:2 94 IF(10)OR(I>20)THEN

996 1 44:3 107 WRITELN('PLEASE INPUT AN INTEGER BETWEEN 0 AND 20');

7 1 44:2 167 IF 1)0 THEN

998 1 44:3 174 IF SCRATCHCI]-" THEN

999 1 44:4 194 BEGIN

1000 1 44:5 194 VRITELN(It' DOES NOT EXIST AT PRESENT');

1001 1 44:5 252 URITELN('PLEASE TRY ANOTHER OBJECTIVE');

1002 1 44:5 300 I:25;

1003 1 44:4 304 END;

1004 1 44:1 304 UNTIL (M)=0) AND (1<20);

1005 1 44:1 317 IF (I>0) AND (1<21) THEN

1006 1 44:2 330 BEGIN 1007 1 4453 330 ROBJECTIVE ! NSCRATCH(I ]; :

1009 1 44:3 347 XODJECT7VE:=SCRATCH[I);

1009 1 44:3 365 FPUR;

1010 1 44:2 367 END;

1011 1 44:0 367 END;

1012 1 44:0 384

I

OBJI asks analyst which objective he wishes to analyze when he requests to

analyze functional purposes.

-96-

. . . . . . . . .. . . - . . . ..-.
S~~~ J ~~W- O-. 4- - a. -

F 1013 1 12:10 1(8PROCEDURE OBJCREATE;

1014 1 12:0 0 BEGIN

1015 112:1 0 REPEAT

1026 1 12:2 0 NSCREEN:s-1

1017 1 12:2 4 TOPSCREEN;

10101 12:2 6 WRZTELN('You have chosen to create a new objective.');

10191 12:2 61 uRITELN( ')l

1020112:2 86 INDEX;

10211 12:2 NB IF 10 THEN 10122 1 12:3 " EXIT(IOBJCREATE) I "

1023 112:2 99 VRITELN('Please specify (0 additional characters available) the new objective',

1024 112:2 190 CNR(13)p, within the ',PAC,' aspect of the 'tCURSUI,' subsystem');

1025 112:2 294 URJTE(CHR(131))

1026 1 12:2 304 PREFIXO;

1027 1 12:2 306 INLINE; J 1028 1 12:2 308 IF SCRATCH1I)8'" THEN

1029 1 12:3 328 EXIT(OJCREATE);

1030 1 1232 332 NSCRATCH[Ill:u.15

1031 1 12:2 349 OBJCNODE;

1032 1 12:2 351 URITELN('0O')-

1033 112:2373 WRITELN('It will, at some time, be necessary to add functional purposes and',chr(13),

1034 1 12:2461 " characteristics to this objective');

1035 1 12:2 516 PREPKEY(17,'would you like to specify functional purposes at this tim!'),

1036 1 12:2 561 IF ANS*'Y ° THEN

1037 1 12:3 58 DEGIN

1039 1 12:4 58 XOIJECTIVE:=SCRATCHII;

1039 1 12:4 606 NOPJECTJUE:-NSCRATCHE13;

10401 12:4 623 PCHARCREATE; EYS, ITS OKS)

1041 1 12:4 625 FUNCCREATE;

10421 12:4 627 EXIT(0BJCREATE)|

1043 1 12:3 631 END;

1044 1 12:2 631 PREPKEY(23,'Uould you like to specify more objectives*');

1045 1 12'2679 IF ANSs'Y' THEN

1046 1 12:3 686 0K:=FALSE

1047 1 12:2 606 ELSE

10481 1223 692 EXIT(OMJCREATE).

1049 1 12:1 696 UNTIL OK;

1050 1 12!0701 END;

1051 112:0 716

OBJCREATE accepts a new performance item and calls OBJCNODE to add it

to the list of performance items.

" p

-97-

. % Vr
1052 1 19:0 1 f STP0CUU R NAE; 1 8|

1053 1 19:0 0 KOIN

1054 1 19:1 0 3 f7g O9"A. TAXAj3]O:.;

1055 1 19:1 13 DVATANOA. NTAXA(2:-O;

1056 1 19M 26 MTpA.TAA. (32:.MN;

1057 1 19:1 39 IATANOVE A NTAXAE4]!nO-*

1058 1 19:1 52 DATAMODEATAXA:"; 1059 1 19:1 62 SEEK (VA T , 0K J )

1060 1 19:1 73 PUTT(DATAM)N 0 E

1061 1 19:1 a1 COAEJI:=Ol

1062 1 19:0 109 [MDI

1063 1 19:0 120 j

I

REMOVE removes unwanted performance items from the performance item file. I

-98-

* .. *...... 

.*

-- -" - • ," .-" ." • ." **. * .".."• • . •. -. ," . ." ,-,- .' "_-'.-.- . "..'j .".." .' -=, ."'-'
104 1 45: 1 (S$P#)PNOCENJRE DELOJ I 165 45s:0 0 DEGIN

1067 1 45:2 0 SOTOXY(0,16)1

1066 1 45:2 5 URITE(chr(1l),'Uhich one do you Wish to remove (Type 0 to reconsider):');

1069 1 45:2 62 KEYN;

1070 1 45:2 64 IF (10) OR (1>20) THEN

1071 1 4533 97 VRITELN('PLEASE INPUT AN INTEGER BETWEEN 0 AND 20'),

1072 1 45:1 157 UNTIL (I>O)AND(1<21)1. "

1073 1 4511 170 IF IWO THEN

1074 1 45:2 177 BEGIN

1075 1 45:3 177 EXIT(DELOIJ),

1076 1 45:2 161 END;

1077 1 45:1 161 PREPKEY(23,'Do you really want to remove this objective I component functional

purposes?'); - -

I 1078 1 45:1 263 IF ANSz'N' THEN

1079 1 45:2 270 BEGIN

1080 1 45:3 270 EXIT(DELODJ)

1091 1 45:2 274 END;

1092 1 45:1 274 J:o; 1093 1 45:1 278 REPEAT

1064 1 45:2 279 ~ jl

1085 1 45:2 296 IF (CORE|J) DIV 10000)*(NPACSIOO+I) THEN .

1086 1 45:3 335 REMOVE; ." ."

1007 1 45:1 337 UNTIL (J=NCORELAST)

1096 1 45:0 344 END;

1089 1 45:0 362

• .J .. .

DELOBJ asks analyst which objective he/she wishes to remove and calls REM.OVE ')'

:"Ji to remove the objective and component functional purposes and characteristics. ?.

-99-

:1..%

7 I , , .% .", "",".",',"."." ".",",' , , . . . . . . .. ...... . . . . . . . . . . . " . . " .
S -

1090 1 46:D 1 (1$P*)PROCEDURE OBJ4t

1091 1 46:0 0 IEGIN :]1092 1 4":1 0 80OOPOe6);

6 1093 1 46:1 5 URITE(CHR(I)1) I

1094 1 46:1 15 REPEAT;

1095 1 46:2 is VRITELN('You hove chosen to reword on objective.').

1096 1 4622 74 IRITELN(" ')I

1097 1 46:2 92 VRITE('hich one do you wont to reword (Type 0 to reconsider)? "); !

1098 1 4622 160 KEYN;

1099 1 4622 162 IF (1<0) OR 41>20) THEN

1100 1 46:3 175 MRITELN('PLEASE TYPE AN INTEGER BETWEEN 0 AND 20');

1101 1 46:1 234 UNTIL (I>*0) AND (I<21);

1102 2 4621 247 DOTOXY(O,16);

1103 1 4621 252 WRITE(CHR(I.));

1104 1 46:1 262 IF Is0 THEN

1105 1 46:2 269 EXIT(8J4); I

1106 1 46:1 273 IF (SCRATCHEI3a")TEN

1107 1 46:2 2?3 BEGIN

1108 46:3 293 WRITELN(NSCRATCH[C2,' DOES NOT EXIST'); 1109 1 46:3 351 EXIT(OMJ); . .

1110 1 46:2 355 END;

1111 1 4621 355 URITELN('Please reword (00 characters available) this objective.');

1112 46:1 430 NRITE(CHR(13));

1113 1 46:1 440 PREFIXO; I .

1114 1 46:1 442 INLINE;

1115 1 46:1 444 IF SCRATCHEI)3'' THEN

1116 1 46:2 464 EXIT(DOJCREATE);

1117 1 4621 468 NSCRATCH(I:mI; 1118 46:1 405 DATANODEANTAXA(I3:*NPAC;

111? 1 46:1 500 DATANOVE ANTAXA[23:uNSCRATCH[I;

1120 1 46:21 526 DATANODE.NTAXA(3:u;O 1 "

1121 1 46:1 539 DATANODEA.NTAXA(4]:xO;•I 1122 1 46:1 552 DATAODEA.TAXA:wSCRTCHE12; 1123 1 46:1 572 TEP:uNPAC;

1124 1 46:1 589 TSCR:-NSCRATCH[II;

1125 1 46:1 617 TEP:.TEMPSIO00000+TSCR*10000+OelOOO; 1126 1 46:1 703 J:MO;...

1127 1 46:1 707 REPEAT

1128 1 46:2 707 J:-J+i;

1129 1 46:1 715 UNTIL TEMP=CORE(J3; 1130 1 46:1 746 NR1TELN('Ok');

1131 1 46:1 769 SEEK(PATANODE,J);

1132 1 46:1 779 PUT(DATANOE);

1133 1 46:0 787 END;

1134 1 46:0 804

OBJ4 asks analyst which objective he/she wishes to reword and asks him/her

to reword it.

L100

U-100- |
. .. .. . . . .. o.o .. . . .N ..

j1135 1 47!:D 1 (SPS)PROCEIUE 03J51 1

1136 1 47:0 0 BEGIN

1137 1 47:1 0 WRITELN('Please be certain that the printer is ON and ONLINE'!!!!');

1139 1 47:1 76 PRINT:CRN

1139 1 47:1 76 PRINTSCRN;

1140 1 47:0 82 END;

1141 1 47:0 94

'aA

* . I'

:1W

-' O~B35 calls PtRINTSCRIEEN to print the contents of the ojetives display screen. "-'.

;:o 

2 ..5

-101- ' :I

"5.• i.
1142 1 14:0 1 (*SPS)PROCEDURE 03J7;

1143 1 14:0 0 BEGIN

1144 1 14:1 0 CORECLOSEt'

*1145 1 14:1 2 PRANCHOUT (

1146 1 14:1 4 SETCNAINCOREETING I;

1147 1 14:1 is EXIT(PROGRAM);

1149 1 14:0 22 END;

1149 1 14:0 34 V/

-102-

C- 7- C
I

I

1150 1 11:D 1 (*SP*)PROCEDURE DISPSCRATCH;

1151 1 1110 0 OEGIN

1152 1 11:1 0 NVMTA:zO;

1153 1 11:1 4 PC:=i;

1154 1 11:1 8 FOR K:=I TO 20 DO

1155 1 11:2 22 BEGIN

1156 1 11:3 22 IF SCRATCH[K3>'- THEN

1157 1 11:4 42 BEGIN

1157 1 11:5 42 IF PC>1O THEN

1159 1 11!6 49 BEGIN

- 1160 1 11:7 49 PC:=I;

1161 1 11:7 53 6NYKEY;

- 1162 1 11:7 55 GOTOXY(O,5);

1163 1 11:7 60 MRITE(CHR(11)); I j1164 1 11:6 70 END; 1165 1 11:5 70 NDATA:=1;

1166 1 11:5 74 LLENGTH:=72;

1167 1 1115 78 LINE::SCRATCHIK3;

1168 1 1llS 96 WUITEC' ',NSCRATCHCKI,'. ');

1169 1 11:5 148 SHOrALINE;

1170 1 11:5 150 WRITELN(C ');

1171 1 11:5 169 PC;=PC J;

1172 1 11:4 176 END;

1173 1 11:2 176 END;

1174 1 11:0 186 END;

1175 1 11:0 204

I.

DISPSCRATCH displays the performance items in the body of the main displays.

.3

-103- 9.
~I

i ~I -

1 q7

1176 1 48:D 1 (SSPS)PROCEDURE SELECTOBJECTIVES1

1177 1 48:0 0 BEGIN

1178 1 48:1 0 G0TOXY(0,16);

1180 1 48:1 15 URITE You may perform any of the following procedures:',chr(13),

1181 1 40:1 5 1. Analyze functional purposes 2. Specify a new objective',chr(13),

1182 1 48:1 171 ' 3. Remove an objective 4. Reword an objective',chr(13),

1183 1 48:1 253 5. "Print these objectives 6. Analyze a different aspect',chr(13),

1184 1 4811 342 7. " Select a different analytic proc. "chr(13)t

1185 1 48:1 404 'Please select one: );

1186 1 48:1 435 REPEAT I

1187 1 48:2 435 HELP: -231 "

1188 1 48:2 439 KEYN;

1189 1 48:2 441 IF 1=999 THEN

1190 1 48:3 450 OBJECTIVES; 4

1191 1 48:2 452 IF (<1) OR (1>7) THEN|

1192 1 48:3 465 WRITELN('Please type an integer betueen I and 7');

1193 1 48:1 523 UNTIL (1>=1) AN (1<=7);

1194 1 48:1 536 GOTOXY(Op16);

119 1 48:1 541 vRITE(CHR(11;))

1196 1 48:1 551 CASE I OF

1197 1 48:1 556 1: Oii;

1198 1 48:1 560 2: OBJCREATE;" 

1199 1 481 564 3: DELOIJ; I.

1200 1 48:1 568 4:08J4;

1201 1 48:1 572 5: O J7

1202 1 48:1 576 6: ASPECTS;

1203 1 49:1 580 7: OI'J7; . 1204 1 48:1 584 END;

1205 1 48:0 606 END;

1206 1 48:0 620

'SI *:-?-

SELECTOBJECTIVES prints the menu of the analytic processes available at

the objectives level on the bottom of the display screen.

.1. -

-104-r
[

1207 619 I 1 (SPSIPROCEDURE OBJECTIVES;

1206 1 6:0 0 BEGIN

1209 1 6:1 0 NSCREEN:=I;

1210 1 6:1 4 TOPSCREEN;

1211 1 6:1 6 WRIT(ObJectives--');

1212 1 6:1 30 PREFIXO

1213 1 6:1 32 FOR J:- TO 20 DO l"1215 1214 1 1 612 63 46 46 BEGIN SCRTCEJ:. - £ 1216 1 6:3 64 NSCRATCH[J3:•J

1217 1 6:2 77 END; 1219 1 6:1 91 FOR I.=1 TO NCORELAST DO 1219 ,62 10 BIN

1220 1 6:3 107 IF COREEI DIV 1000000-NPAC THEN

1221 1 6:4 166 BEGIN

1222 1 6:5 16 IF COREEIJ - CORE[I3 DIV 10000 S 10000 0 THEN

1223 1 616 242 BEGIN

1224 1 6:7 242 SEEK(DATANOVEIfl

1225 1 6:7 253 GET (DATANODE);

1226 1 617 261 J:.DATANODE.NTAXA[2].

1227 1 6:7 276 NSCRATCN[J):UDATANODEA.NTAXAE2;

1229 1 6:7 302 SCRATCH[J3)UDATANODEA.TAXA1229 1 6:6 322 END;

1230 1 6:4 322 ENmpt

1231 1 6:2 322 END;

1232 1 6:1 332 DISPSCRATCH

1233 1 6*1 334 IF NDATAx0 THEN

1234 1 6:2 341 IRITELN('1I hove no objectives for aspect ',PAC,' at this time');

1235 1 611 430 SELECTOBJECTIVES;

1236 1 6:1 432 OBJECTIVES;

1237 1 6:0 434 END;

1239 61W 454

1239 1 610 454 (M1 *5:PERFITEN3,TEXT$)

1240 1 6:0 454

Oo'

," OBJECTIVES governs the overall main display of the objectives.'

4 .t

.1~ -

105 r ,
1241 1 49:D I (*$*)PROCEDURE CHIJ

1242 1 49*0 0 BEGIN

1243 1 49:1 0 NSCREEN:=3;

1245 1 49*I 6 WRITELN('You have chosen to create a now characteristic.')l

1246 1 49:1 73 NRITELNV )

1247 1 49:1 91 INDEX;

1246 1 49:0 93 END;

1249 1 49:0 106

CH cls ha nextob teesrom crai toad hedsie chrceitc t h ito erom neie s

Ii7i
1250 1 33 1 (1$P)PROCE.DURE CHARCREATE;

1251 1 3:0 0 BEGIN

1252 1 351 0 REPEAT

1253 1 3:2 0 CHI;

1254 13:2 2 IF 1&O THEN

1255 1 3:3 9 EXIT (CHARCREATE);

1256 1 3:2 13 VRITELN('Pleose soecify (O0 additional characters available) the ne"

1257 1 3:2 106 URITE(CHR(13));

1258 1 3:2 118 PREFIXCi

1260 1 3:2 122 IF SCRATCHI1) " - THEN

1261 1 3:3 142 EXIT(CHARCREATE) I

1262 1 3:2 146 NSCRATCH1I3:uI;

1263 1 3:2 163 I WRITELN('OK'),

1264 1 3:2 185 pATANODEA.NTAXACIa*NPAC;

1265 1 3:2 200 DATANODEA.NTAXAE23:-NOBJECTIVE;

1266 1 3:2 215 DATAMODEA.NTAXAC3luNFUNPUR;

1267 1 3:2 230 DATANODEA.NTAXAE41:uNSCRATCH[I3y 1268 1 3:2 256 DATANODE^.TAXA:nSCRATCH());

1269 13:2 276 REPEAT 1270 1 3:3 276 BEGIN

1271 1 3:4 276 J:-TRUNC(CORELAST);

1272 1 3:4 299 IF J>-300 THEN r,

1273 1 35 298 BEGIN

1274 1 3:6 298 URITELN('S2* ERROR -- YOUR DATA SET ALREADY CONTAINS 300 PERFORMANCE

ITEMS! 8*8'); .1 1275 1 3:6 386 URITELN('$*S THUS, THIS ITEM WAS NOT ADDED TO DATA SET $$1');

1276 1 3:6 466 ANYKEY"

1277 1 3:6 468 EXITFUNCCREATE);

1278 1 35 472 END;

1279 1 3:4 472 CORELAST:-CORELAST+;-

1290 1 354 497 J~zJ~l;

I 1291 1 3:4 505 EnI:-COREEJJ DIV 1000000;

1282 1 3:4 562 NCORELAST:J;

1293 1 3:3 568 END;

1294 13:2 568 UNTIL El! =O

1295 1 3:2 596 TENP:zNPAC;

1286 1 3:2 603 TSCR:=NOBJECTIVE;

1287 1 3:2 620 CORE[JI:aTENP*10O00O+TSCRIOOOO4NFUNF'UR*1O0+NSCRATCH[I|

CHARCREATE is the main routine to handle creating new characteristics.

*: J

-107- p"

,-.,. .- , .. .-,-.,.-, .' '- -..., -, , . .-,-. + .,.-. -...-,., -, , . .. ..... ,.,. . ., .- :. +. , ., .. ,. V .,i
1263 1 3:2 733 SEEK(DATADEPJ)

1269 1 3:2 744 PUT(DATANODE);

1290 1 3.02 752 PREPKEY012,Mwovd Yoau like to speCifY mole chematerigtiCST?)1

1291 1 3:2 905 IF ANSY' THEN

1293 1 3:2 312 ELSE

1294 1 3:3 313 EXIT(CI4ARCREATE) j

1295 1 311 322 UNTIL OK;Ii

1296 1 3:0 927 END;

1297 1 3:0 346

Se rvou aefr rga esrpin
1 1296 a 10D 1 (SP$)PROCEDURE DELCAR;

1299 1 10:0 0 DEGIN

1300 1 1011 0 OUER:RFALSE;

1301 1 10I 4 REPEAT

1302 1 10:2 4 ORITE('Vhich one (Type 0 to reconsider)!');

1303 1 10.2 49 HELP:,12|

1304 1 1032 53 KEYN;

1305 1 1012 55 IF I-99 THEN

1306 1 10:3 64 CHARACTERISTICS;

1307 1 1032 F 1<0) OR (1>20) THEN

* 1309 1 10:3 79 URITELN('PLEASE INPUT AN INTEGER PETMEEN 0 AND 20')l 1 1309 1 10:1 139 UNTIL (l>u0)AWD(l<21);

1310 1 1031 152 IF 18O THEN

1311 1 10:2 159 ReIN

1312 1 10:3 159 EXIT(DELCAR),

1313 1 10:2 163 END; ,' .

1 1314 1 10:1 163 PREPKEY(129'Do you really went to remove this chaecteristic?');

1315 1 IO:1 218 J-O;

1316 1 10:1 222 IF AHS-'N THEW

1317 1 10:2 229 EGIN

1318 1 10:3 229 EXIT(DELFUN)

1319 1 10:2 233 END

1320 1 10:1 233 ELSE

1321 1 10:2 235 REPEAT

1322 1 1053 235 TEMP:-NPAC;

1323 1 1013 252 TSCR*,NONJECTIVYE

1324 1 10:3 269 J:uj~i;

132 1 0 277 IF CORECJJuTEHPS1000000+TSCRSIOOOO4NFUNPUR*10O041 THEN

1326 1104 3I2 REMOVE;

1327 1 10:2 364 UNTIL (JuaCORELASTI

1326 1 10:0 391 END;

1329 1 10:0 412

I%

DELCAR asks analyst which characteristic he/she wishes to delete and calls

REMOVE to actually remove the characteristic.

i: 1%.o~i

-- Z 4.

- ~-109- . .

: I !r
%

1330 1 0@ I (SPt)PROCEDURE CNAR3;

1331 1 50:0 0 BEGIN

1332 1 50:1 0 GOTOXY(0,16);

1333 1 50:1 5 WRITE(CHR(1I))I

1334 1 50:1 15 REPEAT

1335 1 50:2 15 VRITELN('You have chosen to reword a characteristic.')$

1336 1 50:2 70 WRITELNV'; 5

1337 1 50:2 96 HELP:=12;

1336 1 502:2 100 YRITE('Uhich one do you wont to reword (Type 0 to reconsider)? ")3. - 1339 1 50:2 169 KEYN;

1340 1 50:2 170 IF I999 THEN

1341 1 50:3 179 CHARACTERISTICS;

1342 1 50:2 181 IF (1<0) OR 1>201 THEN

1343 1 50:3 194 URITELN(PLEASE TYPE AN INTEGER BETWEEN 0 AND 20');

1344 1 50:1 253 UNTIL (1>-0) AND (1<21); ,

1345 1 50:1 266 IF 1.0 THEN I

1346 1 50:2 273 EXIT(CHAR3);

1347 1 50:1 277 IF SCRATCHEI]z'' THEN

1348 1 50:2 297 BEGIN

1349 1 50:3 297 MRITELN(NSCRATCH(IJ,' DOES NOT EXIST');

1350 1 50:3 355 EXIT(CHAR3);

1351 1 50:2 359 END;

1352 1 50:1 359 GOTOXY(O,16); I

1353 1 5O:1 364 WRITE(CHR(I)); ( "

1354 1 50:1 374 iRITELN('Please reword (80 characters available) this characteristic?');

1355 1 S0:1 454 WRITE(CHR(13));

1356 1 50:1 464 PREFIXC;

1357 1 50:1 46 INLINE; "..

1359 1 50:1 468 IF SCRATCHI.-' THEN

1359 1 50:2 46 EXIT(CHAR3);

1360 1 50:1 492 NSCRATCHCIJ:=I; I

1361 1 50:1 509 DATANODEA.NTAXAEI[:xNPAC;

1362 1 50:1 524 DATANODEA.NTAXAC2I:=NOJECTIVE;

1363 1 50:1 539 DATANO[,EA.NTAXA(3)::NFUNPUR; •

1364 1 50:1 554 DATANODEA.NTAXA[43:zNSCRA7CH[I3; -

1365 1 50:1 580 DATANODEA.TAXA:=SCRATCH(I; * V

1366 1 50:1 600 TEMP:=NPAC;

1369 136 1 50:1 s50! 634 617 TSCR:=NOI4JECTIVE; TEN4P:*TEMP*1OOOOOO TSCRWIOOOO+NFUNFPUR*1OO NSCRATCH[E1 3;%J

1369 1 50:1 735 J:-0;

1370 1 50:1 739 REPEAT

1371 1 50:2 739 J*:j+;; £

1372 1 SO:i 747 UNTIL TENPzCORECJ3;

1373 1 50:1 778 MRITELN('O')0

1374 1 50:1 300 SEEK(DATANODE,J);

1375 1 50:1 911 PUT(DATANODE) ;

1376 1 50:0 619 END; ..*%

1377 1 50:0 836

CIlAR3 asks analyst which characteristic he/she wishes to reword. It then I

asks him/her for the new wording of the characteristic..L

[:[

-110-""

%% % °%

de e- e- it- d -- *&, - %!" 
1376 1 510D 1 MSPS)PROCEDJRE CHAR4;

1379 1 51:0 0 BEGIN

1360 1 5111 0 VRITELN('Pleaso be certain that the printer is ON and ONLINE!!W!);

1361 1 51:1 76 NPRINT:w3;

1363 1 51:0 62 END;

1362 1 51:1 0 94 NSCN

jr

CH R al RNSC Nt rn h mi cenfrth hrceitc

levelperfomanceitems

~ J

6
1335 1 521D I MSPS)PROCEDURC CHAR6;

1386 1 52:0 0 BEGIN

1367 1 52:1 0 OBJECTIVES;

138 1 52:1 2 FPUR;

1339 1 52:0 4 END; ...

1390 1 52!0 16

. ~ ~ ~ ~~~ .~ . . . . .
1391 1 53:D I ($P*)PROCEDURE CHAR7;

1392 1 53.0 0 DEGIN

1393 1 53'1 0 ASPECTS;

1394 1 53:1 2 OBJECTIVES;

1395 1 5321 4 FPURI

1396 1 530 6 END1

1397 1 53:0 18

1,

.~.

CIIAR7 allows analyst to specify a different aspect (and consequently, a

di ifet objective and functional purpose).

Yo.'

"..,

- | , . S•

*.V

CIIA7 speifya alowsanalst dffernt t apec (an conequntlyda -"-

diffrentobjetiveand unetonalpurpse). .,-

r?-;

* * .&,~*. -- ~~'-'.:.: -.,
1390 1 54:D I ($SPS)PROCEDURE SELECTCHARACTERISTICS;

1399 1 54:0 0 BEGIN

1400 1 54:1 0 BOTOXY(O,16)| - 1401 1 54:1 5 WRITE(CHR(11)).

1402 1 54:1 15 URITE('You may perform any of the following procedures',chr(13), "

1403 1 54:1 65 1. Specify new characteristics 2. Remove a characteristic'.chr(13),

1404 1 54:1 171 " 3. Reword a characteristic 4. Print these choracteristics',chr(13),

1405 1 54:1 261 ' 5. Analyze a different func. purp. 6. Analyze a different objective',chr(13),

1406 1 54:1 353 7. Analyze a different aspect 8. Select a different analytic proc.',chr(13),

1407 1 54:1 449 'Please select one: 1);

1406 1 54:1 460 REPEAT

1409 1 54:2 480 HELP:'12;

1410 1 54:2 484 KEYN;

1411 1 54:2 496 IF 1-999 THEN

1412 1 54:3 495 CHARACTERISTICS;

1413 1 54:2 497 IF (1<1) OR (1M) THEN

1414 1 54:3 510 MRITELN('Please type an integer between I and 8');

1415 1 54:1 569 UNTIL (1>=11 AND (I=81;

1416 1 54:1 581 OOTOXY(O,161;

1417 1 54:1 566 WRITE(CHR(11)); I

1418 1 54:1 596 CASE I OF

1419 1 54:1 601 1: CHARCREATE;

1420 1 54:1 605 2: DELCAR;

1421 1 54:1 609 3: CHAR3;I

1422 1 54:1 613 4: CHAR4;

1423 1 54:1 617 5' FPUR;

1424 1 54:1 621 6: CHAR6;

1425 1 54:1 625 7: CHAR7; I

1426 1 54:1 629 8: OBJ7; ($YES, IT IS OKt)

1427 1 54:1 633 END;

1426 1 54:0 656 END;

1429 1 54:0 670

I

SELECTCHARACTERISTICS displays the menu of procedures to be performed

with characteristics level taxa.

L -1. 1.4

-114-

................................

~~~~~~~~.. . ...': ."..... .,;.;.... . ' .,", ." ... .'' ." . ..". :. ..-. .. . .....'-. ,,.,_... ',. . _; .,' ' ,.,,
1430 1 4D 1 (SSPS)PROCEDURE CHARACTERISTICS; 4

1431 1 40 0 BEGIN

1432 1 4:1 0 NSCREEN:=3;

1433 1 411 4 TOPSCREENI

1434 1 421 6 MRITE(1Ch~rcteristics--');

1435 1 4:1 35 PREFIXC;

1436 1 4:1 37 FOR J:-I TO 20 DO

1437 1 4:2 51 BEGIN

1430 1 4*3 51 SCRATCJEJ:' 5 ;

1439 1 4:3 69 NSCRATCHEJ3:JJ

I - 1440 1 4.2 82 END;

1441 1 4:1 96 FOR :a1 TO MCORELAST DO

1442 1 4:2 112 BEGIN

1443 1 4:3 112 TEHP:-NPAC| 1444 1 4:3 129 IF CORECI3 DIV 100=TENP*tOOOO4NOBJECTIVElOO+NFUNPUR THEN

1445 1 414 204 BEGIN

1446 1 4:5 204 IF CORE[I) - COREEI) DIV 100 * 100 > 0 THEN

1447 1 4:6 274 BEGIN

1448 1 4:7 274 SEEK(DATANODE,I);

1449 1 4:7 285 GET (DATAMODE);

* 1450 1 4:7 293 J:=DATANODEA.NTAXA[4];

1451 1 4:7 308 NSCRATCHEJ3:*DATANODEA.NTAXAE4];

1452 1 4:7 334 SCRATCHEJ3:=DATANODEA'TAXA;

1453 1 4:6 354 END;

1454 1 4:4 354 END; . %

1455 1 4:2 354 END;

1456 1 4:1 364 DISPSCRATCH;

1457 1 4:1 366 IF NDATA=0 THEN

1458 1 4:2 373 MRITELN('No characteristics are availoble at the present tiae')"

1459 1 4:1 445 SELECTCHARACTERISTICS;

-: 1460 1 4:1 447 CHARACTERISTICS;

1461 1 4:0 449 END;

1462 1 4:0 470

! --

CHARACTERISTICS governs the characteristics display functions.

- *.-'

-115- -"-"€

ri-
1463 1 2:D I (*SPS)PROCEDURE CORECLOSE;

1464 1 2:0 0 BEGIN

1465 1 2:1 0 RtESET(COREFILENAMECOREFILE);

1466 1 2:1 13 FOR 1:=i TO 300 D0

1467 1 2:2 29 BEGIN

1468 1 2*:3 29 COREFILEA:-COREE13;

1469 1 2:3 57 PUT (COREFILE)

1470 1 2:2 65 END;(

1471 1 2:1 75 COREFILEA:=CORELASI;

*1472 1 2:1 91 PUTCCOREFILE);

1473 1 2:1 99 CLOSEcOREFILE);

147 1 2:0 122 END

*1474 1 2:0 10822 D

CORE inex LOSEsavs t th perorm th nce tem on isk
-, ~~~~~ .~UJ ~ ~T U\~~- TI1. -i T- Mv! -2~C .

1476 1 1:0 0 (ISPIIEGIN

*1477 1 1:0 0 (ISN-1)r

1478 1 1:1 0 INLIt4ECALL:%o;

:;1479 1 1:1 66 BRANCHIN;

1401 1III 68 APHDSK:=CONCAT(COPY(CURSYS,1,2),COPY(CURSP,1,2),COPY(CURSUD,1,2'),':');

1461 1 1:1157 NANEHELPFILE:=CONCAT(APDSK'4ELP');

I1492 1 1:1193 NANECOREFXLE::CONCAT(APMDSKC0PY(CURSyS,l,4),C0PY(CURSP,1,4),C0PY(CURSU,1,4)'CO');

*1413 1 1:1293 NAMEIATAFILE:sCONCAY(API SKCOPYCURSYS,1,4),CaPY(CURSP,1,4),COPY(CURSuB,1,4),'Fl');

1494 1 11393 OPENCOREFILE;

1485 1 11395 ASPECTS;

~.11486 1 1:1397 OPENOBJFILE;

11497 1 11399 OBJECTIVES; Y

148 1 1:0401 END.

I -

MAIN PROGRAM for analyzing performance items.

-117-
I

I.

I 4"

-

if III

'p.

gI 'p. I'

'p. 

'p S

UI'.-.-

£ 

~

I;I

p.

I pp i~.a

I..

-L

-

'

[ .r '~

'p. p

-118- 

- 4.~. r

2~ ;.'':.-- ** ****** 4' .p.*. *p.*.,*.*.* -* .*. 

. .. *..~,.*. ~*p.***
as

-119
I

I I 1D 1 (6L PRINTER: 8)

2 1 1D 1 (MSS)

3 1 130 1 (S Program to perform composition of attribute list*)

4 1 1W 1 (S Ronald G. Shapiro Version 2.0 10/25/82*)

s 1 l:D I Program Foroattribute;

& 1 110 3

7 28 l1d 3 %

I 28 2:D 1 PROCEDURE SETCHAIN(TYTLE:STRING)i

9 28 3:D I PROCEDURE SETCVAL(VAL:STkING);

10 29 4:8 1 PROCEDURE SETCVAL(VAR YAL:STRING);

11 28 5:D 1 PROCEDURE SWAPON; I

12 28 63D 1 PROCEDURE SWAPOFF;

13 28 630 1

14 1 i:D 1 Uses Chainstuff;

15 1 1:9 3

• :': These deosrtnpak procedures are part eues of the Apple nl STComputer's AI wihcues CHIAINSTUFF nter libary rgrm,: entry...Th :,..

L

':" to be activated.

,'.%

-1 20-r:

-z ;:..

,\' .p = , ,,."..-.' -. . ._ ._%. ' - ' " L %. . % 1 .
16 1 1:1 3 (SPMTYPE

17 1 Ito 3 PASSFILE =RECORD __

19 1 Ito 3 CURtSySCURSp,CURSU3,PAC:STRINGE90J;

19 1 Ito 3 NCURSyS,NCURSPNCURSUD.NPACFLAGI,FLAO2

,FLAO 3 INTEGER;

20 1 Ito 3 END; .. .

221 1**v 3 PAT61ASE wRECORD

23 1 1:11 3 NTAXA: ARRAYCI..43 OF INTEGER;

24 1 lD 3 TAXA: STRINGC8OJ;

25 24 1 END;

27 1 :1 3 FILEATTRIBUTES eRECORD

26 1 VD 3 WDESCRIP7DR: ARRAY[1.#63 OF INTEGERI

29 1 Ito 3 DESCRIPTOR: STRINGL6SJ;

30 1 1:1D 3 END;

31 1I tio 3

r32 1 1WD 3 FILENEASURES *RECORD

33 1 ltD 3 NDESCRIPTOR: ARRAYEl..63 OF INTEGER;

34 1 1WD 3 DESCRIPTOR: STRxNGE603; J35 1 l:D 3 END; k.

*38 1 1:10 3

.121

$ww
37 1 1:0 3 (SSPSUVARj

39 1 133 3 PASNODE:FILE OF PASSFILE;

39 1 133 474 DATANOMFILE OF DATABASE;

40 1 330 919 COREFILE:FILE OF 1WTEGERC83;

41 1 1:0 1122 ATTRJDUTES:FILE OF FILEATTRJBUTES3

42 1 1:0 1463 ATTRFILE3FILE OF INTEGERCI2JI

43 1 133 1747 MEASURES:FILE OF FILENEASURES;

44 1 1:3 2106 MEASFILEZFJLE OF INTEGERC123;

45 1 13D2412

46 1 1:3 2412 CORV ARRAYC..300J OF INTEGER183U

47 1 1:1 3312 ATTRCOREARIRAYEI..2003 OF INTEGEMc123;

49 1 1:3 4112 MEASCORE:ARRAYCI..4003 OF IN7EGERE121;

4f 1 1M 5712

*50 1 123 5712 SCRAIMHARRAY CI..203 OF INTEGER;

51 1 1:3 5732 ASPECT:ARRAYC1..53 OF STR!NGC14I;

52 1 1:9 5772 CORE2:ARRAYEI..3003 OF INTEGER;

53 1 1:3 6072 ATTRIODEMARRAYC1..203 OF IMTEGERI ; 54 1 1:0 6092 MEASINDEX:ARRAYC1..201 OF INTEGER;

55 1 130 6112

56 1 1:1 611? XCHARAC,XFUNPURXOIJECTIVEPACCURSYSCURSP,CURSUS: STRINGC9O1; I

57 1 133 6399 NCURMEASURESoNCURATTRIBUTENCUR1SSUEtNCHARAC,

58 1 130 6399 NFUNPURNODJECIIVENPAC,NCURSYS,NCURSPtMCURSUD: INTEGER;

59 1 133 6409

60 1 13M 6409 NANEATCORE,NANEATTRIPUTES,NANENECORE,NAMEMEASURES: STRIMGE243J

61 1 1:0 4461 COREMNEDATANAME: STRINGC243;

62 21 l1D 6457 AFDIDSK:STRJNOCB3$

63 1 133 6492

*64 1 131 6492 TEHPL4,TENP,TENPLI,TEMPL2,TeMPL3,CORELAST: INTEGERE02I

65 1 1:11 6510 TEfPXATTRLASTNEASLAST3INTEGER113;

66 1 1:11 6522

67 1 11D 6522 NOOEINVERSEHELP.N#SCREEN,NPRZNT:INTEGER;

68 1 133 6527 MCORELAST,NATTRLAST,NMEASLASI:INTEGER;I

69 1 13D 6530 NATTRIBUTESNNEASURESNUNEASURES:INTEGEkI

70 1 13D 6533

*71 1 1:0 6533 INLINECALLINDENTLLENGTNLENGTH,PC.,JJ#,LNN,NATTRNMEAS,3ISPNCOUUNT,

DISPCOUNT,COU,YMp2: IN

72 1 1:0 6550

*73 1 1:rD 6550 RtEFERENCEDLONGUAYPDONEOUEROFSKIPNONE:BOOLEAN;

*74 1 1311 6557

75 1 131 6557 ANSMER,LINEREGLINELINER:S7hINGESO];

76 1 133 6721

*78 1 1:0 6723

79 1 1:3 6723 PRNT3TEXT;

90S 1 1:0 7024

92 1 3:11 1 PROCEDURE PRANCNOUT;VORAR'I

8 3 1 4331 1 PROCEDURE ANTKEI;FORWARD;

84 1 413 I

*These strings, arrays and variables are used by this program.

-122-
i1 t

85 7 ISD I 489PS)SEGSENT PROCEDURE OPENATTRIiUTESFILE;

6 7 1:O 0 BEGIN

17 7 1:0 0 ($Si-9)

so 7 111 0 RESET (TTRItUTESPNAiEATTRIUUTES).

39 7 1:1 11 (8614s)

7 111 11 I:=IORESULT91 7 1:1 16 IF I<>0 THEM

92 7 182 23 BEGIN

93 7 1:3 23 URITELN('Pleoie beat with ae while I create the attributes file on the disk');

94 7 133 109 REVRITE(ATTRIBUTES,NANEATTRIBUTES);

95 7 1:3 122 FOR 13.1 TO NAHTTRIIUTES DO

96 7 1:4 139 BEGIN

97 7 135 138 SEEK(ATTRIBUTESI)3

98 7 1:5 149 FOR JIM TO 6 0

99 71:6 163 AITRIBUTESA.NDESCRIPTORCJ]: 0;

100 7 IM 16 ATTRIPUTESA.DESCRIPTOR: '"

101 7 1:5 223 PUT(ATTRIBUTES);

102 7 115 231 IF(EOF(ATTRIIUTES))THEN : 103 7 1:6 241 BEGIN

104 7 1:7 241 dRITELN('OUT OF DISK SPACE'); . 105 7 1:7 278 ANYKEY,

106 7 1:7 261 IRANCHOUT. I 107 7 1:7 284 SETCHAIN('GREETING');

106 7 1:7 299 EXIT(PROGRAH);

109 7 1:6 302 END;

110 7 1:4 302 END;

Ill 7 17 3 312 CLOSE(ATTRIBUTESLOCK);

112 7 1:3 321 OPENATTRIOUTESFILE;

113 7 1:3 323 EXIT(OPENATTRIBUTESFILE);

114 7 1:2 327 END;

115 7 1:1 327 CLOSECATTRIBUTES);

116 7 1:0 336 END;

117 7 1:0 356

I

4

OPEN ATTRIBUTESFILE creates attributes file if it does not already exist

on the disk.

* 23-

* I '' i

-123- -"

• . . -

-* ~ ,p\....'.%. S
a: : 1: (:8$P$)EGRENT PROCEDURE OPENNEASURESFILE; I 19 a 1:0 0 BEGIN

20 9 1$0 0 (81-*)

21 3 IS i 0 RESET(HEASURESNANEMEASURES) ;

22 3 121 11 (isifs) !

23 I I:l II I:IORESULT;

23 24 U 8 Ill 1:2 16 23 IF BEGIN 100 THEN

26 8 1:3 23 i IYELN('Pleast bear with me while I creote the measures file on the disk')I

27 3 123 107 REIURITE(REASURESNA EMEASURES);

28 8 1:3 120 FOR I:-I TO NMEASURES DO

29 8 124 136 BEGIN

30 3 1:5 136 SEEK(NEASURES,#);

31 8 1:5 147 MEASURES^.DESCRIPTOR:-'

32 8 1:5 162 PUT(MEASURES)I I

33 B 1:5 190 IF(EOF(REASURES))THEN !

34 8 :6 200 BEGIN

35 3 1:7 200 WRITELN(OUT OF DISK SPACE');

36 S 1:7 237 ANYKEY I

37 I 127 240 BRANCHOUT;

138 9 1:7 243 SETCHAIN('GREETING')|

39 8 1:7 257 EXIT(PROGRAM);

40 S 1:6 261 END;

141 a 1:4 261 END;I .

142 9 1:3 271 CLOSE(HEASURES,LOCK);

143 8 1:3 280 OPENUEASURESFIE;

144 8 1:3 282 EXIT(OPENMEASURESFILE);

" 145 8 1:2 286 END; I

146 8 1:1 296 CLOSE(MEASURES);

147 S 1:0 295 END;

*48 9 1S0 314j

-A I

OPENMEASURESFILE creates measures file if it does not already exist on

* the disk.

-124-
S149 9 ID I *P)OETPOM EADATTAFILE;

151 9 Ito 0 (*$1-$

152 9 131 0 ESET (ATTRF ILEjNAEATCORE)3

15 9 1: 11 I~slORESULTI

S154 9 It1130HM

155 9 131 16 IF 10>0 THEN

156 9 132 23 SEGIN

*157 91 133 23 REMRITE(ATT"FILE,NAHATCORE)l S5-159 9 1:3 36 FOR 13=1 TO NAT71%DUTES D0 g159 9 114 52 DESIN

1601 9 1:5 52 ATTRCOREC110*0

F161 9 115 7 ATTRFILE4:sATTRCOAECII;

163 9 13M 115 IF (ATTFILE) TE 163 9 135 107 IFUT(ATTFILE) TE 164 9 136 125 KelmN

165 9 137 125 WRITELN('OUT OF DISK SPACE')1 I166 9 136 162 END;

167 9 114 162 END;

161 9 1:3 172 ATTRLASY:=O;

169 9 133 137 NATTRLOIST:uOg

170 9 1:3 191 ATTRFILEA3UATTRLAST;

171 9 1:3 207 PUTUITYRFILE);

172 9 133 215 CLOSE(ATTRFILCLOCK)3

173 9 1:2 224 END

.p174 9 1:1 224 ELSE

175 9 1:2 226 BEGIN

*176 9 1:3 226 FOR 13.1 TO NAYTRIDUTES DO

177 9 1-'4 242 DEGIN

176 9 135 242 GET(ATTRFILE); I179 9 1*5 250 A1TIRCORECEM&ATTRFZLEA;

160 9 1M 276 END;

l61 v 1:3 238 BETIA77RFJLEfl

162 9 1:3 296 ATTRLAST:zATTRFILEA; 1163 V 13 312 MATTftLA1ST:=TRuMC(ATTkLAS1);

164 9 1:3 325 CLOSE(ATTRFILE);

195 9 3:2 334 END;

1.6 9 1:0 334 END;

1 9 8 J 0 3 5 2 -

READATTRIFILE loads core with index to attributes file.

-125- r..
Ift 10 1:0 1 (ISSP)SEGMENT PROCEDURE READ"EASFILE;

139 10 1:0 0 BEGIN

1 to 1:0 0 (201-1- ,"191 10 1 :1 0 RESET (NASFILE,NAMENECORE) ; i-

. 192 10 1:1 11 I:uIORESULT "*' 193 10 1:0 16 (*68S11 ) |,,..

" 194 10 111 16 IF 100 THEN

195 10 132 23 BEGIN

196 10 1"3 23 REVRITE(HEASFILE,,HAMENECORE);

" 197 10 133 36 FOR 1:-I TO NEASURES DO

199 10 1:4 52 BEGIN

1"9 10 115 52 HEASCOREEIJ:-O;

. 2 10 1:5 79 NEASFILEA :-MEASCOREC(3;

201 10 135 107 PUT(MEASFILE);

202 10 1:5 115 IF EOF(MEASFILE) THEN I

203 10 1:6 125 BEGIN

204 10 1:7 125 WRITELNWOUT OF DISK SPACE');

205 1o 1:? 162 IRANCHOUT;

206 10 1:7 165 SETCHAIN'GREETING');

207 10 117 179 EXIT(PROGRA) ;

206 10 1:6 183 END;

- 209 10 1:4 183 END;

" 210 10 1:3 193 MEASLAST:-O;

211 10 1*3 20 NMESLAST:*O;AS-"

212 10 1:3 212 EASFILE:uEASLAST;

213 10 1:3 228 PUT(NEASFILE);

214 10 1:3 236 CLOSE(MEASFILEPLOCK);

215 10 1:2 245 END

216 10 1:1 245 ELSE

217 10 1:2 247 BEGIN

213 10 133 247 FOR I,31 TO NMEASURES DO

219 10 1:4 263 BEGIN

220 10 1:5 263 GET(MEASILE);

223 10 1:5 271 HACREI=ESIEA

222 10 134 299 END;

223 10 1:3 309 GET(fEASFILE).

224 10 133 317 NEASLAST:-MEASFILEV;

225 10 1:3 333 NHEASLAST:-TRUNC(MEASLAS);l

226 10 1:3 346 CLOSE(NEASFILE);

227 $0 1:2 355 END;

228 10 130 355 END;

229 10 130 376

J,,.

READMEASFILE loads core with index to measures file.

. -126-'

-.'-,'- ." ''.'" """. .,, .""" ." .-. "' -." ..,-.,'.[,..-..a .'"- ,"-" '"," .. '- ""i ... .. i
, ~ - ~~~- \ z. rr N.~~

Y

230 11 1:3 1 (ssP$)SOMENT PROCEDURE OPENDATAFILE;

231 11 120 0 BEGIN

r232 11 Ito 0 MSS-S) P4 233 11 11 0 RESEI(SATANODEDATANAMNE);

234 235 11 11 111 Itl it 11 (M4S) I:-IORESULT; . 23 11 1,1 16 IF 100 THEN

237 11 1:2 23 BEGIN

238 11 1,3 23 URITELN("CREATE DATABASE BEFORE ATTRIBUTES AND MEASURES!');

,239 11 313 90 DRANCHOUT; |. 240 11 1:3 93 SETCHIMIN(GREETINeS'); r

I241 11 1:3 107 [IIT(PROGRAN);#'

242 11 1:2 Il END;.

243 It Ito ill END; i~i a[ 244 11 1:0 124-.,...- -

I i

OPENDATAFILE checks to be sure performance item file exists.

-127- -..-
245 12 1:D 1 (8ePS*SEGNENT PROCEDURE DEFJNEASPECTSF

246 12 1:0 0 BEGIN

247 12 131 0 ASPECT13WPotentialities';

248 12 1:1 30 ASPECTE23:8'Processes'; 249 12 1:1 55 ASPECTC3J:='Products'I

250 12 i:i 79 ASPECTC4J3s'Enviranw~vat';%

251 12 131 106 ASPECTE53:-'Constralnts';

252 12 1:0 133 END;

253 12 1:0 146

7I.

DEFINEASPECTS tells the computer the labels for the aspects file.V

-128-
%-I % V- l -. V ~W WT .~. .. .* .~Tiv .-f ...... ~ ...... ~ r . -.

254 13 ID 1 (3*P$)SEGNENT PROCEDURE READCOREFILEr , 255 3 3 110 0 BEGIN1ii

256 13 1:0 0 ISSI-*-

J 257 13 1:1 0 RESET(COREFILE,CORENANE);

258 13 1:1 11 I-IORESULT;

259 13 1:1 16 (S1S4*)

260 13 11 16 IF 100 THEN

261 13 1:2 23 DEGIN

262 13 1:3 23 MRITELN('COREFILE DOES NOT EXIST');

263 13 1:3 66 ANYKE;

- 264 13 1:3 69 DRANCHOUT;

265 13 1:3 72 SETCHAIN('GREETING');

266 13 1:3 66 EXIT(PROGRAI),

267 13 1:2 90 END

>. 268 13 1:1 90 ELSE

269 13 112 92 FOR I:-1 TO 300 DO

270 13 1*3 108 BEGIN

271 13 1:4 109 GET(COREFILE);

-. 272 13 1:4 116 CORE[[IJ:COREFILEA^

273 13 1"3 144 END""

274 13 1:1 154 OET(COREFILE);

275 13 1:1 162 CORELAST:"COREFILE ;

276 13 1:1 178 NCORELAST:-TRUNC(CORELAST);

. 277 13 1:1 191 CLOSE(COREFILE)

279 13 10 200 END;

279 13 1:0 214

READCOREFILE reads index to performance items into core.

-129- V

¢. .'-
*1,

280 14 1D9 I ($$PS)SEGENT PROCEDURE SORTCOREFILE;

281 14 1*0 0 BEGIN

282 14 1:1 0 FOR I:1 TO 300 DO 283 14 1*2 16 CORE2CX:zIl264 14 1;1 45 1:-2;

28 14 1:1 49 REPEAT 286 14 1:2 49 IF COREEI34COREEI-13 THEN * '"

267 14 1:3 94 BEGIN

268 14 1:4 94 TENP:=COREEIJ;

289 14 1:4 122 CORECI]: COREEI-13"

290 14 114 164 COREEI-13:-TEMP;

291 14 1:4 194 TE?1P2:xCORE2(1J;

292 14 1%4 213 CORE2(13:=CORE2EI-1);

293 14 114 247 CORE2(I-11:aTEMP2;

294 14 1:4 268 IF 1>2 THEN

295 14 115 275 I:-I-!;

296 14 1:3 283 END

297 14 1:2 283 ELSE

298 14 1:3 285 I-i;

299 14 111 293 UNTIL I>NCORELAST;

300 14 1:o 302 END;

301 14 1:0 320

301 14 1:0 320 (It? *S:UTILITY.TEXT)

302 14 1:0 320

?. u

SORTCOREFILE prepares an away CORE2 which lists the location of each

performance item in numeric order.

-130-.

.................................... .... .... ...

- . ~. -.- -~ .. ,- -* - . . .. .7. ..
I. .

303 1 4: £ 1SPS)PROCEDURE ANYXEY;

34 4:0 0 BEGIN

305 1 4.1 0 VRITELN( V )

306 1 4:1 18 WRITELN('$SS Please press any Key to continue 8S*')|

307 1 4:1 78 (*5R-$)

308 1 4l 78 REAP(MANS);

309 1 4:1 89 (SR+8)

310 4:0 19 END; ,311 1 4:0 102

7

=:!!-

ANYKEY displays "Please Press any Key to Continue" then it awaits a Keypress before returning control to the calling procedure.

I L

I..

- -*. * .** **.* .-

. * . - - .' . ' . *A"- '-
312 1 5:3 1 CSSPS)PROCEDURE HELPER; 91

313 1 510 0 BEGIN

314 3 5:1 0 URITELN('For help pleose refer to your APM HANUAL.')1

315 1 5:0 61 END; 1

316 1 5:0 74 j

* I

HlELPER; due to core limitations, it was not possible to implement the full :-.._...-

HlELP facility. Thus, this HELPER merely displays the message."-."

-132-,

2--

[.

• . :- ... € .. . '

HELPER; " " ". due....''""- to core, .""" limiations .. "'" .... "-", was-.'. not"....pos""sible" to.. ... implement- the "" """"" ""'" " full" ""
ff

j- .4. .. ,,o o 

305 1 431 0 VAITILNI' I306 1 431 IN

303 1 4:1 

$0 MRITELN('SS Pieese press cay Key to continue $88'); ,- 71 (sIR-C ) A,-X, . 306 1 431 76 BEGIPNS

309 1 4:1 99 ($r C)

310 1 4:0 B9 END; P.

311 1 4:0 102

:.j .

.-. 1

§.- I

ANYKEY displays "Please Press any Key to Continue" then it awaits a Keypress

, before returning control to the calling procedure.

K

.- 131-
312 1 SOP £ (IIPS)PROCEDURE HELPER;

313 1 510 0 DEGIN

314 1 5:1 0 WRITELN('For help pleose refer to your APR NANUAL.')i

, 313 1 5:0 61 END;

, 316 1 5:0 74

'I.,

q~

IIL faiiy Ths hi EPE eey ipay h msae -132-~

b 1~

'- L

. ~HELPER; due to core limitations, it was not possible to implement the full '-..

*'l HELP facility. Thus, this HELPER merely displays the messge. L,.il

-132- .

r

- a ..- 7 -
317 1 &Mi I (SPSIPROEDURE KEYND

311 61D 1 VAR t 319 a 6D 1 A1ES~ER: sTRuqGr40

320 1 6:3 22 111 ARRAYC1..43 OF INTEGER; 321 a 6:9 26 06(IOOLEAN;

322 1 6:D 27 1O:1REIER;

323 5 6:3 2

324 1 620 0 BEIN 326 1 411 0 RPA 325 1 6:1 0 (RPEA j-327 1 6:2 0 REPEAT V 1328 1 6:3 0 ANSWERWa ;a:

329 1 6:3 27 OK1STRUEI

330 1 613 30 READLNANSWER); I331 1 6:3 49 IF LEOTH(ANSWER)B0 THEN

332 1 6:4 57 MRITELN('PIeese enter the integer again');

333 1 6:2 107 UNTIL LENGTH(ANSWER)<>0;

334 1 612 115 IF (ANSWER13c='H) OR (ANSUER[11='h') THEN

335 6:3 130 HELPER;

336 1 6*2 132 FOR 1:1 TO 4 DO

337 1 63 147 BEGIN

338 1 6:4 147 ZI[":=ORDANSUER[.)-48;

339 1 6:4 165 IF (11[IC<O) OR (IIIJ>9) THEN

340 1 6:5 192 BEGIN

341 1 6:6 192 IF (1=1) OR (IrIEC<>(ORD(' ")-48)) THEN

342 1 7 214 BEGIN

343 1 619 214 OK:"FALSE;

344 1 6:6 217 RITELN("PLEASE RESPOND WITH A POSITIVE INTEGER');

345 1 6:7 275 END;

346 1 6:5 275 END;

347 1 6:3 275 END;

343 1 6:1 265 UNTIL OKUTRUE;

349 1 6:1 292 110:-lI.c13

350 1 611 302 FOR I=2 TO 4 DO

351 1 6:2 317 IEGIN

352 1 6:3 317 IF (II[I3>-0) AND (11113<z9) THEN . 353 1 6:4 344 IO:*10510 Izc[J;

354 1 6:2 361 END;

355 1 6:2 371 (SR4S)

356 6:1 371 1:M110;

357 1 6:0 376 END;

S358 1 6:0 398

KEYN reads a 3 or 4 digit response from the keyboard and places it into I. If

an H or an h are typed in, it places a 999 in I and calls the HELP routine. If

more than 4 characters are typed, only 4 characters are read. The rest are

ignored. If the character(s) are not positive intergers, KEYN will display an

appropriate warning and wait for a response.

-133-

%r
i. 6.- V _. . M. W -1 7- . .-. - .

359 1 7:0 1 (SOPS)PROCEDURE KEY;J

360 1 7D 1 VAR

361 1 70 1 112:INTEGER;

*362 1 7:0 0 NEGIN

363 1 720 0 (R-$)

364 1 7;1 0 ANSUER:-' '2

365 1 711 27 REPEAT

366 1 7:2 27 READLN(MANSUER);

367 1 7:2 47 ANS:,ANS&SERE1J; 368 1 7:2 55 IF (ANS<>'Y') AND (NSW)N') AND (ANSOW') AND (ANS0)'y') and

369 1 7:2 78 .AS<>'n) AND (ANSO'h) AND (ORD(ANS)27)THEN

370 1 723 98 MRITELN('PLEASE RESPOND YES OR NO'');

371 1 7:2 143 IF (ORDIANS)>90) THEN

372 1 733 150 BEGIN

373 1 724 150 II2:'ORD(ANS)-32;

374 1 7"4 157 ANS:-CHR(112);

376 1 7:1 161 UNTIL (ANSz'Y') OR (ANS"'N') OR (ANS',H') OR (ORD(ANS)-27);

377 1 721 186 (8$Rfa)

376 1 721 196 IF ANS-'N THEN

379 1 7:2 193 HELPER;

360 1 7:0 195 END;

391 1 7:0 210

I

KEY reads a letter response from the keyboard. If response is 1) y or Y, it places L

a Y in ANS and returns to calling procedure; 2) n or N, it places an N in ANS

and returns to calling procedure; 3) h or H1, it calls the HELP routine, places an I "-

11 in ANS and returns to calling program; or 4) any other key-it displays PLEASE ' '

RESPOND YES OR NO and awaits a Y, N, H, y, n or h response. NOTE: Only

the first character/line is processed. The rest is ignored. ,...

-134-

S e
332 1 9D 1 3SOPS)PROEDURE PREPKEY(NLP:ITEGERINSG:STRZO);

363 1 610 0 REGIN

364 1 9:1 0 NELP~uNLP;

395 1 WIa 9 REPEAT

36 1 6:2 9 WRITEMSG)l

367 3 3:2 20 KEY;

366 1 3:1 22 UNTIL (ANW,'Y') OR (ANSN') OR (ORD(OWS)27)|

369 1 8:0 41 END;

390 1 9:0 56

41

9 -

I . .

: "

" ~ ~PEPKEY displays a message then calls KEY to reed a letter response from the !2 I

SI'. keyboard. If a response is not Y, y, N, n, Yes or No, it redisplays the message,-.

- and, once again, waits for a response.

' - ~-135-"'"
~I..... . .

I

39 1 9i b (SP)POCEDUR INLINE;

392 1 91D 1 VAN

393 1 923 1 LONGLINU:STRIeSC125;

394 1 93 64 LINEOK:.OOLEAN;

396 9:0 0 KOIN

397 1 91 0 REPEAT *396 1 9:2 0 READLN(LOMGLINE)2

399 1 9:2 29 LINEOK:=TRUE;

400 1 9:2 22 N2.LENOTH(LONGLINE);

*401 1 922 29 IF 0>60 THNH

/ 402 1 913 36 BEIN I,

% 403 1 9:4 3 WRITELN'SMARNING LINE CONTAINS OVER 69 CHARACTERSS$');

404 1 94 100 URITELN( ')

405 1 94 119 PEKPKEY(39,'DO YOU MISH TO TRUNCATE TO 68 CHARACTERS? ")8

406 1 9:4 166 IF ANS='N' THEN

407 1 9:S 173 REGIN

409 1 9:6 173 LINEOK:-FALSE;

409 1 9:6 176 WRITELN('PLEASE TYPE LINE AGAIN: )5

410 1 9:5 220 END

* 411 1 9:4 220 ELSE o--412 1 9:5 222 M R:68; :,.N.

- 413 1 9:3 226 END; .

414 1 9:1 226 UNTIL LINEOKI! "

415 1 9:1 230 INLINECALL:-INLINECALL*l;

416 1 9:1 236 IF INLINECALL>25 THEN

417 1 9:2 245 PEGIN

418 1 9:3 245 NRITELN('WARNING--You have typed in over 25 now attributes end/or',

419 1 9:3 313 chr(13),' measures--the limit for the demonstration. Please select',

420 1 9:3 394 chr(13), a different analytic procedure before entering more data',

421 1 9:3 474 chr(13),' --or risk losing everything you have done today!');

422 1 9:3 554 ANYKEY423 1 9:2 556 END;

424 1 9:1 556 LINER:aCOPY(LONGLINE,1,M);

425 1 9:0 574 END; ,

426 1 9:0 592 ,

INLINE accepts up to 80 characters of text. If more than 80 characters are

specified, it asks if it ought to ignore additional characters. If told to, it does.

Otherwise, it allows analyst to re-enter the line.

-136-

..-.. , % . , . . . .
I,

*427 1 10:0 1 (SOPS)PROCEDURE SNOWALIME;

4269 1 10:0 0 PEGIN

429 1 10:1 0 NLENGTH:=LENGTH(LINE);

* 430 1 1O:i Iv NLENOTH<2 THEN

431 1 10:2 15 EXIT(SHONALINE)

432 1 O:I 19 MLE (LINErNLENGTH3. 1) AND (NLENGTH>I) DO

S433 10:2 37 NLENGT.:uNLENGTH-1;

S,435 434 1 1 10:1 10:2 54 47 IF EXIT(SHONALINE MLENGTH<2 THEN',

I436 10:1 56 IF NLENGTHN,*LLENGTH THEN

_437 1 10:2 67 1R1[IN

439 10:3 67 WRITE(LINE) ;.",'.-

439 1 10:3 79 EXIT(SHOWALINE)- 440 1 10:2 53 ENDS

441 1 10:1 33 LULLENGTH;

442 1 10.-1 9 11ILE (LINErL3O' ') AND (L>1) DO

443 1 10:2 107 L.wL-I444 1 10:1 117 L:zL-1;

445 1 10:1 125 IF L>0 THEN

446 1 10:2 132 NEGIN

447 1 10:3 132 AEGLINE:-COPY(LINE,,L)-;

445 1 10:3 151 WRITELN(REGLINE);

449 1 10:2 171 END;

450 1 1011 171 LsL+2;

451 1 10:1 179 NLENGTH:*NLENGTH-L+I;

452 1 10:1 191 IF NLENGTH<1 THEN

453 1 10:2 196 EXIT(SNOWALINE);

454 1 10:1 202 REGLINE:uCOPY(LINEL,NLENGTH);

455 1 10:1 223 FOR I:"1 TO INDENT DO

456 1 1012 239 WRITE( ');

457 1 10:1 259 NRITE(REGLIKE); J6

458 1 10:1 271 PC:-PC+z;

459 1 ,0:0 279 END;

460 1 ,oo 298

SHOWALINE displays text on the screen. If, by chance, the text is longer than __ the amount of space available on the current line, the display continues onto

a second line.

-137-

l*04
461 1 238 1 (SS0)PROCEDURE PRMNCHIMI1

462 1 2:10 o BEGIN

463 1 2.0 0 (Sol-3

464 1 2:1 0 RESEI(PASSNODE,'FASSTNRu');I

4U 1 2:1 23 ($6143)

467 1 2:1 23 IF 10>0 THEN(

463 1 2:2 30 BEGIN

469 1 2.03 30 URITELN('PASSTHRU FILE DOES NO7 EXIST');

470 1 2:3 78 MRI7ELN(' MMM*FAAL ERROI**S*)$

471 1 2:3 123 WkI7ELN'

472 1 2:3 167 AMYKEY;

47 1 2:3 179 EXIT(PROGRAM);

475 1 2:2 153 END;

476 1 2:1 133 SETCPASSNODE) I

477 1 2:1 190 CURSYS:-PASSNODEA.CURSYS;

478 1 2:1 199 CUSP:-PASSNaIEA.CURSP;

479 1 2:1 206 CURSUB:aPASSNODEA.CURSUB;

480 1 2:1 214 PAC:*PASSNODEA.PAC;

481 1 2:1 220 NCURSYS:*PASSNODIEA.NCUtSYS;

*492 1 2:1 227 MCURSP:mPASSNODEA.NCURSP;

483 1 2:1 234 UCuRSuP'uPASSMODEA.NCURSUB;

485 1 2:1 248 WCSEP;SSNOIIEA.N IC

484 1 2:1 241 NPAC:.PASSNODEA.P;

496 1 2:0 256 END:

487 1 2:0 2701

BRA tio CHN fom gtsinfrm hePASTH U fleforus byths pogam
499 1 33D 1 OSS)PROCEDURE SPANCHOUT;

439 1 3:0 0 BEGIN

490 1 3:1 0 NEWRITE(PASSNODE,'PASSTHRU');

491 1 3:1 20 PASSNODEA.FLAGI:31; iw

492 1 V:1 26 PUT(PASSNOEDU;

493 1 3:1 33 CLOSE(PASSNGDE,LOCK);

494 1 3:0 41 END;'

495 1 3:0 54

496 1 3:0 54

'497 1 3:0 54

496 1 330 54 (SSI *5:UIILITY.TEXYS) f499 1 3:0 54

*41j
500 1 11:11 1 (MIP)PROCEDURE CLOSEATTRFILE;

501 1 11:0 0 BEGIN

502 1 11:1 0 RESET(ATTAtFILEPMNA#EATCORE);

503 1 1121 13 FOR ]:=I TO NATTRII4UTES DO

504 1 11:2 29 BEGIN

505 A 11:3 29 ATTAFILEA:sAITRCORECI3;

*506 1 11:3 57 FIT14TTAVILE);

507 1 11:2 65 END;

506 1 11:1 75 AT7ftLAST:zNATTRLAST;

509 1 11:1 92 ATTRFILEA:xATTRLAST;

510 1 11:1 108 PUT(ATTRFILE);

512 1 11:0 125 END;

513 1 11:0 140

-140-
514 1 12:D 1 (86P)PROCEDUIRE CLOSEKEASFILEI

515 1 1230 0 MEIN

516 1 1211 0 RESET(NEASFILE,NANENECORE) F

517 1 12:1 13 FOR 13.1 TO NIEASURES DO

519 1 12:3 29 HASFILEA:*EACOREE13s

525 1 1221 116 PLOS(EASFLE);

521 1 123 125 ENDI

527 1 12:0 140

CL SM AFL ae idxt h esre1ieo h ik

-11
,j. 4.:

528 1 13:9 1 (SPS8PROCEDURE SETUPSCREEN; 529 1 13:0 0 BEGINL_•-

530 1 13:1 0 I:=TRUNC(CORE[NODE] DIV 1000000);

531 1 13:1 54 PAC:=ASPECTrII; 1

532 1 13:1 72 NPAC:wI;

533 1 13:1 76 TEMP:=CORE[NODE3 DIV 100;

534 1 13:1 115 TENP2:aTRUNCNCORE[NODE] DIV 10000);

535 1 13:1 151 FOR J:zI TO NCORELAST DO

536 1 13:2 167 BEGIN

537 1 13:3 167 IF(TENP2-CORErJ3 DIV 10000) AND (COREEJ, DIV 1000010000=COREEJ3) THEN

538 1 13:4 274 BEGIN

539 1 13:5 274 SEEK(DATANODE,CORE2[J-); I

540 1 13:5 298 GET(DATANODE);

541 1 13:5 306 XOBJECTIVE:=DATANODE^.TAXA;

542 1 13:5 316 NOPJECTIVE:=DATANODEA.NTAXA[23;

543 1 13:4 331 END'

544 1 13:3 331 IF(TEMP:CORECJ DIV 100) AND(CORE[J3DIV 100 1GO=CORErJ3) THEN

545 1 13:4 431 BEGIN

546 1 13:5 431 SEEK(DATANODECORE2EJ);

547 1 13:5 455 GET(DATANO[IE)1

548 1 13:5 463 XFUNPUR:=DATANODEA.TAXA;

549 1 13:5 473 NFUNPUR:=DATANODEA.NTAXA[3-

550 1 13:4 499 END; 1

551 1 13:3 488 IF CORECNODE3-CORE[J] THEN

552 1 13:4 531 BEGIN

553 1 13:5 531 SEEK(PATANODE,CORE2EJ);

554 1 13:5 555 GET(DATANODE);

555 1 13:5 563 XCHARAC :DATANODE TA xA;

556 1 13:5 573 NCHARAC:-DATANODEA.NTAXA[43;

557 1 13:4 588 END;

558 1 13:2 588 END;

559 1 13:0 598 END;

560 1 13:0 614

I

I

SETUPSCREEN sets up header for the top of each page [or screen] with appropriate information. The header contains the system class, system, subsystem,

aspect, objectives, functional purpose and characteristics information for theL

attributes and/or measures on the display.

-142-

~ :7j, ** * .- o*
561 1 14:0 1 (SSPS)PROCEDURE TOPPABE;

562 1 14:0 0 BEGIN *1563 1 14:1 0 PAGE(PRMT);

564 1 14:1 10 N:*LENGTN(CURSYS.)

565 1 1411 is IF M>16 THEN

566 1 14:2 25 NMu16;

567 1 14:1 29 LIWE:wCOPY(CLPSYSv,1,Ni

566 1 14:1 46 VRITE(PRNTS*,tLINEl Systems');

569 1 14:1 90 N:%16-LENGTN(CURSYS); . P.

570 1 14:1 100 FOR 11.1 TO N DO

571 1 14:2 116 URITE(PRNTP' )

572 1 14:1 136 NIULENOTN(CURSP);

573 1 1411 144 IF M>16 THEN

*574 1 14:2 151 M:216; I-575 1 14:1 155 LINE:zCOPY(CURSPv,h);

1576 1 14:1 174 URITE(PRNT,'*',LZNE);

577 1 14:1 196 N:*16-LENGTHCURSP);

578 1 1411 206 FOR L11l TO N DO *1579 k 1 14:2 222 WRITECPRNT,' ');

*1590 1 14:1 242 N:=LENGTH(CURSUB);

-591 1 14:1 250 IF H>16 THEN

582 1 14:2 257 N:Z16; I,563 1 14:1 261 LXNE:=COPY(CURSU8,1,N);

564 1 14:1 280 VRI7E(PfNT,'*',LINE);

595 1 1411 302 N:=16-LENGTH(CURSUP);

596 1 1411 312 FOR L:=1 TO N DO

S597 1 14:2 329I URITE(PRNT,'') -,*599 1 1411 349 WR17ELN(PRNT,'*',PAC);

599 1 14:1 379 IF NPRINT>m1 THEN

590 1 141?2 385 MRITELN(PRNT, 'ObjectiveCE',NOSJECTIVE,'3',XOLJECTIVE);

591 1 1411 450 IF NPRINT>z2 THEN

592 1 14:2 457 URITELN(PRNT,'Fctl PrPsE('vFUNPUR,'J',XFUNPUR);

593 1 14:1 522 IF NPRINTu3 THEN

594 1 14:2 529 URITELN(PRNI,'Chartics~ie,NCHARAC'',XCARAC);

-595 1 14:1 594 URITELN(PRNT,'

596 1 14:0 612 END;

*597 1 14:0 630

* VIC

TOPPAGE prints appropriate header information at the top of each page.

-143-

1 7
5" 1319 1 e:SPS)wOCEPURE TPSCREEN;

604 1 1510 29 BEINE:cpYCRSS1,)

* 600 1 15:1 49 MRIE(8',INE' STtcs'

606 1 15:1 10 MOLOTHY26,01

606 1 15:1 10e IF N>16 THEN

603 1 15:2 110 M-6

% 60 1 15:1 114 LINE:=COPY4CURSPS919M);

*611 1 15:i13 40 RITEC*'vLINE);Sytms)

6 1 13:1 155 GOToxY(26,0);

613 1 15:1 160 N:uLENGTH(CURSUB);

614 1 15:1 169 IF N>16 THEN

615 1 15:2 175 MUM16

616 1 15:1 179 LINE:xC0PY(CURSU9,1,N);

617 1 15:1 138 WRITEVV'*,LINE)I -

-612 1 1511 228 GOTOXY(44t0);

*620 1 1511 263 N:xLENOTHxOCURS )

S614 1 15:1 21 IF M>16 THEN ~~6~I__

622 1 15:1 279 LINE:2C0PY(xO8JUcTIvE,1,II

* ~~624 1 1521 308 RITELNVbjectINECGJCIV,:,IN)

*625 1 15:1 23 H:=LENGTH(XFUNPIE);j

626 1 15:.1 394 IF M>67 THEN M-=67;

*6,2 1 1511 395 LINE:xCOPYOBxFUNPUR,1,H);

628 1 15:1 41 IF NSCREEN>u2 THEN

629 1 15:2 421 NRITELN('Fbcti PrpCNFNPUR,'TIV,3LINE

630 1 1511 499 N:uLENGTH(XcHAPR);

631 1 15:1 34 IF M>67 THEN h:w67;

627 1 15ti 35 LINE:wCOPY(XcHPR1@M);

633 1 15:1 527 IF NSCREENa32 TEN

634 1 15:2 4 VRITELNChct s,'rNCHRAC,':'LINE);

*630 1 15:1 602 MRITENP );CARC

636 1 15:1 620 EI M>7TENMV

635 1 151 632 1RTEM

* TOPSCREEN displays appropriate header information at the top of each screen.

-144-

............................................
639 1 WD 1 (SSPS)PROCEDURE PRNTATTRLINE;

639 1 1610 0 BEGIN

640 1 1611 0 RESET(ATTRXIUTES,NAIEATTRIMITES); I.641 1 16:1 13 SEEK(ATTRIPUTESPNCURATTRIBUTE)l

642 1 16:1 24 GET(ATTRIDJTES);

643 1 16:1 32 MeTRM SAESRPOE3 )644 1 1611 47 LINE:%ATTRIBUTESA DESCRIP70OR;

645 1 16:1 57 WRITELN(PRNTPL1NEP,t,PKP')

646 1 16:1 109 CLOSE(ATTRIBUTES);

647 1 WO: 118 END; *

648 1 16:*0 130

*PRNTATTRLINE prints one attribute when called by PRNTTOP.

-145-
649 1 1791D O S*PSPROCEDURE 6TTRLINEDISPLAY;

650 1 1710 0 BEGIN

651 1 17:1 0 RESET(ATTRIDUTES,NAMEATTRIDUTES) I

652 1 17:1 13 SEEK(ATTRIBUTESNCURATTRIBUTE); 5

653 1 1711 24 GETCAT7RIBUTES);

654 1 17:1 32 I~wATTR~IPUTESA.NIIESCRIPTORtC53;

655 1 1711 47 LINE:-ATTRIVOTESA.DESCRIPTOR;

656 1 1711 57 N:.LENGTH(LINE);

657 1 17:1 65 IF M>67 THEN

658 1 17:2 72 M:.67

*659 1 17:1 76 LINE:=COPY(LINE,1,N)1

661 1 1711 147 CLOSE(ATTRIBUTES) I

662 1 17:0 156 END;

*663 1 17:0 169

-146-
66 ': I u.--)PMXU PU UUR E0MET7R...

664 1 18D1 32 USP)REIRE PRNITONEATIVU;

-641 1 18:2 04 EGIN

666 1 19:3 04 MEuTATTRIUTE SAND~ESCTREJ];

67 1 19:1 13 SIEK(ATTRIIUTESNDCURT R;E

663 1 1921 243 CSE(ATTRIUES);

669 1 18:01732 UE ,NTR~.C)

671 1 19:2 748 EGX

675ONATRBT 123iut prnt one; in theuboyTof theattributdisplay

-~ ~~ 67L-790 8

I.,

-117
600 1 19:0 1 (8*PS)PROCEDU)RE ONEATTRIBUTEDISPLAYI i

*682 1 19:1 0 RESET(ATTRIDUTESNANEATTRIPUTES);

683 1 19:1 13 SEEK(ATTRIBUTEStNCURAT7RIIUTE);

*664 1 19:1 24 GET(ATTRIBUTES);

665 1 19:1 32 VRITE(NATTh,'. C');

636 1 19:1 60 FORJ:.1 TO 5DO

667 1 19:2 74 BEGIN

680 1 19:3 74 K:=ATTR[IBUTESA.NDESCRIPTORCJJ;

689 1 19:3 91 WRITEMK,.1)

*690 1 19:2 113 END;

*691 1 19:1 123 LINI:SATTRIBUTESA.DESCRIPTOR;

692 1 1911 133 LLENGTH:u60;

693 1 19:1 137 MR17E('3V)1

694 1 19:1 147 INDENT!-16;I__

695 1 19:1 151 SHOUALXNE;

696 1 1911 153 VRITELN('*)

697 1 19:1 171 CLOSE(ATTRIBUME) I

698 1 19:0 1S0 END;I

699 1 19:0 194

ONEATTRIBUTEDISPLAY~~~ dipason-trbtei ~ ~ ~ h bd ~fte ~ trbt display.

-148-
700 1 20:D 1 (SSPS)PROCEDURE PRINTTHEATTRIBUTES;

-701 1 20:0 0 BEGIN

702 1 20:1 0 NATTRIuO;

703 1 20:1 4 OK:-FALSE;..

704 1 20:1 B VRITELN(PRftT,'Neasurable Attributes--To evaluate effectiveness in meting this ",

705 1 20:1 35 chr(13).' choracteristic, the following system attributes can be

measured:');

7 1 2021 182 FOR NCURATTRIBUTE:-1 TO NATTRLAST DO

707 1 20:2 199 BEGIN

708 1 20:3 199 TEMPX:,ATTRCORECNCURATTRIBUTE3 DIV 100;

70f 1 20:*3 235 TENP:&TEMPX;

710 1 20:3 251 IF TENP=COREENODEI THEN

711 1 20:4 292 IEGIN

712 1 20:5 292 OSCISTAUE;

713 1 20:5 286 NATTR:=NzATTR+I.

714 1 20:5 294 PRINTONEATTRIPUTE;

715 1 20:4 296 END;

716 1 20:2 296 END; ) 717 710 1 20:1 20:2 306 314 IF MRilTELH OKFuALSE (PRNT THENP .. ,.none' ); ""

*719 1 20:0 344 END;

720 1 20:0 359

,

"". PIIINTTIIEATTRIBUTES prints the body of the attribute display on the printer.

- . .I

.1

-149- r

. . .. '. . • .o-
'M, 1-1 'M

" J ' "

721 1 21:D 1 SSP)PROCEURE SHOMATTRIBUTES;

722 1 21:0 0 BEGIN

723 1 21*1 0 NATTRS-O; f

724 1 21:1 4 FOR U:nl TO 20 DO I

725 1 21:2 13 BEGIN

726 1 21:3 13 ATTRINDEXEII:zO;

727 1 21:3 33 NEASINDEXEI]:O*;

723 1 21:2 49 END;

729 1 21:1 59 6OTOXY(O,4);

730 1 21:1 63 VRITE(CHR(11);

731 1 21:1 73 OKIWFALSE;

732 1 21:1 77 DISPCOUNT:=O; !

733 1 21*1 91 VRITELN('teasurable Attributes--To evaluate effectiveness in meeting this ,

734 1 21:1 159 chr(13)," characteristic, the following attributes con be measured:')

735 1 21:1 255 FOR NCURATTRIBUTE:.1 TO NATTRLAST DO 4, 736 1 2112 271 BEGIN (

737 1 21:3 271 TEMPX:=ATTRCORE(NCURATTRIPUTE3 DIV 100;

739 1 2113 308 TENP:-TEMPX;

739 1 21:3 324 IF TEMPSCOREENODE3 THEN

740 1 21:4 355 BEGIN 741 1 21:5 355 IF DISPCOUNT >&10 THEN

742 1 21:6 362 BEGIN

743 1 21:7 362 DISPCOUNT:=0; 744 1 21:7 366 ANYKEY; 745 1 2117 369 GOTOXY(O,6);

746 1 21:7 373 WRITE(CHR(I11);

747 1 21:6 383 END;

748 1 21:5 383 OK:-TRUE;

749 1 21:5 387 NATTR:-NATTR+1;

750 1 21:5 395 ATTRINDEXCNATTR3:=NCURATTRIUUTE;

751 1 21:5 412 PC:8O; 1

752 1 21:5 416 ONEATTRIBUTEDISPLAY;( 4

753 1 21:5 419 IF PCu THEN

754 1 21:6 425 DISPCOUNT:=DISPCOUNT+I;

755 1 21:5 433 PC:-8;

756 1 21:5 437 DISPC UNT:=DISPCOUNTt1;.-

757 1 21:4 445 END;

758 1 21:2 445 END;

759 1 21:1 455 IF OK=FALSE THEN

760 1 21:2 463 WRITELN(' ...none')k

761 1 210 493 END;

762 1 21:0 512

SHOWATTRIBUTES displays the body of the attribute display on the screen.

1-

-150- r

• '. -. - .: , -- . i ... .. ". i, .S - . . . . . - .- , - " . , . .. " " , . - . . . -. , . - . -.- . - - . - .- .
i -- L P7 -7 7 C K70 1 22:1 1 sps R TocEDURE REWORDATTRIpUTES d

764 1 22:0 0 BEGIN

765 1 22:1 0 IF OK THEN

766 1 22:2 5 BEGIN

767 1 2233 5 REPEAT 77 1 22:4 5 GOTOXY(0P15);

769 1 22:4 10 URITECR(1),T

71 1 22:4 20 NRITEV~hich one (type 0 if done) V');

772 22*4 42 IF 1O NTHEN

77 1 2235 77 BEGIN

74 1 22:6 77 WRITELN'Please type en integer between 0 and ',NATTR,'.')1

75 1 22:6 156 ANYKEY;

*776 1 22"5 1580 END -777 1 22:3 158 UONTIL (I>n0) AND (IOuNATTR);

778 1 22:3 173 IF I<>0 THEN

779 1 22:4 180 BEGIN

730 1 22:5 180 IUa4TTRINDEXE13; 731 1 22:5 197 YRITELN('Pleose type the new attribute descriptor: 1);

782 1 22:5 259 WRITE(,..**.... ..'. 783 1 22:5 284 INLINE;

784 1 22:5 286 RESET(ATTRBUTES,NANEATTRIBUTES).

785 1 22:5 299 SEEK(ATTRIBUTESI);

786 1 22"5 310 SET(ATTRIBUTES);

787 1 22:5 318 IF LENGTH(LINER)<69 THEN

788 1 22:6 327 ATTRIIBUTESA.DESCRIPTORZ.LJNER

789 1 22:5 332 ELSE

790 1 22:6 339 ATTRIBUTESA.DESCRIPTOR:ICOPY(LINERI,68);

79 1 22:5 358 SEEK(ATTRIBUTESv,);

792 1 22:5 369 PUT ATTRIBUTES);

793 1 22:5 377 CLOSEATYTRIUTES);

794 1 22:4 386 END;

795 1 22:2 386 END

796 1 22:1 386 ELSE

797 1 22:2 388 BEGIN 79 1 22:3 388 WRITELN('There are no attributes for this performonce itea'); 799 1 22:3 457 ANYKEY;

800 1 22:2 459 END

801 1 22:0 459 EN[;

002 1 22:0 478

803 1 2210 478

* REWORDATTRIBUTES asks which attribute to reword. Then it asks the analyst ,- j to reword the attribute.

,:

-°

-151-

'.N4.
7wu~ WL-d wd wa 'TV Wd J! V X % 2K rjrIUA WvU TW 717 V- W - p r%-% r -, J -U I 'E A W - UWV ' MU

Ii

8904 1 230 1 (ISP$)PROCEDURE ELETEATTRIBUTESS

907 1 230 0 BEGIN

ON 1 23:3 5 REPEAT

609 1 23:4 5 BOTOXY(0,15);

610 1 2314 10 URITE(CIHR(1))I |

Wt1I 2314 20 WRITE('hich one (type 0 if done) ?')I

612 1 2314 60 KEYN;

613 1 2314 62 IF (1<0) OR (I>NATTR) THEN

914 1 23:5 77 BEGIN .1."

S15 1 2316 77 URITELN('Pleese type en tnteger between 0 and ,NATTR%.');

018 I17 1 1 23:5 23:3 158 156 UNTIL END; (I>"0) A ND (10,NtITTR); I""- .

919 1 23:3 173 IF 10>0 THEN|.-

020 1 23:4 180 BEGIN .1

821 1 23:5 180 , t-ATTRINDEX[C, 31.

822 1 2315 197 RESET(ATTRIUTEStNAMEATTRI3UTES);

823 1 23:5 210 SEEK(ATTRIBUTESt);

824 1 23:5 221 GET(ATTRIIUTES;-

825 1 23:5 229 FOR J3-I TO 6 DO

826 1 23:6 243 ATTRIBUTESA.NDESCRIPTOR(JJ:-0; I

827 1 23:5 268 ATTRIBUTESA.DESCRIPTOR:-"

829 1 23:5 298 SEEK(ATTRIBUTESI);

629 1 23:5 309 PUT(ATTRIBUTES);

930 1 23:5 317 CLOSE(ATTRIBUTES); I

831 1 23:5 326 ATTRCORE[IJ:zO;

0 932 1 23:4 353 END;

0 933 1 23:2 353 END

* 34 1 2311 353 ELSE -N.

635 1 23:2 355 BEGIN

836 1 23:3 355 iRTELN('There ere no oa.tributes for this performance iteel;

637 1 23:3 424 ANYKEY;

036 1 23:2 426 END;

939 1 23:0 426 END;

640 1 23:0 446

DELETEATTRIBUTES asks analyst which attribute to delete. Then it deletes

the attribute.

-152- %

-152- r :
041 1- -SSPOCDR 24: - 1 - -T I* 

942 14: 0 BEGIN~~-r: -- i046 1 24:3 65 (SS NYRO ER DDTR1U

343 1 24:2 07 EFND;RAT~20TE

344 1 2422 97 FORES 7 2N

349 1 24:2 91 SCRATCHEJ3:vJ;

M5 1 24:1 108 FRo Jfl1 TO NATYRLAST DO

05 1 24t2 124 IF COREENOIIEx(ATTRCDREEJ3 DIVl 100) THEN

352 1 24:3 176 BEGIN

353 1 24:4 176 K:-TRUNC(ATTRCOREEJJ-ATTRCOREEJI DIV 100 S 100);

354 1 2424 241 IF K0(> THEN - 55 1 24*5 240 SCRATCNKJO;

356 1 2423 263 ENDI

857 1 24:3 273 3-)

1659 958 1 2421 273 RESET(ATTRIDUTES,NA4EATTRJ3UTES);

1 24:1 264 (*10) 360 1 2421 234 FOR J.I1TO 4D0

361 1 24:2 299 ATTRIUUTESA.NDESCRIPTOhCJJIUDATANODEA.NTAXAEJ3;

362 1 24:1 336 ATTRI3UTESA.NDESCRIPTORC63:x08 t 63 1 24:*1 349 OOTOXY(0,15)I < 364 1 2421 354 WRITE(CHRUIl)); 1866 665 1 2421 364 WRITELNCP1.ose type the now attribute descriptor:')l

1 2421 425 WRITE('..#........)

567 1 24:1 450 INLINEI

368 1 24:1 452 IF LINERU'' THEN%

69 1 2422 462 BEGIN

0 70 1 24:3 462 CLOSE(ATTRIDUTES)j

0 71 1 24:13 471 EXIT(ADDATTRIBUTES) -

372 1 2402 475 N

97 1 241 9 FOR Jfl=20 DOUNTO I DO

876 1 24:*2 509 IF 9CRATCHEJ30~0 THEN

977 1 24:3 526 BEGIN

79 1 24:4 526 ATTRIBUTESA.NDESCRIPTORESJ:-J;

079 1 24:4 541 sj

880 1 24:3 547 END;

* ADDATTRIBUTES asks the analyst to type in a new attribute, then it adds

the attribute to the attribute list.

-153-
361 1 24:1 557 IF LENGTH(LINER)<69 THEM

332 1 2412 56 6 ATRIPUTES^*DESCRIPTOR:ULINER

983 1 24:1 571 ELSE

364 1 24:2 578 ATTRIBUTESA.eKSCRIPTOR: wCOPY (LINER, 1 68);

935 1 24:1 597 PUT(AT7TRIBUTES)l

986 1 24:1 605 TENPX:=COREENDDE3I10fK5 1

998 1 2431 6"69 TTRC0AEENATTRLASTI~uTEMPX;

899 1 24:1 696 CLOSE(ATTRIBUTES);

990 1 24:1 705 O0:=TRUE;

391 1 24:0 709 END;

692 1 24:0 732

892 1 24:0 732 (831 *5:MEASATTR2.TExr 3

See revius decripionage or pogrm 

-154-
393 1 25:3 1 (*$P8)PROCEDURE PRINMAMEASURE;

M9 1 25.0 0 BEGIN

1 95 1 2531 0 RESE74HEASURESNAEIEASURES)3

396 1 25:1 13 SEEK(HEASURESPHCURREASURE);

397 1 2521 24 6ET(MEASURES);

8" 1 25:1 32 VRITEFPRNT1 NMEAS,'. C');

99 1 25:1 60 FOR J:=1T06 DO

900 1 25:2 74 BEGIN J

901 1 25:3 74 IC.NEASURESA.WDESCRIPTORCIA

902 1 25:3 91 WRITE(PRNTPK,'.');

903 1 25:2 113 END;

904 1 2531 123 LINE:ZIIEASURESA.DESCRIPTOR;

* -905 1 25:1 133 WRITELNPRN7P'r,?LINE);

*906 1 25:1 163 CLOSE(IIEASURES); j907 1 25:0 172 END;

906 1 25:0 186

ise

P.O.%

PRINTAMEASURE prnsone m auein the boyof temeasure dsly

- prits mesurebody he diplay
90" 1 26:1) 1 3*6PSPROCE2J2t E ONENEASUREDISPLAY;

910 1 26.'0 0 BEGIN

911 1 26:1 0 RESET(MEASUREStNAMENEASURES);

912 1 2621 13 SEEK(HEASURESPNCURIEASURE);

913 1 26:1 24 GETMNEASURES)J

914 1 2611 32 VRIYE(NMEAS,'. E');

915 1 26:1 60 FOR J:zI T0,6 DO

916 1 26:2 74 BEGIN

917 1 26:3 74 K:WMEASURESA.NDESCRIP0FRCJJ

*919 1 26:3 91 WRITE(K,'.');

919 1 26:2 113 END;

920 1 26:1 123 LINE:=MEASURESA.DESCRIPTOR;I

*921 1 26:1 133 LLENGTH4:m60;

9212 1 26:1 137 WRITE('3r);

923 1 26:1 147 INDENT:=18;

924 1 26:1 151 SHOWALINE;

925 1 26:1 153 MRITELN( ) 926 1 26:1 171 CLOSE(IIEASUkES);

927 1 26:0 180 END;

-156-

"V-
929 1 27!D ($PS)PROCEDURE PRNTTHEMEASURES;

930 1 27:0 0 BEGIN

931 1 27:1 0 NMEAS:-O;

932 1 27:1 4 OK:-FALSE;

933 1 27:1 9 WRITELN(PRNT,'Neasures--This system attribute con be analyzed by comparing',

934 1 27:1 80 chr(13),' the following parameters uth established criteria:');

935 1 27:1 163 FOR NCURNEASURE:=l TO NEASLAST DO

936 1 27:2 179 BEGIN

937 1 27:3 179 TEMPX:=NEASCOREENCURHEASURE] DIV 100; 939 1 27:3 216 IF TEMPX=ATTRCORE[NCURATTRIBUTE] THEN

939 1 27:4 247 BEGIN

940 1 27:5 247 OK:=TRUE;

941 1 27!5 251 NMEAS:-NMEAS+I;

942 1 27:5 259 PRINTAMEASURE;

943 1 27:4 261 END;

944 1 27:2 261 END;

945 1 27:1 271 IF OK=FALSE THEN

946 1 27:2 279 WRITELN(PRNTP' ...none');

947 1 27:0 309 END;

948 1 27:0 324

j

• "-

PRNTTHIEMEASURES prints the body of the measure display.

-157-

*77
951 1 28:1 0 NMEAS:=O; ..

952 1 26:1 4 FOR I:=1 TO 20 DO|;'-

953 1 28:2 18 HEASINDEX(E :a0; - 954 1 28:1 43 GOTOXYO,7) ; '

955 28:1 48 WRITE(CHR(11.),;

9U 1 28:1 58 OK:=FAkLSE; 957 1 28:1 62 DISPNCOUNTcn -1

95 28:1 66 URITELN('Nasures--This system attribute can be analyzed by comparing't

960 1 28:1 221 FOR NCURNEASURE:al TO NNEASLAST DOIL -

961 1 28:*2 237 BEGIN .

a.%

949 1 28D 23 7E8PROCEDESCORENE URES D 100;

963 1 28:3 274 IF TENPXzfITTRCORE[NCURATTRIBUTE3 THENA 964 1 28:4 305 EGIN

965 966 1 28:5 23:6 305 312 IF BEGIN DISMNOUNT >6 THEN

967 1 28:7 312 OISPCOUNT2:=D;

968 1 28:7 316 S N YKEY; 969 1 29:7 31e 0 TOXY(0,9);.

970 1 28:7 323 RITE(CHR);"

971t 28.06 333 END; .. 972 1 28:5 333 OK:=TRUE;

973 1 28:5S 337 NMEAS: =NMEASM

974 1 26,5 345 HEASI NDEX[ NNEAS3: =NCURflEASURE ; 975 1 29:5 362 PUC=O; *

976 1 28:5 366 ONENEASUREDISPL bY; 977 1 28M 368 F PC= THEN ASLA" D 979 1 28:6 375 E DISP CUNT:=DISPHCOUNT I.

960 1 28:5 387 DNP MSFCOUNU: DISPUCOUNTI 1;

983 1 28:4 24 ENP; E

962 1 28:2 395 END

963 1 28:1 405 IF OC=FOLSE THEN 6

984 1 2e:2 413 ...TRITELN( none');

985 1 28:0 443 ENE; 986 1 28:0 462 PC: o; '

9HOW 9EASURES displays the body of the measure display on the screen.

-158-r

•• .. 977. 29... 369 IF THEN .C= •

.

* . ,,. . 978.. 1. 29: 375.......'.'." SP... ,"c ".• ',". .",":" " "D" " ". . ,'.", ,'c.a",,u,"., .4,'1;
907 1 29:D- 1 (PS)PROCEDURE RENORDMEASURES;

98 1 2910 0 BEGIN

989 1 29:1 0 REPEAT

990 1 29!2 0 GOTOXY(015)

991 1 29:2 5 •RITE(CNR(1)I); ,.-"

992 1 29!2 15 VR]TECWhich one (type 0 if done) ?');

993 1 29:2 55 KEYN;

04 1 2912 57 IF (10) OR (TH N"EAS) THEN

15 1 2913 72 BEGIN r "997 06 1 1 294 2":4 151 72 WRITELN('lese ANYKEY; type n integer between 0 ond 'NMEASv'.');

109 1 29:3 153 E

999 1 29:1 153 UNTIL (I; ) AND (I<aNNEAS);

. "1000 1 291 169 IF 1A0 THENA?.S,

1001 1 2922 175 SEIN A.-

1002 1 29:3 175 I:-ETSNDEXI) .-.

1009 1 M93 311 I ENT LM IER<6 tyethe nowmauedsrpo')

1004 1 2913 252 URES.**S,,,P.,,,,' 1|

1005 1 29:3 277 11LINE;

1006 1 29:3 279 RESEA(NEASURESNASMES SURES);,

1007 1 29:3 292 SEEK(NEASURESI);

100 1 29:3 303 GEMT(IEASURES)- : ,,'1009 1 29:3 311 IF LENGTH ILINER)<69 THEN "'"

1010 1 294 320 HEASURES)*DSCRIPTOR:BLINER

1016 1 29:3 325 ELSE

1012 1 29:4 332 MEASURESL.9SCRIPTORCOPY(LINER,168)L;

1013 1 29:3 351 SEEK(EASURES

1014 1 29:3 362 PUTIEhSURES) o n e e"ttb '

1015 1 29.3 370 CLOSE(E;SURES);

1016 1 29:2 379 END; i'?1017 1 29: 1 379 ELSE._.- "

101 1Ol 29,2 381 BEGIN--".

1019 1 29:3 381 NRITELNt'Thoro are no seasurts f'or this attribute'); '

1021 1 29:2 443 END;

1022 1 29:0 443 END;

1023 1 29:0 460

1024 1 29:0 460

REWORDMEASURES asks analyst which measure to reword. Then it asks him/her

to reword the measure. -

-159-r

a. . . . . . . .. .
1025 1 30:9 1 (88P)PROCEIUR DELETEMEASURES!

1026 1 30:0 0 BEGIN

1027 1 30:1 0 REPEAT 1026 1 3022 0 BOTOXY(OeIS)

1029 1 30:2 5 URITE(CHR(11))-

1030 1 3032 15 NRITE('Mhich one (type 0 if done) ?);

1031 1 30:2 55 KEYN; I

1032 1 30*2 57 IF (1<0) OR (I>NNEAS) THEN

1033 1 30:3 72 BEGIN

1034 1 30;4 72 WRITELN('Please type an integer between 0 and ',tNEAS,'.');

1035 1 30:4 151 A4YKEYI

1036 1 30:3 153 END;

1037 1 30:1 153 UNTIL (1>=O) OR (I<10NEAS);

1038 1 30:1 168 IF 100 THEN , 1039 1 30:2 175 BEGIN

1040 1 30:3 175 I:-,EASINDEXEIJ I

1041 1 3033 192 RESET(NEASURESNMAEHEASURES);

1042 1 30:3 205 SEEK(MEASURES,,);

1043 1 30:3 216 GET(MEASURES)

1044 1 30:3 224 FOR J:=1 TO 6 DO

1045 1 30:4 238 EASURESA.NDESCRIPTORCJ1:-0

1046 1 30:3 263 HEASURESA.DESCRIPIOR:-. ;

1047 1 30:3 293 SEEK(EASURESI);

1049 1 30:3 304 PUTNEASURES);

1049 1 30:3 312 CLOSE(NEASURES)I

1050 1 30:3 321 HEASCORECIu:-O|

1051 1 30:2 348 END

1052 1 30:1 348 ELSE

1053 1 30:2 350 BEGIN

1054 1 30:3 350 NRITELN('There are no measures for this attribute')l |

1055 1 30:3 410 ANYKEY;

1056 1 30:2 412 END;

1057 1 30:0 412 END;

1058 1 30:0 430

* %

DELETEMEASURES asks the analyst which measure to delete. Then it

deletes it.L

ft I ,% ... ftftp

-160- *ft

• _ ..' ' ._. ,.,,_.,..- . -' .,-.-_.e_-_ ,' '_ ' .- ',, ._ ._ r . ,'J _-. .¢_.',I ,,_-.'L." ,"'*" *"- - "' " ", . ".' - .' ",", * ."."-"'-". " ." ".-","- ',
1059 1 311D 1 (SIP*)PROCEDURE ADNEASURESI

1060 1 31:0 0 BEGIN

1061 31:1 0 IF NNEASLAST>-400 THEN

1062 1 31:2 9 BEGIN

1063 1 31:3 9 URITELN(^DATA SET CONTAINS LIMIT OF 400 MEASURES'); %

1064 1 31:3 68 ANYKEY;

1065 1 31:3 70 EXITADDMEASURES).

1066 1067 1 1 31:2 31tl 74 74 FOR END; JX81 TO 20 ]DO r.a6 .

1069 1 31:2 8 SCRATCH[JI:=JI

1069 1 31:1 115 FOR J:=l TO NNEASLAST DO

1070 1 31:2 131 IF ATTRCORECNCURATTRI8UTE2'(NEASCOREEJ DIV 100) THEN

1071 1 3183 183 BEGIN

1072 1 31:4 183 K:=TRUNC(EASCORE[JJ-EASCORE[J3 DIV 100 S 100);

1073 1 31:4 248 IF K>0 THEN

1074 1 31:5 255 SCRATCNCKJ:s0;

1075 1 31:3 270 END;

1076 1 31:3 280 (*I-*)

1077 1 31:1 260 RESET(NEASURESNAHENEASURES); •1078 31:1 291 (261+9)--":

1079 1 31:1 291 FOR J-1 TO S DO

1060 1 11:2 305 NEASURESA.NDESCRIPTOR[J3:ZATTRIBUTESA NDESCRIPTOREJ3;

. 1081 1 31:1 343 GOTOXY(O,1S);

1082 1 31:1 348 WRITE(CHR(11));

1083 1 31:1 358 NRITELN('PIease type the new measure descriptor (68 chorocters ovoilable:');

S1084 1 3181 442 WRITE( ...............

1085 1 311 467 INLINE;

1086 1 31:1 469 IF LINER-'" THEN

1087 1 31:2 479 BEGIN

1088 1 31:3 479 CLOSE(NEASURES);

. 1089 1 31:3 408 EXIT(ADDHEASURES);

1090 1 31:2 492 END;

1091 1 31:1 492 NNEASLAST:-NNEASLAST+I;

J 1092 1 3181 500 SEEK(NEASURES,NHMEASLAST);

1093 1 3181 511 FOR Jwz20 DOWNTO I DO

1094 1 31:2 525 IF SCRATCHEJ3<>0O THEN

1095 1 31:3 543 BEGIN I 1096 1 31:4 543 MEASURESA.NKDESCRIPTOR[63:=J;

- 1097 1 31:4 558 K:J;

1098 1 31:3 564 END;

ADDMEASURES asks analyst to type in the new measures.

9...

~~-16 1-"""

J" .-

....... ".. :: "'': .'::,'' : ": -':-';:' :::.:c:::.' "./ " ":: :.:.::: '.'-':''".:.
II

1099 1 3111 574 If lenvgth(liner)<69 then

1100 1 31:2 533 HEASURESA.DESCRIPTOR :LINER

1101 1 3131 588 also

1102 1 31:2 595 iwasuOSAdescriptar:acopv(liner,1,60); I~ Z

1103 1 31:1 614 PUT(NEASURES);

1104 1 3111 622 TENPX:IATTRCQREENCURATTRIUTEU*100+K i I

1105 1 311 670 SCRATCHI[K]:=0;

1106 1 31:1 685 HEASCORECNEASLASTJ: TEMPX

1107 1 31:1 713 CLOSE(NEASURES);

1108 1 3110 722 END;

1109 1 31:0 744

I

!

I

See previous page for program description.

-162-

.o-

- -16 2- -r"
11101 32:0 1 OSP8)PRCEDURE PRINTHEASUORES;

1111 1 32:0 0 DEGIN 11121 32:1 0 REURITEMPNI'PRINTER');

11131 32:1 21 TOPPAGEI

11151 32:1 9Ychr(3)p' characteristic, the following system attributes can be

measured: I)$

1162 320.1 196 WRITEL(PT' 'trbt)-Iealaeefciees Noubl nmeigti

11171 3211 212 PRNTATTRLlNE;

1119 1 2 256 CLOSE(PRNT);

1120 321 225 END;

-163
1122 1 33:D 1 (SSPS)PROCEIKURE EXAM INENEASURES;

1123 1 33:0 0 DEGIN

1124 1 33:1 0 7OPSCREENI

112513331 2 GOTOXY(O,4);

1126 133:1 7 WRITE(CNR(I1));

1127 1 3331 17 WRITELIV~easurable Attributes-To evaluate effectiveness in meeting this',

1123 133:1 93 chr(13)#' characteristict the following system attributes can be measured:f

1129 1 33:1 190 URITEV ');

1130 1 33:11 206 ATTRLINEDISPLAY;

1131 1 3311 209 SHOWNEASURES; -. 1132 1 33:1 210 UOTOXYO0,151 I

*1133 133:1 215 WRITE(CHR(1I));

*1134 1 33:1 225 WIITC('You may perform the following proctdures:',chr(13),

*1135 1 33:1 296 1. Add now measures 2. Reword a measure',chr(13),

1136 1 33:1 363 ' 3. Remove a measure 4. Print these measures'tchr(13),I

1137 1 33:1 442 ' 5. Return to Attributes Level 19chr(13),

1138 1 33:1 498 'Please select one: 1);

1139 1 33:1 529 REPEAT 1140 1 33:2 529 KEYN I1141 1 33:2 531 IF (1) OR (1>5) THEN

*1142 133:3 544 WRITELN('Please type an integer between 1 and V);*

%1143 1 33:1 602 UNTIL (1>-I) AND (IzS);

*1144 1 33:1 615 CASE I OF -1145 1 33:1 620 1:ADDMEASURES;

1146 1 33:1 624 2:REWOR[IHEASURES;

*1147 1 33:1 629 3:DELETEMEASURES;

*1149 1 33:1 632 4:PRINTMEASURES;I.

1149 1 33:1 636 5:[XJT(EXAMIXNENEASURES); -,1150 1 33:1 642 END;

1151 1 33:1 660 EXAMINEMEASURES; - 1152 1 33:0 662 END;I

1153 1 33:0 676

1154 1 33:0 676 ($61 *SINEASATTR2.TEXT S)

* 1155 1 33:0 676

1155 133:0 676 ($91 *5:MEASATIN3.TEXT 8)

EXAMINEMEASURES controls production of entire display for analyzing measures.L

-164-
1156 1 34:3 1 (0$PS)PROCEDURE ONEPERFITENDISPLAYI

1157 1 3420 0 EGIN

1158 1 34:1 0 SEK(DATANODE,CORE2CNODE );

1159 1 34:1 24 GET(DATANODE);

1160 1 34:1 32 K:sDATAN)DEA.NTAXA[H3;

1161 1 34:1 49 LINE: DAT P DEA. TAXA; " i

1162 1 3481 59 LLENTH'-72"

1163 1 34:1 63 IF K<>0 THEN

1164 1 34: 2 70 EGIN

1165 1 34:3 70 WRITE(' 'PKP,o ';

1166 1 34:3 110 INDENT:*6;

1167 1 34:3 114 SHOMALINE;

1168 3413 116 WRITELN(' ')"

1169 1 34:2 134 END;

1170 1 34:1 134 IF (K=O) AND (Mu3) THEN - 1171 1 34:2 147 NRITELN(' 'PK,'. 'r'Process at the Objectives level')$

1172 1 34:1 238 IF (K-O) AND (N4) THEN

1173 1 34:2 251 URITELN(' "eK,'. ','Process at the FunctionIol Purposes lvel')l

1174 1 34:0 351 END;

1175 1 34:0 364

:1*

.- .. I .". .+

SONEPERFITENIDISPLAY displays one performance iten in the body of the display

* -used to select which performance item ought to be processed next.

-165- -

- . -1 6 5""..'-" "-'
1176 1 35:D 1 (S$PS)PROCEDURE SHOMPERFITENS1

1177 1 35:0 0 BEGIN

1179 1 35:1 0 OK:zFALSEI

1179 1 35:1 4 DISPCOUNT:-0;

1190 1 35:1 3 IF M*2 THEN TEMPLI:1000000;

1191 1 35:1 50 IF Mz2 THEN TENPL3:-1000O;

1192 1 351 74 IF Mz3 THEN TEWPLI:-10000;

1183 1 3531 99 IF M=3 THEN TENPL3:100;

1184 1 35:1 120 IF Mw4 THEN TEMPLI:100;

1105 1 35:1 142 IF Mw4 THEN TENPL3:1I;

119 1 35:1 164 TENPL2:-TEMP DIV TEPLII

1187 1 3531 190 FOR OaDE:=i TO NCORELAST DO

1188 1 35:2 206 BEGIN

1199 1 35:3 206 IF (TENPL2-CORECODIJ DIV TEMPLI) AND

1190 1 35:3 245 (COREENODE] DIV TEMPL3 S TENPL3 z CORE[NODE]) THEN

1191 1 35:4 309 BEGIN

1192 1 35:5 309 OK:=TRUE; k

1193 1 35:5 313 ONEPERFITE-DISPLA;

1194 1 3515 315 DISPCOUNT:YKY ISPCOUNT+l

1195 1 35:4 323 END;

1196 1 35:3 323 IF (DISPCOUNT DIV 10 l0zDISPCOUNT) AND (DISPCOUNT<0) THEN

1197 1 35:4 342 BEGIN

1199 1 35:5 342 DISPCOUNT:z0;

1199 1 35:5 346 ANYKEY;

1200 1 35:5 349 GOTOXY(OP5);

1201 1 35:5 353 WRITE(CHR(11);I

1202 1 35:4 363 END;

1203 1 35:2 363 END;

1204 1 35:1 373 IF OKnFALSE THEN

1205 1 35:2 391 MRITELN(' ...none');

1206 1 35:0 411 END; I -

1207 1 35:0 428

L _< .

SHOWPERFITEMS controls production of the body of displays of performance items.

-166-

.. 
1206136:D I (SSPSIPROCEDUR CHNMGECHARACTERISTICS;

1209134W0 0 BEGIN

1210136:1 0 TOPSCREEN;

1211136:1 2 60TOXY(04);

S121213611 7 VRITE(CNR(ll));

1213136:1 17 N"t4,

1214 136:1 21 SRITELN('The following Characteristics are available for the Functional Purpose');

1215136:1 111 SHOWPERFITERS;

* *1216136:1 113 NRITE('Pleas* select one!

1217136:1 144 KEYNI

1216 136:1 146 CHNARAC:uI;

1219 136:1 152 TENPL4:uI;

1220 136:1 169 TEMP:=TENPfTENPL4;

1221 136:1 195 FOR 3:=1 70 300 DO

, 1222136:2 211 IF TENP=COREC13 THEN

i 1223136:3 242 BEGN

1224 136:4 242 SEEKIDATAMOVECDRE121J);

1225136:4 266 GET(DATANODE);

.j 1226 136:4 274 XCHARAC:,DATANODE.TAXA;

1227136:3 284 END; . 1228136:1 294 NSCREEN:,3-

1229 136:1 296 NPRINT:*3;

1230 136:0 302 END;

1231 136:0 316

'1 4 .

CI-ANGECHARACTERISTICS governs producing the list of characteristics when

analyst is selecting a different performance item.

I

-167- ., .,
1232 1 372D U*SPS )PROCEDMR CHANGEFU#4CTIONALPURPOSES;

123313710 0 BEGIN

1234 137:1 0 TOPSCREEN;

1235137:1 2 SOTOXY(0,4)1 7

2367137:1 17 WRIEs31 11)

23713791 17 MRT(Cu l1)

123813791 21 URITELN(CTh* following Functional Purposes art available for the objective selected; 1)

1231 137:1 117 SHOUPERFITENS;

1240 137:1119? WRITECPleose select one: 1)

1241 137:1 150 KEYN;

*1242 137:1152 TEMPL4tzII

*1243 137:t1 169 NFUNPUR:uI;I

*1244 1 37M 175 TEMPZwTEftP+TEHPL4*100;

* 1245 137:1 210 FOR Val1 TO 300 DO

1246 137*2 226 IF TENP=COREEI3 THEN3

1247 137:3 257 BEGINI

1249 137:4 257 SEEM1DATANODE9CORE20 3);

*1249 137:42831 GET(DATANODE);

1250 1 37:4 299 XFUNPURI=DATANODEA.TAXA;

1251 137:3299 END;

1252 137:1309 IF NFUNPUR<>0 THEN

1253 137:2 316 BEGIN

1254 1 37:3 316 NSCREEN*=2;

*1255 137:3 320 NPRINT?=2;

1256 1 37:3 324 CHANGECHARACTERISTCS;

1257 137:2 326 END;

1258 137:0 326 END;

* 1259 137:0 340

CHIANGEFUNCTIONALPURPOSES governs producing a list of functional purposes

when analyst is selecting a different performance item.

-168- *r

~~ ~./. ~.:* ~ * . ** :. . . . .- . . . *. . ... . . . .* ~ A.,. * % ' % *. . '*..
I1260 1 38:D I (*SPS)PROCEDURE CHANGENODE;

1261 1 38:0 0 BEGIN

1262 1 39:1 0 REPEAT

1263 1 38:2 0 NSCREEN: sO

1264 1 38:2 4 NPRINT:'O;

1265 1 33:2 a PAC:.'

1266 1 38:2 28 TOPSCREEN;

1267 1 38:2 30 OOTOXY(OP4)1

1269 1 38:2 35 VRITE(CHR(I1));

1269 1 38:2 45 VRITE('The following aspects are part of the APM:'tchr(13)p

1270 1 38:2 109 ' 1. Patentiolities',chr(13),

1271 1 38:2 150 ' 2. Processes',chr(13),

1272 1 39:2 186 3. Products'pchr(13),

1273 1 38:2 221 4. Environsent',chr(13),

1274 1 38:2 259 " 5. Constraints'pchr(13),

1275 1 38:2 297 'Pleoase select one: ')

1276 1 38:2 329 KEYN|

1277 1 38:2 330 PAC:=ASPECTEI3;

1279 1 38:2 348 NPAC:-1;

1279 1 35:2 354 TEHPL4:a;-

1280 1 38:2 371 TEMP*:TEMPL4*1000000;

1281 1 38:.2 416 GOTOXY(0,0);

1282 1 382 421 WRITE(CHR(11));

1283 1 38:2 431 TOPSCREEN?

1284 1 38:2 433 Mx2;

S1285 1 39:2 437 WRITELN('The following Objectives are available for the aspect selected: z;

1286 1 38:2 521 SHOWPERFITEMS;

1297 1 38:2 523 WRITE('Please select one: ");

1299 1 38:2 554 KEYN;

1289 1 38:2 556 NOBJECTIUE:-I;

1290 1 38:2 562 TEMPL4:lU;

1291 1 38:2 579 TEHP:TEMP4TEMPL4$lO00O;

1292 1 39:2 616 FOR i:-I TO 300 DO

1293 1 38:3 632 IF TEMP-COREE13 THEN

1294 1 38:4 663 BEGIN

1295 1 38:5 663 SEEK(DATANODE,CORE2[I3)

1296 1 38:5 687 GET(DhTANODE);

1297 1 38:5 695 XOBJECTIVE:=DATANODE^.TAXA; 1298 1 38:4 705 END; 1299 1 38:2 715 IF NOBJECTIVE0>0 THEN

CHANGENODE is the master routine to specify a different performance item

for analysis.

-169-

* .- ~ *. * . .*. -. ... *.-.

"" % "J " " , '- " ,' " , " " ". " ". " " ,, % "" ' ", " "". " "" ''" ""* .* ."". "" "" . "" 

'

* .- . .'.* " ""." .
1300 1 38:3 722 BEGIN I

1301 1 38:4 722 NSCREEN:-I;

1302 1 3814 726 NPRINT:=1;

1303 1 38:4 730 CHANGEFUNCTIONALPURPOSES; 1304 1 38:3 732 END;

1305 1 38:2 732 ,ODE:=0;

1306 1 38.2 736 FOR I:-1 TO 300 DO

1307 1 38:3 752 IF CORE[I3TEMP THEN

1308 1 38:4 783 BEGIN

1309 1 36:5 783 NODE:!w-:;

1310 1 38:4 791 END;

1311 1 38:2 801 IF NODE=0 THEN I i

1312 1 38:3 809 BEGIN

1313 1 38:4 808 WRITELN('Performanc" item 4 ',t.mp,' does not exist!');

1314 1 38:4 995 ANYKEY;

1315 1 38:3 897 END;

1316 1 30:1 997 UNTIL NODE<>0;

1317 1 30:0 904 END;

1318 1 38:0 922

I

•I c

* See previous page for program description. I

.- "70

-°A

"-170- . r
1319 1 39:D I (*$P$)PROCEDURE PRINTATTRIPUTES;

1320 1 39:0 0 SEGIN 1 1321 1 39:1 0 REWRITE(PRNT,'PRINTER:');

1322 1 39:1 21 TOPPAGE;

1323 1 39:1 23 PRINYTHEATTRIBUTES;

1324 1 39:1 25 CLOSE(PRNT);

1325 1 39:0 34 END;

1326 1 39:0 46

*1 c

'il"

I"' ' 

i PRINTATTRIBUTES controls printout of entire page of attributes. 2

-17 1- i

• .p o., o -. O Z ._-. - - • . . <. A t.Z.-L r a. A.. a.s,- n•. 
II

n1327 1 40:D I (*SS)PRDCEDURE cXAMINEATrRIBUTES; FORWARD; *.1

1328 4021

Thes. pr c d r s ar r s n e l t r o n th s p o r m

-172-
1329 1 41:D I (SSPS)PROCEDURE PREPEXATTR;

1330 1 4110 0 BEGIN

1331 1 41:1 0 REPEAT 1332 1 41:2 0 NODE:.NDDE+I;

1333 1 41:2 a IF CORECNODE3 DIV 10000 * IOOOOCORE[NODE3 THEN

1334 1 4113 73 BEGIN

1335 1 41:4 73 NSCREEW:-,;

1336 1 41:4 77 NPRINT:zJ; S1337 1 41:4 81 SEEK(1'ATANODECORE2[NODE]);

1339 1 41:4 105 GET(DATANOE);

1339 41:4 113 XOBJECTIVE:-DATANODE4.TAXA;

1340 41:4 123 NOJECTIYE:=DATANODE4NTAXA[23;

1341 1 41:3 138 END;

1342 1 41t2 138 IF (COREENODE3 DIV 100 * 100 x CORENODE3)

' 1343 1 41:2 197 AND(CORE[NODE3 DIV 1000 S I00OOCORENODE3) THEN

1344 1 41:3 263 BEGIN

1345 1 41:4 263 NSCREEN:=2;

1346 1 41:4 267 NPRINT:-2-

1347 1 4114 271 SEEK(DATANODE,CORE2CNODE3);

1348 1 41:4 295 GET(DATANODE);

1349 1 41:4 303 XFUNPUR:=DATANODEA.TAXA;

1350 1 41:4 313 NFUNPUR:=DATANODEA.NTAXA[33;

1351 1 41:3 329 END;

1352 1 41:2 328 IF COREENODE] DIV 100 S 100 > CORECNODE] THEN

1353 1 41:3 399 BEGIN

-. 11354 1 41:4 389 NSCREEN:-3;

1355 1 41:4 393 NPRINT:-3; . . 1356 1 41:4 397 SEEK(DATANODECORE2ENODE]); .1.

* 1357 1 41:4 421 GETWATANODE;

1358 1 41:4 429 XCHARAC:=DATANODEA.TAXA;

1359 1 41:4 439 HCHARAC:sDATANODEA.NTAx A43;

1360 1 41:3 454 END;

1361 1 41:2 454 1:=TRUNC(COREENODE3 DIV 1000000);

1 1362 1 41:1 508 UNTIL 1<0,

1363 1 41:1 515 PAC:=ASPECTE13;

. 1364 1 41:1 533 NPAC:=I;

1365 1 41:0 539 END;

1366 1 41:0 554

PREPEXATTR sets up header for an attributes analysis display.

-173-
1367 1 42:D 1 (S6PS)PROCEDURE PREEXA^INEATTRIBUTES;

1368 1 42:0 0 BEGIN

1369 1 42:1 0 NODE:-O;

1370 1 42:1 4 PREPKEY(109,'Nould you like to begin analyzing the first performance item?'); i

1371 1 42:1 71 IF ANSs'N' THEN .

1372 1 42:2 78 CHANGENODE1373 1 42:1 60 PREPEXATTR;

1374 1 42:1 82 EXAMINEATIRIBUTES;

1375 1 42:0 64 END;

1376 1 42:0 96

item.

I

I

-174-

I

I !

PREEXAMINEATTRIBUTES prepares computer to process the first performanee item. L :!

-174- V
1377 1 43:D I (SPS)PROCEDURE EXHEAS;

1378 1 43:0 0 BEGIN

1379 1 4311 0 IF OK THEN

1380 1 43:2 5 BEGIN

1361 1 4313 5 REPEAT

*1362 1 43:4 5 WRITE(VWhich one (type 0 to reconsider) 7')

1383 1 43:4 51 KEYN;

1384 1 43:4 53 IF (1<0) OR (I>NATTR) THEN

1385 1 43:5 68 BEGIN

1396 1 43!6 66 iWRITELN('Pleose type an integer between 0 and ',NATTR,'.');

1387 1 43:6 147 ANYKEY;

1368 1 43:5 149 END;

1389 1 43:3 149 UNTIL (I>-O) AND (I<=NATTR);

1390 1 43:3 164 IF Is0 THEN

1391 1 43.4 171 EXIT(EXMEAS); - 1392 1 43:3 175 NCURATTRIBUTE:=ATTRINDEX[I ;

1393 1 433 192 IF NCURATTRIBUTE>O THEN

1394 1 43:4 199 EXANINEMEASURES; -

1395 1 43:2 201 END

1396 1 43:1 201 ELSE

1397 1 43:2 203 BEGIN

1399 1 43:3 203 GOTOXY(O,1);

, 1399 1 43:3 208 WRITE(CHR(11);

1400 1 43:3 218 WRITELN('There are no attributes to analyze');

1401 1 43:3 272 ANYKEY;

1402 1 43:2 274 END;

1403 1 43:0 274 END;

1404 1 43:0 290

-. I.-.

EXMEAS asks analyst which measure he wishes to analyze.

L.1

*. ... 'j ...
14051 40-D I (*SPS)PROCEDURt EXAMINEATTRIBUTES;

1406 140:0 0 BEGIN

1407 140:1 0 REPEAT

1408 14012 0 TOPSCREEN

1409 140:2 2 SHOWATTRIDUTES;

1410 140:2 4 GOTOXY(015);

1411140:2 9 WRITELN(CHR(IM))I

1412 140:2 27 WRITE(" You may perform any of the following procedures:', chr(13)v

1413 140:2 98 ' 1. Examine measures for an attribute 2. Add now attributes',chr(13).

1414 140:2 183 3. Reword an attribute 4. Remove an attribute',chr(13)t

14151402 269 ' S. Print these attributes 6. Proceed to the NEXT perf item',chr(13)-

1416 140:2 365 7. Proceed to ANOTHER perf item 9. Select a different analytic proc',chr(13),

1417140:2 464 'Plaso select one: ')'

1418 140:2 495 REPEAT

1419 140:3 495 KEYN;

1420 140:3 497 IF (M) OR (1>8) THEN

1421 140:4 510 MRITELN('Please type an integer between 1 and 8');

1422 140:2 568 UNTIL (I>3l) AND (1<8);

1423 140:2 581 CASE I OF

1424 140:2 586 I:EXMEAS.

1425 140:2 590 2:ADDATTRIBUTES;

1426 1 40:2 594 3:REUORDATTRIBUTES;

1427 140:2 598 4:DELETEATTRIPUTES;

1429 140:2602 5:PRINTATTRIBUTES;

1429 140:2 606 6:PREPEXATTR;

1430 140:2 610 7:9EGIN

1431 1 40:4 610 CHANGENODE;

1432 1 40:4 612 PREPEXATTR;

1433 140:3 614 END;

1434 140:2 616 8:EXIT(EXAMINEATTRI1UTES);

1435 140:2 622 END;

1436 140:1646 UNTIL NOVE>-NCORELAST;

1437 140:1655 URITELtE('II performance items have been processed');

1438 140:1716 PREPKEY(99,'Do you wish to review any items?');

1439 140:1 754 IF ANS-'N' THEN

1440 40:2 761 EXIT(EXAMINEATTRIPUTES);

1441 140:1765 CHANGENODE;

1442 140:1 767 EXAMINEATTRIBUTES;

1443 140:0 769 END;

1444 140:0 796

1445 140:0766 (01 *5:NEASATTR3.TEXT 8)

1446 140:0786

4. ".9 .-

EXAMINEATTRIBUTES governs setting up an entire display for examining

attributes.

."

-176- ,
*-I ..-.

14471 1I0 OMMS*)EGIN

14481110 0 (SS)

1449 11:1 0 INLINECALL:.0; I145011:1 93 NIEASURES:400;

145111:61 99 NATTRIBUTES~s2001

1452 1111105 BRANCHIN; 1453 1111107 DEFINEASPECTS'

.41454 11*1110 Ap"DSK:uCONCATCOPYCURSYS,12,tCOPY(CURSP,1,2),OPY(CuRsu3,1,2),:') 4 ~ 1455 11:1202 NANEATCORE:sCONCAT(APINDSKt(COPYcCURSYS,1,4))t(COPYC~URSP,1,4)),(COPY(CURSUPbI4))'AC');

JO 1456 11:*1305 NANEATTRIIUTES:UCONCAT(APNVSK,(COPY(CURSYS,1,4)),(COPY(CURSP1,4))(COPY(CURSU,

1457 1111408 WAEMECORE.mCONCAT(APNDSIPCCPY(CURSYS,1,4)),(COPY(CURSP,1,4)),(COPY(CURSUI,1,4)),'NC'); -1459 11:1511 NAMENEASURES:-CONCAT(APDSK(COPY(CURSYS,1,4)),(COPY(CURSP,1,4))(CPY(CURSU,1,

1459 11:1614 cORENANE*=CONCAT(APNIDSKP(COPY(CUIRSYS,1,4)),(COPY(CURSP,1,4)),(CPY(CURSUP1,4))'Col); 11460 11:1717 DATANANEuCOCAT(APDSK(COPY(CURSYS1,4)),(COPY(CURSP1,4))(COPY(CURSU,1,4)),'F'fl

1461 11:1620 OPENDATAFILE;

1462 11:18B23 DP[NhTTRJBUTESFILE;

1463 11:1826 OPENMEASURESFILE;

1464 11:19129 READATTRFILE;

1465 11:1832 READMEASFILEt

14"6 111635 READCOREFILE;

1467 11!:1938 SORTCOREFILE;

1469 11:1941 PREEXAMINEATTRIBUTES; 1469 11:1943 CLOSEATIRFILE;

1470 11845 CLOSEMEASFILE;

1471 11:1847 BRANCHOUT;

1472 11:1849 SETCHAJN('GREETING');

1473 1130963 END.

AIAINROUTINE for specifying attributes and measures.

-177-

zeJeL-
I 

~

I ., a

-j1 ~:~- - ). .~ I

1~

1~~

I ~

9. 

1

I ~

'S *1 'S

'S

ir

-178- . 'S r

.... .-- --

.-. _ ___ __________ 4- _______________ __ ~ ________ ~A.
,' .''.-

.-. 6.%

MEASUREMENT PURPOSE PROGRAM (MEASPURP)

I I

The measurement purpose program allows the analyst to edit measurement

purposes (adding, rewording and deleting as appropriate). It also allows the

analyst to associate (or disassociate) measurement purposes with characteristics. ,

As characteristics are associated and disassociated, the corresponding objectives

and functional purposes are treated in a similar way. Thus, objectives and -"'

functional purposes are never associated (or disassociated) directly.

,1.' '.9

-179- ";-

................................................
*' iSt

I I I:D I (SOL PRIMTER: 8)

2 1 I:D I (SOS4 3 1 1*11 1 (S Prograo to €oibpos* seasuronent purpose index*) 4 D 1 (8 Ronald 0. Shapiro Version 2.0 10/25/828)

1 lSd I Progras ( Formissue;

&. 1 1:0 3 .. ." 28 1:10 3 e-.''

S 28 23D I PROCEDURE SETCHAIN(TYTLE:STRING)|

9 26 3:D 1 PROCEDURE SETCVAL(VAL:STRING); 10 28 4:D 1 PROCEDURE GETCVAL(VAR VAL:STRING);

11 28 5:D 1 PROCEDURE SWAPON;

12 28 6:D 1 PROCEDURE SUAPOFF;

13 20 6:D 1

14 1 i:1 1 Uses Choinstuff;

15 1 i:D 3

ii

Thes prcdrsae .- ato h ApeCmue'sCANTF lbayety ,. -.. -

The demonstration package uses only SETCIIAIN which causes another program

to be activated.

. 1%

%~ ... .

.. ,, ... . .. . .. . .. . .. . .. .... ......... ".-'

- -- = - -. n -. t - n- .. .. .. I *. *.-.. '-l--* -:--* .
16 2 133 3 (SSPS)TYPE

17 1 Ito 3 PASSFILE ERECORO

is 1 SID 3 CURSYS vCURSP vCLRSUDpPAC: STRINGE8O3;

19 1 ItD 3 NCURSYSNcuSPNCURSUB,NPACFLAGZtFLAG2,FLAG3?*INTEGIR;

2 1 13to 3

22 1~ Ito DAYAUASEaRECORD ITGR

23 Ito 1 3 NAE ARRAYI.2] F NEGR

20 1 3 DA TAA OF 1NTEGE8r3;

253 1 133 3 END;

36 1 1:3 3

271 Io 3ISUFL RCR

291 19 3NITGR

291 Io 3 NM:ARYI.3O TII83

33SSFIto fo communicatiCo ewe rgas[eeGETN rga] D3TBA1 tonasabsi lis ofNMPCE perfrr.. ance itOems SSEI onan

allows for fast printout of repeated performance items.

-181-

... . . . . . . . . .
37 1 1:D 3 (SSPS)VAR

38 1 £30 3 DATANODE:FXLE OF DATABASE;[

*39 1 130 343 COREFILEZFJLE OF INTEGER163;

40 1 V:0 651 PASSNODE:FILE OF PASSFILEI .. *41 1 IM 1122 ISSUE:FILE OF ISSUEFILE;

42 1 1:0 2180 FASTISSuE: FILE OF FASTFILE;

43 1 1:10 2499

44 1 1:D 2499 XCHARAC,XFUNPUR, XOBJECTIVEvPAC vCURSYS9CURSPtCURSU9: STRINGCSOI;

45 1 110 2786 NC1JRZSSUE ,MCHARACNFUNPURNODJECTIVENPACNCURSYS,NCURSPNCURSUD: INTEGER;

46 1 i1o 2794

47 1 1:0 2794 APNDSK:STRINOCSII

46 1 1*M 2799 NA&EFASTISSUE,CORENAME,OATANANE,!SSUENNE: STRJNOC24I;

*49 1 130 2651

50 1 1:0 2851 CORE: ARRAYC1..3001 OF INTEGERE83;

51 1 I:o 3751 CORE?: ARRAYCI.*3003 OF INTEGER;

52 1 130 4051

53 1 12D 4051 ISSUEDATA: ARRAYE1*.2253 OF INTEE839;

54 1 1:0 4726

55 1 3M 4726 FLAG: ARRAYEI..300) OF BOOLEAN;

*56 1 1*0 5026

57 1 105026 ASPECT: ARRAYC1..53 OF STRINGr143;

58 1105066 INVERSEA: ARRAYEI..53 OF INTEGER;

*59 1 110 5071

*60 1 130 5071 DISPCOUNT,GOPAOECOUNTINVJERSENELPNSCREENNOOE:INTEGER;

61 1 130 5078 NCORELAST,NISSUESNUISSUESITENCOUNT:INTEGERJ

62 1 1'9D 5082 TENPLITENPL2,TENPL3,TENPL4,TENPL5,TEMPL6,TENPCORELAST: INTEGERE83;

63 1 1:0 5106 IJKLhNNNINLINECALLINOENTNLENGTNLLENGTPPCTENP2:INTEGER;

64 1 I:D 5119

65 1 1:0 5119 CHARACTERISTIC,NEXTCHARACTERISTIC,LASTCHAkRACTERISTIC:IOOLEAN; *.-.'

66 1 1:0 5122 RtEFERENCED.LONGWAY,DONEPOVER,OK,SKIP:IOOLEAN;

67 1 1:10 5128

66 1 3110 5129 LINER:STRING 80 1;

69 1 130 5169 LINEWSRINGESOJ;

70 1 1:0 5210 PROCESS:STRINGEL5Z;

71 1 1:0 5218

72 1 130 5218 ANSWERREGLINE:STRINGEI03;

73 1 130 5300

*74 1 130 5300 ANStANSNOL0S CHAR;

*75 1 120 5302

76 1 2:0 1 PROCEDURE EXAMINEISSUESIFORWdARD;

77 1 3:0 1 PROCEDURE COMPACTISSUES;FORWiARD; I

78 1 3: 1

*76 1 3M 1 0811 *5:UTILITY.TEXT*)

79 1 3:0 1

* These strings, arrays and variables are used by this program.

-182-
so 1 : (SSPS:PREDuIR ANYKEY;

02 1 431 0 URITELNV )

4 4311 1 is RITELNC'**$ Please press any key to continue **);

65 1 431 79 READ(ANS)

4 6 1 4:1 99 (3$RS) 197 1 4:0 99 END;

Be 1 4:0 102

:183
89 1 5:1 1 (SP$)PROCEDURE HELPER;

90 1 5:0 0 BEGIN

91 1 5:1 0 URITELN('For help please refer to your APH NANUAL.');

92 1 S:O 61 END;

93 1 S:O 74

-184

... ...

a- I

lI

o-O-

*. HELPER; due to core limitations, it was not possible to implement the full

:", .. HELP facility. Thus, this HELPER merely displays the message. "

oK:

-184- -1
,

94 1 61D 1 (SP$)PROCEDURE KEYN;

95 1 6:0 1 VAR

96 1 6:D 1 ANSER: STRING[403;

97 1 61D 22 I1: ARRAY[I..43 OF INTEGER

98 1 6:D 26 OK:BOOLEANS

99 1 6:11 27 11O:INTEGER;

100 1 6:D 28

101 1 6:0 0 BEGIN

102 1 6:0 0 (*$R-$)

103 1 6:1 0 REPEAT

104 1 612 0 REPEAT

105 1 6t3 0 ANSMER:=* 01

106 1 63 27 OK:=TRUE;

107 1 6:3 30 READLNANSWER);

108 1 6t3 49 IF LENGTH(ANSWER)O THEN

109 1 6:4 57 MRITELN('Pleose enter the integer agoin');

110 1 6:2 107 UNTIL LENGTH(ANSWER)>0

11 1 622 115 IF (ANSERCI]3'H') OR (ANSWER[I]='hl) THEN

112 1 6:3 130 HELPER;

113 1 622 132 FOR 13-l TO 4 DO

114 1 6:3 147 BEGIN

115 1 6:4 147 I!CI1*mORD(ANSWERCXJ)-49;

116 1 6:4 165 IF (1I[3<0) OR (1II>9) THEN

117 1 6:5 192 BEGIN

118 1 6:6 192 IF (.l1) OR (IICIX>(ORD(' ")-48)) THEN

119 1 627 214 BEGIN

120 1 6:8 214 OK1.vFALSE;

121 1 6:8 217 MRITELN('PLEASE RESPOND WITH A POSITIVE INTEGER');

122 1 6:7 275 END;

123 1 635 275 END;

124 1 6:3 275 END;

125 1 6:1 285 UNTIL OKzTRUE;

126 1 6:1 292 1I0:-XIE13;

127 1 6:1 302 FOR 1:=2 TO 4 DO

128 1 6:2 317 BEGIN

129 1 6:3 317 IF (IIC13>=O) AND (11M1309) THEN

130 1 6:4 344 110uI10*1O+ICII;

131 1 632 361 END;

132 1 6:2 371 (MSRMS)

133 1 6:1 371 I30110;

134 1 60 376 END;

135 1 620 398

KEYN reads a 3 or 4 digit response from the keyboard and places it into I. If

an H or an h are typed in, it places a 999 in I and calls the HELP routine. If

more than 4 characters are typed, only 4 characters are read. The rest are

ignored. If the character(s) are not positive intergers, KEYN will display an

appropriate warning and wait for a response.

-185-

p---,
136 7:3 1 ($PS)PROCEDURE KEY;

137 1 7:D 1 VAR 133 1 7:3 1 112:INTEGER;

139 1 7:0 0 BEGIN

140 A 7:0 0 ($SR-$)

141 1 7:1 0 MISVER:,'"

142 1 7:1 27 REPEAT

143 1 7:2 27 REAJXN(ANSWER);

144 1 712 47 AMS:=ANSiWER11;

145 1 732 55 IF (ANS0'Y') AND (ANS<'N') AND (ANS<>'H') AND (ANS<>y') end

146 1 722 71 (ANS<>'n') AND (AS<'h') AND (ORD(ANS)027)THEN

147 1 7:3 99 URITELN('PLEASE RESPOND YES OR NOt')

140 1 72 143 IF (ORD(ANS)>90) THEN

149 1 713 1so NE.IN

130 1 714 150 II2:uORD(MANS)-321

151 1 7:4 157 AfI:nR(112);

152 1 723 161 END;

153 1 7:1 161 UNTIL tAWSv'Y') OR (ANSa.N') OR (ANSu'NI) OR (ORD(MANS)s27)$

154 1 7:1 196 M3RM8

155 7"1 136 IF ANS='N" THEN

" 156 1 752 193 HELPERN

157 1 7:0 395 END;

158 1 7:0 210

KEY reads a letter response from the keyboard. If response is 1) y or Y, it places "

a Y in ANS and returns to calling procedure; 2) n or N, it places an N in ANS

and returns to calling procedure; 3) h or 11, it calls the HELP routine, places ani

11 in ANS and returns to calling program; or 4) any other key-it displays PLEASE -'.

RESPOND YES OR NO and awaits a Y, N, H, y, n or h response. NOTE: Onlyv

the first character/line is processed. The rest is ignored.

d-186-

p. ,'r,-.
159 8 : 1 (8PS)PROCDURE PREPKEY(MLP:INTEGER;NSGISTING);

140 1 8:O 0 KOIN

161 1 3:1 0- HELPILP f 162 1 .11 9 REPEAT

163 1 352 9 URITE(NSG);

164 1 312 20 KEY;

165 1 l1 22 UNTIL 1ANS-'Y') OR (10S'N') ON IORDANS)271)

16 1 8:0 41 ENDS

167 1 a:. 56

It..

I II

- ~PREPKEY displays a message then calls KEY to read a letter response from the"'" keyboard. If a response is not Y. y, N. n, Yes or No, it redisplays the message'--- and, once again, waits for a response. ' .'

1-187-

'.e *...

ii.

* ""/ ,""."." '"""" . .'". , , """"""""".'""""'"- . , - - . -'' -""""""'"'"""". . . . ." ".".' V'' .
169 1 9:0 1 VAR

170 1 9"D I LONGLIMESTRIN[1253

171 1 9:0 64 LINEOK:DOOEAN;

172 1 913 65 173 1 930 0 MBGN

174 1 9:1 0 REPEAT

175 1 9:2 0 IADLN(LONGLINE);

176 1 92 19 LINEOK:-TRUE;

177 1 92 22 rNtLENGTH(LONGLINE);

173 1 9:2 29 IF 068 THEN

179 1 9:3 36 KGIN

10 1 9:4 3 dlITLN('881ARNING LINE CONTAINS OVER 68 CHAACTERSS'8);

11 1 914 100 WRITELM(" ')I

162 1 9t4 110 PPKEY(39,9'O YOU WISH TO TRUNCATE TO 6B CHARACTERS' )'

103 1 9:4 166 IF ANS-'N THEN

184 1 915 173 KOIN

135 1 9 173 LINEOK:FALSE;

186 9:6 176 NRITELN('PLEASE TYPE LINE AGAIN: ')l

137 1 9 220 END

leg 1 914 220 ELSE

189 1 9: 222 68"

190 1 91:3 226 £ND; "

191 1 9:1 226 UNTIL LINEOK192 1 9:1 230 INLINECALLUINLINEC.LLI193 1 911 238 IF INLINECALL)25 THEN

194 1 912 245 NEGIN

195 1 913 245 WRITELNS'VARNING--You hae typed in over 25 now attributes end/ot',

196 1 9:3 313 cht(13)#' mesuros--the limit for the deonstrotion, Please select',

197 1 9:3 394 chr(13)' * different nelytic procedure before entering are detev

196 1 913 474 chr(13),' --or risk losing everything you hove done todeyI')i

199 1 9:3 554 ANYKEYS

200 1 922 556 END;

201 1 9:1 556 LINER:GCOPY(LONLIN,1IH)

202 1 90 574 END

203 1 910 592

INLINE accepts up to 80 characters of text. If more than 80 characters are

specified, it asks if it ought to ignore additional characters. If told to, it does.

Otherwise, it allows analyst to re-enter the line. 1l

-188- I

l..2: . .. .

-188

.,> .. -. ,.'..*.* ..-.,.,* ... ., ., ,. . . .'.. : .,,.,......,-,,., - . , . . . . . ., .,,' . . ,.** - .. , . . . ,.-, ....~--~.... "- . ." "- " * ' ' "'-"- ' "--. -_.L- '... ,,'- ', _ K. Y .'.'K..,"% ...,V. .. ...... \.'
204 1 1016 1 (SP)PROCEIURE UNOMALINE I

205 A 1@09 0 BEGIN

20 1 1011 0 NLUNSTNLENGTH(LINE)

207 1 10:1 S MILE (LINECNLENGTR]' "I MN D (NLENGTHfl) 30

206 1 10:2 26 NLINGTH :-NLENOTH-1

209 1 1011 36 V MLhNGTH<2 THEN

210 1 10:2 43 EXIT(SHNOALINE)l

211 1 1011 47 IF NMNGTIKLLENGTH THEN

212 1 10:2 5 BEGIN

f 213 1 1013 56 MRITE(LINE)

,J 2 1 1013 6 EXITISHI4OALINE) L

215 1 10:2 72 END;

216 1 2011 72 UIFLENTHN

217 1 10O1 76 WILE (LINEL2O' 1) AMN D 901)D

~'1219 1 10:1 106 L L-11

213 1 101 96 LL-1

220 1 11:1 114 IF 0)0 THEN

221 1 1012 121 OIN'

222 1 1013 121 mrnLINE:COPV(LINE1,L) 4

223 1 103 140 ItTEI.N(MLINE) ;" 224 1 10:2 160 END

225 1 201 1640 L TELG2, NE)

226 1 10:1 t 16 MLw4.1 &KT NGLNT1-L#31"

227 3 J0:1 290 IF MLENOTH<1 THEN . .1

220 1 10:2 167 EXEIT(SNOWALIE);

229 1 10:1 191 MOLINE: COPT4LNE ANL9NTH); 230 1 10:1 212 FOP 1tl TO IKNT 00

231 .1 1012 22 uIltE "I)

232 1 101 246 WITUIRELINE),

233 1 10:1 260 PCPC01 .

234 1 1020 26 ND.

235 1 1010 286

%4 %

SHOWALINE displays text on the screen. If, by chance, the text is longer than

the amount of space available on the current line, the display continues onto

a second line.

* ra -

L°I**" -18.- • ° ' " 0 ... .
236 1 11: 1 (SPS)PROCE[M IWUACHIN; 237 1 1130 0 KOIN

239 1 WO: a 8I8

239 1 11:1 0 KSET (PASSND[,'•PASSTHRU" );

240 A IM:1 19 =IuIORESULT;

241 1 11:1 24 ($$148)

242 1 11:1 24 IF 100 THEN 243 1 11:2 31 KOIN J

244 1 11:3 31 URITELN('PASSTHfRU FILE DOES NOT EXIST');

245 1 11:3 79 WRITELNV $a$$*$FATAL ERRORMV8$'

246 1 1133 124 IRITELN(" ',1)

247 1 11:3 168 ANYKET |

241 1 13:3 170 SETCHAIN('PGMI');

249 1 11:3 190 EXITIPROGRA);

250 1 11:2 104 END;

251 1 11:1 164 OET(PASSNODE); I :':

252 1 11:1 192 CURSYS:-PASSNODEA.CURSYS;

253 1 1131 202 CURSP: UPASSNODE .CURSP;

254 1 11:1 212 CURSU2:-PASSNOD[.CURSU9-

256 1 11:1 222 PAC:uPASSODE.PAC URY.

256 1 11:1 230 pCURSYS:aPASSNODENCURSYS•

257 1 1131 239 NCURSP:uPASSODEA.NCURSP;

258 1 1131 246 NCULSU:-PASSNODEA.NCURSU9;

259 1 1131 257 NpAC:SPASSNODEA.NPAC;

260 1 11:1 266 CLOSE(PASSNODE);

261 1 11:0 275 END; (

262 1 110 290

I gets i

BRANCHIN gets information from the PASSTHIRU file for use by this progJram. . .

pp .'

-19o- r
26U 1 12:0 1 (SP)PROCE3URC UNCHOUTU

264 1 1230 0 DEAIN

265 1 1221 0 MMRITC(PASSMOIE,'PASSTHMPU); I266 A 1231 21 PASSNODEA.FLAGZIUII

267 1 12:1 29 PUT(PASSNODE)I

268 1 1231 37 CLOSE( PASSNODE tLOCK) I

S1269 1 1220 46 ND;~ U270 11220 so

**271 112:0 50

272 1 12:0 50 Sf272 1 1220 58 4861 MlUTILITY9TEXTSI

274 1 12t* 56 %

BRNHU lod1h ASHUfl ihaporaedt o s ycle

prgas

'7'
275 1 13: D I (SPS)PROCEIURE DEFIREASPECTS; I276 1 13:0 0 DEBIN

277 1 13:1 0 ASPECTC1]:uPotentiolitits';

273 1 1311 30 ASPECTU2J:-Pvocesses'l

279 1 13!1 55 ASPEcC3J:*Products';

200 1 13:1 79 ASPCTOWEnviroument';

201 1 13:1 106 ASPECTE53t'Constreants'I

202 1 13:0 133 END;

23 1 13:0 146 I

IEIE SE Tsin a e oec set
264 1 14:3 1 (SOPS)MMOEDURE REAIICOREVJLE;

2 1 14:0 0 BEGIN

206 1 1430 0 (S$-9)

217 1 1431 0 RESET(COREFZLEPCORENAWN)

23 1 14:1 11 1twIORESIJLTI

29 1 14:1 16 (*$1+$) 290 1 1431 16 IF 100 THEN f 291 1 14:2 23 KOIN , 292 1 14:3 23 iWRITELN('COREFILE DOES NOT EXIST');

293 1 14:3 6 IRITELN(' SMSSFATAL CRROI88 ')I

294 1 14:3 109 WRITELNV tD;)

295 1 14:3 152 AIYKEY.

, 296 1 14:3 154 IRWNCHOU71

•297 1 14:3 156 SUTCHAIN('REETING')

2960 14:3 170 EXIT(PROGRA )

29? 1 14:2 174 END

300 1 1431 174 ELSE

301 A 1432 176 FOR Vlz= TO 300 0

302 1 14:3 192 3E6IN

303 1 14:4 192 GET(COREFILE)3

304 1 14:4 200 CORE(13:COREFILE41

305 1 14:3 228 END;

306 1 14:1 238 GET(COREFILE)1

307 1 141,1 246 CORELAST:=COR FILEAI

308 1 14:1 262 NCORELAST : =TRUNC (CORELAST)

309 1 1431 275 CLOSE(COREFILE)

310 1 14:0 284 END;

311 1 1430 300

READCOREFILE reads performance item index file from disk into core.

-193-r
312 1 15:3 1 (8SPS)PROEDUlRE SORTCOREFILE;

313 1 15"0 0 DEGIN 314 1 1511l 0 FOR Val- TO 300 DO

315 1 15:2 16 CORE2El2a1ll

316 1 1531 45 I:=2;

317 1 I5:1 49 REPEAT

319 1 15:2 49 IF CORE[I<CORE(I-1 THEN

319 1 15:3 94 REGIN

320 1 15:4 94 TENP:uCOREEI3

321 1 15:4 122 CORECI):-CORE[I-11

322 1 15:4 164 COREEI-1J:-TENP;

323 1 1534 194 TEMP2:sCORE2[CI3

324 1 15:4 213 COAE2[11:-CORE2[1-131 325 1 15:4 247 C01t2[ 1-13' TEHD2| "

324 1 15:4 266 IF 1>2 THEN

327 1 15:5 275 I:I-1;

328 1 15:3 283 END

329 1 15:2 263 ELSE

330 1 15:3 26 Iu1I+1

331 1 15:31 293 UNTIL I>NCORELASTI

332 1 15:0 302 ND;

333 1 15:0 320

I

+i !

Y'I

I,

SORTCORETILE constructs the permutation vector for the performance items.

II
334 163 I (89P$)PROCEDURE OPENISSUEINDEX; e

335 1 16"0 0 BEGIN

337 1 1611 0 RESEMSSUErISSUENAME)

336 1 1611 11 (85I8)

339 1 16:1 11 IF IORESULTO0 THEN

340 1 16:2 17 BEGIN

341 1 16:3 17 VRITELN('PI@s.. boor with we while I create the Issue Index on the diskl')

342 1 16:3 99 REWRITE (ISSUE, ISSUENME);

343 1 16:3 112 FOR I:ul TO 225 DO

344 1 16:4 128 ISSUEA.DATA i):-0-

34 14 16:3 167 FOR Va1 TO HISSUES DO

346 1 16:4 183 BEGIN

347 1 16:5 193 FOR Jst1 TO 2 DO

l 1 348 1 16:6 197 ISSUE^,/EJJ "

M"

349 1 16:5 268 ISSUE.NUM:II,

350 1 1615 275 SEEK(ISSUEI)

351 1 16:5 296 PUT(ISSUE);

352 1 16:5 294 IF(EOF(ISSUE))THEN

353 1 16:6 304 iEGIN

354 1 16:7 304 WRITELO(OUT OF DISK SPACE'); 355 1 1617 341 URITELN(" *$FATAL ERROR88 ");

AN"KEY

. 356 1 1617 376 AWYKEY;

357 1 16:7 360 SETCHAIN(VGREETING')-

358 1 16:7 394 EXIT(PROGRAM);

3591 1 16:6 396 END;

360 1 1614 398 END;

361 1 16:3 409 CLOSE(ISSUELOCK);

362 1 16:3 417 OPENISSUEINDEX;

363 1 16:3 419 EXIT(OPENISSUEINDEX)"

364 1 16:2 423 END

365 1 16:1 423 ELSE

366 1 16:2 425 BEGIN

367 1 16:3 425 NUISSUES:-NISSUES411

369 1 16213 433 REPEAT

369 1 16:4 433 NUISSUES: NUISSUES-1I

370 1 16:4 441 SEEK(ISSUENUISSUES);

371 1 16:4 452 GETM(SSUE)

372 1 16:3 460 UNTIL (ISSUEA.MNAEtIIQ> 1) OR (NUISSUES-) ,

373 1 16:3 527 IF (NUISSUESsI) AND (COY(ISSUEANKE[I )5 ') THEN

374 1 16:4 567 NUISSUES1:0,

"375 1 16:2 571 END;

376 1 16:0 571 END;

377 1 16:0 598

OPENISSUEINDEX counts how many measurement purposes were specified in

.. previous analyses. If ISSUE file does not exist, it creates one.

-~ -,-

f 1: -195 -,-

I I
. 0- 1-: 1- *.7~ Z- .. T..*7 7 - -t! I: Ql4-

44%379 1 173D 1 (SSPS)PROCEDURE DISPLAYNAWEt'

379 1 17:0 0 BEGIN

380 1 17:1 0 SEEK(ISSUEI);

361 1 17:1 11 KTISSUE);

392 1 17:1 19 URITELNl,'. ,IlSSUEA.NAMEE1JCHR(13)v, ',ISSUEA.NAMEE[23,CNR(13));

363 1 17:0 135 END;

384 1 17:0 14984

DISPLAYNAME~~~~ ~ ~ n ~ esreetproe ~ ~ dipastenmeo 
385 1 18D 1 (S$P$IPROCEDURE DISPLAYISSUES;

306 1 18:0 0 BEGIN

" 387 1 19:1 0 PAGE(OUTPUT) )

38 1 19:1 10 IF NUISSUES=O THEN

389 1 18:2 17 BEGIN

390 1 10:3 17 iRITELN'Currently. there ore no measurement purposes in the APN for this

system and subsystem');

391 1 1S:2 146 END

392 1 18:1 146 ELSE

393 1 10:2 148 BEGIN

394 1 16:3 148 WRITELN('The following measurement purposes are currently included ')i . 395 1 19:3 238 FOR I:-a TO NUISSUES DO

396 1 18:4 254 BEGIN

397 1 18:5 254 DISPLAYNAHEI

398 1 18:5 256 IF (I HOD 6=0) THEN

399 1 18:6 265 BEGIN

400 1 18:7 265 ANYKEY;

401 1 18:7 267 PAGEWOUTPUT) I

402 1 18:6 277 END;

403 1 18:4 277 END;

404 1 18:2 297 END;

405 1 10:0 287 END;

406 1 18:0 306

! L

* DISPLAYISSUES displays names'of all measurement purposes.

-- 197-

. .... .. . .. . ** -. . .4 *. * .. . 4 ,.* * . *% .4 4.4.** *-". *,
_J~ I L

407 1 19:0 1 t3SPW)ROCEDURE ERASEAFASTISSUE4III:INTEGER); :~

409 1 19:0 0 KGIN:

409 1 19:1 0 RESIT(FASTJSSUEeNANEFASTJSSUE)5

410 1 19:1 13 IF IORESULTx 0 THEN

411 1 19:2 19 REGIN Q i

*412 1 19:3 It SEEK(FASTISSUEP!I);

=413 1 19:3 20 FOR A:-1 TO 300 DO

*414 1 19:4 44 FASTISSUEA.pRINTITCJJ:uFALSE;

415 1 19:3 72 PUT(FASTISSUE) U

416 1 19:3 s0 CLOSE(FAS71SSUE);

417 1 19:2 69 END; I

418 1 19:0 6? END;

*419 1 19:0 104

ERAEAF STISUE ustbeeraed F~nSUE or ny eaure entpuros bein ASTISU modfie. -doesthi ER SEA eraure
1420 1 20WD I MSP*AREDURE ADDISS'E(AI INTEGER);

421 1 20:0 0 BEGIN

*422 1 20*1 0 SEISSUE,AI)#

423 1 20:1 9 GET(ISSUE);

424 1 20:1 17 VRITELN('Please describe the new oasureaent purpose in 2 69-cheracter lines');

425 1 20:1 104 FOR a: TO 2 DO

426 1 20:2 118 DEGIN

427 1 20:3 119 VRITELN('Please type line ',,'')

429 1 20t3 178 REPEAT 429 1 2014 176 INLINE;

430 1 20:4 180 IF LENGTH(LINER)>68, THEN

431 1 20:5 189 WRITELN(Line contains over 69 characters, please retype'); " ~432 1 20:3 256 UNTIL LEMOTH( LINER) <"8|I,. .-.

43 1 20:3 265 ISSUEA*WNEIJ:=LINER; L

434 1 20:2 285 END; I 435 1 20:1 295 SEEKISSUEA1).

436 1 20:1 304 PUT(ISSUE);

437 1 20:0 312 END; j 438 1 200 330

11

* ADDISSUE adds a measurement purpose.

...,

"- -19 ."*,'

V.,
*439 1 21:11 1 (SSP)PROCEDURE RE"DVEISSUE(RI:INTEGER)l

440 1 21:0 0 BEGIN

*441 1 2111 0 SEEK(ISSUERJ)

442 1 2111 9 GETIISSUE);

444 443 1 1 21:1 21:2 17 31 FOR ISSUEA*NAH((J] Jfl TO 2DOt " "

445 1 21:1 102 FOR J,-, TO 225 DO

446 1 21:2 116 ISSUEA.DATA[J3:-0;

447 1 21:1 157 SEEK (ISSUERI)

448 1 21:1 1" PUT(ISSUE) *

449 1 21:1 174 IF RINUISSUES THEN

450 1 21:2 131 NUISSUES:-NUISSUES-I;

451 1 21:1 199 ERASEAFASTISSUE(RI)I

452 1 21:0 192 ENDI

*453 1 21:0 206

* °o

* REMOVEISSUE removes a measurement purpose from the measurement purpose

LL

% %

-2 *. ,

"E -20--
1454 1 22:0 1 (*SP*)POCEDURE ALIERISSUESt

43 1 22:0 0 BEGIN

456 1 22:1 0 DISPLAYISSUESS

47 22:1 2 6OTOXY(0,16);

456 1 22:1 7 WRITE(CHR(Il)),

459 1 22:1 17 WRITE('You may perform any of the following procedures:'chr(13),

460 1 22:1 67 1. Analyze a measurement purpose 2. Specify a now measurement purpose',chr(13)f

461 1 22:1 11 ' 3. Remove a measurement purpose 4. Replace a measurement purpose',chr(13),

462 1 22:1 271 5. Pack seas purposes efficiently 6. Select a different analytic proc','chr(13),

463 1 22:1 365 'Please select one: ') .464 3 22 **1 396 RE[PEAT

465 1 22:2 396 KEYN;

466 1 22:2 396 IF (1<l) OR (I>6) THEN

467 1 22:3 411 RITEL('Please type an integer between I and 5");

466 1 22:1 469 UNTIL 1l>-1) AND (106);

469 1 22:1 462 CASE I OF

470 1 22:1 487 1: EXAMINEISSUES;

471 1 22:1 491 2: BEGIN

472 1 22:3 491 60TOXY(0,16);

473 1 22:3 496 WRITE(CHR( 1)g

474 1 22:3 506 IF NUISSUES>wNISSUES THEN 475 1 22:4 515 BEGIN

476 1 22:5 515 URITELN(ISSUE INDEX IS FULL--NO ADDITIONAL ISSUES CAN BE ADKD')"

477 1 22:5 589 AMYKEY;

476 1 2214 591 END

479 1 22:3 591 ELSE

460 1 22:4 593 BEGIN S481 1 22:5 $93 NUISSUES:wNUISSUES.1;

492 1 22:5 601 ADDISSUE(NUISSUES)l

483 1 22:4 606 END;

464 1 22:2 606 END;

485 1 22:1 600 31 BEGIN

486 1 22:3 608 MRITE('Which one (type 0 when done)? ").

487 1 22:3 650 KEYNM

49 1 22:3 652 IF 100 THEN

489 1 22:4 659 REKOVEISSUEI)1

490 1 22:2 664 END;

491 1 22:1 666 41 BEGIN

492 1 22:3 666 WRITE('Vhich one (type 0 when done)?'), I.493 1 22:3 707 KEYN;

S..° :HOME

ALTERISSUES presents menu of options showing what analyst can do with measurement purposes.

-201-

V

V.

"""*";':" f," ' "-':,_. _ k.. .--.... .,. . .... ,_..__, .......- . -, *-';4:L. ._, *_....,.,'X.,.. .. ._. ..,., '...'...-_.-..-..:,, ...., , ....-..-...- , , ,.- -
494 1 22.3 709 IF 100 THEN

495 1 22:4 716 BEGIN 

'

496 1 22:5 716 DOTOXYC0.16)3 497 1 22:5 721 WRITE(CHR(Ih));

496 1 22,5 731 PREPKEY,73,Ils this mely on iaprovement in the descriptor? ')l

499 1 22:5 798 IF ANS'Y' THEN

500 1 22:6 305 BEGIN

501 1 2217 005 ADDISSUE()-

502 1 22:6 910 END

503 1 22:5 010 ELSE

504 1 22:6 912 BEGIN

505 1 2237 312 REHOVEISSUEMI6If506 1 22:7 917 NUISSUES:uNUISSUESP;

507 1 22:7 325 ADD[SSE MI 5o 1 22:6 630 EN;

510 1 22:2 830 END;9

511 1 22:1 632 5: COPACTISSUES.

512 1 22:1 836 63 BEGIN

513 1 22:3 636 ,RANCHOUT;

514 1 22:3 038 SKTCAIN('GREETING'); i :,

-*515 1 22:3 352 EXIT(PfiOGRAN);

516 1 22:2 956 END; r

*517 1 22:1 356 ENDo

518 1 22:1 378 ALTERISSJES;

519 1 2210 660 END;

520 1 2230 696

.: Al

See previous page for program description. ,,

.:.'

-202- .|
M%

1524 

521 

523 1 

1 

1 

230 

231 

23 1 10 

0 

1 (86P)ROCERE 

PBEGUPUr)

VR1IELN('P.eese 

GETINDEX; 

be patibnt..'tchr(3)," I am preporin9 the Co§puter for you')|

U

525 1 23:1 109 eGIN

526 1 23:2 109 SEEK(ISSUEPNCURSSUE)l

527 1 2312 120 OET(ISSUC) s

523 1 23:2 120 FOR 11=1 10 225 DO

533 1 23t0 196 ENDI

534 2310 210

17

I. 4, .,

° EIDXpae eeec opromneie noaryISEAAo h

mesrmn ups uretybigpoesd

;-i '.-:

*. , ,

I

-203-l

J__ ___ __ ___ __ _I-
535 1 24: 1 (SPS)PROCEDURE OPENDATAFILEI

536 1 24:0 0 DEGIN

537 I 24:0 0 01- )

539 1 24:1 0 EST(DATANODE PDATANE)1

539 I 24:1 10 (8148) F

540 1 24:1 10 I:uIORESULT

541 1 24:1 15 IF 1>0 THEN

542 1 24:2 22 BOIN

543 1 24:3 22 WRITELN('DATABASE NST BE CREATED BEFORE ISSUES ARE LINKED TO DATABASE');

544 1 24:3 103 ANPKEY KE

2' 545 1 24:3 105 BRANCHOUT;

546 1 24:3 107 SETCHAIN ('GREETING');

4 547 1 24:3 121 EXIT(PROGRAH)l * 1

546 1 24:2 125 END; .

54 1 24:30 125 END;

550 1 24:0 136

-204

-'.. .

I.

I%'

-204- ,+"

... . ,. , . . . ., .. . .. . . . . .. . . . .. : : '

"+,,.,',, " '. " ', ".'' ; " " '" " ' *'' ''" ' ",' - .• " • ' ,. , ., . .- .- -.. .. ... . . . ",.- .,OPENDATA-FILE , - -._.-,'---.the:-', verifie presence of performance - items.-.- -- '-'.-'.'-. ---- -.'..,., ...-. I '.
551 1 253 1 SP)PROCDURE TaPSCREEK;

552 1 25:0 @ IEGIN

~:553 1 2511 0 GOTOXY(0,4)1

554 1 25:1 15 N9TCHR )

6557 1 25:1 27 I N>16EN 

556 1 25.02 19 MOLENOTH(CURSYS);

556 1 2532 34MU

559 1 25:1 36 LINE:*COPY(CURSYSPIPH)i

560 1 25:1 57 WRITEQ','LINC,' Systeus")I

561 1 25:1 99 GOTOXY(26,4

562 1 25:1 104 MaLENGTHCIRSM r 563 1 25:1 112 IF N>16 THEN

5614 1 25:2 119 Wald6; r

55 1 *1 123 LINEuRCOPY(CURSP,1,N)

5" 1 251 142 WRITE('S'PLINE);

567 1 25:1 164 807OXY(44#4);

566 1 25:1 169 NmuLENGTH(CURSUB); 1569 1 25:1 177 IF H>16 THEN

I570 1 25:2 194 MUM16

571 1 25:1 196 LINE!=COPY(CURSUD,1rN)1

572 1 25:1 207 WRITELN(S', LINE);

57 1 25:1 237 SOTOXY(62#4);

574 1 25:1 242 URITELN(W6'PAC)I

575 1 25:1 272 N:.LEMOTHxO3JCTU.E);

576 1 25:1 26 IF M>67 THEN Nzo67;

577 1 25:1 291 LINE:wCOPY(XDJEC71VE.1N)l I573 1 25:1 310 IF NSCREEN>1 THEN

579 1 25:2 317 UR17ELN('ObjectjveC',NO3JEC71VE,']:',LINE)i

560 1 25:1 365 N:uLENGT"(XFUNWUR);

561 1 25:1 393 IF 0>67 THEN NHu67;

562 1 25:1 404 LINEUsCOPY(FUNPUR,1th);

593 1 25:1 423 IF NSC!4EEN>2 THEN

564 1 25:2 430 WRITELN('Fctl PrpsC',WFUWPUR@'2I'vLINE);

565 1 25:1 499 NRITELN(V'

566 1 25:0 516 END;

567 1 2510 526

6

* TOPSCREEN produces the header material on the display screen.

I%

-2-5
-- U.- - _ a - .

. - " - .--

%

%

588 26:9 1 M*PS)PROCEPUR SAVEINMEX;

589 1 26:0 0 REGIN

590 26:1 0 PAGE(OUTPUT); $91 1 26:1 10 UitlTELN('Pleast be patient...°,#chr(l3W, I *ayn g all~ o1Of your hard mark'); ;..

592 1 2611 108 SEEK(ISSUE,NCURISSUM). ":

593 1 26:1 119 GET(ISSU),

594 1 26:1 127 FOR 1.l1 TO 225 DO'"

595 1 26:2 143 BEIN

596 1 26:3 143 ISSUE, TI3*.wISSUEDTAI;

597 1 2012 185 END;

598 1 26:1 195 SEK(ISSUENCURISSUV)I

99 1 26:1 206 PUT(ISSUE)l .

601 1 26:0 228 2.. '

IL

I

I....:

SAVEINDEX records the references to performance items for a given measurementI

purpose in the issuedata file for use by other programs.

2 .G%

-2o0- r
602 1 33 1 (SSPS)PROCEDUME COPCISUS

603 1 3:0 0 SEIN

604 1 331 0 FOR J~n1 TO NISSUES DO

605 1 332 16 ERASEAFASTISSUE(J);

606 1 3:1 31 N:801

607 1 3:1 35 I:*o;

610 1 :2 4 REPAT 3 )O

111 3:3 47 IF(CP(I9EANNE1,15uI TE

612 :3 1 57SEEK(ISSUEJI;

61 1 3622 GTI(;ISSUE)

623 1 313 178 UNI .DaNUISSUESIAEl~l5wl TE

624 1 34 11": +; I626 1 3:2 233 REUTI (OYISEK);El1S) ' 1 R(JNISE~

627 1 3:21624 IF N>0THN UISSUES HNUISE-+

628 1 3:3 267 E IN

622 1 33 28ED I 624 1 3:0 208 (11#*:EApRP.EXD

630 1 3:0 28

I%

COPCISE ak esrmn uroerfrne oeefcety

-207-

Ii
I - 631 1 27:8 1 (8$P$)PROCEDURE REFISSUEI

632 1 27:0 0 BEGIN

633 1 27:1 0 J:,O;

634 1 27:1 4 REPEAT f

635 1 27:2 4 J:-Jfl; !

636 1 27:1 12 UNTIL(ISSUEDATA[J3*O) OR (J&224);

637 1 27:1 50 IF (4J224) AND (ISSUEDATACJ]<>O) THEN

*638 1 27:2 Be BEGIN

639 1 27:3 B8 WRITELN('SORRY--BUT YOU ALREADY HAVE 224 REFERENCES FOR THIS MEASUREMENT

PtIPOSE' CH R(13) p -

640 1 27:3 1S1 SO YOU CAN NOT ADD ANOTHER ONE!!,);

641 1 27:3 236 ANYKEY; p,.,..

642 1 27:3 238 EXIT(REFISSUE)| ,

643 1 27:2 242 END

644 1 27:1 242 ELSE .

645 1 27:2 244 BEGIN .

646 1 27:3 244 ISSUEDATA(J):sCORE[I3; - 647 1 27:3 284 FLAGCI:nTRUE; 643 1 27:2 301 END;

649 1 27:0 301 END;

650 1 27:0 318

208-. .-

I

I!

:,.Y *

F.Z$$UEaddsa nw peformnceitemrefeenceto h masurmen

purpos ine.• .... ,

" I

"I ::

:-,.," ".'.,',,'',''.' ",".",, ...-. ,,' ,', .•" 2.," ," . ', -, '. •.', ." .. . " . . . .. . . . ""I

.%_'_' '%""k' %'% %'%,,%' ''" , %' ° , "'" •' °" •" " " " "" ".'"- " " "' • '" "'" " '" """"".""'" "' " .s ' "'
651 1 MID I (8.P*PMcEDUR UNREFISSUE

652 i 20:0 0 EGIN

653 1 26:1 0 K: so; , 654 1 28:1 4 REPEAT

655 1 20:2 4 KtBKil

656 1 20'1 12 UNTIL (K224) OR (ISSUEDATACKusCORE(1);)

657 1 26:1 63 IF K>-224 THEN

650 1 28:2 72 K(OIN

- 659 1 26:3 72 iRITELN('ERROR--FLAG SAYS REFERENCED, ISSUEDATA SAYS UNREFERENCED'),

"0 1 29:3 143 EXITUNREFISSUM)

661 1 26:2 152 END;

6"2 1 28:1 152 J:-J11,- 663 1 28:1 160 REPEAT .

., "64 1 28:2 16 J:mtj l;

665 1 26:2 169 ISSUEDATAtJl: ISSUEDATA[J ;"

666 1 2:1 210 UNTIL (ISSUEDA7TA CJ0) OR (J1224)1

667 1 ": 1 249 ISSUEDAIAE2251100

66 1 21:1 275 FLAGCII:aFALSE

1 28:0 "2 END;

670 1 20:0 306

ill I --

IE" rfpie

purposeinde

:-209-

+ ..+

a+

I%'

.% .

UNREISSU reerene remvesa toa prforanceitem fro a masurmen

purpse ide.

I.%+%

i index. .-.

.. . . . . . . . . . . . . . . . . . . . . . .

• - ° - , ,o•. - .° . .- o• • , . o . .. . * * . .*5 * * ~*. . *.. + ,- + . . . 2 ,
671 1 29: D I (*SP*PROCEDURE REWORD;I

67 2: ADDISSUE(CCURISSUE);

674 1 29:0 5 END;

*675 1 29:0 Is

-210-
676 1 30:D 1 (S*PS)PROCEDURE SETUPFLAG;

677 1 30:0 0 BEGIN

676 1 30*1 0 FOR K-I TO 300 DO -*,A

679 1 30:2 16 FLAGrE:-3FALSE;

680 1 30:1 43 IF ISSUEDATA[]J<>0 THEN

681 1 30:2 71 BEGIN

682 1 30:3 71 WRITELN('PIease be patient...', chr(13),

683 1 30:3 113 " I a. setting up your measureement purpose');

684 1 30:3 175 FOR Kle1 TO 225 DO

685 1 30:4 191 BEGIN

686 1 30:5 191 IF ISSUEDATAK0OO THEN

697 1 30:6 221 BEGIN p

6 1 30:7 221 NODE:*=0

689 1 30:7 225 REPEAT

690 1 30:8 225 NODE:-NODE4;.

691 1 30:8 233 IF ISSUEDATAEK3-CORE[NODE] THEN

692 1 30:9 276 FLAGCNODEI:=TRUE;

693 1 30:7 293 UINTIL (HODE*300);

694 1 30:6 302 END;

~:I695 1 30:4 302 END;

696 1 30:2 312 END;

697 1 30:0 312 END;

696 1 30:0 332

%7w%

%

I i~e

- SETUPFLAG sets up a flag for each performanee item whieh belongs to a,<

i i measurement purpose.,",'

-.. 7..

* . * .. ** ..- °*-
I

699 

700 

31:D 

31 :0 0 1 (SISPS)PROCEDURE REGINI GOEXAHINE; K

701 31:1 0 OK:=FALSE;

702 1 31:1 4 REPEAT

703 1 31*2 4 GOTOXY(O,16) ; -

704 1 3132 9 WRITE(CHR(11),'Uhich one would you like to onalyze(typo 0 to reconsider)?');

705 1 31:2 89 KEYN*'

706 1 31'2 91 NCURISSUE:=I;

707 1 3112 97 IF (I>NUISSUES) OR (1(0) THEN

708 1 31:3 112 VRITELN('Pleoso type an integer between I and '#NUJSSUES,':');

709 1 31:1 191 UNTIL (1<-NUISSUES) AND (I>-0);

710 1 31:1 206 IF 1-0 THEN

711 1 31:2 213 EXIT(EXANINEISSUES);

712 1 31:1 217 ERASEAFASTISSUE(l);

713 1 311 222 GETINDEX;

714 1 31:1 224 SETUPFLAG;

716 1 31:1 236 WRITELN('You hove chosen to anolyze meosurement purpose: ',NCURISSUE);

717 1 31:1 316 :=NCURISSUE;

719 1 31:1 322 DISPLAYNAKE; 1 . 719 1 31:1 324 ODTOXY(O,3) . .',

720 1 3111 329 URITELN(CHR(26),'3914ck on white'tchr(26),

721 1 3111 376 "2 performance items are associated with the measurement purpose');. .

722 1 31:1 459 RESET(DATANODE,DATANAME); I '

723 1 31:0 471 END;

724 1 31:0 486

I

* GOEXAMINE determines which measurement purpose the analyst wishes to analyze.I

'I

-212-

*. 1,*,. L
1725 1 32.'V 1 (SSPS)PROCEDUwE RVRESL;IN 726 1 32:'0 0 DEOIN

U727 1 32;1 0 IF FLA6(JJ-TRUE

726 1 32:1 16 WHEN UNREFISSUE

729 1 32:1 21 ELSE REFISSUE;

730 1 32:1 27 COUNT:00

732 1 32:0 3144 D

731 1 3210 3144 D

-213 I,7 V'7
733 1 33:D 1 (*$P*)PROCEDURE ENDPAG6E 1k

734 1 33:0 0 BEGIN

735 1 33:1 0 I:tO;

736 1 33:1 4 GOTOXY(, 19);

737 1 33:1 9 NRtTECHR(11)); I

738 1 33:1 1? PREPKEY(94,'Chanqe assns between fotsuresent purpose and a performance ires?,)

739 1 3311 95 IF ORD(ANS)-27 THEN

740 1 33:2 102 BEGIN

741 1 33:3 102 CLOSE (DATANODE); 1

742 1 33:3 110 SAVEINDEX;

743 1 3313 112 EXrT(EXANINEISSUES);

744 1 33:2 116 END:

745 1 33:1 116 IF ANS-'Y' THEN

746 1 33:2 123 BEGIN

747 1 33:3 123 GOTOXY(O,19);

740 1 33:3 128 MR7ITE(CR(1));

749 1 33:3 138 MRJTE('Wihich one (type 0 if none; 999 if 611)? ')

750 1 33:3 190 KEYN;

751 1 33:3 192 I:"fI4GOPAGE-1;

752 1 33:3 204 IF (1>0) AND (1300)TTEN

754 1 33:5 227 REVERSEISSUES

755 1 33:4 227 ELSE

756 1 33:5 231 BEGIN I

757 1 33:6 231 GOTOXY(O,21)I

759 1 3316 236 USRITE(CHR(11));

759 1 33:6 246 URITEL(ERROR--PERFORNMANCE ITEM ',I,'IS NOT A CHARACTERISTICI*)g

760 1 3315 338 END; I

761 1 33:3 338 N:-999.GOPAGE-1I I

762 1 33:3 350 IF I'N THEN

763 1 33:4 359 FOR I:-GOPAGE TO NODE 0

764 1 33:5 377 IF(COREIJ-COREtIX DiV 100 8 10000) THEN

765 1 33:6 447 REVERSEISSUES;

766 1 3313 459 NODE-GOPAGE-1;

767 1 33:2 467 END

769 1 33:1 467 ELSE

769 1 33:2 469 GOPAGE *,,NODE+ I

770 1 33:1 477 SOTOXY(0,8);

771 1 33:1 482 MRITE(CNR(I:));

772 1 33:0 492 END;

773 1 33:0 5o8

ENDPAGE displays the "do you want to change association" message and then - it processes the response.

-214-

% *..:.
774 1 34:9 1 (*SPS)PROCEDJR CNNUTDPSCRtEENJ

77 1 3410 0 BEGIN

M7 1 34:.1 01 IF CMIEN0DE~s0 THEN

77 1 34:2 30 EXIT(CWtGETOPSCREEN) I

77 41 34 SEEK iDATAODE, COR(MCODl) I 1

790 341 6 IFCNETD AN0DE) I 10000 8 10000 *CORECHODE] THEN

781 1 34: 19 RSI

782 1 34:3 129 lisTRUNC(CORECNODU VIY 1000000);p.

794 1 34:3 213 PhA SPECT113

1769 1 34:23 201 3(61w I*780 1 34:3 20 XFUNPCIVE~uDATAOEA. TOMA

791 1 30:3 235 NFW4PURIuDAANODEA.TAMAC31

792 1 34:2 221 ENDI

793 1 3411 221 I(ESE RCERS1~RU)TE

709 1 34:2 259 BEGIN 'p790 1 34:3 259 TOPSCREENI .Ii.TAX

792 1 3432 251 END:-;

797 1 343l 251 GOMETHATOXY0 STIC* E

794 1 34:3 270 VITECR(1

79" 1 34:2 280 END; I

900 1 34:0 290 END;

::1601 1 3410 292

I ~CIIANGETOPSCREEN changes contents of the header printed at the top of each 4..

page.

-2 15-
302 

103 

1 

1 

35D9 

35:0 0 

3 ISS)PROCEDURE REOIN ONEPERrITEMDISPLAY; :

604 2 35:'1 0 SEEICWAANDE.COREM[ODEJ);

l05 1 15'o1 23 GET(DATANODE);

8"60 1 3531 30 KI&AMTANOWE.NAMACN

9 07 1 35:1 45 LLENGTN:.72; ,Jj

ON a 35:1 49 LINE:nDATAN0DEA.TAXA;

00 1 35:1 57 IF K00 THEN

010 3 35:*2 64 DEGIN

811 a 35:3 64 INVERSE?.2;

612 1 35:3 66 NW-uO

813 1 35:3 72 CASE MOF

914 1 35:3 77 137EMPL5:v10000001 4

815 1 35:3 114 23TEMPL5:u100001

316 1 35:3 133 3:TEHPL5:uI00;

317 1 35:3 150 4:TE#MPL5s.il . 318 1 35:3 167 ENDI

319 1 35:3 162 TEMPL6:=CCREEMODEI DIV TENPL5;

0 20 1 35:3 220 REPEAT

321 1 35:4 220N:NN1

622 1 35:3 228 UNTIL (NNu225) Oft (ISSUEDAThENN3 DIV TEMPL5 TEIIPL6);

9 23 1 35:3 277 IF NN<225 TH4EN 4

024 1 35:4 296 INVERSE:=3;

925 1 3533 290 MRITEV 'PCHR(26),INVERSEtK,%')IJ.

324 1 35:3 352 INDEMT:a6;

627 1 35:3 356 SHOMALINE;

0 28 1 35:3 358 NR17ELN(CNR(26)9'2')1

029 1 35:2 366 END; I

9 30 1 35:0 386 END; 9 31 1 3510 402

ONEPERFITEAMDISPLAY displays one performance item in the body of the display

used to select which performance item ought to be processed next.

-216-
132 1 36:3 1 SS)PROCEDURE SNOUPERFITERS;

US I WO: 0 BEGIN

4134 1 U:a 1 Or:.FALsE;

035 1 36:1 4 DISPCOUNT:a0;

836 1 36:1 3 IF N*2 THEN TEMPL1:w1000000; 4 37 1 3f so IF Mw2 THEN TENPL3:u1O00I

9, 33 1 I 3:1 74 IF Nw3 THEN TENPL1*=100001

9 39 1 36:1 96 If Nw3 THEN TENPL3:w1003

0 60 1 U6:1 120 TEMPL2:aTEIP DIV IENPLI;

341 1 36:1 146 FOR NODE:s1 TO NCORELAST D0

642 1 36:2 162 IEGIN

343 1 3633 162 IF (TERPL28CORCCN0DE] DIV TEMPLI) AND

644 1 3633 201 (COREtNODE3 DIV TEJIPL3 S TEHPL3 a COREENODEI) THEM

345 1 36:4 265 DEGIN i.

646 1 U6:5 265 OK3UTRJE;

347 1 3635 269 ONEPERFITEMDISPLAY; -b 343 1 3635 271 DISPCOUNTu DISPCOL1WT41 I

349 1 36:4 279 ENDS

650 1 3633 279 IF (DISPCOUNT DIV 15 S 15RDISPCOUNT) AND (DISPCOUNT0O) THEN .9J31 1 3:4 298 DEGIN

9. 52 1 U6:5 296 DISPCOUN7:=0;

353 1 U635 302 ANYKEY;'-

354 1 36:5 304 OOTOXY(Ov2);

655 1 U635 309 VRITE(CHR(Il));

356 1 U6:4 319 END;

357 1 U6:2 319 END;

0 59 1 36:1 329 IF O~wFALSE THEN

359 1 36:2 337 MRITELNel .. oe)

360 1 36:0 367 END;

I ~ O30 ..

SHOWPERFITEMS controls production of the body of displays of performance items.

-217-

S.0
62 1 37:D I (S$P$PROCEDURE SPECIFYSTART

363 1 37:0 0 3EGIN

364 1 3731 0 REPEAT

665 1 37:2 0 GOTOXY(094)

66 1 37:2 5 MRITE(CHR(II));

667 1 37:2 15 URITELN('The following aspects are port of the APNR');

61 W69 1 3732 37:3 77 91 FOR IWJERSEAE(N) M:.ITO 5DO;2

870 1 37:2 116 FOR NOE:al TO 300 DO

971 1 3733 132 IF FLAGCNODE2.TRUE THEN

372 1 37:4 153 BEGIN

973 1 37t5 153 NTRUNC(COREENODE] DIV 1000000);

$7 1 37:5 207 IF N>@ THEN

3 75 1 3736 214 INVERSEA[N,3:""

376 1 37:4 22? END;

977 1 37:2 239 FOR N;•l TO 5 DO

979 1 3733 253 URITELN(' ',CHR(26)fINVERSEACN3#NP'. '9ASPECTCN3,CHR(26)'2")t

879 1 37:2 362 WRITE(QPlease select one: ')I

980 1 37:2 413 KEYN|

901 1 37:2 415 PAC:sSPECTE131

82 1 37:2 433 NPAC:UI1 I

993 1 3732 439 TEWPL4:-I;

984 1 3732 456 TENP:mTENPL481000000;

95 1 3712 501 0OTOXY(094);

86 1 37t2 506 URITE(CHR(Il)) ;

987 1 37:2 516 N:=2;

9 9 1 3732 520 URITELN('The following Objectives are available Tor the aspect selected: ");

89 1 37:2 604 SHOWPERFITEAS; ( ,'

990 1 3722 606 NRITE('Plense select onet ')l

691 1 3732 637 KEYN;

992 1 3732 639 NOJECTIVE:I;

893 1 37*2 645 TEMPL4:I3 ;"

994 1 3722 662 TENP:-TENP+TENPL4 IOOGO;

895 1 3732 69 FOR 13al TO 300 DO

896 1 37:3 715 IF TENP&CORECI THEN

897 1 37:4 746 SEGIN 098 1 37:5S 746 SEEK (DATA NOE, CGRE2( NODE3)) ; 8" 37:5 769 OET(DATANODE); I ...

900 1 3735 776 XOBJECTIVE:EDATANODEA.TAXA;

901 37,4 784 END;

I .

SPECIFYSTART allows analyst to select where he/she wants to start analyzing

measurement purpose links to performance items.

-218- - "
.- , .. - ~- '-~~ -~ ~'.'...-.~'. ~i . L w w %~4VJ r..V L-.V - L Sr -9 W- .-

I

902 1 37:2 794 60TOXY(O,4)j

903 1 37:2 799 lRITE(CHR(Il))"

904 1 37:2 909 1131

905 1 37:2 313 RITELN('TIhe following Functional Purposes are eveilebl* for the abjective J selected: •)Il

906 1 37:2 909 SHOMPERFITERSI

907 1 37:2 911 WRITE('PI.... select as@: ')I

9 1 37:2 942 ICEYNI

909 1 37:2 944 TEiPL4:-I;

U "- 910 1 37:2 961 TENP:-TEIPtTEMPL4*100,

p 911 1 37:2 996 FOR I:-1 TO 300 00

912 1 37:3 1012 IF CORECII]TEMP THEN

913 1 37:4 1043 BEGIN

914 1 37:5 1043 NODE:-I-1I S 1915 1 37:5 1051 GOPAGE n*1+ll*t 1" 916 1 37:4 1059 END;

917 1 37:2 1069 IF NODEO THEN

919 1 37:3 1076 WRITELN('Perforeance item # '#tempo, does hot existi')I

919 1 37:1 1163 UNTIL NOD;<

921 1 37:0 1196 END;

920 1 37:0 11709N6

:I

V. I.

+ I 2 1

I + 

. ~See previous page for program deseription. -

', -,.-

."- 

41 :

" ~-219- .'

+I Fr

. _ . .-.. .
922 1 2:3 1 ($6PS)PROCEDURE EXAMINEISSUES;

923 1 2:0 0 BEGIN

f24 1 2:1 0 IOEXANINES

925 1 2:1 2 If OKETRUE THEN 926 1 232 10 EXIT(EXANINEISSUES) I

927 1 2:1 14 LAS7CNARACTERISTIC:.TRUE;

929 1 2:1 19 IF CORECNCORELASTJ-COREENCORELAST] DIV 100 9 100 a0 THEN

929 1 2:2 as LASTCHARACTERISTIC:=FALSE;

930 1 2:1 92 NODE:*0;

?31 1 2:1 96 L5OPAGE:nl8

932 1 2:1 100 PREPKEY(222#'Do You wish to analyze the first performance itea?');

933 1 2:1 158 IF ANS='N' THENDI *-

941 1 2:3 25 TCHARACTERISTICTRUE

942 1 2:3 17 IF COREENODE+-COREODEI DI 100 100 0 THEN

94 1 2:4 24331A7RITC-FLE

944 1 2:3 335 IF(CHARACTERISTIC=FALSE)THEN

945 1 2:4 343 CHANGETOPSCREEN;

946 1 2:3 345 IF CHARACIERISTICnFALSE THEN I947 1 2V4 353 OOPAOE:uGOPAGE#+1;

949 1 2:2 361 UNTIL (CHARACTERISTICUTRUE) OR (NODE>=NCORELAST);

*949 1 2:2 377 IF (NCORELAST<=GGPAGE) AND MASTCHARACTERISTIC-FALSE)

*950 1 21'2 390 THEN RE61N

" 91 1 2:4 393 CLOSE (DATAMODE)1

952 1 2t4 401 SAVEINDEX;

953 1 2:4 403 EXIT(EXAMINEISSUES)l

954 1 233 407 END;

955 1 212 407 INVERSE:-21

956 1 2:2 411 SEEK IDATAMODE vCORM2MOVE I)

957 1 2:2 434 OET(DATANODE);

958 1 232 441 IF FLAGCNODEI=TRUE THEN

959 1 2:3 462 INVERSE:w3;

960 1 2:2 466 L:=NODE-GOPAGE+1I

961 1 2:2 476 URITE(CHR(26)PINVERSE,' ',L,'. E');

EXAI\IINEISSUES does initial setup for analyzing measurement purpose-per for ma neeI

itemi links.

-220-r
962 1 2:-2 542 FM K.-lTO 4 0

963 1 2M 556 3EGW

964 1 2:4 556 J~D~M lAAI3

965 1 2:4 571

f" 1 2:3 593 E119;

97 1 2:2 603 MRITEC''

9" 61 2:2 613 LINEI=DATANODEA.TAXAI

969 1 2:2 621 LVIITE(' '

970 1 2:2 631 LLEN6TH:a601

971 1 2:2 635 INDEOT:zl41

*972 1 2:2 639 SNOWALIKEtS

97 1 2:2 641 WUUTELN(CNR(26)P'2')1

974 1 2:2 669 COUNT:wCOUNr.11

975 1 2:2 677 IF (COIUtTaS) ON (NMODNCORELAST) Oft

j976 1 2:2 6"0 (COREENOBE3 DON. 1000COREENODE+2 DMY 100)TMEN

I*977 1 2:3 754 ENDPAGE;

978 1 2:1 756 UNIL 11,80) AND (MODE-NCORELAST)

97 1 2:1 771 CLOSE(DATANODE)1

960 1 2:1 779 SAVEINDEX;

Vo81 2:0 781 ENDS

*992 1 2:0 300

963 1 2:0 800

934 1 2:0 300

995 1 2:0 moo

996 1 2-0 000 1! OWEASPJRM2TEXT81

* See previous page for program description.
96 1:0 (SP)EIJ 999 1:0 0 ISSN#S)

990 1:1 0 INLINECALL:00;

991 111 62 IwzSSUES:.3;

*992 1:1 " qpRMCHIN;

993 1:1 66 BEFINEASPECTS;

994 1:1 70 PHD%:aC0NCAT(COPY(CUfSYS,12),CPY(CUSP ,2)C0PY(C UDPIt2)p':);

M 91:1 162 CORENANE.CONCAT(APNDSK,(CPY(CURSYS1,4))CPY(CRSP,14)(COPY(CRSUDtl 4))'CO*)IK

996 1:1 265 NMEFASTlSSUEa-C0NCAT(APNDSKP(C0PY(CURSYS14))CPY(U~SP91,4),(COPY(CURSUD~lI4))sFA') 1.*

997 1:1 366 WRITELN('1 an now sorting your performanlce ites.-)l

996 1:1 423 READCOREFILEI

9"9 1:1 430 SORTC0REFILE;

1000 1:1 432 ISSUENANE*uCONCAT(APHDSC,(COPY(CURSYS,1.4)),COPY(CURSP,1,4),COPY(CURSUDgl 4)),is);

*1001 1:1 535 DATAMIE:saCOcAT(ApHDSK,(C0PY(CURSYS,14))COPY(CURSP,14)(CPY(CURSIDPl9 4))'Fl );

1002 1:1 633 OPENISSUEIMDEX;

*1003 1:1 640 ALTERISSUES 1

1004 1:0 642 END.

%

.

-222-
I_' nl%. Mr.-47 - 7 -.- I- C 'rPRINT "

PRIN alosteaals opiteihr1 lpromneiematiue

v ro'..

- PRINTalosteaayttprneihrIalpefracitmatite '"

~~and measures, or 2) performance items, attributes and measures for a given ""

J { measurement purpose. The analyst may choose to print only some objectives, _

~ ~functional purposes and charactierstics in this program without altering the"-'

; I basic data set.-,

- -223-

- p.

.-oI' , q o. .

I .. o. ... ., . ,, ,.',.'."'. , .. "..'. ... ,,,,.., *. " ,o. -.. , ". .-',.,_. . . .,. .. ".° .". . .,' * -..'
1 It 1 1 (OIL PRINMEI S)

3 1 110 1 (S Pragpof to print performance ituu$, attribmatep and mosures list for a given eeeSirge~t purpo

4I 1 l1D I (S Ronald $. Shapira Vrsion 2.0 10/25/92*)

*6 1 1:D 3

7 23 1:0 3

3 23 210 1 PROCEDURE SETCNAIN(TYYLE? STRING);

9 203 0 1I PROCEDURE SETCYAL(VAL:STRING);

- ~ 10 23 4:D 1 PROCEDURE OETCYALCVAR VALISTRING);

11 23 StO I PROCEDURE SWAPONI

12 23 620 1 PROCEDURE SWAPOFFI

-1323 6:0 1

14 22 1:D 1

-15 22 11D 3

16 22 21D 3 FUNCTION PADDLE(SELECTI INTEGER: INTEGER;

17 22 3:D 3 FUNCTION BUTTON(SELECTI INTEGER): BOOLEAN;

10 22 410 1 PROCEDURE TTLOUT(SELECTZ INTEGER; DATA: BOOLEAN);

*19 22 5:0 3 FUNCTION KEYPRESS: BOOLEAN;

*20 22 6:D 3 FUNCTION RANDOM: INTEGER;

*21 22 7:0 1 PROCEDURE RANDOMIZE;

*22 22 31D I PROCEDURE NOTE(PI7CM,DURAYION: INTEGER);

23 22 SWD 3

24 1 Ito 3 Ues Chainstaff,APPLESTUFF;

*25 1 1.10 3

Thes f prcedues te Aple re ompuer' prt CH INS~rF ibray etry The emostrtionpacageusesonl SECHAN whch auss anthe prgra to beactiated

-224I

JL 7I:7
* I

26 1 1:9 3 (SPS)CONST

27 1 |$D 3 |BJLLIn'The system must be capable of:'-

29 1 $$D 3 0BJLK2u'The system must carry out the following activities:'$

29 1 l2D 3 OSJLDL3-'The system must produce:';

30 1 0tD 3 0JLDL4-'Performance objectives oust be met despite:';

31 1 lD 3 DBJLDL5'Perforsonce objectives must be set despite';

32 1 VD 3

I mI

CONSTANTS are defined.

.1*

-225-

%r
33 1 13 3 0I6P8)TYPE 1 '

34 1 1:3 3 ISSUEFILE ORECORD 35 1I to: 3 NURMUNTEGER I

36 1 1iD 3 NIM YCI.*Y 230F STRING(80) I

37 1 3 DID AARMRAYC1..22530F INTEGER[8] ., 38 1 1Wo 3 END; 4

39 1 1:D 3

40 1 1:.D 3 FASTFILE &RECORD

41 1 113 3 PRINTITPACKED ARRAY1..30O3OF BOOLEAN;

42 1 Ito 3 END;

43 1 I1D 3

44 1 It3 3 PASSFILE wRECORD

45 1 I$D 3 CURSYSCURSP,CUIRSUBPAC:STR ! N14C ;

46 1 Ito 3 NCURSYSNCURSP WcURSUtNPACFLAGI PFLAG2,FLAG3: INTEGER$

47 1 I!D 3 END;

48 1 ItD 3

49 1 lID 3 DATABASE -RECORD

50 1 133 3 NTAXA2 ARRAYCI..43 OF INTEGER;

51 1 ItD 3 TAXA: STRING(80)

52 1 ID 3 END; 53 1 1:11 3

54 1 I1D 3 FILEATTRIBUTES -RECORD

55 1 1:D 3 NIESCRIPTOR: ARRAYCI..6J OF INTEGER;

56 1 ID3 3 DESCRIPTOR: STRINGC68);

57 1 It9 3 END;

58 1 1:1 3

*59 1 Ito 3 FILEHEASURES -RECORD

60 1 ItD 3 NDESCRIPTOR: ARRAY1.,63 OF INTEGER;

61 1 15D 3 DESCRIPTOR: STRING(683;

62 .1 lID 3 ENDS

63 1 VD3 3

v

"I

.4.

" ISSUEFILE is a list of measurement purpose names and references to performanceitems. FASTFILE allows fast processing of measurement purposes. PASSFILE is

an inter-program communication. DATABASE is performance item files.

FILEATTRIBUTES is attributes file. FILEMEASURES is measures file.

• o

-226- r

" .A fl ,'~ .".
642 :: IS (20P0900R

ds 6 I Ito 3 PASSNOOE3FZLE OF PASSFILE;1

*66 1 130 474 DAYANKIF ILE OF DATARASEI

67 1 11 1 OEIE LEO NEE13

63 1 1912 TR YEIIIO IETRBY

169 1 130 1463 ATTRFILEIFILE OF INTEGERE1211

I70 A I*0 1767 MEASIJRES:FJLE PFi FILEMEASURES;

71 1 1:0 210e NEASFILEWILE OF INTEOERE12I;

72 1 130 2412 ISSUEFILE OF ISSUEFILEI

73 1 ISO 3470 FASTISSIJEIILE OF FASTFILE;

74 1 1:0 3739

75 1 1:0 3709 CORE:ARAYMI.3003 OF IIETEGER13 -76 1 130 4639 ATTRCONUARRAYCI.2003 OF INTEOERC123

77 1 1H0 5499 HEASCORE:ARRAY91s*4001 OF INTEOERE1213

73 1 110 7069 ASPECTIARRAYEI.*53 OF STR1NG[203;

79 1 130 7144 CORE23ARRAYCI..3002 OF INTEGER;

30 1 130 7444 ATTR2:ARRAYtl..2O0] OF INTEGERS 1$1 1 120 7644 NEAS2:ARRAYEI..4002 OF INTEGER;

62 1 130 3044 PRIwTITPACKED ARRAY11.3003 OF DOOLEAN;

63 1 1*O06063

34 1 130 3063 XFUM,XOUJECT!VEPAC,CURSYSCURSPCURSUU3 STRINSCO30l

U5 1 130 3309 NCURNEAkSURE,NCUIRATTR19UTENCURISSUE v

1 110 3309 NFUNPIMiNODJEC71V[,NPAC.NCUtSYSNCMSPNMtJSUi: INTEGER;

37 1 130 3313 so 3 1 1: S 9313 ISStIEAN,NANEATCORE,NANEATTRIDPUTES,NANEECORE,W EAWS R I SZ TA1N0C3021

8 9 1 11D 9396 NANEFASTISSUE,COREWIANC.OATANAI STRINGE3011

90 1 S 8: 446 LEVEL: 3TRINOE1031

91 1 1*0 6452 APPNDSK:*STRINOC1OI;

92 1 130 3453 USERNAMEUSERDATEPUSERNSO3 STRINGC933

: ?3 1 130 3531

94 1 ISO 9591 TEIP.CORELASTTI.T2vT3rT4rT53 INTEGERECUI

9" 1 lt0 3602 TENPX,ATTRLAST,NEASLAST:INTEOERC12I;

£96 1 133 9614

1 7 1 120 6614 NODEP INVERSE 9HELP ASCREEN INTEGER:

93 1 130 3613 NCORELASTNATTRLASINNEASLAST:INTEOER;

911 lD 6621 NISSUIESINUISSUESNATTRIDUTESNNEASURES.NUNfEASURES:INTEGER;

100 1 SID 3626

101 1 ltM 3626 IJKLNNYCUT,INOENT,COUNT,TEP2:INTEERI

10 1 3: 63 OISSUE,REFERENCEDLONOWAYOE,OVERtOeSKIPNONE:IOOLEAN; 4

These strings, arrays and variables are used by this program.

Ai

-227-r
Ii'

104 1lI 3: 644

105 1 1:3 0644 LINER:STRIONGC421($ADDED TO AVOID COMPILER ERROR ON INLINE--OIT USED IN PRINT PON*)

106 1 113 8647 ANSWERLINESTRINOCSOJI

107 1 1:3 8729

10 1 1:0 3729 AIS.ANSHOL: CMI

109 Its 8731 *.. 110 1 i 10 731 P RI: T XTtI

11 1 1:0 9032 -

112 1 2t3 I PROCEDURE AYKEY;FORMARD,

113 1 3:3 1 PIROCEDURE IRANCHIN;FORWARDI

114 1 4:3 1 PROCEDURE DANCHOUTIFORWARD; I

115 1 5.3 1 PROCEDURE ELIINNATEFORARDt

116 1 510 1

I

V

Continuation of strings, arrays and variables list from previous page. " -

2..8..,,

2 2 8r : : :

i i 

+-4

+* 

+ '-S
117 7 ISO I (3,P,)IEIEN PROMOcEu ENgissEiciNcEXI

119 7 Iti 4 E3ETSSEISIUNAMEI

122 7 111 15 (961-8)

121 7 113 59 NUEISSUEvSSO# E~

123 7 111 15 IF IDRESULT-C" THEN

124 7 112 21 SESIN

125 7 113 21 URITELrNH flEAS PURP FILE')l *I 127 7 1:3 63 NOISSUE:w7RUUi

*129 7 113 67 ENDE

1123 7 112 67 END

130 7 132 69 BEGIN

I131 7 1:3 69 NUISSUESmONIS9UES+I1

1*132 7 13 77 REPEAT

133 7 134 77 NUISSUESI=NUISSUES-I1

134 7 114 35 SEEK(ISSUE 1NUISSUES)I I135 7 1:4 96 GEM(SSUM)

137 7 1:3 144 IF INUISSUESsI) AND (COPY(ISSUEA.AHMEIJ,1,5) ' ) THEN

136 7 134 194 NUISSUES.@ ,*

139 7 1.2 199 END;

140 7 131 1S3 CLOSE(ISSUM)

141 7 110 197 END;

142 7 1:0 212

-OPENISSUEINDEX determines how many measurement purposes there are (if any).

-2 29-
143 U i:9 1 (*$PS)SEONENT PROCEDIM TERNINATES

144 8 ISO 0 BEGIN

145 U i: 0 URITELN('PLEASE RUN PGCM2 TO CREATE ATTRID 1 NEAS'),

146 S 1:1 &1 AKYKEY

147 S 11 64 PNCHOUTI

146 a 111 67 SETCNAINV'O8EETIN');'

149 U 1:1 41 EXIT(PROGRAM);

150 1:0 95 END;

'ii

II C

TERMINATE displays warning message and transfers control back to analytic .-

procedure section of GREETING program. L

-20

-230- r.i
152 9 ill I (e9ps)SEGHENT PROCEDUJRE OPENFASTISSUE;

15 130t 0 (1101-8) FN 155 9 181 0 RESET (FASTISSUE ,NMAMFAST ISSUE)

156 9 ill 11 386348)

157 

156 

159 

160 161 

9 

9 

9 

9 9 

13l1 

Ill 

132 

133 133 

23 

16 

23 36 

1I I1=1ORESULT 

IF 

SCOIN

100THEN

FOR 

NEVRITE(FASTISSUIPNANEFASTISSUE~l .1m TO NISSUES RIO

U

162 9 114 52 Kai" RN

*163 9 1:5 52 SEEK4FASTISSUE1

*164 9 135 63 FOR J:I TO 300D0 §11165 9 136 FASTISSUEA*PRINTRTCJR3SFALsE

167 9 135 115 IF(EOP(FASTISSUE))TNEN

168 9 136 125 SCORN

169 9 1:7 125 MRITELN('OUT OF DISIC SPACE')$

170 f 137 162 URITELNE' **FATAL EORS 'R

171 9 117 1"~ P...E

172 9 137 202 DRAMC14OUT;

173 9 137 205 SEYCHAIN( 'REETING' )3

S..j174 9 137 219 EXIT(PROGRAM); 175 9 136 223 END;

174 9 134 223 ENDI

177 9 133 233 CLOSE(FASTISSUEvLOCK)l

173 9 113 242 OPENFASTISSUE1

*179 9 133 244 EX17(OPENPASTISSUE)1

ISO 9 132 249 ENDI

131 9 131 248 CLOSE(FASTISSUE); 1i*I132 9 130 257 END;

133 9 130 279

OPNFS:SU deemnswehrfsisefleeit. I oiIrae t

-231-

7~
184 to itD I (SVP$SJS ENT PROCEDIRE READATTRFILE; 11* S O 0 KEGIN

187 10 111 0 REET (ATTRFILE, vNMEATCORE) I

leg 10 Ito 16 (114M);

19 0 I11 IF 100THEN

191 to 112 23 TEMIIMATE

192 10 111 23 ELSE

193 10 112 28 BEGIN

194 10 1:3 29 FOR I:=1 TO NATTRIPUTES DO

195 10 114 44 SEOINI

4 196 10 115 44 GET(ATTRFILE)"

, 197 10 115 52 ATTRCOREII:ATRFILEAI

S19 t o 114 s0 ENO;

199 10 113 90 ET(ATTRFILE) i

200 10 113 98 ATTRLAST:uATTRFILEA;

201 10 113 114 NATIRLAST:=TRUNC(ATTRLAST);

202 10 113 127 CLOSE(ATTRFILE)l

203 10 112 136 ENDSI ;::

204 10 1:0 136 END;

205 10 130 ISO

°' I!

.1'

READATTRFILE loads core with index to attributes file.

* * .*~.'4. -.- 232- S..

4. .
206 31 1:3 1 *p*)SEUIENI PMOEDWE READIEASFILE 9

2" 11 1: E(EATILE,NWHEECORE)I

210 13 1ii11 i IlIONMSULTI

211 11 110 16 *1 )

I212 11 1:1 16 IF 30O THEN1

213 It 112 23 TEMINATE

214 11 M1 23 ELSE

215 11 112 26 3(612

216 11 113 29 FOR 11.1 To NHEASURES DO

217 11 M1 44 DEGIN

211 11 115 44 GET(HEASFILE3I

219 11 135 52 NEASCORECIISRMEASFILEA;

220 11 M1 SO END I

221 11 1*3 90 ETINEASFILM)

222 11 113 91 NEASLAMTNEASFILVI

223 11 1:3 114 NtEASLAST~oYRUMC(PEASLAST); I224 It 113 127 CLOSE(REASFILE)t

225 11 122 136 END;

226 11 120 136 EM11

227 11 110 150

41.

IID E SFL odscr ihidx om aue ie

~-233
223 12 its 1 IS*6PS)SE6HENT PROC!tME OPENDATAFILE;

229 12 120 0 BEGIN i

230 12 110 0 ($$1-*)

231 12 121 0 RtESEI(DATAMOVEtDATANWN) Ir

232 12 111 11 (OS[4)

233 12 ill it I:wIaAESULT1

234 12 Ill 16 If 100 THEN

2512 112 23 KOGIN 1,

2612 133 23 WRITEVDATAVASE MUST 3E CREATED MEORE IT CAN KE PRINTED%,CHR(13),

233 12 113 114 TERNINATE;

239 12 1:2 117 END;j >J

240 12 1:1 117 CLOSE(DATANODE);

241 12 1:0 126 ENDI

242 12 130 133

OPENDATAFILE checks to be sure performance item file e xi s tsts.

-234-

ago.
243 13 1:9 1 M3PS)SEOHENT PR0CE3UR SEFINEASPECYSI

244 13 111o 01 KGIN

245 13 Ill 0 ASPECTIU13 'Potentio i ties1

246 13 121 30 ASPECTC23Iua'ProcensesI

247 13 121 55 ASPECI~lu'Products'l

241 I l ASPECT14)u'Entarnsent'l

249 13 121 106 ASPECC1E53IConstraints'l

250 13 1:0 133 [Not 25 3 1: 4

DEFIEASECT cmpuer te tels lbel te fortheaspcts

-235
252 14 ItD I (8*P*)SENENY PROCEDURE REACOREFILE;

253 14 It0 0 tEGIN

254 14 120 0 (*$1-*)

25 14 111 0 RESETICOREFILE#CORENAME)I I

256 14 121 11 II*IORESULT; I

257 14 121 16 (8$1+) %N

250 14 Ill 16 IF IO THEN -

259 14 112 23 KOIN

26 24 113 23 IF 1*9 THEN M

261 14 114 30 BGIN

262 14 125 30 PAGE(OUTPUT)I

263 14 125 40 WRITELN('THE APHDXSK IS NOT MOUNTED')$

264 14 1:5 86 VRITELN("); I

265 14 125 106 WRITELN('PLEASE PLACE IT IN DRIVE 42');

266 14 113 153 ANYKEY;

267 14 1:5 156 READCOREFILE;I

26 14 125 158 EXIT(READCOREFILE)

269 14 114 162 END

*270 14 123 162 ELSE

271 14 124 164 DEGIN

272 14 1t5 164 URITELN('COREFILE DOES NOT EXIST');

273 14 1:5 207 URITELN(' **$FATAL ERROR*$** ')"

274 14 125 250 WRITELN( ',I); .

275 14 1:5 293 ANYKEY;I 276 14 1:5 296 DRANCHOUTI

277 14 115 299 SETCHAIN('OREETtNO');

278 14 15 313 EXIT(PROGRAM);

279 14 114 317 END; I

290 14 1:2 317 END

281 14 121 317 ELSE

252 14 112 319 FOR 1:-1 TO 300 DO

293 14 113 335 BEGIN

284 14 1:4 335 GET(COREFTLE); 295 14 1:4 343 COREtII:sCOREFILEA;

296 14 1:3 371 END; 3

287 14 1:1 381 GET(COREFJLE);• ,

268 14 I1l 389 CONELAST:cCOREFILE4;

289 14 1:1 405 NCORELAST:*TRUNC(CORELAST);

290 14 1:1 418 CLOSE(COREFILE) .-.

291 14 120 427 END; " "

292 14 110 448

READCOREFILE reads index to performance items into core.

-.

t

-236- -.-.

-,-

"' "''""*'-'- "- -': : ""'."'."D "- '"."L....................."...".-"..."'.-".""........." -,-".".,"-"..""...... ," "-
4-W---V----Y-W--------------- P

,.. Im.e

46''

293 15 tD I (S$P$)SEGHENT PROCEDURE SORTATTRFILE; IV

294 15 Ito 0 EOIN ",

295 15 1:1 0 IF NATTRLAST<2 THEN

296 15 1t2 7 EXIT(SORTATTRFILE)l '

297 15 1:1 11 FOR I:1 TO NATTRINUTES .0

298 is 1:2 27 ATTR2rII:ol;

299 15 1:1 56 IF NATTRLAST<2 THEN

300 15 1:2 63 EXIT (SORTOCTTRF ILE)

301 15 111 67 Its2

302 15 121 71 REPEAT

303 15 1:2 71 IF ATTRCORECI3<ATTRCORErl-13 THEN

- 304 15 1:3 116 BEGIN

a-. I 305 15 1:4 116 TENPX:=ATTRCORErU.I

306 15 1:4 144 ATTRCOREC 11 aATTRCORE[1-12-

1 307 15 114 196 ATTRCOREEI-13:sTEMPX;

300 15 114 216 TEP2-.ATTR2EI3$ A 30? 15 1t4 235 ATTR2CI3 !ATTR2,-1,1

: | 310 15 114 269 ATTR2EI-1!-TENP2;

311 15 1:4 290 IF 1>2 THEN

312 15 15 297 1:0,-10

313 15 1:3 305 END

314 15 1:2 305 ELSE f 315 15 113 307 1:.=+1;

316 15 1:1 315 UNTIL I>NATTRLAST;

317 15 1:0 324 END;

318 15 1O 342

SORTATTRFILE forms an array ATTR2 which is a permutation vector for the

- attributes file so that if one wcre to print out ATTRIBUTES tATTR2(1)] for

K 1=1 to NATTRIBUTES, the attributes would appear in numerical order.

- .

$4:

" -237-
21 16 , i3 *P)ERN RCDR SORTMEASFILE1

322 1:2 16 7 EXIT CSOM1NE AS I LEl10

328 16 1:1 71 FRPaTO MESUE D

325 162 6 1 IF 1 EASCOREIOI TEAOEI2TE

330 16 113 16 1 Ew21

331 16 134 1 REETED~IN~CRL

32 16 112 1 IFEASCORECIJMEASCOREZ-1J;HE

333 16 114 186 DGNSDC-11ENX

334 16 134 116 TEMP2:=9IEASCORE13

335 16 134 235 NEASCRI:~tEASCRCI-13;

336 16 1:4 26 EASCI-13TEPX;

337 16 1:4 210 IF 12 TENS[3

338 16 115 237 MEASI11 AM-3

*339 16 1:3 305 END

340 16 It*2 305 ELSE

*341 16 1:3 307 11-1+1;

*342 16 1:1 315 UNTIL IMMIEASLAST;

343 16 110 324 END;

*344 16 1:0 342

*SORTMEASFILE forms an array MEAS2 which is a permutation vector for the

measures file.

-238-r
I345 17 113O 1 SPS)SEONENT PROCEDURE SORTCOREFILE .s

246 17 110 0 IEGIN iTO00D

347 17 111 0 FOR I= O300

348 J? 1:2 16 CONE2[I13sl 1349 17 121 45 IF NCORELAST<2 THEN

251 17 111 56 11m2;

32 1:11 60 REPEAT

353 17 1:2 0 IF CORECIJ<CORECI-13 THEM %

354 17 1:3 105 SCWN_

355 17 124 105 TEMPuxCOREEIII

356 17 1t4 133 COREE13tuCOREEI-131

357 17 114 175 COREC-3TEMP;

358 17 114 205 TEMP2CORE2[13J

k359 17 1t4 224 CORE2cIJ:nCORE2EI-13;

360 17 1:4 259 CORE2c1-13:=TEMP2;

361 17 114 279 IF 1>2 THEN

362 17 115 296 :1 ;

363 17 113 294 END

34 17 122 294 ELSE

365 17 1:3 296 1:81+11

*366 17 121 304 UNTIL I>NCORELASTI

367 17 1:0 313 ENDt;

369 17 120 332

* .0

-239- Lr
U~~~~~~~7 - ~. ~. 17 . 77 W7 . W-p- .- - -

361? ivi t 1 (*Sf)SENEN1' MWOEDUE NAREFILES;

37019110 0 BEGIN

3711831:1 0 APMwSK:.CoNCA(COPY(CURSYS,192)PCOPY(CURSP,1,2,COPYCURSU,1,2,'?')I

372101:1 96 MncATCoR:mCowCA1APMvSK(CaPY(CURSYS1,4,)CPYCURSP1,4),COPYCUSU3,1,4)) 'AC');

373181:1182 NAMEATTRIBUTES:.CONCAT(APNDsIC,(CopY(CURSYS,1,4))PCOPY(CURSP,1,4),(COPY(CURSU,

374 19121279 wAMERECOE.CONCATAPNDISK, (COPY(CLt9YS1,4)).COPY(CURP1,4),(COPY(CRSU,1,4)),'NC')

373 161:1374 NAIEMEASIJRESIuCONCAT(APNIDSKP(COPT(CURSYStl,4?))COPY(CURSPZ,4). (COPY(CURSU,J

376189111470 COREAEICNCAT(APDSK,(COPY(CURSYS,1,4))COPY(CURSP,141(COPYCURUD,14)),'CO');

77 1913if566 DAANAE:UcOCATAPMDSK,(COPY(CURSYS,e4))COPY(CURSP,,4)t(COPY(CURSUII,4))'Fl');

76 18111l662 ISSUENAME:-CONCAT(APMDSKt(COPY(CURSYS,1,4))tCOPY(CURSP,1,4),(COPY(CURSUD,1P4))1S')I

79101:1758 NAIEFASTxSSUE:uCONCAT(APNDSK,COPY(CURSYS,1,4),COPYCCURSP,1,4),COPY(CURSU,14)'F');

80 1U1:0954 END;

111 s1:086 B

* NAMEFILES constructs strings containing the names of files used in this program.

-240-

. . . . . . . . .
- °.

382 19 Its I (**P*)SENENT PROCEDURE DISPLAYNOAE

33 19 1:0 0 BEGIN

34 19 111 0 SECK(ISStIEP)II

365 1 11 11 S ET(ISSUE)t 3, 3 9 i51 19 WIlTE(Iv'.. ")j

367 19 111 46 FOR AI TO 2 DO

366 19 112 60 EGIN

369 19 113 60 IF LENGTH(ISSUE^NANE[J3))>60 THEN

390 19 1:4 91 LINE.:COPY(ISSUE.NANE1JuIt160)

391 19 113 108 ELSE

392 19 1,4 112 LIME:-ISSUEA.NAHE1J3I

393 19 113 132 IF J=2 THEN

394 19 124 139 URITE" ')$

S396 395 19 ,9 113 ,I2 153 I173 ENN+. MRITELO(LINE),

397 19 1Il 183 IRITELNM" ')l

39 19 1o 201 END;

399 19 1:0 216

:,

DISPLAYNAME displays a measurement purpose on screen [called by display

issues].

-241-

!- -

"K-. . .- .-. -- **
40020 1:3 J(SSP)SESOENT PROCEDURE DISPLAYISSUES;

40120 130 0 BEGIN

40220 1:0 0 EG-IN

, 40320 131 0 ESET(ISSUEqISSUNHE);

40420 131 11 ($1148)

40520 131 11 PhOE(OUTPUT)|

40620 111 21 IF IORESULT<>0 THEN

40720 1:2 27 BEGIN

409 20 1:3 27 NUISSUESItO0

409 20 113 31 EXIT(DISPLAYISSUES)"

41020 132 35 END.

41120 I11 35 IF NUISSUESwO THEN

41220 112 42 BEGIN

413 20 113 42 URILEN('Currently, there ere no meesureeent Issues in the APH for thig

system end subsystem')|

41420 132145 END

41520 131145 ELSE

41620 132147 BEGIN

41720 13 147 RITELN('The following measurement purposes are currently included in the APH:') -, ~ ~41820 113237 FOR Itf-I TO NUISSU[S 00, -%- ' 

41920 134253 DEGIN

42020 135 253 DISPLAYNAHE; .

42120 135256 IF 1I HOD 6=0) THEN

42220 116 265 BEGIN

2320 1:7 265 ANYKEY;

42420 117 268 PAGE(OUTPUT)l

42520 116273 ENDo'

426 20 134 273 END;

427201:2 20 END;

428 20 ll 293 CLOSE(ISSUE);

29 20 3 0 29 END;

43020 1:0314

43020 1.0 314(1 *51UTILITY. TEXT*)

431 20 130 314

DISPLAYISSUES displays names of all measurement purposes on screen.

%

I ~*', °

-242-

%.%,
I I

432 1 23 1 (MP$)PROCEDURE AWYKEY;

1433 1 210 0 MEIN

434 1 231 0 URITELN( ')

435 1 231 is URITELN(' Ple" press eny Iy to continue *$1)3

436 1 211 M (S*R-*)

437 1 231 79 RDANS)I

•440 1 M 102 i

?

3i I 231 3?':42

*.:-

IL

" I°

ANYKEY displays "Please Press any Key to Continue" then it awaits a Kepress - ~ ~before returning control to the calling procedure. .:

-243- -'
441 2 619 1 (MPI)PRDCEOM N.PERI

442 1 610 0 KOIN

443 1 6:1 0 VRITELN('Ifor help please refer to your Ph MNUA.o')S 444 3 610 it ERDI

445 1 6t0 74

15I

I a

I

.''

HELPER due to core limitations, it was not possible to implement the full

HELP facility. Thus, this HELPER merely displays the message.

-244-

,-

.. . . *..- , -. . . ..... . ... : . . _ . . .. . -. . --.. -.. ''. .. . . .-.. -.. . - ,-
446 1 713 1 (S)PRICEDURE KEYNI

447 1 723 I VAN

443 1 723 1 ANIENRI STRINGC402

449 1 7:3 22 112 ARAYCI.,43 OF INTEGER$

450 1 723 26 UMOKOLEANI

451 1 7:3 27 1101NTEOGER1

452 1 723 23

4531 7:0 0 BEGIN '

454 1 7O 0 MR~-*)

4 45&6 i 1S 7:t2 7$1 1! 0 REPEAT PIKAT TE

457 1 7:3 0 d NSW"R :,, ' . 45e 1 M 27 OKt-TRU(; " " ' J459 1 ,,3 30 PREADMANS ,,.--.'/

40 1 713 49 IF LENGTH(ANSWiER),0 TN

S46 1 714 57 MRITELN('Pame. enter the Ingler *ge0n'); e

462 1 712 107 UNTIL LENGTHCANhIDER)(>O1

463 1 722 115 IF (ANSVER[13o'H') OR (ANSUEREI3*'ti) THEN

464 1 713 130 HELPER; 465 1 722 132 FOR I-1 TO 4 30

466 1 7:3 147 IEGIN

467 1 7:4 147 [c13:-ORD( [R[ 3)-4".

468 1 724 165 IF MEM[I1CO) OR (11[13>9) THEN ~ 1469 1 715 192 lEO!:'-4) TE

470 A 1 6 92I(JlORM M OW )-))TE

471 1 71 MBEI

472 1 7: 214 OK wFA.SE1

473 1 7:8 217 WRITELN('PLEASE RESPOND i1TH A POSITIVE INTEGER')$

474 1 737 275 END;

475 1 7'5 275 END2

476 1 713 275 END; " 477 1 71 235 UNTIL OKTRUE.

479 7"1 292 I1O;-,llil); I*

I479 1 71 302 FOR 11.2 TO 4 30

*" 460 1 722 317 IEGIN

431 1 73 317 IF (II[I)>-O) AND (III)Ys9) THEN

462 1 724 344 II0:-11061041)[1C; 1 -;

463 7:2 361 END;

434 1 722 371 ($R48)- -465 1 721 371 12.110;

436 1 7:0 376 END;

487 1 720 398

• KEYN reads a 3 or 4 digit response from the keyboard and places it into 1. If

an H or an h are typed in, it places a 999 in I and calls the HELP routine: If

.1 _. more than 4 characters are typed, only 4 characters are read. The rest are

ignored. If the character(s) are not positive intergers, KEYN will display an

appropriate warning and wait for a response.

-"-245-

,. "*-.
4M 1 M1 I (8PS3PROCEURE KEYI

4"0 ,,1 1 1 419 ..o 0 1 M II2IIHYNTSR .E-.,

495 1I12 27 EAD(ANIMR)l

494 1 312 47 ANS:-ANSNERE13; j

497 8 Sf2 55 IF IANS<>Y) AND (ANSO'N') AND (ANS<'N') AND (ANS(>'y') end

4" 1 0:2 7(0SANSO") AND (ANSO' h') AND (ORD (ANS) 027)THEN

4" 1 :3 W RITELN('PLEASE RESPOND YES OR NOl'? 

500 1 V2 143 IF (ORD(NS)>90) THEN *1 .

501 1 I:3 150 ES-IN

502 1 $14 150 112.uORD(ANS)-321

503 1 914 157 ANS:eCHR(112)1

504 1 82.3 161 END;

505 1 311 161 UNTIL (ANSe'Y'l OR (CNSu'V') OR (A S-'N') OR 0RD(ANS)27)

50 1 31l 186 (SWR)

507 1 0:1 36 IF ANS.'H" THEN

508 1 3:2 193 HELPER;

509 1 3:0 19 END;

510 e:o 210 '

I ..-r'

KEY reads a letter response from the keyboard. If response is 1) y or Y, it places

a Y in ANS and returns to calling procedure; 2) n or N, it places an N in ANS

and returns to calling procedure; 3) h or 11, it calls the HELP routine, places an.

If in ANS and returns to calling program; or 4) any other key-it displays PLEASE . RESPOND YES OR NO and awaits a Y, N, M, y, n or h response. NOTE: Only

the first character/line is processed. The rest is ignored.

-246-

................... .......
511 1 913 1 ($*P$)PROCEDUtE PREPKY(ILPZNTEGER; SOISTRN/G)l

512 1 910 0 SEOIN

513 1 9:1 0 WELPvHLPS

314 1 981 9 REPEAT

S 1 I a 912 9 WRITE(NSG)

1519 1 912 0 56 Y 517 1 9M 22 UNTIL (ANS:'Y') OR (ANS="N') OR (ORD(ANS)"27)I

511 1 910 41 END;

59 1 9"2 .J..

2- [

PREPKEY displays a message then calls KEY to read a letter response from the

keyboard. If a response is not Y, y, N, n, Yes or No, it redisplays the message

and, once again, waits for a response.

-247-

m . - . . . . . . . . . '

K .' _.-, ...- ,.. :- . -- , _ _ _ - . . _,' .. .. . .. . . .. . . . . . .. . . . - .'-.. 
1.-

520 l020 I (SSPS)PROCEDURE INLINE;

521 1O:0 1 VAR

522 1 10:0 1 LONGLINESTRING1125);

523 1 1030 64 LIEOK: BOOLEAN;

524 1 10:5 65

525 1 10:0 0 BEGIN

526 1 10:1 0 REPEAT

527 1 10:2 0 READLN(LONGLINE)

523 1 1022 19 LINEOK:=TRUE;

529 1 10:2 22 h,-LENGTH(LONGLINE)l

530 1 1012 29 IF N>80 THEN

531 1 1013 36 E6IN

532 1 10S4 36 WRITELN('UMARNING LINE CONTA1NS OVER 90 CHARACTERS*$');

533 1 10:4 100 URITELN( ')l

534 1 10:4 110 PREPKEY(39,'DO YOU WISH TO TRUNCATE TO 0 CHARACTERS? ')I

535 £ 10:4 166 IF ANSaIN' THEN

536 1 10:5 173 BEGIN

537 1 1026 173 LINEOK 2 aFALSE I

530 1 10:6 176 WRITELN('PLEASE TYPE LINE AGAIN: ")I

539 1 10:5 220 END

540 1 04 220 ELSE

541 1 1015 222 MS90'

542 1 1033 226 END;

543 1 1o: 226 UNTIL LIWEOK;

544 1 £0t2 230 LINERS =COPY(LOMGLINEv,,N)

545 10: 248 END;

546 1 10:0 264

INLINE accepts up to 80 characters of text. If more than 80 characters are

specified, it asks if it ought to ignore additional characters. If told to, it does.

Otherwise, it allows analyst to re-enter the line.

-248-

77r"
-~~V --- .' v.. - -%0V -

0. %*

547 1 311 1 186SPIPOCEDURE 0NANCHINI

54 1 310 0 PENNH I4 A 330, (Soi=3)

562 1 311 23 0610D)1

55 3190 MUSYIPSNDACRY

554 1 : 0 URIPASSODEIA.CURSP FIEDE OIXS~

55 : 2 CuRI3:EASNVDACRU

562 1 31 93 KTPASSODEANPA

563 1 3:1 1" CUoSYS:PASSMoK4.CURY

573 1 3:1 20 CRBnPSNK.UUS

572 1 311 216 PCDASMK.P

56 : 2 URY:PSNDAWUSS

5" 1 3127 XUSIPSWDACRP

572 1 56 ED

BRANCHIN gets information from the PASSTHRU file for use by this program.

-249-
574 1 4:0 1 (SSPS)PRCEDURE BRANCHOUIU

576 1 4*1 0 REURITE(PASSNDDE,'PASSTMRU'fl ; 5" 1:20 PASSNODEA.FLAGI:01;

57 41 33 CLOSC(PASSMODEPLOCK);

560 1 4:0 41 END,

561 1 410 54

592 1 410 54

a0 410 54

564 1 4:0 54 (SI 65:UTILITT.TEXTS)

55 1 410 54 061! *5:PRINT2.TEXTS)

BR N H U od h ASH Ufl ihaporaedt o s ycle

-250-
586 1 1133 I (SOP*)PPDCEDU TOPICREEN;

567 1 1110 0 MIN1

569 1 11ll 10 SMuLENGTH(CURSYS);

590 1 lif1 to IF 5>16 THEN -

591 1 11*2 25 N3.!63

P2 1 12:1 2 v ,IME~zCOPYfCURSYS,1#H)1

5" 1 1131 46 91('LN, Syst.ms')

594 1 1: 90 WOTXY26P);

594 1 lit30 I 16 TE

596 1 lilt 114 LINE:OCOPY(CURSP,1,H)l

59? 1 11:1 133 NRITEV9',LIEfl 1600 1 1131 155 SOTOXY(44P0);

61 " 1 113t 160 PluLENOTHMCMSUR);

602 1 1131 166 IF H>16 THEN

603 1 11:2 175 NnwM

604 1 1131 179 LIMEuRCOPY(CURSUP1,5);

605 1 11lt 1M MRITELN('8,LIME)3

66 1 1131 228 GOTOXY(62,0)i

60 11£:1 233 U*ITELNtS,'PAC)l

606 1 11:1 263 H~wLENOTN(OBJECTIVE)1

609 1 t1l1 271 If H>47 THEN N3.673

610 1 1131 282 LINE.'sCOPM(OBJECTIJE,1N);

1611 1 11l1 301 IF NSCREEN>1 THEN S1612 1 1132 300 MRtITELN('ObJectiw[',NDI$JECTIVEI,'2',LINE)l

*614 1 11311 384 IF N>67 THEWN 5367

615 1 11:1 395 LINE3.COPM(FUNPJRI.N

J616 1 11l1 414 IF USCREEN>2 THEN

*617 1 11:2 421 MRITELN('Fctl Prp9[CNFUNPUR,'3:',LINE);

6161 1 131 499 WRITELN(1 e)3o

61? 1 11:0 507 END;

S[620 1 11:0 520

- - TOPSCREEN displays appropriate header information at the top of each screen.

-251-

Ik'-
o.i

621 1 12:3 1 ($$P*)PROCEDURE UHICHELININATEW

622 1 12:0 0 BEGIN

623 1 12:1 0 PAGE(OUTPUT)S

624 1 1211 10 WRITELN('Would you like to eliminate at the level of:',chr(13),

625 1 12:1 76 0 0. No eliaination',chr(13)t

626 1 1231 117 ' 1. ObJectives'tchr(13),

627 1 12:1 154 ' 2. Functional Purposes',chr(13).

628 1 12:1 200 e 3. Charocteristics');

629 1 1211 240 REPEAT

630 1 1232 240 KEYN;

631 1 12:2 242 IF (1<0) OR (1>3) OR (1<0) THEN

632 1 12:3 261 NRITELN('PLEASE SPECIFY AN INTEGER BETWEEN 0 AND 3');

633 1 12:1 322 UNTIL (I-0) OR (1<4);

634 1 12:1 335 IF I0 THEN

635 1 12:2 342 BEGIN

636 1 1233 342 CLOSE(DATNODE);

637 1 12:3 351 EXIT(ELININATE);

638 1 1212 355 END;.

639 1 1211 355 IF 11 THEN

640 1 12:2 362 BEGIN

641 1 12:3 362 LEVEL'OJ'-

642 1 1213 373 CUTtO000;

643 1 12:3 379 NSCREEN:=1;

644 1 12:2 393 END;.- -"

645 1 12:1 383 IF I2 THEN

646 1 12:2 390 BEGIN

647 1 12:3 390 LEVEL-:'FP"

648 1 12:3 400 CUT:-I00;

*649 1 1233 404 VSCREEN:=z21

650 1 12:2 408 END;

651 1 12:1 409 IF 1,3 THEN

652 1 12:2 415 BEGIN

653 1 12:3 415 LEVEL:*=CHAR';

654 1 12:3 427 CUi:-I.M

655 1 12:3 431 NSCREEN:-3-

656 1 12:2 435 END;

657 1 12:0 435 END;

658 1 12:0 450

,.'-'°

WHICHELIMINATE asks what level should be used in asking analyst what

performance items are not part of his/her analysis.

-252- V '

•~ " .'%'

* * .*Be. . il| m 
65? 1 1213 1 SPS)PROCEDJRE 6SKELININATE;

660 1 1320 0 BEGIN%

661 1 1331 0 ihuThUKCC0EENODE3 DIV 1000000)1 ~I 1662 1 1311 54 PAC-uASPECTEJ]1

* 63 1 1311 72 NpAC~uj1

*664 1 1331 76 TOPSCREEN;

1665 1 £321 so YRITELN('The followuing toxon is scheduled to be printedt ')I

666 1 13.:1 148 SEEKIDATARODECORE2CNODUI)i

661P 1 1311 10 WRITExyCHo(1; ')

1671 1 1332 223 FORITEDATANODE4.MTAXAJ,,,.')

672 1 1311 266 WITELN(DATARODEA.TAXA)l

673 1 13:1 269 URITELNI' )

I674 1 13:1 306 PREPKEY(2309'Vauld you like to print it?')$ 675 1 1331 341 IF ORD(ANS)=27 THEM

676 1 13:2 346 BEGIN

677 1 13t3 348 CLOSE(DAThNODE)l

678 1 1313 357 EXIT(ELININATE);

679 1 13:2 361 END;

690 1 1331 361 IF ANSu'Y' THEN

691 1 13:2 369 EXIT(ASKELIMINATE)l I662 1 13:1 372 PRJNTITCHODEI3wFALSE;

683 1 13:1 390 IF LEVELW>CHAR' THEN

664 1 133-2 404 FOR I-,I TO NCORELAST DO

695 1 13**3 420 IF COREEII DIV CUT S CUT uCOREENODE3

697 1 1330 513 END;

68 1 13:0 530

ASKELIAIINATE asks analyst exactly what he/she wants to eliminate by presenting

taxons one at a time.

-253-
. . .. . .

6B9 150 1* P)ROCEIURE ELIMINATE;r ,. 690 4: 0 BEGIN

6? 1 5:1 0 PREPKEY(26OeIDO you wish to elimina , ny performance items from your printout?')I 692 1 5t 74 IF (ANSO'W) OR (ORD(ANS)27) THENI

693 1St2 97 EXIT(ELIMNAMTE) ; -

694 1 5:1 91 RESETC(ATANODE, DATANAMNE)-

695 1 531 104 WHICHELIMINATE; -

698 1 5:1 106 FOR NDDEwi1 TO NCORELAST DO*

697 1 5:2 122 IF COREtNODE]0O THEN

9 1 5t3 152 BEGIN

699 1 54 152 IF LEVEL-'0DJ" THEN .

700 1 5:5 165 IF PRIOTITCNODE)TRUE THEN -

701 1 56 197 IF CORECNODEJCORECNODE3 DIV 10000 S 10000 THEN 3

702 1 57 252 ASKELIMINATE"

*703 1 5:4 254 IF LEVELz'FP' THEN

704 1 5:5 266 IF PRINTITCNODE)-TRUE THEN

70 1 56 24 IF CORE(NODEOCOREENODE3 DIV 10000 S 100 THEN

705 517 349 IF CORENODE)0CORE NODEI DIV 100 S 00 THEN

707 1 5:9 414 ASKELIHINATE;

703 1 514 416 IF LEVEL='CHAR' THEN I

709 1 5!5 430 IF PRINTIT(NODE)-TRUE THEN

710 1 5:6 452 IF CORE[NODE3<CORECNODE] DIV 100 * 100 THEN

711 1 57 513 ASKELIMINATE;

712 1 514 515 IF NSCREEN>1 THEN I

713 1 535 522 IF CORE(NODE) DIV 10000 S IO00uCORE(NODE3 THEN

714 1 5:6 587 BEGIN

715 1 53:7 597 SEEK(DATANODECORE?(NODEO);

716 1 5:7 611 GET(DATANODE); I

717 1 5:7 619 XODJECTIVE:-DATANODE^.TAXA;

713 1 5*7 629 NOBJECT VE:-DATANODE4,NTAXAE2;.

719 1 5:6 644 END;

720 1 5:4 644 IF NSCREEN>2 THEN

721 1 5:5 651 IF CORE(NODE3 DIV 100 S 100 - CORE(NODE) THEN

722 1 5:6 712 BEGIN

723 1 5:7 712 SEEK(DATANODECORE2LNDDEJ))

724 1 3:7 736 OET(DATANODE) ;

725 1 5:7 744 XFUNPUR:=DATANODEA.TAXA;

726 1 517 754 NFUNPUR:=DATANODEA.NTAXA(32;

727 1 5:6 769 END;

728 1 53 769 END;

729 1 5:1 779 CLOSE(DATANODE);

730 1 5:0 79 ENDO

731 1WO 310

ELIMINATE using information gained from WHICHELIMINATE, calls ASKELIMINATE I

as appropriate.

I

r i-

- -. o,. + .-. + . . v % + . .% o o - f. . • . . . . . . -p

F "+, * I ' ' ' ' ---.,,- -* -.' ." ." .- .-..-, • " '. " .... ." " ..-.---.- .., . - ,, .. .. ,, _ . _, ., +., .. . % ,.,, "d " "" "-''. " ' "', ". +' " " "-.-"2"' """"-54- '-
7- 'r -7 0, 7:

7 732 1 140 1 (*$PS)PROCEDME PROCESSISSUE.

733 1 410 0 BEGIN

734 1 1431 0 IF NOISSUE*FALSE THEN j 735 1 14:2 8 BEGIN

7361 14:3 S REPEAT

737 1 14:4 3 WRLIE('Mhlch measurement purpose would you like to use (type 0 fot none)?')I

736 1 14:4 66 KE

739 1 1413 38 UNT1L (I>xo) AND (I~uNISSUES)

740 1 1432 100 END

741 1 141 103 ELSE

742 1 1412 105 1:"01

743 1 1411 109 NCURISSUE:u;"

744 1 411 115 IF IO THEN

7451 1432 122 BEGIN

746 1 1413 122 FOR Jl TO 300 DO

747 1 1434 138 PRINTITEJ39-TRUE;

748 1 1413 166 EXIT (PROCESSISSUE)

749 1 1412 170 END;

750 1 14:1 170 RESET(FASTISSUE,NANEFASTISSUE)

751 1 1431 133 SEEK(FASTISSUE*I)l

752 1 1431 194 GET(FASTISSUE);

753 1 141 202 CLOSE(FASTISSUE754 1 1431 211 OI FALSE;

755 1 14:1 215 FOR J:al TO 300 DO

7 1 14:2 231 BEGIN

757 1 413 231 PRINTIT J)I-FASTISSU('APRINTIT[J ;

756 1 1433 265 IF PRINTIT(J3-TRUE THEN

759 1M44 287 OK:sTRUE;

760 142 291 END; 761 1141 301 IF OK-TRUE THEN

762 1 1412 309 EXIT(PROCESSISSUE)-

7 763 1 14:1 313 FOR Jtal TO 300 DO

764 1 1412 329 PRINTITCJ33=FALSE;

765 1 141 357 RESET(ISSUEISSUENAMNE);

766 1 141 370 SEEMISSUE,I);

767 1 1431 391 GET<ISSUE);

768 1 141 389 T2.1O

769 1 14:1 404 URITELN('Pleose be potlent...'rCht(13).

770 1 1431 446 I as getting set up to use your eosuresent purpose');

771 1 14:1 519 FOR J:'l TO 225 DO

PROCESSISSUE selects performance items for printing based upon the

measurement purpose in use.

- '

-- 2 55- "''

, r
- - -~~~7' -- -".-

772 1 1412 535 KOIN

773 1 1413 535 Tl |ISSUEA, DATAJ);

774 1 1413 565 IF 71<>0 THEN .

775 1 1414 583 WOrN776 1 1435 583 SKIPI-FALSE"

777 1 1415 537 FOR K:-I TO 300 DO

773 1 1416 603 BEGIN

779 1 1437 603 TSu-COREK)-

73 1 1417 631 IF (Ti a TS)THEN

731 1 1413 650 BEGIN

7 1 1419 650 PRINTIT(K3 ;TRUE;

703 1 14:9 "S SKIPI-TRUEI

734 1 418 672 ENDPi

735 1 416 672 END;

736 1 1435 682 IF SKIP-TRUE THEN

737 1 14:6 690 IF (Ti DIV 100 *100 0 T2) THEN

73 1 1417 727 BEGIN

79 1 1411 727 FOR %!=I TO 300 DOy

790 1 1419 743 BEGIN

791 1 14:0 743 T21*TI DIV 100*1001

792 1 1410 777 T3SRTI DIV 10000 S 100001

S793 1 1410 815 14:oT1 DIV 1000000 $10000001

794 1 1410 309 TS uCORECKI1

795 1 140 917 IF t2 - T5 THEN

796 1 1431 936 PRINTITEK3:=TRUE;

797 1 14:0 954 IF '3 a T5 THEN

79 1 1411 973 PMINTITCK2: TRUE79 1 14:0 991 IF T4 a TS THEN

W i 1421 1010 PRINTITCK3:=TRUE;

30d 1 1419 1028 ENDI

"02 1 14:7 1039 END303 1 14:4 1038 END; 904 1 14:2 1038 END; -4,

305 1 1411 1049 CLOSE(ISSUE);

306 1 1411 1057 RESET(FASTISSUEtNAMEFASTISSUE); r.

907 1 1411 1070 JI-NCURISSUE;

600 1 1411 1076 SEEK(FASTISSUEPJ) ; ,.

809 1 141 1037 FOR J1 TO 300 DO

310 1 14:2 1103 FASTISSUEM.PRINTITEJfl-PRINTIT[J3 1"

811 1 1411 1147 PUT(FASTISSUE);

312 1 141 1155 CLOSE(FASTISSUE);

313 1 1410 1164 END;

914 1 14:0 1202

See previous page for program description.

-256-

-2 5 6- 3':

op • ° . ~ . . o . , .° - , . o ° - - - , -. . , ° . . .o , • . . . . • . • +° o . , e

-4. ,..',-,-.. . ,.. ..,-.... ....-. . .,:. v ,. .-.. . ,.. .: .. ,-.. ... ... ..... . . .'.:. -" . . ," . ."-. ",,:-.,- . ,,.-"-
91 1 1 qJ: J1 1W 100)PDEDR THENMAS

91I6 1 15*410 0 BEGINPNT

629 1 151 3 EN

92 5- 4 2 4SE ESRS EA2MU"AUE1

:21 54 9 GTMAUE)

$2 1T(PMP 54 0 ) 82 54 24FRK- O6D

)1 924 1 ,0WIEI8 ,ESRSI*IECITRK,*)

PRN25 AUR prnt a5: meaur foT(rNP cuethpUerformance item.

826~ ND 1 

....................................
829 1 16D9 1 (S$PS)PROCEMUE PRINTATTRIDUTE;

330 1 1630 0 BEGIN

931 1 1611 0 FOR NCIRATTRIBUTEul TO NATTRLAST 0O

332 1 16:2 16 IF CORECI~uATTRCORCCNCURATTRIBUTE] DIV 100 THEN

9 33 1 1633 68BEGIN

334 1 1614 68 StEK(ATTRI3UTES,ATTft2ENCUPATTRI3UTE3)1

335 1 16:4 92 OET(ATYRIBUTES);f

336 1 1614 100 VRITE(PRNTP'#)

337 1 1614 122 FOR KtuTO6 DO

938 1 1615 136 URITE(PRNT,ATTRIUUTESANDESCRIPTORCK3, .11I

9 39 1 16:4 179 MRITELN(PRNT,' PATTRIBUTESA.DESCRIPTOR);

9 40 1 16:4 211 PRINTMEASURE;

9 41 1 1613 213 END;

*942 1 16:0 223 END;

343 1 WO 244

PRIN ttrbute ATT IBUT fo curentperfrmace prnts iems

-258-
W 1173 I M PM)DUCEUI UETUSERSTUFF1

645 1170 0 EIN

4631711 0 US(R $ flflS6 SM'

64711711 10 RNSDIT

64811711 36 REPEAT 9.

349 11712 36 URITEL('et I, your noe? '11

652 117:2 87 MS.)

1 1712 247 WRITELK(" ')l

54111 15 UNTIL (COPY(USERNAOEIt3) *'$$') AND (LENBTH(UERNANE>O))

35511711135 KKPAT . 356 1171213 UITELNMPI..gse type. 40-character (sox.) imntification code for the printout')

657 1712 226 (IR-I)

"-! 651 17:2 226 READLN(USERS); I 359 1 17:2 246 OSRMS

M60117:2 246 M*ITELNV''

6111711 264 UNTIL (COPY(USERNS691.31)'35'V) AND (LENSTH(USERNSO)>0);

362 11713 294 EPEAT

! ,+

64311732 294 VRITELM('P1..,. type todays dote:

64 " 1 1732 339 (Sif-1)

065 1 1732 339 READLNUSERDATE);

866 11732 359 (SSWS)

6671171*2 35 URZTELN' '

666 1 1731 377 UNTIL (COPY (USERMSB 1 P3)<'S) AND (LENGTI4WSERDATE)>O) O

W 6 1 17:0 407 END;

~: ~ 701 1710 426

..:

-.GETUSERSTUFF asks analyst for his/her name, project title and the date.

P

p -259-

•% ,,r

'.'-......

• . _ .{c.*.i" k! ~ %\ * .*.*~.
371 1 lots 1 (&$P8) DCEURE TITLEPA6C;

372 1 1320 0 DESIN

873 1 19:1 0 EWRITE (PRNT P'PRINTERV) I

374 1 1321 21 FOR 12.1 TO 13 DO

375 1 1322 35 W*ITELNCPRNT,CHR(14)0' )I

376 1 20:1 73 UR1TELN(PRNTtCNR(14)#' An Analytic Process Model For');

377 1 1321 147 W*ITEL(PRWT.CHR(14),' ')l '

373 1 1321 175 URITELN(PRNICHR(14)#, Systoos Design And fteoureentl')l

379 1 10:1 250 FOR I~uITO 5 9

330 1 1322 264 WRITELW(PRNT,CHR(14,v'

NI1 1 1321 302 NRITELN(PRN1T,CHR(l4)v' Listing Of Taxe and Neasuraents')l

32 U 1 1321 373 FOR ItuITO 5DO

9933 1 1322 392 VRITELN(PRNT,CNR(14)' ' * 34 1 1831 430 URITELN(PRWT.C4R(14),'For1 'PUSERNA4E);

33 1 19:1 477 MRITELN(PRNTPCHm(14)v' ')I

366 1 1321 503 WITELNCPRNTtCHR(14),'D~t&1 ,vUSERDATE)l

6U7 1 1321 553 URXTELN(PRNTCHR(14),' '

63 1 1321 561 WRITELM(PONToCHR01,'R ',USERNSO);

ON38 1 18:1 627 CLOSE(PRNT)j

890 1 120 636 END;

391 1 1320 654

TITLEPAGE prints title page for printout.

h -260-r
92 1 11933 1 (3*PS)PROCE111RE HEADERI 19 93 1 1910 0 DESIN

94 1 1911 0 REURITE(PR6NTRIITERV)l

395 1 1911 21 PAOE(PRNM)

396 1 1911 31 URITELNIPRWT.CNRI14,tSERNANE)I

397 1 19:1 61 VRITELNfPRNTvCHR(l4)vUSERDATE)1

a"39 1 19:1 91 WRITE1NPRIftrCHRE1 USERMSO)j - 99 1 19:1 121 IF MCURISSUEOO THEN

90 1 19:2 123 VEGIN

901 1 1913 126 RESET (ISSUE qISSUENANE); 1902 1 19:3 141 SEEK(ISSUE.NCURISSUE);

M 0 1 19:.3 152 DET(ISSUE~S

M 0 1 1913 160 MRITELNPRTo' ')l

"05 1 1913 173 URITELNfPRNT,CHR(14),'Measureaent Purpose$ ,CHR(J5),JSSUEA.NANEE13);

1906 1 19:3 261 VRITELO(PRNT,' ,9gUVAAN[C23)

907 1 19:3 326 URITELMnPRNTP' )

903 1 19:3 346 CLOSE(ISSUM)

909 1 19:2 355 END I910 1 19:1 355 ELSE

-:911 1 1912 357 BEGIN

912 1 1913 357 WRITELN(PRNT,'')

913 1 1913 375 WITELN(PRNTCHR(14),'Noasuremflt Purpose: ',CHR(15),' Global')$ ;:1914 1 1M: 455 NRITELN(PRNT,' )l

916 1 19:1 473 URITELrNPRNICHR(14),'Systvm Class: ',chr(15),CRSYS,'C',NCURSYS,'3V)I

917 1 19:1 571 HRITELNPANTCHR(Mv)'System: '.chr(15),cursp,'C'SECURSP,'3')g

913 1 1931 663 URITELN(PRNTeCHR(14),'Subsysteei ',ch,115)tCURSU,'ECNCURSU3,']');

*91? 1 19:1 753 NRITELM(PRNTP' 'PCHR(Z14CHR(13)

-)920 1 M9O 796 END;

921 1 19:0 310

HEADER prints header on printout.

J,
MI

922 1 20D1 1 0SIPS)PROCEDURE PRNTDATASET;

923 1 2030 0 BEGIN

924 1 20:1 0 RESET(DATANODEPDAYANAME)i

925 1 20:.1 13 RESET(ATTRIDUTES,NANEATTRIBUTES)I

926 1 20:1 26 RESET(I9EASURES,NANEMEASURES);

927 1 2031 39 REPEA7

92 1 2012 39 HEADER$

929 1 20:2 41 TE"Mo:.0

930 1 2032 45 FOR £1.1 TO NCORELAST 0O

931 1 20:3 61 IF PRINTITE13-TRUE THENM

932 1 2014 33 BEGIN

933 1 20:5 93 SEEK(DATANOPE,COAE2EI3);

934 1 20:5 107 GET(DATANODE)1

935 1 20:5 115 INDNTu4;

936 1 2015 119P IF DATANODEA M7AXAE43=0 THEN

937 1 20:6 135 INDENU-3;

939 1 20:5 139 IF DATANOIE A.NTAXAC33u0 THENM

939 1 20:6 155 INOENT:a2l

940 1 20:5 159 IF DATANODEA.NTAXAC23=0 THEN

941 1 20:6 175 INDENT=1t

942 1 2035 179 IF (DATANOVE A.NTAXAE13(>TEMP2) AND (DATANODEA.NTAXA1I3<>0) THEN

943 1 20:6 212 BEGIN

944 1 2017 212 WRT(RN 1)1VANTX~lo...OOO

945 1 2027 257 SRITE(PRNTASPECTtIIATANODEA.NTAXAC13J,'1 ')l

946 1 20:7 302 CASE DATANODE^.NTAXAE1J OF

947 1 2027 316 1IVRITELM(PRNTPODJLBI1

948 1 20:7 369 2:WRITELN(PRNTOPJLBL2)1

94 1 20:7 441 33VRITELP(PRNTP03JLBL3);

950 1 20:7 497 41WRITELM(PRNT,OBJLBL4)I

951 1 20:7 552 5:VRITELN(PRNTODJLSL5);

"~92 1 20:7 617 END;

'a953 1 20:6 634 END;

954 1 20:5 634 7EMP2:aDATANOPEA.NTAXArI;

*955 1 20:5 649 FOR JXul TO INDENT DO

956 1 20:6 665 WRITE(PRNT ')

957 1 20:5 699 FOR X-1l T0 4 DO 4959 1 2016 703 WRITE(PRNTDATANODEA.NTAXAJ2'.1)1

-5959 1 20:5 746 URITELN(PRNTt'0.0. ',DATANODCA.TAXA);

V 60 1 20:5 795 IF INDENT>1 THEN

961 1 20:6 792 PRINTATTRIBUTE;

6.

-PRINTDATASET is the controlling program for printing a data set. Also, prints

all performance items. Calls PRINTATTRIBUTE when necessary.

-262-
T 7

962 1 2015 794 IF KEYPRESS THE N

963 1 2036, 301 BEGIN

964 1 2027 901 READ(ANS)t

9V65 1 2017 312 IF ORDANS'x27 THEN OO

966 1 20:3 319 BEGIN

967 1 2029 919 URITELNCPRNT,'Job cencelled');

968 1 2019 352 PAGE(PRNT); 'I

969 1 20:9 862 CLOSE(PRNT),

970 1 2019 371 CLOSE(ATANOD()i

971 1 2039 80 CLOSE(ATTRIOUTES);

i 972 1 209 9 CLOSE(HEASURES);

973 1209 93 EXIT(PRNTDATASET)l

974 1 20:8 902 ENDI

975 1 2016 902 END;

i 976 1 2034 902 END

977 1 2012 912 PAGE(PRMT);

973 1 2012 922 CLOSE(PRNT)"

979 1 20:2 931 PREPKEYI 303, 'WWII you 1110 to Oprit enothe, COPY 0? thoe. 004suets?')

90 1 20:1 990 UNTIL (ANS,'N9) OR (ORD(ANS),271;

901 1 2011 1011 CLOSE(DATAMODK);

982 1 201 1020 CLOSE(ATTRIBUTES).

93 1 20:1 1029 CLOSE(IEASURES)l

984 1 20:0 1033 END; M8 I 2t0 We8, 986 9 20:0 1068

937 1 20:0 1068 (*$1 95,PRlNT2.TCXTS)

938 1 20:0 1068

!* "

See previous page for program description.

-263-r

S -
981lItO 0 ($tVl)IKIIN 991110 0 1 (•$-8)

9911 111 0 NISSUJ[S515

992 131 110 NflE&SURtES:*4001

993 111124 NhTTRIBUTES142QO|

994 11:1130 DiANCHINI

995 1111132 DEFINEASPECTSI

996 1 11 135 NAMEFILES;( 997 111 139 VRITELN('P)east be potient');

99 11:1175 WRITELNV' I am starting to sort your datafiles'),

999 11:1233 READATTRFILE

1000 111236 SORTATTRFILE ; , 1001 li1239 WRITELN(" I Just finished sorting the attributes')$

10021lit 299 REMMNEASFXLE0

1004 11:1305 MRITELN(* I Just finished sorting the measures')'#

1005 1:1 363 READCOREFILE|

1006 111136 SORTCOREFILE| 1007 111369 URITELN(' I Just finished sorting your datofiles')|

1006 111429 OPENDATAFILE; 1

,1009 11 432 OPENISSUEINDEX;

10101 I:i 435 OPENFASTISSUE;

1011 1 131 438 UCTUSERSTUFFI

1012 11 1440 TITLEPACOE

1013 11:1442 REPEAT

i1014 11:2 442 DISPLAYISSUESI

1015 11:2 445 PROCESSISSUE;

1016 1112 447 REPEAT 1017 113 447 ELININATE;

1016 11:3 449 PRNTDATASET;

1019 11:3 451 PREPKEY(359,'Uould you like to remove &ore performance items from your printout?') 1

1020 11:2526 UNTIL (ANS='N') OR (ORD(ANS)m27);

1021 11:2539 PREPKEY(360,'Uould you lite to process another measurement purpose?')

1022 11:1599 UNTIL (ANS,'N') OR (ORD(ANS)s27);

1023 11:1614 RERITE(PNTOPRINTER:'); 1024 11:1635 FOR 1:-1 70 10 DO ,[- 1025 11:2652 NRITELN(PRNT,'END OF PRINTOUT FOR ',USERNAN);

1026 11:1714 PAGE(PRNT);

1027 111724 CLOSE(PRNT)|" 1028 11:1733 IRANCHOUT; 1029 11:1735 TCNAINVOREEII)1

1030 11 0749 ENV.

BEGIN is the main program: 1) sorts attributes and measures, 2) processes

measurement purposes, 3) eliminates unwanted performance items, and 4) prints

wanted performance items.

-2 64

-264-

/ -
,~J ,7...4

962 1 2015 794 IF KEYPRESS THEN

963 1 26 601 BEGIN

964 1 20:7 001 REDONS);

965 1 2037 112 IF ORD(ANS)-27 THEN

966 20:18 19 BEGIN

967 1 2019 319 WRITELN(PRNT,'Job cancelled'); 4 968 1 2019 852 PANE(PRNT);

969 1 20:9 862 CLOSE(PRNTI970 1 2019 871 CLOSE(DAIAN0DE)-

971 1 20:9 80 CLOSE(ATTRIUITES);

972 2019 89 CLOSE(REASURES)t'

973 1 20:9 396 EXIT(PRNTDATASET);

974 1 20:6 902 END; .I%.

975 12016 902 END;

976 J 2034 902 EMD

J I 977 12012 912 PAGE(PRNT);

9781 2022 922 CLOSE(PRNT)5'

979 1 20:2 931 PREPKEY(303,'Vould you Ilt% to print onother copy of these masureoents?')|

M1 20:1 99S UNTIL (ANSm'N') OR (ORD(ANS)-27);

"1 202i 1o1 CLOSE(DATANODE)" " 992 1 20:1 1020 CLOSE(ATTRIBUTES); - 993 1 20:1 1029 CLOSEI(HEASURES);

- 1 20,0 1036 END;

986 1 20:0 1068

967 1 20:0 1068 80I O5!PRINT2.TEXTS)

1 96120:0 8 1068

-%6

See previous page for program description. AL.

j -2 63-

=i r

" .5£)

- .,.
9H391110 0 (8$P*)UOIN 1 ,. ,,o 0 (,.)

99111 0 NISSUIS:-S

9921 1:1118 NE ASURES:z4001 ,

993 111 124 NATTRIBUTESIN200;

9941 1 130 DRANCHIN;

9951 1,1 132 KFINEASPECTS,

9961)11 135 NAKEFILES;

998 111 175 iRITELN(' I a starting to sort your dotofiles');

9991 11 233 REAIATTRFILEI I "

10001311236 SORTATTRFILE;

1001 111 239 VRITELN(" I Just finished sorting the ottributes');

1002 1 Ill 299 READNEASFILE'

1003 11:1302 SORTHEASFILE1004 

1005 

1111305 

11.1 363 

WRITELN(" 

READCOREFILE|

I Just finished sorting the measures'); ' U

1006 1131366 SORTCOREFILE;

1007 11:1369 WRITELN(" I Just finished sorting your datofiles')!

1008 1131429 OPENDATAFILEI

1009 1 11 432 OPENISSUEINDEX;

1010 11 435 OPENFASTISSUE;

1011 1 1:1 438 GETUSERSTUFFIl

1012 1 11 440 TITLEPAGE;

1013 11:1442 REPEAT

1014 11:2 442 DISPLAYISSUES; u

1015 11:2 445 PROCESSISSUE; !

1016 11:2 447 REPEAT

1017 11:3 447 ELIMINATE;

1018 11:3 449 PRMTDATASET;

1019 11:3451 PREPKEY(359t'Vould you like to remove more performance items from your printout?'); "

1020 11:2526 UNTIL (ANS-'N') OR (ORD(ANS)-27);

1021 11:2539 PREPKEY(360o'Nould you like to process another measurement purpose?')

1022 1121599 UNTIL (ANSuWN') OR (ORD(ANS)z27)1

1023 1121614 REiRITE(PRNT,'PRINTER:');

1024 11:1635 FOR I1:1010 DO

1025 11:2652 WRITELN(PRNIt'ENV OF PRINTOUT FOR ',USERNAME)"

1026 1 lit 714 PAGE(PRNT) (

1027 1131 724 CLOSE(PRNI) I

1028 11:.1733 RANCHOJ

*102t911Il1735 SETCHAIM('0REETJN6');

1030 1130 749 END.

BEGIN is the main program: 1) sorts attributes and measures, 2) processes

measurement purposes, 3) eliminntes unwanted performance items, and 4) prints

wanted performance items.

I

-264-

L ,%.
*- - I

I .!

: )

1 |PACK

Pack causes the performance item, attribute and measures data sets to be

sorted into numerical order (according to statement number). It also moves

* unused space to the end of each data set where it becomes available for

use with subsequent execution of the PERFITEM and MEASATTR programs.

* 0, -25

, t_ - Pakcue h promneiem trbt ndmaue aa est e.

•_-_sortedntonumerialorder__acordingtostatement_ nmber).__ t_ lso_ moves
Mfa., - r... . .*. .. .. .. ... . .. . . . . ... . . ... . ....--. -.........-. -r- -

1 1 iD 1 (36L PRINTER: 8)

2 1 id 1:8S: V i 2.//

3 1 iM 1 (8 Progirm to pocK performance items attribute, and measures lists 8) 4 1 liD I (I Ronald 6. Shapira Version 2.0 10/25/825) .

5 1 110 1 Program Packdatasetts;

6 1 1:1 3

7 26 ld 3

8 28 2:D 1 PROCEDURE SETCHAIN(TYTLE:STRING);

9 28 3:D 1 PROCEDURE SETCVAL(VAL:STRING); -

10 28 41D I PROCEDURE GETCVAL(ViAR VALISTRING);

11 28 5D 1 PROCEDURE SMAPON;

12 28 6:0 1 PROCEDURE SiAPOFF;

13 26 6:0 1

14 1 i:D I Uses Chainstuffli

1s 1 l:o 3

These procedures are part of the Apple Computer's CiJAINSTUFF library entry.

The demonstration package uses only SETCIIAIN which causes another program

to be activated.

-266-

. . . . . ...

... . ..-.- . . . . . . . . . . . .- . . . . . . . . . . . . .
- . -- 4 - '-..,-.- - , . .y x , r11 " "p 1 ~- -j -. dl - -J l-* J21

16 1 1 3 (SPS)TYPE

17 1 11 3 ISSUEFILE -RECORD

1s 1 13:1 3 UA: INTEOER; . 1 1 1:1 3 NAN1ARRAY(I..2OF STRING 80, 20 1 1:9 3 DIMARtNRAYE1. °22530F INTEGERES]; "" !i21 1ISOi 3 END;

22 1 1 S 3

23 1 IS 3 PASSFILE -RECORD

24 1 IM 3 CURSYSoCURSP,CURSUP,PAC:STRINGOCO8; " -"

25 1 1:M 3 NcURSYSNCURSP,NCURSUBNPACtFLAGIFLAG2PFLAG3: INTE0ER;

1261 27 1 1:10 ISO 3 3 END;

28 1 ISO 3 DATABASE -aECORD

29 1 1:1 3 NTAXA: ARPAYCI..43 OF INTEGER;

- 30 1 I:D 3 TWXA STRING603;-.

31 1 ISO 3 END;

32 1 1:1 3

33 1 1:0 3 rILEATTRIDUTES -RECORD

34 1 1: 3 NDESCRIPTOR: ARRAYEt1.6, OF INTEGER;

35 1 I:O 3 DESCRIPTOR: STRINGC68;'

36 1 I1D 3 END;

37 1 ID 3

' 38 1 LIS 3 FILENEASURES -RECORD

39 1 1 3 NDESCRIPTOR: ARRAYEI..6) OF INTEGER;

40 1 1'D 3 DESCRIPTOR: STRING[683;

41 1 ISO 3 END;

42 1 110 3

43 1 1 3 TEMPh "RECORD

44 1 ISO 3 NDESCRIPTOR: ARRAY[I.*63 OF INTEGER;

45 1 1:D 3 DESCRIPTOR STRINGC68;-

46 1 13O 3 END; 47 1 I:D 3 48 1 ISO 3 TEMPA *RECORD R .

t49 1 ISO 3 DESCRIPTOR: ARRAY1.63 OF INTEGER;-

50 1 ISO 3 DESCRIPTOR: STRINO(683;

51 1 ISO 3 END;

52 1 I:D 3

53 1 I:D 3 TEMPO -RECORD

54 1 1M0 3 NTAXA: ARRAYEI..42 OF INTEGER;

55 1 l:D 3 TAXA: STRING9O0--

56 1 1:10 3 END;

57 1 I:D 3

ISSUEFILE contains the measurement purposes. PASSFILE passes information

> between the various programs. DATABASE contains the performance items.

FILEATTRIBUTES contains the attributes. FILEMEASURES contains the measures. TEMPM, TEMPA, TEMPD are temporary files used during the pack procedure.

-267-

V. 2,:....

*. .. . .. .......... * .*. , ... . ..**~ ...+ .~ . .. Lx .i.-.-... *.
V I A-'', - - - - 7 ' '-- -'- :- -

M~

56 1 1:0 3 (SSPS)VAA

59 1 1:0 3 PASSNODE:FILE OF PASSFILE;

60 1 1:9 474 DATANOKEIILE OF DAAASE;

61 £ 1:0 119 COREFILEMILE OF INTEGER(C62

62 1 I:D 1122 ATTRIbUTES:FILE Of FILEAT7RJ3UTESI

63 1 1231 1463 ATTRFILE:FILE OF INTEOEAC12JI

464 1 1:9 1767 NEASURES3FILE OF FILEMEASURES1

65 1 1WD 210S MEASFILEIFILE OF INTEGEEC22;

67 1 1:0 3470 TENPMEASURES:FJLE Of TENPH;

60 1 1231 3611 TEHPA77RIBUTES:FILE OF TEHPA;

*69 1 1:3 4152 TEIDATA:FILE OF TEMPDL

*70 1 1231 4497

71 1 1:0 4497 CORE3ARRAYEI.93003 OF INTEGERrS;

72 1 1:0 5397 ATTRCOAEIARRAVCL..2002 OF INTEGERtI23;

73 A1 :lD 6197 MEASCOAE3ARRAYCI.*4003 OF ZOTEGERE1231

74 1 1:0 7797 ICRATCHIARRAY MI.201 OF INTEGER;1

75 1 1:1 7917 ASPECT;ARRAYCI..53 OF STRINGC203;

76 1 1111 7672 WASPECT3ARRAYCI..53 OF INTEGER;

*77 1 1*3 7877 CORE2:ARRAYE1..3002 OF INTEGER)

*76 1 133 6177 A7TR2ARRAVCI..2002 OF INTEGER$

*79 1 120 6377 NEAS2:ARRAYCI..4003 OF INTEGER;

so 60 I 133 8777 PIINTITARRAMC.,3002 OF BOOLEAN;

81 1 133 9077

32 1 139 9077 XCNARAC,XFUNPUA,#XODJEC71VE,PAC,CuIRSYSCURSP,CuRSUI: STRINGCSOJ;

63 1 lID 9364 NCURNEASURENCUmATTRIIUTENCURISSUENCHARAC#

94 1 1:0 9364 NFUNPUR,NODJECTIVE,NPAC,NCURSYS,NCURSP,NCURSUD:- INTEGER;

8 5 1 1:0 9374

86 1 133 9374 ISUtENAH~tNANEATCORE,NANEATTRI3UTESNMNECOR~,NAENEASUES STRINOC 402; 1:

69 1 1:0 9542 APHDSI(:STRINGC1OJI

89 1 1tW 9546 LEVEL: STRIMGCI1I1

90 1 I'D 9554 USERNANIU9ERDATEoUSERNSG3 STRINGCUO3;

91 1 1:0 9677

92 1 1:11 9677 TEHPCORELAST,T1,T2,T3tT4,T5: INTEOERES];

93 1 1:3 9699 TEHPX,ATTRLAST,NEASLASTSINTEGERE123I

94 1 113 9710

95 1 13 9710 N03EINVERSENELPNSCREEM:INTEGER;

96 1 1:0 9714 NCORELAST,NATTRLAST,NMEASLASr:JNTEG(R;

97 1:3 9717 NISSUES,NUISSUES,NAITRIDUTESWNEASURESNUEASURES:INTGE( ( ,

4. These strings, arrays and variables are used by this program.

-7

-268-

04I
10 9 1 I :m 972

101 1 1:0 9732 REFERENCED LOWGWAY 9DONE t OER v0K SKIPt NONE: BOOLEAN;

102 1 1:0 9739

103 1I :0 9739 L1NMEMSTft1NGC6o3;

104 1 1:0 9780 LINCSTR1NGE603I

1 09 1 1:0 9995

:)111 1 10116(Sl1 *5:UTILITY.TEXT*)

11 M 09

Se rvospg o pormdsrpin

-29
... . .U7W- q.. 

113 1 2:0 , €SPS)PROCEDURE ANYKEY;

114 1 210 0 BEGIN

125 1 2*1 0 UIRTELN(" ')

116 1 2:1 18 URI7ELN('$SS Please press any Key to continue *8*);

117 1 2:1 78 %$R-S)

lie 1 2.1 76 READ(ANS);

119 1 2:1 39 (ISR#S)

120 1 2:0 39 END;

121 1 2:0 102

.- ,

I, .

ANYKEY displays "Please Press any Key to Continue" then it awaits a Keypress

before returning control to the calling procedure.

.... :

-270-

: --i :..-.2-. . .'. . - '-:2.: ....- , . ..- .:--;" .*. . . .- -. - .. . ......-.- ..
S,% %

122 1 3"D I (S$PS)PROCENURE HELPER; 123 1 3:0 0 BEGIN "-

124 1 3"1 0 MWITELN('For help pleese refer to your AM NMANUAIL..1*

125 1 3:0 61 END;

126 1 3:0 74

.- 0

I

,. ~HELPER due to core limitations, it was not possible to implement the full "'.-

i ~HELP facility. Thus, this HELPER merely displays the message. ."i

-271

:1 !

:1' "%

"I "

* I

b- I:. -27I 

:o.

* ) ,.'','':-'''''-, ,' --' ..... :''''' '.'' >' -'.'-'.".' • ... ,,j -.. ,.,,q % .. ,, ",'.'r','. :"-'," : ," , .
127 1 CD I (ISP,)PROCEDUIRE KEYN

126 1 40 1 wVAR

129 I NSWER: ND STRING[402)

130 1 CD 22 I1 ARRAYCI..43 OF INTEGER;

131 1 CD 26 OKIDOOLEAN1

132 1 43 27 IIO:INTEGER;

133 1 4:0 28 |

134 1 410 0 BEGIN

135 410 0 (*SR-S)

136 1 431 0 REPEAT

137 1 4:2 0 REPEAT I

138 1 4:3 0 ANSWER:=' ";""

139 1 413 27 OK:-TRUE140 1 4:3 30 READLN(ANSUER);

141 1 4:3 49 IF LENGTH(ANSWER)nO THEN

142 1 414 57 MRITELN('Peaos enter the integer again');

143 1 412 107 UNTIL LENGTH(ANSWER)00;

144 1 412 115 IF (ANSWEREIL&sH1) OR (ANSWER[1I3o') THEN

145 1 4:3 130 HELPER; -

146 1 412 132 FOR 1:31 TO 4 DO I

147 1 413 147 BEGIN

S149 1 4:4 147 IICI3-ORD(ANSUERII)-48;

149 1 414 165 IF (I(l](0) OR (I111>9) THEN

150 1 415 192 BEGIN

151 i 4:6 192 IF (I1m) OR (IIEI3<>(ORD(' ")-48)) THEN

152 1 47 214 BEGIN

" 153 1 418 214 OK :FALSE;

154 1 4:8 217 URITELN('PLEASE RESPOND WITH A POSITIVE INTEGER');

155 1 417 275 END;

*156 1 4:5 275 END;

157 1 413 275 END;

156 1 4t1 285 UNTIL OK-,TRUE;

159 1 4:1 292 IIOuIIll;

160 1 41 302 FOR I1'2 TO 4 DO

161 1 412 317 BEOIN

162 1 4:3 317 IF (11(13>w0) AND (11I)1<s9) THEN 163 1 44 344 1108110*1041111.

164 1 432 361 END; I

165 1 412 371 (SR4S) I

166 1 431 371 1:Z110;

167 1 4:0 376 END;

168 1 4:0 398

1.

KEYN reads a 3 or 4 digit response from the keyboard and places it into I. If

an H or an h are typed in, it places a 999 in I and calls the HELP routine. If

more than 4 characters are typed, only 4 characters are read. The rest are L .:K:

ignored. If the character(s) are not positive intergers, KEYN will display an

appropriate warning and wait for a response. t

L-272

-272- r!*

": ."":": -" ' " .: ." -: :",'""-: : --.-. -- -'....-.... .,'.-.-.'.".-. "'. . .. "... .-. ". ..... .'''. " ." ...- " '. " ."....
-. - _ -- *

169 1 W:D I (*SP$)PRDCEDUR KEY;

170 1 5:0 1 VAR 171 1 5:D 1 112: INTEGER;

172 1 5:0 0 3EGIN

173 1 5:0 0 (M8R-S)

Jl175 174 1 1 5 5:1 1 27 0 REPEAT ANSWE R C12"

176 1 5:2 27 READLN(ANSUER) 177 1 5:°2 47 /sANSMER[ 1)

178 1 52 55 IF (ANS<>'Y') AND (ANS0'N') AND (ANS(>'N') AND (SO*)y') and

179 1 52 76 (ANS<>n) AND (ANS<'9h') AND (ORD(AMS)O27)THEN

180 1 5:3 98MRZTELNVPLEASE RESPOND YES OR NO!');

181 1 5:2 143 IF (ORWANS)9) THEN

182 1 5:3 150 EGIN"" I 183 1 54 150 A 112iI D(NS)-321 "

1894 1 5:4 157 ANS:aCHR(112);

190 1 5:3 161 END; 18s6 1 511 161 WT, (ANs-,Yr) OR (A.s-,.,) OR (.s-'H') OR (oRD(ANs)-27); 1

," 187 1 5:1 186 04MR*) .. IS 18 5:1 186 IF MNS='N" THEN ."' . '"

.189 1 5:2 193 HELPER; "-"

..|190 1 5:0 195 END; '' :

191 1 5O 210

* KEY reads a letter response from the keyboard. If response is 1) y or Y, it places

a Y in ANS and returns to calling procedure; 2) n or N. it places an N in ANS

and returns to calling procedure; 3) h or 11, it calls the HELP routine, places all

f in ANS and returns to calling program; or 4) any other key-it displays PLEASE

~ I RESPOND YES OR NO and awaits a Y, N, H, y, n or h response. NOTE: Only V.-

• " K~teY fres caraetter/ln respoese frm d The eoard.igfred.nei 1yo Y tpae -.

"" iu

,- re s o l
C r - "

IV

192 1 D 1 (StPos)PROCEDURE PREPKEY(NLP:INTEGER;KSG:STRING); 193 1 6*"0 0 DEGIN

194 1 611 0 H(LP:"HLP;

195 1 6:1 9 REPEAT

1971 6:2 20 KEY;

19 1 6: 22 UNTIL (AIS-'y') OR (ANS'N') OR IOEAANS)xV);

199 1 6:0 41 END;

200 1 6*0 56

PRlEPKEY displays a message then calls KEY to read a letter response from the ... keyboard. If a response is not Y, y, N, n, Yes or No, it redisplays the message |,,

and, once again, waits for a response.

-7.

-1'0.
k I- . r OR

1203 202 1 :0 1 VA 1 7:0 1 L8SP8)PROERINLINEJ2

204 1 7,3 64 LINEOK:DOOLEAN;

20 1 723 65

206 1 720 0 BEGIN

207 1 731 0 REPEAT

20 1 712 0 READLN(LONGLINE);

209 1 7:2 19 LINEOKt.TRUE; *.I. .'

210 1 7:2 22 :-LENGTH(LONGLINEf) I211 1 7:2 29 IF MAO THEM

212 1 713 36 SEGIN

213 1 734 36 MRITELN(S*SWARNING LINE CONTAINS OVER S0 CHARCTERS$*');

214 1 724 100 WRITELNi' ')I

215 1 74 110 PREPKEY(39'DD YOU WISH TO TRUNCATE TO S0 CHAWCTERS' ")- 216 7:4 166 IF AMS-'N1 TH"E

217 1 7*5 173 DEGIN

218 1 716 173 LINEOK:"FALSE;

219 7:6 176 WRITELN('PLEASE TYPE LINE AGAIN: "f.

220 1 7:5 220 END

221 1 7t4 220 ELSE

222 A 7t5 222 M.o80;

223 1 7:3 226 END; 224 1 71 226 UNTIL LINEOK;

225 1 7:1 230 LINER:,COPY(LONGLINEe1h);

226 1 70O 248 END;

227 1 730 264

; "

INLINE accepts up to 80 characters of text. If more than 80 characters are

specified, it asks if it ought to ignore additional characters. If told to, it does.

Otherwise, it allows analyst to re-enter the line.

2,.7 %,

.__"-"-- -275- ,,,-=

-... .-.- -.- -- " • . - _ -- .. "r3'
220 1 6%9 1 (SI)PROCEWRE IRANCMJN;

229 1 630 0 MIN1

230 1 310 0 M6I-$)

233 1 9:1 0 RESEI(PASSNODEPePASSTHkU');

23? 1 i1.1 is 1:uIORECSULT;

233 1 3ll 23 E*1SS 3I234 1 9.11 23 IF 10~0 THEN

235 1 6:2 30 NEGIN

236 1 6:3 30 MRITCLNC'PASSTHAU FILE DOES NOT EXIST');

237 1 62.3 76 WI1TELN(' $***FATAL ERFAORSMSCa-h

23B 1 6:3 123 WRIIELN('

239 1 0:3 167 ANYXEY; -240 1 813 169 SETCHAIN('PGM1')l

*241 1 8:3 179 EXIT(PR0GkAH);

*242 1 822 183 END; - ~ 243 1 6:1 163 GET(PASSNOVE);

*244 1 all 190 CURSYS3.PASSM0DE4.CURSYS;

245 1 .31 196 CURSP:.PASSNODEA.CURSP;

246 1 831 206 CUASU3:PASSNODE.CURSUI;

*247 1 8:1 214 PAC:=PASSNODEA.PAC;

246 1 631 220 MCURSYS:-PASSNODE.NCURSYS;

249 1 331 227 NcuRSPIPASSMDDEA.NCUkSp;

*250 1 0:1 234 NCURSUB3UPASSNODE4.NCURSURI

251 1 831 241 NPAC:sPASSNODEA.NPACI

252 1 931 248 CLOSE(PASSNO'E);

253 1 830 256 END;

254 1 6M 270

* BRANCHIN gets information from the PASSTHRU file for use by this program.

-276-
a -''

255 1 9:11 (*SPS)PROCEDURE RAC4OUT;

256 1 9:0 0 BEGIN

257 1 9:1 0 REUR1IE(PSSNODE,P'PASSTHU'); 258 1 9:1 20 PASSNOD£ F LA6 1lull1 259 911 26 PUT(PASSNOIJE);

260 1 911 33 CLOSE(PASSNODE.LOCK)

261 1 MSo 41 END;

262 1 9:0 54

263 1 9:0 54

264 1 910 541

265 1 9:0 54 ($61 *S:UTILITY.TEXTS) -,

. 266 1 9:0 54

ov A

-277-.

": i BRANCHOUT loads the PASSTHRU file with appropriate data for use by called .- ._2, programs. -}

L e'-i

,'Fl.

• "," ,--277-

..... :, .. . .. .. .... _.. . .. _..? . .,. ., .. . ... .. _ ... .,_. .. .. .. " . "._ - . • • . .. .. . ...
a,°.

267 1 IO:0 I ($SPS)PROCEDURE OPENATTRIBUTESFILE;

268 1 10:0 0 BEGIN

269 1 10:1 0 NAITRLAST:aO;

270 1 10:I 4 (S61-3)

271 1 10:1 4 RESET(ATTRIBUTESNAMEATTRI4UTES);

272 1 1011 15 (MI*)

273 1 10:1 15 -:-O1RESULT;

274 1 10:1 20 IF 100 THEN

275 1 1012 27 BEGIN

276 1 10:3 27 NATTRLAST:=-1;

277 1 10;3 32 VIiTELN('there is no 4ttributes file on disK');

278 1 10!2 87 END;

279 1 1011 97 CLOSEATTRIBUTES); - 280' 1 10:0 96 END;

I i

.2 1

:..

I

OPENATTRIBUTESFILE checks to see if there is an attributes file on the disk.

-27 4

-278- " 3

a"..
'1I 82 1 1:10 i 1 ($$P$)PROCEDURE OPENKEAqSURESFILIE|

"-

283 1 1110 0 BEGIN

284 1 11:1 0 NUEASLASTt=0; t285 1 11:1 4 06$I-$)

286 1 1:1 4 RESET(NEASURES, NANEEASURES);

287 1 11:1 15 ($$iff)

28 1 11:1 15 J:-IORESULT;

289 1 11:1 20 IF 100 THEN

290 1 11:2 27 BEGIN

291 1 11:3 27 WRITELN('There is no aeasures file on disK');

292 1 11:3 80 NMIEASLAST:-1;

293 1 11:2 as END;

294 1 11:1 895 CLOSE(EASURES)l

295 1 11:0 94 END;

- 296 1 t10 106

1? 4

OPEN AlEA SURESFILE checks to see if there is a measures file on disk.

-279-
297 1 12:D 1 (tS)PPRDCEDE READATTRFILE;

2" 1 12:0 0 BEGIN

299 1 1230 0 (81-8)

300 1 121 0 RESET(ATTRFIL .NA ATCORE) I

301 1 1211 11 [IimORESULT; I

302 1 12:0 16 48il1S)5

303 1 12,1 16 IF 10 THEN

304 1 12:2 23 BEGIN I

305 1 1233 23 RENRITE(ATTRFILEPNMEATCORE)| 306 1 1213 36 FOR I:-i TO NATTRIDUTES DO

307 1 12:4 52 BEGIN

308 1 12:5 52 ATTRCOREE 131=6

309 1 12:5 79 ATTRFILE4:vATTRCORECI31

310 1 12:5 107 PUT(ATTAFILE)l

311 1 1215 115 IF EOF(ATTRFILE) THEN 5

,, 312 1 1256 125 BEGIN --

313 1 12:7 125 IIRTELN(VOUT OF DISK SPACE');

314 1 1217 162 ANYKEVI

315 1 1236 164 END;

* 316 1 1214 164 END;

* 317 1 12:3 174 ATTRLASTIOi

319 1 23 169 NATTRLASTO.-"

319 1 12:3 193 ATTRFILE1uATTRLAST"

320 1 1213 209 PUT(ATTRFILE)"

321 1 1213 217 CLOSE(ATTRFILELOCK)"

322 1 1212 226 END , 323 1 12"1 226 ELSE

324 1 1212 228 BEGIN

' 325 1 12:3 228 FOR 11=1 TO NATTRIBUTES DO

326 1 1234 244 BEGIN

327 1 12:5 244 GET(ATTRFILE)'

323 1 12:5 252 ATTRCOREC 1)tYTRF ILE^

329 1 1214 280 END;

330 1 1213 290 8ET(ATTRFZLE)f

331 1 1213 293 ATTRLAST1UATTRFILE"A

332 1 12:3 314 NATTRLAST:;TRUNC(ATTRLAS7)1

* 333 1 1213 327 CLOSE(ATTRFILE);

334 1 12:2 336 END;

335 1 1210 336 END;

336 1 1210 354

++-,- .a"

READATTRFILE reads the index to the attributes file from the disk file

ATTRFILE and places it into the array ATTRCORE. --:!

-280-

% ++
1337 1 13ND 1 CSSPS)PR0CEDUM READHEASFILE;

336 1 13:0 0 DEGIN

339 1 1330 0 (*$1-$)

340 1 13:1 0 RSET(EASFILEPNW HCORE);

341 1 13:1 11 I:ulRESULT;

342 1 13:0 16 (O145)5

343 1 131 16 IF IOO THEN

344 1 1312 23 bEGIN

345 1 13:3 23 REURIMMEASFILE,9ANERECORE)

34& 113 36 FOR i111 TO MNEASUIRES DO S347 1 1314 52 KOGIN

348 1 13M5 52 NEASCOREEIVE1.,;

349 1 13:5 M9EASF IL£E: -NE4SCOR[£ LIl

. 350 113:5 107 PUT (IqASFILE) |

351 1 130 115 IF EOFUHEASFILE) THEN S,352 1 13:6 125 IVEGIM r

353 1 13:7 125 MRITELN(OUT OF DISK SPACE');

354 1317 162 ANYKEY;

355 1 13:6 164 END;

356 1 133*4 164 END;

357 1 13:3 174 NEASLAST:-O358 1 13:3 19 NHEASLST:,0;

" 359 1 1333 193 IEASFILEAuNIEASLAS;.

360 1 13:3 209 PUT(HEASFILE). 36 1 13:3 217 CLOSE(1EASFILELOCK);

362 1 13:2 226 END

363 1 1311 226 ELSE . 364 1 1312 226 BEGIN

365 1 13:3 228 FOR I:=1 TO MECASURES DO

366 1 13:4 244 BEGIN

368 1 1335 252 NEASCO[ I3I.-IEASFILEA;

369 1 13:4 260 END;

370 1 13:3 290 KT(IEASFILE)

371 1 13:3 298 REASLAST:-MEASFILEA;

372 1 13:3 314 NMEASLAST:uTRUNC(EASLAST);

373 1 313 327 CLOSE(KASFILE)I;

374 1 13:2 336 END;

375 1 1310 336 END

376 1 13:0 354

4

READMEASFILE reads the index to the measures file from the disk file MEASFILE

and places it into the array MEASCORE.

-281- •. -, -i

7l .**. ** *.
I

377 1 14:D (SSP8)PROCEDUNE CLOSECOR£1rLE

378 1 14:0 0 DEGIN

37?9 1 1411 0 REKST (COREFILEPCOREN)AN)

300 1 1431 13 FOR 1:,1 TO 300 00

381 a 14:2 29 EGIN I

362 1 14:3 29 COREFILEA:-CORE(I3I

383 1 14"3 57 PUT(COREFILE);

384 1 14:2 65 ENDI

385 1 14:1 75 CORELAST:INCORELAST; I

366 1 14:1 92 COREFILE :uCORELASTI

397 1 14:1 106 PUT(COREFILE);

38 1 14:1 116 CLOSE(COREFILE);

389 1 14:0 125 END;

I

9 1

CLOSECOREFILE copies the index to the performance items from the array -

core to the disk file COREFILE.

-282-

,. ___*-.***
I391 1 15:0 1 (SSPS)PROCEOMR CLOSEATTRFJLEI

392 1 15:0 0 ICOIN

393 1 1511 0 RESCT(ATTRFILE,MIATCR)v

394 1 15:1 13 FOR UIn TO NATTRIDUTES 0

I-395 1 15:2 29 BEGIN

397 5:3 1 57 PUT(ATTRFILE)i ,399 390 1 15:2 65 END;

1 15:1 75 ATIRASI : NAT7RLAST 1

400 1 15:1 92 ATTRFILE[AUATtRLAST;

j401 1 15:1 106 PUT(ATTRFILE)l

402 1 15:1 116 CLOSE(ATTRFILE)l

403 1 1530 125 END;

404 1 ISMo 140

CLSATRIE 

to 

h th idxtoteatrb

dis 

ois fil ATTFILE

teara TNC

-283
405 1 16:3 1 (*SPS)MMOEDWIE CLOSEIIEASFILE;

406 1 16:0 0 IEGIN 1

407 1 16:1 0 RESET(REASFILE,NANENECORE)1

406 1 1&:1 13 FOR 11.3 TO NMEASUIMS [.0

409 A 16:2 29 DEGIN

410 1 16:3 29 HUEASFILE)NESCO I)

410 1 16:3 29 PUNEASFILE);NACOEI

412 1 £622 65 END;

413 1 1621 75 HEASLAST2=NNEASLASTI

414 1 16:1 92 NEASFILEA:&MEASLAST;

415 1 16:1 106 PUT(HEASFILE);

416 1 1611 116 CLOSE(NEASFILE)i

417 1 16:0 125 ENDI

413 1 16:0 140

CLOSMEAFIL tothemeaure coiestheinde fie frm te arayMEACOR to th dikfl ESIE

-284-
1419 1 17:D 1 SS6ft PROCEDIME OEMAIE

420 1 1730 0 K61N

421 1 1731 0 NCORELAkSTuoSg

422 1 17:1 4 ($$1-*)

423 1 17:1 4 RESET(MAODE99ATANAHE);

424 1 17:1 is (SUM~ s:~1

425 1 17:1 15 IMuORESULII

426 1 17:1 20 IF 100 THEN

427 1 17:2 27 KelmN

428 1 17:3 27 URITyELN('Thgre is no peiforeence it&*% file an disk')$

430 1 1732 94 ENO; 1431 1 1731 94 CLOSE(DATANKD)I

*432 1 1710 103 ENDS

J433 1 17:0 116

OPN A A IEdtr ie hte hr aeaypromneie so1h ik

-285
434 1 18:9 1 fOPS)PROCEM KFINEASPECTSI

435 1 1a:0 0 DEGIN

436 1 16:1 0 ASPECTCI~euPIttielities.

U437 1 19:1 30 ASPECTC2~:uProcesi..;

436 1 19:1 55 ASPECTE33:aProducts';

43f 1 16:8 79 SPECTC43WuEetviroeeeat'

440 1 1a:1 1"6 ASPECTC53:sConstreints'l

441 1 1:1 133 MASPECEI11

442 1 18:1 146 NASPECTE23:U2S

443 1 10:1 159 NASPECTE[3t3

444 1 18:1 172 RASPECTC4]:u4i

445 1 1u:1 165 NASPECT152:w5I

*446 1 18:0 198 END; 1 1

447 1 18:0 210

-286-

% %
443 1 19:8 1 $1F6P)PROCEDURE READCOREFILE$

449 1 19:0 0 BEGIN

450 1 19:0 0 0651-0 UTIUT) 1451 19:1 0 ESETA(COREENR)

452 1 19:1 11 I E:IO SULT;

453 1 19:1 16 0$10)

464 1 19:1 16 IF 100 THEN

469 1 19t2 26 WRTLE61S*ATLEROSIS

456 1 19:3 23 IF I=9 TLN

457 1 19:4 30 NGIN

45 1 1935 30 PANC(OUTPUT)

460 1 19:5 296 SRIETC£NeORETJ

:.461 119:5 106 WIRITELM('PL[ASE PLACE IT IN DRIVE 82")l LIN,

i.462 19IM 153 ANKEYN.;

4638 19:5 153 Rr(COREFILE D( O XS'f..-

44 1 19:5 10 EXIT(PR•8OGRATIL F

S475 1 19t4 311 END;

476 477 11912 1 1911 314 314 ELSEEND .

478 13922 316 FOR 13.1 TO 300 DO 479 1 19:3 332 BEGIN

40 1 19:4 332 GTEI(COREFILE) 3 EI

461 1 1914 340 CORE[I$ICORAFILEA) . 482 1 19:3 368 EN; 483 1 19t1 378 GET(COREFILE;

484 19136 CORELAST: =COREF ILEA3 .i " #

485 1915 402 NCOR(LAB-TRUNC (CORELASI).

S1 486 1 19:1 439 cLOSE(COREFILE)

487 1 19:0 424 END

486 1 3910 444 EL

4" 1 9: 32BEI

I ~ .

READCOREFILE copies performance items from the disk file DATANODE to the

01CORE file. '" " :

49 93 6 NI

-2 87- 104--

446 1 19:0"444

:=-..-DC .- RE - IL opie- pe .fo , ma , .. c .. items ., .. from- ,, .ile, the dis.k,.- .. .. . . . . ,.N.,. - , ,to. , -the

, .,%CO % R % file° , - . , % % % % .' ' ' - . - ., . ,.% ', , .. . . '.. -. . . ,, . -, .. .. -.
TY" W . - - .- - v w - "-. d-, €-

I *

489 1 20:9 1 (SPS)PROCEDUR SORTATYRFILE;I.

490 1 20:0 0 BEGIN

491 1 20:1 0 If MATTRLAST<2 THEN

492 1 20:2 7 EXIT(SORTATTRFILE)- 493 1 20:1 it FOR I$,,1 TO HATTRIIMUTES 00 ,. 494 1 20M2 27 ATTR2CI)|ul;

495 1 20:1 56 1:=29

496 1 20:1 60 REPEAT I

497 1 20:2 60 IF ATTRC EMCIX<ATTRCORECI-13 THEN!

49 1 20:3 105 SEOIN

499 1 20:4 105 TENPX$ ATTRCORE(I .

500 1 20:4 133 A7TRCORE[(I :-ATTRCORE(I-1tI ...

501 1 20:4 175 ATTRCORECI-13:sTEHPX;.-

502 1 20:4 205 TEMP2:sATTR2(I3.

503 1 20:4 224 ATTR2CI2IATTR21I- g

504 1 20:4 256 ATTR2[1-123,TENP2; i . 505 1 20:4 279 IF I>2 THEN ,

506 1 20:5 296 1:,I-11

507 1 20:3 294 END

506 1 20:2 294 ELSE .:

509 1 20:3 296 I:-I#t;

510 1 20:1 304 UNTIL I>NATTRLAST;

*511 1 20:0 313 END,'I

512 1 20:0 3321

++ I ""

-*o .-

SORTATTRFILE forms an array ATTR2 which contains a sorted permutation - vecyor referencing the attributes file [sorted by numerical value of the index]-- '-

sort attributes index into assending numerical order.

-288-

--
513 1 21:D 1 (SPS)PROCEWDE SORTMEASFILE;

314 1 21:0 0 BESIN

515 1 21:1 0 IF NHEASLAST<2 THEN

516 21:2 7 EXITISORTMEASFILE)I

517 1 21:1 11 FOR I-I TO NEASURES DO

513 1 21:2 27 MEAS213:3l

529 1 21:1 56 l:*2;

!2 0 1 21$1 60 REPEAT

?Z21 1 21:2 60 IF HEASCOREEICIIEASCORE(I-13 THEN

522 1 21:3 105 KEGIN

I 523 1 21:4 105 TEePX:INEASCORE[Z];

524 1 21:4 133 NEASCORE[I :-EASCORECI-1;-

525 1 21:4 175 NEASCORE(I-13:=TENPX;

526 1 2194 205 TEHP2:1NEAS2CI]"

527 1 21t4 224 HEAS2 1*1N1EAS2I-1-. . 523 1 2134 258 MEAS2I-13"TEHP2;

529 1 2114 279 IF 1>2 THEN

530 1 2115 286 II-1

531 1 2113 294 END

532 1 21:2 294 ELSE

533 1 2113 296 121#1;

534 1 21:1 304 UNTIL I>NMEASLAST.

535 1 21:0 313 END;

536 1 21:0 332

! 1' :Nt

SORTMEASFILE forms an array MEAS2 which contains a sorted permutation

vector referencing the measures file-sort measures index into ascending

numerical order.

-289- 3

............................... .

" . .,,. . .". ' ' -' ,"o, %-.,.," . .. " "%', ," . -, . . . ' . . - • . , ". ' .•. - -,•. .,-," -o -.. .. -. ' .•. ". . * - m4 . . . .* * * * **.
~I

:537 1 229 1 (SePS)PROCEDURE SORTCOREFILE; ,.14,

538 1 22:0 0 BEGIN

539 22:1 0 IF NCORELAST<2 THEN r540 1 22:2 7 EXIT (SORtTCOREFILE); I -

541 2211 11 FOR 11-1 TO 300 O 0

542 1 2232 27 COREH2CIlI * *

43 22:1 56 I:-2;

544 1 22:1 60 REPEAT I

545 1 22:2 60 IF CORECEIJCORE[I-13 THEN o

546 1 22:3 105 BEGIN

547 1 22:4 105 TENP:=CORECI),

548 1 22:4- 133 CORE(13:aC0AELI-132

549 1 22:4 175 CORECI-1]:-TEMP;

550 1 22:4 205 TEHP2:BCORE2(1];

* 551 1 22:4 224 CORE2, :uCORE211-13,

* 552 1 22:4 259 CORE2(I-13:'TENP2;

553 1 2234 279 IF 1>2 THENI

554 1 22:5 286 1:01-1;

555 1 22:3 294 END _ *556 1 22:2 294 ELSE

557 1 22:3 296 I81

558 22:1 304 UNTIL I>MCORELAST;

559 1 22:0 313 END;

560 1 2230 332

I'

* SORTCOREFILE forms an array CORE2 which contains a sorted permutation

vector referencing the core file.

-29L

[ :::"

~~~-290-- .o

• .-. -. * **:* ** * *% -* ....'.S- 
561 A 23:D 1 ($SP*)PROCEDURE COPYATTRIDUTES;

562 1 23:0 0 BEGIN

563 1 23:1 0 RESET(ATTRX3UTESNANEATTRIBUTES);

564 1 23:1 13 REWkITE(TEMPATTRIBUTESNANETEHPORARY);

565 1 23:1 26 IF IORESULT<>0 THEN

5" 1 23:2 32 BEGIN

567 1 23:3 32 MIRITELN('PROBLEM CREATING TEMPORARY DATASET')|

569 1 23:3 66 ANYKEY;

569 1 23:2 88 END;

570 1 23:1 so FOR I:*1 TO NATTRLAST DO

571 1 23:2 104 BEGIN

572 1 23:3 104 SEEK(ATTRIBUTESATR2[13);

573 1 23:3 126 GET(ATTRIPUTES);

574 1 23:3 136 BEEK(TEMPATTRIBUTES,I).

575 1 23:3 147 TEMPATTRIBUTESA:-ATTRIBUTES4;

, 576 1 2313 155 PU(TENPATTRISUMES);

577 1 23:2 163 END;

578 1 23:1 173 FOR Va-l TO NATTRLAST DO

579 1 23:2 189 BEGIN

580 1 23:3 189 SEEKTEMPATTRIUTESI).

581 1 23:3 200 GET(TEMPATTRIBUTES);

592 1 23:3 208 SEEK(ATTRIBUTES,I);

583 1 2333 219 AYTRIPUTESA tTEMPA7TRIOUTESA; I584 1 23:3 227 PUT(ATTRIBUTES);

585 1 23:2 235 END,

586 1 23:1 245 CLOSE ATTRIBUTES);

87 1 23:1 254 CLOSE(TEI4PATTRIBUTES);

588 1 23:0 263 END;

589 1 23:0 280

dCOPYATTRIBUTES copies the attributes file from the disk file to the temporary

storage disk [sorting attributes into numerical order] and temporary disk back to the K ' usual storage disk.

-291-

. ..- ,o.

"-i-'i-'~~~~~~~~~~~~~~..'-..-..- .... ....... ...-.-.. .-. . ...... ,,-.-,. .... , .,. .--., - '.- -'
J...

590 1 24:3 1 (SP*)PROCEDURE COPYREASURES;

591 1 24:0 0 BEGIN

592 1 2411 0 RESET(EASURESNA NEEASURES);

593 1 24:1 13 REWRITE (TEMPMEASURES, NAK7EIPORARY)-

594 1 24:1 26 IF IOREStLT0O THEN I "

595 1 24:2 32 BEGIN A.

596 1 24:3 32 iRITELN('PROBLEH CREATING TEMPORARY DATASET');

597 1 24!3 6 ANYKE

598 1 24:2 66 ENDI

599 1 24:1 8 FOR I:u1 TO NHEASLAST DO

600 1 24:2 104 BEGIN

601 1 24:3 104 SEEK(MEASUREStMEAS2113)i

602 1 24:3 128 GET(REASURES)-

603 1 24:3 136 SEEK (TE PHEASURES,I)

604 1 24:3 147 TEMPMEASURESA: uEASURESA;

605 1 24:3 155 PUT(TEMPHEASURES) .

606 1 24:2 163 END;

607 1 24:1 173 FOR II,1 TO NHEASLAST DO

608 1 24:2 189 BEGIN

609 1 24:3 189 SEEK(TERPMEASURESI)I

610 1 24:3 200 GET(TENPIEASURES);

611 1 24:3 209 SEEK(NEASURES9I);

612 1 24:3 219 MEASURESA: =TENPREASURESA;

613 1 24:3 227 PUT (MEASURES) I

614 1 24:2 235 END;

615 1 24:1 245 CLOSE(HEASURES)l

616 1 24:1 254 CLOSE(TENPHEASURES)-

617 1 24:0 263 END;

616 1 24:0 280

I- .

COPYMEASURES copies the measures file from the disk file to the temporary I :

storage disk (sorting measures into numeric order I and copying the items from

the temporary disk back to the usual storage disk.

....

-- 292- A_

"" -" . -" C. * - .''.''.',,'.*"-.*" S,,' '.' ''.'' - . . . .. ,' ". ',,* ,' .. -"- • " """. ". '. ." '.' -. -. . . ., . - . * " .- '. -. " . , !
S619 1 251D 1 f$$P*)PROCEDUJRE COMYORE;

S621 620 1 1 25:0 25'1 0 EGIN RESE(T fTNODE#tDATANW );

623 1 25:1 13 IEURITE(TEHPDATAO NMETEWOPARY);

623 1 25:1 26 IF IORESULT0O THEN

624 1 25:2 32 BEGIN

625 1 25:3 32 URITELN('PROLEN CREATING TEMPORARY DATASET'),

626 1 25:3 36 AWYKEI;

627 1 2512 88 END;

623 1 25:1 s6 FOR I:l TO NCORELAST DO

629 1 25:2 104 BEGIN

630 1 25:3 104 SEEK(DATANODE,CORE2I3);

631 1 25*3 126 0ET(DATANDE)5

632 1 25:3 136 SEEK(TEMPDATA,1)l

633 1 25:3 147 TEMPDATAA:,DAT/O J"-.

634 1 25:3 155 PUT(TEMPDATA)-

635 1 25*2 163 END;

636 1 2531 173 FOR 13.1 TO NCORELAST DO

637 1 2532 139 BEGIN

639 1 25:3 199 SEEK(TENPDA TAo,

% 639 1 25:3 200 GET(TEMPDATA)-

640 1 25:3 206 SEEK(DATANODE,I).

641 1 25:3 219 DA ANODE,%:=TEN3D/T" ;

642 1 25'3 227 PUT(DATANOD..) | ""'""A

643 1 2532 235 EIlN

644 1 25:1 245 CLOSE(DATANODE);

645 1 25:1 254 CLOSE(TENPDA A);

646 1 2530 263 END;

647 1 25:0 260

IV

COPYCORE copies the core file from the disk file to the temporary storage

disk [sorting items into numeric order] and copying the items from the temporary

,. disk back to the usual storage disk.

0L

-293-

~Ii
648 1 26:10 1 (*SPS)PROCEDUPE REMOVEATTRIIUICS; 1

649 1 26:0 0 BEGINFa

650 1 2631 0 SEEK(ATTRIRUTESPAI d.

651 1 26:1 11 FOR Lia1TO 6DO

652 1 2612 25 AT7RI9uTESA.NDESCRIP7ORCL33OI;

653 1 2631 50 ATTRIDUTESA.DCSCRIPTORuD"

654 1 26:1 60 PUTA0TTRIIUTES);

655 1 2611 68 OkTTRCORErj3:uo

656 1 2610 95 ENDI

657 A 26:0 110

-294-
~: I659 21 1 (SSWS)PROCESIME REHOVEREASURZS;

659 1 2710 0 3(01W

680 1 2711 0 SEEK(HEASURESOJ)

"1I 1 2711 11 FORL:wI T600

662 1 27:2 25 NEASURESAANDSCRIPTORLzO;

663 1 27:1 so HEASURESA.DESCRIPTORWuI;

664 1 27:1 60 PUT(HEASURES); "5 1 27:1 66 HEASCORECJ~=O; 66 1 2710 95 END;

"7 11%0 1

4.0

II

*e -f-i c. e
I.

668 1 2613 (SPS)POCEDURE REOVEDATAI

669 1 26:0 0 BEGIN

670 1 28:1 0 SEEKDATANOIEPJ);

671 1 26*I 11 FOR LUa TO 4 0

672 1 28:2 25 DATANOEA.NTAXACL2 kl0

673 1 20:1 50 VATAi OKA.TA:";

674 1 26U 60 PUT(DATANODK);

675 1 2611 6 COREI:wo; I

676 1 2020 95 END;

677 1 20 110

REMOVEDATA removes a performance item from data file. ,

-296-

"" r' '.:&

K,..-. . . ... % ,p .. ."U . ' -' "."-L i,' ' :....' ,''''""" . 'L', • """ . ¢ '"" ' ,.-.''.- . """. , ...'' ',; ';" '''''
-676 1 29:0 1 (*6P*)PROCEDURE OfCiTAUES

679 1 2910 0 DEIN (660 1 2921 0 RESET (ATTRIBUTESoNAMEATTRIIES) I

612 1 2931 17 1:80;

663 1 29:1 21 REPEAT

66 1 2912 21 lim8t0i

685 1 29:2 29 REPEAT

666 1 29:3 29 IF ATTRCORECI*hl=0 THEN

667 1 29:4 63 I"

j*686 1 29:3 71 MM J689 1 2923 W1 IF .DNATTRLAST THEN

690 1 2914 90EIN '~

691 1 2925 90 HEM;~

1692 1 29:5 96FOR JI TO NATTRLAST DO

693 1 2916 116 RENOVEATTRIDUTES;

6914 1 291 1261 NATTRLASTUwNATTRLAST-11

695 1 2925 136 CLOSE(ATTRIPUTES)l ~:696 1 29:5 147 EXIT(COMPACTATTR!6UTES)$

697 1 2914 151 ENDI

696 1 29:2 151 UNTIL ATTRCORECI*N2C0

4699 1 2912 165 ATTRCOAECU:.ATTRCORECIN.;

700 1 29Z2 229 J1wI+uii

701 1 2922 239 SEEK(ATTRIDUTESPJ);

702 1 2912 250 SEVATTRIDUIES)I

703 1 291 2 256 SEEMCATIRIBUTES,ID)

704 1 2922 269 PIIT(ATTR19UTES)1 :1705 1 2921 277 UNTIL .IwNATTRLAST;

7" 1 91 266 1101+1

707 1 2911 29 FOR JIUI TO NATTRLAST DO

706 1 29:2 312 RENOVEATTRIBUTESI

709 1 2911 324 MATTRLAST.oNATTRLAST-NI

710 1 2M1 334 CLOSE(ATTRIINUTES)l

711 1 29;0 343 imp;

712 1 2910 34

COMPACTATTRIBUTES packs attribute data set so that all blank entries are

pushed to the end of the data set.

-297-
713 3o:9 1 SSPSPRO M CONPACTNEAsuEs;I

714 1 30:0 0 DEGIN

715 1 3011 0 RESET(HEASURESNMIEREASURES) S

716 1 301t 13 NM0I

717 1 30t 17 Iu.UOf

716 1 301 21 REPEAT

719 1 30:2 21 1:1411

720 1 30:2 29 REPEAT .1

721 1 30:3 29 IF NEASCO(EEI+H)30 THEN

722 1 3054 63 N.UN41;

723 3033 71 JeISN;

724 1 3013 61 IF J>IEASLAST THEN

725 1 30:4 90 EGIN

726 1 3035 90 I:i 1.;

727 1 30$5 96 FOR JAwl TO NIEASLAIT DO

726 1 3016 116 REHOVENEASURES

729 1 3015 128 NNEASLAST: -NASLAST-NI

730 1 30:3 138 CLOSE(HEASURES)l

731 1 30:5 147 EXIT(CONPACTNEASURES)l

732 1 30t4 151 END)

733 1 30:2 151 UNTIL MEASCORE MI*NOO.

734 1 30:2 165 HEASCORECItu.-EASCORECE)N2"

735 1 3032 229 J:m1*N

736 1 30:2 239 SEEKEASIRESPJ) | *,

737 1 30:2 250 ET(REASUtES);

738 1 302 256 SEEK(HEASUtESI)i

739 1 30:2 269 PUT(HEASURES);

740 1 30:1 277 UNTIL J-NEASLASTI

741 1 30:1 266 1181+11

742 1 3031 294 FOR JM-l TO WHASLAST DO

743 1 30:2 312 RENOVENEASURES;

744 1 30:1 324 NNEASLAST:-N ASLAST-M| 745S 30:1I 334 CLOSE (HEASMES) |

746 1 30:0 343 ENDM

747 1 30:0 364

COMPACTMEASURES packs measures data set more efficiently so that all

blank entries are pushed to the end of the data set.

-298-

... 1"

" .***-..4..... .- ~ *'*** "~*4 V/I .. '-. .*%.**' 4
746 1 311D 1 ($PS)PROCEDURE CONPACTCOREI

749 1 31o0 0 CoRN

750 751 1 1 3:1 3111 13 0 RESET M'I-0;" A7ANiOEKSTA E)1 *

752 1 31:1 17 3=0,

753 1 31:1 21 REEAT 1. 754 1 31:2 21 1:61, 733 31:z2 REflPEAT

756 1 31:3 29 IF CORE[I4443,0 THEN

S757 1 3114 63 rn;i4,-

756 1 3113 71 Jm-IN759 1 31:3 31 IF ,J)ONCICLAST THEN

760 1 3114 90 EIlN J -".

761 3135 331151 90 .- "'

762 1 31:5 96 FOR JI TO MCOAELAST DO

v 763 3116 116 REMOVEDATA;

764 1 31:5 129 J CORELAST.M.CORELAST-Ml

765 1 31:5 139 16CLOSEDATANODE)

76 1 31S5 147 EXIT (COPACTCO EI767 1 314 151 END

76 1 31:2 151 UNTIL COREC*NJ.OI

769 1 31:2 115 COREILCOREL-1, 1

770 1 31:2 229 J118I"" 1 771 1 3112 239 S :EK(DATANODEsJ o.

772 1 3112 250 ITQ3ATANODE-;

774 1 31:2 269 PuTMTANMODEP; 774 31:2 1 &9 EU(DTANODEI

77 1 31:1 277 UNTIL JENCORELAST;

776 1 31:1 266 ItRIMl

777 1 31:1 294 FOR JuI TO CORELAST DO SJ773 1 3112 312 REHOVDATAS

779 3111 324 NCORELAST' NCORELAST-"

730 3111 334 CLOSE (DATANODE) I

761 1 31M0 343 END;

732 1 3110 364

COMPACTCORE packs performance item data set more efficiently so that all

blank entries are pushed to the end of the data set.

-29-.'

U. . 9.9
764 1 32:0 0 DLGIN

765 1 32:1 0 WRITELN(' This file contains less tha.n 2 items, thus It will not be packed')$

M6 1 3210 66 END;

767 1 32tO 9

DO O ipaswann esg ta iewl ntb akd

300I
70 1 33:D 1 ($SPS)POCEDUE PROPERUTLDISK;

739 1 3310 0 BEGIN

7 1 33:1 0 REAT

79 1 3311 0 48I-8)

792 1 33:2 0 KSET(TEMPDATA.'N4UTL TEHPORY")

793 1 3312 27 ($1#)

74 1 33:2 27 KuwIOESULT;

75 1 33:2 32 IF Kw0 THEN

796 33:3 39 CLOSE(TEPDATA);

797 1 33:2 46 IF K-9 THEN

79 1 33:3 55 BEGIN

799 33:4 55 RITELN('Ploese ploce the AN UTILITY disk in drive 0 1)1 .

300 33:4 121 ANYKEY"

i 801 1 33:3 123 END;

802 1 33:1 123 UNTIL K09,

803 1 33:0 130 END;

4804 1 3310 144

+i i. -.,

-ha

I ...,

PROPERUTILDISK checks to be sure APMUTL (the disk used for temporary

storage) is in Drive #1.

-301 1A

% -. -301-' "
L.

U@6 a 34:0 0 SESIN

807 O1 I 34:14l 3(I-8) 0 RPA '. b9 342 0 SET (TEPIDTA)1APYS:TF.POP, NW" 810 1 34:2 27 (851t8)

Oil 1 34:2 27 K:-IORESULT; .'

04112 1 34:2 32 IF K-O THEN

813 1 34:3 39 CLOSE(TEMPOATA) |

914 1 34t2 48 IF K=9 THEN

15 1 34M 55 KIN

SU 1 34:4 55 NRITELN('Please plce the AN SYSTEN disk in drive 0 1'1)

617 1 3414 120 ANYKIYJ

618 1 34:3 122 ENI

819 1 3421 122 UNTIL K091

620 1 34:0 129 ENDI

621 1 3410 144

I.

I

I

PROPERMAINDISK checks to be sure the APYSYS disk has been returned to

Drive #1 before returning to select a different analytic procedure. L .

I p 4

-302-

% %
822 135:D 1 (SSPS)PREMME ASSIUNMNES;

323 135:0 0 SEBIN

924 135:1 0 AMM SKCNCAT (COPY(CURSYS9 I M ,COPY(CtNRSP1 P2) 9,P(CURSUI,1 P2)0':1

925 13511 U6 NANETEMPORARY:UCOWCAT('APIIUTL:TEIPORRY')I

026135:1121 NANEATCORE: uC0NCAT(APNDSK(COPY(CtIRSTS,1,4)),COPV(CURSP,1,4I,(caPT(cIMU3W,1,4))."Ac')I

82713531217 NAMEATTRhINTVOC0NCAT(APNDIM,(C0PY(CUftSTSP1 P41) 9C0PV(CUSP,104) v(C0PT(CUR3U3,1 PO),

929 135:140 NANENEAStfE:=CUNCA1 (APHDSICv(COPY(CURtSYS, 1 0))eCOPY(CWiSP, 1 PO@(COPY(CURSUbt 194))

ONE');

9 30135:1505 CORENAME3CNCAT(APDSIC(COPY(CURtSYS,1.A)) rCOPY(CIRSP,114) f(COPY(CRSU, 14),CO');W

9 31 135:1601 DATANAHEuCONCAT(ADSK, (COY(CtHSYS 14))CPYCRP 1), (COPY (CURSU, I P) 'F')I

8323135:16&97 ISSUEEAH:=CONCAT(APNDSK.(COPY(CURSYS,1,4)),COPY(CURSP,1,4).(COPY(CURSU3,l.43),'1IS

333135:0793 END;

334 135:080

ASIN A E eemnsfienm sbsduo1yse lssse n

sussem nm s

I I.303-

:.- ,
MJ T

835 1 1"0 0 ($SP$)BEIN J

336 1 1:0 0 (85NtS)

837 1 ill 0 PAOGE(OUTPUT ;

3 1 1:1 141 3RANCHN3V

339 1 111 143 PROPERUTLDIUIC

840 1 1:1 145 VRITELN('I am going to sort end peck ell data sets, but I e slou.'tchr(13)t

841 1 121 224 0 so please take a coffee break at this timechr(13),chr(13))j .

842 1 ilt 309 "ISSMSI

643 1 1:1 313 NNEA ES: -4001

644 1 11 319 NATTRIDUTES:u200 "

845 1 11 325

846 1 11 325 ASSIGNNAMES847 1 1:1 327

343 1 1:1 327 WRITELN('Processing attributes')$

349 1 1:1 36 OPENMTTRIDUTESFILE .

350 1 11 370 IF NATTRLSTO-1 THEN

851 1 13 373 BEGIN 

'

952 1 1:3 373 READATTRFILEI

9 53 1 133 360 IF NATTRLAST)? THEN

" 354 1 1:4 367 BEGIN

655 1 115 387 COHPACTATTRIDUTES"

56 1 1:5 389 SORTATTRFPLE.

.57 1 135 391 COPYATTRIBUTES858 1 1:5 393 CLOSEATTRFILE I

659 1 134 395 END

860 1 113 395 ELSE

361 1 1:4 397 DONOT;

862 1 132 399 END; .. - 63 1 1:2 399

06 1 1:1 39" WRITELN('Procossing mesures');

665 1 M 436 OPENIEEASURESFILE;

666 1 1t. 440 IF HHEASLASTO-1 THEN

367 1 1:2 440 BEGIN

363 1 123 443 READMEASFILE;

869 1 1:3 450 IF NHEASLASTM2 THEN

870 1 1:4 457 BEGIN

371 1 1:5 457 COMPACTNEASURES;

672 1 1:5 459 SORTHEASFILE;

873 1 2*5 461 COPY/EASURES;

. 674 1 1:35 463 CLOSEMEASFILE

• . .

Main Program: Governs overall packing and sorting of attributes, measures

and performance items. -

-304-

S- , . . : c : ~ V -
875 1 134 465 END

676 1 133 465 ELSE

677 1 1:4 467 DONOT'

878 1 1:2 469 END;

879 1 1:2 469 ,

880 1 331 469 WRITELNW(Processing performonce itei);

Bel99 1 1:1 517 OPENDATAFILE;I 682 1 1:1 519 IF HCORELAST0-1 THEN

983 1 1:2 527 BEGIN

664 1 13 527 REIDCOREFILE;

85 1 1:3 529 IF NCORELAST>2 THEN

. 686 1 1:4 536 BEGIN

867 1 1:5 536 CONPACTCORE;

Ss8 1 1:5 538 SORTCOREFILE_ 689 A 1e :5 540 COMvORE;

'" 890 1 1:5 542 CLOSECOREFILE;

691 1 134 544 END

892 1 1:3 544 ELSE

693 1 134 546 DOHOT;

894 1 132 548 END

895 1 132 548

696 1 1:1 548 URITELN(chr(I3),'Deto sets are packed and sorted1#chr(13)tchr(13)9

697 1 1:1 621 '....so long for now');

998 1 131 660

899 1 1:1 660 PROPERMAINDISK;

900 1 I1 662

901 11 1 662 ORACNCHOUT;

902 1 1:1 664

* 903 1:1 664 SETCHAIN('GREETING')•

904 1 1:1 670

- ~~ 905 1 130 679 END.

-- !

9..'

See previous page for program description.

* . .

--305-

- ..-.-
:/..

1" ,, .-

I'J

d

I- , 

4L

.1Aii

; 

. ~ ~I ,:. ::'
~ ~ - - 57. .- .~ u~ r~- ~.4 ' A R~L~~w ~ -

MICLAEU

Twffteporm nti ytmae rsn nteBO ik hyak7

the nls ostu h PISse is.Termiigporm nti seto1r o culypr fte P eosrto akg.Te r use topeaedt esfruewt h P ytm

-37
1:1 I;SS18L 1 PRINTER:*)

2 1 1:1 1 ($SYSTEM.STARTUP TELLS THE ANALYST TO PLACE THE REAL APH SYSTEM DISK IN DRIVE * 1S)

3 1 13D 1 (*RONALD Go SHAPIRO V 2.0 10/25/82) 4 1 I:D 1

5 1 lid 1 PROGRANSTARTUP;

6 28 I:9 3

7 28 2:0 1 PROCEDURE SETCHAIN(TYTLE:STRINO);

8 29 3:1 1 PROCEDURE SETCVAL(VAL:STRING);

9 28 4:D 1 PROCEDURE GETCVAL(VAR VAL:STRING);

10 28 5:10 1 PROCEDURE SMAPON|

11 23 6: 1 PROCEDURE SUAPOFF;

12 28 6:1 1

13 1 1: 1 USES CHAINSTUFF;

14 1 1:D 3 VAR

15 1 IoD 3 X:CHAR;

16 1 1:0 0 3EGIN

17 1 1:1 0 PAGE(OUTPUT);

le 1 1:1 35 WRITELN('Pleast insert the hPH SYSTEM DISK in drive * 1")|

19 1 1:1 91 WRITELN(I Then press any Key to continue');

20 1 1:1 133 ($$1-*)

21 1 1:1 133 READ(X); 22 1 :1 141 (illii) ..

23 1 1:1 141 SETCHAIN('GREETING');

24 1 1l 155 EXIT(PROGRAN),

25 1 1:0 159 END.

06.

I

SYSTEMPOINTSARTUP is present on the Boot disk. It simply tells the analyst I

when it is time to set up the APM System disk and press a key to continue. "

When the disk is set up, it transfers control to the GREETING program.

,["-"

. '

-308- -
' .. oN

1 1:9 1 ("L PRINTER:$)

2 1 1t3 I (SGREETSHORT TELLS THE ANALYST TO PLACE THE REAL AMH SYSTEM DISK IN DRIVE*1*)

3 1 IDo I ($RONALD G. SHAPIRO V 2.0 10/19/920)

4 1 IDo I

5 1:1 3 PROGRAM GREETING;

10 : D I PROCEDURE SWAON;

11 29 &:D 1 PROCEDURE SWAFOFF;

I13 1 11D 1 USES CHAINSTUFF;

14 1 1:0 3 VAR

15 1 Ito 3 X:CHAR;

:j 16 1 1:0 0ODEGIN

.17 3 1:1 0 PAGE(OUTPUT); p

is 1 1:1 15 URITELN('Please insert the APH SYSTEM DISK in drive * 11);

it 1 1: 1 Of RITELN(' Then press any key to continue');

20 1 1:1 133 (W8-0)

21 1 1:1 133 READ(X)I

22 1 1:1 141 (*$1+$)

£23 1 1:1 141 SETCHAIN('GREETING');

24 1 1:1 155 EXIT(PROGRAH);

25 1 1:0 159 END.

L6

) GREETSH-ORT-If the analyst fails to set up the system disk, then the

GREETSI-ORT program is executed. It, once again, asks the analyst to set

up the system disk and press a key. The only ways to exit from this program

are to set up the system disk, press Control Reset or turn the computer off.

-309-
41 1 1ts I (MPRINTER! S) 2 1 its I PROURAN ULOCKINSTRUCTIONS,

3 1 its 3 (sPrograe to take text instructions file and convert it to blocked inst file8)

4 1 Ito 3 (9 After editing file# X DLOCKINSTR. At the pause. place this disk n)

5 1 123 3 (f Drive 41 end place the AN UTIL disk in Drive *2. Press any key.S) .', .

6 1 111 3 ( Wilthin a few minutes, files will be blocked.0)

7 1 1:93 M~tote:

1 I 1:3 3 Ech froe of text sust be exectlY 20 lines long in the text file!),

9 1I1d 3 (IRonaeld 0. Shapiro V2.0 10/25/92S)

10 1 12D 3 11 1 1:9 3 TYPEm

12 1 It3 3 INSTRFILE-RECORD

13 1 11D 3 LINE:AURYI..203 OF STRINGCU0);

14 1 113 3 ENDS

Is 1 ID 3-

16 1 113 3 VAR

17 1 Ito 3 INSTFILEFILE OF INSTRFILEI

is I 113 1123 ORIGINSTTEXT; 'LA

19 1 1: 1424 I,J,K,L,NN:INTEOERt

20 1 1:3 1430 LINEST7RINGES0fl 21 1 1:9 1471 AICI4AR; : 22 1 1:3 1472

23 1 1:0 0 OEIN

24 1 121 0 uriteln(p'ress any key to begin'),

25 1 1:1 68 ead(a)"

26 1 131 79 REWRITE (INSTFILE, '&pout 1: ISTRUCT") I

27 111 106 SEEK(INSTFILE,1)|

26 1 111 114 PUTaINSTFILE)| ,

29 1 111 121 CLOSE(INSTFILEPLOCK)"

30 1 1:1 129 RESET(INSTFILE,"apautl;INSTRUCT')"

31 1 1:1 156 RESET(ORIGINSTo'apmpg4INSTR.TEXT").

32 1 111 16

33 1 111 196 :-t; I

34 1 1:1 190 REPEAT

35 1 1:2 1"0 JJ41;

36 1 1:2 196 FOR I:-ITO 2000

371 1:3 215 BEGIN

36 3 1:3 215 -MR-0)

39 1 1:3 215 (8$1-8)

40 1 1:4 215 READLN(ORIGINSTLINE)"

41 1 1:4 231 NRITELN(LINE)"

42 1 1:4 247 (8$18)

43 1 1:4 247 (81R48)

44 1 1:4 247 INSTrILEA.LINIE1 :sLINE"

45 1 123 263 END I.; 46 1 132 273 SEEK(INSTFILE,J). 47 1 1:2 263 PUT(INSTFIL);.

48 1 1:1 290 UNTIL EOF(ORIGINST);

49 1 130 300 END.

BLOCKINSTR-Blocks the instruction data set for use with the APM package.

By using a blocked data set, proressing is speeded.

-310- "

o ,% -_
2 1 11D 1 (OProqree to tae text help file and convert it to blocked help file*)

3 1 113 I (a After editing filet X ULOCKNELP. At the pause, piece this dis 1.5)7

4 1 113 1 (8 Drive 01 end piece the ANH UTIL disk in Drive 02. Press eny key.*) IT 1 136 1 (S the filaenes are: *431elpl.tnct, 4Melp2.ext, 64UHepi~axt opt*) 6 1 1:9 1 (S you my use the IRIEFHELP tilts instead*)

7 1 Ito I (S Within a few minutes. files will be blocfed.S)

9 1 Its I Eachtfro of text mat be exactly 10 lines long in the text fileMS

10 1 Ito I (IRDneld 0. Shapiro V2,0 10/25/628)

11 111 1 1PROGRAM SLOCKHELP I

12 1 1to 3

113 1 ItD 3TYPE

14 1 13e 3 IELPAILECOAD

15 1 1to 3 LINEARRAYCI..103 OF STRINGESOII

13 1 19 3E

19 1 Io 3

20 1 113 713 ORIUHELPTEXU

21 1 110 1014 IPJKPLPNPN:INTESERI

22 1 123 1020 LINUh5TRINSCS031

23 1 110 1061 FILENARE:I STRIMUC90OI

24 1 113 1102 ACHARS

26 1 I30 0 MASN

127 1 131 0 URITEMN'Pue-set up disks--then ayE. (return)'fl

29 131 " J:00

*30 1 111 "9 RWRIT1E(NELPFILEt'#SIHELP')1

31 1 131 113 CLOUEINELPFILE,PIME); 132 1 All 126 A FUR I71INELPVILEt'#5SHELP')l

33 1 1:1 145 IXE(IELPVILE91))

34 1 111 153 PUT(IELPFILE);

35 1 111 160 CLOMN(ELPVILELOCEI 36 1 131 166 MESET (NELPF ILE,'65: HELP )I

37 1 i:1 107 EPEAT

36 1 1:2 167 URIV('nput Filename (esc: if done): 1);

139 1 112 22# readle(fileam)l

40 1 1:2 249 IF (ORD(FILEMAEI 4u7) THEN

BLOCK ItELP-Blocks the HELP (and BRIEFIIELP) data set for use with the

APM package. By using a blocked data set, processing is speeded.

-311-

%__ _ ._ _ ._ _ . _ . _ . _ _ 
41 1 1:3 259 EXITIPROGRAN;)

42 1 132 263 KSETI (ORlONELPvfileW) |

43 1 132 276

44 1 132 276 REPEAT

45 1 1:3 276 J:ftjl;

46 1 1 3 234 FOR afi3 TO 10 DO

47 1 1M4 301 KOIN

48 1 1 14 301 CS$R-8)

49 1 134 301 (*$1-*)

50 1 125 301 READLN(ORIGNELPLINE)l

51 1 1:5 317 N'toI

52 1 125 321 FOR K: O DONTO I DO

53 1 1:6 330 BEGIN

54 1 1:7 338 Ma3LINECK31

55 1 137 348 IF (ORD(A)<29)OR(ORD(A)>127) THEN

56 1 119 361 KGIN

57 1 1:9 361 DELETE(LINEK, 1)

56 1 1:6 371 END;

59 1 1:6 371 END; 60 1 115 381 WRITELN(LINE)1 " " 61 1 1:5 397 (614s8)

62 1 1:5 397 ($R8)

63 1 135 397 IF J)O THEN HELPflLEALINE(I]taLIN,.

64 1 134 420 ED I -. 65 1 1:3 430 IF J>O THEN

66 1 1:4 437 SEEK(HELPFILE J);

67 1 1:3 447 IF JO THNEN

60 1 134 454 PUT(HELPFILE)1 69 1 112 461 UNTIL EOF(ORIGMF.LP) ; , 70 I 132 471 close(orighelp);

71 1 1:1 460 until (ord(filenew123)27)

72 1 1:0 490 END.

I

See previous page for program description.

-312-

4- ..-
I 1 139 1 06IL PRINTER:$)

2 1 1:D I (SRUMNING TNE FOLLOWING PROGRM MODIFIES THE *I3TEN.APPt.E FILE FOR USE MIVIIEX8)

3 1 1:0 1 PROGRM VIDPATCI

4 1 1:0 3 VAR DSf PACKED ARRATCO.3140.5111 OF O..2559

5 1 1:0 3195 FIFILEt

6 1 133 3235 II78R 1 65:0 0DEI

S12 1 131 74 VUFC33.3I60I

13 A 1:1 100 35FC3,3"02u43

*14 1 111 124 WUC3,3943c60;

15 1 1:1 149 3UFC3,4551:=173;

16 1 :1 17 DF345633u01

17 1 1:1 1"1 DUF3,4573:vI92; .o

13 1 1:1 224 DUFC3,45S1:=16;

19 1 1:1 249 NUF3,4592:N.2Y;

20 1 1:1 272 XUFC3.46O3:u32;

21 1 1:1 296 3t5FE3,612*24;

*22 1 1:1 320 DUFC3,4622:=218;

23 1 1:1 346 DU!3,4633:=234; I24 3 121 372 9UF[4v2072:n31

25 1 1:1 396 RCSETVFt'04:SYSTEW.APPLEf)l

26 1 1:1 424 I~w9LOCKWRITEFw9uF,32); ,.27 1 1:1 446 CLOSE(F)

28 1 1:0 455 END.

VIPTH(rte b IE)udts h YTAAPE rga o s

Cwit VI th TC ite byd Tis pgatest roeSwihSTEM.SnAPPLEprra fous

file.