A graphical font has been designed to aid the production of graphics where bold text is required. In the standard fonts the characters consist of single lines and when used for large text these lines become relatively very thin. Sometimes, when projecting film, the characters are nearly invisible. In the case of the blocked font, when the characters are enlarged a greater area is shaded but at the same density as the smaller characters. For example, if the shading is at ten raster intervals when a character is four hundred rasters, it will still be at ten raster intervals if the character is four thousand rasters.
The blocked font is available to users of the SMOG graphics package and is intended for use with the FR80. It is designed to produce output which is both efficient from a system point of view and yet easy to use from user point of view. The routines can be called from either "region 0" or "region 1" of SMOG although if using "region 1" some care has to be taken with regard to the character size but this is explained in more detail later.
Initially each character is defined in a rectangle 40 units by 40 units, called the defining rectangle, but no character uses the right quarter of the rectangle as this is used for spacing. Each unit is set to ten rasters, thus an "A" is 300 rasters wide by 400 rasters high with a space of 100 rasters when plotted in a text string at the default size.
The subroutine arguments follow the usual FORTRAN conventions, that is X is a real and N is an integer. There are four user routines and their functions are described below.
(1) WRIGHT(X,Y,TEXT,N)
This routine plots the first N characters from the string of characters TEXT starting at the point (X,Y). It is possible to alter the meaning of (X,Y) but see the routine WANGLE for more details.
(2) WCHFAC(XF,YF)
XF and YF are the expansion factors in the x and y directions respectively. If called whilst in region zero then they are factors of the "defining rectangle", for example, XF = 1.5 and YF = 2.0 will set the characters to 60 units by 80 units, of which at least the last 15 units in the X direction are used for spacing. If WCHFAC is called whilst in region one then XF and YF are in the user's coordinates and specify the size of the characters. For example, if using the "cine" area with limits (0.0,0.0,10.0,10.0) and letting XF = 2.5 and YF = 2.0 then the characters will be a quarter of the "cine" area wide by a fifth high. When working in region one, or even region zero, it is advisable to ensure that the characters are not reduced below about 20 units as some of them start to break up at about this size. All subsequent calls to WCHFAC work on the original definition of the "defining rectangle".
(3) WANGLE(XROT,YROT,DEG)
The routine WRIGHT initially plots characters starting at the point (X,Y) in a horizontal direction. WANGLE specifies a rotation about the point (XROT,YROT) by DEG degrees in a clockwise direction. Thus all subsequent calls of WRIGHT plot text at an angle DEG degrees starting at the point (X',Y') where:
X' = XROT + (X-XROT) cos DEG + (Y-YROT) sin DEG Y' = YROT - (X-XROT) sin DEG + (Y-YROT) cos DEG
WANGLE always works on the initial horizontal orientation and is not incremental in nature; hence setting DEG = 0.0 returns the text to the normal orientation.
(4) WTHICK(NRASTS)
The blocks that the characters are built up on are sets of parallel lines, each line is drawn one unit away from the next. As stated in the introduction these units are set to ten rasters, which just happens to be the average line width on the FR80. The line width is dependent on the type of film being used and it may be necessary to adjust the gap between the lines. NRASTS ill set a new unit size to be NRASTS rasters. This routine has one major disadvantage, it adjusts the character sizes in sometimes unexpected ways and should not be used unless absolutely necessary.
It is assumed that a potential user is familiar with the SMOG and TASK systems on the 1906A. To include the blocked character font into a SMOG program one adds the parameter LIB:GRAFLIB.GRAFLIB to the parameter list passed to the macro. In the example program, see below, text is:
(a) plotted at the default size and orientation
(b) rotated and
(c) expanded.
The program can be found in the file :GRAFEX.FATLETEX1 and the job to run it was submitted whilst logged in by the following command:
SMOG *CR:GRAFEX.FATLETEX1, LIB: GRAFLIB.GRAFLIB,JT20,*LP,#LP6
A listing of the source is shown below together with the FR80 output that was produced.
LIST MASTER EX1906A DIMENSION ISTR(5),STR(2) C C INTEGER ARRAYS PACK TEXT AT FOUR ·CHARACTFRS PER WORD. C REALS ARE DOUBLE WORDS HENCE EIGHT CHARACTERS PER ARRAY FLEMENT. C DATA ISTR/'THE','STAN','DARD',' SIZ','E'/ DATA STR/'+45 DEGS','-45 DEGS'/ C SELECT HARDCOPY CALL FRHCS C C WORK IN REGION ZERO FOR F RST PHRASE CALL REGION (0,0) C-OUTPUT FIRST TEXT ALONG THE TOP OF THE FRAME CALL WRIGHT (5000.0,13000.0,0,ISTR,17),ISTR,17) C--NOW FOR SOME FANCY ANGLES! CALL WANGLE (7000.0,7500.0,45.0) CALL WRIGHT (5400.0,7500.0,STR(1),8) CALL WANGLE (11O000.0,7500.0,-45.0) CALL WRIGHT (9400.0,7500.0,STR(2),8) C--AN EXAMPLE USING REGION 1 CALL WANGLE (0.0,0.0,0.0) CALL CINIE CALL REGION (1.0) CALL LIMITV (O0.0,0.0,8.0,8.0)) C ADJUST CHARACTER SIZE TO SUIT USER COORDINATES CALL WCHFAC (1.0,1.0) C NCOW OUTPUT TEXT CALL WRIGHT (2.5,5.5,'BOLD,4) C TERMINATE PLOTTING CALL ENDSPR STOP END ****
When using SMOG on the 360/195 access to the blocked character font routines is automatic as they are in the library SYS1.SMOG. This means that the standard JCL required for SMOG does not need changing, all that is needed to access the font are calls to the relevant routines in the program.
The example program in this section serves two purposes, firstly it shows how to use the blocked font and secondly it shows which of the 195 character set have been included in the font. The table produced is incremental by row, thus, the hexadecimal representation of a character is obtained by: locating the character in the table, the code to the left providing the first digit and the code along the top giving the second digit, for example, an 'A' is represented by the code C1.
The program plus the relevant JCL is stored in ELECTRIC as file 3RMATNDR.FATLETEX (DR). When executing the file there are three possible parameters that may be passed to it and these are:
Parameter Function Default PH Destination(Pigeon Hole) XA JBNM Jobname (1-6 chars) MPLE USER User EXAMPLE
These parameters are PLANTed in the appropriate place in the JOB card when the file is executed. If logged in to ELECTRIC, the following could be used to execute the program:
PARM JBNM = idTEST, USER = ME EXEC FL = 3RMAINDR.FATLETEX(DR)
Remember to add a PH parameter if the output is not destined for Atlas.
/*PRIORITY 12 //XAMPLE JOB (ACCT, ID,0-05) ,EXAMPLE // EXEC F1CLG,SYSLIB='SYS1.SMOG',CPRINT=YES,REGION.G=210K //C.SYSIN DD * C THIS EXAMPLE PROGRAM IS TO ILLUSTRATE WHICH CHARACTERS ARE AVAILABLE C FROM THE COMPLETE 195 CHARACTER SET. ALL 256 CHAR CODES ARE PASSED C TO THE WRIGHT ROUTINE AND ONLY THOSE THAT ARE AT PRESENT CODED WILL C BE PLOTTED THE OTHERS WILL PRODUCE A SPACE C C SELECT THE HARDCOPY CAMERA AND SUITABLE LIMITS C CALL FRHCM CALL ABUT CALL LIMITV (1.5,-0.5,16.5,17.5) CALL WCHFAC (1.0,0.75) C FIRST FOUR CHARS ARE SET UP AND UPDATE MASK IS INITIALISED ICHAR=(256+2)*256+3 MUPDT=((4*256+4)*256+4)*256+4 C OUTPUT 16 LINES OF CHARS DO 1 I= 1,16 Y=16.125-I C OUTPUT 4 CHARS 4 TIMES FOR EACH LINE DO 2 J=1,4 X=(J-1)*4.0+0.125 CALL WRIGHT (X,Y,ICHAR,4) C UPDATE TO NEXT FOUR CHARS, IGNORE OVERFLOW ON LAST TIME THROUGH ICHAR=ICHAR+MUPDT 2 CONTINUE l CONTINUE C PUT A GRID AROUND THE CHARACTERS CALL HGRATX (0.0,0.0,16.0,16.5,16) CALL HGRATY (-0.5,0.0,16.0,16.0,16) C ANNOTATE GRID CALL RIGHT (0.125,16.25,'0123456789ABCDEF', 16) CALL WCHFAC (0.76,1.0) CALL WANGLE (-.875,15.875,90.0) CALL WRIGHT (-.875,15.875,'0123456789ACDEF',16) C TERMINATE PLOTTING CALL ENDSPR STOP END /* //G.GRAPHICS DD SYSOUT=(G,,HCM) //G.FT12F001 DD SYSOUT=A,DCB=PRINTER
The basic aim of the blocked character font is to provide users with a character set that can be used for film titling. In fact wherever bold text is required, the font should be relatively easy to use but at the same time will utilise the resources in an efficient way. The present stage of development is biased towards the 1906A in that only the 64 characters at the 1900 lineprinter set have been coded. These 64 characters have been set up in the relevant character positions on the 360/195.
Using the font it is possible to rotate the text, expand the text and to squash or stretch the characters. The possible future developments are at the very least extending the set to include lower case letters providing adjustable and proportional spacing, italics and many more. The author would be very grateful for any suggestions for enhancements and improvements.
One final piece of advice, it is best to check the layout first by outputting to "many-up" hardcopy and then when it is correct moving on to the desired film type.
Routine Type WANGLE User CIFAC User WDCODE System WFLERR System WPLOTC System WRIGHT User WSEMI System WSIZE System WTHICK User WVFXPL System WVFXRC System WVFYPL System WVFYRC System