A version of GROATS is available which produces output for the FR80 instead of the SD4020. The differences in the two microfilm recorders are such that a number of GROATS routines which simulate the SD4020 hardware will no longer be available. Dummy routines have been provided in most cases so that programs should run without too much alteration. The FR80 is capable of generating output at a variety of intensities and also in colour. Routines have been provided to allow the user to access these facilities. The other major difference between the SD4020 and FR80 is that the FR80 has several cameras and only one can be used at a time, so it is not possible to change cameras during a run. Instead, the camera must be selected before any graphical output is produced.
The changes outlined in this paper should be quite simple to implement and if done carefully, there should be no problems in converting from the old version to the FR80 one.
The GROATS macro for the SD4020 will still be available. The macro name for the FR80 system is GROATF. Therefore, a background job is run by:
RUNJOB MYFR80JOB,:NTBE34,GROATF,PARAM(*CR GRPROG),JD(JT 30SECS)
Tests on existing programs indicate that, in general, programs will tend to run slightly faster and use fewer blocks on tape. A considerable improvement in speed can be obtained if changes in intensity are produced by the new 'intensity' routine instead of overstriking using the 'dark' routine.
Users are recommended to use the spooling system. By using the parameter LARGE, it is still possible to output to a magnetic tape. However, the turnround on LARGE jobs will be significantly slower than on spooled jobs.
The size of the spool area available for each job has been doubled so that most short jobs can use the spool system without any problems. Full details of the spool system are given in a separate User Note.
On the FR80 it is necessary to output information at the start of a job before any graphical output is produced. This information defines the camera to be used and, in the case of the microfiche camera, indicates the title required on each fiche. A utility is available which allows a user to view output in the spool before it is plotted. To ensure that the user has an opportunity to do this before the job is de-spooled, a routine has been provided to delay the de-spooling.
The initialisation routines given below must be called before the call of 'identification'.
procedure select camera (i); value i; integer i;
This procedure selects the camera to be used on the FR80 as follows:
i name camera 1 16COLOUR 16mm colour - combined camera 2 16MM 16mm black & white - combined camera 3 35COLOUR 35mm colour - combined camera 4 35MM 35mm black & white - combined camera 5 16PREC 16mm cine camera 6 FICHE microfiche camera 7 HARD ONE hardcopy - single frame 8 HARDMANY hardcopy - 4 plots per frame
The combined camera will normally be used for 35mm output and colour output on 16mm. The 16mm cine camera provides a better resolution on 16mm and will be the standard camera for black and white output. Users are recommended to do all initial debugging of colour film on black and white. The turnround for colour output and 16mm black and white using the combined camera will be significantly slower than the other alternatives.
The aim will be to encourage users to produce hardcopy output at 4 plots per frame. The larger 12 inch wide paper means that each plot is still quite readable especially as the FR80 will generate finer lines. These frames can be produced significantly faster and with a significant saving of paper on the FR80 and, for this reason, this will be the standard hardcopy output. Larger plots will be allowed but turnround will probably be much slower.
procedure fichetitle (i); value i ; integer i ;
The string pointed at by i is output at the top of each fiche. This procedure is only relevant when camera number 6 is selected. Two lines of text are allowed with up to 40 characters in each line. The two lines must be separated by the characters £l.
For example:
fichetitle(pointer('one%line%title')); fichetitle(pointer('the%first%£land%second%line'));
procedure delay (i); value i ; integer i ;
If the job is using the spoo1, the output will be retained in the spool for at least i minutes to give the user a chance to view the output before it is plotted on the FR80. A schedule of when the spool will be emptied for each camera will be made available. The user should be able to ensure that he does not delay his output just past the relevant de-spooling.
The routine 'delay' is the only one that has any effect if called after 'identification'. Consequently, the user may leave his 'select camera' calls in his program as long as he adds one before the call of 'identification'.
The SD4020 has a 1024 × 1024 raster which is completely visible on all the cameras associated with it. In the case of the 16mm and 35nm cameras, it is only possible to plot on the central part of the cine image.
The FR80 has a 16384 × 16384 raster which is larger than the aperture size of any of the cameras associated with it. Consequently it is necessary for the user to plot on only a sub-region of the complete plotting area.
The GROATS system is initialised so that region 0 is equivalent to the complete FR80 plotting area. If the user does not reduce the size of region 0, it is likely that some of his output will be outside the aperture of the particular camera. The aperture sizes of the FR80 cameras are given in Appendix I.
It is recommended that the user redefines the position of region 0 immediately after the call of 'identification'. For example:
identification; limits(0,0,16383,16383); region(4096,4096,12287,12287,0); limits(0,0,10,10);
The first call of limits will set the coordinates of region 0 equivalent to the FR80 raster coordinates. The call of region will reset region 0 to the centre square of the complete plotting area.
Once this region change has been made, no further changes should be necessary as all subsequent region definitions will be in terms of region 0.
To set up region 0 to correspond to the 16mm cine image of the combined camera requires:
identification; limits(0,0,16383,16383); region(4723,5727,11661,10657,0); limits(0,0,4,3);
This will set the units of region 0 to the correct aspect ratio approximately (actually 0.7106 rather than 4/3).
The following routines have been replaced by dummy routines:
The following routines either have had their meaning changed or are completely new routines.
procedure raster length (X,Y); real X,Y;
The procedure 'raster length' is used to return to the user the length of a single raster position in each direction in his own units for the selected region. Its main use is to ensure that a sufficient number of lines are used to define a smooth curve. To avoid changing users' programs, this routine now returns the length of 16 raster positions in each direction. The actual length returned in terms of the film aperture should be approximately the same.
procedure plot hard (X,Y,INT); value X,Y,INT; real X,Y; integer INT;
This procedure plots a point at the position (X,Y) with intensity INT. The intensity INT can vary between 0 and 255. Recommended intensities will be given later. It should be possible to select 64 intensities from the 256 which increase uniformly in intensity.
procedure select colour (CLEAR,RED,MAGENTA,GREEN,YELLOW,BLUE,CYAN); value CLEAR,RED,MAGENTA,GREEN,YELLOW,BLUE,CYAN; integer CLEAR,RED,MAGENTA,GREEN,YELLOW,BLUE,CYAN;
This procedure selects the colour to be used for subsequent output. The FR80 has CYAN, YELLOW, MAGENTA and CLEAR filters. The colours BLUE, GREEN and RED can be produced by placing two filters in the optical path:
BLUE CYAN & MAGENTA GREEN CYAN & YELLOW RED YELLOW & MAGENTA
The arguments to the routine 'select colour' specify the number of times each subsequent line will be drawn with the particular filters in place. A complete range of colours can be produced by varying the number of hits defined when each filter is in place. Full details of recommended values will be given later. Initially, the user is recommended to use only the main colours defined above. Consequently, only one argument will be non-zero. For example:
select colour (0,0,1,0,0,0,0);
This will cause all subsequent output to be red in colour. It is likely that some overstriking will be necessary to get deep colours.
procedure intensity (I,J,K); value I,J,K; integer I,J,K;
For black and white output, J should be set to zero and the value of K is unused. The routine sets the intensity of all subsequent line and character drawing to I. The value of I should be in the range 0 to 255.
If J=1, the intensity I is defined for all line and character drawing when colour filter K is in place. The values for K are:
K=1 CLEAR K=2 RED K=3 MAGENTA K=4 GREEN K=5 YELLOW K=6 BLUE K=7 CYAN
For example:
intensity (200,1,3); intensity (230,1,7); select colour (0,0,2,0,0,0,0); vector (0,0,1,1); select colour (0,0,0,0,0,0,3); vector (1,1,2,2);
The first line will be MAGENTA and drawn at an intensity of 200 with 2 hits. The second line will be CYAN and drawn at an intensity of 230 with 3 hits.
The information produced on output streams 12 and 13 is now defined in terms of FR80 instructions and records. The format has changed significantly and additional output required by the operators has been inserted.
Cutmarks are not available on the FR80. Consequently, this routine has no effect.
The default setting in the SD4020 system was for frame counts to be produced. The default on the FR80 is not to generate the frame count (see definition of 'frame' in the GROATS manual).
The concept of using hardware characters, when the user requires a character size identical to the hardware size and a hardware character exists, is not quite so easy to implement on the FR80 where there is a set of hardware sizes. Consequently, all GROATS characters are now software characters. If hardware size is specified, software characters will be drawn but approximately the same size as hardware characters.
The FR80 allows a number of jobs to be put on the same magnetic tape separated by two filemarks. For this reason jobs are only allowed to use single filemarks within the job. Consequently, the routine filemarks only produce a single filemark, irrespective of the number requested.
The complete FR80 plotting area has coordinates 0 to 16383 in both the X and Y directions. Each camera is capable of photographing only part of the plotting area - the aperture plate ensures that plotting outside its bounds is not recorded. However, if output is produced over the complete area allowed by the plate, the images on consecutive frames overlap. Consequently, it is usual to restrict plotting to a least an area such that two consecutive frames abut. For 16mm and 35mm cine film, the frame area is even smaller with a gap between consecutive frames. Where appropriate, the three areas given above are defined. All images are defined within aperture by 20 raster positions to allow for errors in measurement.
Image | XWIDTH | YWIDTH | XMIN | YMIN | XMAX | YMAX |
---|---|---|---|---|---|---|
8020 Combined 35mm | ||||||
Aperture | 16383+ | 13530 | 0 | 1460 | 16383 | 14990 |
Abutment | 16383 | 12520 | 0 | 1931 | 16383 | 14451 |
Cine | 14653 | 10528 | 0 | 2928 | 14653 | 13456 |
Cine image is based on British Standard 0.866 (+.004, -.000) by 0.629 (+.004, -.000) inches
Atlas cine (image) is based on 0.868 by 0.631 both ±.002
(1 raster = 0.0000596")
8020 Combined 16mm | ||||||
---|---|---|---|---|---|---|
Aperture | 7000 | 5960 | 4720 | 5260 | 11720 | 11220 |
Abutment | 6960 | 5010 | 4740 | 5686 | 11700 | 10696 |
Cine | 6728 | 4920 | 4827 | 5731 | 11555 | 10651 |
Cine image is based on British Standard 0.402 (+.006, -.000) by 0.292 (+.006, -.000) inches
Atlas cine (image) is based on 0.404 by both 0.294 ±.002
(1 raster = 0.0000596")
8021 16mm cine | ||||||
---|---|---|---|---|---|---|
Aperture | 10230 | 8800 | 3140 | 4250 | 13370 | 13050 |
Abutment | 10190 | 7220 | 3160 | 4822 | 13350 | 13042 |
Cine | 9688 | 7086 | 3347 | 4889 | 13035 | 11975 |
Y offset by +241 raster positions to centre 16mm cine image
8060 Hardcopy | ||||||
---|---|---|---|---|---|---|
Aperture | 16383+ | 12930 | 0 | 1962 | 16383 | 14892 |
Cine | 16383+ | 11771 | 0 | 2307 | 16383 | 14078 |
Abutment | 16383+ | 12422 | 0 | 1981 | 16383 | 14413 |
1 raster unit = 0.000708
8025 105mm Microfiche | ||||||
---|---|---|---|---|---|---|
Aperture | 14000 | 16383 | 1200 | 0 | 15200 | 16383 |
Image | 13530 | 16383 | 1427 | 0 | 14957 | 16383 |