SC-4020 Plotter Manual

Paul Nelson

September 1967

ACL

This manual was produced soon after the SC 4020 was installed at the Atlas Computer Laboratory (ACL). Prior to its arrival, ACL used the SC4020 recorder at Aldermaston and its own Benson-Lehner flat bed plotter for graphics. HARTRAN was the Fortran compiler on the Atlas computer.

INDEX

Figure 1 -

I USER INFORMATION

1.1 THE SC 4020 HIGH SPEED CRT RECORDER

The SC 4020 Computer Recorder records on microfilm and/or photorecording paper, digital information received from high speed computers via ½" magnetic tape. The information is displayed on the face of a special cathode ray tube known as a Charactron shaped-beam tube.

It is capable of accepting binary codes which it converts into combinations of alphanumeric printing, curve plots, and line drawings at speeds up to 17,000 alphanumeric characters per second or 7,000 printed lines per minute when used in the typewriter mode.

The SC 4020 records information on microfilm in a manner which provides compatibility with existing film storage retrieval systems. The microfilm camera employed for this purpose can be either a 16 mm or 35 mm camera which can be interchanged by the operator.

High Speed Plotter

This mode of operation allows any of the 64 alphanumeric characters to be plotted at any point on a 1024 by 1024 position matrix.

Vector Generator

This feature allows the SC 4020 to draw a line from any addressable origin for a specified length and direction. The origin, length, and direction of the vector is specified by the received word.

Variable Length Axis Generator

This feature permits the SC 4020 to draw X and Y axes. The START POINT as well as the STOP POINT of drawn axes is determined by program control. Variable length axes are useful when it is desired to create grids, co-ordinates, etc., of various lengths.

Typewriter Mode

This mode allows the SC 4020 to interpret the incoming word as six printable alphanumeric characters and to print each character one at a time in a typewriter fashion. Standard Typewriter Mode operation allows up to 128 characters per line and up to 64 lines per frame.

Form Projector

This feature allows the SC 4020 to super-impose fixed data on the variable data generated by the Charactron shaped beam tube. The fixed data are produced on a glass slide and can take the shape of a business form, map, drawing format, etc. The strobe light is flashed under program control.

Rotatable Tube Mount

This facility permits the manual rotation and accurate indexing of the tube at 0°, 90°, 180° and 270°.

direction of film travel ABCD Cine ABCD Inverted Cine ABCD Comic Strip ABCD Inverted Comic Strip

This feature allows the programmer to select one of two predetermined format sizes. The NORMAL IMAGE size is for recording separated frames, whereas the EXPANDED IMAGE size is to allow the abutment of frames on microfilm in order to obtain presentations having continuity from frame to frame. The actual size of plotted characters remains constant, however, whilst the vectors and axes expand.

Frame Repeat

Permits a maximum of 31 repeats of a frame group and is useful for cine work.

The following information is given for completeness only

Data Processing Modes

(a) Normal Mode
Data received in odd parity binary code is processed in this mode. From the beginning of each block, the characters are assembled in sequence to form six-character SC 4020 control words for plotting or printing in the Typewriter Mode.
(b) Print Mode
This mode is automatically selected for even parity BCD records. In the 64th line of a page the SC 4020 executes an automatic advance to the next frame upon executing a carriage return and commences the new frame at X=0, Y=0.
(b1) Print Normal Mode
If this mode is selected the first character of each record is interpreted as being a control code and is translated as follows:-
blank        print after single line space
0            print after double line space
1            print starting at the top of a new page
Any other    no effect other than character is lost
character
(b2) Print List Mode
If this mode is selected the first data character of each record is printed in the first character position of the line. Up to 128 characters per line can be printed in this mode.

1.2 THE SC 4020 SOFTWARE

There are at the moment two software systems, both of which employ some basic Atlas code, and to re-code them for use on computers other than Atlas would involve a little effort. It would probably be worthwhile for installations having ½" magnetic tape capability (7-track at 556 b.p.i.) but not otherwise.

The HARTRAN Subroutine System (about 25 Atlas blocks, where 1 block = 512 instructions).

Out of 79 routines, 22 are in basic code (ASP). This system includes a high level FORTRAN subroutine for ease of producing graphs, obtained from A.W.R.E. Aldermaston.

The ALGOL Procedures At the present time these are as specified in The Atlas ALGOL System Manual, Atlas Computer Laboratory, July 1967, for the Benson-Lehner Model J. The differences in the output between the SC4020 and the B-L J are noted in SECTION IV.

It is planned to extend these facilities in the very near future to make full use of the SC4020 features, and to provide a high level procedure to simplify the production of graphs.

EMA, AA and other languages Information for plotting if generated according to the specification contained in the Graph Plotter Manual, Atlas Computer Laboratory, and SECTION IV of this manual, will enable these languages to have access to the SC4020. Unlike HARTRAN and ALGOL, a second pass is necessary and consequently the information must be recorded on Ampex 1" magnetic tape during the first stage.

1.3 THE JOB DESCRIPTION

The following must be included for successful execution:

HARTRAN programs

i) Subroutine System 
OUTPUT 12 ANY 200 LINES
OUTPUT 13 ANY 200 LINES 
TAPE 99 FORTRANLIB INHIBIT 
TAPE IBM 14 COMMON/SC/USER 'S NAME AND ADDRESS COMPILER 
HARTRAN 
*SC4020 
.......
+LIBRARY 99,610 $ 
*UNLOAD 99$
*ENTER 

When the discs become available on Atlas, the following three statements in the above may be unnecessary as far as using the SC4020 is concerned:-

TAPE 99 FORTRANLIB INHIBIT 
*LIBRARY 99,610 $ 
*UNLOAD 99 $
ii) Extended B-L J System 
OUTPUT 12 ANY 200 LINES 
OUTPUT 13 ANY 200 LINES 
TAPE IBM 14 COMMON/SC/USER'S NAME AND ADDRESS 
COMPILER HARTRAN 

ALGOL program

OUTPUT 12 ANY 200 LINES 
OUTPUT 13 ANY 200 LINES 
TAPE 99 ALGOLIB*PROTECT 
TAPE IBM 14 COMMON/SC/USER'S NAME AND ADDRESS 
COMPILER ALGOL 

INPUT INTERNAL ICT WITH ICT I/O PROCEDURES; 
Algol program

ALL OTHER LANGUAGES

Graphical information is recorded on a 1" Ampex private output tape during the first pass. A suggested format is that of the Extended B-L J System since this will simplify the program required for the second pass.

OUTPUT STREAMS 12 AND 13

In addition to diagnostics, the number of frames of hardcopy and microfilm, and lines of information will also be shown.

One frame each of hardcopy and microfilm will be produced for identification and added to the totals. If no other frames are recorded, the user will normally just receive O/S 13. Output Stream 12 will be retained by the operator for record purposes in every case.

Benson-Lehner Model J Users

Programs using HARTRAN or ALGOL will automatically, upon due notification to the users, produce equivalent graphs on the SC4020 with the limitations as noted in SECTION IV.

Those wishing to continue using the B-L J should obtain a copy of the original graph processing routine from Mr. P. Nelson (Telephone: Abingdon 1900, Ext. 4406).

The Microfilm Camera

In addition to the camera using photo-recording paper there will be a 16 mm cine camera. It is hoped that a 35 mm camera will also become available later, although slides can be made by the user from the results produced on the photo-recording paper.

Re-runs

It will normally be possible to have a job processed again if the Laboratory is informed within five days of the program being run on Atlas ('phone Ext. 6640). For longer delays, the customer should use a private ½" magnetic tape with its title replacing COMMON/SC/ in the Job Description.

Error Mark

This is a solid circle which the SC4020 places in the margin of the output when forced to proceed past an error condition (e.g. magnetic tape parities).

1.4 DIAGRAMMATIC VIEW OF THE SC 4020

1. TAPE TRANSPORT

Six channel digital tapes are read at 200, 556 or 800 bits per inch. Compatible tape units include the IBM 729 II, IV, V, VI and 7330 plus UNIVAC IIIC, Collins, and others. The Laboratory will use an IBM 729 IV at 55bpi.

2. TAPE ADAPTER

Accepts data from tape up to 90,000 characters per second. Assembles six-bit information from tape and arranges it into 36-bit words.

3. CHARACTRON SHAPED BEAM TUBE

Displays the alphanumerics, curves, axes and vectors for recording purposes.

4. FORMS PROJECTOR

By tape control, fixed format from the forms projector can be superimposed on microfilm and photo-recording paper.

5. MICROFILM CAMERA

Records combined information from tube face and forms projector onto 16 mm or 35 mm film for archive storage, reproduction or group viewing.

6. HARD COPY RECORDER (F8O)

Records combined information from the CSBT and forms projector simultaneously with the microfilm camera. The photo-recording paper must be processed (developed) before viewing. The processed copy may be reproduced for multiple copies.

II SC4020 SUBROUTINES FOR USE WITH HARTRAN

2.1 INTRODUCTION

The routines included in this section are provided in order to make using the SC4020 as simple as possible.

They divide into basic routines and a high level routine known as SCFOR.

The basic routines are further divided into five main categories, with the fifth receiving only a brief mention here, as it is dealt with in detail in SECTION III.

  1. Control Mode
  2. Plotting Mode
  3. Typing Mode
  4. Line Printer Simulator Mode facility
  5. Software Character routines

2.2 BASIC SUBROUTINES FOR THE SC4020 MICROFILM RECORDER

The SC4020 plots on a grid of 1024 horizontal by 1024 vertical points. The origin is in the upper left corner, with X and Y increasing to the right and downward as shown.

0,0 1023,0 0,1023 1023,1023 X Y

There are, therefore, over one million addressable positions. The centre of any character may be plotted at any of these positions. However, each character can occupy an amount of space that varies from a square of 3 horizontal by 3 vertical points used by a plotting dot, to a rectangle of 8 horizontal by 16 vertical points used by all characters in the typewriter mode.

Subroutines for use in Control operations

(1)   CALL IDST

Must be called before all other SC4020 routines with the exception of CAM35. Provides identification, Atlas time and date, plus a test frame for accuracy of alignment. Heavy density of recording is set; the camera using the photorecording paper ('hardcopy') is selected and advanced to a new frame, and the typing position is placed at X= 0, Y= 0.

(2)   CALL IDEND 

Must be called at the end of plotting. Gives identification, Atlas time and date on a new frame, together with a frame and line-count on Output Stream 13.

(3)   CALL ADVFLM(I) 

The selected camera(s) are advanced by one frame. I = 1, 2, and 3,respectively, causes the graph to be photographed on microfilm only, hardcopy only, or on both microfilm and hardcopy.

(4)   CALL ADVAN 

Advances the previously selected camera(s) one frame. It does not give a frame count, and sets up the typing position to X = 0, Y = 0. Subroutine SELECT(I) must be used prior to CALL ADVAN. By means of these two routines it is possible, for example, to build up a composite picture of several different graphs on one camera, whilst at the same time putting them out separately on the other.

(5)   CALL ADVREP(I,N) 

I = 1, 2and 3, respectively, selects the microfilm camera only, the hardcopy camera only, or both cameras, and repeats the information from this point back to the previous call of ADVRBP, N times.

(6)   CALL CAM35

To be called at the start of a job before IDST if the 35 mm camera is required. This gives a message to the SC4020 operator that the 35 mm camera is to be mounted in place of the normal 16 mm cine camera.

(7)   CALL ENDFME or 
      CALL FINISH 

Writes the buffer holding SC4020 commands to the magnetic tape, and should be called before changing to the Line Printer Simulator mode. (See Code Conversion Differences table)

(8)   CALL EXPAND

The image is expanded and causes successive frames on the 35 mm camera only to abutt thereafter.

(9)   CALL PROJF

Information on the form slide is superimposed on the current frame only, along with the data displayed on the tube.

(10)  CALL REDUCE

The image is reduced and remains so until EXPAND is called.

(11)  GALL RESET 

Performs the functions of ADVANCE FRAME on the currently selected camera(s), STOP TYPE and EXPOSE HEAVY. No frame count is given and the typing position is set to X = 0, Y = 0.

(12)  CALL REVERS

This reverses the software characters currently in use.

(13)  CALL ROTATE(N)

Causes all the software characters currently in use to be rotated through Nπ/2 clockwise.

(14)  CALL SAVEA

Signals the commencement of a save sequence for any following SC4020 subroutine calls. (SECTION III).

(15)  CALL SAVEB

Ends the save sequence initiated by CALL SAVEA.

(16)  CALL USEIT 

Re-Outputs the information that was originally output by the SC4020 subroutine calls sandwiched between CALL SAVEA and SAVEB.

(17)  CALL SELECT(I) 

Selects (i.e. opens the shutter on) either the microfilm camera, hardcopy camera or both, with I =1, 2 and 3, respectively.

(18)  CALL STPTYP

Stops the typewriter mode. Must be used immediately after a call of TSP or TCP.

(19)  CALL SYSSET 

Re-establishes the standard software character set with normal orientation.

(20)  CALL MOVETP(X, Y)

Moves the typing position to the X and Y deflection specified.

Subroutines for use in Recording operations

(1a)  CALL PLOT (X,CC,Y) 
(1b)  CALL EXPHVY (X,CC,Y) 
(1c)  CALL EXPLGT (X,CC,Y) 

These three subroutines are similar in that they plot the character (CC) at the point specified by the X and Y deflections. The PLOT routine, however, operates in the density mode to which the SC4020 has been set, whilst EXPHVY and EXPLGT set the machine to heavy or light density respectively before plotting the point. The heavy density can only be changed by calling EXPLGT and vice-versa.

The character code is the decimal equivalent of the octal BCD code and a complete table is now given:

CharacterDecimal ValueCharacterDecimal ValueCharacterDecimal Value
0 0E21.42
1 1F22$43
2 2G23*44
3 3H24γ45
4 4I2546
5 5π26d47
6 627 48
7 7)28/49
8 8β29S50
9 9±30T51
10?31U52
=11-32V53
"12J33W54
'13K34X55
δ14L35Y56
α15M36Z57
+16N37°58
A17O38,59
B18P39(60
C19Q4061
D20R41Σ62
63
(2)   CALL SIPLOT(X,CC,Y,N)

Will plot the character, CC, at the point specified by the X and Y deflections in the currently selected density, N times.

(3)   CALL PLOTSC(X,N,Y,FACTOR)

Will draw the software character (N) at the point specified by the X and Y deflection, with size governed by FACTOR. (Please refer to SECTION III for more details).

(4)   CALL VECTOR(XS,YS,XF,YF)

A vector (or straight line) is drawn from the point (XS,YS) to (XF,YF).

(5)   CALL GXAXIS(X,Y) 

An axis parallel with the X-axis is generated. It starts at the X and Y deflections specified and continues to the right edge of the grid. The minimum length is 1/16th of the full scale (or 64 plotting points). All axes subroutines have software protection for this condition built-in, thereby forcing an axis to start not less than 64 units from the edge.

(6)   CALL GYAXIS(X,Y) 

An axis parallel with the Y axis, originating at the X and Y deflections given and continuing to the top edge of the grid, is generated. The minimum length is 64 points.

Example:
      CALL GXAXIS(100,700)
      CALL GYAXIS(100,700)
0,0 X Y (100,700)>
(7)   CALL XAXSTP(X,Y,XSTOP)

An axis parallel with the X axis is generated. It starts at the X and Y deflections specified and continues to the XSTOP point. The minimum length is 1/16th of full scale i.e. XSTOP > X+63.

(8)   CALL YAXSTP(X,Y,YSTOP)

An axis parallel with the Y axis, originating at the X and Y deflections given and continuing to the YSTOP point, is generated. The minimum length is 6l, points i.e. YSTOP < Y-63.

Example:
      CALL XAXSTP(100,700,300)
      CALL YAXSTP(100,700,300)
0,0 X Y (100,700)>

Typing Mode

(1)   CALL TSP(X,CC,Y)

This routine will Type on Specified Point the character denoted by the character code, CC, at the point (X,Y). TSP can be used, while in the plotting mode, to fix the point on the grid from where one wishes to start printing e.g. a title. This is done by having CC specify a blank:-

      CALL TSP(20,48,60) 

The typing position is moved to the right by one character. Alternatively, MOVETP(20,60) could be used, in which case the typing position is not then moved to the right by one character. Note: CALL STPTYP must be used if changing immediately to a Plotting Mode routine or Software Character routine.

(2)   CALL TCP

This routine will type a blank at the current point and move the typing position one character to the right. The current point is defined as the last point plotted, the current typewriter position, or the origin of the last axis drawn. This does not apply to VECTOR, or to PLOTSC which produces the character by means of vectors.

(3)   CALL NEWLIN(I)

This routine gives I new lines.

(4)   CALL NEWPAG

This routine gives a new page by advancing the film to the next frame. A line is automatically left blank at the top of the page i.e. leaving 63 lines available for printing. NEWPAG automatically sets the heavy density of recording, causes the page to be photographed on microfilm only, and moves the typing position to X=0, Y=16.

(5)   CALL HORAM(X,I)

Will print A-mode characters horizontally from the current typing position. X is the word to be printed. I is the number of characters within that word. I < 8. If X represents an array where characters are stored in A1 format then 8 < I ≤ 128.

(6)   CALL VERAM(X,I)

Prints A-mode characters vertically from the current typing position. The arguments are as in (5), except that with the A1 format 8 < I ≤ 64.

Example
      READ 1, (Z(I),I = 1,3) 
  1   FORMAT (3A8) 
      CALL TSP(A,CC,B)
      D0 2 I=1,3 
      CALL HORAM (Z(I),8) 
  2   CONTINUE 
      CALL TSP(C,CC,D) 
      D0 3 I= 1,3 
      CALL VERAM (Z(I),8) 
  3   CONTINUE 
(7)   CALL C4020H

To print horizontally from the current typing position using this routine, two statements are required and they must be adjacent:

      CALL C4020H
      PRINT 10

Where 10 is a format label of a format containing a Hollerith statement. The print statement is a parameter of the C4020H subroutine and does not cause normal printing unless jumped to without using C402OH.

(8)   CALL C4020V

Prints vertically from the current typing position in a similar manner to C4020H, and has to include the adjacent PRINT statement.

(9)   CALL C4020E(B,M,N)

Routine for outputting numbers in the E-type format from the current typing position. B is the variable whose value is to be printed. M is the field width of B. N is the number of decimal places required.

(10)  CALL C4020F(A,K,L)

Routine for outputting numbers in the F-type format from the current typing position. A is the variable whose value is to be printed. K is the field width of A. L is the number of decimal places required.

(11)  CALL C4020I(I,J)

Routine for outputting numbers in the I-type format from the current typing position. I is the variable whose value is to be printed. J is the field width of I.

(12)  CALL C4020N(I)

The routine will produce I blank spaces.

(13)  WRITE(14,f) list
   or WRITE OUTPUT TAPE 14,f,list

Will come out as horizontal or vertical lines of text on the SC4020, starting at the current typing position. For horizontal text, the first two characters in the record must be GT and the last π (-,8,3 card punch). For vertical text, the first two characters must be GV... and the last π. If the first two characters are GC then a carriage-return/line-feed is produced. If the first two characters are GQ a line-feed is produced.

Line-Printer Simulator Mode

For records with no 'G' in the first character position produced by either WRITE or WRITE OUTPUT TAPE statements, the SC4020 simulates a line-printer, with automatic line and page advance and carriage control.

To enable all records to come out in this mode (including-those with a 'G' in the first character position) they must be preceded by a record with GA in the first two character positions. To cancel this and return to the typing mode a record with 'G4' in the first two character positions is required.

When changing from this mode to any other and vice-versa, an automatic RESET occurs.

Note: If a GA record is not used, then CALL ENDFME must be used in order to empty the buffer before changing to the Line-Printer Simulator Mode. CALL ENDFME is not required, however, when changing from the LinePrinter Simulator Mode to any other.

Code Conversion Differences

Atlas Internal Code (Octal) Anelex Printer Availability (Inner Set) Line Printer Simulator (SC4020 Equivalent)
00. None, unallowed character
02Space *None (δ)
03. *None (α)
04Shift to Outer Set*None (Carriage Return)
05Shift to Inner Set*None
06.. *None (Σ)
07.. *None(□)
13π * π ($)
14? * ? (γ)
15& '
32<
33> β
40' "
73. None
74. d
75. *α (π)
76. ±
77. γ (?)

* denotes a software alteration from the character given in brackets at the side.

Note: Unless the first character of a record is a it is lost.

carriage-control character (blank, zero or 1)

Software Character Routines

(Please refer to SECTION III for full details)

(1)   CALL TITLEH (LABEL,K,FACTOR,KOLUMN,LINE)   
(2)   CALL TITLEV (LABEL,K,FACTOR,KOLUMN,LINE)   
(3)   CALL LABELH (LABEL,K,FACTOR,KX,KY)   
(4)   CALL LABELV (LABEL,K,FACTOR,KX,KY)   
(5)   CALL PLOTSC (X,N,Y,FACTOR)   
(6)   CALL SHLINE (LABEL,K)   

2.3 SUMMARY OF SUBROUTINES

A   =   A-mode
DV  =   Decimal value of octal BCD
F   =   Floating-point Number
I   =   Fixed-point Number 
H   =   Heavy Density
L   =   Light Density
P   =   Plotting Mode
T   =   Typewriter Mode
C   =   Control Mode
LP  =   Line-Printer Simulator Mode
Subroutine Argument Mode of Argument Density on return from subroutine Mode Function
IDST HCIdentification
ISEND HCIdentification
ADVFKMIIAs on entryCAdvances one frame
ADVAN As on entryCAdvances selected frame
ADVREPI
N
I
I
As on entryCRepeat frames
CAM35 IAs on entryCRequests 35mm camera
ENDFMEAs on entryCEmpties buffer
FINISHAs on entryCEmpties buffer
EXPANDAs on entryCEnlarges image
PROJFMAs on entryCProjects forms slide
REDUCEAs on entryCReduce image
RESET HCAdvances frame, stops typing mode, Exposes heavy
REVERSAs on entryCReverses software characters
ROTATENIAs on entryCRotates software characters
SAVEA As on entryCStarts save sequence
SAVEB As on entryCStops save sequence
USEIT As on entryCUses save sequence
SELECTIIAs on entryCSelects camera(s) Use with ADVAN
STPTYPAs on entryCUse when changing to Plotting Mode after a TSP or TCP
SYSSETAs on entryCRe-establishes standard software character set
MOVETPX
Y
I or F
I or F
As on entryCMoves typing position to X,Y
TSP X
CC
Y
I or F
DV
I or F
As on entryTTypes one of 64 possible characters *
TCP As on entryTTypes a blank at current point *
NEWLINIIAs on entryTGives I new lines
NEWPAGHTGives new page on microfilm only
HORAM X
I
A
I
As on entryTOutputs text horizontally
VERAM AAs on entryTOutputs text vertically
C4020HPrint
Statement
As on entryTOutputs text horizontally
C4020VPrint
Statement
As on entryTOutputs text vertically
C4020EB
M
N
F
I
I
As on entryTOutputs number in E-type format
C4020FA
K
L
F
I
I
As on entryTOutputs number in F-type format
C4020II
J
I
I
As on entryTOutputs number in I-type format
C4020NIIAs on entryTGives I spaces +
WRITE (14,f)ListAnyAs on entryT or LPOutputs text (alternative toC4020H/V
TITLEHLABEL
K
FACTOR
KOLUMB
LINE
A
I
F
I
I
As on entryPOutputs software characters horizontally
TITLEVLABEL
K
FACTOR
KOLUMB
LINE
A
I
F
I
I
As on entryPOutputs software characters vertically
LABELHLABEL
K
FACTOR
KX
KY
A
I
F
I
I
As on entryPOutputs software characters horizontally
LABELVLABEL
K
FACTOR
KX
KY
A
I
F
I
I
As on entryPOutputs software characters vertically
SCFOR N
AA
BB
CC
DD
I
F
F
F
F
As on entry except for options 3 and 5 change to HP and TFacilitates the making of graphs
PLOT X
CC
Y
I or F
DV
I or F
As on entryPPlots one of 64 possible characters
EXPHVYX
CC
Y
I or F
DV
I or F
HPPlots one of 64 possible characters
EXPLGTX
CC
Y
I or F
DV
I or F
LPPlots one of 64 possible characters
SIPLOTX
CC
Y
N
I or F
DV
I or F
I
As on entryPPlots one of 64 possible characters N times
PLOTSCX
N
Y
FACTOR
I or F
I
I or F
F
As on entryPPlots one of 128 possible software characters
VECTORXS
YS
XF
YF
I or F
I or F
I or F
I or F
As on entryPJoins up (XS,YS) to (XF,YF) with a straight line
GXAXISX
Y
I or F
I or F
As on entryPDraws line parallel to Y-axis
GYAXISX
Y
I or F
I or F
As on entryPDraws line parallel to X-axis
XAXSTPX
Y
XSTOP
I or F
I or F
I or F
As on entryPDraws line parallel to X-axis
YAXSTPX
Y
YSTOP
I or F
I or F
I or F
As on entryPDraws line parallel to Y-axis

* STPTYP must be used after these subroutines if changing immediately to a plotting mode routine.

+ STANDARD FORTRAN STATEMENT - not a subroutine call.

2.4 ALPHABETIC-ORDERED INDEX OF FORTRAN AND ASP SUBROUTINE NAMES

Routine Names   Subsidiary Routines   Public Names also used
ADVAN            /GIBM(/SC4020)         A66666
ADVFLM           ATOINT                 CHARRR
ADVREP           CTOBUF                 ISIGNV
CAM35            ENDSCF                 IXXXXX
C4020E           INTRGP                 IYYYYY
C402OF           JOBTIT                 KKKKKK
C4020H           OPCODE                 KKKKK1
c4020I           PAKBUF                 KLINES
C4020N           SCCHAR                 KUTMRK
C4020V           SCCSET                 KXXXXX
ENDFME           SCFRND                 KYYYYY
EXPAND           SCFOR0-9               LINEBK *
EXPHVY           SCSTOP                 LXXXXX
EXPLGT           SC40T                  LYYYYY
FINISH           SETBUF                 SCBUFF
GXAXIS           SHIFTV                 SCFONT
GYAXIS           VECTO                  SCRECS
HORAM            VSHIFT                 
IDEND            VVVVVV                 SCFORZ (Blocked Common)
IDST             ZSCFOR                 
LABELH           
LABELV           
MOVETP           
NEWLIN           
NEWPAG           
PLOT             
PLOTSC           
PROJFM           
REDUCE           
RESET            
REVERS           
ROTATE           
SAVEA            
SAVEB            
SELECT           
SCFOR            
SHCONV           
SHLINE           
SIPLOT           
STPTYP           
SYSSET           
TCP              
TITLEH           
TITLEV           
TSP              
USEIT            
VECTOR           
VERAM            
XAXSTP           
YAXSTP 

* A PUBLIC Integer whose normal value is zero. If set such that 0 < LINEBK< 63, then all calls of VECTOR will produce broken lines until LINEBK is reset to zero. The lines and breaks between the lines will be approximately equal in length to the value of LINEBK, in raster positions.

2.5 SCFOR FOR PLOTTING GRAPHS

A General Purpose FORTRAN Subroutine to Facilitate the Plotting of Graphs on the SC4020

SCFOR is designed to allow a programmer to draw graphs on the SC4020 leaving the subroutine to deal with scaling and positioning. SCFOR is a collection of separate routines each fulfilling a specific function and these have been combined so that all necessary data is always available.

The subroutine defines the origin and dimensions of the graph relative to the SC4020 raster and defines scale factors to convert the co-ordinates of points and end points of vectors to the corresponding SC4020 co-ordinates. Facilities are provided for generating scale numbers and corresponding grid lines. Any number of curves may be plotted on one graph with separate sets of scale numbers if required. Alternatively two or more distinct graphs may be plotted on the same frame.

The programmer must define the positions of titles, legends and scale numbers relative to the SC4020 raster. This is 1024 units square with the origin in the top left hand corner. Graphs drawn by the subroutine have conventional orientation of axes.

(0,0) (1023,0) (0,1023) (1023,1023) X Y X

The first operation on the SC4020 should be CALL IDST, and the last CALL IDEND. These two basic SC4020 routines have been described already. SCFOR does not advance the frame, and this should be done whenever a new frame is required by a call, of say, ADVFLM(I).

The 10 different operations of SCFOR are known as options and they are all brought into use by the same CALL statement.

      CALL SCFOR(n,x1,x2,x4,x4)

where n is an integer defining the option required and having a value between 1 and 10, and x1, x2, x3, x4 are the parameters required by the individual options. All five parameters must be supplied for each use of SCFOR and their meaning will be described together with the appropriate option.

Note: x1, x2, x3, x4 must be of REAL not INTEGER mode.

List of Options

OPTION 1
defines the origin and dimensions of the graph relative to the SC4020 raster.
OPTION 2
defines the maximum and minimum values of the abscissa and ordinate and calculates scaling factors to convert the values of the variables to SC4020 coordinates.
OPTION 3
labels the X axis by generating scale numbers of a specified format and writing them at the position specified on the SC4020 raster.
OPTION 4
generates and plots grid lines corresponding to the X scale numbers and at specified subdivisions.
OPTION 5
labels the Y axis by generating scale numbers of a specified format and writing them at the position specified on the SC4020 raster.
OPTION 6
generates and plots grid lines corresponding to the Y scale numbers and at specified subdivisions.
OPTION 7
tests whether a given point lies in the range of the variables defined in Option 2, and if within the range plots the specified character at the corresponding point on the SC4020 raster.
OPTION 8
produces a straight line defined by two given points if these both lie within the range or tne variables defined in Option 2.
OPTION 9
sets a switch such that when options 7 or 8 are subsequently called, it plots on logarithmic scale in the X-direction or the Y-direction, or both. It also generates and plots scale numbers and grid lines corresponding to the logarithmic scale or scales.
OPTION 10
is designed to obviate the need for the programmer to specify any details regarding the layout of his graph other than the format of his scale numbers and the type of grid required. When used after option 2 (specifying maximum and minimum values) this option draws and labels a complete set of X and Y axes suitable for dealing with the specified range of values.

OPTION 1

This option defines the origin and dimensions of the graph relative to the SC4020 raster.

      CALL SCFOR(1, XSCO, YSCO, XSCR, YSCR)

XSCO is the X co-ordinate of the origin of the graph relative to the SC-4020 raster.

YSCO is the Y co-ordinate of the origin of the graph relative to the SC-4020 raster

XSCR is the X range on the SC-4020 raster

YSCR is the Y range on the SC-4020 raster

All the above parameters should be integer values of Real Mode.

The program is terminated if (XSCO + XSCR) > 1023 or (YSCO - YSCR) < 0.

The origin in this case refers to the SC-4020 raster position of the minimum (X, Y) co-ordinate and not necessarily (0, 0).

For example

       CALL SGFOR (1, 120.0, 900.0, 800.0, 700.0)

produces a graph within the shaded area below.

(0,0) (120,200) (920,200) (120,900) (920,900)

OPTION 2

This option defines the maximum and minimum values of the abscissa and ordinate and calculates scaling factors to convert the values of the variables to SC-4020 co-ordinates.

      CALL SCFOR(2, XMIN, YMIN, XMAX, YMAX)

XMIN is the minimum abscissa

YMIN is the minimum ordinate

XMAX is the maximum abscissa

YMAX is the maximum ordinate

Scaling factors are calculated so that the point (XMIN, YMIN) corresponds to (XSCO, YSCO) and (XMAX, YMAX) corresponds to (XSC0 + XSCR, YSCO - YSCR)

The program is terminated if XMIN ≥ XMAX or YMIN ≥ YMAX

For example

       CALL SGFOR (2, -0.5, 1.0, 0.0, 3.0)
(0,0) (-0.5, 3.0) (0, 3.0) (-0.5, 1.0) (0, 1.0)

NOTE: If option 2 is used without previous use of option 1 and the programmer does not intend to use option 10, standard values are given to XSCO, YSCO, XSCR, YSCR, as shown below

XSCO = 150.
YSCO = 890.
XSCR = 850.
YSCR = 850.

X scale numbers will be positioned 10 SC-4020 positions below the X axis and Y scale numbers will be positioned with their least significant digit 8 SC-4020 positions to the left of the Y axis. These positions will replace any requests made by subsequent use of options 3 and 5.

OPTION 3

This option labels the X axis by generating scale numbers of a specified format and writing them at the position specified on the SC-4020 raster.

      CALL SCFOR(3, YSCL, DX, FW, FL)

YSCL is the SC-4020 Y co-ordinate specifying the position of the X scale numbers. The X co-ordinates will be chosen to correspond with the position of the graph on the raster. This must be an integer value. Note: YSCL is the position of the centre line of the number, the digits of which each occupy an 8 by 16 square of SC-4020 positions. If option 1 has not been used the YSCL will be ignored and the standard. one used.

DX is the interval between X scale numbers, in the same scale as XMIN and XMAX.

FW is the field width of the scale numbers. This must be an integer value (Note: FW must include a position for the sign, even if positive).

YFL is the fraction length of the scale numbers. This must be an integer value.

If the field width is too large to allow scale numbers at the specified interval then scale numbers are provided at intervals which are multiples of DX.

If XMIN and XMAX cannot be represented by the specified format a scalling factor of the for E+XX or E-XX will be printed to give the correct scale.

For example

       CALL SCFOR (3, 920.0, 0.5, 6.0, 1.0)

would print scale numbers in format F6.1 at Y position 920 at intervals of 0.5 and if used after the examples in options 1 and 2 would produoe:

(0,0) -0.5 0.0 0.5 1.0

OPTION 4

This option generates and plots grid lines corresponding to the X scale numbers and at specified subdivisions.

      CALL SCFOR(4, DXN, 0.0, 0.0, G)

DXN DIN is the number of subdivisions in any DX interval as defined in Option 3

For example, if DXN = 1, axes will be drawn at XMlN, XMIN + DX, XMIN + 2DX, ... XMAX.

If DXN = 10 axes will be drawn at XMIN, XMIN+0.1DX ... XMAX. The axes at XMlN, XMlN + DX etc. are drawn twice for emphasis.

G=0.0 for full grid. G<0.0 for no grid at all. If G>0.0, then indications only of the grid lines are produced around the edge of the frame, of length equal to 'G' raster positions. (See example later).

OPTION 5

This option labels the Y axis by generating scale numbers of a specified format and writing them at the position specified on the SC-4020 raster.

      CALL SCFOR(5, XSCL, DY, FW, FL)

XSCL is the SC-4020 X co-ordinate specifying the left hand position of the Y scale numbers. The Y co-ordinates will be chosen to correspond with the position of the graph on the raster ({this must be an integer value). Note: the digits printed are 8 SC-4020 positions wide. If option 1 has not been used the XSCL value will be ignored. and the standard value calculated using FW.

DY is the interval between the Y scale numbers, in the same scale as YMIN and YMAX.

FW is the field width of the scale numbers as defined for option 3.

FL is the fraction length of scale numbers as defined for option 3.

If YMIN and YMAX cannot be represented by the specified format a scaling factor of the form E+XX or E-XX will be printed to give the correct scale.

For example

       CALL SCFOR (5, 70.0, 0.5, 4.0, 1.0)

would print scale numbers in format F4.1 at X position 70 at intervals of 0.5 and if used after the examples in options 1 and 2 would produce:

(0,0) 3.0 2.5 2.0 1.5 1.0

OPTION 6

This option generates and plots grid lines corresponding to the Y scale numbers and at specified subdivisions.

      CALL SCFOR(6, DYN, 0.0, 0.0, G)

DYN is the number of subdivisions in any DY interval. This option has a similar effect to that of option 4.

OPTION 7

This option tests whether a given point lies in the range of the variables defined in option 2, and if within the range, plots the specified character at the corresponding point on the SC-4020 raster.

      CALL SCFOR(7, X, Y, CHAR, G)

X and Y are co-ordinates of point to be plotted. These are compared with the maximum and minimum values specified by option 2. If the co-ordinates are within the specified range the corresponding SC-4020 co-ordinates are given by

XSC = XSCO +[(X-XMIN)*XSCR]/(XMAX-XMIN) for X-linear
or
XSC = XSCO +[log(X/XMIN)*XSCR]/log(XMAX/XMIN) for X-log

YSC = YSCO +[(Y-YMIN)*YSCR]/(YMAX-YMIN) for Y-linear
or
YSC = YSCO +[log(Y/YMIN)*YSCR]/log(YMAX/YMIN) for Y-log

X and Y wi11 both be linear unless the log scales have been selected by a previous use of option 9.

CHAR specifies the character to be plotted as shown in the table gollowing.

If G≠0.0 then a software character is produced according to the table following with size determined by the value of the argument. If this value is 1.0, for example, the size is that of the characters in the JOB NUMBER. given in the centre of the second frame of output produced by CALL IDST.

The characters in the table may be replaced by customer-designed ones as described later.

CharacterDecimal ValueCharacterDecimal ValueCharacterDecimal Value
0 0E21.42
1 1F22$43
2 2G23*44
3 3H24γ45
4 4I2546
5 5π26d47
6 627 48
7 7)28/49
8 8β29S50
9 9±30T51
10?31U52
=11-32V53
"12J33W54
'13K34X55
δ14L35Y56
α15M36Z57
+16N37°58
A17O38,59
B18P39(60
C19Q4061
D20R41Σ62
63

For example:

      CALL SCFOR(7, A, B, 16.0, 0.0)
will plot a + at the point specified by A, B
      CALL SCFOR(F, A, B, 41.0, 1.0)
will plot an I 0.6" high with its centre at the point specified by A, B

OPTION 8

This option plots the vector defined by two given points if these both lie within the range of variables defined in option 2.

      CALL SCFOR(8, X1, Y1, X2, Y2)

(X1,Y1) and (X2,Y2) are the end points of a vector to be plotted if both points are within the range specified in option 2.

The corresponding SC-4020 points are calculated in the manner specified for option 7.

OPTION 9

This option sets a switch such that when options 7 or 8 are subsequently called, it plots on a logarithmic scale in the X-direction or the Y-direction, or both. It also generates and plots scale numbers and grid lines corresponding to the logarithmic scale or scales.

      CALL SCFOR(9, TYP, SUBDX, SUBDY, 0.0)

This option should be used after option 2 but before options 7 and 8.

TYP specifies type of graph required and should be an integer value. Values of TYP and corresponding type of graph:-

TYP=1, X-log, Y-linear Labelled heavy axes will be drawn at X/XMIN = 1, 2, 3, ... etc. The programmer should use options 5 and 6 to plot his Y scale numbers and axes. Options 3 and 4 should not be used.

TYP=2, X-linear, Y-log Labelled heavy axes will be drawn at Y/YMIN = 1, 2, ... etc. The programmer should use options 3 and 4 to draw his X scale numbers and axes. Options 5 and 6 should not be used.

TYP=3, X-log, Y-log Labelled heavy axes drawn at X/XMIN = 1, 2, 3, ... etc, Y/YIMN = 1, 2, 3, ... etc. Options 3, 4, 5 and 6 should not be used.

SUBDX takes the integer values 1 or 0. If the value is 1 then light axes will be drawn at X/MIN = 1.1 by .1 to 2; 2.2 by .2 to 5; 5.5 by .5 to 9.5. If the value is 0 then light axes are not drawn

SUBDY is analogous to SUBDX.

OPTION 10

This option is designed to obviate the need for the programmer to specify any details regarding the layout of his graph other than the format of his scale numbers and the type of grid required. When used after option 2 (specifying maximum and minimum values) this option draws and labels a complete set of X and Y axes suitable for dealing with the specified range of values.

All axes and scale numbers lie within the area defined by the SC-4020 raster co-ordinates (16,26), (982,26), (16,946), (982,946).

(16,26) (982,26) (16,946) (982,946)

Use of option 10 replaces use of options 1, 3, 4, 5, 6 and 9 which are called internally by option 10. The grid lines provided will be uniformly spaced.

      CALL SCFOR(10, TYP, XAXIS, YAXIS, G)

TYP TYP indicates the type of grid required and should be an integer value.

TYP=0 gives X-linear, Y-linear

TYP=1 gives X-log, Y-linear

TYP=2 gives X-linear, Y-log

TYP=3 gives X-log, Y-log

XAXIS specifies the format of the largest sized scale number on the X axis and is written in the form A.B where A is the number of digits before the point and B is the number of digits after the point. If B = 0 then an integer A digits long without a point is produced. The number of digits before the point does not need to include space for a sign.

YAXIS specifies the format of the largest scale number on the Y axis and is written in the same form as XAXIS.

If either XAXIS or YAXIS is defined as 0.0 then a value 1.3 is used.

If G > 0.0 then indications only of the grid lines are produced, of length equal to 'G' raster positions.

G = 0.0 for full grid.

Example 1

To plot a graph of pressure and energy against density. N values of pressure, energy and density stored in P, E and RHO respectively.

0 ≤ P ≤ 5.0

0 ≤ E ≤ 2.0

10.0 ≤ RHO ≤ 45.0

      CALL IDST                                   Identifies SC-4020 Output
      CALL ADVFLM (2)                             Advances hardcopy 1 frame
      CALL SCFOR (1,200.0, 900.0, 700.0, 800.0)   Defines dimensions of graph
      CALL SCFOR (2, 10.0, 0.0, 45.0, 5.0)        Sets minimum and maximum values
      CALL SCFOR (3, 916.0, 5.0, 5.0, 2.0)        Labels X axis
      CALL SCFOR (4, 5.0, 0.0, 0.0, 0.0)          Draw grid lines
      CALL SCFOR (5, 150.0, 1.0, 6.0, 3.0)        Labels Y axis
      CALL SCFOR (6, 10.0, 0.0, 0.0, 0.0)         Draws grid lines
      DO 100 I=1,N                                
      CALL SCFOR (7, RHO(I), P(I), 16., 0.0)      Uses + to plot points
 100  CONTINUE                                    
      CALL SCFOR (2, 10.0, 0.0, 45.0, 2.0)        Sets new minimum and maximum values
      CALL SCFOR (5, 50.0, 0.4,  6.0, 3.0)        Labels Y axis again
      DO 200 I=1,N                                
      CALL SCFOR (7, RHO(I), E(I), 44., 0.0)      Uses * to plot point
 200  CONTINUE                                    
      CALL IDEND                                  Empties buffer and gives identification
      END                                         

Example 2

To plot a graph of pressure against density, pressure on a logarithmic scale, M values of pressure and density stored in P2 and RH02 respectively. Points to be plotted in heavy density, and a title to be printed at the bottom of the graph. Standard values given by subroutine to be used.

10.0 ≤ RH02 ≤ 35.0

10.0 ≤ P2 ≤ 1000.0

      CALL IDST                                   Identifies SC-4020 Output
      CALL ADVFLM (2)                             Advances hard copy 1 frame
      CALL SCFOR (2, 10.0, 10.0, 35.0, 1000.0)    Sets minimum and maximum values
      CALL SCFOR (9, 2.0, 0.0, 1.0, 0.0)          Select X-Linear, Y-log
      CALL SCFOR (3, 0.0, 5.0, 5.0, 3.0)          Labels X axis
      CALL SCFOR (4, 5.0, 0.0, 0.0, 0.0)          Draw grid lines
      CALL EXPHVY(0, 48, 0)                       Set to plot heavy characters
      DO 300 K=1,M                                
      CALL SCFOR (7, RHO2(K), 2P(K), 44., 0.0)    Uses * to plot points
 300  CONTINUE                                    
      CALL TSP (200,48,980)                       Prints title at bottom of frame
      CALL C4020H
      PRINT 1
         1  FORMAT(72H............)
      CALL IDEND                                  Empties buffer and gives identification
      END 

Example 3

The same problem as in example 2 but making use of option 10

      CALL IDST                                   Identifies SC-4020 Output
      CALL ADVFLM (2)                             Advances hard copy 1 frame
      CALL SCFOR (2, 10.0, 10.0, 35.0, 1000.0)    Sets minimum and maximum values
      CALL SCFOR (10, 2.0, 2.1, 4.0, 0.0)         Draw and label appropriate grid
      CALL EXPHVY(0, 48, 0)                       Set to plot heavy characters
      ...
      as in example 2
Figure 2a - Example Using Software Points
Figure 2b - Without full grid

III SC4020 CHARACTERS FORMED FROM VECTORS AND SUPPLEMENTARY ROUTINES

3.1 THE SOFTWARE CHARACTERS FOR THE SC4020

Introduction

The SC4020 hardware characters are limited to upper case, with no change of orientation possible during running. These hardware characters are also quite inadequate for cine work since, due to size, one character becomes indistinguishable from another when projected.

The software character set provided to overcome these limitations, gives 106 out of 128 possible characters, with only the alphabetic characters changing from one case to the other. The upper case characters correspond exactly with those provided by Atlas on the Anelex line printers for inner set.

It is a simple matter for a user to specify his own particular character (or, indeed, character set) and temporarily replace the system one. This should facilitate the production of, say, flow charts or even printed-circuit networks.

Routines

The routines divide into two main classes:-

Class I Those that employ a division of the SC4020 raster into lines and columns:

      CALL TITLEH(LABEL,K,FACTOR,KOLUMN,LINE) - for horizontal lines 
      CALL TITLEV(LABEL,K,FACTOR,KOLUMN,LINE) - for vertical lines 

Class II Those that specify an absolute SC4020 raster co-ordinate position as the centre Of the first character:

-
      CALL LABELH(LABEL,K,FACTOR,KX,KY) - for horizontal lines 
      CALL LABELV(LABEL,K,FACTOR,KX,KY) - for vertical lines 
      CALL PLOTSC(X,N,Y,FACTOR)         

For PLOTSC - X and Y may be of Real or Integer mode; N is an integer from 0-127 representing the decimal value of the Atlas Internal Code character (+64, for lower case) required to be plotted.

LABEL is the word or first word of an array containing text characters.

K is the number of successive characters to be output starting from LABEL.

FACTOR is the size of the characters, and therefore determines the number of characters per line and the number of lines per page. For example, with FACTOR equal to 1.0 the upper case characters are each contained within a square of 80 raster positions (i.e. 100 × FACTOR × 0.8). With Class I routines the next line starts 100 × FACTOR raster positions down from the previous one.

Maximum number of characters per line = 1023/100 × FACTOR × 0.8

Meximum number of lines per page = 1000/100 × FACTOR (Class I)

Meximum number of lines per page = 1023/100 × FACTOR (Class II)

Note: A carry-over into the next line or column does not occur if there is insufficient room for all the characters specified by K. Characters may also get truncated at the end of a line.

An Example with FACTOR = 1.0 is provided on the identification sheet of the output, giving upper case characters about 0.6" high on hardcopy.

KX and KY s are the absolute SC4020 raster co-ordinate position, with Y increasing downwards.

KOLUMN and LINE are the column and line to be used (counting commences at 1, not zero); the absolute position being governed by FACTOR.

Additional Features

Lower Case

In order to change from one case to another it is only necessary for an invalid card-code character (AIC = 77 octal) to be included in the string of text. Because it is possible that the tail of some lower case characters will interfere with characters on the next line using Class I subroutines should be used.

Reversal and Rotation

For a mirror-image, a call of subroutine REVERS reverses all the software characters currently in use, i.e. the system set, including those re-specified by the user.

Similarly, a call of subroutine ROTATE(N) will rotate all the software characters currently in use through N π/2 clockwise from their current orientation.

3.2 CHARACTER ALTERATION

An example is now given of changing a character to one specified by the user:-

Example: To replace the upper case * by a diamond:-

0 1 2 3 4 5 6 7 10 11 12 1 2 3 4 5 6 7 10 11 12 13 14 15 16 (octal) (octal) limit for upper case characters provided by the system limits for all characters
      PUBLIC SCFONT
      TEXT SCFONT(20, 128)
                          x y x y x y x y       Where 14 represents the
      SCFONT(1, 14) = 16B0005050005001205       decimal value of * in
      SCFONT(1, 14) = 16B1205051205120005       Atlas internal code
      SCFONT(1, 14) = 2B63
                           63 indicates the end of a character character

Each word therefore contains the start and finish points of two distinct lines, and it is possible to use up to 39 lines for any one oharaoter.

To re-establish the * (in fact, the complete set, with normal orientation), simply CALL SYSSET.

Details of two of the software characters provided, showing the amount left at sides for spacing.

3.3 A GENERAL SOFTWARE/HARDWARE CHARACTER SET

This subroutine combines the speed of the hardware character set with the flexibility of the software one in which the user can specify his own characters.

In use, CALL SHLINE(LABEL, K) will output K characters (K ≤ 128) stored as text from LABEL onwards as one line. Subsequent calls will automatically give a new line, and after 63 lines will automatically give a new page. Note that as is usually the case in HARTRAN, the text variable LABEL may be replaced by the actual characters, for example:

      CALL SHLINE(7H TEST 1,7)  

To replace particular software characters by the equivalent SC4020 hardware ones, it is necessary to include the following:-

      PUBLIC SCFONT
      TEXT SCFONT (20,128)
      ...
      SCFONT(1, M) = 2B64
      SCFONT(1, N) = 2B64
      etc

where M, N, etc., are the decimal values of the Atlas Internal Characters required as hardware ones, e.g. N = 33 for 'A'. It is possible to select alternative SC4O20 hardware characters to those provided; for example, the '+' could be replaced by ".

On each entry to the subroutine, the current typing position plus 'next line' is assumed for Y, and X is placed equal to zero. The current typing position can be altered by subroutines such as NEWLIN(I), ADVAN, TSP(X, CC, Y), etc.

Note: Class I and Class II subroutines are also affected by these changes and, therefore, should not be used until CALL SYSSET has re-established the software set.

3.4 ROUTINES PARTICULARLY USEFUL FOR CINE WORK

For cine films, a repeat of each frame 4 to 5 times is often advantageous, and subroutine ADVREP(I, N) enables up to 512 records to be repeated as many as 31 times at a cost to Atlas of outputting only 12 characters to the magnetic tape.

A further set of subroutines can produce an appreciable reduction in computing time on Atlas when each frame contains some repetative information e.g. a map or form, etc. The hardware system know as the Forms Projection feature of the SC4020 is time consuming both in the preparation of the slide and in use on the machine, but details will be supplied on request.

The set of subroutines (SAVEA, SAVEB, and USEIT), intended to provide an alternative to the forms projection, is used as follows:-

      CALL SAVEA 
      ....
      CALL VECTOR (XA, YA, XB, YB) 
      CALL SCFOR (2, -0.5, 1.0, 0.0, 3.0) 
      ....
      CALL SAVEB 

With the exception of CALL PROJFM, CALL CAM35 and WRITE (14,f) 1ist, any other of the aforementioned routines used to produce SC4020 output can be 'sandwiched' between calls of SAVEA and SAVEB.

CALL USEIT then re-outputs this information when desired.

It is believed, at the time of writing, that not all the raster is capable of being projected as a cine film, and the exact limits will be made known later.

3.5 THE SOFTWARE CHACTER SET

Figure 3 - Upper Case Set
Figure 4 - Lower Case Set

3.6 TABLE OF CHARACTERS

3.7 THE SELECTION OF ALTERNATIVE HARDWARE CHARACTERS

The user may wish to employ some of the un-used SC4020 hardware characters in place of those provided when using subroutine SHLINE(LABEL, K).

The complete set is shown below.

To change a character:-

  1. The Atlas Internal Code value of the character is obtained. For example, + is represented by the value 29 (decimal).
  2. The octal value of the new character is found from the table. For example " is 14.
  3. The decimal and octal values found are used as arguments in subroutine SHCONV.
          CALL SHCONV(29,14) 
    
    will change + to " on output using SHLINE(LABEL,K).

IV THE EXTENDED BENSON-LEHNER J SYSTEM

Please also refer to the Graph Plotter Manual for the Benson-Lehner Model J.

Some library subroutines, as well as customers' own programs are currently using the Laboratory's Benson-Lehner Model J graph plotter.

To make the change-over to the SC 4020 as easy for the user as possible, the library processing routine has been re-written. This routine automatically checks the plotter information and writes it to an IBM tape in the correct format. Only blocks of Atlas store are used by this routine as opposed to about 20 by the routines of SECTION II.

The number of different types of records has been increased in order to make full use of all the facilities offered by the SC 4020.

4.1 CONVERSION OF B-L GRAPHS ONTO THE SC4020

The advantages to B-L J users are:-

  1. A significant reduction in running time on Atlas.
  2. Graphs of better appearance due to the photographic recording method.
  3. Choice of 64 characters under program control.
  4. Ease of annotation.
  5. Choice of the standard grid (lines at every 10th plotting position on the 1024 × 1024, matrix) or no grid at all, under program control.
  6. More graphs per magnetic tape.
  7. Microfilm output.

The possible disadvantages to B-L J users are:-

  1. Smaller Y range of values and smaller actual size of graph (The limits are what would have been 10.23" × 10.23" maximum on the B-L J and this is reduced to 7.5" × 7.5" actual).
  2. Slightly reduced resolution.
  3. Only one X and one Y per record, and in that order.
  4. Symbols are different.
  5. No direct paper tape input facility.
  6. No automatic X increment.

FORTRAN PROGRAM CHANGES required for a satisfactory result.

  1. Y values must be limited to what would have given 10.23 inches on the B-L model J and not 12.5 inches. If, for example, a scale of 500 counts/inch is specified for the X, the maximum Y value should be 5115 not 6250.
  2. The standard grid occupies 10" × 10" to allow room for just two lines of printing along the top.
  3. Output only one X and one Y per record and in that order.
  4. Add a record GFINISH (on output stream 14) at the end of plotting and in addition to any GENDFILE.
  5. ENDFILE 14 should not be used.

4.2 EXTENSIONS TO THE SYSTEM

The following represent extra facilities of which users may wish to take advantage, in probable order of importance.

The new types of record which are specified by the first two characters, supplement the GI, GH, GD and GE already in use, and are as follows:-

1. GS - for the selection of a symbol set. The symbols are:

It is possible to change the arbitrally chosen symbol set whenever one wishes and as many times as desired by means of the GS record.

The digits which immediately follow the GS are the octal digits for the particular characters to be called by the codes O, 1,2...9,=,' and +.

For example

GS|00|01|02|03|04!05!06|07|10|11|40|52|20  would produce symbol set:
   0  1  2  3  4  5  6  7  8  9  -  .  +

2. GGRID

This will produce the standard mesh grid on each new frame called thereafter. This condition is assumed at the start of a job.

3. GNOGRID

Omits the grid on each new frame called thereafter.

4. GUNLINK

Will cause all free-run graphs to take on a dotted appearance thereafter. Can be used in conjunction with the Fortran subroutine OB03A which joins up any two points with a line in the free-run mode.

5. CLINK

Will restore the free-run mods to give a continuous line. This condition is assumed at the start of a job.

6. GO+ddddbl±ddddbl (d= digit 0 to 9 or a blank; bl = blank)

A record of this form, in the scale and with the origin offset of the preeceding header record, will locate the position from where printing, using the SC 4020 hardware character set, is to start. Alternatively, if there is a blank (octal 60) in the character set (code '+' in the one supplied) then an ordinary GD record with the appropriate code may be used. A composite character will result in the 1st character position if anything other than a blank is used. The GO or GD record must immediately precede the text records (7) and (8).

7. GPABCD.....π(π=-,8,3 card punch)

This record outputs a string of up to 128 characters which must be terminated by a π. These characters are then printed starting at the position specified by the GO or GD record immediately preceding it. Subsequent GT (or GV) records without a preceding GD, GO or GCRLF (9) will continue on in the next character position horizontally. Each character is contained within a rectangle 8 wide × 16 high plotting positions.

It is possible to have 128 characters per line if started at X=0.

8. GVABCD....π (π=-,8,3)

This record outputs a vertical string of characters (up to 64, if started at Y = 1023). The same conditions that apply to GT records apply in this case, except that subsequent GV or GT records without a preceding GD, GO or GCRLF will continue on in the next character position vertically unless already at Y ~ 15 when it goes back to Y = 1024 + Y -16.

9. GCRLF

This record results in a carriage-return line-feed (i.e. K = O Y= Y-16.

10. GQ

This record results in a 1ine-feed (i.e. X= X, Y=Y-16).

11. GX±ddddbl±ddddbl (in the scale and with the origin offset of preceding header record) . First part is X stop and second Y.

Produces an X axis starting at X = 0 and stopping at the X value with a vertical displacement of the Y value. (X stop > X start + 63)

12. GY±ddddbl±ddddbl in the scale and with the origin offset of preceding header record). First part is X and second Y stop.

Produces a Y axis starting at Y = 0 and stopping at the Y value with a horizontal displacemsnt of the X value. (Y stop > Y start + 63)

13. GZ±ddddbl±ddddbl (in the scale and with the origin offset of preceding header record). First and second part are X start.

Specifies the origin of axes for all subsequent GX and GY records and can be used to allow for printing scales down the left hand side and along the bottom of a grid produced using GX and GY records.

14. GFINISH

Empties the buffer. It also produces identification and the time of the Atlas clock at that point as well as putting file-marks on the tape.

15. GMICRO

Will produce all subsequent output on miorofilm as well as hardcopy.

16. GBUTT

Will cause the hardcopy frames to be expanded to approx. 8" × 8" and microfilm frames to abutt on 35 mm microfilm only.

17. GREDUCE

Will cause the normal size (7.5" × 7.5" approx. on hardcopy) to be resumed. This is the condition at the start of a job.

18. GPROJECT

Will cause the fixed data on the slide to be projected onto the current frame only. These slides have to be made specially and inserted by the operator.

19. GJ*ddddbl (dddd <31 *=blank or + sign)

This initially produces a frame advance and signals the beginning of a frame repeat sequence of 'dddd' repeats.

20. GK*ddddbl (dddd<31, and equals the number given in the GJ record).

This produces a frame advance and signals the end of a frame repeat sequence.

21. GALL

Records with no G in the 1st character position will automatically come out as lines of print, with normal Fortran carriage control. By using a GALL record, all records including those with G in the first character position will be printed although the G (or any other character) will normally be lost.

22. GW

This will produce a cut-mark on each new frame thereafter to facilitate automatic cutting of the hardcopy output into separate sheets.

Note: All these records must be output on Output-stream 14 together with the GI, GH, GD and GE records.

It is not recommended to use ENDFILE 14 since part of a graph may be lost, but instead use a GENDFILE record on output stream 14.

A 'GENDFILE' record must be output before any records with no G in the 1st charaoter position for a correct result.

To summarise, the types of records in alphabetical order are:

GALL
permits printing of all records.
GBUTT
expands the image to approx. 8" square on the hardcopy and causes microfilm frames to abutt from then on.
GCRLF
gives a carriage-return line-feed (i.e. X=0, Y=Y-16).
GD±ddddbl±ddddφ
data record (φ = blank or code character)
GENDFILE
Empties the buffer used to hold the SC4020 commands.
GFINISH
To be called at the end of plotting - gives identification and Atlas time.
GGRID
Produces a standard 10 plotting position mesh grid on each new frame thereafter.
GH±ddddbl±ddddch
Sets up origin offset, scale, paper feed and plotting mode.
GI....
Information to graph operators. Must be used for 16mm, and customers designed form slides projection work.
GJ+blblddbl (+ can also be bl)
Introduces frame repeat sequence and will initially produce a frame advance as well. (dd<31).
GK+blblddbl (+ can also be bl)
Signals end of frame repeat sequence and will produce a frame advance as well. (dd = dd in GJ record and gives the number of repeats required).
GLINK
* Gives continuous free-run graphs thereafter.
GMICRO
Produces all subsequent output on microfilm as well as hardcopy.
GNOGRID
Suppresses the standard grid on each new frame thereafter.
GO±ddddbl±ddddch
Establishes the origin for text using the hardware character set.
GPROJECT
Projects the information on the form slides on the current frame only.
GQ
Gives a line-feed (i.e. Y=Y-16).
GREDUCE
* Reduces the image on the hardcopy to approx. 7.5" square thereafter.
GSoooooooooooooooooooooooo
( c = octal digit). Selects new character set to be called by the codes 0 to 9 = ' and +.
GTABCD....π
Outputs the oharaoters ABCD ... horizontally.
GUNLINK
produoes a dotted line for all subsequent free-run graphs.
GVABCD....π
Outputs the oharacters .ABCD .... vertically.
GW
produces a cut-mark for the automatic separating of frames on hardoopy thereafter.
GX±ddddbl±ddddch
Gives rise to an X axis starting at X = 0 and stopping at the X value with a vertical deflection equal to the Y value.
GY±ddddbl±ddddch
Gives rise to a Y axis starting at Y = 0 and stopping at the Y value with a horizontal deflection equal to the X value.
GZ±ddddbl±ddddch
The X and Y values define the starting points of the X and Y axes respectively and modify all subsequent GX and GY records.
G1
* Selects the arbitrally chosen, or GS character set,
G2
* Selects a oharaoter set 0 to 9 - . and +.
G3
Selects microfilm only.
G4
* Plotting mode established for all records with a 'G' in 1st character position.

*These oonditions are assumed at the start of graphing.

4.3 S-C 4020 STANDARD CHARACTER MATRIX

Figure 6 - Standard Scientific Character Matrix

V GENERAL PURPOSE PLOTTING SUBROUTINES FOR USE WITH HARTRAN

The general purpose routines applicable to plotting in the Fortran Library have been collected into this section.

Routines OB01A to OB05A are at the moment for use with the Extended Benson-Lehner J System, and therefore should not be used with the routines of SECTION II. Similarly, routines OB06A/B/C/D/E/F and OC01A can only be used with the routines of SECTION II. The arguments of the routines in SECTION V are of Real or Integer mode depending on the initial letter of the variables.

Any user who may produce what he considers to be a useful addition to this collection, is invited to send a descriptioh of it to the Laboratory for possible inclusion in the program library.

Two other routines available whose details will be supplied on request are:-

  1. A Contour Plotter Program - R.R. Gilbert, General Electric Research Laboratory Report No. 65-RL-4007E
  2. A 3-D Plotting Program - F.M. Larkin, U.K.A.E.A. Culham

List of Subroutines

OB01A
plots points, straight lines and continuous curves.
OB02A
F(x,y)=C Function specified by tabular values.
OB03A
draws a straight line between two points.
OB04A
for drawing sections on the surface F(a,b,c )=0 which are parallel or perpendicular to the a-b plane.
OB05A
for titling graphs. Note: The size limitations and messages to the graph plotter operator noted in the above apply when these routines are used with the Benson-Lehner Model J.
OB06A
draws an arc of a circle.
OB06B
draws a circle.
OB06C
produces an arrow.
OB05D
gives an arrowhead only.
OB06E
draws an arrow at a given angle.
OB06F
produces a line of given length at a specified angle.
OC01A
plots a histogram with annotation.

Library Subroutines for use with the Extended Benson-Lehner J System

SUBROUTINE OB01A

1. Purpose This subroutine arranges output for the graph plotter, and may be called to plot points and to draw lines in either free run or long line mode. It plots lines by joining the point specified in the argument list of the subroutine to the point specified by the last call of the subroutine, provided this point was also required in a line drawing mode.

Except for the name, OB01A is identical to the subroutine PLOT written by M. Larkin of Culham. Therefore for a full description users are referred to Plasma Physics Note No. 16/62.

2. Argument List

      SUBROUTINE OB01A (x, Y, XMIN, XMAX, YMIN, YMAX, GSIZE, NLP, MODE) 

All the arguments are to be scalar variables or constants.

(X, Y) are the coordinates of the point to be plotted.

The point is plotted so that XMIN is on the extreme left of the plotting area and so that YMIN is on the bottom of the plotting area.

Scaling is done so that the maximum of (XMAX-XMIN) and (YMAX-YMIN) is equal to GSIZE inches. Therefore GSIZE should not normally exceed 12.

NLP controls new pages and new lines and must be set to -1, 0 or +1. If it is set to -1 a new page will be used. It should normally be set to 0 but if it is set to +1 and a line drawing mode is specified the point to be plotted will not be joined to the previous point.

MODE controls the type of plot, -1 is the free run mode, 0 is the long line mode and 1-12 determine which of the variety of symbols will be used to plot a single point (for example 11 is a circle and 12 a plus). If MODE is set to 13 it will be assumed that the mode is to be that of the 1ast call OB01A.

3. Printed Output The subroutine will print a message in the normal way (a) when a new page is called for, (b) if (X,Y) lies outside the rectangle defined by XMIN, XMAX, YMIN and YMAX and (c) if the mode does not satisfy -1 ≤ MODE ≤ 13.

4. General The user who wishes his graphs to be returned to him should arrange for his name to be printed out to the operator of the graph plotter by means of an information record.

This subroutine does not use common and it does not call any other subroutines.

SUBROUTINE OB02A

1. Purpose This subroutine generates the output which enables the graph-plotter to draw contours of a function of two variables of the form

    u{x,y) = uc

The function is to be specified by tabular values at the grid points of a rectangular mesh. Linear interpolation is used to locate the position where a contour crosses a box and hyperbolic interpolation to generate the co-ordinates.

2. Argument List

    SUBROUTINE OB02A (U,UC,NX,NY,HX,HY,OX,OY,NP,IDF) 

U is the two dimensional array which contains the tabular values of the function.

UC defines the contour so that U(x,y) = UC is plotted.

NX and NY are the number of distinct values of X and Y used in the tabulation.

HX and HY are the intervals in inches between successive values or X and Y in the tabulations.

OX and OX are such that the point corresponding to U(1,1) would be plotted at OY inches up from the bottom and OX inches from the left hand side of the page. The point corresponding to U(NX,NY), would therefore, be plotted OX+HX*(NX-1) inches from the left hand side and OY+HY*(NY-1) inches up from the bottom.

NP controls new pages and grid lines. It may take one of the following six values:

NP = 0 or 100   Just contours are plotted   
NP = 1 or 101   The outline of the rectangle is drawn  as well as oontours.   
NP = 2 or 102   The mesh lines are drawn as well as contours.   
NP ≥ 100     A new sheet of graph paper is called for.   

IDF defines the first dimension of the array U so that in the calling routine there would normally be

      DIMENSION U(IDF, ) 

3. Restriction The complete rectangle must fit on to the standard 10" x 12½" paper.

4. Other Subroutines Library routine OB03A is called by this subroutine.

5. Output AB well as the normal "G" output, messages will be printed if a fault is recognised. After such a message control will be returned to the calling program with NP set to -1.

6. Information record, header and end file The operator of the graph-plotter must know to whom the graphs are to be returned, and it is conventional that the first five characters of the information record shall be the job number. Therefore before calling OB02A it is essential that the user print a message having e format similar to

      FORMAT(17HGI12345bbJ.BLOGGS) 

The header record specifies one value of x and y and is incorporated in the subroutine.

The subroutine OB02A does not write an end file so it is therefore necessary that after the last call of OB02A the user writes a message in the form

      FORMAT(8HGENDFILE) 

SUBROUTINE OB03A

1. Purpose This subroutine causes the graph plotter to draw a straight line between two points. In fact it draws it in the free run mode.

2. Argument List

      SUBROUTINE OB03A (AX, AY, BX, BY, IPAGE) 

All coordinates are in inches from the bottom left hand corner of the paper.

AX and AY are the x and y coordinates of one point.

BX and BY are the x and y coordinates of the other point.

IPAGE may take the value 0 or 1. If it is zero the line will be drawn on the current sheet of paper; if it is one a new sheet of paper will be called for before the line is drawn.

3. Information record and header It is essential that the operator of the graph plotter shall know to whom the graphs are to be returned, and. it is conventional that the first five characters of the information record shall be a job number. Thererore, erore calling OB03A, the user must print a message having a format similar to

      FORMAT (17HGI12345bbJ.BLOGGS) 

The header record specifies one value of x and one value of y.

4. Points off the paper Should the line not fit onto the standard 10" x 12½" paper a suitable message will be printed. If any part of the line will fit onto the paper this part will be plotted and. an asterisk will be printed where the line has to be discontinued. Even if no part of the line can be plotted a new page will be provided if IPAGE=1.

SUBROUTINE OB04A

1. Purpose This subroutine provides output to the graph plotter to enable it to draw sections of the surface

    f(a,b,c) = 0

which are parallel or perpendicular to the a-b plane. It requires a subroutine to calculate f and its derivatives.

2. Argument List

      SUBROUTINE OB04A(Q1,Q2,Q3,P1,P2,XMIN,XMAX,YMIN,YMAX,GSIZE,NP)

All arguments are scalar variables or constants.

The X and Y directions on the graph plotter will be scaled so that

  1. The section will be drawn on an area GSIZ inches square and
  2. The point (XM4IN, YMIN) comes at the bottom left hand corner, and the point (XMAX, YMAX) comes at the top right hand corner of the square.

Q1, Q2, Q3 must be set so that the point (Q1, Q2, Q3) lies in the required section and is close to the surface.

P1 and P2 need only be set when a section perpendicular to the a-b plane is required, and then the x-axis on the graph plotter is the line joining (P1, P2, 0) to (Q1, Q2, 0) and the y-axis is the line through (P1. P2, 0) in the direction or the c coordinate. In this case the point (X,Y) on the graph corresponds to

(P1,P2,Y) ± X * (Q1-P1,Q2-P2,0)/sqrt((Q1-P1)2 + (Q2-P2)2)

When sections are drawn parallel to the a-b plane the X-Y coordinates of the graph are the a-b coordinates.

NP may be set to -2,-1, 1, 2,3 or 4.

If it is odd a new sheet of graph paper will be used and the 0x and 0y axes will be drawn together with crosses marking the corners of the plotting square.

If it is 3 or 4 a section parallel to the a-b plane will be drawn.

If it is -2, -1, 1 or 2 a section perpendicular to the a-b plane will be drawn, the negative sign being chosen in the above (X,Y) coordinate definition if NP is negative.

3. Subroutine DERIV

      SUBROUTINE DERIV (F, Q1, Q2, Q3)
      DIMENSION F(4)   

This must be provided by the user and must set

The last derivative need not be set if NP= 3 or 4.

4. Restrictions Only one branch of the curve will be drawn, and it will be the one found from the initial approximation (Q1, Q2, Q3).

As a precaution the length of plotted line will not exceed 5*GSIZE inches.

5. General Arrange for the calling program to print your name for the operator of the graph plotter by means of an information record.

DERIV is called about twenty times per inch of plotted line.

SUBROUTINE OB05A

1. Purpose This subroutine plots a graph title consisting of any of the characters in the Fortran Set on graphs produced by the graph plotter.

2. Argument List

      SUBROUTINE OB05A (X,Y,H,W,S,A,IMAX,I) 

The title to be plotted should be stored in the one dimensional array A, the characters being stored in A1 format in A(I) to A(IMAX).

X and Y are the distances of the bottom left hand corner of the first character of the title from the left hand and bottom edges of the paper.

H is the height of the characters in the title.

W is the width of the characters in the title.

S is the spacing between individual characters in the title.

X, Y, H, W and S are all measured in inches.

The initial entry to the routine should have I set to 0 which will set up the graphs of the character set. The routine will return with I set to 1. Subsequent entries to the routine should have I non-zero, as this avoids setting up the graphs again.

The characters tend to get distorted if the height and width are greater than .8 inches or less than .2 inches.

3. Other routines The routine uses a subroutine, OB05AA, whose cards are with those of OB05AA. It also calls the Library Routine ZA04AS.

4. General The size of the routine is about 11000 octal locations. It does not use common storage.

Library Subroutines for use with

Library Subroutines for use with the routines of SECTION II

Subroutines OB06A/B/C/D/E/F

1. Purpose These routines are for use in drawing diagrams on the SC 4020, and draw circles, arcs, arrows in either cartesian or polar co-ordinates, arrowheads, and lines in polar co-ordinates. (They were originally written at A.W.R.E. under the names ARC, OLE, .ARROW, HEAD, PNTR and RADIUS.)

2. Argument Lists All arguments with integer-mode names are in integer mode in the routines and the others are floating point. All variables corresponding to linear measurements are in 4020 raster units. All regular quantities are measured clockwise, from the vertical.

(a) SUBROUTINE OB06A (CX, CY, R, A1, DA) 

This draws an arc of a circle, with its centre at (CX, CY) radius R, starting at an angle A1 and being drawn through an angle DA from A1. (CX, CY) may, if desired, be outside the 4020 mesh, and A1 and DA may be negative. A diagnostic is printed if R is negative.

(b) SUBROUTINE OB06B (MX, MY, IR) 

This draws a circle centred at (MX, MY) and of radius IR. A diagnostic is printed if IR is negative.

(c) SUBROUTINE OB06C (X1, Y1, X2, Y2, H) 

This draws an arrow from the point (X1, Y1) to the point (X2, Y2) with an arrowhead at (X2, Y2). The length of the arcs forming the head is H. If, however H is specified as 0. a suitable value is selected by the routine. The subroutine calls subroutine OB06A.

(d) SUBROUTINE OB06D (X1, Y1, X2, Y2, H) 

This produces an arrowhead, and operates in the same way as C above, but without the shaft of the arrow. It can be used, for example, to produce a head on the other end of an arrow drawn by C above.

If, however, the fifth argument is specified as 0., a different format is used. The statement:

      CALL OB06D (X2, Y2, THETA, H, 0.) 

produces an arrowhead whose point is at (X2, Y2) and points in a direction THETA clockwise from the vertical.

(e) SUBROUTINE OB06E(X, Y, ANG, R, H)

This draws an arrow from the point (X, Y) of length R pointing in a direction ANG and the arc length of the arrow-head is H. Again,if H is specified as 0. a suitable value is chosen.

(f) SUBROUTINE OB06F(X, Y, ANG, R)

This draws a line from the point (X, Y) of length R in the direction ANG.

3. Restrictions For lines and arrows, both ends should be within the 4020 raster. For arcs and circles the centre may be off the raster, but if the centre of a circle is nearer the edge than its radius, part of the circle will be lost. All angular arguments may be positive or negative.

4. Other Routines Routines C, D and E above all call routine A. All the routines call SUBROUTINE VECTOR.

Subroutines OC01A

1. Purpose This subroutine plots a histogram on one frame of either microfilm, hard copy or both using the SC 4020.

2. Argument list

SUBROUTINE OC01A(A,XMAX,YMAX,XTITLE,YTITLE,NFLM,F,IA,I20) 

A is a one dimensional array of length YMAX; it is the actual height of the section of the histogram.

XMAX is the number of sections in the histogram.

YMAX is the largest value of A.

XTITLE and YTITLE are the titles to be printed along the X and Y axes respectively. These titles must be read in by the user on a card in 'A' format.

NFLM is set to 1, 2 or 3 according to whether 1: Microfilm, 2: Hard copy, 3: Both are required.

F is the field width of the numbers to be printed. The position depends upon the value given to I20.

IA is not set if 120 is set to 1.

If I20 is 2, then IA must be set to the number of intervals between the maximum and minimum Y values.

I20 is set to 1 or 2 eccording to whether printing.

1. In the sections of the histogram 
2. Along the side of the Y axis 

is required.

3. Restrictions If I20 is set to 1 then there is a restriction on the size of number which can be printed. If there are a lot of sections to the histogram then the field width is small. In general for about 20 sections F < 6 and varying according to the number of sections.

4. Output This subroutine causes no output except for the graphs.

5. Other routines SCFOR is called by OC01A.

6. General This routine does not use common storage.

ACKNOWLEDGEMENTS

The compiler of this manual would like to acknowledge the assistance given to him by the staff of A.W.R.E. Aldermaston and U.K.A.E.A. Culham in the course of preparing the software for the SC4020. In particular, the supplying of routine SCFOR and the associated notes by Miss M. U. Thomas, and ideas from Computer Organisation Notes by Dr. G.T. Jones and Mrs J. Knock all of A.W.R.E. Aldermaston.

Paul M. Nelson, Atlas Computer Laboratory, 1st September, 1967