PDP-12 User's Manual

CHAPTER 5
INPUT/OUTPUT BUS AND PERIPHERALS

STANDARD I/O BUS PERIPHERALS

This section contains description for a number of standard I/O Bus peripherals which are available on the PDP-12. The ASR33, DP12, KW12, and XY12 are previewed in the basic PDP-12. The LP12, PR12, PP12, PC12, and CR12 are available in the BA12 option expander. Other options contain their own logic and mounting hardware.

Teletype Model 33 ASR and Control

The standard Teletype Model 33 ASR (automatic send- receive) can be used to type in or print out information at a rate of up to ten characters per second, or to read in or punch out perforated paper tape at a ten characters per second rate. Signals transferred between the 33 ASR and the control logic are standard serial, 11 unit code Teletype signals. The signals consist of marks and spaces which correspond to idle and bias current in the Teletype, and to zeros and ones in the control and computer. The start mark and subsequent eight character bits are one unit of time duration and are followed by the stop mark which is two units. The control circuitry for this device is located in the PDP-12 central processor.

The 8-bit code used by the Model 33 ASR Teletype unit is the American Standard Code for information Interchange (ASCII) modified. To convert the ASCII code to Teletype code add 200 octal (ASCII + 200(8) = Teletype). This code is read in the reverse of the normal octal form used in the PDP-12 since bits are numbered from right to left, from 1 through 8, with bit 1 having the least significance. Therefore perforated tape is read:

	8 7 6 5 4 s 3 2 1
	   |     | |     |
             Most   Least
      Significant   Significant
        Octal Bit   Octal Bit
The Model 33 ASR set can generate all assigned codes except 340 through 374 and 376. Generally codes 207, 212, 215, 240 through 337, and 377 are sufficient for Teletype operation. The Model 33 ASR set can detect all characters, but does not interpret all of the codes that it can generate as commands. The standard number of characters printed per line is 72. The sequence for proceeding to the next line is a carriage return followed by a line feed (as opposed to a line feed followed by a carriage return). Appendix 3 lists the character code for the Teletype. Punched tape format is as follows:
Tape Channel              8 7 6 5 4 s 3 2 1

Binary Code(1 = Punch)    1 0 1 1 0    1 0 0
			  \ / \   /    \   /
Octal Code                 2    6        4
Teletype Control

Serial information read or written by the Teletype unit is assembled or disassembled by the control for parallel transfer to the accumulator of the processor. The control also provides the program flags whcih cause a program interrupt or an instruction skip based upon the availability of the Teletype and the processor as a function of the program.

In all programmed operation, the Teletype unit and control are considered as a Teletype in (TTI) as a source of input intelligence from the keyboard or the perforated- tape reader and is considered a Teletype out (TTO) for computer output information to be printed and/or punched on tape. Therefore, two device selectors are used, the select code of 03 initiates operations associated with the keyboard/ reader, and the device selector, assigned the select code of 04, performs operations associated with the teleprinter/ punch. Parallel input and output functions are performed by corresponding IOT pulses produced by the two device selectors. Pulses produced by IOP1 pulse trigger skip gates; pulses produced by the IOP2 pulse clear the control flags and/ or the accumulator; and pulses produced by the IOP4 pulse initiate data transfers to or from the control.

Keyboard Reader

The keyboard and tape reader control contains an 8-bit buffer (TTI) which assembles and holds the code for the last character struck on the keyboard or read from the tape. Teletype characters from the keyboard/ reader are received serially by the 8-bit shift register TTI. The code of a teletype character is loaded into the TTI so that spaces correspond with binary zeros and holes (marks) correspond to binary ones. Upon program command the content of the TTI is transferred in parallel to the accumulator.

When a Teletype character starts to enter the TTI the control de-energizes a relay in the Teletype unit to release the tape feed latch. When released, the latch mechanism stops tape motion only when a complete character has been sensed, and before sensing of the next character is started.

A keyboard flag is set to a binary one, and causes program interrupt when an 8-bit computer character has been assembled in the TTI from a Teletype character. The program must sense the condition of this flag with a KSF microinstruction, and if the flag is set, issue a KRB microinstruction which clears the AC, clears the keyboard flag, transfers the content of the TTI into the AC, and enables advance of the tape feed mechanism.

Instructions for use in supplying data to the computer from the Teletype are:

KSF Skip on Keybaord Flag

Octal Code: 6031
Event Time: 1
Execution Time: 4.25 µsec
Operation: The keyboard flag is sensed, and if it contains a binary 1 the content of the PC is incremented by one so that the next sequential instruction is skipped.
Symbol: If Keyboard Flag = 1, then PC + 1 = > PC

KCC Clear Keyboard Flag

Octal Code: 6032
Event Time: 2
Execution Time: 4.25 µsec
Operation: The AC is cleared in preparation for another microinstruction to transfer a character from the TTI into the AC. The keyboard flag is also cleared, this allows the hardware to begin assembling the next input character in the TTI. If there is tape in the reader and the reader is on, the character over the read head will be loaded into the TTI and the tape advanced one frame. If there is no tape or the reader is turned off (STOP or FREE) the character struck on the keyboard will be assembled into the TTI. In either case, when the character is completely assembled in the TTI the hardware causes the keyboard flag to be set to a binary 1.
Symbol:

KRS Read Keyboard Buffer Static

Octal Code: 6034
Event Time: 3
Execution Time: 4.25 µsec
Operation: The content of the TTI is transferred into bits 4 through 11 of the AC. This is a static command in that neither the AC nor the keyboard flag is cleared.
Symbol: TTI V AC[4:11]= > AC[4:11]

KRB Read Keyboard Buffer Dynamic

Octal Code: 6036
Event Time: 2, 3
Execution Time: 4.25 µsec
Operation: This microinstruction combines The functions of the KCC and KRS. The AC and keyboard flag are both cleared and the content of the TTI is transferred into bits 4-11 of the AC. Clearing the keyboard flag allows the hardware to begin assembling the next input character into the TTI (as discussed with the KCC). When the character is completely assembled in the TTI, the hardware causes the flag to be set indicating it again has a character ready for transfer.
Symbol:

The following are enamples of possible sequences of instruction to read a character into the AC from the teletype:

LOOK,     KSF              /SKIP IF FLAG = 1
	  JMP LOOK         /JMP BACK & TEST FLAG AGAIN
	  KRB              /TRANSFER TTI CONTENTS INTO AC
This sequence waits for the TTI to set its flag, indicating that it has a character ready to be transferred. It then skips to the KRB command which causes the character to be read into the AC from the TTI.

By making this sequence of instructions a subroutine of a larger program, it can be accessed each time an input character is desired.

	   KCC                /CLEAR TTI FLAG
	    .
	    .
	    .
	
READ,      0                  /STORE PC HERE FOR RETURN ADDRESS
	   KSF                /SKIP IF /FLAG= 1
	   JMP.-1             /TEST FLAG AGAIN
	   KRB                /READ CHARACTER INTO AC
	   JMP I READ         /EXIT TO MAIN PROGRAM
Teleprinter/Punch

On program command a character is sent in parallel from the accumulator (AC) to the TTO shift register for transmission to the teleprinter/ punch unit. The control generates the start space, then shifts the eight character bits serially into the printer selector magnets of the teletype unit, and then generates the stop marks. This transfer of information from the TTO into the teleprinter/punch unit is accomplished at the normal teletype rate and requires 100 milliseconds for completion. The flag in the teleprinter control is again set to a 1 when the last of the character code has been sent to the teleprinter/ punch, indicating that the TTO is ready to receive a new character from the AC. The flag is connected to both the program interrupt synchronization element and the instruction skip element. Unless using the interrupt, the program must check the flag and, upon detecting the ready or set (binary 1) condition of the flag by means of the TSF microinstruction, the program must issue a TLS microinstruction which clears the flag and sends a new character from the AC to the TTO to be shifted out to the teleprinter/ punch. The process of sending a character to the TT0 from the AC is a great deal shorter than that of shifting the character out to the teleprinter/ punch, therefore, the program must account for the time differential by waiting for flag to be set (1) before issuing a TLS.

Instructions for use in outputing data to the teletype are as follows:

TSF - Skip on Teleprinter Flag

Octal code: 6041
Event time: 1
Execution time: 4.25 µsec
Operation: The teleprinter flag is sensed, and if it contains a binary 1 the content of the PC is incremented by one so that the next sequential instruction is skipped.
Symbol: If Teleprinter Flag = 1, then PC + 1 = > PC

TCF - Clear Teleprinter Flag

Octal code: 6042
Event time: 2
Execution time: 4.25 µsec
Operation: The teleprinter flag is cleared to 0.
Symbol: 0 = > Teleprinter Flag

TPC - Load Teleprinter and Print

Octal code: 6044
Event time: 3
Execution time: 4.25 µsec
Operation: The contents of bits 4-11 of the AC are sent to the TTO, then the hardware starts shifting the character out to the printer/ punch unit. This microinstruction does not clear the teleprinter flag.
Symbol: C(AC[4:11])= > TTO causing:
C(TTO) = > printed and (if punch on) punched.

TLS - Load Teleprinter Sequence

Octal code: 6046
Event time: 2, 3
Execution time: 4.25 µsec
Operation: This microinstruction combines the functions of the TCF and the TPC. The teleprinter flag is cleared (set to 0) then the contents of bits 4-11 of the AC are sent to the TTO, where the hardware shifts the character out to the printer/ punch unit. When the printer/ punch has finished outputting the character and is ready for another character, the hardware has again raised the teleprinter flag (set it to a 1) to indicate this free condition. The whole operation, from the time at which the TLS has cleared the flag and sent out the character until the time at which the hardware finishes with the character and sets the flag to a 1 again, requires 100 milliseconds with the time required for the character to travel from the TTO to the paper being considerably greater than that required for it to be sent from the computer to the TTO.
Symbol:

The following are examples of possible ways to use these instructions to output a character to the teletype. The last is recommended:
	 CLA TAD X         /PUT CHARACTER CODE INTO AC FROM LOACATION X
	 TLS               /LOAD TTO FROM AC & PRINT/PUNCH
FREE,    TSF               /TEST FLAG TO SEE IF DONE PRINTING, SKIP IF = 1
	 JMP FREE          /TEST FLAG AGAIN
	 CLA               /CLEAR CHARACTER CODE FROM AC
	  .
	  .
	  .  continue program
This sequence sends one character code to the TTO and waits for it to finish printing/ punching before continuing program. It does not require that the flag to be set in order to output the character. By making this sequence of instructions a subroutine of a larger program, it can be accessed (by a JMS) each time a character is to be output. Assume that the subroutine is entered with the character code in the AC:
TYPE,    0

	 TLS           /LOAD TTO FROM AC AND PRINT/PUNCH
	 TSF           /TEST FLAG' SKIP IF = 1
	 JMP.-1        /JMP BACK &TEST FLAG AGAIN AND AGAIN
	 CLA           /CLEAR CHARACTER FROM AC
	 JMP I TYPE    /EXIT TO MAIN PROGRAM
  .
  .
  .
By rearranging this subroutine the present time spent waiting for the character to be output and the flag to be set to 1 (100 milliseconds) can be used to continue the calculations, etc, of the main program thus making more efficient use of time.
TYPE,    0

	 TSF         /TEST FLAG TO SEE IF PRINTER FREE, SKIP IF YES OR
	 JMP.-1      /WAIT TIL IT IS BY TESTING AGAIN AND AGAIN
	 TLS         /OUTPUT CHARACTER
	 CLA
	 JMP I TYPE  /EXIT TO CONTINUE PROGRAM
This subroutine tests the flag first and waits only if a previous character is still bring output. It clears the AC and exits immediately after sending the character to the TTO and is continuing to run the user's program instead of waiting while the teletype (a much slower device) is off typing/ punching the last character. The PDP-12 clears all flags which are on the clear flag bus (this includes teletype flags) when key I/O PRESET is depressed. This means that the user program must account for setting the teleprinter flag initially and after each TCF if (any) or else the program will hang up in the wait loop of the print routine. The only way to set the flag to a 1 is through issuing a microinstruction which leaves the flag set when done. This instruction should appear among the first few executed and must appear before any attempt to output a character.

The following example initializes the flag with a TLS as the first instruction of the program and makes optimum use of the time that would be spent waiting for the teletype to finish.

BEGIN,  TLS             /INITIALIZE - TELEPRINTER FLAG
	 .
	 .
	 .
	TYPE,   0
	TSF             /SKIP IF FLAG = 1 or...
	JMP.-1          /WA1T UNTIL IT IS LOAD TTO &
	TLS             /TYPE CHARACTER
	CLA
	JMP I TYPE      /EXIT & CONTINUE PROGRAM WHILE
			/TELETYPE IS FINISHING CHARACTER
TTY/DATA Phone Interface(DP12)

The DP12 is an eight bit serial interface to be used with Teletypes or Data Phones. The DP12A is 110 Baud Teletype interface. The DP12B is a crystal clock controlled interface for which the user supplies the BAUD rate between 2O and 100,000 Baud. The DP12B has input and output signals essentially equivalent to EIA Standard.

Programming.

The programming of the DP12 is identical to that of the system teletype but uses I/O codes 40 and 41.

The Teletype interrupt disable function of the LINC ESF instruction applies to the DP12 also.

Teletype Option (Type PTO8)

The Teletype facility of the basic computer can be expanded to accommodate several Model 33 or Model 35 Automatic Send Receive or Keyboard Send Receive units with the PT08 option. A PT08 option allows a Teletype to be interfaced to the PDF-12. Each Teletype line added contains logic elements that are functionally identical to those of the basic Teletype control. Therefore, instructions and programming for each PT08 are similar to those described previously for the basic Teletype unit. The following device select codes have been assigned for 5 PT08 options.

Line                 Select
Unit                 Codes

1                  42 and 43
2                  44 and 45
3                  46 and 47
4                  40 and 41
5                  11 and 12
Instruction mnemonics for Teletype equipment in the PT08 system are not recognized by the program assembler (PAL III) and must be defined by the programmer. Mnemonic codes can be defined by the mnemonic code of the comparable basic Teletype microinstructionl suffixed with PT and the line number. For example, the following instructions can be defined for line 3:
Mnemonic              Octal                  Operation

TSFPT3                6441          Skip if teleprinter 3 flag is a 1.
TCPPT3                6442          Clear teleprinter 3 flag.
TPCPT3                6444          Load teleprinter 3 buffer (TT03) from the
				    content of AC[4:11]and print and/ or
				    punch the character.
TLSPT3                6446          Load TT03 from the content of AC[4:11], 
				    clear teleprinter 3 flag, and print and/or
				    punch the character.
KSFPT3                6451          Skip if keyboard 3 flag is a 1.
KCCPT3                6452          Clear AC and clear keyboard 3 flag.
KRSPT3                6454          Read keyboard 3 buffer (TTI3) static. The
				    content of TT13 is loaded into AC[4:11]
				    by an OR transfer.
KRBPT3                6456          Clear the AC, clear keyboard 3 flag, and
				    read the content of TTI3 into AC4-11.

KW12 Real Time Clock

The KW12 is a prewired PDP-12 option including a kit of modules and an input control panel. The input panel mounts behind the vertical door on the left front of the PDP-12. The clock consists of a 12-bit counter with overflow and a 12-Bit Buffer Preset Register. This register buffers information transfers between the clock counter and the Processor Accumulator. The components of the KW-12 include:

Time Base

The programmable time base provides count pulses to the counter register at any of the following rates derived from a 400 kz1 crystal clock:

Input channel 1 may be used to enable an external source to drive the counter. The programmable selection of the rate is accomplished with the three rate bits of the clock control register.

Input Synchronizers

There are three input channels which are used to convert external events into a sychronized control and status signal for the clock. Each input channel consists of an input Schmitt trigger with pulse generator. Five flip-flops and associated control gating. The function of the Schmitt trigger and pulse generator is to convert the crossing of a preselected voltage threshold by an external signal into a single event (pulse). This Schmitt trigger has level and slope selection available on the front control panel. This provides selection of any threshold between +3v and either positive or negative going slope. The Schmitt trigger has a hysteresis of 0.3v. Refer to Figure 5-28.

The five flip-flops of each of the input Circuits are: INPUT ENABLE, INPUT, PRE-EVENT, EVENT, and ENABLE EVENT INTERRUPT. Figure 5-29 shows a simplified input Synchronizer Logic diagram.

Input Enable Flip-Flop - This flip-flop gates on and off input signals to the clock. It is set and cleared under program control.

Input Flip-Flop - The INPUT flip-flop is set by an external signal from the Schmidt trigger input or under program control with the CLLR instruction. The INPUT flip-flop provides synchronization between external timing and internal clock timing

Pre-Event Flip-Flop - The input is strobed into the PRE-EVENT flip-flop by the strobe 1 signal (400 kHz). The strobe 2 signal occurs 1 µsec after strobe 1, this clears the INPUT flip-flop if EVENT is on a 0.

Event Flip-Flop- The EVENT flip-flop is loaded with the PRE-EVENT flip-flop on the next strobe 1 and continues to remain set during succeeding strobe 1 pulses. When EVENT is loaded PRE-EVENT is cleared.

The occurrence of strobe 2 with EVENT (0) and PRE-EVENT (1) is the actual single event used by other parts of the clock logic such as counting and transfers from COUNTER TO BUFFER register.

       - To be done (scan) -
Figure 5-28. KW12 Clock Organization

The EVENT and PRE-EVENT flip-flops can be loaded into the AC under program control. When this transfer occurs the corresponding INPUT, PRE-EVENT, and EVENT flip-flops are cleared.

If a second input occurs before EVENT is cleared then both the PRE-EVENT and EVENT flip-flops will remain set as an error indication.

Enable Event Interrupt - This flip-flop connects the EVENT flip-flop to both the Skip and Program Interrupt busses it is set and cleared under program control.

Counter Register

The COUNTER register is a 12-bit counter which can be loaded from the BUFFER-PRESET register and can he transferred into the BUFFER-PRESET register. The counter is usually left free running at the program selected rate and its contents read through the Buffer Preset register.

Overflow Flip-Flop - The OVERFLOW flip-flop is set by the most significant bit of the counter register going from 1 to 0.


         - To be done -

Figure 5-24. Simplified Input Synchronizer

Buffer-Perset Register - This 12-bit register is used to buffer the current count in the clock register at the occurrence of an event when operating with Mode 1(1). With Mode 1(0) and Mode2 (1)the Buffer Preset register holds the number to be transferred into the counter when overflow occurs. The Buffer Preset Register can be loaded into the AC or the AC can be transferred into the Buffer-Preset register.

Use of Clock With A-D

With Mode 0(1) the occurrence of overflow is used to start an A-D conversion if the A-D is in the Fast Sample mode. With clock Mode 0(1) the A-D is only triggered by the clock. When a SAM instruction is given the conversion just completed is transferred to the AC and the new MPX channel is selected.

If the SAM instruction is given prior to completion of the conversion triggered by the clock, the processor waits in TIME STATE 5 until the conversion is complete.

Clock Input Panel

The input panel for the clock is located behind the door on the left side of the front of the PDP-12. Each input channel has three input binding posts (input high, input low, and ground). The input is differential, +/- 2v range, input resistance greater than 10,000 ohms, and protected against inputs up to +/- 100v. Associated with each input is a level control and a slope control. The slope determines the slope of the input signal which will cause a trigger pulse. The level control selects the input voltage at which the trigger pulse will be generated. The trigger pulse will set the associated input flip-flop of the clock if that input channel is enabled.

KW12 Clock Instructions

The KW 12 clock is controlled by PDP-12 IOT instructions. These instructions can be used from either PDP-8 mode directly or in conjunction with the LINC IOB instruction. Execution time for the clock IOT's is 4.25 microseconds. When used with IOB the total instruction time is 5.9 microseconds.

CLSK - Skip On Clock Interrupt

Octal code: 6131
Event time: 1
Execution time: 4.35 µsec
Operation: Skip if clock interrupt condition exists. The interrupt conditions are as follows:

  1. Enable Event 1 Interrupt (1) and Event 1 (1).
  2. Enable Event 2 Interrupt (1) and Event 2 (1).
  3. Enable Event 3 Interrupt (1) and 3(1).
  4. Enable Overflow Interrupt (1) and Overflow (1).

CLLR - Load Clock Control Register 1

Octal code: 6132
Event time: 1
Execution time: 4.25 µsec
Operation: The contents of the AC register is transferred to the clock control register. Three bits are used to provide simulated data input to each of the three Event input channels. The AC is unchanged.

Bit

00                  Count Rate Register Bit 0
01                  Count Rate Register Bit 1
02                  Count Rate Register Bit 2
03                  Mode Control Register Bit 0
04                  Mode Control Register Bit 1
05                  Mode Control Register Bit 2
06                  Not used
07                  Simulate input to Channel 1
O8                  Not used
09                  Simulate input to Channel 2
10                  Not used
11                  Simulate input to Channel 3

The rate of the counter register input count pulses is determined by the contents of the Count Rate register.

Count Rate               Frequency of
Register                 Count Pulses

  000                      Stop
  001                      400 kHz
  010                      100 kHz
  011                       10 kHz
  100                        1 kHz
  101                      100 Hz
  110                 Rate of input Channel 1
  111                      Stop

NOTE:

When Channel 1 is used as the time base for the counter, the Event flag is automatically cleared and Channel 1 Interrupt Enable would normally be left off.

The contents of the Mode Control Register determines the method by which the clock system operates.

000 -
Counter runs selected rate. Overflow occurs every 4096 counts. The overflow flag remains set until cleared with 6135 instruction.
001 -
Counter runs at relected rate. When overflow occurs the contents of the Clock Buffer-Preset register are automatically transferred to the Counter which continues. The Overflow flag remains set until cleared with a 6135 instruction.
010 -
Counter runs at selected rate. On the occurrence of an Input Event the contents of the counter are automatically transferred to the Buffer Preset register and the counter continues to count.
011 -
This is identical to Mode 10 except that the Clock Counter register is cleared after its contents have been transferred to the Buffer Preset register on Event 3. Event 1 and 2 remain only to cause transfer from the clock counter to the Buffer Preset register.
100, 101, 110, 111 -
When Mode 0 is set to a 1 the occurrence of Overflow is used to trigger the A-D converter if A-D control also has the FAST-SAMPLE flip-flop set. This allows analog to digital conversion to take place under the automatic timing control of the clock. For details of the Analog-to-Digital converter, see Section 3.30. The remaining two Mode Control bits are decoded exactly as above.

CLAB - AC to Buffer Preset Register

Octal code: 6133
Event time: 2
Execution time: 4.25 µsec
Operation: Transfer AC to Buffer-Preset register. The previous contents of the Buffer Preset register are lost and the AC is unchanged.

CLEN - Load Clock Enable Register

Octal code: 6134
Event time: 3
Execution time: 4.25 µsec
Operation: The contents of the AC register are transferred to the Clock Enable register. The function of each bit is given below:

00                         Not used
01                         Not used
02                         Not used
03                         Not used
04                         Not used
05                         Enable interrupt when overflow (1)
06                         Enable interrupt on Event 1
07                         Enable Input Channel 1
08                         Enable interrupt on Event 2
09                         Enable Input Channel 2
10                         Enable Interrupt Event 3
11                         Enable Input Channel 3
CLSA - Clock Stutus to AC

Octal code: 6135
Event time: 1.3
Execution time: 4.5 µsec
Operation: This instruction is used to interrogate the clock input and overflow status flip-flops. The clock status information is inclusive ORed into the AC, Then the status bits for which the AC is set are cleared. This assures 1 and only 1 occurrence of an EVENT being transferred to the program.

AC Bit                 Status Condition

00                     Overflow Flip-Flop
01                     Not used
O2                     Not used
03                     Not used
04                     Not used
05                     Not used
06                     Event 1
07                     Pre-Event 1
08                     Event 2
09                     Pre-Event 2
10                     Event 3
11                     Pre-Event 3
Buffer Preset Register to AC

Octal code: 6136
Event time: 2, 3
Execution time: 4.25 µsec
Operation: The AC register is cleared and the contents of the Clock Buffer Preset repister are transferred into the AC.

CLCA - Counter to AC

Octal code: 6137
Event time: 1, 2, 3
Execution time: 4.25 µsec.
Operation: The AC register is cleared and the contents of the Clock Counter are transferred to the Buffer Preset reeister. Then the contents of the Buffer Preset register are transferred into the AC.

Incremental Plotter and Control (Type XY12)

Four models of California Computer Products Digital Incremental Recorder can be operated from a Digital Type XY12 Incremental Plotter Control. Characteristics of the four recorders are:

                         Step                              Paper
CCP                      Size               Speed          Width
Model                  (inches)          (steps/minute)   (inches)

563                   0.01 or 0.005          12,000          31
565                   0.01 or 0.005          18.000          12
The principles of operation are the same for each of the four models of Digital Incremental Recorders. Bidirectional rotary step motors are employed for both the X and Y axes. Recording is produced by movement of a pen relative to the surface of the graph paper, with each instruction causing an incremental step. X-axis deflection is produced by the motion of the drum; Y-axis deflection, by motion of the pen carriage. Instructions are used to raise and lower the pen from the surface of the paper. Each incremental step can be in any one of eight directions through appropriate combinations of the X and Y axis instructions. All recording (discrete points, continuous curves, or symbols) is accomplished by the incremental stepping action of the paper drum and pen carriage. Front panel controls permit single- step or continuous- step manual operation of the drum and carriage, and manual control of the pen solenoid. The recorder and control are connected to the computer program interrupt and instruction skip facility.

Instructions for the recorder and control are:

PLPU - Pen Up

Octal code: 6504
Event time: 3
Execution time: 4.5 µsec
Operation: The plotter pen is raised trom the surface of the paper.
Symbol: None

PLPR - Pen Right

Octal code: 6511
Event time: 1 Execution time: 4.5 µsec
Operation: The plotter pen is moved to the right in either the raised or lowered position.
Symbol: None

PLDU - Drum Up

Octal code: 6512
Event time: 2
Execution time: 4.5 µsec
Operation: The plotter paper drum is moved upward. This command can be combined with the PLPR and PLDD commands.
Symbol: None

PLDD - Drum Down

Octal code: 6514
Event time: 3
Execution time: 4.25 µsec
Operation: The plotter paper drum is moved downward.
Symbol: None

PLPL - Pen Left

Octal code: 6521
Event time: 1
Execution time: 4.25 µsec
Operation: The plotter pen is moved to the left in either the raised or lowered position.
Symbol: None

PLUD - Drum Up

Octal code: 6522
Event time: 2
Execution time: 4.25 µsec
Operation: The plotter paper drum is moved upward. This command is similar to the command 6512 except that it can be combined with the PLPL or PLPD commands.
Symbol: None

PLPD - Pen Down

Octal code: 6524
Event time: 3
Execution time: 4.25 µsec
Operation: The plotter pen is lowered to the surface of the paper.
Symbol: None

Program sequence must assume that the end location is known at the start of a routine since there is no means of specifying an absolute pen location in an incremental plotter. Pen location can be preset by the manual controls on the recorder. During a subroutine, the PDP-12 can track the location of the pen on the paper by counting the instructions that increment position of the pen and the drum.

High-Speed Perforated Tape Reader and Control (Type PR 12)

This device senses 8-hole perforated paper or Mylar tape photoelectrically at 300 characters per second. The reader control requests reader movement, transfers data from the reader into the reader buffer (RB), and signals the computer when incoming data is present. Reader tape movement is started by clearing the reader flag. Data is assembled in the Reader Buffer from the perforated tape. The Reader Buffer is transferred into bits 4 through 11 of the accumulator under program control. The reader flag is connected to the computer program interrupt and instruction skip facilities, and is cleared by IOT pulses. The control circuitry for this device is located in the BA12 Option Mounting Panel. Computer instructions for the reader are:

RSF - Skip on Reader Flag

Octal code: 6011
Event time: 1
Execution time: 4.25 µsec
Operation: The reader flag is sensed, and if it contains a binary 1 the content of the PC is incremented by one so that the next sequential instruction is skipped.
Symbol: If Reader Flag = 1, then PC + 1 = > PC

KRB - Read Reader Buffer

Octal code: 6012
Event time: 2
Execution time: 4.25 µsec
Operation: The content of the reader buffer is transferred into bits 4 through 11 of the AC and the reader flag is cleared. This command does not clear the AC.
Symbol: RB V AC[4:11] = > AC[4:11]; 0 = > Reader Flag

RFC - Reader Fetch Character

Octal code: 6014
Event time: 3
Execution time: 4.25 µsec
Operation: The reader flag and the reader buffer are both cleared, one character is loaded into the reader buffer from taper and the reader flag is set when this operation is completed.
Symbol: 0 = > Reader Flag; R? Tape Data => RU I = > Reader Flag when done

A program sequence loop to read a character from perforated tape can be written as follows:

            RFC         /FETCH CHARACTEK FROI~1 TAPE
LOOK,       RSF         /SKIP WHEN RU FULL
            JMP   LOOK
            CLA
            RRU         /LOAD AC FROM RE

High-Speed Tape Punch and Control (Type PP 12)

This option consists of a Royal McBee paper tape punch that perforates 8-hole tape at a rate of 50 characters per second. Information to be punched on a line of tape is loaded in an 8-bit punch buffer (PB) from AC bits 4 through 11.The punch flag becomes a 1 at the completion of punching action, signaling that new information may be transferred into the punch buffer, and punching initiated. The control circuitry for this device is located in the BA12 Option Panel. The punch flag is as described for the Teletype unit. The punch instructions are:

PSF - Ship on Punch Flag

Octal code: 6021
Event time: Execution time: 4.25 µsec
Operation: The punch flag is sensed, and if it contains a binary 1 the content of the PC is incremented by one so that the next sequential instruction is skipped.
Symbol: If Punch Flag = 1, then PC + 1 = > PC

PCF - Clear Punch Flag

Octal code: 6022
Event time: 2
Execution time: 4.25 µsec
Operation: Both the punch flag and the punch buffer are cleared in preparation for receiving a new character from the computer.
Symbol: 0 = > Punch Flag, PB

PPC - Load Punch Buffer and Punch Character

Octal code: 6024
Event time: 3
Execution time: 4.25 µsec
Operation: An 8-bit character is transferred from bits 4 through 11 of the AC into the punch buffer and then this character is punched. This command does not clear the punch flag or the punch buffer.
Symbol: AC[4:11] V PB = > PB

PLS - Load Punch Buffer Sequence

Octal Code: 6026
Event Time 2, 3
Execution Time: 4.25 µsec
Operation: The punch Flag and punch buffer are both cleared, the content of bits 4 through 11 of the AC is transferred into the punch buffer, the character in the PB is punched in tape, and the punch flag is set when the operation is completed.
Symbol: 0 = > Punch Flag, PB; AC[4:11] = > PB; 1 = > Punch Flag when done

A progrmam sequence to punch a character when the punch buffer is "free" can be written as follows:

FREE,       PSF         /SKIP WHEN FREE
            JMP FREE
            PLS         /LOAD PB FROM AC AND PUNCH CHARACTER

Card Reader and Control (Type CR12)

The Card Reader and Control Type CR12 reads 12 row, 80 column punched cards at a nominal rate of 200 cards per minute. Cards are read by column, beginning with column 1. One select instruction starts the card moving past the read station. Once a card is in motion, all 80 columns are read. Data in a card column is photo- electrically sensed. Column information is read in one of two program selected modes: alphanumeric and binary. In the alphanumeric mode, the 12 information bits in one column are automatically decoded and transferred into the least significant half of the accumulator as a 6-bit Hollerith code. In the binary mode, the 12 bits of a column are transferred directly into the accumulator so that the top row (12) is transferred into AC0 and the bottom row (9) is transferred into AC11. A punched hole is interperted as a binary 1 and no hole is interpreted as a binary 0.

Three program flags indicate card reader conditions to the computer. The data ready flag rises and requests a program interrupt when a column of information is ready to be transferred into the AC. A read alphanumeric or read binary command must be issued within 1.4 milliseconds after the data ready flag rises to prevent data loss. The card done flag rises and requests a program interrupt when the card leaves the read station. A new select command must be issued immediately after the card done flag rises to keep the reader operating at maximum speed. Sensing of this flag can eliminate the need for counting columns, or combined with column counting can provide check for data loss. The reader- not- ready flag can be sensed by a skip command to provide indication of card reader power off, pick failure, a dark check indication, a stacker failure, hopper empty, stacker full, sync failure or light check indication. When this flag is raised, the reader cannot be selected and select commands are ignored. The reader- not- ready flag is not connected to the program interrupt facility and cannot be cleared under program control. Manual intervention is required to clear the reader- not- ready flag. Instructions for the CR8/I are:

RCSF - Skip on Data Ready

Octal Code: 6631
Event Time: 1
Execution time: 4.25 µsec
Operation: The content of the data ready flag is sensed, and if it contains a 1 (indication that information for one card column is ready to be read) the content of the PC is incremented by one so the next sequential instruction is skipped.
Symbol: If Data Ready Flag = 1, then PC + 1 = > PC

RCRA - Read Alphanumeric

Octal Code: 6632
Event Time: 2
Execution Time: 4.25 µsec
Operation: The 6-bit Hollerith code for the 12 bits of a card column are transferred into bits 6 through 11 of the AC, and the data ready flag is cleared.
Symbol: AC[6:11] V Hollerith => AC[6:11]; 0 = > Data Ready Flag

RCRB - Read Binary

Octal Code: 6634
Event Time: 3
Execution Time: 4.25 µsec
Operation: The 12-bit binary code for a card column is transferred directly into the AC, and the data ready flag is cleared. Information from the card column is transferred into the AC so that card row 12 enters AC[0], row 11 enters AC[1], row 0 enters AC[2]... and row 9 enters AC[11].
Symbol: AC V Binary Code = > AC; 0= > Data Ready Flag

RCSD - Skip on Card Done Flag

Octal Code: 6671
Event Time: 1
Execution Time: 4.25 µsec
Operation: The content of the card done flag is sensed, and if it contains a 1 (indication that the card has passed the read station) the content of the PC is incremented to skip the next sequential instruction.
Symbol: If Card Done Flag = 1, then PC + I = > PC

RCSE - Select Card Reader and Skip if Ready

Octal code: 6672
Event Time: 2
Execution Time: 4.25 µsec
Operation: The status of the card reader is sensed. If the reader is ready, the PC is incremented to skip the next sequential instruction, a card is started toward the read station from the input hopper and the card done flag is cleared.
Symbol: If reader flag = 1, then PC + 1 = > PC; 0 = > Card Done Flag

RCRD - Clear Card Done Flag

Octal code: 6674
Event time: 3
Execution time: 4.25 µsec
Operation: The card done flag is cleared. This command allows a program to stop reading at any point in a card deck.
Symbol: 0 = > Card Done Flag

A logical instruction sequence to read cards is:

START,       RCSE           /START CARD MOTION AND SKIP IF READY JUMP NOT RDY   
                            /JUMP TO SUBROUTINE THAT TYPES OUT 
                            /"CARD READER MANUAL INTERVENTION 
                            /REQUIRED" OR HALTS NEXT,
             RCSF           /DATA READY?
             JMP DONE       /NO, CHECK FOR END OF CARD
             RCRA or RCRB   /YES, READ ONE CHARACTER OR ONE 
                            /COLUMN AND CLEAR DATA READY
             DCA I STR      /STORE DATA
DONE,        RCSD           /END OF CARD?
             JMP NEXT       /NO, READ NEXT COLUMN
             JMP OUT        /YES, JUMP TO SUBROUTINE THAT CHECKS
                            /CARD COUNT OR REPEATS AT START FOR
                            /NEXT CARD

No validity checking is performed by the CR12. A programmed validity check can be made by reading each card column in both the alphanumeric and binary mode (within the 1.4 millisecond time limitation), then performing a comparison check.

Before commencing a card reading program, load the input hopper with cards and press Motor Start and Read S Start pushbuttons. The function of the manual controls and indicators are as follows (as they appear from left to right on the card reader):

Control or Indicator                     Function

A - POWER switch        On-Off toggle switch. Applies power to all circuits
                        except drive motor.

B - MOTOR START         Momentary action pushbutton, with separate indicator.
                        Applies power to main drive motor. Motor start is also
                        used as a reset to clear error indicators and therefore
                        will not operate if there is an unreadied condition
                        such as:

                           1. Input hopper is empty.
                           2. Output hopper is full.
                           3. All photo cells are not lit.
                           4. Internal power supplier is not operational.

C - READ START          Momentary action pushbutton, with separate indicator.
                        Causes ready line to go high, which enables card
                        reading under control of the external read command.
                        If read command is open or high, card reading begins
                        immediately at full rated speed.

D - READ STOP           Momentary action pushbutton, with separate indicator.
                        Inhibits further card reading until READ START switch
                        is pressed again. Ready line goes low and READ STOP
                        condition is indicated. Does not stop drive motor.
                        However, a READ STOP condition is indicated anytime
                        the drive motor is stopped.

E - INDICATORS          Several detection circuits are incorporated in the
                        card reader. Whenever any red indicator lights, the
                        drive motor is stopped after allowing the completion
                        of the current card cycle.

1. PICK FAIL Indicator     Lights when a card fails to enter the read station
                           after two successive pick attempts.

2. DARK CHECK Indicator    After the card enters the read station, a check is
                           made at the hypothetical 0th and 81st hole positions
                           to be sure all photocells are dark. If not, the
                           DARK CHECK indicator lights and data outputs are
                           inhibited immediately.

3. STACKER FAIL Indicator  When three cards have passed the read station and
                           none have been stacked, a STACK FAIL is indicated.
                           Prevents more than three cards from being in the
                           track at once.

4. HOPPER EMPTY Indicator  Indicates input hopper is empty.

5. STACKER FULL Indicator  Switch closure detects when approximately 400 cards
                           are in the stacker hopper.

6. SYNC FAIL Indicator     Internal timing signals are derived from an
                           oscillator which is sync'ed to the track speed. If
                           the sync signal is lost, a SYNC FAIL is indicated.

7. LIGHT CHECK Indicator   All photo cells must always be lit except during
                           the time a card is being read. The detector is
                           inhibited each time a card enters the read station
                           until position (count of) 84. If a card fails to
                           leave the read station by this time, a LIGHT CHECK
                           is indicated.

Digital-To-Analog Converter (Type AA01A)

The general- purpose Digital- to- Analog Converter Type AA01A converts 12-bit binary computer output numbers to analog voltages. The basic option consists of three channels, each containing a 12-bit digital buffer register and a digital-to-analog converter (DAC). Digital input to all three registers is provided, in common, by one 12-bit input channel which receives bussed output connections from the accumulator. Appropriate precision voltage reference supplies are provided for the converters.

One IOT microinstruction simultaneously selects a channel and transfers a digital number into the selected register. Each converter operates continuously on the content of the associated register to provide an analog output voltage.

Type AA01A options can be specified in a wide range of basic configurations; e.g., with from one to three channels, with or without output operational amplifiers, and with internally or externally supplied reference voltages. Configurations with double buffer registers in each channel are also available.

Each single- buffered channel of the equipment is operated by a single IOT command. Select codes of 55, 50, and 57 are assigned to the AA01A, making it possible to operate nine single-buffered channels or various configurations of double-buffered channels. A typical instruction for the AA01A is:

DAL1 - Load Digital-to-Analog Converter 1

Octal Code: 6551
Event Time: 1
Execution Time: 4.25 µsec
Operation: The content of the accumulator is loaded into the digital buffer register of channel 1.
Symbol: AC => DAC1

Random Access Disk File (Type DF32)

Operating through the 3- cycle data- break channel, the DF32 provides 32,768 13-bit words (12 bits plus parity) of storage, and is economically expandable to 131,472 using Expander Disk Type DS32.

Transfer rate of the DF32 is 66 µsec per word; average access time is 16.67 msec for 60-cycle power (20 msec with 50-cycle power).

Two basic assemblies comprise the DF32: the storage unit with read/write electronics, and computer interface logic. The storage unit contains a nickel-cobalt plated disc driven by a hysteresis synchronous motor. Data is recorded on a single disc surface by 16 read/write heads which are in a fixed position. A photo-refiective marker is used on the disc's outer perimeter to denote beginning and end of timing and address tracks.

Disk motor and shaft, read/write data heads, timing and address heads, and photocell assembly are mounted on a rack assembly which permits sliding the unit in and out of a standard Digital Equipment Corporation cabinet.

The disk is designed for rack mounting in a 19 inch relay rack.

Instructions

The command for the disk system are as follows:

DCMA - Clear Disk Memory Address Register

Octal Code: 6601
Event Time: 1
Execution Time: 4.25 µsec
Operation: Clears Memory Address Register, parity error and completion flags. This instruction clears the disk memory request flag and interrupt flags.
Symbol: 0 = > completion flag; 0 = > error flag

DMAR - Load Disk Memory Address Register and Read

Octal code: 6603
Event time: 1, 2
Execution time: 4.25 µsec
Operation: The contents of the AC are loaded into the disk memory address register and the AC is cleared. Begin to read information from the disk into the specified core location. Clears parity error and completion flags. Clears interrupt flags.
Symbol: AC[0:11] -> DMA[0:11]; 0 = > completion flag; 0 = > error flag

DMAW - Load Disk Memory Address Register and Write

Octal Code: 6605
EventTime: 1, 3
Execution Time: 4.25 µsec
Operation: The contents of the AC are loaded into the disk memory address register and the AC is cleared. Begin to write information into the disk from the specified core location. Clears parity error and completion flags. Clears interrupt flags. Data break must be allowed to occur within 66 µsec after issuing this instruction.
Symbol: AC0-11DDMA0-11; AC[0:11] -> DMA[0:11]; 0 = > completion flag; 0 = > error flag

DCEA - Clear Disk Extended Address Register

Octal Code: 6611
Event Time: 1
Execution Time: 4.25 µsec
Operation: Clears the Disk Extended Address and memory address extension register.
Symbol: 0 = > Disk Extended Address Register; 0 = > Memory Address Extenstion Register

DSAC - Skip on Address Confirmed Flag

Octal Code: 6612
Event Time: 2
Execution Time: 4.25 µsec ???
Operation: Skips next instruction if address confirmed Flag is a 1. Flag is set for 16 µsec (AC is cleared).
Symbol: If address confirmed flag = 1, then PC + 1 => PC

DEAL - Load Disk Extended Address

Octal code: 6615
Eventtime: 1, 3
Execution time: 4.25 µsec
Operation: The disk extended address and memory address extension registers are cleared and loaded with the track address data held in the AC.
Symbol: AC,~, = > Core Memory Extension; AC,_, = > Disk Address Extension 32K, 64K, 96K, 128K AC, ,_,, used in DEAC instruction (See NOTE)

DEAC - Read Disk Extended Address Register

Octal code: 6616
Event time: 2, 3
Execution time: 4.25 µsec
Operation: Clear the AC then load the contents of the disk extended address register into the AC to allow program evaluation. Skip next instruction if address confirmed flag is a 1.
Symbol: Disk Address Extension 32K, 64K, 96K, 128K = > AC,_,; Core Memory Extention = > AC,_,; Photo-cell sync mark = > AC, (Available 200 ~sec); Data Request Late flag = > AC,; Non-existent or Write Lock switch on = n AC,, Parity Errors= > AC, 1

NOTE

For the DEAL and DEAC Instructions, refer to the diagrams shown below.

      +--------------+-------------------------+
      |              |        ACCUMULATOR      |      DISC
      |   BITS 1-5   |    (LOW ORDER 12 BITS)  |     ADDRESS
      |  (DEAL INST) |    0-11 of DMAW or DMAR |     (17 BIT)
      +--------------+-------------------------+

      +--------------+-------------------------+
      | FIELD BITS   |                         |     CURRENT ADDRESS
      |   6-8        |        CELL 7751        |    (MEMORY) ADDRESS
      | (DEAL Inst)  |     (CURRENT ADDRESS)   |         (15 BIT)
      +--------------+-------------------------+

DFSE - Skip on Zero Error Flag

Octal code: 6621
Event time: 1
Execution time: 4.25 µsec
Operation: Skips next instruction if parity error, data request late, or write lock switch flag is a zero. Indicates no errors.
Symbol: If Parity Error flag = 1, then PC + 1 = > PC; If Data Request Late flag = 1, then PC + 1 = > PC; If Write Lock Switch flag = 1, then PC + 1 = > PC

DFSC - Skip on Data Completion Flag

Octal code: 6622
Event time: 2
Execution time: 4.25 µsec
Operation: Skips next instruction if the completion flag is a 1. Indicates data transfer is complete.
Symbol: If Completion flag = 1, PC + 1 = > PC

DMAC - Read Disk Memory Address Register

Octal code: 6626
Event time: 2, 3
Execution time: 4.25 µsec
Operation: Clears the AC then loads contents of the Disk Memory Address register into the AC to allow program evaluation. During read, the final address will be the last one transferred.
Symbol: DMA[0:11] = > AC[0:11]

The computer can handle 12 bits, therefore, the high order bits for Disk and Memory addresses are manipulated by the DEAL and DEAC instructions. Low order bits are manipulated in the accumulator (AC).

The Disk address is a 17 bit value. Bit 1 of the DEAL and DEAC instructions is the most significant bit. The Memory address is a 17 bit value. Bit 6 of the DEAL and DEAC instructions is the most significant bit.

Note that the Word Count 7750 is the 2's complement of the number of words to be transferred and that the Disk address is the desired starting address. The Memory or Current address (7751) is the desired address -1.

NOTE

Write Lock Switch status is true only when disk module contains write command. The non- existent disk condition will appear following the completion of a data transfer during read, where the address acknowledged was the last address of a disc and the next word to be addressed falls within a non- existent disk. The completion flag for the data transfer is set by the non- existent disk condition 15 microseconds following the completion flag for this data transfer is set by the non- existent disk condition 16 microseconds following the data transfer.

DF32 Software

DF32 Disk System, available with PDP-12, is a fast convenient keyboard oriented monitor which will enable the user to efficiently control the flow of programs through his PDP-12. This system is modular and open ended, allowing the user to build the software components required in his environment. The user may specify the system device (Disk or LINCtape), the amount of core, number of disks available and the number, name and size of his resident system programs.

Disk Memory System (Type RF08, RS08)

The RF08 control and RS08 disk combine as a fast, low- cost, random access bulk storage package for the PDP-8, PDP-8/I and PDP-12 computers. One RS08 and RF08 provide 262,144 13-bit words (12 bits plus parity) of storage. Up to four RS08 disks can be added to the RF08 control for a total of 1,048,576 words of storage.

Data transfer rate on 60 Hz power is 16.2 microseconds per word or 20 microseconds per word on 50 Hz. Data transfer is accomplished through the three- cycle break system of the PDP-8 or PDP-8/I.

Average access time with a 60 Hz disk is 16.67 milliseconds or 20 milliseconds at 50 Hz power. Worst case access time is 33 milliseconds on 60 Hz power or 40 milliseconds on 50 Hz power.

The RS08 disk unit contains a nickel- cobalt plated disk driven by a hysteresis synchronous motor. Data is recorded on a single disk surface by 128 fixed read/write heads.

The RF08 and RS08 are designed for rack mounting in a standard 19 inch DEC cabinet.

DF32 Programming Compatibility

The input-output transfer instructions for the RF/RS08 Disk Memory system are identical with the input- output transfer instructions for the Type DF32 Random Access Disk file with the following exceptions:

DEAL - Load Disk Extended Address

Octal code: 6615
Execution time: 4.25 µsec
Operation: When used in the RF/RS08 Disk Memory system this IOT instruction does not transmit the extended disk address bits for addressing beyond 32K. Instead, accumulator bits AC[3],AC[4], and AC[5] are assigned to enable or disable conditions on the program interrupt line. The accumulator is cleared after this instruction has been executed.

DEAC - Read Disk Extended Address Register

Octal code: 6616
Execution time: 4.25 µsec
Operation: When used in the RF08 Disk Memory system this IOT instruction does not read extended address bits AC[1] through AC[5] into the accumulator. These bits are assigned to examine the status of the interrupt enable. In addition accumulator bit AC[2] indicates the status of Write Lock and accumulator bit AC[10] shows non- existent disk conditions only. Accumulator bit AC[1] shows the condition of Data Request Enable, which is used for maintenance purposes.

DFSE - Skip Old Zero Error Flag

Octal code: 6621
Execution time: 4.25 µsec
Operation: When used in the RF08 and RS08 Disk Memory system, this IOT will cause a skip to be returned to the computer on error instead of no error. Non- existent disk has been included as an error-skip condition.

DISR - Skip Error or Completion Flag

Octal code: 6623
Execution time: 4.25 µsec
Operation: This is a new skip instruction added to the RF08 and RS08 Disk Memory system. This IOT will return a skip to the computer if either the error or completion flags or both are raised.

The DF32 maintenance instruction IOT 663X is not assigned to the RF08 system.

DCIM

Octalcode: 6611
Event time: 1
Execution time: 4.25 µsec
Operation: Clear the disk interrupt enable and core memory address extension registers.

DSAC

Octal code: 6612
Event time: 2
Execution time: 4.25 µsec
Operation. Maintenance Instruction Skip next instruction if the Address Confirmed flag is a 1. (AC is cleared.)

DIML

Octal code: 6615
Event time: 1, 3
Execution time: 4.25 µsec
Operation: Clear the interrupt enable, and memory address extension register. Then load the interrupt enable and memory address extension registers with data held in the accumulator Then clear AC.

DIMA

Octal code: 6616
Event time: 2, 3
Execution time: 4.25 µsec
Operation: Clear the accumulator. Then load the contents of the status into the accumulator to allow program evaluation.

-- To be done --

DFSE

Octal code: 6621
Event time: 1
Execution time: 4.25 µsec
Operation: Skip next instruction if there is a Parity Error, Data Request Late, Write Lock Status, or Non- Existent Disk flag set.

DFSC

Octal code: 6622
Event time: 2
Execution time: 4.25 µsec
Operation: Skip next instruction if the Completion flag is a 1 (data transfer complete).

DISK

Octal code: 6623
Event time: 1, 2
Execution time: 4.25 µsec
Operation: Skip next instruction if the Error or Completion flags or both are set.

DMAC

Octal code: 6626
Event time: 2, 3
Execution time: 4.25 µsec
Operation: Clear the accumulator. Then load the contents of the Disk Memory address register into the accumulator to allow program evaluation. This instruction must be issued when the completion flag is set.

DCMA

Octal code: 6601
Event time: 2
Execution time: 4.25 µsec
Operation: Clear the Disk Memory Address register, and all other isk and maintenance flags except interrupt enable.

DMAR

Octal code: 6603
Event time: 1, 2
Execution time: 4.25 µsec
Operation: Load the low order 12 bits of the Disk Memory Address with information (initial address) in the accumulator. Then clear the AC. Begin to read information from the disk into the specified core location. Clear parity error and completion flags. Clear interrupt flags. IOT 6605, see below.

During Read, the final address status is the last address transferred + 1.

When reading the last address of the last available disk the non-existent flag is raised in coincidence with the completion flag.

DMAW

Octal code: 6605
Event time: 1, 3
Execution time: 4.25 µsec
Operation: Load the low order 12 bits of the Disk Memory Address with information (initial address) in the accumulator (AC). Then clear the AC. Begin to Write information onto the disk from the specified core location. Clear parity error and completion flags. Clear interrupt flags.

During Write, the final address status is the last address transferred.

Write Lock Switch status is true only when the disk module contains a Write Command.

-- To be done --

DMAR

Octal code: 6603
Event time: 1, 2
Execution time: 4.25 µsec
Operation: If given during photocell time the read or write operation can begin at Disk Memory Address 0000 without latency due to logic- disk sync. time as is the case if given at any other time. However, in all cases, if the read or write operation is to be on an odd track 1, 2, 5, etc., bit 0 of the AC must be in the one state at the time the DMAR or DMAW is given, as bit 0 of the Disk Memory Address is the first bit of the track address.

DMAW

Octal code: 6605
Event time: 1, 4
Execution time: 4.25 µsec
Operation: If given during photocell time the read or write operation can begin at Disk Memory Address 0000 without latency due to logic- disk sync. time as is the case if given at any other time. However, in all cases, if the read or write operation is to be on an odd track 1, 2, 5, etc., bit 0 of the AC must be in the one state at the time the DMAR or DMAW is given, as bit 0 of the Disk Memory Address is the first bit of the track address.

DMMT

Octal code: 6646
Execution time: 4.25 µsec
Operation: For maintenance purposes only with the appropriate maintenance cable connections and the disk disconnected from the RS08 logic the following standard signals may be generated by IOT 646 and associated AC bits. AC is cleared. The maintenance register is initiated by issuing an IOT 601 command.

AC11(1)	Track A Pulse
AC10(1)	Track B Pulse
AC9(1)	Track C Pulse
AC8(1)	DATA PULSE (DATA HEAD #0)
AC7(1)	+1 Photocell
AC0(1)	+1 DBR

Setting DBR to a 1 causes Data Break Request in computer.

NOTE
TAP must be generated to strobe track B signal into address comparison network.

DCXA

Octal code: 6641
Execution time: 4.25 µsec
Operation: Clear the high order 8 bit disk address register.

DXAL

Octal code: 6643
Execution time: 4.25 µsec
Operation: Clear the high order 8 bits of the Address register. Then load the Disk Address register from the data held in the accumulator. Then clear the AC.

-- To be done --

DXAC

Octal code: 6645
Execution time: 4.25 µsec
Operation: Clear the accumulator the nload the contents of the High Order 8 bit Disk Address register into the PDP accumulator.

-- To be done --

Disk Address Register - 20 bits

-- To be done --

Programming example

A programming example that writes a block of data onto the disk is shown below. For simplicity, the example assumes that all data and instructions are within the same page, but in actual practice, this may not be true.

	/CALLING SEQUENCE
SUB	JMS WRT			/ JUMP TO WRITE SUBROUTINE
	0			/ CONTAINS WORD COUNT
	0			/ CONTAINS INITIAL CORE MEMORY ADDRESS
	0			/ CONTAINS TRACK AND UNIT NUMBER
	0			/ CONTAINS TRACK ADDRESS
	XXX			/ CONTRINUE WITH MAIN PROGRAM

	/WRITE SUBROUTINE
WRT,	0			/ ENTER WRITE SUBROUTINE
	TAD I WRT		/ FETCH WORD COUNT
	DCA WC			/ DEPOSIT IN WORD COUNT REGISTER
	ISZ WRT			/ INCREMENT POINTER
	TAD I WRT		/ FETCH INITIAL CORE MEMORY ADDRESS
	DCA CA			/ DEPOSIT INTO CURRENT ADDRESS REGISTER
	ISZ WRT			/ INCREMENT POINTER
	TAD I WRT		/ FETCH TRACK AND UNIT NUMBER
	DXAL			/ DEPOSIT INTO REGISTER IN RF08 CONTROL
	ISZ WRT			/ INCREMENT POINTER
	TAD I WRT		/ FETCH TRACK ADDRESS
	DMAW			/ TRACK ADDRESS IO DMA IN DISK;
				/ START
				/ WRITE OPERATION
	DFSC			/ JOB DONE?
	JMP .-1			/ NO, WAIT
	DFSE			/ ANY ERRORS?
	JMP .+2			/ NO, SKIP OVER ERROR EXIT
	JMP ERR			/ YES, TO ERROR SUBROUTINE
	ISZ WRT			/ INCREMENT POINTER TO EXIT ADDRESS
	JMP I WRT		/ EXIT PROGRAM

The calling subroutine must be set up so that the subsequent locations to SUB (SUB+1, SUB+2, etc.) contain the parameters as shown in the comments column.

The JMS WRT instruction causes a subroutine jump to location WRT with the contents of the PC-1 (which contains the symbolic address SUB-1) deposited into location WRT. Since location WRT now contains SUB-1, the first instruction of the subroutine (TAD I WRT) loads the AC with the contents of SUB-1 which is the word count. The word count is then deposited into the WC (Memory Address 7750) register. Similarly, the initial address is deposited into the CA (Memory Address 7751) register. The program then proceeds to set up the EMA and DMA registers and starts the write operation. After the DMAW instruction is issued, the data transfer begins and continues independently of the program; it operated under the control of the data break facility to transfer data. When the transfer is complete, the DCF (Data Complete Flag) comes up and, when sensed by the DFSC control, passes to the DFSE instruction. DFSE then senses for errors, and if any, control jumps to an error or diagnostic (not shown) routine. If no errors, control exits from the subroutine back to the main program to resume main processing.

It should be noted that since the data transfer operates independently of the program, the subroutine could be exited following the DMAW instruction. An interrupt subroutine could handle the post data transfer processing since the DCF and ERROR FLAGS generated an interrupt.

An identical program could handle data transfers for a read operation except that the DMAW instruction is replaced by the DMAR instruction.

Specifications:

Storage Capacity	Each RS08 stores 262,144 13-bit words (12 plus
			one event parity bit)

Disks			Four RS08's may be controlled by one RF08 for
			1,048,576 words.

Data Transfer Path	3-Cycle Break		Address Locations
						7750 Word Count
						7751 Memory Address

Data Transfer Rate	60 Hz Power		50 Hz Power
			16.2 uSec per word	20 uSec per word
Minimum Access Time	258 uSec		320 uSec
Average Access Time	16.9 mSec		20.3 mSec
Maximum Access Time	33.6 mSec		40.2 mSec
Program Interrupt	33 Milliseconds Clock Flag
			Data Transmission Complete Flag
			Error Flag

Write Lock Switches	Eight switches per disk capable of locking out
			any combination of eight 16,384 word blocks in
			addresses 0 to 131,071.

Data Tracks		128

Words Per Track		2048

Recording Method	NRZI

Density			1100 BPI Maximum

Timing Tracks		3 plus 3 spare

Operating Environment	Recommended temperature 65° to 90°F. Relative
			humidity 20% to 80%. No condensation storage or
			operating.

Vibration/Shock		Good isolation is provided. Vibrating, shaking or
			rocking of the cabinet with large, low frequency
			displacements can cause data errors. For example,
			hand fork lift trucks operating on wooden floors
			cause excessive vertical displacements which could
			cause errors. The RS08 is not designed for aircraft
			of shipboard mounting.

Heat Dissipation	RF08: 150 watts
			RS08: 500 watts

A.C. Power Requirements	115 +/- 10 VAC, single phase, 50 +/- 2 or 60 +/- 2 Hz

RS08:			Motor start 5.5 amps for 20 +/- 3 sec. Motor run
			4.0 amps continuous.

Line Frequency Stability	Maximum line frequency drift 0.1 Hz/sec. A
			constant frequency motor-generator set or static
			AC/AC inverter should be provided for installations
			with unstable power sources.

Reliability		Six recoverable errors and one non-recoverable error
			in 2 x 109 bits transferred. A recoverable
			error is defined as one that occurs only once in
			four successive reads. All other errors are non-
			recoverable. On-off cycling the RS08 is not
			recommended. The RS08 motor control operates
			independently of the computer power control, thus
			eliminating on-off cycling except for power failures.

Cabinet			A dedicated H950 cabinet is designed to accomodate
			one RF08, up to two RS08's and power supplies. Two
			additional RS08's can be mounted in a second H950.
			Other equipment should not be mounted in disk
			cabinets.
Automatic Magnetic Tape Control, Type TC58

Functional Description

The Type TC50 will control the operation of a maximum of eight digital magnetic tape transports, Types TU20 and TU20A. The Type TC58 interfaces to and uses the PDP-12 3-cycle data break facility for transfer directly to or from system core memory and magnetic tape. The tape transports offer industry- compatible (or IBM- compatible) in both 7 and 9 channel tape transports whth the following characteristics:


			Tape Speed		Densities
	Transport	  (ips)			 (bpi)

TU20 (7-channel) 45 200/556/800 TU20A (9-channel) 45 800

Transfers are governed by the in-memory word count (WC) and current address (CA) register associated with the assigned data channel (memory locations 328 and 338). Since the CA is incremented before each data transfer, its initial contents should be set to the desired initial address minus one. The WC is also incremented before each transfer and must be set to the 2's complement of the desired number of data words to be transferred. In this way, the transfer which causes the word count to overflow (WC becomes zero) is the last transfer to take place. The number of IOT instructions required for the TYPE TC58 is minimized by transferring all necessary control data (i.e., unit number, function, mode, direction, etc.) from the PDP-12 accumulator (AC) to the control using IOT instructions. Similarly, all status information (i.e. status bits, error flags, etc.) can be read into the AC from the control unit by IOT instructions.

During normal data reading, the control assembles 12-bit computer words from successive frames read from the information channels of the tape. During normal data writing, the control disassembles 12-bit words and distributes the bits so they are recorded on successive frames of the information channels.

Instructions

The commands for the Magnetic Tape Control System are as follows:

MTSF Skip on Error Flag or Magnetic Tape Flag

Octal code: 6701
Event time: 1
Execution time: 4.25 µsec
Operation: The status of the error flaf (EF) and the magnetic tape flag (MTF) are sampled. If either or both are set to 1, the content of the PC is incremented by one to skip the next sequential instruction.
Symbol: If MTF or EF = 1, PC + 1 => PC

MTCR Skip on Tape Control Ready

Octal code: 6711
Event time: 1
Execution time: 4.25 µsec
Operation: If the tape control is ready to receive a command, the PC is incremented by one to skip the next sequential instruction.
Symbol: If tape unit ready, PC + 1 => PC

MTAF Clear Registers, Error Flag, and Magnetic Tape Flag

Octal code: 6712
Event time: 2
Execution time: 4.25 µsec
Operation: Clears the status and command registers, and the EF and MTF if tape control is ready. If tape control not ready, clears MTF and EF flags only.
Symbol: If tape control is ready, 0 => MTF, 0 => EF, 0 => command register
If tape control not ready, 0 => MTF, 0 => EF

Inclusive OR Contents of Accumulator

Octal code: 6724
Event time: 3
Execution time: 4.25 µsec
Operation: Inclusively OR the contents of the command register into bits 0-11 of the AC.
Symbol: AC V command register => AC Automatic Magnetic Tape Control

INT ENB EX EX CLOCK MEM MEM EX MEM Enn COMPL INTERRupT I,,,,..,un~vl\ / 1N1 C""Y' IC~TE~ES~OONRI( ~ ST~TUS REG I I REGISTER i""""" pRoCESsoR MEM MEM SEL flELD 5-80 Write - A word in memory is written on tape with format shown below:

rUTERPL ~RITI BITOF IXIPIR~CTER I

X I Y I Y I X I            CH*RACTERI

BIT   O    (          3    4---------------- (1

8-THESE BITS ARE IGNORED

Read - A word is read into memory from tape with the format shown below:

LPITERPIL PP~ITY slT OF CHP.RP~CTER 1

x I x I x I P1 I             CHP~RPICTER(

BIT   O     1     2     3    4-

Read/Compare - A direct comparison of the characters on tape is made with those in memory. The parity bit is ignored, as are bits 0-3 in each memory word.

Core Dump Mode - This mode is used only with 9-track transports. It is entered by setting bit 4 of the command register.

Core dump mode permits the dumping of complete memory words in the form of two six-bit characters. The format is:

CHAR~CTERI         I        CH*R*CTERL

BITS   0-------------5    6  ----------~11

This is accomplished by only utilizing 7 of the 9 tracks on the tape.

Tape written in CORE DUMP MODE, must be READ (READ/COMPARE) in the same mode. These operations are the same as for a 7-track transport.

Magnetic Tape Transport, Type TU20A (9-Channel)

The Type TU20A is a digital magnetic tape transport designed to be compatible with the Type TC58 Magnetic Tape Control. The transport operates at a speed of 45 inches per second and a density of 800 bpi. The maximum transfer rate is 36,000 eight- bit characters per second. Standard nine- channel 18hl- compatible tape format is used. The specifications for the unit are as follows:

Format: NRZI. Eight data bits plus on parity bit. End and loadpoint sensing compatible with IBM.

Tape: Width of 0.5 inch length of 2400 ft. (1.5 mil.). Reels are 10.5 in., IBM-compatible, with file protect (WRITE LOCK) ring.

Heads: Write-read gap of 0.150 in. Dynamic and static skew is less than 14 µsec.

Tape Specifications: 45 IPS speed. Rewind time is less than 5 msec. Start distance is 0.080 in. (+0.035,-0.025 in.). Stop time is less than 1.5 msec. Stop distance is 0.045 in. (~0.015 in.).

Density: 800 BPI. Maximum transfer rate is 36 kHz.

Transport Mechanism : Pinch roller drive; vacuum column tension.

Conln,~: ON/OFF. ON LINE, OFF L.INE, FORWARD, REVERSE, REWIND, LOAD, RESET.

Physical Specifications: Width of 22 1/4 in., depth of 27 1/6 in., height of 69 1/8 in. Weight-600 tbs.

Read (READICOMPAREI Shufdown Delay. 3.6 milliseconds

Write ShuTdown Delay: Approximately 4.5 milliseconds.

General Purpose Multiplexed Analog-to-Digital Converter System (Type AF01A)

The Type AF01A General- Purpose Multiplexed Analog- to- Digital Converter combines a versatile, multi- purpose converter with a multiplexer to provide a fast, automatic, multichannel scanning and conversion capability. It is intended for use in systems in which computers sample and process analog data from sensors or other external signal sources at high rates. The AF01A is used when greater accuracy than provided by the standard AL)12 A-D converter is needed. The Type AF01A option is used with the PDP-12 to multiplex up to hCanalog signals and to convert the signals to binary numbers. Analog data on each of 64 channels can be accepted and converted into 17-bit digital numbers 420 times per second.*

Swtching point accuracy in this instance is 99.975 per cent, with an additional quantization error of half the digital value of the LSB.

*Conversion rate = [(35 +2) 10-6)((14)1-1 = 420 cycles/sec.
                 = 1(9 + 2)(10-6)(h4)1-1 = 1420 cycles/sec

A/D Converter Specifications

The Type AF01A has a successive approximation converter that measures a 0 to 10 volt analog input signal and provides a binary output indication of the amplitude of the input signal. The characteristics of the A/D converter are as follows:

Accuracy and Conversion Times: See Table 5-4 (includes all linearity and temperature errors)

Converter Recovery Time: Zero

Input and input impedance: 0 to -10v at 10 megohms standard. Input scaling may be specified using the amplifier or sample and hold options (sec Table 1)

Input Loading: +] ~A and 125 pf for 0 to -10v input signal.

Output: Binary number of 6 to ] 2 bits, with negative numbers represented in ?'! complement notation. A Ov input gives a 40008;a -5v input a 0000a and a -1Ov (minus 1 LSB*) input gives 3777n number.

*LSB, least significant bit

Provision is made for using the Type A400 Sample and Hold Amplifier (AH02 option) between the multiplexer output and A/D converter input to reduce the effective aperture to less than 150 nsec. The Type A400 may also be used to scale the signal input to accept ~10v, ~5v, or O to +10v. The Type A200 amplifier (AH03 option) may he substituted for the Type A400 to accomplish the same signal scaling without reducing the effective aperture. Both the AH02 and AH03 options may be used to obtain high input impedance and small aperture. (See Table 5-3.)

Multiplexer Specifications

The multiplexer can include from 1 to 16 Type A]2 I Switch Modules. Each module contains four single-pole, high speed, insulated gate FET switches with appropriate gating. The Type A121 Switches are arranged as a hil-channel group of series- switch single- pole switches with a separate continuous ground wire for each signal input. The switched signal input wire and the continuous ground for each channel are run as twisted pairs to the input connectors mounted on the rear panel. The continuous grounds for all channels are terminated at the high quality ground of the AF01A System. Specifications (measured at input connector) are as follows:

Input Operating Signal Voltages: + 10v to -10v

Current: 1 mA

On Resistance: 450 ohm (max)

Voltage Offset: 0

"Off Leakage": 10 nA (max)

Capacitance: 10 pf(max)

Speed:

10% Input to within 2~s I LSB* of output

Operate Time: The time required to switch from one channel to another is 2 ~s to within 1 LSB of the final voltage. This time is preset within the control and starts when a set or index command is received.

Operation

The Type AF01 System may be operated in either the random or sequential address modes. In the random address mode, the control routes the analog signal from any selected channel to the A/D converter input. In the sequential address mode, the multiplexer control advances its channel address by one each time an index command is received. After indexing through the maximum number of channels implemented, the address is returned to 0. When using sequential operation, the conditioning levels for random addressing are ignored.

The multiplexer switch settling time is preset within the control to initiate the conversion process automatically after a channel has been selected in either the random or sequential address mode. Two separate A/D Convert I/O Transfer Commands may also initiate one or more conversions on a currently selected channel.

A/D conversion times are increased by 2 ~sec when multiplexer channels are switched to allow for settling time of the analog signal at the multiplexer output. Conversion times are increased an additional 3 ~sec when AH03 is used. These times are added to the conversion times shown in Table 5-4 under selected channel conversion time which is the only time required for each successive conversion on a selected channel.

When the Type AH02 Sample and Hold option is required, the multiplexer switch settling time and the sample and hold acquisition time are overlapped. The total conversion and switching time is increased by 10~sec. (See A400 specifications).

A/D CONVERTERIMULTIPLEXER CONTROLS

DESIGNATION                              FUNCTION

WORD LENGTH:           Rotary switch used to select digital word length or conversion accuracy.
                       Refer to Table 5-4 for corresponding conversion times.

POWER ON/OFF:          Applies 117 Vac power to internal power supplies. CLR                      Clear multiplexer channel-address registers: i. e.. selects an;llog chanllel O for conversion.

INDEX:                 Advances multiplexer channel-address register by one each time it is depressed, enabling manual addressing of channels (up to 64) in sequential mode. Returns address to zero when maximum value is reached.

AD(`:                  Starts conversion of the analog voltage on the selected channel to a binary number when depressed.

A/D CONVERTER:         Indicates binary contents of A/D converter register.

MULTIPLEXER            indicates binary contents of multiplexer channel-address register.

POWER:                 Indicates ON/OFF status.

TABLE 5-3. INPUT SIGNAL SCALING

                       INPUT        INPUT     BINARY    OPTION CONFIGURATION GAIN    SIGNAL    IMPEDANCE  OUTPUT  DESIGNATION

Standard                       O            IOmeg.         4000,

 5           10 meg.        0000,       STD --10           IOmeg.          3777,

Sample&         1       +5          10K         37775 Hold               I         O            IOK           00008        AHO2 5          IOK         4000,

Sample&         %      +10         IOK         3777, Hold               1/2        O            ]OK           0000,       AHO2 %         10          IOK           4000,

                  +1          +5            >100 meg.      4000, Amplifier         +1          O            >100 meg.       0000,        AHO3 +1           5           >100 meg.      3777,

                          +10         >100 meg.     4000, Amplifier          +%         0            >100 meg.      0000,        AHO3 +%        10       >100 meg.     3777,

Amplifier            1         +5  +10     >100 meg.      3777,        AHO3 and Sample       or         O or O      >100 meg.      0000,        & & Hold             K        --5  -]O    >100 meg.      4000,        AH02

Note: Unipolar signals (O to +5, or O to +10v) may also be specified with either the AHO3 or AHOZ option.

TABLE 5-4. SYSTEM CONVERSION CHARACTERISTICS**

          Random

Selected                      AH03       AH02       AH02 or Channel      Sequential      MPX        MPX       AH03

        (MPX& *ZiD)    A/D      P~ID    MPX &A/D
(aiD)

Word Length        Max
                           Conversion  Conversion    Co"ve'sion  Conversion  Conversion (No. of Bits)      Switchirg
          Time       Time      Time       Time       Time Point

Error*     (~"C)       (~"E)**    (IISeC)**     (C(seC)**     (IISec)**

6            ~1.6~        9.0      1].O (9.5)   14.0 (1].0)   19.0 (14.0)   21.0(18.0) 7            ~o.sm       10.5      12.5(1].0)   15.5 (12.5)   20.5 (15.5)   7?.5 (19.5) 8              +0.4'%        1?.0       14.0(12.5)    17.0 (14.0)    ?2.0(17.0)    ?4.0 (21 0) 9             +0.2%·       13.5      15.5 (14.0)   18.5 (15.5)   23.5 (18.5)   25.5 (22.5) 10           ~o. I~      Is.o     20.0 (18.5)   230(20.0)   28.0 (?3.0)   30.0 (27.0) II             ~0.05'j~      25.0      270          30.0          35.0          37.0 12           ~0.0?5~    35.0     37.0        40.0        45.0        47.0

 *~K LSB for quantiring error.
**lf system is to operate at less than IO bits continuously, conversion times may be reduced to times shown in par entheses.

Programming

Programmed control of the converter/ multiplexer by the PDP-12 is accomplished with the 107 instructions listed below. PDP-12 selects the converter/ multiplexer with two device selection codes, depending upon whether conversion of multiplexing functions are being selected; 53, and 54,. The converter/ multiplexer interprets the device selection code to enable execution of the IOP command pulse generated by the IOT instruction.

ADSF - Skip on A-D Flag

Octal code: 6531
Event time:
Execution time: 4.25 µsec
Operation: The A-D converter flag is sensed, and if it contains a binary 1 (indicating that the conversion is complete) the content of the PC is incremented by one so that the next instruction is skipped.
Symbol: If A-D Flag = 1, then PC + 1 = > PC

ADCV - Convert Analog Voltage to Digital Value

Octal code: 6532
Event time: 2
Execution time: This time is a function of the accuracy and word length switch setting as listed in Table 2.
Operation: The A-D converter flag is cleared, the analog input voltage is converted to a digital value. and then the A-D converter flag is set to 1. The number of binary bits in the digital- value word and the accuracy of the word is determined by the preset switch position.
Symbol: 0 = > A-D Flag at start of conversion, then 1 = > A-D Flag when conversion is done.

ADRB - Read A-D Converter Buffer

Octal code: 6534
Event time: 3
Execution time: 4.25 µsec
Operation: The converted number contained in the converter buffer (ADCB) is transferred into the AC left justified; unused bits of the AC are left in a clear state, and the A-D converter flag is cleared. This command must be preceded by a CLA instruction.
Symbol: ADCB = > AC; 0 = > A-D Converter Flag

ADCC - Clear Multiplexer Channel

Octal code: 6541
Event time:
Execution time: 4.25 µsec
Operation: The channel address register (CAR) of the multiplexer is cleared in preparation for setting of a new channel.
Symbol: 0 = > CAR

ADSC - Set Multiplexer Channel

Octal code: 6542
Event time: 2
Execution time: 4.25 µsec
Operation: The channel address register of the multiplexer is set to the channel specified by bits 6 through 11 of the AC. A maximum of 64 single- ended input channels can be used.

ADIC - Increment Multiplexer Channel

Octal code: 6544
Event time: 3
Execution time: 4.25 µsec
Operation: The content of the channel address register of the multiplex is incremented by one. If the maximum address is contained in the register when this command is given, the minimum address (00) is selected.
Symbol: CAR + 1 = > CAR

The converter/multiplexer may be operated by the computer program in either the random or sequential addressing mode. In the random addressing mode, the analog channel is selected arbitrarily by the program for digitizing and the resultant binary word is read into the accumulator. A sample program for the random addressing mode is as follows:

       TAD ADDR            /YES GET CHANNEL ADDRESS
       ADSC                /AND SEND TO MULTIPLEXER
       ADCV                /CONVERT A TO D
       ADSF                /SKIP ON A/D DONE FLAG
       JMP. -1             /WAIT FOR FLAG
       ADRB                /AND READ INTO AC

In the sequential address mode, the program advances the multiplexer channel- address register to the next channel each time an analog value is converted and read into the accumulator.

Should the converter/multiplexer be operated in the interrupt mode, the computer will be signaled each time that a binary word is ready, enabling the system to use processor time more efficiently.

Amplifier, Sample and Hold Options for AFOIA

The AH03 consists of a DEC amplifier (part ~ 1505379) mounted on an A990 Amplifier Board with appropriate scaling networks and gain trim and balance potentiometers.

Open loop gain                                2 x 106 Rated output voltage                                (@ 10 ma) +i iv Frequency response Unity Gain, small signal                       10 me Full output voltage                                300 kc Slewingrate                                    30v/~csec Overload recovery                              200 ~sec

Input voltage offset                          Adjustable to 0 Avg vs temp                             20 ~viOC Vs supply voltage                       15 i~vi% Vs time                              10 ~v/day

Input current offset                          ~2 na Avg vs temp                             0.4 na/oC Vs supply voltage                       0.15 na/%

Input impedance Between inputs                 6 meg Common mode                      500 meg

Input voltage                                  ~15v Max common mode                    ~10v Common mode rejection                  20,000

Power

Voltage                                        +15 to 16v Current at rated load                            35 ma

A400 (standard gain options) Acquisition time to 0.01% (full-scale step) <12 ~sec Aperture time <150 nsec Hold inaccuracy (droop) <1 mv/msec Temperature coefficient 0.1 mvimsecioC Gain (negative) 1.0 0.5 Input range (volts) ~5.0 +10.0 Impedance 10K IOK Output voltage O to -10v Impedance <1.0 ohm

Guarded Scanning Digital Voltmeter (Type AF04A)

Descrpition

The Type AF04A is a guarded scanning digital voltmeter system, with wide dynamic range and high common- mode rejection, and fully capable of expansion to 1000 channels. The Type AF04A is used with a PDP 12 computer to multiplex up to 1000 .i-wire analog channels into a ~-decimal-digit (BCD) integrating digital voltmeter. Full scale ranges are from i IO my to ~300v, with automatic ranging, 300 percent over ranging, and a usable 5 ~v resolution. Guarded input construction and active integration assist in attaining an effective common- mode rejection of greater than 140 db at 11I1 frequencies. (Normal-mode rejection is infinite at multiples of power line frequency.)

This system is ideally suited for data acquisition or process monitoring where a wide range of signals requires large dynamic range. The 10-mv range has 0.001 percent resolution and, coupled with excellent noise rejection, allows accurate direct measurement of thermocouples, strain gauges, load cells, and other low-level transducers without additional amplification.

The AFO·1A Voltmeter, operated under program control. is capable of either random channel selection or sequential channel selection. The computer selects either program controlled ranging (for fastest speed) or autoranging, as well as the integration time of the integrating digital voltmeter (IDVM). The digitized data, as well as the current channel address, is read by the computer in either two or three bytes.

A decimal display of the digitized value, including sign and decimal location, is continuously displayed on the front panel. The current channel number is also displayed. Front- panel controls on the digital voltmeter allow manual setting of all the programmed functions. A front- panel control allows continuous display of the internal secondary standard, which can be prewired to a particular channel for reference checking during normal operation. The AF04A Voltmeter System may be manually controlled, completely independent of the computer.

SPECIFICATIONS

Full scale~                                             ]Omv, 1 OOmv, iv, IOvl
                                                 100v, 300v, and automatic ranging Over ranging                            300% on all but highest range Resolution                                      5 ~v (usable), O. I~V(LSB) Accuracy (overall                               ~0.004% of reading worst case with                                 +0.017o of full scale~5~v daily calibration at calibration temperature)

Stability (RMS full scale                           +O.OO~~/day and zero drift) Temperature coefficient                       ~0003~ of reading/oC Full scale                                       +0.002r~ of full scaleioC Zero                                     (~0.006% of full scaleioC on 10 my and iv range) Line voltage stability                          ~0.0005~/10~ change Maximum common-mode voltage            ~300v from power line ground Common-mode rejection (16h.6             > 140 db at all frequencies msec integration period and ]000 ohm-source unbalance)

Normal-mode rejection                        Infinite at multiples of line frequency Input impedance 10, 100, 1000 my                                  1000 meg/v ranges Internal secondary standard Value                                          +1.000v Accuracy                                    ~0.00246 traceable to N.B.S. Stability                                                ~0.005%/month Temperature coefficient                                             negligible

SELECTED RESOLUTION

0.00141                       0.014g                            0.]%

DC Voltage    Maximum            Maximum              Maximum Range          Reading     Resolution    Reading      Resolution        Reading    Resolution

IOmv           30.0000 my     O.l~v        030.000 my     I~v           0030.00 my     IOl~v 100mv         300.00 my      i~cv         0300.00 my     ]Ol~v          00300.0 my     1001~v 1000 my        3000.00 my     IO~v        03000.0 my     ]00~v         003000. my     1 my IOv               30.0000v         100~v         030.000v         Imv              0030.00v         IOmv 100v            300.000v        Imv          0300.00v        10 my           00300.0v        100 my ]000v*        0300.00v      10 my       00300.0v      100mv        000300.v      iv

*1000v range is scanner-limited to 300v peak maximum

SCANNING SPEED

(Programmed Range)

Resolution                    integration               Total                     Scanning Time                  Time                  Speed

0.1%                         1.6                    20 msec                50 ch/sec. 0.01%                     16.6 msec             40 msec               25 chisec. 0.001~                    166.6 msec             188 msec               5 chisec.

Scanning Speed (Auto Range)Add 6-36 msec depending on per-channel voltage span.

Instructions

The I/O transfer (IOT) commands associated with the scanning digital voltmeter system are designed to minimize the computer overhead associated with this option while retaining maximum program controlled flexibility. The IOT instructions are:

VSEL - Select Range and Gate

Octal code: 6542
Event time: 2
Execution time: 4.25 µsec
Operation: The contents of the accumulator are transferred to the AD04A control register as shown below.
Symbol: C(AC) = > C(VCR)

CONTROL WORD 1 (FROM PDP-I2)

0 I  1 1  2 1  3 1  4 1  5 1 a  1  7 1  8 1  9 1 10 1 11

SELECT   I    I    I    I    I     I    1       RANGE       GATE
AC   DC   ~2    F   P    I OPTION                 TIME SCANNER RESET
Control Word I only used if a range change is required

VCNV - Select Channel and Convert

Octal code: 6541
Event time:
Execution time: 4.25 µsec
Operation: The contents of the accumulator are transferred to the AF04A channel address register as shown below. The analog signal on the selected channel is automatically digitized.
Symbol: C(AC) = > C(VAR)

CONTROL WORD Z (FROM PDP-12)

0   I    1   1    2   1    3   1   4   1    5   1   6   1   7    1    8   1-  9   1   io  I   11

ro'          I           to'          I           100

CHANNEL SELECT

VINX - Index Channel and Convert

Octal code: 6544
Event time: 3
Execution time: 4.25 µsec
Operation: The last channel address is incremented by one and the analog signal on the selected channel is automatically digitized. The contents of the control register is unchanged.
Symbol: VAR + 1 => VAR

VSDR - Skilp on Data Ready

Octal code: 6531
Event time: 1
Execution time: 4.25 µsec
Operation: When the scanning voltmeter has selected a channel and digitized the analog signal, a data ready flag is set. This instruction is used to test for the data ready flag.
Symbol: If Flag = 1, then PC + 1 = > PC

VRD - Read L)ofe a,,d Clear Flag

Octal code: 6532
Event time: 2
Execution time: 1.25 µsec
Operation: The contents of the selected byte of the voltmeter output word is transferred to the accumulator and the data ready flag is cleared. The first data flag after the flag is set, is always byte 1 (see below). Subsequent bytes are program selected using the byte advance command.
Symbol: C(VOR) = > C(AC)

DATA WORD (TO PDP-12) BYTE 1

0  I   1   1   2  1   3  1  4  1   5  1  a   1   7  1   8  1   9  1  io I  11

105     1              104

SIGN      RANGE       OPTION          DIGITIZED VOLTAGE

,6x X=0-7

DATA WORD (TO PDP-12) BYTE 2
0 I  1  1  2 1  3 1  4 1  5 1 6  1  7 1  8 1  9 1  io I 11

to'             I              ro'             1              101

DIGITIZED VOLTAGE
DATA WORD (TO PDP-I2) BYTE 3
0 I  1 1  2 1  3 1  4 1  5 1 a 1  7 1  8 1  9 1  io I 11

100           1             to'           I             100

DIC.ITIZED VOLTAGE                  CURRENT CHANNEL
Data word 3 seldom required, all address and digitized data are in 8-4-2-1 BCD format.

VBA - Byte advance

Octal code: 6534
Event time: 3
Execution time: 4.25 µsec
Operation: The total data word from the AF04A is 36-bits long. The first data word after the flag is set, is always the twelve most significant bits. The BYTE ADVANCE command requests the next twelve most significant bits. When the data is available, the data ready flag is set again. To select the twelve least significant bits, a second BYTE ADVANCE command is required. When the data is available, the data ready flag is set again.
Symbol: C(VOR,~,,)= > C(VOR,,~,,) or C(VOR,,~,,)= > C(VOR, 4-) i)

VSCC - Sample Current Channel

Octal code: 6571
Event time: Execution time: 4.25 µsec
Operation: The analog signal on the current channel is digitized. This command is not required except when multiple samples are required on any channel. (Using this command on a preselected Channel saves up to 10 milliseconds per sample.)
Symbol: None

5-114 Frequency and Period Measurement Options for AF04A

A separate input permits the IDVM to be used as a frequency counter capable of counting to 2MHz with selectable gate times of 1, 10, and 100 milliseconds, providing measurement resolution of 10Hz. Increased accuracy at low frequencies (to 10kHz with automatic 250% overranging) is accomplished with the period- measurement mode. This mode counts an internal frequency source for 1, 10, or 100 periods of the frequency being measured, thereby providing increased full- scale accuracy. Period readout is in milliseconds.

Frequency and voltage measurements may be made within one scanning cycle by grouping all frequency inputs in one master or slave scanner and all voltage inputs in another master or slave scanner. The output of the scanner may then be connected to the frequency- input connector of the IDVM and the output of the other scanner to the voltage input. One of the optional control word bits is used to program the IDVM for frequency or period measurements.

SPECIFICATIONS

Frequency Measurements

Range:        10Hz to 2MHz

Sensitivity:     100mv rms or  iv pulses, at least 0.3 ~sec wide at 50% points. 100 v rms maximum working voltage.

Input Impedance:   22k ohms shunted by less than 1000 pf, including internal
                   cabling.

Accuracy:     ~1 count + time base accuracy

Time Base:    100 KHz crystal oscillator with initial accuracy of ~0.0005%,
              long-term stability ~0.0001%/wk; temp. coefficient f0.0002%/OC.

Period Mensurements

Range:        i, 10, and 100 period average. Input frequency from 10Hz to 2SkH~
              sine wave or 0.1 pps. to 25,000 pps.

Sensitivity:     100 mv rms or   iv pulses, at least 0.3 ~sec wide at 50%
                 points. 100v rms maximum working voltage.

Input Impedance:   22k ohms shunted by less than 1000pf, including internal
                   cabling.

Accuracy:     ~I count + time base accuracy + trigger error. Trigger
              error < + 0.03% for 100mv rms sine wave with 40db
              signal-to-noise ratio.

Time Base:   100kHz crystal oscillator with initial accuracy of +0.0005%
             long-term stability +0.0001%/wk; temp.  coefficient +0.0002%10C.


SI~:e~r~t~a, 1               0.001&             1                0.01%            (               O.lib

                                         I~uding                    Rladioe   I Relolution Funcuon I  ~m I RFsoluflonl  MB"Olum  I Realufion ) MBLimum

Frequency I 2000.00kHr I    10Hz    I 02000.0kHz I   100Hz   I 002000kHz I    IkHz Period   I 99.9999msec I     O.l~s     I 999.999msec       l.Ol~s    19999.99msec I     IO~s
Additional AF04A Options

Information on the following options may be had from your nearest DIGITAL EOUIPMENT CORPORATION Office:

Frequency (period) measurements. AC/ohms/DC Converter Time-of-day clock.
Thumb-wheel data entry panel. Thermocouple reference junctions.
Extended scanner for more than 1000 channels. Special cabinet with roll-out drawer chassis accessibility.