• Aucun résultat trouvé

TABLE OF

N/A
N/A
Protected

Academic year: 2022

Partager "TABLE OF "

Copied!
133
0
0

Texte intégral

(1)

P ROC RAMM I NG SYSTEMS ANALYSIS GUIDE

70917090 32K FORTRAN

Preliminary Copy

91 96 1 by International Business Machine. Corporation Printed in

U.

S. A, Form

R23- 9673

(2)

TABLE OF

CONTENTS

FORTRAN

MONITOR 1

Introduction 2

Start Card and 1-CS 7

Listing of Fortran Start

Card

8

Listing of

1

CS ?

Card to Tape Simulator 10

D u m p 13

Sign On 14

F ~ P 16

Scan

17

BSS

Control 2 1

Machine Error 23

Source Error 24

Tape Mover 25

FORTRAN

COMPILER

29

lnt roduc tion Section I Section I' Section I"

Section 11 Section I11

rntrpductim

Pi?&.,

I V :and V Section IV

Section V Section V ' Section

VI

Fortran Library 97

1nput /Output Library 100 General Diagnostics 1.0 6 Tables Generated By Fortran 1 1 1

ASSIGNED CONSTANT 1 1 1 CALLFN (CALLNM)

1 1 1

CLOSUB 112

C.

I. T (Compiled InetrtiEWe@lX

COMMON 113

DIM 1 1 4

DOFILE

(C)

115

DOTAG

(B)

115

EIFNO

115

END us

EQUIT

116

FIXCON 117

(3)

FLOCON F M T E F N

FOR M A T FORSUB

FOR TAG

FORVAL and FORVAR FRET

XOLARG NOMEXC

PREDESSOR

SI

z

SUBDEF

SUCCESSOR TAU

TDO

TIEFNO TIFGO

TIFGO

FILE

TRAD

TSTOPS

APPENDICES

(I)

A Fortran Tape Status

By

Section

B

Edit Record Chart

(4)

FORTRAN

MONITOR ~ . 0 0 . 0 0

(5)

INTRODUCTION 1.

Of,

08

\.

The

FORTRAN

System tape i s written as four files. (See F i g u r e 1.)

The

f i r s t file constitutes the m a j o r portion of the monitor. Contained a e indi- vidual r e c o r d s in this f i r s t file in o r d e r a s they appear on t a p e a r e 1-CS, C a r d to Tape Simulator, Dump, Sign On, F A P I and 11, Scan,

BSS Control,

Machine E r r o r r e c o r d , and the Source E r r o r record. (See Figure 2.).

The second file i s the

FORTRAN

Compiler plus t h e Tape M o v e r record and an additional

BSS

Control. This second

BSS

Control is used to s a v e t i m e i f execution i e deaired, otherwise the System tape would have to be backspaced t o the f i r s t file to read BSS Control. All the library eubroutiner that

FORTRAN

and

F A P

r e q u i r e a r e contained i n the third file.

The

FOR-

T R A N

diagnostic routines and e r r o r m e s s a g e s are contained in the fourth and l a a t file on the System tape.

The

FORTRAN

Monitor System may be ueed in both the monitor

m o d e

and single compile mode. In the single compile mode. only FORTRAN compila- tion can be done. It also might be pointed out that in the single compile m a d e the only r e c o r d used i n the monitor file w i l l b e the Card to. Tape Simulator, from this control

paaeee directly

to FORTRAN in the rrcond file.

Since

the standard method og operation i s in t h e monitor mode, the deecrip- tfon of the ay s t e m w i l l be from this standpoint, and cnly under specfa1 con- ditions will the difference6 be pointed out.

C

Operating i n the monitor mode, a l a r g e number of jobs may be .tacked otr

the input tape. The limiting factor to the number off jabs that may be stacked i 6 the capacity of t h e tape reel.

A

job m a y be defined as a basic unit that will be p r o c e s s e d by the b o n i t o r at any one time. It will consist of a t l e a s t one, but can contain many p r a g r a m e ,

The

job can be in one of two s t a t e s , e i t h e r Execute o r Non-Execute. A s an Execute job, a l l p r o g r a m s in the job must be related to one another, these will be executed immediately a f t e r any a s s e m b l y o r compilation that is re-

quired. As a Non-Execute job, the p r o g r a m 8 need not be related, since only a s s e m b l e o r compilation can be done. F o r a m o r e camprehenaive exo planation of job processing, r e f e r e n c e should be made to the 709/209'0 FOR-

TRAN

Monitor Reference Manual, F o r m C28- 6065.

The

FORTRAN

Start Card i s used to initialize the System, TMa w i l l rewind the System tape, load the f i r s t r e c o r d , which i s 1-CS. 1-CS is a g e n e r a l pur- pose tape loading routine which r e m a i n s in lower c o r e s t o r a g e at all times

during an assembly o r compilation. It i s used to load a l l monitor and FOR-

TRAN

r e c o r d s , and a f t e r loading w i l l t r a n s f e r control to t h e i r respective

entry points,

<:

. Once 1-CS i s loaded, i t will in turn load the Card to Tape S i m u l a t o r , The Card t o Tape Simulator t e s t the c a r d reader. foz p r e s e n c e of c a d s , If the

(6)

*

3

hopper i s empty, the input i s assumed to be f r o m tape. This tape will be A2 if in the monitor mode, if not in monitor mode, i. e . , single compile, the input tape i e

B2.

If c a r d s a r e found in the r e a d e r , a c a r d t o tape sim- plation will follow until all c a r d s have been read and the End of F i l e i s m e t , At this point'the next r e c o r d

(DUMP)

i s skipped, control is again given to

1-CS to read in the Sign On record. The Sign On r e c o r d will r e a d and p r i n t the f i r s t r e c o r d onthe input tape, this should be the I. D. card. It i s in the Sign On r e c o r d that the customer may i n s e r t h i s own coding to p r o c e s s accounting information that might be contained in the I. D. card. If a n a c - counting clock i s available in the machine, this a l s o could be r e a d a t this time,

At the completion of Sign On processing, the next two r e c o r d s

(FAP)

a r e skipped, control again p a s s e s to 1- CS to read the Monitor Scan record.

Monitor Scan will read all remaining control c a r d s , and s e t up the ' p r o p e r indicators for processing by the appropriate routine. Control now p a s s e s v f a 1- CS to F A P if a F A P control c a r d h a s been encountered, o r to

BSS

Control i f the remaining c a r d s on the input tape a r e binary and the job is to be executed, i f neither of these conditions exist the monitor a s s u m e s a FORTRAN compilatiop, therefore, control p a s s e s t o FORTRAN in the second file,

After the completion of a F A P ,

FORTRAN

o r BSS relocation, control p a s s e s back to the Monitor Scan record. This will continue until a l l p r o - p r o g r a m s in the job have been processed. At this time i f execution is d e s i r -

ed, control once again p a s s e s to BSS control to load the relocated p r o g r a m and begin i t s processing. If this job w e r e not to be executed, control will p a s s back to the Sign On r e c o r d , instead of BSS Control, to begin the next job,

This whole p r o c e s s continues until no m o r e jobs a r e left to p r o c e s s , at this point the c a r d r e a d e r will be selected and the p r o g r a m hangs up. The operator now h a s the option of removing the output tape, loading a new in- put tape, and re-initializing the s y s t e m with the S t a r t Card, o r depressing the c a r d r e a d e r s t a r t key for a final stop,

(7)
(8)
(9)

1-CS

A N D START CARD

1. 02. 00 The Start Card i s a one c a r d self loading binary card. It i s used to initia- lize the

FORTRAN

monitor system, for batch compiling and/or execution.

To s e t the

FORTRAN

monitor in motion, the Start Card is placed in the c a r d r e a d e r , the load c a r d s button i s depreeaed, a bootstrap loader will then r e a d in the remainder of the

START CARD.

Control i s passed to the location the f i r s t instruction beyond the bootstrap. The System tape is f i r s t rewound and then the f i r e t r e c o r d on the tape i s read in. The firat record i a the

FOR- T R A N

loader called 1-CS, the tape read operation i s checked f o r a redundancy e r r o r , if one occurred the tape i s backspaced and another attempt is made . to read 1-CS. If t h r e e unsuccessful attempts are m a d e the p r o g r a m will HALT.

If the Start button i e depressed three m o r e attempts will be made and s o on.

When the read operation i s succeseful a flag bit i s s e t in the sign position of location 4z8 to indicate that the jobs that follow w i l l be processed in the moni- t o r mode. Control now passes to location 508 in 1-CS.

1-CS will be used to lpad all monitr);. records and

F O R T R A N

Executive r e c o r d e , If

redundancy

checks occur while reading any r e c o r d the p r o g r a m will HALT, only one attempt'will be m a d e per redundancy check.

The f i r s t two words of any System r e c o r d contain the information n e c e s s a r y t o indicate where loading begins, how many words a r e t o be r e a d and where to t r a n s f e r control when loading i s complete. Also contained in'word two is the FORTRAN o r monitor r e c o r d number timee ten that i e being loaded, t h i s will be"used i f a cail i a made t o the Diagnostictrecord to a s c e r t a i n t b type of

diagnostic m e s aage that should print.

The make up of the firet two words- of any

F O R T R A N

o r Monitor r e c o r d a r e :

I

WORD 1 3111

WORD

COUNT LOAD ADDRESS

I

WORD 2 100 1

1 RECORD

NUMBER

xioV//A

TRANSFER

ADDRESS[

Also contained with 1-CS i s the diagnostic r e c o r d caller. This routine will be used by

FORTRAN

SectionI1 through Section VI to call the Diagnostic file

(file 4) f o r any e r r o r , source o r na chine. P r i o r to reading in the Main diagnor- t i c r e c o r d the area that i t w i l l occupy ia saved a s a single r e c o r d on tape A3.

(10)

.r

LISTING

OF

KIRTRAN START :3 tiF,:3

The following is a listing of the Start Card and showa the instruction 6 0 - quence in the card and also the location in storage:

SEQUENCE . STORAGE ADDRESS, TAG,

ON

CARD LOCATIONS 0PERA.TION DECREMENT

IOR T TCOA TTR LTM AXT

REWA RTBA

R

CHA

TCOA TRCA

CAL STP

TRA

TIX HTR XOCP TCH

3, f 1- 1 160 151 156 153

42 (Monitor Flag) 1

146, 1, 1 a45

0 , , 3 0

(11)

LISTING

OF

1-CS

The following i s a lirting of 1-CS and ehowr the inetruction sequence on tape and also the locations in storage:

SEQUENCE STORAGE ADDRESS,

TAG,

ON

TAPE LOCATIONS

OPERATION .

DECREMENT

IOR

T 23,, 77777

TCOA 1

TRA

50

RTBA 1

RCHA 37

RTBA 1

R C H A

37

W T B A

3

RCHA 41

RTBA 1

RCHA

41

TCOA

3 3

TXI

157

BSRA

3

HTR 36

IOR

P N

0, 2, 77777

TCH 37

IORT 156, 0 4704

PZE

(Monitor Flag Cell) PZE (Chain Flag Cell)

PZE

(Chain Flag Cell)

PZE

(Job Linee Output Counter)

BSRA

1

HPR

7 7 7 7 7 , 7

RTBA 1

R

CHA 54

TCOA 52

TRCA 46

IOSP 55, 0, 2

IOR

T

TXI **, , * * - ,

1 First two words of any monitor or

FORTRAN

record.

(12)

CARD TO

TAPE

SIMULATOR 1.03.00 After the c a r d to tape simulator has been read into storage, by 1-CS, con- t r o l i s paaeed to it. This will be the only time that this program ia used.

The monitor flag in 1-CS i s tested to determine, i f this is a monitor o r single compile operatien. The c a r d r e a d e r is then selected, i f an End-of- File is sensed on the f i r s t read cycle the program a s s u m e s the input i s f r o m tape. If the input i s from tape, control passes to record 3, Sign On, to begin processing the f i r s t job. I f we a r e not in the Monitor mode, c a r d to tape simulator will p a s s control directly to FORTRAN r e c o r d 10.

If

the c a r d r e a d e r End-of-File was not sensed, a simulated c a r d to tape opera- tion will follow. C a r d s with a 7-9 punch i n column 1, indicate that they are column binary and therefore must be converted to Row binary format before they may be written on tape. Carde with an 7 - 8 punch in

column

1 w i l l not be written on tape but cause an EOF to be generated on tape. All other c a r d s a r e considered to be Hollerith and a r e checked for illegal punching p r i o r t o being transcribed onto tape. Illegal Hollerith punching will cause the machine to stop with a HPR 7777, in the storage register. The r u l e s f o r correcting and reloading the c a r d r e a d e r a r e analogous t o a READ

CHECK

mtop on the off line c a r d reader.

The c a r d e a r e read i n double buffered, to allow the c a r d r e a d e r t o operate a t full epeed.

When the final EOF is sensed on the c a r d r e a d e r , a n E O F will be written

an

tape. The input tape is then rewound, . r e c o r d 2 is skipped and control is p a r s e d to, Sign On, r e c o r d 3.

i f the monitor flag i s off, a t the termination of the c a r d t o tape simulation, the remainder of F i l e one w i l l be skipped and control pasred directly to,

FORTRAN

( r e c o r d 10).

(13)

CARD T O A -5tMULATOR

M O n / / r O U RfiCORO '/

J t O A R f H , a6

r

f N f r f A 4 J Z C C UCCK H I 4 C

I ~ O A A ~ P CWCARO C O ~

( I U C C M S / U b A L P U K U ,

CO C O N V t A C

I

c o ~ u A / u ro ROW 8/4'4U/

U C G / N w u / r / w G our

UClJ 8 U C F r A

I

)

(14)

DUMP RECORD WITH

DUMP C A R D

1,04.00 The Dump i s used when trouble i s experienced during compilation o r ex- ecution of a job. This will give the P r o g r a m m e r o r Customer Engineer a printed r e c o r d of the contents of c o r e storage and the O P panel indica- t o r e , which can be used to a s c e r t a i n the possible c a u s e of trouble.

' Actually the Dump r e c o r d can be called by t h r e e different methodq. TWO of theee a r e through the u s e of

FORTRAN

statements, these a r e CALL DUMP ( 7 ) and CALL PDUMP ( 7 ) . F o r the description and u s e of these see the 709/7090 FORTRAN MONITOR, Reference Manual ( F o r m Number . C28-6065). The third method of calling the Dump r e c o r d is by using the Dump c a r d , which ehould be available a t a l l installations using t h e

FORTRAN System.

The Dump Card will ohly destroy the f i r e t t h r e e locations in storage. T h i r i s accomplished by initiating a Write tape to dump the f i r s t 3500g locations of storage, then delaying the information on the c a r d f r o m coming in until the locations n e c e s s a r y f o r storing thie information have been dumped on t o tape. This delay i s accomplished by reading the f i r s t fifteen worde of the card into locations 0, 1 and 2 and causing the p r o g r a m t o t r a n s f e r to itself a t location 1. After thie delay the System tape is rewound, the f i r s t and second r e c o r d s skipped and then the Dump r e c o r d is r e a d in, a t which t i m e control i e p a s s e d to it.

The

Dump p r o g r a m will cause the entire contents of m e m o r y t o be written onto tape A3, following any FORTRAN output f r o m this job o r f r o m previous jobs. The s t o r a g e entry switches a r e interrogated t o determine whether o r not mnemonics a r e to be included and t o s e e what c o u r s e of action t o take a f t e r completing the dump. These options are fully explained in t h e 709/

7090 FORTRAN MONITOR, Reference Manual ( F o r m Number ~ 2 8 - 6 0 6 5 ) .

(15)

SIGN

ON

(RECORD 3)

I-

Lk T h e Sign On r e c o r d i s called only a t the beginning o r end of job. The n u m b e r of l i n e s of output from the l a s t job i s picked up f r o m the line

count storage cell in 1-CS. This number if g r e a t e r than z e r o , i s convert- ed to decimal and written on and off line. If Sense Switch 6 is up, an E n d of F i l e will be written on tape B4, the .tacked column binary punch tape. At this t i m e a t e s t i s made to determine i f the input tape i s po-

sitioned to read a new job (at the beginning of file). If not, the tape is spaced forward until an End of F i l e i s encountered. The f i r s t r e c o r d o f the file i s then r e a d and i t i s then determined i f the first c h a r a c t e r i s an a s t e r i s k . If no a s t e r i s k i s found, a comment i s printed on line indicating t h i s , then the System tape ( A l ) i s spaced t o the Machine E r r o r r e c o r d and control p a s s e s to 1-CS. If the a s t e r i s k is found the r e c o r d i s f u r t h e r

scanned t o determine i f it i e a n

E n d

Tape card. If i t i e , the End Tape card i e written on and off line, and a load card button eequence is simulated to end monitor operation. If the f i r s t c a r d i s not an End Tape c a r d , i t is a s - . eumed to be a t r u e I.

D.

card. At this point, space i s provided f o r the indi- vidual inetallation to i n s e r t coding for accounting purposes; t h e r e f o r e , at

this

point, difference8

m a y

exirt from

one

inrtallation to another. As the standard program exietr, the I. D. card w i l l m e r e l y be written on and off line. After t r e a t i n g the I. D. r e c o r d , the System tape i s spaced to the Scan r e c o r d (r&:o;*d 6 ) , control is then pa'ssed to 1-CS.

(16)
(17)

F A P (Records 4 and 5) 0.06.00

FAP

(FORTRAN ASSEMBLY PROGRAM) w a s written, by the Western Data Proceasing Center a t Los Angeles, to satisfy the need to produce machine language sub-programs for use with FORTRAN, F A P is a l s o a fast, v e r s a t i l e general purpose a s s e m b l e r f o r non- FORTRAN m a i n p r o g r a m s which h a s the additional advantage of operating within a moni- t o r system. Operating i n the monitor mode,. i t is possible t o a s s e m b l e and run a F A P assembled main p r o g r a m with the s a m e load.

When assembling

FORTRAN

sub-programs,

FAP

provides a l l n e c e s s a r y information for d i r e c t communication with FORTRAN p r o g r a m s , including the p r o g r a m c a r d and appropriate t r a n s f e r vector. Also, F A P output occupies the binary c a r d f o r m a t required by the

BSS

loader.

The output may a l s o be punched in the standard abeolute binary format, to be run independently of any operating system.

Operating under FORTRAN Monitor control i t is p o s i i b l e to input the symbolic deck on-line o r off-line, however, the listing will only b e written off -line.

F A P main p r o g r a m s may call upon

FORTRAN

subprograms, FORTRAN.

l i b r a r y functions o r other FAP aubprograme.

The

Monitor s y s t e m and the

BSS

loader provide the n e c e s s a r y communication, b a r e d upon infor- mation given by the p r o g r a m m e r in the calling sequencer. Because the Monitor will accept p r o g r a m s in either binary o r symbolic f o r m , all p r o g r a m s need not be assembled o r compiled a t the s a m e time.

They may be assembled in stages, thus providing a very useful method of debugging the main program. One. section a t a time.

Detection of assembly e r r o r s does not stop the a s s e m b l y , but doee sup- p r e s s c a r d punching and execution. Diagnostic information is given i n

the assembly listing. Control will p a s s t o the Machine E r r o r r e c o r d o r Source E r r o r r e c o r d , depending upon the e r r o r detected.

(18)

Mr)

[ITOR SCAN (RECORD 6) 1. 07, 00 R e c o r d 6 i s the p r i m a r y monitor r e c o r d in that i t i n t e r p r e t s t h e control c a r d s which specify different s y s t e m p r o g r a m s L t o be called. It a l s o s c a n 8 FORTRAN p r o g r a m s and p r e p a r e s a single- compile input t a p e for the

c o m p i l e r . Control i s p a s s e d t o Monitor Scan i n the following c i r c u m s t a n c e s : a ) F r o m r e c o r d 3 (Sign On) a f t e r p r o c e s s i n g a n I. D. c a r d a t the beginning

of a job

b) F r o m r e c o r d 5 ( F A P ) a f t e r completing a n a s s e m b l y not f o r execution.

c) F r o m r e c o r d 7 o r 4 3 (BSS) a f t e r relocating a s e r i e s o l b i n a r y p r o g r a m s when t h e r e a r e m o r e symbolic p r o g r a m s remaining i n t h e job.

d) F r o m r e c o r d 8 (machine e r r o r ) o r r e c o r d 9 ( s o u r c e e r r o r ) o r record 2 ' (dump) when i t h a s been d e t e r m i n e d that the job should be continued after a n e r r o r

e ) F r o m the r e s t a r t c a r d ''CONTINUE"

Operation i s a s follows: All input i s f r o m A2. R e c o r d s a r e r e a d double buffered and scanned f i r s t for an a s t e r i s k i n column 1. If t h i s i s found, the m n e m o n i c s on the c a r d a r e scanned and c o m p a r e d with a d i c t i o n a r y of c o n t r o l c a r d m n e m o n i c s . If no a s t e r i s k i s found, t h e c a r d i s a s u u m e d to b e p a r t of a

FORTRAN

p r o g r a m and a routine called SP is used. If the c a r d i s column b i n a r y , and an X E Q control c a r d h a s been e n c o u n t e r e d e a r l i e r in the job, control i s p a s s e d t o ~ S S control ( r e c o r d 7): If the

XEQ

flag i s off, column binary c a r d s a r e ignored. A s t e r i s k c a r d s not i n t h e

dictionary a r e printed on and off line a s r e m a r k s and then ignored. FORTRAN s o u r c e p r o g r a m c a r d s a r e scanned and then t r a n s c r i b e d onto t a p e B2

(FORTRAN input). A FORTRAN s o u r c e c a r d with a

CALL

CHAIN ( N , Bn) will be changed t o CALL CHAIN (N, n). Upon encountering a n E N D c a r d ,

a f a b r i c a t e d END c a r d i s simulated onto tape B2 containing output options as indicated by control c a r d s , previously encountered, P r o g r a m m e r ' s E N D c a r d options will be p r e s e r v e d i l not in conflict with c o n t r o l c a r d s , which

have precedence. A s t e r i s k (control c a r d s ) found i n the dictionary, a r e t r e a t e d as follows:

a)

X E Q

.- A flag in 1-CS i s s e t indicating execution i s d e s i r e d . A word of z e r o s i s w r i t t e n on the beginning of tape B 1 t o indi- c a t e that t h e r e i s no snapshot ( s e e r e c o r d 7).

b) CHAIN ( )

-

If the execution flag i s off, t h i s i s t r e a t e d a s a r e m a r k c a r d . If on, t h e p a r a m e t e r s a r e examined a n d a unique control w o r d i s w r i t t e n on B 1 (in f r o n t of the z e r o w o r d ) and s t o r e d i n a c e l l (curchn) i n 1-CS. If t h i s i s t h e 1 s t l i n k , i t i s s t o r e d i n a different c e l l ( 1 s t chn). A chain flag i s s e t in 1-CS

(FLGBX).

(19)

c) F A P

d) DATA

-

An E N D card i s simulated onto B2 containing control c a r d output options and control i s passed to FAP P a s s 1 ( r e c o r d 4).

-

This should be encountered only i f t h e r e was no execu-.

tion flag (or i f execution h a s been deleted). Control is pas oed to Sign On unless the execution flag is on, i n which c a s e an e r r o r meesage (incorrect deck set up) i e printed and control i s passed to the source e r r o r r e c o r d ( r e c o r d 9).

e) CARDS

-

A flag is s e t for the

END

c a r d routine to set the appropriate ROW, E N D c a r d options

LIBE, ETC.

In summary, control i s then paseed a s followe:

Upon Recognizing:

a)

FORTRAN

END c a r d b) Column binary card c ) F A P control c a r d d) Deck e r r o r

e)

Machine

e r r o r

G o

To:

-

Record 10

(FORTRAN)

Record 7

:335

Control) Record 4 ( F A P )

Record 9

(Source

E r r o r ) Record 8 (Machine E r r o r ) Note: Monitor Scan h a s i t s own diagnostic m e s s a g e and print8 them on and

off line,

(20)

MO/Y/ TOR J C AN

RlCOALl 6

**S IAJr )rs/.eij

,

-#-* r/rnru Ad06

(21)

BSS

CONTROL RECORD

(RECORD

7 OR 43) 1. 08.00 R e c o r d s 7 and 43 a r e identical except f o r tape positioning, which of cou! s e , m a k e s the d e c r e m e n t of the second word on the Sy..ltem t a p e , the r e c o r d n u m b e r , different. T h i s r e c o r d i s duplicated in o r d e r to m a k e i t quickly a c c e s s i b l e either f r o m FORTRAN (second file) o r f r o m Monitor Scan when column binary c a r d s a r e encount.ered o r f r o m a just comple,tad

T A P

a s s e m b l y . BSS a c c e p t s c a r d image input f r o m A2 (column binary c a r d s ) , B3

(FAP

o r

F O R T R A N

binary tape), o r A1 ( l i b r a r y subroutines) using a g e n e r a l i z e d

double buffered r e a d routine.

he

BSS p r o g r a m is l o c a t e d d n the top of m e m - o r y , occupying the standard C O I - ~ m o n region.

BSS w i l l locate binary c a r d i m a g e s into locations 144f3 to 730008 ?30008 to 744568 i s used for a table of BCD p r o g r a m n a m e s . a m i s s i n g subroutine table, and a T r a n s f e r Vector table. T h e s e t a b l e s together with s e v e r a l loading counts a r e r e f e r r e d to a s the Snapshot.

Upon e n t r y t o

BSS

the Snapshot, f r o m previous locations 1.n the s a m e job i~

r e a d f r o m tape

B1:

If this i,s the f i r s t t i m e

BSS

h a s been e n t e r e d far this

job, a zero word w i l l be read indicating that this i e the f i r e t entry This z e r o w o r d w a s written by Monitor s c a n if execution w a s called f o r

The a p p r o p r i a t e input tape i s selected by exaxnillation of t h e indicator r e g i s t e r which contains a control word left by the calling record.. If a n a s s e m b l y ( F A P ) o r compilation (FORTRAN) h a s just been completed. t h i s will be tape B3, o t h e r w i s e the input tape will bc A 2 in the c a s e of column b i n a r y c a r d s . The input: tape i s r e a d in b i n a r y , t r a n s f e r v e c t o r s a r e p e e l r d off and s t o r e d a t 1448. When a new s e t of t r a n s f e r v e c t o r s a r e m e t , the r e l o c a t e d block i s saved a s a single r e c o r d on tape B1. The f i r s t word of t h i s r e c o r d i s a control word specifying the size of the p r o g r a m and whether o r not i t h a s a t r a n s f e r vector. If t r a n s f e r v e c t o r s do exist a second control word i s written giving the count. Jf B 3 w a s the f i r s t input tape, when an End of F i l e i s m e t , the input i s switched to tape A 2 . If this input i s b i n a r y , the p r o c e s s of read- ing i n , saving the t r a n s f e r v e c t o r and relocating the'binary deck s t a r t s anew.

However, if

B C D

information i s met, i t i s scanned and c o m p a r e d with a dictionary of control w o r d s An X E Q c a r d j s ignored. a s i t i s obviously i n the wrong p l a c e . Any control c a r d o t h e r than CHAIN o r QATA c a u s e control t o be p a s s e d back t o monitor Scan.

If a D A T A o r CHAIN c a r d i s recognized, the table of T r a n s f e r V e c t o r s i s

s e a r c h e d against t h e table of BCD n a m e s to f o r m a table of m i s s i n g subroutines (MISUB). The System tape j s then spaced to file 3 ( l i b r a r y ) . the l i b r a r y is scanned f o r the m i s s i n g subroutines, when found they a r e r e a d in and relocated i n m e m o r y . This s e a r c h continues until the table of m i s s i n g subroutines i s

z e r o o r two p a s s e s have been made o v e r the l i b r a r y . If subroutines are s t i l l m i s s i n g they a r e l i s t e d on and off line with an a p p r o p r i a t e e r r o r message, the execution bit i s deleted and control p a s s e s back to Monitor Scan t o .finish any compilation that may b e left in t h i s j ob.

(22)

Encountering the DATA control card indicates that a l l p r o g r a m s f o r this job have been processed, relocated and written on tape B1w Tape

B1

i s now read, the T r a n s f e r Vector table i s changed to T T R ' s with their pro- per relocated a d d r e s s e s , and written on tape A4 in absolute binary form.

A t e s t i s now made to see if t h i s i s a CHAIN job, If not, a s m a l l execu- tion loader i s moved over 1-CS. The w o r d "Execution1' i s printed, and

control passes to the execution loader. The loader r e a d s the absolute program f rom Tape A 4 into memory. The last r e c o r d on tape A4 i s the t r a n s f e r word to the program.

If i t i s a

CHAIN

job, and the DATA card h a s not been encountered, tape B1 is backspaced to the c u r r e n t

CHAIN

I. D. word. The c u r r e n t link i e then stacked on tape B 1. BSS i s refreshed, and the p r o c e s s begins again reading tape A2.

When the DATA c a r d i s encountered for a

CHAIN

job, the chain links are edited from tape B 1 and a r e moved to the specified chain link tape. The execution loader i s placed over 1-CS and the f i r s t link i s read in as a single job, except that i t i e read from

B1, BZ or

B3 instead

of from

A4.

After initial loading of the f i r s t chain link, loading of subsequent links will be done by the CHN subroutine.

BSS

control c a r r i e s a l a r g e eet of

diagnostic m e s s a g e s t h a t print on and off line. After a diagnostic m e s s a g e i e printed, control will be given to the Machine E r r o r r e c o r d o r

Source

E r r o r r e c o r d which e v e r i s appropriate.

(23)

MACHINE

E R R O R RECORD (RECORD 8) 1. 09. 00 If during p r o c e s s i n g of m o n i t o r o r non-monitor jobs a supposed m a c h i n e e r r o r o c c u r s , a n attempt will be m a d e to identify the f a i l u r e . A f t e r t h i s f a i l u r e i s identified, an e r r o r m e s s a c e will b e w r i t t e n on a n d off line. At t h i s point t h e System tape ( A l ) i s positioned a t t h e Machine E r r o r r e c o r d . The routine will f i r s t find out in what routine t h e e r r o r was d e t e c t e d , (i. e,

,

F A P , MONITOR

SCAN, GENERAL

DIAGNOSTIC,

BSS

Control, o r

FORTRAN

Section I") then print options t o continue t h i s job, r e s t o r e m e m o r y o r t o r e t r y . Since the exit f r o m t h i s routine i s Spendent upon the routine that c a l l e d i t , a b r i e f d e s c r i p t i o n of each e n t r y will follow:

If Monitor Scan called the Machine E r r o r r e c o r d s e n s e light 3 will be on.

In t h i s c a s e the e r r o r m e s s a g e "JOB

DELETED BECAUSE

O F

MACHINE E R R O R ,

PUSH

START

T O BEGIN

NEXT

JOB" will b e printed. The S y s t e m t a p e will be backspaced to Sign On then the machine will halt. When t h e S t a r t switch i s d e p r e s s e d , control will t r a n s f e r t o 1-CS t o b e r e a d i n Sign On.

If F A P called the Machine E r r o r r e c o r d , s e n s e light 1 will b e on. T h e e r r o r s that F A P believes a r e machine e r r o r a r e pc-rsistent tape e r r o r s , overflow of v a r i o u s t a b l e s and table s e a r c h e r r o r s . In s o m e c a s e s t a b l e overflow e r r o r s m a y b e c a u s e d by i n c o r r e c t deck s e t u p o r faulty coding.

In any event i n s t r u c t i o n s will be print ed on l i n e ? indicating in m o s t c a s e s the type of e r r o r and the c o u r s e of action t o b e taken. Depending on t h e i n s t r u c t i o n s and the action taken by the o p e r a t o r , t h e p r o g r a m c a n b e

deleted o r continued, in e i t h e r event control will b e r e t u r n e d t o Monitor Scan.

When s e n s e light 4 i s found on, control w a s r e c e i v e d f r o m the G e n e r a l Dia- gnostic. Since FORTRAN m a y b e r u n intither the single compile o r m o n i t o r m o d e s , the options t o delete o r r e t r y will v a r y with the mode. In e i t h e r ' m o d e , t o r e t r y , control i s p a s s e d back t o FORTRAN r e c o r d 10. L i k e w i s e to r e s t o r e m e m o r y and h a l t i s the s a m e i n both modes. In t h e m o n i t o r m o d e i f deletion is c a l l e d f o r , the s o u r c e p r o g r a m is t r a n s c r i b e d f r o m

BZ

t o A3 then control p a s s e s back t o the Monitor S,can r e c o r d .

When BSS control c a l l s the Machine E r r o r r e c o r d s e n s e 1igh.t 2 will b e on.

T h e s e e r r o r s a r e p e r s i s t e n t t a p e checks that BSS control cannot g e t around.

The indication of t h e e r r o r i s printed on l i n e , the execution bit i s d e l e t e d and control is p a s s e d t o the Monitor Scan r e c o r d .

The l a s t c a s e will be with a l l s e n s e lights off, when the diagnostic within

Section I of FORTRAN c a l l s the Machine E r r o r r e c o r d . T h e p r i n t e d m e s s a g e s and the options a r e the s a m e f o r t h i s a s they w h e r e w h e n c o n t r o l was re-

c e i v e d f r o m the Main Diagnostic r e c o r d .

(24)

SOURCE E R R O R

RECORD

1.10.00 The Source E r r o r record i s called when a source e r r o r is detected. All routines that can call the Machine E r r o r record (see 1.09.00) can also call this record,

The only processing that i s done will be to delete the execution bit i n 1-CS if i t exists and write off line, the reason for no execution.

In the Monitor mode if any record other than Monitor Scan called thia record control i s passed to Monitor Scan. If

Monitor

Scan calla this record control i s passed to the Sign On record.

However, in the case of a source e r r o r in the single compile m o d e the c a r d reader i s selected and the program w i l l hang up.

(25)

TAPE MOVER (RECORD 42) 1, 11,OO

The Tape Mover r e c o r d i s entered a t the termination of FORTRAN. If the system i s in monitor mode, the information f r o m the single compile p r i n t tape ( B 2 ) will be t r a n s f e r r e d to the stacked print tape (A3). Since the third file (symbolic listing) i s optional, FORTRAN in Section VI will t u r n on Sense Light 2 to indicate to tape mover that the t h i r d file i s need- ed, The information on the binary output tape ( 8 3 ) w i l l be t r a n s f e r r e d t o the stacked binary tape if: (1) Sense Switch 6 is up and, (2) Sense Light 1 is ON (left on if column binary c a r d s w e r e not called for in Section 6).

When one o r both tapes have been processed the execution bit is checked, i f ON control passee to BSS Control (Record 43), i f OFF control p a s s e s to Monitor Scan (Record 6).

Upon initial entry to Tape Mover if the s y s t e m w e r e not i n monitor mode, the card r e a d e r would be selected and the p r o g r a m would hang up.

(26)

dn X I S

9sl3owor ,N ArU/MP 2rm

(27)

FORTRAN COMPILER 2.00.00

(28)

INTRODUCTION

The FORTRAN Executive routine c o m p r i s e s most of the second file of the System Tape. The exceptions a r e the two monitor r e c o r d s , Tape Mover and

BSS

Control.

FORTRAN i s made up of 32 r e c o r d s ( # l o through #41) which a r e called in one o r m o r e a t a time. FORTRAN i s broken down into six sections each one given a por- tion of t h e task of analyais of the source program. T h e r e a r e in addition to the s i x main sections, four subsections, these a r e I t , I",

V'

and pre-VI. T h e s e subsections a r e in reality only extensions of the main sections to which they a r e attached.

These sections a r e operated on sequentially, that i s t h e r e i s never a r e t u r n to a .

previous section once control p a s s e s to a succeeding section.

FORTRAN can be considered a s falling into two divisions, the f i r s t c o m p r i s e d by sectione I, I1 and 111, the second by sections IV,

V

and

VI.

This i s due to the fact that by the end of section 111, the entire object p r o g r a m i s essentially compiled.

It i s , in f a c t , compiled except that i t exists in the C. I. T. (Compiled Instruction Table) format, and that it h a s a s many symbolic index r e g i x t e r s as aFe required.

-

It i s the job of the remaining t h r e e eections to c o r r e c t these two situations. Sec- tions IV and V handle the task of inserting the absolute index r e g i s t e r s i n place of the symbolic index r e g i s t e r s . Since we a r e reducing a

large

number of eymbolic index r e g i s t e r s to the t h r e e absolute r e g i s t e r s , c e r t a i n index loading and saving instructions a r e necessary. This problem i s a l s o handled by Sections IV and V.

Section VI, replaces the instructions that a r e in the CIT format into the p r o p e r relocatable binary format.

As f o r the f i r s t t h r e e sections, i t may be considered that the f i r s t two of theae do the e n t i r e t a s k of source p r o g r a m analysis. This t a s k includes performing m o s t of the instruction (C. I. T. ) compilation. With r e f e r e n c e to s o m e of the in-

structions, however, sections I and I1 simply r e c o r d information, in tabular f o r m , to p a e s on to section 111, which will use these a s a key to i n s e r t the proper in- structions. Because the analysis of sections I and I1 a r e independent, the C, I,

T.

' a compiled a r e kept in separate files, which m u s t subsequently be merged. Section 111, therefore, h a s the task of performing this m e r g e a s well a s a second m e r g e of the C. I. T. 's that i t , itself h a s created. Both section 111 and the l a s t p a r t of section V, because of their position a t the end of n e c e s s a r y p r i m a r y analysis, p e r f o r m certain optimizing t a s k s consisting mostly of removing o r i n s e r t i n g c e r - tain instructions.

It i s well to note that the FORTRAN compiler makes extensive u s e of tables. These may be considered a s of two types: those which a r e made up directly f r o m the

source p r o g r a m statements, and those which r e s u l t f r o m f u r t h e r analysis. I t i s the f o r m e r c l a s s of tables which a r e included in this reference manual, A l i s t of some of these tables and their s i z e limitations will be discussed a s they a r e en- countered. The l a t t e r c l a s s do, in some c a s e s , impose f u r t h e r s i z e limitations.

M o s t tables are passed on f r o m one section t o another; some however, a r e c r e a t e d

0

purely f o r u s e within a section.

The

bourse p r o g r a m aiaternsnt, once scanned, a r e not r e f e r r e d to again. F o r a m o r e detailed description of some of t h e s e tables, see Section 2.04.00.

(29)

SECTION I 2.01.01 Section I has the p r i m a r y output of a file of instructions called the Compail file.

The f i r s t CIT'e that a r e written in COMPAIL a r e the Arithmetic Statement Func- tions. These a r e labeled in such a manner that the Merge in Section 111 will r e - cognize and s e p a r a t e these f r o m a l l other CIT1s, and w r i t e them as s e p a r a t e filee.

The a r i t h m e t i c inetructions, of c o u r s e , r e f e r to symbolic t a g s in the word four address. Also included in this file a r e a p a r t i a l translation of the I F and GO TO Statements, the subprogram definition statements, and input/output statements.

With r e s p e c t to the I F and GO TO Statements, Section I compiles the n e c e s s a r y teat instructions, but i t cannot compile the t r a n e f e r instructions. This is because Sec- tion I does not know whether any given I F and GO T O Statement is in the r a n g e of a

DO

and involves a t r a n s f e r out of the DO. It is not until this is known that it can go d i r e c t l y t o the statement indicated i n the source p r o g r a m , o r go to a s e t of in-

structions providing n e c e s s a r y indexing, then the t r a n s f e r t o the specified source p r o g r a m statement. The analysis pertaining to these indexing instructions is left to Section I1 with the physical instructions being compiled by the second p a r t of Section 111. In soma c a r e e , a

CIT is

created containing the tronrfer instruction, but without the address, The a d d r e e s is filled i n Section 111.

With r e spect to subprogram definition statements, information i s gathered which i s used by aection p r e - 6 in actually filling in the prologue and index-saving in-

0

structions.

With r e s p e c t to I / O statements, a l l instructions a r e compiled except those involv- ing DO'S implied by 1 / 0 statement lists. After Section I h a s scanned and identified ' t h e s o u r c e p r o g r a m statement, i t handles i t by t r a n s f e r r i n g to a routine c o r r e a -

ponding to it. Then, of course, a l l information i s tabulated and, when possible, compilation performed.

A new i n t e r n a l formula number, initially zero, incremented by one, is assigned to each s o u r c e statement, whether that statement i s executable o r non- executable.

Where external statement numbers

--

i. e.

,

statement n u m b e r s assigned by the source p r o g r a m m e r

--

exist, the TEIFNO table s e r v e s t o c o r r e l a t e the external and internal statement numbers,

The g r e a t e s t division in the handling of statements in Section I i s between the a r i t h m e t i c statements and a l l others. The arithmetic compiler p r o p e r constitutes the m a j o r portion of Section I in number of instructions. The a r i t h m e t i c com- p i l e r i n making its scan of the arithmetic formula makes an enormous number

of table e n t r i e s in addition to doing i t s statement analysis n e c e s s a r y for compilation.

Among these tables a r e the T A U tables, recording subscript combination information, the

F O R V A L

and F O R V A R tables recording fixed point v a r i a b l e s occurring on the left and right hand sides of a r i t h m e t i c statements, FIXCON and

FLOCON,

recording the

0

converted fixed and floating point numbers. It should be noted that IF and

CALL

statements fall onto both s i d e s of this division. They a r e t r e a t e d as a r i t h m e t i c statements, with compilation occurring, that is not due d i r e c t l y t o the a r i t h m e t i c c o m p i l e r , a s well.

(30)

The arithmetic compiler i s divided into the Scan, Level Analysis, v a r i o u s Optimizing routines, and the Compiler. The Level Analysis sifts out into one group a l l those algebraic operations which f o r m a unit. A unit i s a group that must be performed together and have the s a m e o r d e r of binding strength for i t s operators. "Plus" and "minust1 a r e one o r d e r of operators, "multiply"

and "dividel1 a r e another order. The l a t t e r h a s g r e a t e r binding strength than the f o r m e r ; consequently, when they occur in the s a m e context the l a t t e r a r e assigned a higher level number. Needless to say, the u s e of parenthesis in an arithmetic statement i s a prime factor in determinging units and, hence, level numbers. Optimization o c c u r s to minimize storag e a c c e s s e s . This means that every attempt i s made to link one operation to i t e s u c c e s s o r via the machine r e g i s t e r s r a t h e r than the s t o r a g e cells. The compilation then proceeds f r o m highest level number to lowest.

Flow Within P a s s I of Section I

The input to P a s s I i s the source p r o g r a m in

BCD

f o r m as a single file, on tape B2.

One r e c o r d a t a time i s read into a buffer termkd FT. All comment c a r d s and blank c a r d s a r e ignored. A special mode c h a r a c t e r in c a r d column on'e i s saved. 1 If a statement number

(EFN)

e x i s t s i t i s converted to a binary number and saved.

The F T buffer i s now moved to the F region, and a new r e c o r d is r e a d into the F T buffer. In this manner the program looks ahead one r e c o r d a t ae:time, to de- t e r m i n e if t h e r e a r e any continuation c a r d s , any non-blank, non-zero, c h a r a c t e r in c a r d column 6). All continuation c a r d s a r e read for a given statement and a s s e m b l e d in the F region. A word of a l l ones i s written a f t e r the l a s t non-blank word i n the

F

region to s e r v e a s an end-of-statement m a r k e r .

At t h i s point a decision m u s t be made a s to whether the statement i a a r i t h m e t i c , i f not a r i t h m e t i c , i t i s non-arithmetic, some of which a r e non-executable. The beginning of the non-arithmetic statements a r e compared to e n t r i e s i n a dic- tionary of non-arithmetic statement beginnings. If the statement i s not iqentified i n the dictionary a diagnostic m e s s a g e i s printed. i All executable statements including arithmetic a r e written on tape B3 with a c o r -

responding label. These r e c o r d s on B3 a r e essentially the s a m e a s the r e c o r d s on

B2,

except they a r e in a m o r e compact form and a r e written in binary. The r e c o r d s on B 3 contain a l l continuation c a r d s of a s o u r c e statement, I'esk t e r m i n a l blanks, and c e r t a i n p r e - dige sted information.

The non- executable statements a r e p r o c e s s e d in P a s s I and e n t r i e s m a d e i n the appropriate tables in core. If an external statement number

(EFN)

a p p e a r s i n the source statement, an entry i s made in the TEIFNO table with a corresponding in- ternal formula number

(IFN).

F o r u s e and operation of these mode c h a r a c t e r e r e f e r t o operating bulletins f o r the 32K

F O R T R A N

System.

(31)

Flow In P a s s I1 of Section I

The input to P a s s I1 i s the condensed source program in binary form a s a single file on B3.

One record i s read in at a time, the f i r s t word of each record i s a label for the type of statement. This address portion of the label i s the transfer a d d r e s s to

the appropriate processor.

As the statement i s scanned, the various p a r t s a r e classified and appropriate table entries are made.

When all the statements have been processed, control passes to the next record on the System tape (Al). This record i s the Diagnoetic for Section I.

The

diagnos- tic record can be called e a r l i e r i f an e r r o r i s found in the source program o r a

mach-

ine e r r o r i s encountered. The program consists of:

P r o g r a m to prepare meesage P r i n t program

Table

of comments

When an e r r o r i s found or occurs during Section I control goes to the Diagnoetic P r o g r a m by means of a TSX using IR4. There are several possible casee:

I IR4

C

0 signifies an e r r o r call . ,

1) F i r s t e r r o r : Print "Fortran Diagnostic Program Results" heading and proceed a s in 2).

2) Not f i r s t e r r o r : Construct parameters for printing statement being processed and comment.

a. If e r r o r was source program, return control to Section I for pro- ceeaing next statement.

b. If e r r o r w a s machine, print "END O F DUGNOSTIC" message and go to Machine E r r o r Supervisor program (record 8).

I1 IR4 t 0 signifies control was received a t the completion of Section I.

1) No e r r o r s had occurred. Go to Section 1'.

TABLES

2) S o m e source program e r r o r s had occurred. Write all diagnostic information which has been printed on tape

B2

following rource program. Go to Source Program E r r o r eupervisor program.

(record 9).

GENERATED

B Y

SECTION

1. Generated by Section I and required for reference. There tables, retained in c o r e s are:.

(32)

NAME

DIM P DIM2 DIM3

TAU1 TAU2 TAU3

FIXCON FLOCON FORSUB

DESCRIPTION

one-dimensional a r r a y e two-dimensional a r r a y s three-dimensional a r r a y s one-dimensional subscripts two-dimensional subscript^

three-dimensional subscripts fixed-point constants

floating-point constants

arithmetic etatement functione

END

options specified in

END

statement

2. Generated by Section I and not required for reference. These tables, written on tapes in buffer sized records, with labels where needed are:

a. Written on tape

B2,

100 words p e r record:

NAME DESC~IPTION

CXT COMPILED INSTRUCTION

TABLE

b. Written on tape A4, in buffer sized r e c o r d s with appropriate labele.

(33)

DESCRIPTION

TEIFNO TDO TIFGQ TRAD FORTAG FORVAR FORVAL FRET

EQUIT

GLOSUB

FORMAT SUBDEF

COMMON

HOLARG

NONEXC

TSTOPS CALEFN

FMTEFN

corresponding IFNs and EFNe DO etatemente

IFs, GO T o e ,

ASSIGN

statements GO

TO

statements

IFNe

-

I

-

TAU tags

fixed- point variable usage fixed- point variable definition FREQUENCY statements EQUIVALENCE statements

names of closed subroutines references FORMAT statements

SUBROUTINE or FUNCTION statement8

COMMON

statemente

Hollerith arguments in

CALL

statements IFNs on non- executable statement$

IFNe of STOP? and RETURN statements f i r s t and l a s t IFNs of CALL ratatemenee

1

-

0 statement reference8 to

FORMAT

numbera

(34)

SECTION I' 2. 01. 02 This section i s a t e r m i n a l p r o c e s s o r for Section I, and i s the longest of a l l secondary sections.

The tables that Section I generated w e r e written on tape A4 a s buffer s i z e r e c o r d s , a s they became full. They can be many r e c o r d s on tape A4 a l l of the one table type. These r e c o r d s a r e not n e c e s s a r i l y on the tape consecutively but r a t h e r at random intervals, a l s o the buffers in Section I f o r these tables m a y have been only partially filled a t the end of Section I. These partially filled buffers a r e left in c o r e f o r proceasing by Section 1'.

The p r i m a r y t a s k of Section I' i s to collect a l l like tables f r o m tape A4, combine them, i n s e r t the partially filled buffer, determine the word count and w r i t e these

tables on tape

BZ,

with a label number corresponding to the type of table.

Section I' a l s o makes c e r t a i n modifications, p r i m a r i l y the replacement of EFN's with corresponding I F N 1 s , ueing the

TIEFNO

table. This can only be accomplished when the entire source p r o g r a m h a s been reduced to tabular form. An example of where the external statement numbers have had to be retained up to this point i s in the TDO table. Here, the number r e f e r r i n g to the statement number of the DO itself may be an internal formula number because i t i s readily known due to the constant updating of the c u r r e n t internal formula number. On the other hand, the DO range had to be recorded a e an external statement number at the t i m e the TDO table e n t r y w a s made. This i s because it could not then be known how m a y state- ments f u r t h e r on i n the p r o g r a m the end of the DO range would occur.

The input to Section I' consists of:

1. Various p a r a m e t e r s describing tables (in cores).

2. Buffers containing t e r m i n a l e n t r i e s in tables (in cores).

3. Tables which Section P r e q u i r e for r e f e r e n c e (FORSUB),

END,

DIM1, DIM2, DIM3, TAU1, TAU2, TAU3, FIXCON,

FLOCON

in cores. )

4. Tables which Section I did not require f o r reference. (COMPAIL, on tape

BZ,

TEIFNO, TDO, TIFGO, TRAD, FORTAG, FORVAR, FORVAL FRET, EQUIT, CLOSUB, FORMAT j SUBDEF, COMMON, HOLARG, NONEXC, TSTOPSj

CALLFN,

FMTEFN, on tape A4. )

The output of Section I' consists of:

1. Tables in c o r e s : 'TAUl, TAU2, TAU3, FIXCON, FLOCON,

FORVAL, TRAD, TIFGO, TEIFNO,

NONEXC, TSTOPS.

2. Tables on tape:

Tape B2: File 1 i s Source P r o g r a m F i l e 2 i s COMPAIL table

F i l e 3 R e c o r d 1 i s FORSUB table except the f i r e t word which i s the COMPAIL r e c o r d count.

(35)

3 7

File 4 Record 1 is FLOCON table, Record 2 i s

FORMAT

table, Record 3 i s SIZ table,

File 5 Record 1 i s

END

table, Record 2 i s SUBDEF table, Record 3 i s

C O M M O N

table.

Record 4 i s HOEARG table,

~ e c o r d 5 i s

TEPFNO

table, Record 6 i s

TPFGO

table, Record 7 i s TRAlD table, Record 8 i s TI38 table, Record 9 i s F O R V f U table, Record P O i s

CALENM

table, Record 11 i s FBRTAG table, Record 12 i s FRET table, Record 13 i s

EQUIT

table.

Record 14 i s CLOSUB table.

The tablee a r e processed in the following order and manner:

32K Version

-

The content8 of the Section I CIT buffer a r e written as. the l a s t record of file 2 on tape 432.

FORSUB

-

The table of names and d e g r e e s of arithmetic statement functions,

b

i f any, is written after the COMPAIL record count'which i s the f i r s t word in record 1 of file 3 on tape B2.

FLOCON- The table of floating-point constants and i t s word count are written as r e c o r d 1 of file 4 on tape B2.

FORMAT

-

The table of format statements is assembled from tape A4 and the Section I buffer. It i s written a s record 2 of file 4 on tape B2; preceded by i t s identification (10) and word count,

FMTEFN -

The table of references to fixed format statements i s assembled from tape A4 and the Section I buffer. Each reference to a format is checked against

(36)

the FORMAT table. If any referenced statements a r e missing an e r r o r l i s t is developed f o r Section I".

DIM1

-

The table of one dimensional a r r a y s is renamed SIZ.

-

DIM2

-

Each entry in the table of two dimensional a r r a y s h a s i t s two dimensions multiplied to f o r m the size of the a r r a y . This table i s added to

SIZ.

DIM3

-

Each entry in the table of t h r e e dimensional a r r a y s h a s i t s t h r e e dimen- sions multiplied to f o r m the s i z e of the a r r a y . This table i s added to SIZ.

SIZ

-

The table is written a s r e c o r d 3 of file 4 on tape

B2.

It is preceded by the

-

EIFNO table and i t s word count.

END -

The

END

table i s written a s r e c o r d 1 of file 5 on tape B2.

-

SUBDEF -

The table of subprogram definition is assembled f r o m tape A4 and the Section I buffer. It is written a s r e c o r d 2 of file 5 on tape BZ; preceded by i t s identification (1 1) and word count.

C O M M O N -

The table of common v a r i a b l e s i s a s s e m b l e d

from

tape A4 and the Sec- tion I buffer. It i s written as r e c o r d 3 of file 5 on tape

B2;

preceded by i t s iden- tification (12) and word count.

HOLARG -

The table of hollerith arguments i s a s s e m b l e d f r o m tape A4 and the Section I buffer. It i s written a s r e c o r d 4 of file 5 on tape B2; preceded by i t s identification (1 3) and wo rd count.

TEIFNO -

The table of corresponding external and internal f o r m u l a n u m b e r s is a s s e m b l e d f r o m tape A4 and the Section buffer. It i s s e a r c h e d for duplicate external formula numbers. If duplicates a r e found they a r e flagged a s e r r o r s f o r Section I". Thos,e c a s e s where Section I assigned m o r e than one i n t e r n a l for- mula number, a r e not. considesred a s duplizatcs an,! the flag is deleted.

The table is written a s r e c o r d 5 of fiIe 5 on tape

BZ;

preceded by its identifi- cation (0) and word count.

It i s a l s o retained in m e m o r y for use in processing tables discussed.below:

TIFGO -

The tables o f I F s , GO T O s and ASSIGNS is a s s e m b l e d f r o m tape A4 and the Section I buffer. ' Each external formula number is s e a r c h e d f o r in TEIFNO and i t s corresponding internal number r e p l a c e s i t in TIFGO.

external formula n u m b e r s not found a r e s e t equal to 0 a s an e r r o r signal to Section I". When all e n t r i e s have been modified the table i s written as r e c o r d 6 of file 5 on tape B2; preceded by i t s identification (2) and word count.

T R A D

-

The table of C O M P U T E D and ASSIGNED GO TO a d d r e s s e s i s a s s e m b l e d f r o m tape A4 and the Section I buffer. E a c h entry, which i s a n external formula number, i s searched for in

TEIFNO.

When found it i s replaced by the c o r r e s - ponding i n t e r n a l formula number. If not found, it is set equal t o 0 as an e r r o r

signal to Section I". When a l l e n t r i e s have been t r e a t e d the table is w r i t t e n as

Références

Documents relatifs

ORL : livret d'étude en acupuncture et pharmacopée traite sur les affections des sinus (rhinite aiguë, rhinite chronique, rhinite allergique, rhinite sèche, rhinite

Cependant, suivant le principe qui peut le plus peut le moins, nous ne gardons que les qualités affines de S, en remarquant que : les points d'intersection des droites d'un

(On suppose qu’on sait construire un cercle passant par 3 points sans tracer les m´ ediatrices.). La droite EF coupe AB

S est le seul point commun aux deux photos car s’il en existait un autre, S’, on aurait SS’=3 SS’, donc S’ confondu avec S. Si A’B’ est aligné avec A, donc P en A, on

Si les cotés correspondants sont parallèles, AA’, BB’, CC’ et DD’ sont concourants en un point O qui est le point invariant cherché.. Sinon, AB et A’B’ se coupent en un

Le rectangle ABCD subit 3 transformations. puisque les angles AZB et A'ZB' sont égaux. 1) Je trace la médiatrice du segment AA' et sa parallèle passant par A ; je trace ensuite le

(ce rapport pouvant être quelconque mais inférieur à 1) Nous pouvons dans un premier temps considérer que les deux formats sont dans un simple rapport d'homothétie en omettant

Le seul point commun existe et c'est le centre de la similitude qui transforme l'original en l'agrandissement.. Une similitude n'a qu'un point image