Contact us Heritage collections Image license terms
HOME ACL Associates Technology Literature Applications Society Software revisited
Further reading □ OverviewPaper 1Paper 2Paper 3Paper 4Paper 5Paper 6Paper 7Paper 8Paper 9Paper 10Paper 11Paper 12Paper 13Paper 14Paper 15Paper 16Paper 17Paper 18Paper 19Paper 20Paper 21Paper 22Paper 23Paper 24Paper 25 revPaper 25Paper 26Paper 27Paper 28Paper 29Paper 30Paper 31Paper 32Paper 33Paper 34Paper 35Paper E
ACD C&A INF CCD CISD Archives Contact us Heritage archives Image license terms

Search

   
ACLLiteratureProgress ReportsTechnical Papers :: Literature: FR80 Technical Papers
ACLLiteratureProgress ReportsTechnical Papers :: Literature: FR80 Technical Papers
ACL ACD C&A INF CCD CISD Archives
Further reading

OverviewPaper 1Paper 2Paper 3Paper 4Paper 5Paper 6Paper 7Paper 8Paper 9Paper 10Paper 11Paper 12Paper 13Paper 14Paper 15Paper 16Paper 17Paper 18Paper 19Paper 20Paper 21Paper 22Paper 23Paper 24Paper 25 revPaper 25Paper 26Paper 27Paper 28Paper 29Paper 30Paper 31Paper 32Paper 33Paper 34Paper 35Paper E

Paper No 1: Basic FR80 Tape Commands

F R A Hopgood

31 December 1974

1. INTRODUCTION

This paper defines a subset of the FR80 tape commands which should be sufficient for reprogramming existing SD4020 packages. Other commands are available but, because of ambiguity in the documentation, it is sensible to keep to this subset until a full definition can be produced. Details of the FR80 hardware can be found in FR80 User Note 1.

2. TAPE FORMAT

Commands consist of one or more 18-bit words. Output to 7-track tapes must be odd parity and the standard density used will be 556 bpi. Each 18-bit word occupies three consecutive 6-bit characters. Output to 9-track tapes must be 1600 bpi. Each 18-bit word is split into three 6-bit characters which are stored as the lower 6 bits of three consecutive 8-bit bytes with the top two bits or each byte set to zero.

Tape records must not be greater than 512 18-bit words in length.

In the following sections, 18-bit words will be written as 6 octal digits.

3. VECTOR DRAWING AND POINT PLOTTING

Vectors are drawn from the current beam position (CX,CY). Horizontal and vertical line drawing or beam repositioning requires a single word command while a general vector command takes two words. In the following description, (CX',CY') is the new beam position after the command has been obeyed and V(X1,Y1,X2,Y2) defines a line drawn between the two points (X1,Y1) and (X2,Y2).

3.1 Single-Word Commands

The format of FR80 commands is as follows:

03 C 417 A Single-word C A Two-word 03 0001 417 B 0100 10010 N Four-word VERTICAL FAMILY 03 1101 DY 03 0110 DX 03 1101 417 DY 0100 10010 N Four-word HORIZONTAL FAMILY 03 1100 DX 03 0111 DY 03 1100 417 DX
FR80 Instruction Formats.

The first four bits define the type of command 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
3.2 Two-word Commands

The two-word commands are similar to the one-word commands.

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
3.3 Vector Drawing Mode

The standard method of vector drawing is as solid lines. However, it is possible to draw both dotted and dashed lines. The mode of subsequent line drawing can be specified by the following commands:

216000                       SOLID MODE

Solid vectors are to be drawn, the default.

216001                       DASHED MODE
7NNNNN
3FFFFF

Dashed vectors are to be drawn. NNNNN is the approximate number of raster positions that the beam will be on and a line drawn while FFFFF is the number of raster positions that the beam will be switched off. the lengths are measured along the axis having the larger vector component. Both FFFFF and NNNNN must be less than 16383.

216002                       DOTTED MODE
3SSSSS

Dotted lines are to be drawn. the spaces between the dots are SSSSS raster positions along the axis having the larger vector component. SSSSS must be less than 16383.

3.4 Vector Family

Special commands are provided for drawing a set of lines in the horizontal or vertical direction. The vertical family draws the lines V(CX,CY,CX,CY+DY), V(CX+DX,CY,CX+DX,CY+DY) and N equally-spaced lines parallel with and in between these two. The horizontal command draws the lines V(CX,CY,CX+DX,CY), V(CX,CY+DY,CX+DX,CY+DY) and N equally-spaced lines parallel with and in between these two.

3.5 Point Plotting
215000

A point is plotted at the current beam position (CX,CY).

4. CHARACTER OUTPUT

The FR80 has a hardware character set which can be displayed at one of 64 different character sizes (see Appendix III of FR80 Use Note 1). Characters are defined on a 10 by 14 grid so that the character width is smaller than the character height. The size and spacing between characters is defined by the following commands:

211SSS                       SET CHARACTER SPACE

This sets the distance between the left edge of one character in a string and the left edge of the next character to SSS raster positions. Thus SSS includes the width of the character as well as the following space.

224HHH                       SET CHARACTER HEIGHT

This sets the character size to the largest value which is less than HHH raster positions. Note that the spacing SSS should not be smaller than HHH. Otherwise, characters will overlap. Character height defines the size of the character. The width is changed also to keep the aspect ratio the same (14 by 10).

21000R                       SET CHARACTER ROTATION

All subsequent characters will be rotated by R×45° anti-clockwise. R=0 corresponds to upright characters.

204000                       TYPE CHARACTER STRING (MONO-SPACED)
AAABBB
CCCDDD
......
XXX203

For mono-spaced text, the string of text is output with the lower left-hand corner of the first character at the current beam position (CX,CY). the characters of the string follow the command itself and are packed two per word. Each character other than the termination one must have the top bit set. The lower eight bits give the position in the FR80 character set (Appendix V of FR80 User Note 1). The last character in the string must be the End of Message control character 203. If it appears in the left-hand 9-bit character position, the remaining 9 bits should be zero. For example:

204000
501502
203000

outputs the string AB.

The current beam position is unchanged by this command.

5. INTENSITY

The intensity of all subsequent line drawing, point plotting and character drawing can be specified by the intensity command. There are 256 different intensity levels available on the ACL FR80. However, the command with the machine as delivered only allowed 64 to be specified.

2050IJ                       SET INTENSITY

All subsequent output will be at an intensity 32×J+4×I. For example, if I = 0 the intensity levels specified by the different values of J are:

   0  32  64  96  128  160  192  224

If no intensity level is specified, a standard value will be used for all output.

6. ORGANISATION

The following commands are used to set up a job and change frames:

020000                       START JOB

This should be the first command output at the start of a job. it resets the intensity level to the standard value, resets vector drawing to solid lines and resets character rotation to zero.

004010                       END JOB

This command should be the last one output by a job.

221M00                       SET CAMERA MODE

This command should be output immediately after the START JOB command. If M=4, all output will be generated in cine mode while if M=0 output will be generated in comic mode. These are defined as follows:

Y X A Y X B Y X C COMIC (M=0) Y X A Y X B Y X C CINE (M=4)
Camera Mode
034NNN                       ADVANCE FRAME

The camera is advanced N frames. In the case of the microfiche camera, this means move the fiche on by N pages.

036000                       ADVANCE FICHE

This command should only be used with the microfiche camera. It causes an advance to the next fiche ready to output the first page on the next fiche.

000000                       NOP

This is the NOP command that does nothing and is used to pad out records.

7. SUMMARY

0010 X
Absolute move horizontal
0110 DX
Relative move horizontal
1010 X
Absolute draw horizontal
1110 DX
Relative draw horizontal
0011 Y
Absolute move vertical
0111 DY
Relative move vertical
1011 Y
Absolute draw vertical
1111 DY
Relative draw vertical
0010 X
0001 Y
Move absolute
0110 DX
0001 DY
Move relative
1010 X
0001 Y
Draw absolute
1110 DX
0001 DY
Draw relative
216000
Solid vectors
216001
7NNNNN
3FFFFF
Dashed vectors
216002
3SSSSS
Dotted vectors
222NNN
1101 DX
0110 DX
1101 DY
Vertical family of vectors
222NNN
1100 DX
0111 DY
1100 DX
Horizontal family of vectors
215000
Point plot
211SSS
Set character space
2241HHH
Set character height
21000R
Set character rotation
204000
AAABBB
CCCDDD
......
XXX203
Type character string
2050IJ
Set intensity
020000
Start job
004010
End job
221M00
Set camera mode
034NNN
Advance frame
036000
Advance fiche
000000
NOP
⇑ 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