The DMAC plotting table may be used for the input of graphical data to computer programs, by tracing diagrams placed on the sensitive region of the plotting table with special pens.
A head is moved beneath the table, to follow the magnetic field generated by a coil in these pens, until it lies beneath the pen.
The co-ordinates of the head are then displayed on the neon tubes of the console to the nearest tenth of a millimetre. These co-ordinates may be punched on paper tape by pressing a foot pedal. A detailed description of the hardware is given in section 1. The paper tape produced by the hardware may be read by Atlas, if the tape has been prepared as a data document, see Preparing a Complete Program for Atlas 1, examples of complete data tapes are given in section 3.
A software system, the DMAC Package has been written to process this paper tape. The Basic Package forms a data structure corresponding to the original diagram, and may dump this onto backing store and display the input picture on SD 4020 hardcopy.
The dumped data may be accessed in Algol programs by the Load Package. Both these packages are described further in section 2, which assume knowledge of the GROATS system.
There are two appendices. Appendix 1 describes the paper tape codes used by the system, and Appendix 2 lists the references used in this manual.
The DMAC pencil follower is a device used for converting pictorial information into a digitised form which is then suitable for being processed by a computer. Graphs, contour maps, charts and so on may be readily converted into a series of x and y co-ordinates which are punched onto paper tape. The format of the co-ordinates can be decided on by the user, and the paper tape itself can be either 5, 7 or 8 track. Figure 1 shows the system as a whole with an operator about to digitise a map. There is a keyboard on the table which is used to add further information to the paper tape, and on the left stands the electronic console and the paper tape punch. Below the table on the floor is the foot-operated readout switch which, when depressed, causes the current co-ordinates position of the pen to be punched.
The image of a slide can be digitised by means of a projector mounted on the wall, and a large overhead mirror which is set at 45° to the table.
The table consists of a flat surface with a usable area of one metre square. Beneath the table is a mechanism which automatically positions itself under the pen to an accuracy of ±0.1 mm., and which can move at a maximum speed of 25 cm/sec.
There are several different pens available and these are shown in Figure 2. The topmost one is used when digitizing the projected image of a slide, while the pen on the extreme left of the picture is useful for fine detail and consists of a magnifying lens with cross-wires. Each pen carries a wire and plug which should be connected to the socket beneath the table.
It is important that the pen in use should be kept well within the red margin marked on the table, otherwise damage to the follower mechanisms can occur.
The keyboard, as illustrated in Figure 2, is free to be placed in any convenient position. The button marked Power should be depressed before it will operate. The user can punch further information on the paper tape such as leaders and reference markers, which can be recognised and dealt with by his program. If the paper tape is destined for input to Atlas for example, it is often convenient to start the tape with a document leader and terminate it with an end of document marker.
All the letters of the alphabet are available also the digits 0-9 and various other useful characters such as the decimal point, case shifts, etc. It is sometimes important to know which case a particular character should appear in. For example, when using 7-track tape, the comma and asterisk should appear in lower case while plus and minus should appear in upper case. If in doubt, the user can refer to the list of codes in Appendix 1.
The Tape Out key will produce blank run out irrespective of the width of paper tape in the punch. Genuine run-out on 7-track tape should be produced by repeatedly pressing the figure-shift (ie upper case) key.
1.1.3.0. Figure 3 illustrates the electronic console with the current co-ordinate position of the pen displayed as two low-digit numbers.
1.1.3.1. The push-switch marked POWER controls the power for both the electronic console and the reading table.
1.1.3.2. The LINE/POSITION switch determines the method in which the readout is obtained. When LINE mode is selected, depression of the foot-operated readout switch causes data to be punched on the tape at set time intervals. The rate of output is under the control of the readout rate potentiometer. With the knob turned fully in the counter-clockwise direction, the readout rate is at its minimum. By turning the knob clockwise from there, the readout rate can be increased to any speed up to its maximum. The maximum readout rate can be calculated from the equation:
Number of readouts per second = 110/(Number of characters comprising the total format)
Using the format of the third example in section 1.1.3.5 with the Format Selection switch set to one, the approximate minimum and maximum readout rates are 2 readouts per second and 7 readouts per second respectively.
When POSITION mode is selected operation of readout switch causes only one output of data to the paper tape.
1.1,3,3, The FORMAT SELECTION switch consists of a thumb-wheel with ten possible positions marked 0-9. In Figure 3a it is set to position 1.
The way in which the data is punched on the paper tape is controlled by the plug board in the back of the console. The data is comprised of two distinct items ie format 1 and format 2. The number of times each format is produced for a given position of the format selection switch is shown in the following table:-
Switch Position | No of times format 1 is given | No of times format 2 is given |
---|---|---|
0 | 1 | 0 |
1 | 1 | 1 |
2 | 2 | 1 |
3 | 3 | 1 |
4 | 4 | 1 |
5 | 5 | 1 |
6 | 6 | 1 |
7 | 7 | 1 |
8 | 8 | 1 |
9 | 9 | 1 |
For example if format 1 consisted of an x co-ordinate followed by a y co-ordinate and format 2 consisted of a newline character, then to output the data in the form of two co-ordinate pairs followed by a newline, the switch should be set to position 2. The plugboard itself is explained in more detail in section 1.1.3.5.
1.1.3.4. The RESET pushswitch should be pressed during the switching on procedure before any output is produced; after the Format Selection switch has been changed or when the machine has locked up due to any fault such as incorrect format plugging. The operation of the Reset switch can do no harm provided that output is not being produced at that instant, so if in doubt as to when it is necessary, it can be used freely.
1.1.3.5. The Plugboard is shown in Figure 4 and can be found in the back of the electronic console unit. It consists of two upper rows of twenty sockets which are connected in parallel, two Reset sockets and a bottom row of twenty-two sockets. Two separate formats can be plugged, the first of which normally contains the x and y co-ordinates themselves, while format 2 is used to introduce characters such as newline at the end of the required number of co-ordinate pairs. Characters to be punched are taken from the bottom row of sockets and plugged consecutively into the top row starting at the extreme left. Format 1 is terminated by connecting the next available socket to the Reset 1 socket. The first character of Format 2 should be plugged into the second row of sockets directly below the one giving Reset 1. Plugging Format 2 should then continue along the top row filling every position until Reset 2 is plugged. The bottom row of sockets is marked as to precisely what output each will invoke. There are five sockets for the co-ordinate digits, only the right-hand four of which are normally used. It is not advisable to use any one character in both format 1 and format 2 if it is intended to have the Format Selection switch set to anything other than 0 or 1, since otherwise format 1 will be repeated only up to the first occurrence of this character. Duplication of any character is achieved by plugging the second row of sockets immediately beneath the last occurrence of the character, as in the case of the space character in some of the examples which follow. Sockets marked in equal numbers should be connected together.
1.1.3.6. Three types of paper tape are available, ie Ferranti 5-track, Ferranti 7-track and ICT 1900 tape. Associated with each type of paper tape is a set of three circuit boards marked Board No 1, 2 and 3. These boards should be changed over when necessary as indicated in Figure 5. Here, Board No 1 for 7-track tape is being removed while Boards 2 and 3 are shown partially withdrawn.
The punch is shown correctly threaded in Figure 6. The On/0ff switch for the motor is mounted rather obscurely behind the chad box on the right-hand side as viewed from this direction. To change the paper tape, it is best to tear it somewhere along the horizontal portion near the supply reel and then press the tape out key on the keyboard until the torn end has disappeared through e punch block. The old reel can then be lifted out and the required tape substituted. The three-position guide, which holds the tape straight just before it enters the punch block, should be rotated to the correct setting for the width of paper tape in use.
After threading the new reel of tape, pull it gently with the tape out key depressed until enough sprocket holes have been punched for it to feed itself through correctly.
Check that the switch on the wall socket is in the down position and that the pen is within the area of the table enclosed by the red line. Press the Power pushswitch on the console which should become illuminated and Reset.
If the keyboard is to be used, its power button should be in the depressed state. The paper tape punch has its own on/off switch as described above.
It is not advisable to switch off when a paper tape is incomplete, since the punch outputs a spurious character when it is switched back on again.
The package has been written under the assumption that Ferranti 7-track tape will be used. This is because it is the kind of tape most frequently used on Atlas with the best flexowriter facilities. Unfortunately, run-out cannot be produced by operation of the Tape Out key on the keyboard since this gives blank tape. Instead, the Upper Case (ie Figure Shift) key should be pressed repeatedly to obtain genuine run-out. The package has been used successfully with 7- and 8-track tape but not with 5-track.
The paper tape will have to be presented to Atlas in the form of a data document, so it is convenient to punch the header using the keyboard before any co-ordinate output is produced. The ***Z terminator should also be punched at the end, remembering that the asterisk character is in lower case on 7-track tape while the Z must be in upper case. Commands for recognition by the package such as PAGE or TRACK must have upper case letters, the comma being lower case.
The package will ignore superfluous run-out characters which can be usefully inserted at points along the tape to facilitate any flexowriter editing if ever the need arises.
When tracing a curve defined as a TRACK within the package it is normal to have the electronic console set in Line mode. A TRACK consisting of a series of straight lines joined together can be digitised more quickly by setting the console in position mode and digitising only the points of discontinuity. Position mode must be selected when defining a TEXT co-ordinate. If the console is not in Position mode and the foot switch is held down too long, more than one co-ordinate pair may be produced and the second co-ordinate pair will be taken to be the text itself. Also, having specified the LINE command to the package via the keyboard, the package will expect an even number of co-ordinate pairs to follow, and the only safe way of ensuring this is to use Position mode on the console.
The aim is to provide software that permits the user to input data to his program in two steps, namely:
Details of the command language on the paper tape, wnich is required by the Basic Package, are given in section 2.1. The procedures of the Load Package that are available to users are described in section 2.2.
Data plotted on the DMAC table takes the form of a sequence of co-ordinates separated by command words. The data is divided into a number of pages, a page normally being all the data required from a simple sheet. Each sequence of co-ordinates must be preceded by its type, that is TRACK, SYMBOL, LINE or TEXT.
A TRACK is a continuous line drawn through each co-ordinate pair, generated perhaps with the DMAC in line mode.
A SYMBOL is a series of points, perhaps representing towns on a map.
A LINE is a set of straight lines. The co-ordinate pairs are themselves taken as pairs, representing the ends of discrete lines.
When it is not necessary to distinguish between symbols, tracks or lines, they will be called chains. The generic term for chains, pages and texts is item.
The Basic Package resides on magnetic tape N1353 DMAC, as a dumped program. It may be recovered using the ABL program given in section 3. It may be used to:
The standard format for data on the punched tape is described in 2.1.1., the commands that may be used on it in 2.1.2., and a simole set of commands is shown in 2.1.3.
An example of a complete program may be found in Section 3
.Please note:
Tape is sometimes not punched correctly, since this must not cause data to be stored incorrectly, a strict format is chosen for the representation of data on the punched tape. The format co-ordinate pairs is described in 2.1.1.1., and-for commands 2.1.1.2.
Please note:
Since the data on the punched tape is largely made up of co-ordinate pairs - it is important that the format for co-rdinates be strict. If a line does not comply with the format below, then it is flagged LINE NOT RECOGNISED and ignored by the data structure. Such errors should be reported to the authors, so that error statistics may be kept. It is believed that about 1 in 5000 co-ordinate pairs is mispunched.
The co-ordinate is a four digit number. The first of the pair is an X co-ordinate, and the second a Y co-ordinate. The X co-ordinate is preceded by an E and followed by two spaces, the Y co-ordinate is preceded by an F and followed by two, or more spaces, and a newline.
For example, a co-ordinate pair could be:
E1234$$ F5678$$→
Where $ represents a space, and → represents a newline.
A command is made up of a number of Upper case letters. It may be preceded by any number of spaces. In some cases, this is followed by a comma and a <name> or a <number>.
A <name> is a set of characters that are not commas, spaces within a <name> are ignored.
A <number> is a set of digits, there may be no spaces between digits.
A command is terminated by a newline. An example of a command is:
PAGE, MARY
and another is:
UNIT, 75
Note if a command is mispunched, it will be ignored, and may be repunched on the next line. Thus:
PAAG, MARY PAGE, M ARY
is equivalent to the first example above.
A list of commands in alphabetical order is given in 2.1.2.1., and the rules for the sequence in which commands may be issued are defined in 2.1.2.2.
BLOCK, <number>
This positions the tape or disk selected by UNIT at the beginning of the block numbered <number>.
If this command is not used, the tape is positioned at the beginning of block 1 by the Atlas supervisor.
DISPLAY
Each page is displayed on a separate frame of hardcopy as below.
DISPLAY, <name>
The page <name> is displayed on a new frame of hardcopy. The corners given by the ORIGINS sequence are used to define the limits for the region. The larger of the maximum X and maximum Y is found from the ORIGINS sequence, and this is used to specify the maximum X and Y in the call to procedure limits (see page 50 GROATS Manual) so that the horizontal and vertical seales are the same on the hardcopy.
If a point, in a track, is plotted with its X and Y co-ordinates greater than the above maximum, the track will be interrupted at that point.
If a point is plotted either of whose co-ordinates are less than the minimum in the ORIGINS sequence, the offending co-ordinate is set to zero.
DUMP
Writes all blocks of store in the data area, that have been used, - to the currently selected unit. These blocks may be recovered by LOAD, or by the Load Package. The number of the next block on the backing store is printed. This command is designed so that data may easily be stored between runs of the two segments of the DMAC package.
END
The package stops execution on reading this command. No further data is read from the paper tape.
EXPAND <number>
The co-ordinates following this command are multiplied by <number> before they are stored. This is to permit the co-ordinates to be normalised for the user of the load package.
IGNORE <number>
If points are less than <number> units apart, after their co-ordinates are expanded, the later points are ignored. This applies to all chains. When the DMAC is operating in line mode, leaving the pen still for a while might result in several points with the same, or nearly the same co-ordinates. The IGNORE command is provided to avoid storing these.
LOAD
Reads a previously dumped data area from the currently selected unit of backing store, and allows more items to be added to the structure. Any data structure present before this command will be destroyed.
LINE <name>
The co-ordinate pairs following are to be taken as the start and end of straight lines, alternately. There must be an even number of pairs of co-ordinates, or the package will fail with ILLEGAL FUNCTION.
The co-ordinates are stored in the data area, and <name> is associated with them. The sequence of co-ordinates is terminated by any command.
ORIGINS <co-ordinate pair> <co-ordinate pair> <co-ordinate pair> <co-ordinate pair>
Unless this command is followed by four pairs of co-ordinates the package will break down, giving the message ERROR IN PROCEDURE ORIGINS, all further activity is undefined.
The four co-ordinate pairs are taken as the four corners of the current page. They should be close to the corners of a rectangle but may be in any order, and the sides of the rectangle do not need to be parallel to the axes of the plotting table.
The co-ordinates of points on the page are transformed to page co-ordinates. The origin of axes of the page is defined by the co-ordinates of the corner nearest to the origin of the DMAC table, while the inclination of the axes is defined by the edge which is nearest to being parallel with the X axis of the table. All co-ordinates which transform to negative numbers are replaced by zero.
PAGE <name>
This opens a new page of data, and associates <name> with it. If Origins is not given in this page, its corner are assumed to lie at the corners of the plotting table, that is at (0,0), (0,9999), (9999,9999), (9999,0). The Ignore factor is set to zero and the Expand factor to one.
A page is terminated by the command END, or by the next PAGE command.
SYMBOL <name>
This command is followed by a sequence of co-ordinate pairs, which are taken to be points of interest on the diagram. When the page is displayed, they will appear as dots, stars, etc. See procedure plotchain section 2.2.1.
The sequence is terminated by any command.
TEXT <name> <co-ordinate pair> <text>
The <text> is stored, <name> and <co-ordinate pair> are associated with it.
<text> is one or more characters, terminated by a newline.
<co-ordinate pair> is taken to be the centre of the first character of <text>.
When the text is displayed, it is parallel with the X axis of the hardcopy, with the characters at hardwaresize.
TRACK <name>
The co-ordinate pairs following are points on a line, unless the point is outside the plotting area specified by ORIGINS. The points are stored, and <name> associated with them. When the line is displayed then points, whose co-ordinates are greater than the greater of the maximum X or Y specified for the page, interrupt the line. This facility cannot be used, unless ORIGINS is used in the current page.
UNIT <number>
The unit will be selected, whose logical number is <number>. This unit will be used for all further use of BLOCK, LOAD or DUMP. If <number> is not that of any unit in the job description, then these commands will cause the program to fail with TAPE NOT DEFINED.
The default, if no UNIT command is used, is logical No.90.
Please note:
Items of the same type should not be called by the same <name> within one page. If they are in different pages there is no problem.
The first command to the basic package must be a PAGE or LOAD, or the package will fail ith ILLEGAL FUNCTION. All failures should be reported to G England.
The last command should be END, or display information will be lost.
Any EXPAND command should immediately follow the PAGE command, and should not be used again with the page. If the command is not used the Expand factor is taken to be 1.
The ORIGINS sequence should follow next, and then any other command may follow.
The page ends with either the command END or with another page.
Below is a set of commands that may be punched on a paper tape and submitted to the Basic Package.
PAGE, MAP ORIGINS E1001 F2011 E3215 F4456 E100l Fl453 E3220 F2008 SYMBOL, TOWNS E1706 F2571 E1812 F2100 E1815 F3566 E2177 F4115 E2586 F2122 E3117 F3217 E2669 F3575 TEXT, TITLE E2203 F4100 MAP OF AREA 1 UNIT, 5 BLOCK, 100 DUMP DISPLAY END
The Load Package is designed to allow access to data output from the DMAC by an Algol program. It is made up of a number of procedures, followed by six variable declarations. It is available as library item DMAC 1 on disc area RO56 GRAHAM. The procedures that are needed to access the data, and to display it are described in 2.2.1. Example of the use of these procedures are given in 2.2.2.
Please note:
Definitions of procedure calls and their results are given below, in alphabetical order of their name.
integer procedure charcount;
This procedure returns the number of characters in the currently selected textstring. If this procedure is called while a text is not selected, the result is undefined.
integer procedure count;
Count returns the number of co-ordinate pairs in the selected chain. If a text is selected, this procedure will give an undefined result.
procedure displayeverything;
This procedure may be called immediately after loadit, and will plot each page on a new frame, using the currently selected camera, as below.
procedure displayonepage;
This plots the currently selected page, in the currently selected region, setting limits by a call of max.
A SYMBOL item is plotted by drawing a plotting character at the co-ordinates specified by nextcoordpair. For the first symbol item in each page, the plotting character is an asterisk, for the second a plus sign, and the third a plotting dot. This cycle is repeated for further symbol items. Other items are plotted as described below in plotchain.
procedure loadit (itape, iblock); value itape, iblock; integer itape, iblock;
This must be the first procedure called from the load package. It reads the data area from the tape or disc numbered itape, starting at block iblock. This recovers data stored from earlier runs.
real procedure max;
Max delivers the greater of the expanded and rotated values of the co-ordinates specified in the ORIGINS sequence of the basic package. Displayonepage sets limits by means of:
limits (0, 0, max, max);
real procedure maxx;
Maxx delivers the expanded and rotated values of the greatest X co-ordinate in the ORIGINS sequence.
real procedure maxy;
Maxy delivers the expanded and rotated value of the greatest Y co-ordinate in the ORIGINS sequence.
procedure nextcoordpair;
The next pair of co-ordinates of the currently selected chain or TEXT item are read to variables x1 and y1. These variables are declared by the load package.
This procedure does not check if the end of the current chain has been reached, nor if the co-ordinates are greater than max. The co-ordinates will not be negative. The procedure may thus be used to read the co-ordinates of a TEXT item.
procedure plotchain (i); value i; integer i;
The currently selected chain or text is plotted, according to the format specified by i.
i chain is plotted as a 1 SYMBOL item 2 LINE item 3 TRACK item 4 TEXT item
A symbol item is plotted as described above at displayonepage, however, the user may first set the integer symboltype according to the table below.
Symboltype Plotting Character 1 * 2 + 3 .
procedure printstr (i); value i; integer i;
This prints the string pointed to by i on stream zero, and ends the string with a newline. It is possible to set i by procedure pointer of GROATS or by textpointer.
procedure select (i); value i; integer i;
The item specified by a string pointed to by i will be selected. The string should take the form:
PAGE, MARY
(Where the item type is always in upper case, and the name of the item is as punched on the original paper tape). It is important that the page which contains the desired items is selected before that item, or it will not be found. Attempting to select an item that cannot be found causes the failure:
FAILED TO SELECT THE FOLLOWING ITEM
and the string that cannot be matched is printed on the next line, followed by the normal algal Post Mortem trace. A typical call to select would be:
select (pointer ('PAGE,MARY'));
integer procedure textpointer;
This procedure returns a pointer to the textstring of the currently selected text item, so that the string may be output by prinstr or plotted by typestring of GROATS.
A picture of a rabbit sitting on a bench had been plotted on the DMAC table as page RABBIT, and a picture of a squirrel throwing a crab-apple at pinecones had been plotted as page SQUIRREL. It was desired to dissolve from the scene of the rabbit to the scene of the squirrel.
The portion of the Algol program concerned with this dissolve was:
begin loadit (1, 100); limits (0, 0, 1023, 1023); regionandselect (11, 136, 1011, 886, 1); select (pointer ('PAGE, RABBIT')); startdef ('rabbit'); displayonepage; finishdef ('rabbit'); select ('PAGE, SQUIRREL'); startdef ('squirrel' ) ; displayonepage; finishdef ('squirrel' ) ; changedisplay ('rabbit', 'squirrel', 480); end
A complete program to run the Basic Package is shown in section 3.1.1. the data tape for this program in 3.1.2.and an Algol program to use the Load Package in 3.2.
3.1.0. In use the Basic Package runs within 100 blocks and will process 3000 co-ordinates in 2 minutes.
It is verbose and produces on average 1.25 lines of output for every co-ordinate pair, on OUTPUT 0.
The package expects the data tape on input 1, and loads the package from tape N1353 DMAC. The program is shown in section 3.1.1. and the datatpe in 3.1.2.
JOB I00000 ENGLAND TO DRAW COMPUTING 2 MINUTES STORE 100/100 BLOCKS INPUT 1 COORDINATES OUTPUT 0 ANY 2000 LINES 12 ANY 50 LINES 13 ANY 50 LINES TAPE 1 N1353 DMAC*INHIBIT TAPE 90 N1000 MYTAPE TAPE IBM 14 COMMON/ SC/GRAPHIC FOR ENGLAND USE ABL 1002, 1, 0, J17 121, 127, 0, J17 EA ***Z
DATA COORDINATES PAGE, 1 ORIGINS E5882 F1O13 E7972 FO997 E7979 F1996 E5892 F2OO9 TRACK,CURVE E5985 F1111 E6085 F1247 E6187 F1345 E6282 F1370 E6387 F1186 E6484 F1160 E6584 F1256 E6678 F1445 E6782 F1614 E6885 F1768 E6981 F1868 E7084 F1918 E7185 F1868 E7284 F1765 E7380 F1645 E7477 F1535 E7576 F1442 E7676 F1342 E7777 F1252 E7875 F1180 DISPLAY BLOCK,1000 DUMP END ***Z
It plots the graph digitised onto the datatape in 3.1.2.
J0B I2201 ENGLAD RUN GRAPH OUTPUT O ANY 900 LINES OUTPUT 12 ANY 50 LINES OUTPUT 13 ANY 50 LINES TAPE IBM 1 COMMON/SC/ENGLAND GRAPH STORE 80/160 BLOCKS DISC 3 R056 GRAHAM DISC 99 R502 ALGOLIB TAPE 30 N000 MYTAPE USE ALGOL INPUT TELETYPE WITH GROATSICT I/O PROCEDURES. LIST ON LINEPRINTER$ BEGIN LIBRARY SC1; IDENTIFICATION; BEGIN LIBRARY DMAC1/3; INTEGER I; REAL XM, YM; LOAD1T (30,1000); SELECT(POINTER('(''PAGE',1')')); XM:=MAXX; YM:=MAXY; COMMENT ORIGIN OF COORDINATES IS AT 12,15 MAX IS AT 33,25; SELECT(POINTER('(''TRACK','CURVE'')')); I:=COUNT; I:=I-1; BEGIN REAL ARRAY XC[O:I],YC[O:I]; INTEGER J; FOR J:=O STEP 1 UNTIL I DO BEGIN NEXTCOORDPAIR; XC[J]:=X1;YC[J]:=Y1; END; COMMENT USE THE CURVE PLOTTING LIBRARY PROCEDURE; BEGIN LIBRARY SC8; LIMITS (0,0, 1023,1023); REGIONANDSELECT(50,50,970,970,1); LIMITS(0,0,XM,YM); GRATICULEAT(XM/21,YM/20); BORDER; CURVE(1,I,KC,YC); PLOT(XC[0],YC[0],14); FOR J:=0 STEP 1 UNTIL I DO PLOTN(XC[J],YC[J]); END END END; ENDPLOTTING; END
The following abbreviations are used:-
BS backspace PT paper throw CN case normal RO run out CR carriage return SI shift to inner set cs case shifted SO shift to outer set ER erase SP space FS figure shift ST stop code LC lower case TB tabulate LF line feed UC upper case LS letter shift UL underline NL newline ULN underline non-escape PF punch off VBN vertical bar non-escape PN punch on
This is the paper tape code on Pegasus, Mercury and Atlas.
FIGURE ATLAS INTERNAL LETTER ATLAS INTERNAL CODE SHIFT CHAR CODE NAME SHIFT CHAR CODE NAME 0.0 FS FS 0.1 0 2.0I 0 P 6.0I P 0.2 8 3.0I 8 H 5.0I H 0.3 φ 2.00 φ X 7.0I X o.4 4 2.4I 4 D 4.4I D 0.5 → 2.30 → T 6.4I T o.6 ≈ 3.10 ≈ L 5.4I L 0.7 . 3.71 . . 3.71 . 1.0 2 2.2I 2 B 4.21 B 1.1 ≥ 2.40 ≥ R 6.2I R 1.2 = 3.4I = J 5.21 J 1.3 + 3.51 + Z 7.21 Z 1.4 ) 1.1I ) F 4.6I F 1.5 6 2.6I 6 V 6.6I V 1.6 SP o.1I SP N 5.61 N 1.7 CR £ 1.3I π 2.0 1 2.1I 1 A 4.1I A 2.1 > 3.31 > Q 6.1I Q 2.2 ≠ 2.50 ≠ I 5.1I I 2.3 9 3.1I 9 Y 7.1I Y 2.4 ( 1.0I ( E 4.5I E 2.5 5 2.5I 5 U 6.5I u 2.6 LF M 5.5I M 2.7 n 4.0I ' ? 1.4I ? 3.0 * 1.6I * C 4.3I C 3.1 3 2.3I 3 S 6.3I S 3.2 - 3.6I - K 5.3I K 3.3 LS LS 3.4 7 2.7I 7 G 4.7I G 3.5 / 1.7I / w 6.7I w 3.6 , 1.2I , O 5.71 O 3.7 ER 7.70 ER ER 7.70 ER
This is sometimes called ICT 7-HOLE TAPE CODE. It is one of the original input forms on Atlas.
UPPER ATLAS INTERNAL LOWER ATLAS INTERNAL CODE CASE CHAR CODE NAME CASE CHAR CODE NAME 2.0 SP 0.1I SP SP 0.1I SP 0.1 0.2 NL NL 2.3 PT PT 0.4 TB 0.2I TB TB 0.2I TB 2.5 BS 0.3I BS BS 0.3I BS 2.6 LC LC 0.7 UC UC 1.0 3.1 3.2 1.3 3.4 ST 1.4O ST ST 1.4O ST 1.5 PN 1.5O PN PN 1.5O PN 1.6 PF 1.6O PF PF 1.6O PF 3.7 / 1.7I / : 1.70 : 4.0 0 2.0I 0 ' 4.0I ' 6.1 1 2.1I 1 [ 2.1O [ 6.2 2 2.2I 2 J 2.2O ] 6.3 3 2.3I 3 < 3.2I < 6.4 4 2.4I 4 > 3.3I > 4.5 5 2.5I 5 = 3.4I = 4.6 6 2.6I 6 UL 2.6O UL 6.7 7 2.7I 7 | 2.7O | 7.0 8 3.0I 8 ( 1.0I ( 5.1 9 3.1I 9 ) 1.1I ) 5.2 α 3.2O α 2 3.0O % 7.3 β 3.3O β π 1.3I π 5.4 ½ 3.4O ½ ? 1.4I ? 7.5 + 3.5I + & 1.5I & 7.6 - 3.6I - * 1.6I * 5.7 . 3.7I . , 1.2I , 10.0 12.1 A 4.1I A a 4.1O a 12.2 B 4.2I B b 4.2O b 10.3 C 4.3I C C 4.3O c 12.4 D 4.4I D d 4.4O d 10.5 E 4.5I E e 4.5O e 10.6 F 4.6I F f 4.6O f 12.7 G 4.7I G g 4.7O g 13.0 H 5.0I H h 5.0O h 11.1 I 5.1I I i 5.1O i 11.2 J 5.2I J J 5.2O j 13.3 K 5.3I K k 5.3O k 11.4 L 5.4I L l 5.4O l 13.5 M 5.5I M m 5.5O m 13.6 N 5.6I N n 5.6O n 11.7 O 5.71 0 o 5.7O o 16.0 P 6.0I p p 6.0O p 14.1 Q 6.1I Q q 6.1O q 14.2 R 6.2I R r 6.2O r 16.3 S 6.3I s s 6.3O s 14.4 T 6.4I T t 6.4O t 16.5 u 6.51 u u 6.5O u 16.6 V 6.6I V v 6.6O V 14.7 w 6.7I w w 6.7O w 15.0 X 7.0I X x 7.0O X 17.1 Y 7.1I y y 7.1O y 17.2 Z 7.2I z z 7.2O z 15.3 17.4 15.5 15.6 17.7 ER 7.7O ER ER 7.7O ER
ATLAS INTERNAL ATLAS INTERNAL CODE CHAR CODE NAME CODE CHAR CODE NAME 0.0 24.0 SP 0.1I SP 20.1 4.1 ! 2.7O | 20.2 4.2 " 3.3O β 0.3 24.3 # 2.5O ≠ 20.4 4.4 £ 1.3I π 0.5 24.5 % 2.0O φ 0.6 24.6 & 3.2O α 20.7 4.7 → 4.0I → 21.0 BS 0.3I BS 5.0 ( 1.0I ( 1.1 TB 0.2I TB 25.1 ) 1.1I ) 1.2 NL 25.2 * 1.6I * 21.3 LF 5.7 + 3.5I + 1.4 PT 25.4 , 1.2I , 21.5 CR 5.5 - 3.6I - 21.6 5.6 . 3.7I . 1.7 25.7 / 1.7I / 22.0 6.0 0 2.0I 0 2.1 26.1 1 2.11 1 2.2 26.2 2 2.2I 2 22.3 6.3 3 2.3I 3 2.4 ST 1.4O ST 26.4 4 2.4I 4 22.5 6.5 5 2.5I 5 22.6 6.6 6 2.6I 6 2.7 26.7 7 2.71 7 3.0 27.0 8 3.0I 8 23.1 7.1 9 3.1I 9 23.2 7.2 : 1.7O : 3.3 27.3 ; 1.3I π 23.4 7.4 < 3.2I < 3.5 27.5 = 3.4I = 3.6 27.6 > 3.3I > 23.7 7.7 ? 1.4I ? 30.0 @ 3.2O # 14.0 UL 2.6O UL 10.1 A 4.1I A 34.1 a 4.1O a 10.2 B 4.2I B 34.2 b 4.2O b 30.3 C 4.3I C 14.3 C 4.3O C 10.4 D 4.4I D 34.4 d 4.4O d 30.5 E 4.5I E 14.5 e 4.5O e 30.6 F 4.6I F 14.6 f 4.6O f 10.7 G 4.7I G 34.7 g 4.7O g 11.0 H 5.0I H 35.0 h 5.0O h 31.1 I 5.1I l 15.1 i 5.1O i 31.2 J 5.2I J 15.2 j 5.2O j 11.3 K 5.3I K 35.3 k 5.3O k 31.4 L 5.4I L 15.4 l 5.4O l 11.5 M 5.5I M 35.5 m 5.5O m 11.6 N 5.6I N 35.6 n 5.6O n 31.7 0 5.7I 0 15.7 o 5.7O o 12.0 p 6.0I p 36.0 p 6.0O p 32.1 Q 6.1I Q 16.1 q 6.1O q 32.2 R 6.2I R 16.2 r 6.2O r 12.3 s 6.3I s 36.3 s 6.3O s 32.4 T 6.4I T 16.4 t 6.4O t 12.5 u 6.5I u 36.5 u 6.5O u 12.6 V 6.6I V 36.6 V 6.6O v 32.7 W 6.7I W 16.7 w 6.7O w 33.0 X 7.0I X 17.0 x 7.0O x 13.1 Y 7.1I Y 37.1 y 7.1O y 13.2 Z 7.2I Z 37.2 z 7.2O z 33.3 [ 2.1O [ 17.3 13.4 $ 0.3O £ 37.4 33.5 ] 2.2O ] 17.5 33.6 ↑ 2.4O ≥ 17.6 13.7 ← 3.1O ≈ 37.7 ER 7.7O ER
The following books were used in preparing this manual:
Preparing a complete program for Atlas 1, ICL, March 1966
Algol Groats Manual, F R A Hopgood, August 1969
Reference Manual for the Pencil follower type PF10000 Mk.1B, DMAC Ltd, 1970
Atlas Algol System by F R A Hopgood October 1969
Thanks are due to Mr F R A Hopgood for advice and assistance in preparing this system.