On a 1900 series machine, all peripheral transfers were
initiated by a PERI instruction referencing a control block,
which was an 'extracode' handled by the EXECutive. This
meant that programs could handle transfers on all types of
peripherals in a similar manner, with specific device driver
code in the EXECutive for the type/model concerned and
programmers need not worry about differences between say a
7-track tape unit and 9-track tape unit.
This was taken even further with Direct Access (discs)
devices with UDAS (Unified Direct Access Standard), in that
all types of exchangable discs from TEDS through EDS4/8,
EDS30/60 to EDS100/200 and fixed discs (*FD) could be
accessed as a Direct Access (*DA) unit, utilising the same
PERI control area/modes as an Exchangeable Disc (*ED). The
program did not need to know which type of device the file
was held on and could be run on different machines/disc
hardware without being re-compiled.
Normal Application Programs, generally, used the SUSBY
(Suspend While Busy) instruction after a PERI to initiate
the peripheral action. However, a DRM (Direct Response Mode)
additive was also available enabling the program to continue
with other actions or suspend itself awaiting an interrupt
(SUSIN). This was normally used by 'system' programs,
communications programs and operating systems.
| The basic PERI control block is 4 words
in length, but this could vary according
to the type of peripheral and action |
| Word 0 |
Type/Mode |
Set up as a counter modifier, B0-B8 Type
& B9-B23 Mode. The Type being in decimal and the
Mode in Octal. |
| Word 1 |
Reply |
If B0 set (i.e. word is negative) the transfer is
still in progress and the remainder of the word is
undefined. After the transfer has completed, the
remaining bits give a status for the transfer, the
actual bits set being dependant on the type/mode. |
| Word 2 |
Count |
The maximum number of Characters or Words to
transfer, depending on the Peripheral Type. |
| Word 3 |
Address |
The address of the buffer area for the data transfer.
This was always on a word boundary, except for
Printers in normal print mode where it pointed to
character 3 of a Word, which held the
PFCC and the actual data started
in character 0 of the next word. |
| |
| *TR - Paper Tape Reader |
| Word 0 |
Type/Mode |
0/#0 - Normal Read starting in alpha
shift Additive Mode #2 - read N characters or to
stop character Additive Mode #4 - start in
previous shift Additive Mode #10 - graphic set
modes Additive Mode #20 - all characters mode |
| Word 1 |
Reply |
B0=1 Transfer in Progress B3=1 Transfer Error |
| Word 2 |
Count |
128 (Characters) |
| Word 3 |
Address |
Character Address |
| |
| *TP - Paper Tape Punch |
| Word 0 |
Type/Mode |
1/#0 - Normal Write starting in alpha
shift Additive Mode #4 - start in previous
shift Additive Mode #10 - graphic set
modes Additive Mode #20 - punch blanks
(runout) |
| Word 1 |
Reply |
B0=1 Transfer in Progress B3=1 Transfer Error |
| Word 2 |
Count |
128 (Characters) |
| Word 3 |
Address |
Character Address |
| |
| *LP - Line Printer |
| Word 0 |
Type/Mode |
2/#0 - Normal Mode
2/#2 - Automatic Write (available
on 1933 & 2430 printers only)
2/#4 - Extended Mode (available only on 2430 train
printer) |
| Word 1 |
Reply |
B0=1 Transfer in Progress B1=1 Overflow
B2=1 Paper Low B3=1 Transfer Error |
| Word 2 |
Count |
Mode 0 - For 1933 printers only, the count is
the number of characters to be printed plus one for
the PFCC. The maximum number of
characters is limited by the number of print
positions available on the printer. If the count is
greater than the number of print positions, then the
excess characters are ignored.
For all other printers, the count must be one more
than the number of print positions available on the
printer. If the count is greater than the number of
print positions, then the excess characters are
ignored.
Mode 2 - This mode is only available on the
1933 & 2430 printers. The value of the count is the
number of
printable and control characters to be sent to the
printer. There is no maximum value except that
implied by the program's limit address in the
store.
Mode 4 - This mode is only available on the
2430 printer. The value of the count is the number
of characters to be printed plus one for the
PFCC. This mode allows shift
characters to be included in the data to make use
of the optional extended 96-character set available
on the printer. |
| Word 3 |
Address |
Character Address for mode #0 this must be
character 3 for mode #2 this must be a word
address |
| |
| *CR - Card Reader |
| Word 0 |
Type/Mode |
3/#0 - Normal Decode Mode 3/#2 - Column Image
Mode |
| Word 1 |
Reply |
B0=1 Transfer in Progress B3=1 Transfer Error |
| Word 2 |
Count |
Mode 0 - 80 (Characters)
Mode 2 - 160 (Characters) |
| Word 3 |
Address |
Word Address |
| |
| *CP - Card Punch |
| Word 0 |
Type/Mode |
4/#0 |
| Word 1 |
Reply |
B0=1 Transfer in Progress B3=1 Transfer Error |
| Word 2 |
Count |
80 (Characters) |
| Word 3 |
Address |
Word Address |
| |
| *MT - Magnetic Tape (Read/Write Modes) |
| Word 0 |
Type/Mode |
5/#0 - Read
5/#1 - Write
5/#2 - Read Reverse
5/#3 - Backspace
5/#4 - Skip Forward Past Tape Mark
5/#5 - Write Tape Mark
5/#6 - Skip Back Past Tape Mark
5/#7 - Rewind |
| Word 1 |
Reply |
B0=1 Transfer in Progress
B1=1 Long Block (modes 0 & 2)
B2=1 Corrected Error (9-track modes 0 & 2)
B3=1 Transfer Error
B4=1 End of Tape (modes 1 & 5)
or Tape Mark (modes 0 & 2)
B6 to B23 Address of next work to be read or written
if transfer had not terminated (modes 0, 1 & 2) |
| Word 2 |
Count |
Maximum 32,768 (Words) Modes 0, 1 & 2 only |
| Word 3 |
Address |
Word Address |
| *MT - Magnetic Tape (Open/Close Modes) |
| Word 0 |
Type/Mode |
5/#100 - Open Labelled Tape for Reading (no WPR
check)
5/#200 - Open Labelled Tape for Reading (check WPR
absent)
5/#300 - Open Labelled Tape for Reading and
Writing
5/#400 - Open Output Tape and Label for Retention
5/#500 - Relabel Opened Tape
5/#600 - Open Work Tape
5/#1000 - Close Tape (Rewind: de-allocate deck but
do not disengage
5/#1007 - Close Tape (Rewind: de-allocate and
disengage deck |
| Word 1 |
Reply |
Open Modes:
B0=0 Tape successfully opened
B1 to B23 Tape Serial Number if Open successful
Close Modes: B0 to B23 undefined |
| Words 2-4 |
Filename |
12 Character Filename (alphanumeric) |
| Word 5 |
RSN |
Reel Sequence Number (binary) |
| Word 6 |
FGN |
File Generation Number (binary) |
| Word 7 |
RP |
Retention Period (binary days) |
| Word 8 |
DW |
Date Written (binary days from 01Jan1900) |
| |
| *DA (*ED/*FD) - Direct Access Devices (Read/Write Modes) |
| Word 0 |
Type/Mode |
6/#0 - Read n Words (Max. 1 Bucket)
6/#1 - Write n Words (Max. 1 Bucket)
6/#2 - Read n Words (Max. 1 Seek Area)
6/#3 - Write n Words (Max. 1 Seek Area)
6/#400 - (Additive Mode) Suppress Check Read |
| Word 1 |
Reply |
B0=1 Transfer in Progress
B1=1 End of Cylinder (or Card)
B2=1 Auxilliary Control Area Full
B3=1 Transfer Error
B4=1 Bucket not in Auxilliary Control Area
B5=1 Bucket Number Out of Range or Zero |
| Word 2 |
Count |
Words, Maximium 1 Bucket or 1 Seek Area |
| Word 3 |
Address |
Word Address |
| Word 4 |
Bucket |
Logical Bucket Number |
| *DA (*ED/*FD) - Direct Access Devices (Open/Close Modes) |
| Word 0 |
Type/Mode |
6/#100 - Open as Overlay File (read/write)
6/#200 - Open as Input File
6/#300 - Open as Output File
6/#400 - Open at End of File
6/#500 - Expand or Contract File
6/#600 - Open Work File
6/#700 - Rename a File
6/#1000 - Close File |
| Word 1 |
Reply |
B0=0 File Successfully Opened
B0=1 File Not Successfully Opened |
| Words 2-4 |
Filename |
12 Character Filename (alphanumeric) |
| Word 5 |
|
Set to Zero |
| Word 6 |
FGN |
File Generation Number (binary) |
| Word 7 |
RP |
Retention Period (binary days) |
| Word 8 |
NFGN |
New File Generation Number (binary) |
| |
| *MC - Magnetic Card File |
| See *DA for modes. *MC Type=7 |
| |
| *DS - Data Store (Read/Write Modes) |
| Word 0 |
Type/Mode |
8/#0 - Read
8/#1 - Write
8/#5 - Write |
| Word 1 |
Reply |
B0=1 Transfer in Progress |
| Word 2 |
Count |
No. 64 Word Sectors |
| Word 3 |
Address |
Word Address |
| Word 4 |
Drum Sector |
Starting sector for read, relative to the first sector of file for
start of transfer - starts at zero |
| *DS - Data Store (Open/Close Modes) |
| Word 0 |
Type/Mode |
8/#100 - Open for Reading and Writing
8/#200 - Open for Reading
8/#400 - Open (create) Permanent Output File
8/#600 - Open (create) Work File
8/#1000 - Close File
8/#1400 - Close File and Abandon It |
| Word 1 |
Reply |
B0=0 File Successfully Opened
B0=1 File Not Successfully Opened |
| Words 2-5 |
Filename |
16 Character Filename (alphanumeric) |
| Word 6 |
FSN |
File Serial Number (binary) |
| Word 7 |
RP |
Retention Period (binary days) |
| Word 8 |
DW |
Date Last Written (reply from open) |
| Word 9 |
File Size |
No. sectors/128 in file |
| |
| *DR - Magnetic Drum (Read/Write Modes) |
| Word 0 |
Type/Mode |
9/#0 - Read
9/#1 - Write |
| Word 1 |
Reply |
B0=1 Transfer in Progress
B3=1 Transfer Error |
| Word 2 |
Count |
Words, Maximium Drum File Size or Program Limit |
| Word 3 |
Address |
Word Address |
| Word 4 |
Drum Address |
Word Address, relative to the first word of file for
start of transfer |
| *DR - Magnetic Drum (Open/Close Modes) |
| Word 0 |
Type/Mode |
9/#100 - Open for Reading and Writing
9/#200 - Open for Reading
9/#400 - Open (create) Permanent Output File
9/#600 - Open (create) Work File
9/#1000 - Close File
9/#1400 - Close File and Abandon It |
| Word 1 |
Reply |
B0=0 File Successfully Opened
B0=1 File Not Successfully Opened |
| Words 2-4 |
Filename |
12 Character Filename (alphanumeric) |
| Word 5 |
File Size |
Multiples of 1024 words (B14 - B23 ignored)
For modes #100/#200 Actual File Size after successful
open |
| |
| *FD - Fixed Disc |
| See *DA for modes. *FD Type=13 |
| |
| *UX (*IT) - Uniplexor |
| Word 0 |
Type/Mode |
10/#0 - No significance (provided for additive mode #2000)
10/#1 - Write
10/#2 - Read
10/#3 - Write and Read
10/#4 - Cancel
10/#1000 - Close and Release channel
10/#2000 - Unset Flag (additive mode)
10/#4001 - Assign Flag Area |
| Word 1 |
Address of reply word (1st transfer) |
Modes 1, 2 & 3
In mode #4000 (*UX), start address of Flag Area
In mode #4001 (*IT), start address of Flag Area |
| Word 2 |
Count (1st transfer) |
Maximum 128 (Characters) Modes 1, 2 & 3 only |
| Word 3 |
Address (1st transfer) |
Character Address |
| Word 4 |
Address of reply word (2nd transfer) |
Mode 3 only |
| Word 5 |
Count (2nd transfer) |
Maximum 128 (Characters) Modes 1, 2 & 3 only |
| Word 6 |
Address (2nd transfer) |
Character Address |
| Reply Word |
|
B0=1 Transfer in Progress
B2=1 Input terminated without EOM
B3=1 Transfer terminated with error
B4=1 Instruction cancelled
B5=1 TTY operable when instruction terminated
B17 to B23 Unexpired character count |
| |
| *MX - Multiplexor |
| Word 0 |
Type/Mode |
11/#0 - No significance (provided for additive mode #2000)
11/#1 - Write
11/#2 - Read
11/#3 - Write and Read
11/#4 - Cancel
11/#11 - Write in presence of Read Request
11/#13 - Write in presence of Read Request followed by Read
11/#21 - Continuation Write
11/#22 - Continuation Read
11/#26 - Double Read
11/#1000 - Close and Release channel
11/#2000 - Unset Flag (additive mode)
11/#4000 - Assign Flag Area |
| Word 1 |
Address of reply word (1st transfer) |
Modes 1, 2, 3, #11, #13, #21, #22 & #26
In mode #4000, start address of Flag Area (4 words) |
| Word 2 |
Count (1st transfer) |
Maximum 128 (Characters) Modes 1, 2, 3, #11, #13, #21, #22 & #26 only |
| Word 3 |
Address (1st transfer) |
Character Address |
| Word 4 |
Address of reply word (2nd transfer) |
Modes 3, #13 & #26 only |
| Word 5 |
Count (2nd transfer) |
Maximum 128 (Characters) Modes 3, #13 & #26 only |
| Word 6 |
Address (2nd transfer) |
Character Address |
| Reply Word |
|
B0=1 Transfer in Progress
B2=1 Input terminated without EOM
B3=1 Transfer terminated with error
B4=1 Instruction cancelled
B5=1 TTY operable when instruction terminated
B17 to B23 Unexpired character count |
| |
| *CT - Cassette Tape (Read/Write Modes) |
| Word 0 |
Type/Mode |
12/#0 - Read
12/#1 - Write
12/#2 - Erase a section of Tape
12/#7 - Align |
| Word 1 |
Reply |
B0=1 Transfer in Progress
B1=1 Long Block (modes 0 & 2)
B3=1 Transfer Error
B4=1 End of Tape (modes 0, 1 & 2)
B6 to B23 Address of next work to be read or written
if transfer had not terminated (modes 0 & 1) |
| Word 2 |
Count |
Maximum 32,768 (Words) Modes 0, 1 & 2 only |
| Word 3 |
Address |
Word Address |
| *CT - Cassette Tape (Open/Close Modes) |
| Word 0 |
Type/Mode |
12/#100 - Open Labelled Tape for Reading (no WPR
check)
12/#200 - Open Labelled Tape for Reading (check WPR
absent)
12/#300 - Open Labelled Tape for Reading and
Writing
12/#400 - Open Output Tape and Label for
Retention
12/#500 - Relabel Opened Tape
12/#600 - Open Work Tape
12/#1000 - Close Tape (Rewind: de-allocate deck but
do not disengage
12/#1007 - Close Tape (Rewind: de-allocate and
disengage deck |
| Word 1 |
Reply |
Open Modes:
B0=0 Tape successfully opened
B1 to B23 Tape Serial Number if Open successful
Close Modes: B0 to B23 undefined |
| Words 2-4 |
Filename |
12 Character Filename (alphanumeric) |
| Word 5 |
RSN |
Reel Sequence Number (binary) |
| Word 6 |
FGN |
File Generation Number (binary) |
| Word 7 |
RP |
Retention Period (binary days) |
| Word 8 |
DW |
Date Written (binary days from 01Jan1900) |
| |
| *ID - Alphanumeric Visual Display Unit
Controller |
| Word 0 |
Type/Mode |
14/#0 - No significance (provided for additive mode #2000)
14/#1 - Initial Write
14/#2 - Read
14/#21 - Continuation Write
14/#22 - Continuation Read
14/#1000 - Close and Release channel
14/#2000 - Unset Flag (additive mode)
14/#4000 - Assign Flag Area |
| Word 1 |
Address of reply word |
Modes 1, 2, #21 & #22
In mode #4000, start address of Flag Area |
| Word 2 |
Count |
Maximum 2088 (Characters, multiple of 4) Modes 1, 2, #21 & #22 only |
| Word 3 |
Address |
Character Address |
| Reply Word (Write) |
|
B0=1 Transfer in Progress
B1=1 Time out
B2=1 Rejected Input Message waiting
B3=1 Error (frame overflow/wrong mode)
B5=1 AVDU operable
B6 to B23 Not used |
| Reply Word (Read) |
|
B0=1 Transfer in Progress
B2=1 Message not complete
B4=1 Not implemented (no message available)
B9 to B23 Unexpired character count |
| |
| *GP - Digital Incremental Plotter |
| Word 0 |
Type/Mode |
20/#0 |
| Word 1 |
Reply |
B0=1 Transfer in Progress
B3=1 Transfer Error |
| Word 2 |
Count |
Maximium 32,767 Characters |
| Word 3 |
Address |
Word Address |
| |
| *GD - General Purpose Visual Display Unit |
| Word 0 |
Type/Mode |
21/#0 - No significance (provided for additive mode #2000)
21/#1 - Write
21/#2 - Read
21/#3 - Write and Read
21/#4 - Cancel
21/#1000 - Close and Release device
21/#2000 - Unset Flag (additive mode)
21/#4000 - Assign Flag Area |
| Word 1 |
Address of reply word (1st transfer) |
Modes 1, 2 & 3
In mode #4000, address of Flag Area |
| Word 2 |
Count (1st transfer) |
Maximum 32,767 (Characters) Modes 1, 2 & 3 only |
| Word 3 |
Address (1st transfer) |
Character Address |
| Word 4 |
Address of reply word (2nd transfer) |
Mode 3 only |
| Word 5 |
Count (2nd transfer) |
Maximum 32,768 (Characters) Modes 1, 2 & 3 only |
| Word 6 |
Address (2nd transfer) |
Character Address |
| Reply Word |
|
B0=1 Transfer in Progress
B3=1 Camera Fail?
B4=1 Not Implemented
B5=1 Operable when instruction terminated
B17 to B23 Unexpired character count |
| |
| *UD - Universal Document Reader |
| Word 0 |
Type/Mode |
23/#2 - Read Document (OMR mode)
23/#4 - Read Document (OCR mode)
23/#6 - Read Document (OMR & OCR modes)
23/#10 - Stacker Select
23/#20 - Specify OCR Format Area |
| Word 1 |
Reply |
B0=1 Transfer in Progress
B3=1 Transfer Error
B4=1 Warning
B5=1 Operable |
| Word 2 |
Count |
Mode #2 - characters (multiple of 8)
Mode #4 - characters
Mode #6 - OCR characters
Mode #10 - not used
Mode #20 - Number of Format Specifying Characters |
| Word 3 |
Address |
Word Address of Buffer
Mode #10 - Stacker Address (0-11) |
| Word 4 |
Reply |
Mode #6 Only - OMR reply |
| Word 5 |
Count |
Mode #6 Only - OMR characters (multiple of 8) |
| Word 6 |
Address |
Mode #6 Only - Word Address of OMR Buffer |
| |
| *CC - 7900 Communications Controller (IPB) |
| Word 0 |
Type/Mode |
24/#1 - Write
24/#2 - Read
24/#5 - Write Cancel Read
24/#11 - End Write
24/#12 - End Read
24/#15 - End Write Cancel Read
24/#1000 - Close and Release channel |
| Word 1 |
Reply Word |
B0=1 Action not completed
B4=1 Rejected, IPB operable
B5=1 Rejected, IPB inoperable
Else Accepted, in progress
B0=0 Accepted and action complete
B1=1 Timed out
B2=1 Input terminated on limit
B3=1 Error in transfer
B4=1 Order cancelled
B5=1 IPB operable
B15 to B23 Unexpired word count |
| Word 2 |
Count |
Maximum 511 (Words) |
| Word 3 |
Address |
Word Address |
| |
| *HD - High Speed Drum |
| See *DR for modes. *HD Type=25 |
| |
| *PB - Inter-Program Communications Link (Read/Write Modes) |
| Word 0 |
Type/Mode |
28/#0 - Read
28/#1 - Write
28/#21 - Double-length Write
28/#4 - Cancel Transfer |
| Word 1 |
Reply |
B0=1 Transfer in Progress
B1=1 Time Out
B2=1 Long Block
B3=1 Transfer Error
B4=1 Link Inoperable
B5=1 Link Operable
B6=1 Not Established
B15-23=1 Remainder Count |
| Word 2 |
Count |
Words, Maximium 511 |
| Word 3 |
Address |
Word Address |
| Word 4 |
Count |
Words, Maximium 511 (Mode #21 only) |
| Word 5 |
Address |
Word Address (Mode #21 only) |
| *PB - Inter-Program Communications Link (Open/Close Modes) |
| Word 0 |
Type/Mode |
28/#200 - Open Link for Reading
28/#400 - Open Link for Writing
28/#1000 - Close Link |
| Word 1 |
Reply |
Direct Response only - Accepted/Rejected |
| Words 2-4 |
Filename |
12 Character Filename (alphanumeric) |
| |
| *FR - File Reader (George 3 Virtual
Device) |
| Word 0 |
Type/Mode |
50/#2 - Read Record
50/#12 - Read File Details |
| Word 1 |
Reply |
B1=1 Incomplete Record Read
B6 - B23 Address of next word to be read (if equal to
buffer address EOF reached) |
| Word 2 |
Count |
1 - 511 Words |
| Word 3 |
Address |
Word Address |
| |
| *FW - File Writer (George 3 Virtual
Device) |
| Word 0 |
Type/Mode |
51/#1 - Write Record |
| Word 1 |
Reply |
B0=1 Command Failed
|
| Word 2 |
Count |
1 - 511 Words |
| Word 3 |
Address |
Word Address |
| |
| *FH - File Handler (George 3 Virtual
Device) |
| Word 0 |
Type/Mode |
52/#1 - Write Record
52/#2 - Read Record
52/#3 - Re-write last record read
52/#4 - Position file and insert record
52/#5 - Delete last record read
52/#6 - Delete all records not yet read
52/#7 - Reposition read pointer
52/#11 - Write Directory Header Information
52/#12 - Read Directory Header Information
52/#21 - Write Block
52/#22 - Read Block
52/#30 - Indexed Read of Directory Entry
52/#32 - Read Next Directory Entry
52/#33 - Rewrite Last Directory Entry Read
52/#34 - Position and Insert New Directory Entry
52/#37 - Backspace Over One Directory Entry
52/#73 - Normal Write to System Journal
52/#74 - Unanticipated Write to System Journal
52/#76 - Read Record of Dictionary Updating
52/#77 - Update Dictionary Entries |
| Word 1 |
Reply |
B0=1 Command Failed
B1=1 Incomplete Record Read
B9 - B23 Address of next word to be read (if
equal to buffer address EOF reached) |
| Word 2 |
Count |
Words |
| Word 3 |
Address |
Word Address |
| |
| *CI - Command Issuer (George 3 Virtual
Device) |
| Word 0 |
Type/Mode |
60/#1 - Write a Command (unanticipated)
60/#2 - Read a Program Parameter
60/#3 - Effect a break-in
60/#11 - Write a Command (anticipated)
60/#12 - Read Output from George
60/#13 - Break-in or Start Up
|
| Word 1 |
Reply |
B0=1 Channel Busy
B4=1 Command Error
B15 - B23 Unexpired character count |
| Word 2 |
Count |
1 - 511 Characters |
| Word 3 |
Address |
Word Address |