9.1 The FR 80 standard data format is a binary language used to communicate instructions to the FR 80 Microfilm Recorder for production of general graphics output.
9.2 Considerations in the specification of this language are
9.3 The FR 80 has the following characteristics:
9.4 Various cameras available have apertures which restrict the use able area of the raster. The apertures are centered on the addressable area. See Table 2.1 for the number of addressable points provided by the different aperture sizes in the available cameras.
9.5 Data may be recorded in comic mode or cine mode. In comic mode, X coordinates refer to positions along the film, and Y coordinates refer to positions across the film. Frames follow each other in a succession from left to right along the film. See figure below.
9.6 In cine mode, X coordinates refer to positions across the film, and Y coordinates refer to positions along the film; frames follow each other in a succession from top to bottom down the film. See figure below.
9.7 The basic unit of information supplied to the l8-bit word whose bits are numbered 0-17 from right. On 7-track tape drives, this is three 6-bit characters in odd parity mode.
9.8 Data from 9-track drives is in the following form: the six low-order bits from each byte are used as data, the high-order two bits are ignored.
9.9 Tape records may be blocked in any size to a maximum of 512 l8-bit words.
9.10 Encountering a file mark on the tape will cause a pause, with the message END OF FILE typed to the operator with accounting information.
9.11 Commands may be one-word, two-word, or variable length. One-word commands specify movement on either the X or Y axes. Two-word commands provide for movement in both axes simultaneously. Variable length commands perform other control functions and text display. To determine which type of command is being examined, the high-order bits are interpreted in the following way:
9.12 If bit 0 and bit 2 are both off, this is the first word of a variable length command. Otherwise it is a coordinate command.
9.13 Bits 4-17 contain the coordinate value. To determine if this is a one-word or two-word command, the following word is examined. If bits 0, 1, and 2 are off and bit 3 is on, this word is the second word of a two-word command and the 14 low-order bits represent the Y coordinate value.
9.14 To describe coordinate commands, we will refer to CX, the current X coordinate; CY, the current Y coordinate; SX, the X coordinate value specified by the command; and SY, the Y coordinate value specified by the command.
9.15 For one-word commands, if bit 3 (the Y bit) is on, bits 4-17 contain SY, and SX is zero for relative commands (bit 1 on), or SX=CX for absolute commands. Similarly, if bit 3 is off, bits 4-17 contain SX, and SY is zero for relative commands, or SY=CY for absolute commands. For two-word commands, SX is in bits 4-17 of word 1 and SY is in bits 4-17 of word 2.
9.16 Treating bits 0-2 as a 3-bit op code, the commands are:
Op Code | Meaning |
---|---|
0 | Checkpoint delimiter or word two of a two-word command. |
1 | Move to specified point (set CX to SX and Cy to SY). |
2 | Variable length command (see par. 9.17). |
3 | Move relative (CX=CX+SX, CY=CY+SY)*. |
4 | Draw a vector from CX,CY to SX, SY (but leave current point at CX,CY). |
5 | Draw a vector from CX,CY to SX, SY and move to SX,SY. |
6 | Draw a vector from CX,CY to CX+SX, CY+SY* (and don't move). |
7 | Draw a vector from CX,CY to CX+SX, CY+SY* and move current point to CX+SX, CY+SY*. |
* All additions are performed modulo 16384, so negative numbers are represented in 2' s complement form.
9.17 Variable length commands with bits 0-3 off are treated as checkpoint delimiters which may be searched for, independent of context.
9.18 All checkpoint delimiters cause exit from TEXT MODE if recording characters at regular speed. Checkpoint delimiters will not cause an exit from high speed TEXT MODE (see command 04).
9.19 No Operation see diagram below.
9.20 Frame Advance
For the microfiche camera: 1 means step to the next fiche and ignore the rest of the bits in this command. o means advance n pages.
Advance film n frames, increment frame counter. One frame is a number of pulldowns appropriate to the camera and may be set by the operator.
9.21 End Job see diagram above. n = pause level. See pause level description in control interrupt command (par. 9.41). If n = 178 end of last job on tape assumed.
9.22 Start Job
Types job ID if supplied, resets indicated parameters, strip chart mode, vector family mode, and establishes the following defaults: spot size = 0, intensity = 7, solid vector mode, upright characters, single hit with clear filter.
9.23 The first word of all other variable length commands has the following format:
The following commands are currently defined:
9.24 OCT 00 DEC 00 Incremental Film Advance
The data contains the number of camera pu11downs to be executed (0-511). The frame counter will not be incremented, and will not be treated as a frame delimiter. This command should not be used for microfiche.
9.25 OCT 01 DEC 01 Repeat Following Command Sequence
If 2 ≤ n ≤ 511 n is the repeat count. If n = 1 the repeat count is in the following word in the format indicated. If n = 0 terminate command sequence. Repeats may be nested to a depth of 8.
9.26 OCT 02 DEC 02 Picture
Definitions may not be nested, but requests to draw a picture may be included within a picture definition. While in process of drawing a picture, the request to draw pictures may be done to a depth of 8. After completing the drawing of a picture, the coordinates (CX and CY) will be reset to the point where they were before the picture was drawn.
9.27 OCT 03 DEC 03 Enter Justified-Type Mode
The character size and spacing specified will apply to the current command only, and will not change the values used by subsequent type mode commands. The X and Y displacement values are added to CX and CY to specify the position of the lower left corner of the envelope for the first character of the following text. After completion of this command, CX and CY are unchanged.
Subsequent words contain text as described under Text Format (see par. 9.29) in Type Mode description (op code 04).
When a new line code (2178) is encountered in the text, the following two words contain data as words 3 and 4 above, again followed by text. (If the new line code is in Field 1, Field 2 will be ignored.) An end of message code in the text terminates this command.
9.28 OCT 04 DEC 04 Enter Type Mode (Non-justified)
The first character will be displayed with its lower left corner at the current point. Subsequent characters will be at positions determined by the rotation, spacing, and line feed values. The current position will be unchanged by this command.
9.29 Text Format - Text for display on the FR 80 will be packed two characters per 18-bit word. They will be in Half-word Format:
If the high-order bit of one of these 9-bit fields is on, the remaining eight bits are a printing character; if the bit is off, the remaining eight bits are a control character. Text will be terminated by an end of message character (2038). Text used in conjunction with the following commands must be packed in the half-word format: START JOB, JUSTIFIED TYPE MODE, CONTROL INTERRUPT, FICHE TITLE.
Notes
1) For proportionally spaced text the number entered with the Set Character Spacing (Code 118) command is the inter-character spacing (the distance from the right of one character to the left of the next).
2) Checkpoint delimiters will not cause an exit from high-speed type mode.
3) If proportional spacing or multiple hits are specified, text recording is at regular speed only.
9.30 OCT 05 DEC 05 Set Intensity
Bits 15-17 (12-17 if the gray level option is installed) of the data contain the intensity to be used when the color filter specified by bits 9-11 is in place. When specifying the 6-bit intensity for the gray-level option, the order of the 2 octal digits must be reversed. For example, to specify intensity 578 enter the number 758. The filter specification for bits 9, 10, and 11 is as follows:
f=0002 clear; f=0012 (unspecified); f=0102 red; f=0112 magenta; f=1002 green; f=1012 yellow; f=1102 blue; f=1112 cyan.
9.31 OCT 06 Dec 06 Set Spot Size
Bits 15-17 of the data contain the spot size to be used when the filter specified by bits 9-11 is in place. (See command 05 for filter specification.) Changing spot size requires about 50 msec.
9.32 OCT 07 DEC 07 Set Character Size*
Bits 12-17 contain the FR 80 hardware character size to be used in subsequent 04 commands.
9.33 OCT 10 DEC 08 Set Character Rotation
The data is a rotation number to be used in subsequent text display commands. A rotation value of zero corresponds to upright characters. Successive values are rotated 45° counterclockwise.
* Not ordinarily useful; see octal 24 command.
9.34 OCT 11 DEC 09 Set Character Spacing
The data is a spacing number (from the left of one character to the left of the next for monospaced text; from the right of one character to the left of the next for proportionally spaced text) to be used in subsequent 04 commands.
9.35 OCT 12 DEC 10 Set Text Line Spacing
The data is a center line spacing number (from the bottom of one line to the bottom of the next line) to be used in subsequent 04 commands.
9.36 OCT 13 DEC 11 Output Page # or Frame # to Film
The page or frame number will be output at the current position as though a 04 command had been encountered.
9.37 OCT 14 DEC 12 Select Color (or Multiple Exposure)
(The count word may be omitted if the counts are all zero and another count word follows.)
If x is zero another count word follows containing cyan, yellow and magenta count.
This word is permitted only if a subtractive filter system is installed.
The counts represent the number of times the film will be exposed with the indicated filter in place. (If a subtractive filter system is installed, the red, green, and blue filters will be simulated by inserting two filters simultaneously in the light path.) If the specified count for all filters is zero, a count of one for the clear filter is assumed. Any film advance is equivalent to selecting the clear filter with the number of hits previously specified for it (or one if zero).
If the color select command calls for more than one color per frame, the select command acts as a repeat and must comply with repeat nesting rules.
When a given filter is in place, the intensity and spot size appropriate that filter, as specified by the 05 and 06 commands, will be in effect.
9.38 OCT 15 DEC 13 Plot Current Point
If the set size or intensity bit is on, the spot size and/or intensity may be set for intensification of this point only. The spot size and intensity for subsequent commands will remain as specified by the 05 and 06 commands.
9.39 OCT 16 DEC 14 Select Vector Mode
Bits 16 and 17 contain a code for vector drawing mode interpreted in the following way:
9.40 OCT 17 DEC 15 Draw Arc
For the purpose of drawing arcs and circles, a circle is divided into 240 1.5° sectors. The arc length is specified by the number of sectors to be drawn clockwise from the starting angle. The starting angle is specified by the number of sectors clockwise from vertical.
The center of the arc will be the current point. Drawing an arc will not change the current point.
9.41 OCT 20 DEC 16 Control Interrupt
Bits 9-13 will cause the function indicated to be performed if on.
Bits 14-17 will be a pause control level. All bits on (178) will be an unconditional pause. All bits off will never pause. Intermediate levels will cause a pause if their value exceeds a parameter entered by the FR 80 operator. When the pause occurs, the pause control level will be typed on the Teletype.
The text for an operator message will be in the same format as specified for the 04 command.
9.42 OCT 21 DEC 17 Verify Camera and Select Cine or Comic Mode
If the specified camera is not in place, the machine will pause after indicating to the operator that another camera is required.
9.43 OCRT 22 DEC 18 Draw Vector Family
This command conditions the FR 80 to interpolate the specified number of lines between the next two vectors produced by commands with bit 0 on. (Those commands may be either one- or two-word type.) Both specified vectors will also be drawn. At the completion of the drawing of these vectors, the current point will be restored to the position it was when the Draw Vector Family command was encountered. If the number of interpolated lines is zero, then a second word follows specifying the actual number of interpolated lines (see above).
9.44 OCT 23 DEC 19 Set X and Y Offsets
The specified X and Y offsets will be added to all subsequent coordinates.
9.45 OCT 24 DEC 20 Select Character Height
The largest character size not greater than HEIGHT will be selected. If HEIGHT = 0, a character size appropriate to the specified spacing for monospaced text will be selected.
9.46 OCT 25 DEC 21 Define Character Set
n = number of character equivalences to follow. (A checkpoint delimiter may also be used to terminate this command.) A character equivalence is a word in the format following (where the III code equivalent is a printing character).
9.47 OCT 26 DEC 22 Assign Character Definition to Code
Following this are words containing character descriptions in the following 6-bit codes:
00-07 | Terminates character with 1-8 character spaces |
10 | Provides 8 character spaces and continues to expect another terminator |
11 | Beam off (character starts with beam off) |
12 | Beam on |
13 | Terminates character without spacing |
14 | Draw east |
15 | Draw northeast (slope = 1) |
16 | Draw northeast (slope = 7/5) |
17 | Draw northeast (slope = 2) |
20 | Draw northeast (slope = 14/5) |
21 | Draw north |
22 | Draw northwest (slope = -14/5) |
23 | Draw northwest (slope = -2) |
24 | Draw northwest (slope = -7/5) |
25 | Draw northwest (slope = -1) |
26 | Draw west |
27 | Draw southwest (slope = 1) |
30 | Draw southwest (slope = 7/5) |
31 | Draw southwest (slope = 2) |
32 | Draw southwest (slope = 14/5) |
33 | Draw south 34 |
34 | Draw southeast (slope = -14/5 ) |
35 | Draw southeast (slope = -2 ) |
36 | Draw southeast (slope = -7/5) |
37 | Draw southeast (slope = -1) |
76-41 | Repeat following stroke 2 - 31 times. |
9.48 OCT 27 DEC 23 Not defined
9.49 OCT 30 DEC 24 Fiche Title
A fiche title specification follows this command packed in the half-word format (see command 04). The end of message control character (2038) terminates the specification. Details of the fiche title specification are described in 6.1 onwards. This command causes the title on the current fiche to be completed and causes subsequent data to be recorded on a new. fiche. The fiche title specification stays in effect until changed.
9.50 ERROR MESSAGES
The FR 80 Data Format Displayer program can type any of the following error messages on the Teletype:
Message | Meaning |
---|---|
DLM | Invalid checkpoint delimiter |
UNC | Undefined variable length command |
TMR | Too many repeats (nested too deeply) |
NAM | Format error in picture name command |
TMP | Too many picture calls (nested too deeply) |
TMN | Too many names (available storage exceeded) |
CON | Undefined control character |
PAG | Format error in command 138 (output page or frame no.) |
To continue processing after an error, the operator can use the SCAN command to continue with the next checkpoint delimiter, the next frame, or the next job.
9.51 SUMMARY OF FR 80 DATA FORMAT
0000 Escape checkpoint delimiter 000 No op 001 End job 010 --- not defined 011 --- not defined 100 Start job 101 --- not defined 110 --- not defined 111 Frame advance 0001 Y coordinate (second word) 0010 X move absolute 0011 Y move absolute 0100 Escape (see below) 0101 Escape (see below) 0110 X move relative 0111 Y move relative 1000 X vector not moving 1001 Y vector not moving 1010 X vector absolute move 1011 Y vector absolute move 1100 X vector relative not move 1101 Y vector relative not move 1110 X vector relative move 1111 Y vector relative move Escape codes (octal) 00 Incremental film advance 01 Repeat 02 Picture name 03 Enter justified type 04 Enter non-justified type 05 Set intensity 06 Set spot size 07 Set character size 10 Set character rotation 11 Set character spacing 12 Text line spacing 13 Page # or frame # (accounting to film) 14 Select color mode 15 Plot current point 16 Select vector mode 17 Draw arc 20 Control interrupt 21 Verify camera and select rotation 22 Draw vector family 23 Set X and Y offsets 24 Select character height 25 Define character set 26 Assign character definition to code 27 --- not defined 30 Fiche title 31 Optical merge 32 Font selection 33 Justify