CONTENTS:- 1, INTRODUCTION 2. BRIEF GUIDE TO THE PDPIS DISC OPERATING SYSTEN (DOS) 2.1 General idea 2.2 Starting a session: how to find System command mode 2.3 System commands 2.4 Assigning peripherals to a program 2.5 Listing on display 2.6 Ending a session 3. CONTENTS OF AN SD4020 TAPE 4. VIEW INTRODUCTION 5. LOADING VIEW 5.1 Usual loading procedure 5.2 Alternative peripheral device assignments 6. USING THE PROGRAM VIEW 6.1 Typing conventions 6.2 EOF - skip filemarks 6.3 FRAME - select frame 6.4 INFO - type out current message 6.5 REIND - rewind the tape 6.6 STOP 6.7 Messages produced during a run of VIEW 7. FOOTNOTES Appendix 1 Typing conventions used by DOS system. Appendix 2 Loading paper and magnetic tapes. Appendix 3 Layout of the PDP15 console. Appendix 4 PDP15 peripherals and abbreviations. Appendix 5 References Appendix 6 Quick look-up list for VIEW Appendix 7 List of messages,
This paper describes a PDP15 program VIEW, which reads a magnetic tape destined for the SD4020 and displays individual frames on the VDU of the PDPl5. The paper is written for people who have not previously used the PDP15 and a substantial amount of the paper is concerned with the details concerning hardware and system software, that someone operating VIEW ought to be aware of.
Section 2 is mainly concerned with the mode in which system commands can be typed to the computer, and describes a procedure for getting started and for finishing off, sections 2.4 and 2.5 are not essential but probably useful.
Section 5 deals with the system commands necessary for loading VIEW and in particular section 5.1 is the procedure you will normally use.
Section 6 deals with VIEW itself but you should certainly read section 4 first and it is probably useful (though not essential) to be aware of the material in section 3. Section 6 is a selection of important details from SPROGS paper 13, which contains a much fuller description of VIEW.
You may find it useful when operating VIEW to refer to the 'Quick look-up list' in Appendix 6 and the list of messages in Appendix 7.
A number preceded by a # (eg #4) refers to the list of footnotes in section 7.
The PDP15 is normally run under the control of the Disk Operating System (DOS). DOS allows one user to operate the machine (footnote #1). He calls programs by typing commands at a "control teletype". At any one time, only one teletype is the "control teletype" and currently this is the KSR35.
All programs are entered from a SYSTEM COMMAND MODE and, when completed, return to system-command-mode. It is therefore essential to get into this mode.
When starting a session and if the PDP15 is already switched on (do not be confused by the disc lights, the disc is always on), check that no one else is using the machine. A previous user could be running a computing job of several minutes or could be controlling the link to the 1906A from its other end.
To find system-command-mode, hit 'ctrlC' (make sure you are acquainted with the contents of Appendix 1) on the control teletype and observe:-
ctrlC D0$-15 V2A $
This should normally work if some program called by DOS is running. The small piece of code which reads 'ctrlC' is normally permanently resident in core as long as the computer is running a DOS program. This resident 'monitor' will jump to a bootstrap which loads from the disc a decoder for system commands and a loader for system programs; the computer is then ready to receive a system-command (as indicated by the $).
If 'ctrlC' does not work, it is necessary to restart the computer in the bootstrap program directly; this is done from the console switches (Appendix 3) as follows :-
(i) Set address switches to 77646 (in octal)
(ii) Press 'stop' and 'reset' simultaneously
(iii) Press 'start'
(iv) Observe the following:-
DOS-15 VA ENTER DATE(MM/DD/YY) - 1/28/73 Type date info in form month/day/year $
At which point you are in system-command-mode. (Note the American date) (User's response emphasised).
If restarting does not work, the bootstrap in core is corrupted and must be reloaded from paper tape (DOS BOOTSTRAP), again using the console switches:-
(i) Load papertape in reader (Appendix 2), remembering to press the feed button for the reader.
(ii) Set address switches to 77637.
(iii) Press 'stop' and 'reset' simultaneously.
(iv) Press 'readin'.
(v) Go to (iv) of restart procedure.
In the middle of a session, it is normally possible to terminate a program with ctrlC, if the program does not contain its own stopping command.
If the computer is switched off, switch on at the central console (Appendix 3) and try the 'restarting procedure above. In this case, make an entry in the log. (The log, which is normally found open on the PDP15 bookcase, should contain a line for each switchon-to-switchoff session. When switching on, write down your initials, date and switchon time. When switching off, write down initials, switchoff time and also comments about any unusual or faulty behaviour of hardware/software if this has not already been recorded. Such comments should normally be recorded when the event occurs.)
Section 5 describes the procedure for loading VIEW.
Commands entered from system-command-mode are of 2 kinds:-
(i) Commands which call programs for example:-
F4 Fortran compiler EDIT Text editor LOAD program which loads user programs EXECUTE program-name ] alternative method of E program-name ] loading user programs
(ii) Commands which specify conditions under which a program runs (ASSIGN, REQUEST (2.4), VT ON (2.5)).
A nearly complete list of these commands can be found in the booklet "PDP15/20 User's Guide", but will not be necessary in order to run VIEW.
While typing commands, remember that you can retype characters and a whole line if necessary and that each line must have a line terminator (see Appendix 1).
Before typing a command to load a program, it may be necessary to assign peripheral devices to the program using the ASSIGN command.
Each program at some stage performs some I/O and it does this by using a numbered I/O slot (or ".DAT slot" in PDP15 DOS terminology); for instance a FORTRAN program statement would write to slot 6 as follows:-
WRITE (6,100) 1ist of variables 100 FORMAT( etc )
When the WRITE statement is executed, a. "Device Assignment Table" is looked at and entry number 6 contains reference to the peripheral device required (#3). It is possible to have the table typed out while in System Command Mode (or displayed - much faster- see 2.5) (operator typing emphasised).
$REQUEST [or simply R] . . . 6 PRA *** . . . $
This would tell us that slot 6 was attached to the papertape reader. (PR - see Appendix 4). Since a program cannot WRITE to a reader, this assignment would need to be changed. If we knew that the program was intended to write ½" tape mounted on unit number 2, we would use an assignment statement, viz:-
$ASSIGN MT2 6 $ or $A MT2 6 $R .DAT DEVICE UIC . . . 6 MTA2 *** . . . $
We could put several assignments on one line, viz:-
$A MT2 G/DK 3/PR 4 $
which would also assign the disc (DK) to 3 and the papertape reader (PR) to 4.
Section 5 describes the assignments necessary to run VIEW.
'ctrlC' restores the standard settings.
Any listings intended for the 'control teletype' (for example from a Request command (section 2.4) which is more than 30 lines long) can be sent to the display. Of course there is no permanent copy. This facility is described in section 8.8 of the DOS manual (references - Appendix 5).
Do not use while VIEW is running.
If you are intending to switch off at the end of the session, this is the procedure:-
(i) Switch off the computer at the central console
(ii) Switch off the ½" tape decks if necessary
(iii) Fill in the log as outlined in section 2.2
The disk should remain on and also its green pilot light.
If you are not intending to switch off, make sure the magnetic tape decks are off and finish the session on the control teletype as follows:-
$VT OFF $LOGOUT
The SD4020 reads 7-track J" tapes with information written at 556 bpi and odd parity. The tape will have written on it, filemarks and data records.
Data records are normally 1020 6-bit characters long. (340 18-bit PDP words or 170 SD4020 instructions). If they are longer, the SD4020 is not able to read them. The PDP15 program VIEW will read the record, print a warning message and will process only the first 1020 characters of the record. If the records are shorter than 1020, the SD4020 in theory should read them, but has trouble reading a succession of short records in certain circumstances. Therefore, most of the graphics software on the 1906A produces standard length records. 'VIEW' however reads standard or snort-length records.
The contents of the data records are SD4020 instructions to control the display of lines and text on the plotter's CRT, orders to move on the film in selected camera (ADVANCE FRAME or RESET) and miscellaneous orders to vary brightness etc. A frame therefore consists of the instructions (if any) between 2 successive advance frame orders and VIEW will count frames by counting advance frame orders.
Full details of the SD4020 order code can be found in chapter 9 and appendix 4 of the GROATS manual (see References). A full description of the way in which VIEW deals with each order is in chapter 4 of SPROGS paper 13.
It should be noted that graphics software on the ICL 1906A will generate plotter tapes beginning with a header label followed by a filemark (ICL call it 'tapemark'). To find actual graphic information, the filemark should be skipped (section 6.2). 0n a tape produced by Atlas, the graphic information begins immediately. The graphic information (in either case) will normally· consist of
- a frame with CUT in large letters - an alignment frame X - a frame with job identification
followed by frames the user has generated.
VIEW is a program which reads a magnetic tape intended for the SD4020 microfilm recorder, selects a frame which has been requested by the operator and displays it on the VDU. An operator controls VIEW by typing on a keyboard, which is normally the control teletype (TT), but could be a different one if specially "assigned" before loading VIEW. Whichever it is, we will call it the "command input device" (cid). Messages for the user's attention will appear on the "message output device" (mod). This too will normally be the control teletype if the "usual loading procedure" is followed (section 5.1).
Messages could arise for a variety of reasons and section 6.7 gives a reference list of sources of information about them.
At the time of writing, the following procedure will load VIEW with the correct assignments (2.4). The cid and the mod (section 4) will both be the control teletype as a result of using this procedure.
(i) check that system is in System Command Mode (2.2)
(ii) load the SD4020 tape and set the deck to unit (Appendix 2) (remove the write permit ring)
(iii) carry out the following dialogue:-
$LOGOUT $VT OFF $A <SYS> -4 $E VIEW TAPE VIWER 23NOV72
at which stage the program is ready to receive commands.
Section 6 describes how to use the program.
The "usual loading procedure" should normally be sufficient. However it may at some stage be desirable to use different devices or the standard set of assignments may change as system versions change (5).
For this reason, the table below lists the numbered I/0 slots used by VIEW, the use made of them and the usual device assigned to it.
-4 where files VIEW XCT and VIEW XCU are sought GK<SYS> 1 magtape software requires it MT1 3 "command input device" TT 4 "message output device" TT 7 input from SD4020 tape MT1 10 VT15 VT
Using this table, some possible alternative assignment are:-
(a) $A <SYS> -4 $A LT0 3 [Display keyboard for command input $A MTF1 1,7 [Alternative magnetic tape handler program $E VIEW (b) $A <SYS> -4 $A LT1 -4 [Message output to 2nd teletype, while command input $E VIEW [is as usual, separates hardcopy of input for output
We now suppose that VIEW has been successfully loaded, in which case
TAPE VIEWER ddmmmyy ddmmmyy
appears on the mod (terminology is introduced in section 4). The date indicates the most recent update of the program. The INFO command will reveal details of this. VIEW now awaits commands from the cid.
The possible command-names are EOF, FRAME, INFO, REWIND or STOP.
This section will give an introduction to these commands sufficient to allow you to experiment with them. Fuller details are in chapter 3 of SPROGS paper 13. Appendix 6 provides a "quick-look-up list".
(1) ← from the program is a signal that the program is ready to receive a command typed on the cid.
(2) Each command-name can be abbreviated to its initial letter - EOF to E, FRAME to F etc.
(3) Each command must be typed on one line only and the line must be terminated by a 'carriage return' ·(marked CR or RETURN) or an 'altmode'. 'Linefeed' has no effect.
(4) The usual (as Appendix 1) meanings are attached to
ctrlC which terminates this run of VIEW ctrlR which usually occurs when a ½" tape is not correctly made ready ctrlU and rubout
(5) Conventions used in this section:-
n means an integer d denotes a separating character - which must be present. It could be either comma or space. ↓ denotes a carriage return or altmode ^ denotes· a space
(6) If you get the name wrong, the following message will appear
NOT RECOGNIZED
In general the command, that is typed is:-
EOFdn
There are 2 cases.
(a) Forwards
If n>0, the tape is spaced forward n filemarks and stops immediately after the last one skipped.
Example
←EOF^1 ↓ [user typing emphasised]
This will cause tape to be positioned after the next filemark.
(b) Backwards
If n*lt;0 or n=0, then the tape is moved backwards. It is positioned after a filemark and there are p filemarks (where p=-n) between it and its previous position.
Example
←E^-1 ↓
Causes tape to be moved back over the previous filemark and then back further until just in front of the filemark previous to that.
Special case
EOF#8595;
has the same effect as EOF.0↓. Then tape is moved to the beginning of the current file if not there already.
Messages from VIEW during an EOF command
AFTER FILEMARK n
TAPE REWIND? Y OR N
This means that you have typed a command which would send the tape back to load-point. Type Y↓ to confirm (YES). Type N↓ for a chance to retype command (NO).
EOT AFTER n FILEMARKS
End of tape has been found. A backwards-EOF or REWIND order is now necessary to find graphical information that has been missed.
Once the right number of filemarks if any have been passed, frames can be selected and looked at.
There are 2 possible formats:-
(a) FRAMEdn↓ (b) FRAME ↓
A command in format (a), requests VIEW to search for the nth frame in the current file and display it. A command in format (b) requests the next frame. Numbering restarts at the beginning of each file.
The frame number appears on the screen in the top right corner. This is not to be confused with the frame count which the graphics output package may include in the plotter tape; This usually appears on top left.
Example
(a) FEOF^1↓ (b) FRAME^4↓
would skip a filemark and then look for the 4th frame. This will usually be the job identification frame.
Messages peculiar to FRAME command
FRAME n m DISPLAY ORDERS
Normal response when the required frame has been found and displayed. m is the number of words the display file occupies in the PDP15 core store.
BACK?
(a) Syntax error.
(b) Program has been asked to search backwards. The only method of searching backwards is to use EOF and retype the frame-selection.
FRAME OVERFLOW
The amount of graphical information in this frame is too great for this program. 12000 is the current maximum. Any surplus graphical orders are not displayed. There should not however be any problem with the SD4020 (#4).
XS. CHARACTERS
There is also a limit on the number of characters that will be generated by display hardware. Again this would not suggest any problem with the SD4020.
END OF FILE FRAME m RECORD n NEW FILE? Y OR N--
A filemark has been hit. Frame number and record number are counted from the previous filemark. Type Y↓ to skip the filemark (YES). Type N↓ to remain.
END OF TAPE BREAKPOINT←
Data switch 0 is on. (See section on data switches that follows). If you do not want every SD4020 order printed, set switch 0 to OFF and hit RETURN.
Controlling the search with the data switches
Appendix 3 describes the position of 'data switches' on the PDP15 console. Switches 0- 3 control the search for a frame. They can be altered at any time.
Switch 0 on is a laborious way of discovering in full detail what is in on the tape. Information about each SD4020 order is typed on the mod until switch 0 is set off.
Switch 1 off will cause all frames between the current frame and the selected one to be displayed in turn before the tape finally stops at the selected frame. The speed of movement will depend on the amount of information to be processed in each frame. A slow animated sequence results.
Switch 1 on will cause the tape to move to the selected frame as fast as possible.
Switch 2 on suppresses all messages from the program while and only while the intervening frames are being sought. Hardly ever used.
Altering the position of Switch 3 during a frame search will cause the search to be interrupted. This is useful in
(a) looking for a frame you know by content but not by number,
(b) correcting "finger trouble". If you type 'F f^1000000' instead of 'F^100', you can correct it by pressing Switch 3.
Note that no particular position of Switch 3 has a permanent meaning to VIEW; it is the change of position that is significant.
For fuller details see SPROGS paper 13 sections 3.1.2 and 3.3.
INFO↓
There is a current message which always contains the latest update to VIEW. The date in
TAPE VIEWER ddmmmyy
is the date of the latest update.
REWIND
The SD4020 tape is rewound to its load-point. Rewinding can be done off line but this command also resets the internal variables of the program.
Format is
STOP↓
Control leaves VIEW and returns to 'System Command Mode'. The tape is not moved.
This section will do no more than say where information can be found.
(1) Appendix 7 gives a list of messages produced by VIEW itself.
(2) Sections 6.2 and 6.3 describe messages produced during a FRAME or EOF command.
(3) Section 5 of SPROGS paper 13 should be used if all else fails.
(#1) (Section 2.1) Later this year we intend to replace DOS by a several-user software system RSX plus. When the VIEW program becomes available under RSX, the loading commands will be different.
(#2) (Section 2.2) "System Command Mode" is a term only used in this document. The term used in DEC manuals is "non-resident monitor"; the motivation of this term is to do with the structure of the system.
(#3) (Section 2.4) In fact an entry in the table contains a reference to a peripheral device program or DEVICE HANDLER. It is the Device Handler that actually executes the machine orders to perform I/0 for a given device. MTA and MTF for instance are different handlers for the device magnetic tape (MT). Referring to MT in an assignment statement will automatically request MTA.
(#4) (Section 6.3) There has to be a restriction, because the orders that control the display must be in the core store of the PDP15, as long as the picture is displayed. There is no such restriction on the SD4020; the film itself is the storage medium.
(#5) (Section 5.2) When in System-Command-Mode, the standard set of assignments for a current version of the system can be found using the REQUEST command. Therefore on the control teletype:-
ctrlC $KEEP OFF $R . . printout $
Whenever the control teletype is used for input, there are some control characters available.
The convention 'ctrl*', where* is some letter in the list below, is used in this document to mean:-
"press the key marked 'CTRL' and while it is pressed down hit the 'letter. DOS will 'echo' ↑* (where * is the letter)".
INPUT ECHO MEANING 'ctr1C' ↑C current program is terminated and control is returned to DOS (system-command-mode) 'ctr1R' ↑R if DOS types 'IOPS 4' this means some device is not ready to be used by the program (probably ½" tape). Make the device ready and type 'ctrlR'. 'ctrlU' @ the whole of the current line is deleted from the input buffer; typing at the keyboard can begin again. 'ctr1X' ↑ or nothing controls text output on display if VT ON has been used - brief mention in 2.5.
If you press the RUBOUT key, before 'return' or 'altmode', then the previous character is deleted. For example:-
ABCDruboutruboutEF will put ABEF into the input buffer. DOS will echo / ; the hard copy will look like ABCD//EF
No command is acted upon by the system unless a line terminator is typed (RETURN key or ALTMODE key). Therefore before the line terminator is typed, rubout and 'ctrlU' can be used.
This appendix is intended to be a reference rather a learning-aid. It will simply give a step-by-step procedure for each peripheral,
(1) Twist the top hub anticlockwise to loosen it.
(2) Put the tape reel around the hub, make sure it is flat and tighten the hub again. If the tape is not flat, then it will revolve crookedly. VIEW does not write to the tape, so the write-permit ring can be removed. The gap it leaves must be inwards.
(3) Wind off some tape until is almost reaches the floor.
(4) Guide the tape between the 2 white covers and bring the end onto the top of the take up reel. The tape should be straight all the way through and must be entirely the other side of the glass vacuum cover, so that nothing prevents the tape being drawn into the vacuum at step 7.
(5) If power is not already on, press POWER switch.
(6) Press and hold START/BRAKES switch to BRAKES. This releases the brake and will allow you to turn the take-up reel clockwise. With ingenuity, keep hold of the tape while turning the take-up reel 3½-4 revs. Release the BRAKES-switch.
(7) Press START/BRAKES switch to START this will cause the tape to be drawn into the vacuum chambers. The door can now be closed.
(8) Dial the thumbwheel unit number to 1 for VIEW program.
(9) In the top row of switches, press FORWARD and, when the tape has stopped moving, ONLINE. If tape continues to move indefinitely, load-point must already have been passed. Therefore, press RESET and REWIND to bring it back. When it stops press ONLINE.
(10) The tape is now ready to be accessed by the program. Check that, of the lights in the top row, LOAD, RESET, ONLINE & POWER are alight and that, of the lights in the top right READY, LOAD-POINT, 7, WRITELOCK (if no write-ring) and (possibly) SELECT.
(1) Press OFFLINE.
(2) If tape is not at load-point (see top right set of lights), then press REWIND (unless tape is known to be before load-point).
(3) Press and hold START/BRAKES to BRAKES and wind the top reel anti-clockwise until all the tape is on the top reel. Note that the brakes take an instant to release themselves.
(4) Twist the top hub anti-clockwise to loosen it, remove the tape reel and retighten the hub.
(5) If no more tapes POWER OFF.
(1) Note that Reader has shiny knob in centre. Turn it clockwise to lift a black movable plate in the mechanism.
(2) Note that reader has a fanfold tape holder either side of the mechanism in the centre. Put fan-fold tape in right-hand holder.
(3) Take hold of the leading piece of tape and check that (a) the leading line of holes is off centre away from you and (b) the line of arrows printed on the tape is towards your left. Otherwise turn the tape around until it is correct.
(4) Lay the leading piece of tape immediately under the fixed black plate and over the toothed wheel; the teeth should fit the holes.
(5) Turn the shiny knob anti-clockwise to lower the black movable onto the tape; the teeth should still fit the holes.
(6) Ensure that Reader switch is ON.
(7) Press FEED button (for READER not PUNCH) sufficiently long for some blank tape to be sitting in left-hand holder, but obviously no non-blank tape should pass underneath the fixed plate.
(8) Paper tape is now ready to be read by the computer.
Not all the tape will pass through after being read by the computer. To unload either (a) press the feed button until it is all through, or (b) turn the knob to lift the movable plate and lift the tape out.
The central console of the PDP15 is the array of switches and lights with a working surface in front. A diagram of the switches is shown below and those features mentioned in this document are labelled.
The address switches are used in loading a paper tape program (like the bootstrap or hardware test program), or in re-starting the computer (section 2.2). A switch set with the stripe showing is a bit set to 1 in the number representing the address. When we refer to this number (or when the DEC manuals do), the bits will be grouped into three's; in other words, it will be expressed in octal. The address in the diagram therefore, is 77646.
Each bit of the data switches can be read by a program. Only bits 0 to 3 are used by VIEW. In the diagram, switches 0, 2 and 3 are set.
The ON/OFF switch for the computer is turned clockwise. for ON and anti-clockwise for OFF. The ½" tape decks are switched on/off separately. The control teletype is switched off automatically when the computer is switched off.
This appendix gives a list of PDP15 peripherals mentioned in this document with the abbreviations that are understood by the software. In particular, these abbreviations are used in assignment commands (sections 2.4 and 5).
GROATS: A graphic output package for the 1906A using the SD4020 (from Basic Software Group)
SPROGS Paper No 13: How to view SD4020 tapes on the PDP15 (copy in PDPl5 bookcase)
PDP15/20 User's Guide: Advanced Monitor Software Systems (DEC-15-MG2B-D) (copy in PDP15 bookcase).
PDP15 DOS User's Manual DEC-15-MRDA-D (copy in PDP15 bookcase)
The following symbols are used with a special meaning:
d a non-alphanumeric separator eg space or n an integer ↓ carriage return
Commands end with ↓, examples end with return.
Command Examples Meaning Edn E,1 If n>0, move the tape forwards in filemark EOFdn If N≤0, final position is as if The tape were moved backwards (1-n) filemarks then forward over 1 filemark E E Same as E,0; tape immediately after previous filemark EOF Fdn F.200 Display the nth frame in the current file FRAMEdn F F Display next frame FRAME I I Type latest information about program INFO R R Rewind tape REWIND S S Stop the program and return control to the monitor STOP
Switch Number On Off 0 Printing if each SC4020 order Suppress printing 1 Fast search for a frame Slow search - intervening frames displayed 2 No error messages while Error message printed searching for a frame 3 Change in state means interrupt search for a frame neither on or off has any particular meaning
This appendix consists of a list of messages produced by the program.