Difference between revisions of "Chaosnet interface"
m (Jnc moved page QBCHNI to Chaosnet interface: QBUS and UNIBUS interfaces are very similar, will cover on the same page) |
m (→764140: Control Status Register (CSR): Typo) |
||
(7 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | + | [[Image:CH11-board.png|thumb|right|250px|CH11 Unibus board]] | |
− | + | The '''Chaosnet UNIBUS interface''' (also called the '''CHAOS-11''', '''CH11''', '''QUAD''' and '''QAD'''; there was no generally-used name) and '''QBCHNI''' are [[Chaosnet]] [[network interface]]s, for the [[UNIBUS]] and [[QBUS]] respectively. (The two [[device controller]]s are identical in [[program]]ming terms, so they are both covered in this single article.) | |
− | + | They use [[programmed I/O]] to transfer data to and from [[buffer]]s in [[main memory]]. They have on-board buffers (one each for inbound and outbound) which can hold one [[packet]] of data. | |
− | + | They are both a single [[DEC card form factor|quad]] [[wire-wrap]]ped card. <!-- They therefore take up two slots; a [[grant continuity card]] is required, to plug into the second slot, to carry the QBUS' [[bus grant line]]s through the second slot, if there are any devices down-bus from them. | |
+ | I am not certain of this; I think cards with pins on the back did this, which is why they made card with pins on the package side. --> | ||
+ | Their [[bus]] [[address]] and [[interrupt vector]]s can be set via [[Dual Inline Package|DIP]] switches; <!-- to 7mnnp0 for the address (where m can be 6 or 7, and p 0,2,4 or 6), and 0xx0 for the vector. --> the defaults are 0764140 and 0270. The [[network address]] is also set via a DIP switch. | ||
+ | |||
+ | ==Device registers== | ||
+ | |||
+ | They have 7 [[register]]s: | ||
+ | |||
+ | {| border=1 | ||
+ | ! Register !! Abbreviation !! Address | ||
+ | |- | ||
+ | |Command and Status Register || CAICSR || 764140 | ||
+ | |- | ||
+ | |My address (read only) || CAIMYN || 764142 | ||
+ | |- | ||
+ | |Write buffer (write only) || CAIWBF || 764142 | ||
+ | |- | ||
+ | |Read buffer || CAIRBF || 764144 | ||
+ | |- | ||
+ | |Read bit counter || CAIRBC || 764146 | ||
+ | |- | ||
+ | |Unused || || 764150 | ||
+ | |- | ||
+ | |Initiate transmission || CAIXMT || 764152 | ||
+ | |- | ||
+ | |Unused || || 764154 | ||
+ | |- | ||
+ | |Unused || || 764156 | ||
+ | |- | ||
+ | |Load interval timer (write only) || CAITIM || 764160 | ||
+ | |} | ||
+ | |||
+ | |||
+ | In the register contents (below), bits which are read/write or unused are shown in normal font, those which are read-only are in ''italics'', and those which are write-only are shown in '''bold'''. | ||
+ | |||
+ | ===764140: Control Status Register (CSR)=== | ||
+ | {{16bit-header}} | ||
+ | | RDN || ''ERR'' || '''RST''' || colspan=4 | ''LSTCN'' || '''TCL''' || TDN || ''TAB'' || TEN || REN || '''RCL''' || SPY || LPBK || TIE | ||
+ | {{16bitoctal-bitout}} | ||
+ | |||
+ | Bits are: | ||
+ | |||
+ | {| class="wikitable" | ||
+ | ! Bits !! Use | ||
+ | |- | ||
+ | | RDN || Receive done | ||
+ | |- | ||
+ | | ERR || [[Cyclic redundancy check|CRC]] error | ||
+ | |- | ||
+ | | RST || I/O reset for interface | ||
+ | |- | ||
+ | | LSTCN || Count of messages lost | ||
+ | |- | ||
+ | | TCL || Transmitter clear | ||
+ | |- | ||
+ | | TDN || Transmitter done | ||
+ | |- | ||
+ | | TAB || Transmit aborted by conflict | ||
+ | |- | ||
+ | | TEN || Transmit interrupt enable | ||
+ | |- | ||
+ | | REN || Receive interrupt enable | ||
+ | |- | ||
+ | | RCL || Receiver clear | ||
+ | |- | ||
+ | | SPY || Accept all messages | ||
+ | |- | ||
+ | | LPBK || Loop back in interface | ||
+ | |- | ||
+ | | TIE || Timer interrupt enable<br>(was Transmitter busy) | ||
+ | |} | ||
+ | |||
+ | ===764142: My Address Register (MYN)=== | ||
+ | {{16bit-header}} | ||
+ | | colspan=8 | ''Subnet7 <---> Subnet0'' || colspan=8 | ''Host7 <---> Host0'' | ||
+ | {{16bitoctal-bitout}} | ||
+ | |||
+ | Read-only register. | ||
+ | |||
+ | ===764142: Write Buffer Register (WBF)=== | ||
+ | {{16bit-header}} | ||
+ | | colspan=16 | '''OutData15 <---> OutData00''' | ||
+ | {{16bitoctal-bitout}} | ||
+ | |||
+ | Write-only register. | ||
+ | |||
+ | ===764144: Read Buffer Register (RBF)=== | ||
+ | |||
+ | {{16bit-header}} | ||
+ | | colspan=16 | ''InData15 <---> InData0'' | ||
+ | {{16bitoctal-bitout}} | ||
+ | |||
+ | Read-only register. | ||
+ | |||
+ | ===764146: Read Bit Counter Register (RBC)=== | ||
+ | |||
+ | {{16bit-header}} | ||
+ | | colspan=4 | Unused || colspan=12 | ''BitCount11 <---> BitCount0'' | ||
+ | {{16bitoctal-bitout}} | ||
+ | |||
+ | On the Chaosnet UNIBUS interface, a read-only register. | ||
+ | |||
+ | On the QBCHNI, ''writing'' the interface's network address into this register initiates transmission of a packet. | ||
+ | |||
+ | ===764152: Initiate Transmission Register (XMT)=== | ||
+ | {{16bit-header}} | ||
+ | | colspan=8 | ''Subnet7 <---> Subnet0'' || colspan=8 | ''Host7 <---> Host0'' | ||
+ | {{16bitoctal-bitout}} | ||
+ | |||
+ | On the Chaosnet UNIBUS interface, a read-only register; ''reading'' it initiates transmission of a packet. (The data returned is the interface's network address.) | ||
+ | |||
+ | ===764160: Load Interval Timer Register (TIM)=== | ||
+ | {{16bit-header}} | ||
+ | | colspan=16 | '''Timer15 <---> Timer00''' | ||
+ | {{16bitoctal-bitout}} | ||
+ | |||
+ | Write-only register. | ||
+ | |||
+ | ==External links == | ||
+ | |||
+ | <!-- * [https://github.com/hanshuebner/cadr2/blob/master/mit/chaos/quad.setup "how to setup ... QBCHNI Chaosnet Interfaces (the LSI-11 Q-Bus version)"] dup of one below --> | ||
+ | * [https://github.com/PDP-10/its-vault/tree/master/files/chaos CHAOS;] - includes drawings and documentation | ||
+ | ** [https://github.com/PDP-10/its-vault/blob/master/files/chaos/chs.defs CHS DEFS] - register declarations | ||
+ | ** [https://github.com/PDP-10/its-vault/blob/master/files/chaos/%24quad.log $QUAD LOG] - "Log of ChaosNet Interface Boards (quad-high, PDP-11 version)" | ||
+ | ** [https://github.com/PDP-10/its-vault/blob/master/files/chaos/quad.setup QUAD SETUP] - "how to setup .. Chaosnet Interfaces" | ||
+ | ** [https://github.com/PDP-10/its-vault/blob/master/files/chaos/quad.eco QUAD ECO] - "ECO to .. Change cable speed to 4 MHz" | ||
+ | ** [https://github.com/PDP-10/its-vault/blob/master/files/chaos/qadchs.note QADCHS NOTE] - random jottings | ||
+ | * [https://github.com/larsbrinkhoff/chaos-schematics/tree/master/converted SUDS drawings converted to PNG pictures] | ||
+ | |||
+ | [[Category: UNIBUS Network Interfaces]] | ||
[[Category: QBUS Network Interfaces]] | [[Category: QBUS Network Interfaces]] | ||
+ | [[Category: Chaosnet Hardware]] |
Latest revision as of 19:59, 24 November 2024
The Chaosnet UNIBUS interface (also called the CHAOS-11, CH11, QUAD and QAD; there was no generally-used name) and QBCHNI are Chaosnet network interfaces, for the UNIBUS and QBUS respectively. (The two device controllers are identical in programming terms, so they are both covered in this single article.)
They use programmed I/O to transfer data to and from buffers in main memory. They have on-board buffers (one each for inbound and outbound) which can hold one packet of data.
They are both a single quad wire-wrapped card.
Their bus address and interrupt vectors can be set via DIP switches; the defaults are 0764140 and 0270. The network address is also set via a DIP switch.
Contents
Device registers
They have 7 registers:
Register | Abbreviation | Address |
---|---|---|
Command and Status Register | CAICSR | 764140 |
My address (read only) | CAIMYN | 764142 |
Write buffer (write only) | CAIWBF | 764142 |
Read buffer | CAIRBF | 764144 |
Read bit counter | CAIRBC | 764146 |
Unused | 764150 | |
Initiate transmission | CAIXMT | 764152 |
Unused | 764154 | |
Unused | 764156 | |
Load interval timer (write only) | CAITIM | 764160 |
In the register contents (below), bits which are read/write or unused are shown in normal font, those which are read-only are in italics, and those which are write-only are shown in bold.
764140: Control Status Register (CSR)
RDN | ERR | RST | LSTCN | TCL | TDN | TAB | TEN | REN | RCL | SPY | LPBK | TIE | |||
15 | 14 | 13 | 12 | 11 | 10 | 09 | 08 | 07 | 06 | 05 | 04 | 03 | 02 | 01 | 00 |
Bits are:
Bits | Use |
---|---|
RDN | Receive done |
ERR | CRC error |
RST | I/O reset for interface |
LSTCN | Count of messages lost |
TCL | Transmitter clear |
TDN | Transmitter done |
TAB | Transmit aborted by conflict |
TEN | Transmit interrupt enable |
REN | Receive interrupt enable |
RCL | Receiver clear |
SPY | Accept all messages |
LPBK | Loop back in interface |
TIE | Timer interrupt enable (was Transmitter busy) |
764142: My Address Register (MYN)
Subnet7 <---> Subnet0 | Host7 <---> Host0 | ||||||||||||||
15 | 14 | 13 | 12 | 11 | 10 | 09 | 08 | 07 | 06 | 05 | 04 | 03 | 02 | 01 | 00 |
Read-only register.
764142: Write Buffer Register (WBF)
OutData15 <---> OutData00 | |||||||||||||||
15 | 14 | 13 | 12 | 11 | 10 | 09 | 08 | 07 | 06 | 05 | 04 | 03 | 02 | 01 | 00 |
Write-only register.
764144: Read Buffer Register (RBF)
InData15 <---> InData0 | |||||||||||||||
15 | 14 | 13 | 12 | 11 | 10 | 09 | 08 | 07 | 06 | 05 | 04 | 03 | 02 | 01 | 00 |
Read-only register.
764146: Read Bit Counter Register (RBC)
Unused | BitCount11 <---> BitCount0 | ||||||||||||||
15 | 14 | 13 | 12 | 11 | 10 | 09 | 08 | 07 | 06 | 05 | 04 | 03 | 02 | 01 | 00 |
On the Chaosnet UNIBUS interface, a read-only register.
On the QBCHNI, writing the interface's network address into this register initiates transmission of a packet.
764152: Initiate Transmission Register (XMT)
Subnet7 <---> Subnet0 | Host7 <---> Host0 | ||||||||||||||
15 | 14 | 13 | 12 | 11 | 10 | 09 | 08 | 07 | 06 | 05 | 04 | 03 | 02 | 01 | 00 |
On the Chaosnet UNIBUS interface, a read-only register; reading it initiates transmission of a packet. (The data returned is the interface's network address.)
764160: Load Interval Timer Register (TIM)
Timer15 <---> Timer00 | |||||||||||||||
15 | 14 | 13 | 12 | 11 | 10 | 09 | 08 | 07 | 06 | 05 | 04 | 03 | 02 | 01 | 00 |
Write-only register.
External links
- CHAOS; - includes drawings and documentation
- CHS DEFS - register declarations
- $QUAD LOG - "Log of ChaosNet Interface Boards (quad-high, PDP-11 version)"
- QUAD SETUP - "how to setup .. Chaosnet Interfaces"
- QUAD ECO - "ECO to .. Change cable speed to 4 MHz"
- QADCHS NOTE - random jottings
- SUDS drawings converted to PNG pictures