Contact us Heritage collections Image license terms
HOME ACL Associates Technology Literature Applications Society Software revisited
Further reading □ Introduction and contents2. The SMOG system3. Mapping to a device4. Line drawing5. Text printing6. Control of the medium7. Command-sets in files8. Economy - Integer routines9. High level routines10. Appendices11. Manual updates
ACD C&A INF CCD CISD Archives Contact us Heritage archives Image license terms

Search

   
ACLLiteratureICL 1906A manualsSMOG
ACLLiteratureICL 1906A manualsSMOG
ACL ACD C&A INF CCD CISD Archives
Further reading

Introduction and contents
2. The SMOG system
3. Mapping to a device
4. Line drawing
5. Text printing
6. Control of the medium
7. Command-sets in files
8. Economy - Integer routines
9. High level routines
10. Appendices
11. Manual updates

10. APPENDICES

10.0 GENERAL INFORMATION AND ADVICE

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)

10.1 DEFINED TERMS: SECTION IN WHICH FIRST USED OR IN WHICH DEFINED

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
         

10.2 THE SMOG MACRO-INSTRUCTION ON THE ACL 1906A

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:

  1. under the GEORGE command OBEY (OB),
  2. by issuing the command SMOG,
  3. under RUNJOB (RJ). (See the 1906A Reference Manual).

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:

  1. if absent TASK executes endtask,
  2. if present, but without endstring, TASK executes endcall
  3. if endstring is present, then it is executed or obeyed as a macro.

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.

10.3 SMOG CHARACTER CODES

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.

FR80 Character Codes

FR80 Character Codes
Full image ⇗
© UKRI Science and Technology Facilities Council

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.

10.4 FR80 ORDER CODE - A SUBSET

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.

03 C 417 A Single-word C A Two-word 03 0001 417 B
FR80 Instructions

Vector Drawing: Single-Word Commands

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.

Vector Drawing: Two-word Commands

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.

Vector Family

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.

Point Plot

235000

A point is plotted at the current position.

Intensity

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.

Colour

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.

Camera Mode

221400 or    cine mode
221000       comic mode

Advance Frame

034001

Advance Fiche

036000

No Operation

000000

Character Space

211000 + N or   N ≤ 510
211777          (two words)
040000 + N      N ≤  16383

Character Spacing is set to N.

Line Space

212000 + N or  212777
040000 + N

Character Height

224000 + N or   N ≤ 510
224777          (two words)
040000 + N      N ≤ 16383

Character height is set to N.

Character Rotation

210000 + N      N ≤ 7

Characters are rotated through N × 45°

Character String, proportional spacing

204400         followed by text string

Character String, mono spacing

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.

Picture Definition

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.

Draw Picture

202400 + N 

This draws picture N.

Delete Picture

202600 + N 

This deletes picture N.

Text String

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.

Text Interpretation

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.

Order Summary

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   

10.5 DEVICE MESSAGES AND IMAGE SIZES

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).

Y X A Y X B Y X C COMIC Y X A Y X B Y X C CINE
Comic and Cine coordinate systems
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

Cine image on 35mm with CINE mode coordinate system

Cine image on 35mm with CINE mode coordinate system
Full image ⇗
© UKRI Science and Technology Facilities Council

Cine image on 8021 16mm camera with CINE mode coordinate system

Cine image on 8021 16mm camera with CINE mode coordinate system
Full image ⇗
© UKRI Science and Technology Facilities Council

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.

Tektronix 4010: SMOG device 9

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

Tektronix 4010

Tektronix 4010
Full image ⇗
© UKRI Science and Technology Facilities Council

Hewlett-Packard Pen Plotter: SMOG device 10

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.

Lineprinter Graphical: SMOG device 11

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.

10.6 SMOG ON THE RL 360/195

GENERAL REMARKS

  1. As implemented on the 360, SMOG produces graphics orders on tape, disc or SPOOL in FR80 standard data format.
  2. No graphic orders other than those for the FR80 are produced by 360 SMOG, though the output on tape or disc may subsequently be processed by an interpreting program called VIEW$ for examination by any MUGWUMP-supported device.
  3. Text strings as handled by the user are in EBCDIC, the translation to FR80 code being effected at the very lowest level in SMOG. Manipulation of the COMMON block /TEXTAB/ should very rarely be necessary since on the 360, this block is the same size as the corresponding FR80 character table.
  4. Documentation for detailed use of VIEW$ is available from ACL Resource Management on request. However, most users should find that all they require is already described in the JCL examples below.

DETAILS OF 360 SMOG

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.

JOB CONTROL

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.]

TABLE 1 - EBCDIC  CHARACTER TABLE  INCLUDING FR80  GRAPHICS

TABLE 1 - EBCDIC CHARACTER TABLE INCLUDING FR80 GRAPHICS
Full image ⇗
© UKRI Science and Technology Facilities Council

10.7 SMOG SYSTEM SUBROUTINES

A.7.1 User-level routines with section references

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.7.2 Complete list of SMOG subroutine names

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

A.7.2 SMOG COMMON Block Names

SMOGC 
SMGFR 
SMGTK 
SMGHP 
SMGLB 
SMGCT 
TEXTAB
⇑ 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