Contact us Heritage collections Image license terms
HOME ACL Associates Technology Literature Applications Society Software revisited
Further reading □ OverviewUser Note 1User Note 2User Note 3User Note 4User Note 5User Note 6User Note 7User Note 8User Note 9User Note 10User Note 11User Note 12User Note 13User Note 14User Note 15User Note 16User Note 17User Note 18User Note 19User Note 20
ACD C&A INF CCD CISD Archives Contact us Heritage archives Image license terms

Search

   
ACLLiteratureProgress ReportsFR80 User :: FR80 User Notes
ACLLiteratureProgress ReportsFR80 User :: FR80 User Notes
ACL ACD C&A INF CCD CISD Archives
Further reading

OverviewUser Note 1User Note 2User Note 3User Note 4User Note 5User Note 6User Note 7User Note 8User Note 9User Note 10User Note 11User Note 12User Note 13User Note 14User Note 15User Note 16User Note 17User Note 18User Note 19User Note 20

User Note No 5: SCSIM: Simulating the 1900 FORTRAN System for the SD4020

D V Ralphs

17 May 1975

1. INTRODUCTION

With the advent of the III FR80, all of the SD4020 graphics packages supported by ACL, needed to be converted to use the FR80. Due to a rationalisation of resources only SPROGS and SMOG would be converted to use the FR80 directly. The other graphics packages, for example, CAMP and CAMPER, and the "1900 FORTRAN System for the SD4020" (hereinafter referred to as SCFOR) have been simulated. The intention, therefore, has been to mimic SCFOR using a system designed for the FR80. After studying the results of the "FR80 Questionnaire", which was sent to all 1906A users, the vast majority of affected users appeared to be content with a system which supplies only a subset of the facilities available in SCFOR. The routines that have been left out are either those that mimic hardware functions of the SD4020 and have no counterpart on the FR80, or those routines which were not of a general nature and in the time available could not be included. If the demand is sufficient, the latter type of routine may be incorporated into the simulated version of SCFOR (referred to as SCSIM).

The co-ordinate system for SCSIM is the same as for SCFOR, that is, the SD4020 raster area (0,1023,1023,0). The SCSIM system automatically makes the conversion from these co-ordinates to the co-ordinates on the FR80. The subroutine SCFOR, options 1 to 10, has been included in SCSIM and produces very similar output to the SCFOR version. When reading the descriptions of the subroutines available in SCSIM, the user is advised to have a copy of the "1900 FORTRAN SYSTEM FOR THE SD4020" Manual as it is assumed this has been read.

One noticeable difference is that SCSIM only allows one camera per job, whereas SCFOR could use up to two. The reason for this is that the SD4020 could have the hardcopy, microfilm or both cameras mounted whereas the FR80 can only have one camera mounted at a time. The camera to be used in SCSIM must be selected before the call of IDST if other than the default camera is required. The hardcopy on the FR80 is 12 inches wide and for this reason, four 6-inch wide pictures are produced per frame instead of the 7.5 inch pictures produced on the SD4020. The advance frame orders will in this case only advance to the next quarter of a frame.

Although SCSIM does not have all the facilities of SCFOR it appears, after preliminary tests, to take less time and require considerably less core when running identical programs.

2. RUNNING SCSIM ON THE 1906A

To use SCSIM, the macro SCFR80 has been provided. SCFR80 is in :MACROS and can be used as a normal macro. For example, when logged in at a MOP console:

RUNJOB jobname,SCFR80,PARAM(parameterlist),JD(jobparameter)

would initiate a job called "jobname", using SCFR80. If running a background job from cards say, then the following card deck would be required:

JOB jobname,:username,JD(jobparameter) 
WHENEVER COMMAND ERROR, GOTO 1ERRORLABEL 
SCFR80 parameterlist
..........
1 ERRORLABEL 
ENDJOB
****

2.1 Parameters for the SCFR80 Macro

The macro SCFR80 uses the same parameter set as TASK apart from a few which were used by SC4020.FORSC4020 and a few which are peculiar to SCSIM. These are outlined below.

2.1.1 PD

If PD is given as one of the parameters to the macro the following program description segment will be used for the FORTRAN program:

LIST 
PROGRAM (SCFR) 
COMPRESS INTEGER AND LOGICAL 
ABNORMAL FUNCTIONS 
USE 14=/ARRAY 
OUTPUT 20, (MONITOR)=LP0 
INPUT 1=CR2 
OUTPUT 2=LP4 
OUTPUT 12=LP5 
OUTPUT 13 =LP6 
END

If this program description segment does not provide all that is required, the user should include the additional statements in a copy of the above.

2.1.2 BANKALL

BANLALL has no effect.

2.1.3 READ or READ filename

READ is defined as for SCFOR and assigns a file to input channel 1.

2.1.4 BIN filename

The binary program is saved in the specified fileo It can be run in a subsequent use of SCFR80 by including the parameter:

RUN filename
2.1.5 4LP

The program's output on channel 2 goes to the file SCOUTPUT.

2.1.6 #MT14 mtdescription

If this parameter is not used, the output for the FR80 will be sent to the SPOOL (see FR80 User Note 3). All jobs for a particular FR80 camera will be output from the SPOOL just before that camera is loaded on the FR80. This guarantees that those users who are using the SPOOL get a faster turnround than others. Should the user find he has an exceptionally large job or he wishes to use his own tape for re-plotting at a later date say, then the parameter is passed to the macro requesting a tape.

For a large job where the user does not wish to retain the tape, a work tape may be used, as follows:

#MT14 (?,!WORKTAPE(PRTRACK7))

If the user wishes to use his own tape (assuming he has the necessary tape budget) then a 7-track pool tape can be acquired. For example:

#MT14 (?,NEWNAME(PRTRACK7))(WRITE)

would allocate a pool tape and call it NEWNAME. The mtidentifier NEWNAME will then appear in the user's proper directory and is the name by which that tape is known.

If the user already has a 7-track tape, then the following parameter can be used:

#MT14 (serialnumber,mtname(PRTRACK7))(WRITE)
2.1.7 #??(GEORGE command)

This functions in the same way as for SCFOR and is used to issue a GEORGE command to be obeyed in COREIMAGE context just before the binary program is executed.

2.2 Checklist of Alterations from SCFOR to SCSIM

  1. Macro name has changed from :SC4020.FORSC4020 to SCFR80. There is an implied :MACROS, that is SCFR80 is the same as :MACROS.SCFR80.
  2. The following SCFOR macro parameters are not used by SCSIM, so remove them:
    LARGE,RETAIN,TREAD,MCOMP,LOAD,TTY,TAPE OL *MT,NUM,SHORELINE,DEBUG, 
    FIRST, LIBRARY, LIBRARYOL, NORUN, NORUNBIN
    
    Many of the above list have equivalent TASK parameters. Users are referred to the TASK Manual or the 1906A Reference Manual.
  3. Macro parameters with a changed function are BANKALL (which now has no effect) and PD (which accesses a default program description segment appropriate to SCSIM).
  4. If a camera other than the 16mm black and white is required, it must be selected before the call to IDST (see later).
  5. It is only possible to USE pictures, backgrounds or any other sort of constant output, that has been saved using SAVES and SAVET during the same run. The 'saving' is no longer contained within a file in the user's filestore.
  6. Before attempting to run an existing program, it is advisable to look at the consolidator listing to see if any routines are missing.
  7. Only one camera is allowed in SCSIM and it is not possible to change cameras during a run.
  8. The FR80 hardcopy will be made up of four square pictures per frame.
  9. The use of LEVEL in EDPLOT has changed - see Section 4.4.
  10. Axes are the same intensity as other lines.
  11. EXPHVY does rot alter the intensity permanently - see Section 4.1.
  12. Where vertical text is used, the characters are rotated through 90 degrees in a clockwise direction in contrast to SCFOR where the text was written in a column. Using SCSIM it is the characters themselves that are rotated as shown below: S C F O R T E X T S C S I M T E X T
  13. The macro SCFR80 calls TASK with a LINK parameter. As a result of this the compiling system statements LIBRARY and SEMICOMPILED are no longer used. To use library and semicompiled files, the parameters:
    LIB filename, SEMI filename
    
    are passed to SCFR80. For more details see the TASK Manual or the 1906A Reference Manual.
  14. The routines IDST and IDEND may be called once only, see Sections 3.3 and 3.4.
  15. The routine PWRITE is not the same as the one for SCFOR - see Section 5.2.
  16. The routine SULINE with I=1 behaves in a different manner - see Section 6.8.
  17. Characters are not centred in SCSIM as they were for SCFOR. They are plotted with their bottom left hand corner at the point {X.Y).

3. CONTROL MODE SUBROUTINES

3.1 SUBROUTINE SELECT (I)

I has values 1, 2 or 3 and selects the 16mm, hardcopy (4 pictures per frame) or 16mm cameras respectively. Note that I=3, only selects one camera.

3.2 SUBROUTINE CAM35

This selects the 35mm camera. One of the routines CAM3S or SELECT may be called once only and must be called before IDST. To aid development of programs, however, it is possible to decide when the program is running, which of the three possible cameras is required for the run. A simple example is as follows:

      READ (1 ,5) ICAM 
      FORMAT (I1) 
      IF (ICAM.EQ.1)CALL SELECT(1) 
      IF (ICAM.EQ.2)CALL SELECT(2) 
      IF (ICAM.EQ.3)CALL CAM35 
      CALL IDST

3.3 SUBROUTINE IDST

This outputs the identification frame onto the previously selected camera. If no camera has been selected, then a default of the 16mm is taken. This routine must be called before any other SCSIM routines except SELECT or CAM35. IDST can only be called once.

3.4 SUBROUTINE IDEND

This terminates a job correctly and must be called after all other SCSIM routines and once only.

3.5 SUBROUTINE ADVFLM(I)

This advances the selected camera one frame. The parameter I is not used but is left in for compatibility with SCFOR. The typing position for the new frame is left at X=80,Y=O. The frame count is output in the top left hand corner.

3.6 SUBROUTINE ADVAN

Calling ADVAN advances the selected camera one frame and sets the typing position to X=0,Y=0.

3.7 SUBROUTINE EXPAND

EXPAND has no effect on the FR80 and is, therefore, a dummy routine.

3.8 SUBROUTINE REDUCE

This is a dummy routine.

3.9 SUBROUTINE SAVES(I)

This is similar to the SAVES routine in SCFOR but the file is only saved for the duration of the run. Thus, if I is named 'FILE1' then a subsequent call of USE('FILE]') will cause the output to go to the FR80.

3.10 SUBROUTINE SAVET

Calling SAVET ends the output to file I. Note that once SAVES has been called, no output is being plotted on the FR80 and also that no call of SAVES or USE can be issued until a SAVET has terminated the first SAVES.

3.11 SUBROUTINE USE(I)

This will output the previously-saved file I to the FR80. The main use of this is where a user is outputting a set of graphs. He can save the labelling and the axes of the graph at the beginning of the run and then output this for each graph. All he requires to do now is to plot the points and output the appropriate titling.

3.12 SUBROUTINE BANKALL

This is a dummy routine and has no effect other than wasting computer time!

3.13 SUBROUTINE MOVETP(X,Y)

This moves the typing position to (X,Y).

3.14 SUBROUTINE STPTYP

STPTYP is a dummy routine.

3.15 SUBROUTINE SVSSET

SYSSET is a dummy routine.

4. PLOTTING MODE SUBROUTINES

4.1 SUBROUTINE EXPHVY(C,CC,Y)

This plots the character defined by CC, where CC is a real number in the range O≤ CC≤ 63. The values of CC are defined in Appendix 1. To simulate the heavy density of the SD4020, the character is plotted three times at point (X,Y).

4.2 SUBROUTINE EXPLGT(C,CC,Y)

This plots the character defined by CC, at the point (X,Y) once only.

4.3 SUBROUTINE SIPLOT(X.CC,Y,N)

This will plot the character defined by CC at the point (X,Y) N times.

4.4 SUBROUTINE EDPLOT(X,CC,Y,LEVEL)

This plots the character defined by CC at the point (X,Y) LEVEL times.

4.5 SUBROUTINE VECTOR(XS,YS,XF,YF)

Aline is drawn from the point (XS,YS) to (XF,YF).

4.6 SUBROUTINE GXAXIS(X,Y)

An axis is drawn from the point (X,Y) (parallel to the X-axis) to the right edge.

4.7 SUBROUTINE GYAXIS(X,Y)

An axis is drawn from the point (X,Y) (parallel to the y-axis) to the top edge.

4.8 SUBROUTINE XAXSTP(X,Y,XSTOP)

An axis is drawn from (X,Y) to (XSTOP,Y).

4.9 SUBROUTINE YAXSTP(X,Y,YSTOP)

This draws an axis from (X,Y) to (X,YSTOP).

4.10 SUBROUTINE LTHICK(N)

LTHICK is a dummy routine.

4.11 SUBROUTINE LINEBK(N)

LINEBK is a dummy routine and leaves lines unaffected.

4.12 SUBROUTINE PLOT(X,CC,Y)

This routine will plot the character defined by CC, at the point (X,Y).

5. TYPING MODE SUBROUTINES

5.1 SUBROUTINE BWRITE

This routine will output the last text string that was written to stream 14.

If the string starts with GC, a newline equivalent to 16 SD4020 rasters is produced. That is X=0,Y=Y+16.

If the string starts with GQ, a linefeed is produced. X remains the same, Y=Y+16.

If the string starts with G*, a "switch" is set from vertical to horizontal character strings or vice versa.

If the string starts with GT and finishes with $ then the enclosed characters will be output at the current typing position in a horizontal direction. The size will be equivalent to the SD4020 hardware characters.

If the string starts with GV and finishes with $ then, as for GT, but in a vertical direction.

If the string starts with GN and finishes with $, where N is an integer in the range 0≤ N≤ 9, then the enclosed string is output using software characters. The string will be output from the current typing position in a direction specified by the last setting of the "switch". The "switch" is initially set to horizontal. The size of character will depend on the value of N. The size is (N+1)*8 SD4020 rasters that is, if N=9 a character is produced that is of equal size to one produced by PLOTSC with FACTOR=1.0.

BWRITE requires the string to start with a G and have as a second character C,Q,*,T,V, or N (as defined above). If not, the string is not output. In the case of T, V, or N, if no $ is present to terminate the string then the full buffer of 158 characters will be output.

5.2 SUBROUTINE PWRITE(N)

PWRITE just calls BWRITE.

5.3 SUBROUTINE TSP(X,CC,Y)

Types the character defined by CC (see Appendix 1) at the point (X,Y). The typing position is moved forward one space.

5.4 SUBROUTINE TCP

Types a blank at the current typing position and moves the typing position one character to the right.

5.5 SUBROUTINE NEWLIN(I)

This gives I newlines, that is, the current typing position is now X=0,Y=Y+I*16.

5.6 SUBROUTINE NEWPAG

Calling NEWPAG advances the film one frame and sets the typing position to X=0,Y=16.

5.7 SUBROUTINE HORAM(X,I)

This routine prints a string of characters horizontally from the current typing position. X is the string of characters and I is the number of characters to be printed.

5.8 SUBROUTINE VERAM(X,I)

This is as for HORAM but characters are printed vertically.

5.9 SUBROUTINE C4020E(B,M,N)

This outputs B in E-type format from the current typing position. M is the field width and N is not used.

5.10 SUBROUTINE C4020F(A,K,L)

This outputs A in F-type format from the current typing position. E is the field width, L is the number of places after the decimal point.

5.11 SUBROUTINE C4020I(I,J)

This outputs I in I-type format from the current typing position. J is the field width.

6. SOFTWARE CHARACTER SUBROUTINES

These routines use the same character set as the hardware character routines but this set is of variable size.

6.1 SUBROUTINE PLOTSC(X,N,Y,FACTOR)

This will plot the character defined by N (see Appendix 1). If N is greater than 63, then N-N-64. This is because SCSIM is using the ICL 1900's 64-character set. The character is plotted at the point (X,Y) at a size governed by FACTOR. It is a linear scaling of size and when FACTOR=1.0, the character is in a square grid of 80*80 SD4020 rasters. PLOTSC(X,N,Y,0,1) is equivalent to PLOT(X,CC,Y).

6.2 SUBROUTINE TITLEH(LABEL,K,FACTOR,KOLUMN,LINE)

This will plot the character string LABEL of length K characters. The character size is governed by FACTOR as defined for PLOTSC. KOLUMN and LINE define the point at which to start plotting in the same way as for SCFOR (counting commences at 1 not zero for KOLUMN and LINE).

6.3 SUBROUTINE TITLEV(LABEL,K,FACTOR,KOLUMN,LINE)

This is the same as TITLEH except the string is plotted in a vertical direction.

6.4 SUBROUTINE LABELH(LABEL,K,FACTOR,KX,KY)

This will plot the string LABEL of length K characters at the point (KX,KY) in a horizontal direction. The size of characters is governed by FACTOR as defined in PLOTSC.

6.5 SUBROUTINE LABELV(LABEL,K,FACTOR,KX,KY)

This is as for LABELH but in a vertical direction.

6.6 SUBROUTINE SCRSET

SCRSET is a dummy routine.

6.7 SUBROUTINE SHLINE(LABEL,K)

This outputs the text string LABEL of length K. Each line of text is output at X=0 and Y is set one line down from the previous call of SHLINE. The first line is output at the top of the frame and when 63 lines have been output (a full frame) a frame advance is output and typing starts at the top of the new frame. The character size is the same as for SD4020 hardware characters.

6.8 SUBROUTINE SULINE(LABEL,K,FACTOR,I)

This routine also outputs a line of text but the size is governed by FACTOR, as defined in PLOTSC. The position of the text string is dependent on the current typing position. X is always set to zero for I=0, 1 or 2. For I=0, Y is set one line down from the current typing position. For I=1 it is as for I=0, but underline as well. For I=2, text is output at present Y value. For I=3, a suffix is put on the last line of text at character FACTOR (FACTOR=1.0,2.0 etc). For I=4, a superfix is put on the last line of text. The size for I=3 and 4 is a quarter of the height of the last call with I=0, 1, and 2. I=3 and 4 do not update the current typing position but should only be used immediately after a previous call to SULINE.

A1. CONVERSION TABLE FOR SD4020 HARDWARE CHARACTERS

Decimal
Value of
CC
SCFOR
CHAR
SCSIM
CHAR
Decimal
Value of
CC
SCFOR
CHAR
SCSIM
CHAR
0 zero zero 32 - -
1 1 1 33 J J
2 2 2 34 K K
3 3 3 35 L L
4 4 4 36 M M
5 5 5 37 N N
6 6 6 38 O O
7 7 7 39 P P
8 8 8 40 Q Q
9 9 9 41 R R
10 ? 42 Plotting dot ?
11 = = 43 $ $
12 " " 44 * *
13 ' ' 45 γ ?
14 δ ? 46 ~ ?
15 α ? 47 d ?
16 ÷ ÷ 48 Blank Blank
17 A A 49 / /
18 B B 50 S S
19 C C 51 T T
20 D D 52 U U
21 E E 53 V V
22 F F 54 W W
23 G G 55 X X
24 H H 56 Y Y
25 I I 57 Z Z
26 π ? 58 ?
27 Full stop . 59 , ,
28 ) ) 60 ( (
29 β ? 61 ?
30 ± ? 62 Σ ?
31 ? ? 63 ?

A.2 USER CALLED SCSIM SUBROUTINES

Routine
Name
Mode Argument
types
Dummy Section
ADVAN C - - 3.6
ADVFLM C I - 3.5
BANKALL C - Yes 3.12
BWRITE T - - 5.1
CAM35 C - - 3.2
C4020E T R,I,I - 5.9
C4020F T R,I,I - 5.10
C4020I T I,I - 5.11
EDPLOT P I,I,I,I - 4.4
EXPAND C - Yes 3.7
EXPHVY P I,H,I - 4.1
EXPLGT P I,H,I - 4.2
GXAXIS P I,I - 4.6
GYAXIS P I,I - 4.7
HORAM T A,I - 5.7
IDEND C - - 3.4
IDST C - - 3.3
LABELH SC A,I,R,I,I - 6.4
LABELV SC A,I,R,I,I - 6.5
LINEBK P I Yes 4.11
LTHICK P I Yes 4.10
MOVETP C I,I - 3.13
NEWLIN T I - 5.5
NEWPAG T - - 5.6
PLOT P I,H,I - 4.12
PLOTSC SC I,G,I,R - 6.1
PWRITE T I - 5.2
REDUCE C - Yes 3.8
SAVES C A - 3.9
SAVET C - - 3.10
SCFOR - I,R,R,R,R - 1.0
SCRSET SC - Yes 6.6
SELECT C I - 3.1
SHLINE SC A,I - 6.7
SIPLOT P I,H,I,I - 4.3
STPTYP C - Yes 3.14
SULINE SC A,I,R,I - 6.8
SYSSET C - Yes 3.15
TCP T - - 5.4
TITLEH SC A,I,R,I,I - 6.2
TITLEV SC A,I,R,I,I - 6.3
TSP T I,H,I - 5.3
USE C A - 3.11
VECTOR P I,I,I,I - 4.5
VERAM T A,I - 5.8
XAXSTP P I,I,I - 4.8
YAXSTP P I,I,I - 4.9

Abbreviations Used:

C    Control Mode Subroutine
P    Plotting Mode Subroutine
T    Typing Mode Subroutine
SC   Software Character Subroutine
I    Integer
R    Real
A    Character String (could be an array)
H    Real Code for Character (See Appendix 1)
G    Integer Code for Character (see 6.1)

A.3 SCSIM SYSTEM ROUTINES

ADVAN     EXPLGT      LOCIO
ADVFLM    FCHTLE      LTHICK
ASSLP     FISAV       MOVETP
ASSTLP    FLEMK       NEWLIN
BANKALL   FRBUFF      NEWPAG
BWRITE    FRCOM       NOHP
CAM35     FRCLMF      NOLP
CHHT      FRCLMT      NOTK
CHOCT     FRCLMV      OPT1
CHSP      FREC1       OPT2
COMIC     FREC2       OPT3
COPY      FREND       OPT4
C4020E    FRENTS      OPT5
C4020F    FRFLMC      OPT6
C4020I    FRFLMK      OPT7
DADVF     FRGRXY      OPT8
DCHHT     FRIGN       OPT9
DCHOCT    FRINIT      OPT10
DCHSP     FROCT       PLIMIT
DCOL      FROPMT      PLOT
DCOMIC    FRPRIN      PLOTPT
DDRWNM    FRSAV       PLOTSC
DEFBUF    FRSPL       PWRITE
DERFIN    FRTEXT      REDUCE
DFIN      FRTPLN      REGION
DFISAV    FRTP14      SAVES
DFLMK     FRTP15      SAVET
DFRSAV    FRTXT       SCFOR
DHLINS    FRTXTB      SCRSET
DHPLOT    GXAXIS      SDCLP
DHTEXT    GYAXIS      SDCORE
DHTYPE    HEADID      SDERR
DINTEN    HORAM       SDERRM
DLNSP     HPLOT       SDJBNM
DPLIM     HPLOTS      SDPRLP
DPLOTP    HTEXT       SELECT
DRAWNM    HTYPE       SETXY
DSETX     HTYPES      SHLINE
DSETXY    IDEND       SIPLOT
DSETY     IDFRAM      STFLSR
DTODX     IDINFO      STPTYP
DTODXY    IDST        SULINE
DTODY     IFRTST      SYSSET
DTOX      ISLL18      TCP
DTOXY     JSETXY      TITLEH
DTOY      JTOX        TITLEV
DUPDX     JTOY        TSP
DUPDXY    JTYPEN      TYPEN
DUPDY     JVEC        USE
DVALL     LABELH      VEC
DVEC      LABELV      VECTOR
EDPLOT    LIMIT       VERAM
ENDSMG    LIMITV      XAXSTP
ENDSPR    LINEBK      XFCHTL
EXPAND    LNSP        XTLTST
EXPHVY    LOGAND      XXNUMR
                      YAXSTP

A.4 COMMON BLOCKS

The following labelled common block names should not be defined by users in their FORTRAN programs.

COUNTF
FR80TB
SCFXX
SCFYY
SMGFR
SMGHP
SMGLP
SMGTK
SMOGC
TEXTAB

A.5 BIBLIOGRAPHY

The following ACL Manuals have been used in compiling this User Note. They should be read if a greater understanding of the system is desired.

1900 FORTRAN System for the SD4020    P M Nelson          June 1973
The 1906A TASK System                 G W Robinson        October 1973
SPROGS Manual                         R E Thomas          January 1974
SPROGS Supplement                     R E Thomas          January 1975
The 1906A Reference Manual            ACL                 December 1974
SMOG Manual                           P A Dewar           to be issued June 1975

APPENDIX TO FR80 USER NOTE 5

A W Burraston, M F Chiu

SCFOR on the RL 360/195

10 November 1975

1. GENERAL REMARK

This note may be regarded as a supplement to FR80 User Note 5 and is designed to point out differences between the implementation of SCFOR on the 360/195 and that previously documented on the 1906A. Although every effort has been made to ensure that the new SCFOR is a faithful simulation of the old, several changes have been forced on to us by the dis-similarity between the FR80 and the SC4020. These changes are listed below.

2. CHANGES TO SCFOR

2.1 Camera Selection

If the camera is selected via a call to SELECT this must be done before the call to IDST. Similariy, a call to CAM35 must precede the call to IDST. If SELECT is called with value 3, only the 16mm camera is selected.

It was felt that some users may not wish to recompile their programs but just need to Re-Linkedit them and in order that they could do this the following method of camera selection should be employed.

This method utilises a value supplied to the program via the PARM.G field of the EXEC card.

The values are as follows:

PARM.G='C=4' :  black and white 35mm camera
PARM.G='C=5' :  16mm black and white camera (default)
PARM.G='C=7' :  12" x 12" full frame hardcopy paper
PARM.G='C=8' :  6" x 6" 4 up hardcopy paper

The above method is the only one which allows the user to select the 12" x 12" hardcopy output. It also allows him to select his camera without recompiling his program. If a value other than those given above is supplied, the default camera (16m black and white) is used.

Calls to SELECT after the call to IDST are treated as Dummies.

If both a call to SELECT before the call to IDST and a value in the PARM.G field of the EXEC card are given the value in SELECT is taken.

Only one camera may be selected per run.

2.2 Changes to FR80 User Note 5

Page 14 of FR80 User Note 5 contains the conversion table for SD4020 hardware characters. Several rather special characters have been replaced by ? in this table as a result cf the 1906A's rather restrictive character set. The larger EBCDIC set of the 195 has allowed us to give these characters their correct values and so this table is now identical to that in use before.

3. JOB CONTROL

No special JCL "Procedure" is required to run SCFOR on the 360/195. To use SCFOR, the user should specify SYSLIB='SYS1.SCFOR' on the EXEC card that invokes FHCL,FHCLG,AFFHCL,AFFHACLG,FGCL or any of the relevant standard RL procedures.

FORTRAN channel 12 is used to provide the user with a lineprinter summary of the graphical processing statistics.

360 SCFOR may output FR80 graphical orders to files on any one of the following:

private magnetic tape (7-track, 556 BPI or 9-track 1600 BPI) 
disc (scratch or private datasets) 
HASP spool 

In addition, the package also outputs control information about each job [eg user's account, ID, time of day, routing etc]. The DD card information for each type of device is summarised below:

                                        DDname        Operand
HASP SPOOL  FR80 orders control         GRAPHICS      SYSOUT=(G,,code)
Disc        FR80 orders control         GRAPHICS      disc data set DSNAME,VOL,etc
Mag tape    FR80 orders control         GRAPHICS      tape VOL, DCB etc
                                        GRAPHMAN      SYSOUT=(G,,code)

code should be one of the following:

  
HCS    for 12" x 12" full frame hardcopy camera   
HCM    for 6" x 6" many up hardcopy camera   
PR16   for 16mm black and white precision camera   
BW35   for 35mm black and white camera   

It is the user's responsibility to ensure that the program and DD card specify the same FR80 output medium [for example, no check is made in SCFOR to ensure that 16mm pictures are not routed to 35mm or vice versa]. The authors hope, in time, to provide a FORTRAN-callable routine to enable code to dictate the output medium.

Example 1

To compile, load and go with a FORTRAN program driving SCFOR. Output graphics via HASP SPOOL to "many-up" hardcopy:

//ABSMOG JOB (ABCD,AB),'UHEEP' 
// EXEC FHCLG,SYSLIB='SYS1.SCFOR',CPRINT=YES,PARM.G='C=8' 
//C.SYSIN DD * 
............
FORTRAN routines
............
/*
//G.GRAPHICS DD SYSOUT=(G,,HCM) 
//G.FT12F001 DD SYSOUT=A,DCB=PRINTER 

Example 2

To compile, load and go with a FORTRAN program driving SCFOR. Output to a scratch disc dataset &&SCRA created in step I for subsequent viewing, in step 3.

[Note the required DCB for &&SCRA is catalogued as XAFRDISK]

//ABTEST JOB (ABCD,AB), 'DCOPPERFIELD' ,CLASS=X 
// EXEC PGM=IEFBR14,REGION=4K                                   step 1
//A DD DSN=&&SCRA,UNIT=WORK.30,DISP=(,PASS), 
// SPACE=(CYL,(2,1)),DCB=XAFRDISK 
// EXEC FGCLG,SYSLIB='SYS1.SCFOR',REGION.G=210K                 step 2
//C.SYSIN DD * 
...............
FORTRAN routines 
...............
/*
//G.GRAPHICS DD DSN=&&SCRA, UNIT=WORK30,DISP=(OLD,PASS) 
//G.FT12F001 DD SYSOUT=A,DCB=PRINTER 
// EXEC JOBLIB,LIBRARY='SYS1.SMOG',MEMBER=VIEW$,REGION=80K      step 3 
//G.FT14F001 DD DSN=&&SCRA,UNIT=WORK30,DISP=(OLD,DELETE)
//G.MUGWUMP2 DD DSN=MUGWUMP2,DISP=SHR 

Note Some monitoring is always produced on the lineprinter by VIEW$ (G.FT06F001 in step 3) eg intensity settings, frame advances, non-identified character etc. The output may be suppressed by inserting:

//G.FT06F001 DD DUMMY,SYSOUT= 

immediately after the EXEC JOBLIB card.

Example 3

To compile, load and go with a FORTRAN program driving SCFOR. Output is to private 7-track tape (GRAPHM). 35mm B & W film is to be produced.

//ABFILM JOB (ABCD,AB,10),WMICAWBER 
/*SETUP GRAPHM,W,TAPE7,BLP 
// EXEC FGCLG,SYSLIB='SYS1.SCFOR',REGION.G=200K,PARM.G='C=4' 
//C. SYS.IN DD ,*
............... 
FORTRAN routines 
...............
/* 
//G.GRAPHICS DD VOL=SER=GRAPHM,DISP=(,PASS),UNIT=TAPE7, 
// LABEL=(l,BLP),DCB=(XAFR80,DEN=1) 
//G.GRAPHMAN DD SYSOUT=(G,,BW35) 
//G.FT12F001 DD SYSOUT=A,DCB=PRINTER 

Example 4

To use the procedure XASDRFL to re-linkedit a load module containing the old SC4020 package routines, which will be replaced by new ones from SCFOR. JCL and SYSIN information required is very similar to that normally used in the RL standard procedure FHL (or FGL).

The member OLD4020 (not an OVERLAY program) on the catalogued dataset ULIB.XAXA is to be re-linkedited to form a new member NEW4020 (driving the FR80) on the same dataset.

//A3TRANSL JOB (AABB,CC),CHIU,CLASS=X 
//EXEC XASDFRL,LIBRARY='ULIB.XAXA',MEMBER=NEW4020
//L.SYSIN DD DSN=ULIB.XAXA(OLD4020),DISP=SHR 

Example 5

The member OLDPLOT of the dataset SURVEY is to be re-linkedited to form a new member PLOTFR80 on the dataset SCAN. Subroutines S1, S2, S3 in OLDPLOT are overlaid against each other and this overlay structure is required in the new load module.

//EXEC XASDFRL,PARM.L=='OVLY,MAP,LIST,LET'
//L.SYSLMOD DD DSN=SCAN(PLOTFR80),UNIT=DISK30, 
//  VOL=SER=XA9999,DISP=OLD 
//L.LIB DD DSN=SURVEY,VOL=SER=XA9999,UNIT=DISK30,DISP=SHR 
//L.SYSIN DD * 
INCLUDE LIB(OLDPLOT) 
OVERLAY ONE 
INSERT S1 
OVERLAY ONE 
INSERT S2 
OVERLAY ONE 
INSERT S3 
ENTRY MAIN 
/*
⇑ Top of page
© Chilton Computing and UKRI Science and Technology Facilities Council webmaster@chilton-computing.org.uk
Our thanks to UKRI Science and Technology Facilities Council for hosting this site