By design SMOG has fewer subroutines than SPROGS but all user-level SMOG routines can be "Recognised" by SPROGS. (The appearance of HTEXT, eg, in SMOG reflects this system's use of the FR80 Hardware character set).
Programs using OVERLAY should call ENDSPR in the "permanent unit" or keep all graphics routines in one OVERLAY area.
There is no COMIC mode on the Tektronix or the Hewlett-Packard. (3.4)
Text Control Routines:
Routines: Have no effect on: CHHT, CHSP, CHOCT, MONO, PROP, CHSIZE Tektronix 4010 CHOCT, MONO, PROP Hewlett-Packard pen plotter CHHT, CHSP, LNSP, CHOCT, MONO, PROP, CHSIZE Lineprinter Graphical
In all the above cases, a default value appropriate to the particular output device is used. (5.3)
File Saving: The routines FRSAV, FISAV and DRAWNM currently only have effect when output is for the FR80.
The routine RDLIB for reading stored commands has been implemented for the SPROGS package. The library file must be a SPROGS basic file for the FR80 which has been produced by using the SPROGS macro. (7.1)
Aperture 3.4 Area, addressable 3.1 Area, standard 3.4 Area, visible 3.1 Area, writing 3.1 Aspect Ratio 3.1 Character, graphic 5.1 Character, text 5.2 Cine mode 3.4 Codename, SMOG 2.1 Comic(-strip) mode 3.4 Coordinates, device 3.1 Coordinates, raster 3.1 Coordinates, user 3.3 Device, Main 2.1 Device, SMOG 2.1 Device mesh 3.1 Initialise(e)(-ation) 3.5 Mask(-ing) 3.3,3.4 Position, current plotting 4.1 Position, current typing 5.2 Problem Space 3.2 Raster 3.1 Raster coordinates 3.1 Region 3.3 Terminate(e) (-ation) 2.2
The macro :MACROS.SMOG makes use of the ACL TASK system and allows a user to compile and run a FORTRAN job together with the necessary subset of SMOG.
The macro may be entered in the following ways:
Some examples appear at the end of this Appendix.
The following parameters will be recognised by the system, the descriptions are outlines of the system's response to their presence at run time. In general, the SMOG macro will accept all parameters recognised by TASK excepting STEER and MAC. The 1906A TASK System Manual and the file :NEWS.TASK contain descriptions of all the parameters.
JT -time
time specifies the jobtime for this run. If SMOG is entered under RUNJOB (RJ) this should be included in the JD parameter.
*CR, *TR
*CR filename, *TR filename
defines the source of the program. This parameter must appear somewhere, unless the RUN parameter is used (see later). The FORTRAN source for the job is taken from the job itself or from filename.. More than one source parameter may appear, in which case the files will be compiled in order.
PD filename
defines the source of the Program Description segment. PD indicates that the user is supplying his own program description for the compiler in the file filename. Otherwise, default parameters will be used if the first source file does not begin with a set; the default program description is:
PROGRAM(SPRG) ABNORMAL FUNCTIONS COMPRESS INTEGER AND LOGICAL OUTPUT 98,(MONITOR)=LP0 OUTPUT 12=LP5 OUTPUT 13=LP6 OUTPUT 99=LP10 USE 97=/ARRAY INPUT 1,5=CR0 OUTPUT 2,6=LP9 END
This program description is held in a file called :SUBLIB.TASK-SPD.
*LP
*LP filename
identifies lineprinter channel zero. Computer output will be sent to the monitoring file or to filename. Otherwise, it is sent to a workfile.
OPT
selects the optimising FORTRAN compiler XFEH rather than XFIH.
COMP filename
sends the semicompiled program to file filename.
SEMI filename
includes semicompiled binary routines from filename during consolidation. Several SEMI parameters may be present.
LIB filename
As SEMI but the file is scanned as a library and only those segments that are required by the program are included at consolidation. Several LIB parameters may be present.
TI time
specifies the time-limit in core for execution. The default parameter is TI 30, giving 30 seconds in core.
NORUN
inhibits running of program. Of use in test-compiling or producing binary programs for later running (see RUN).
SAVE filename
copies the binary core image after consolidation into the *DA file filename, execution is not inhibited.
RUN filename
loads the consolidated binary program from file filename.
MZ number
sets maximum size of job to number. (Included in JD if under RJ).
CORE number
sets maximum core image size to number.
#CRn, #CPn, #TRn, #TPn,
#TRn filename, #CRn filename, #CPn filename, #TPn filename
sets up card and paper tape peripherals before program execution. Any number of these parameters may be present. Data are read from the job itself or from (to) file filename. The stream number is specified by n.
#LFn, #LPn filename
sets up lineprinter streams. The SMOG system may use streams 0,1,5,6 and 10. Streams 5 and 6 are not assigned by the system if devices 9, 10 or 11 are selected or if #MT14 is absent (see below). All assigned streams are listed at the lineprinter or sent to filename. The system prevents reassignment of LP5.
#DAn filename
assigns an existing DA file. If filename is that of an exofile then the system issues a GEORGE ONLINE command. Qualifiers for ordinary files should follow filename in parentheses. An example of use of a qualifier appears below.
#MTn, #MTn filename
sets up magnetic tapes or identifies files with tape channels. If filename is absent, a worktape is provided by an ONLINE command from the system. If filename is present without parentheses, the output on channel n is sent to file filename. Enclosed in parentheses, filename is interpreted as the identifier of an owned magnetic tape.
Examples:
#MT1 worktape, usually 9-track #MT1 FILE3 assigned to MT-channel 1 #MT2 (FILE4) tape named "FILE4" used on MT-channel 2 #MT2 (1021,TP21) tape number 1021, name TP21 on channel 2
To obtain a tape from pool and to reserve it as "Owned" (if the user's budget permits) the tape number specified should be ? . On encountering this the system issues the GEORGE command GETONLINE (rather than ONLINE) and the tape will be renamed.
Example:
#MT1(?,TP22)(WRITE)
obtains a pool tape, accesses it (by GETONLINE) and renames it TP22.
#MT14, #MT14 filename
prepares for FR80 tape output. The FR80 uses 7- and 9-track magnetic tapes and so the property PRTRACK7 or PRTRACK9 must be appended to the tape name when acquiring a new tape from pool. Once the tape has been labelled as "Owned" the property need not be specified. The SMOG system uses MT-channel 14 for FR80 output and the tape for this purpose must be WRITE qualified and assigned to channel 14.
Examples:
#MT14(?,TAPE23(PRTRACK7))(WRITE)
causes a 7-track pool-tape to be mounted, renames it TAPE23, flags it as owned, qualifies it for "Write" access and assigns it to MT-channel 14 in preparation for FR80 command storage. To use this tape again for FR80 output, the user need only specify its name, number or both, with or without the property:
#MT14(TAPE23)(WRITE)
is sufficient to cause the tape to be reused. Had pool-tape number 7000123 been allocated to a user in a previous run, the following parameter forms have the same effect:
#MT14 (7000123)(WRITE) and #MT14 (7000123,TAPE23(PRTRACK7))(WRITE)
To ensure the loading of a work tape with a particular property the user can specify a work tape by:
#MT14 (?,!WORKTAPE(PRTRACK9))
No tape budget is required for this but the tape is returned to the pool after plotting on the FR80. The use of work tapes for plotting jobs is not recommended. Application to the 1906A tape Librarian should secure a tape budget allowance.
NOTE the absence of the parameter #MT14 will route plotting instructions to a disc-area known as SPOOL. This area is transferred to a plotting tape at frequent intervals throughout the day and a number of users' jobs are run on the FR80. This is the fastest graphics service and is to be recommended for all short jobs (ie those generating a few frames of film or hardcopy). FR80 User Note 3 describes the SPOOL System.
#?? (string)
interprets string as a GEORGE command. For example, if a user wishes to qualify an exofile or magnetic tape accessed under the ONLINE command then the whole command statement should be within the parentheses.
Example:
#?? (OL *DA1(WRITE),(999,ZFILE))
will access the exofile ZFILE by issuing the ONLINE (OL) command and qualify it for writing.
ER, ER endstring
defines the system's action on encountering an error as follows:
MOPEJ name
This parameter is inserted by the macro if the job is initiated from a MOP terminal so as to cause a BROADCAST to the terminal when the job has finished. The user may also include this parameter to cause a BROADCAST; name is the user's MOP jobname.
EJ, EJ (list)
selects action at end-of-job. Normally the macro will EXIT. If either EJ or MOPEJ are present the macro halts:
EJ
If EJ (list) is present, however, the macro halts:
EJ list
where list is a sequence of parameters acceptable to EJ.
ENP (list)
allows additions to the parameter list accessed by the binary program. Parameters 1 and 2 are the username and jobname and are used by the system for job-identification at run-time. Thus the first parameter in list will be the third to be accessed following ENTER. These parameters may be read by PERI type 60 orders (see 1906A Reference Manual).
The SMOG system in semicompiled form exists in two files which are the last to be presented to the consolidator.
XFIH and XPCH are used to compile and consolidate the user's program unless he has selected the optimising compiler (by OPT).
Output Channels
MT14 is used for FR80 plotting tapes, DA14 for FR80 commands to SPOOL, LP0 for tracing and monitoring and LP1 for lineprinter graphics. LP5 and LP6 are used for FR80 operator instructions, TP0 for output for files to be read at the Tektronix 4010 and LP10 for output files to drive the Hewlett-Packard pen plotter.
Examples:
RJ MYJOB1, :MACROS.SMOG,PARAM(*CR JOB1IN, #MT14(?,MYTAPE2- (PRTRACK7)) (WRITE), TI20,EJ),JD(JT30,7T 1)
this job contains the FORTRAN source code in file JOB1IN and will produce commands for the FR80 on a tape from the pool which will be allocated to the user if his budget allows. Note the JD parameter.
SMOG *CR TEKIN,#TP0 TEKOUT(ALLCHAR),JT20
this job, entered at the MOP terminal, reads the file TEKIN as the source. It produces output for the Tektronix 4010 display on stream TP0 which is routed to the file TEKOUT. This can be displayed by the GEORGE command LF TEKOUT,ALL.
SMOG *CR FR80SOURCE,JT20
assuming that the job initialises a SMOG device that uses the FR80 as Main Device then output will go to the SPOOL area on disc from which it may be viewed, erased or plotted.
See FR80 User Note 3 for details of the SPOOL Viewing System.
The character codes for the selected device are loaded into an array in the COMMON block TEXTAB, (see Section 5.4) and may or may not be modified by the user. On the 1906A the 64-character set has its own internal code and this serves to index words in the array. The FR80 character set is presented below in its nine-bit octal FR80-coded form to enable substitution in the array to be performed.
1906A Character Codes
The 1906A character codes (Obviously, these codes must be incremented by unity, lying in the range (1,64) rather than (0,63) as here.) are used to index the array in the COMMON block, TEXTAB, (5.4). The table below shows the 64-character octal coding (note the order of the digits) and implicit references to characters (ie to entries in the array) by text routines (eg 5.1.1 or 5.2.7) should use the decimal equivalent number for the integer "I".
Number | Character | Number | Character |
---|---|---|---|
00 | 0 | 40 | @ |
01 | 1 | 41 | A |
02 | 2 | 42 | B |
03 | 3 | 43 | C |
04 | 4 | 44 | D |
05 | 5 | 45 | E |
06 | 6 | 46 | F |
07 | 7 | 47 | G |
10 | 8 | 50 | H |
11 | 9 | 51 | I |
12 | : | 52 | J |
13 | ; | 53 | K |
14 | < | 54 | L |
15 | = | 55 | M |
16 | > | 56 | N |
17 | ? | 57 | O |
20 | Space | 60 | P |
21 | ! | 61 | Q |
22 | " | 62 | R |
23 | # | 63 | S |
24 | £ | 64 | T |
25 | % | 65 | U |
26 | & | 66 | V |
27 | ' | 67 | W |
30 | ( | 70 | X |
31 | ) | 71 | Y |
32 | * | 72 | Z |
33 | + | 73 | [ |
34 | , | 74 | $ |
35 | - | 75 | ] |
36 | . | 76 | ↑ |
37 | / | 77 | ← |
Example of character replacement. (See Section 5.4)
To replace B by β the following coding is required:
COMMON/TEXTAB/IALPH(64) IALPH(35) = 258
The 1906A code for B is 428 = 3410 To index the array element this must be incremented by unity since FORTRAN subscripts are of the form (l,...:n) rather than (0,...n-1). The FR80 code for β with the top bit (256) set, is then inserted at location 35 in the array IALPH.
The following is a brief description of the FR80 order code sent to tape. It is by no means a complete set, but should provide all facilities required. All words consist of 6 octal digits. Orders may be one or more words long.
The first four bits define the type of commands while the lower 14 bits define an X or Y value or increment.
C | A | Formal Description | Name |
---|---|---|---|
0010 | X | CX' = X | ABSOLUTE MOVE HORIZONTAL |
0110 | DX | CX' = CX + DX | RELATIVE MOVE HORIZONTAL |
1010 | X | V(CX,CY,X,CY); CX' = X | ABSOLUTE DRAW HORIZONTAL |
1110 | DX | V(CX,CY,CX+DX,CY); CX' = CX + DX | RELATIVE DRAW HORIZONTAL |
0011 | Y | CY' = Y | ABSOLUTE MOVE VERTICAL |
0111 | DY | CY' = CY + DY | RELATIVE MOVE VERTICAL |
1011 | Y | V(CX,CY,CX,Y);CY' = Y | ABSOLUTE DRAW VERTICAL |
1111 | DY | V(CX,CY,CX,CY+DY);CY' = CY + DY | RELATIVE DRAW VERTICAL |
CX,CY represent current internal position.
The two-word commands are similar to the single-word commands but both the X and Y values can be changed.
C | A | B | Formal Description | Name |
---|---|---|---|---|
0010 | X | Y | CX' = X; CY' = Y | MOVE ABSOLUTE |
0110 | DX | DY | CX'= CX + DX; CY' =CY + DY | MOVE RELATIVE |
1010 | X | Y | V(CX,CY,X,Y); CX' = X; CY' = Y | DRAW ABSOLUTE |
1110 | DX | DY | V(CX,CY,CX+DX,CY+DY); CX' = CX + DX; CY' = CY + DY | DRAW RELATIVE |
The remaining orders will be given in their octal form, together with a description.
222000 (two words) 040000 + N N < 16383
N lines will be drawn between the next two visible lines drawn. The current position is reset to its value before Vector family was called.
235000
A point is plotted at the current position.
234000 + N or 234400 + N N 040000 + M (two words) N ≤ 255
This sets intensity N for filter defined by M, as follows.
M Colour 0 Clear 200 Red 300 Magenta 400 Green 500 Yellow 600 Blue 700 Cyan
The two-word version should be used only with colour output.
214000 (two or three words) N M
N and M specify combinations of colours, together with the number of hits required for each. If M is absent, N can define either a primary combination or a secondary combination.
If M is present, N must specify primary and M must specify secondary. The bit patterns are as follows:
N Primary M absent |
N Secondary M absent |
N Primary M Secondary |
|
---|---|---|---|
N bits | |||
0-1 | 11 | 10 | 01 |
2-5 | Blue hits | Cyan hits | Blue hits |
6-9 | Green hits | Yellow hits | Green hits |
10-13 | Red hits | Magenta hits | Red hits |
14-17 | Clear hits | 0 | Clear hits |
M bits | |||
0-1 | None | None | 10 |
2-5 | None | None | Cyan hits |
6-9 | None | None | Yellow hits |
10-13 | None | None | Magenta hits |
14-17 | None | None | 0 |
Examples
N = 610000 1 blue hit N = 400400 1 yellow hit N = 201400 3 green hits and M = 400060 3 magenta hits
Note that the first time that a given filter is selected in a frame must not occur inside a picture.
221400 or cine mode 221000 comic mode
034001
036000
000000
211000 + N or N ≤ 510 211777 (two words) 040000 + N N ≤ 16383
Character Spacing is set to N.
212000 + N or 212777 040000 + N
224000 + N or N ≤ 510 224777 (two words) 040000 + N N ≤ 16383
Character height is set to N.
210000 + N N ≤ 7
Characters are rotated through N × 45°
204400 followed by text string
204100 followed by text string
Following the above two orders, the current display position is reset to its value at the start of the order.
202000 + N N ≤ 63
This indicates the start of picture N, which will be stored internally in the FR80.
202377
This indicates the, end of the current picture definition.
202400 + N
This draws picture N.
202600 + N
This deletes picture N.
Various commands can be followed by text strings. Text is packed two characters to a word. The code used is that defined in Appendix 2, with the additional feature that all non-control codes have the 9th bit set. For example, A will be 5018 and null is 4008.
Text strings are terminated by 2038.
Newline is 2178 and backspace is 2378.
The hardware character generator makes use of the settings given by character space, etc, when drawing characters. If mono text is drawn, character space determines the distance between the left-hand-corner of one character and the left-hand-corner of the next. If proportional text is drawn, character space is interpreted as the distance between the right-hand-corner of one character and the left-hand-corner of the next.
Line space determines the distance between lines when the 217 newline code is read. New lines will not work correctly at any of the odd multiples of 45° character rotation.
Character height completely determines the size of the character. It is thus not possible to alter any aspect ratios. The basic character shape is 14 by 10.
000000 NOP 034001 Advance Frame 036000 Advance Fiche 040000 + N Continuation 100000 + N Set absolute position, next word may be Y 140000 + Y 202000 + N Define picture N 202377 End definition 202400 + N Draw picture N 202600 + N Delete picture N 204100 Mono spaced text, followed by text 204400 Proportional spaced text, followed by text 210000 + N Character rotation through N × 45° 211000 + N Character Spacing 211777 Next word gives character spacing 212000 + N Line Spacing 212777 Next word gives line spacing 214000 Next word or two words give colour 221000 Comic mode 221400 Cine mode 222000 Vector Family. Next word gives line count 224000 + N Character height 224777 Next word gives character height 234000 + N Intensity 234400 + N Intensity. Next word gives colour filter 235000 Plot point 300000 + X Set relative position, next word may be Y 340000 + Y 500000 + X Absolute vector, next word may be Y 540000 + Y 700000 + X Relative vector, next word may be Y 740000 + Y
For each SMOG device six "Standard" Visible Areas are defined and can be selected by calls to the subroutines APER, ABUT, CINE, CMAPER, CMABUT and CMCINE (Section 3.4).
The complete FR80 plotting area has coordinates 0 to 16383 in both 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 at least an area such that two consecutive frames abut.
For 16mm and 35mm cine film, the frame area defined in the British Standard is smaller than the abut image with a gap between consecutive frames. The cine image is defined so that on most projectors the outer edges of the image will not be seen. In general, this is preferable to having a blank border around the screen image. However, it may be essential for certain information to be seen. For this reason, a second British Standard image (called cine(projector))is defined which should be completely visible on all projectors. However, projectors do vary and plotting near the edge of the defined area may not be visible on some.
It is possible to use two different coordinate systems on the FR80, comic and cine. The X coordinate is measured along the film in comic mode and across the film in cine mode. The following tables give the four standard images in both coordinate systems (where applicable).
Image | XMIN | YMIN | XMAX | YMAX |
---|---|---|---|---|
8020 Combined 35mm | ||||
COMIC MODE | ||||
Aperture | 1490 | 0 | 14863 | 16383 |
Abutment | 1928 | 0 | 14438 | 16383 |
Cine | 2909 | 92 | 13457 | 14602 |
Cine (projector) | 3151 | 466 | 13215 | 14291 |
CINE MODE | ||||
Aperture | 0 | 1520 | 16383 | 14893 |
Abutment | 0 | 1945 | 16383 | 14455 |
Cine | 92 | 2926 | 14602 | 13474 |
Cine (projector) | 466 | 3168 | 14291 | 13232 |
8020 Combined 16mm | ||||
COMIC MODE | ||||
Aperture | 5220 | 4720 | 11130 | 11730 |
Abutment | 5649 | 4740 | 10649 | 11710 |
Cine | 5696 | 4832 | 10602 | 11600 |
Cine (projector) | 5763 | 5017 | 10535 | 11415 |
CINE MODE | ||||
Aperture | 4720 | 5253 | 11730 | 11163 |
Abutment | 4740 | 5734 | 11710 | 10734 |
Cine | 4832 | 5781 | 11600 | 10687 |
Cine (projector) | 5017 | 5848 | 11415 | 10620 |
8021 16mm | ||||
COMIC MODE | ||||
Aperture | 4350 | 3140 | 12920 | 13320 |
Abutment | 4821 | 3160 | 12027 | 13300 |
Cine | 4889 | 3315 | 11959 | 13067 |
Cine (projector) | 5010 | 3580 | 11838 | 12802 |
CINE MODE | ||||
Aperture | 3140 | 3463 | 13320 | 12033 |
Abutment | 3160 | 4356 | 13300 | 11562 |
Cine | 3315 | 4424 | 13067 | 11494 |
Cine (projector) | 3580 | 4545 | 12802 | 11373 |
8060 Hardcopy | ||||
COMIC MODE | ||||
Aperture | 1930 | 0 | 14835 | 16383 |
Abutment | 1990 | 0 | 14392 | 16383 |
Cine | 2058 | 0 | 14324 | 14602 |
CINE MODE | ||||
Aperture | 0 | 1548 | 16383 | 14453 |
Abutment | 0 | 1991 | 16383 | 14393 |
Cine | 0 | 2059 | 16383 | 14325 |
8025 105mm Microfiche | ||||
COMIC MODE | ||||
Aperture | 0 | 0 | 16383 | 16383 |
Image | 992 | 2392 | 15392 | 13992 |
CINE MODE | ||||
Aperture | 0 | 0 | 16383 | 16383 |
Image | 2392 | 991 | 13992 | 15391 |
The image size is chosen to prevent page overlap. As the aperture plate has rounded corners, the aperture figures given here have been measured across a diameter. A box with these dimensions will have the corners cut off. No figures are supplied for abutting on microfiche because frames cannot be abutted reliably. This is because the microfiche film is not sprocketed and so cannot be accurately registered.
The plotting area has Raster coordinates 0 to 1023 in the X direction and 0 to 779 in the Y. The three Standard areas selected by calls to APER, ABUT or CINE are:
XWIDTH YWIDTH XMIN YMIN XMAX YMAX Aperture 1023 779 0 0 1023 779 Abutment 779 779 224 0 1023 779 Cine 779 585 224 97 1023 682
The plotting area has raster coordinates 0 to 9999 in both X and Y directions. Since the Aspect Ratio can be set manually, no Standard areas have been defined for this device.
The complete plotting area has coordinates 0 to 119 in both X and Y directions. On the 1906A, characters are spaced 10 to the inch in the X direction and 6 to the inch in the Y direction.
The calling of routines APER, ABUT and CINE will give the following effects:
XMIN YMIN XMAX YMAX PAGE THROW Aperture 0 0 119 119 Yes Abutment 0 0 119 119 No Cine 0 0 69 69 Yes
The cine image size is chosen to fit the "Aperture" of a MOP terminal.
The following is a point-by-point analysis of the SMOG write-up in sections 2 to 9 of this Manual. Differences, etc, relevant to the 360 are noted and the sections are numbered accordingly.
2. The only graphical output device accessible to 360 SMOG is the FR80, but FR80 standard data format can be interpreted for other devices using VIEW$ (see JCL example below).
2.1 Routines FRCL16 to FRHCM are available, TKTRON, HPACK and LPGRAF are not.
2.2.1 (example). The FORTRAN statements LIST, MASTER and FINISH, and the references to MOP are 1906A-specific and therefore irrelevant to the 360.
3.1 No change, except that references to Tektronix 4010, Lineprinter and Hewlett-Packard pen plotter are irrelevant.
3 2-3.4 - No change.
3.5 References to Tektronix 4010, Lineprinter and Hewlett-Packard are irrelevant. The routine DVALL is not available; to choose a camera at run time (for no extra cost in core requirement), the initialisation call must be made to the routine FR80ST(I) where I may take any one of the values 1 to 8 inclusive (as defined in section 2.1). The dummy routines NOTK NOHP and NOLP are never needed.
4. No change, except that references to Tektronix 4010, Lineprinter or Hewlett-Packard pen-plotter are irrelevant.
5.1 No change.
5.2 (The 'NB' references to COMPRESS INTEGER mode and PD are ICL 1906A - specific and irrelevant to 360 use).
5.3 No change, except for:
5.3.9 NLCHAR('S') A call to this routine will set the single character string "S" to the newline character in addition to the existing EBCDIC newline character. Calling NLCHAR with an argument of -1 will reset "S" to its original state. Analogous routines for backspace, carriage return and linefeed are also available and behave in a way similar to NLCHAR. They are BSCHAR('S'), CRCHAR('S') and LFCHAR('S') respectively.
5.4 Table 1 in this Appendix shows the internal codes of EBCDIC characters plus the positions in the EBCDIC table of extra FR80 characters. The FR80 codes are mapped onto the array in the COMMON block /TEXTAB/LTEXT(256) where LTEXT is LOGICAL*1. Recognised control characters have bit 9 (the left most bit) set to zero as they are translated to FR80 code.
As upper and lower case letters are already available in the EBCDIC table, it is not envisaged that the user will have much need to alter /TEXTAB/.
6.1,6.2 No change
6.3 No change, except for:
6.3.8 FLEMK The characteristics of IBM magnetic tape filemarks depend on the mode in which the tape has been labelled. Users are advised to consult ACL Program Advisory Office before using this routine.
6.4 For graphics "production" work (as opposed to program development) the user is encouraged to use the SPOOL System described below (under JOB CONTROL) wherever possible. The 360 (HASP) SPOOL is similar in function to the 1906A graphics SPOOL.
The SPOOL is not recommended for very large amounts of graphical output (eg movie films of several minutes duration).
For the purposes of testing and "de-bugging" a program that uses SMOG, the user will probably prefer to route his graphical orders to disc and inspect them using VIEW$ to produce MUGWUMP files (see JOB CONTROL Example 2, below). The program HRMUG (see ELECTRIC Users Handbook) can be used to convert MUGWUMP files to FR80 output, albeit with some deterioration in quality.
6.4.1-6.4.2 DELAY(I) and ERASE At the time of writing (June 1975), the possibility of user inspection of the HASP spool is still under investigation. DELAY and ERASE will therefore have no effect at present.
6.4.3 TOPRIN(X) If this routine is called with X = 1.0, FR80 orders will be printed in hexadecimal (Z6 Format) each time the output buffer is emptied. [The inspection program, VIEW$ contains an option for printing the FR80 orders symbolically together with argument values etc.]
7.1.4 However, users should consult the relevant 360/195 SPROGS literature before attempting to use the features of subroutine RDLIB.
7.2 No change.
8.1 When run on the 360/195 with essentially "graphics-driven" programs, the SMOG System occupies about 50K bytes in core and is link-edited in about 1 second.
8.2 (Example) No change, except that reference to the Tektronix 4010 as a direct output device is irrelevant (see "General Remarks" above).
9. No change.
No special JCL "Procedure" is required to run SMOG on the 360/195. To use SMOG, the user should specify SYSLIB='SYSI.SMOG1 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 SMOG 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 GRAPHICS SYSOUT=(G,,code) control Disc FR80 orders GRAPHiCS disc data set DSNAME,VOL,etc. control Mag Tape FR80 orders GRAPHICS tape VOL, DCB etc control GRAPHMAN SYSOUT=(G,,code)
code is a 3- or 4-character identifier specifying the FR80 output medium to be employed. The identifier is obtained from the list in Section 2.1 of this manual by removing the letters FR from the SMOG codename. For example CL16 for 16mm colour film and HCS for 12"×l2" full-frame hardcopy.
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 SMOG 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 SMOG. Output graphics via HASP SPOOL to "many-up" hard copy
//ABSMOG JOB (ABCD,AB),'U.HEEP' // EXEC FHCLG,SYSLIB='SYS1.SMOG',CPRINT=YES //C.SYSIN DD * ........ FORTRAN routines .......... /* //G.GRAPHICS DD SYSOUT=(G,,HCM) //G.FT12F001 DD SYSOUT=A
Example 2
To compile,load and go with a FORTRAN program driving SMOG. Output to a scratch disc dataset &&SCRA created in step 1 for subsequent viewing, in step 3.
[Note the required DCB for &&SCRA is catalogued as XAFRDISK]
//ABTEST JOB (ABCD,AB),'D.COPPERFIELD1,CLASS=X // EXEC PGM=IEFBR14,REGION=4K step 1 //A DD DSN=&&SCRA,UNIT=WORK30,DISP=(,PASS), // SPACE=(CYL,(2,1)),DCB=XAFRDISK // EXEC FGCLG,SYSLIB='SYS1.SMOG',REGION.G=210K step 2 //C.SYSIN DD * ........... FORTRAN routines .............. /* //G.GRAPHICS DD DSN=&&SCRA,UNIT=WORK30,DlSP=(OLD,PASS) //G.FT12F001 DD SYSOUT=A // 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
NB Some monitoring is always produced on the lineprinter by VTIEW$ (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=
Example 3
To compile,load and go with a FORTRAN program driving SMOG. Output is to private 7-track tape (GRAPHM). 35mm colour film is to be produced.
//ABFILM JOB (ABCD,AB,10),'W.MICAWBER' /*SETUP GRAPHM,W,TAPE7,BLP // EXEC FOCLG,SYSLIB='SYS1.SMOG',REGION.G=200K //C.SYSPRINT DD * .......... FORTRAN routines ........... /* //G.GRAPHICS DD VOL=SER=GRAPHM,DISP=(,PASS),UNIT=TAPE7, // LABEL=(1,BLP),DCB=(XAFR80,DEN=1) //G.GRAPHMAN DD SYSOUT=(G,,CL35) //G.FT12F001 DD SYSOUT=A
[Note that the required DCB for tape is catalogued as XAFR80. DEN=1 specifies recording at 556 BPI.]
ABUT 3.4.2 ADVFLM 6.3.5 APER 3.4.1 CHHT 5.3.1 CHOCT 5.3.11 CHSIZE 5.3.6 CHSP 5.3.3 CINE 3.4.3 CMABUT 3.4.5 CMAPER 3.4.4 CMCINE 3.4.6 COLGL 6.1.3 COLOR 6.1.2 COLOUR 6.1.1 COMIC 3.4.7 DELAY 6.4.1 DRAWNM 7.1.3 DVALL 3.5.5 ENDSPR 6.3.7 ERASE 6.4.2 FCHTLE 6.3.3 FISAV 7.1.2 FLEMK 6.3.8 FRBW16 2.1, 3.5.2 FRBW35 2.1, 3.5.4 FRCL16 2.1, 3.5.1 FRCL35 2.1, 3.5.3 FRHCM 2.1, 3.5 FRHCS 2.1, 3.5 FRMFCH 2.1, 3.5 FRPR16 2.1, 3.5 FRSAV 7.1.1 HFICHE 6.3.6 HFONT 6.3.2 HGRATX 4.1.10 HGRATY 4.1.11 HLINES 5.3.7 HPACK 2.1, 3.5 HPAGE 5.3.8 HPLOT 5.1.1 HPLOTS 5.1.2 HPLOTZ 9.2.4 HSPEED 6.3.5 HTEXT 5.2.1 HTYPE 5.2.7 HTYPES 3.2.8 INTNST 6.1.1 JCHSIZ 5.3.6 JCOLOR 6.1.2 JDRAWN 7.1.3 JFRSAV 7.1.1 JINTNS 6.2.1 JLIMIT 3.4.8 JLIMS 3.4.10 JLIMV 3.4.9 JREGON 3.3 JSETX 4.1.4 JSETXY 4.1.1 JSETY 4.1.5 JTODX 4.2.4 JTODXY 4.2.6 JTODY 4.2.5 JTOX 4.1.6 JTOXY 4.1.2 JTOY 4.1.7 JTYPEN 5.2.10 JUPDXY 4.2.3 JUPDY 4.2.2 JVEC 4.1.3 JVECFM 4.1.9 JVECFR 4.2.8 LIMIT 3.4.8 LIMITS 3.4.10 LIMITV 3.4.9 LNSP 5.3.2 LPGRAF 2.1, 3.5 MANYUP 6.3.1 MONO 5.3.4 NLCHAR 5.3.9 NOFR 3.5.6 NOHP 3.5.8 NOLP 3.5.9 NOTK 3.5.7 PLOTPT 5.1.3 PROP 5.3.5 RASTER 3.4.11 RDLIB 7.1.4 REGION 3.3 SETX 4.1.4 SETXY 4.1.1 SETY 4.1.5 TKTRON 2.1, 3.5 TODX 4.2.4 TODXY 4.2.6 TODY 4.2.5 TOPRIN 6.4.3 TOTAPE 6.4.4 TOX 4.1.6 TOXY 4.1.2 TOY 4.1.7 TYPNB 5.2.9 UPDX 4.2.1 UPDXY 4.2.3 UPDY 4.2.2 VEC 4.1.3 VECFAM 4.1.9 VECFAR 4.2.8 XMLTIM 8.3
A ABUT ANAME APER ARCA ARCB ARCR ARCS AROWHR AROWVR ASSLP ASTLP AXESA B BOXA BOXR C CIRCLA CIRCLE CIRCLR CIRCLS CHHT CHOCT CHSIZE CHSP CINE CLCODE CMABUT CMAPER CMCINE CMHSTA COLGL COLOR COLOUR COMIC CUBER CVFNCA CVFNCB CVFNCR CVFNCS
D DADVF DCHHT DCHHT DCHOCT DCHSP DCOL DCOMIC DDRAWNM DEFBUF DELAY DERFIN DFIN DFISAV DFLMK DFRSAV DHLINS DHPLOT DHTEXT DhTYPE DINTEN DLNSP DPLIM DPLOTP DRAWNM DREAD DSETX DSETXY DSETY DTODX DTODXY DTODY DTOX DTOXY DTOY DUPDX DUPDXY DUPDY DVALL DVEC DVECF DVENTS DYREAD
E ELLPSA ELLPSB ELLPSR ELLPSS ENDSPR ERDRZ EXPANZ ENDSPR ERDRZ EXPANZ F FCHTLE FISAV FLEMK FR80ST FRBUFF FRBUFT FRBW16 FRBW35 FRCL16 FRCL35 FRCLMF FRCLMT FRCLMV FRCOM FREC1 FREC2 FREND FRENTS FRFLMC FRFLMK FRFLMQ FRHCM FRHCS FRIGN FRINIT FRMFCH FROCT FROAMT FRPR16 FRPRIN FRSAV FRSPL FRTEXT FRTPLN FRTP15 FRTXTB FRVECF
G GRAFRG GRAFT GRANGE GRAPH GRATA GRATIK GRSCAL H HEADID HFICHE HFONT HGRATX HGRATY HLINES HPACK HP AGE HPEND HPLOT HPLOTS HPLOTZ HPSEG HPSPLT HPST HPTDXY HPTEXT HPTOXY HPUDXY HPVEC HPVECF HPVECT HSPEED HSTGMA HTEXT HTYPE HTYPES I IDFRAM IDINFO IFRTST IHPICH INTNST ISLL18
J JCHSIZ JCOLOR JDRAWN JFRSAV JINTNS JLIMIT JLIMS JLIKV JREGON JSETX JSETXY JSETY JTODX JTODXY JTODY JTOX JTOXY JTOY JTYPEN JUPDX JUPDXY JUPDY JVEC JVECFM JVECFR L LIMIT LIMITV LNSP LOGAND LOGIC LPCOM LPGOUT LPGRAF LPGST LPGVEC LPSZAB LPTDXY LPTEXT LPTOXY LPVECF M MANYUP MONO
N NLCHAR NOFR NOHP NOLP NOLPG NOTK P PLIMIT PLOTPT PROP R RASTER RDFRCH REGION ROTANZ ROTAXZ S SCALA SDCLP SDCORE SDERR' SDERRM SDJBUM SDPRLP SETSIZ SETX SETXY SETXYZ SETY SMOVG
T TITLAB TKADVF TKINIT TKPLNT TKSTXY TKSXYX TKTDXY TKTOXY TKTRON TKTXYX TKUPXY TKVEC TKVECF TKVECX TODX TODXY TODXYZ TODY TOPRIN TOTAPE TOX TOXY TOXYZ TOY TXTURA TYPNMB
U UPDX UPDXY UPDXYX UPDY VEC VECFAM VECFAR VECTOR VECZ X XERROR XFCHTL XMLTIM XTLTST XXNUMR Z ZPROT ZROT ZVIEW ZVIS ZXPAN
SMOGC SMGFR SMGTK SMGHP SMGLB SMGCT TEXTAB