1 ;;; Copyright (c) 1999 Massachusetts Institute of Technology
3 ;;; This program is free software; you can redistribute it and/or
4 ;;; modify it under the terms of the GNU General Public License as
5 ;;; published by the Free Software Foundation; either version 2 of the
6 ;;; License, or (at your option) any later version.
8 ;;; This program is distributed in the hope that it will be useful,
9 ;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
10 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 ;;; General Public License for more details.
13 ;;; You should have received a copy of the GNU General Public License
14 ;;; along with this program; if not, write to the Free Software
15 ;;; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
17 ;;; Chaosnet interface on Unibus
19 CAICSR=3,,764140 ;COMMAND STATUS REG
21 %CABSY==1 ;0 XMT BUSY (RO)
22 %CALUP==2 ;1 LOOP BACK (R/W)
23 %CASPY==4 ;2 RECIEVE MSGS FOR ANY DESTINATION (R/W)
24 %CARCL==10 ;3 CLEAR THE RECEIVER, IT CAN NOW GOBBLE ANOTHER MSG (WO)
25 %CAREN==20 ;4 RCV INT ENB (R/W)
26 %CATEN==40 ;5 XMT INT ENB (R/W)
27 %CATAB==100 ;6 TRANSMIT ABORTED BY ETHER CONFLICT (RO)
28 %CATDN==200 ;7 TRANSMIT DONE. SET WHEN TRANSMITTER IS DONE
29 %CATCL==400 ;8 CLEAR THE TRANSMITTER, MAKING IT READY (WO)
30 $CALOS==110400 ;9-12 LOST COUNT (RO) [# MSGS RCVED WITH RCV BFR FULL]
31 ; WHEN MSG IS WAITING IN BUFFER, THIS COUNTS
32 ; THE MESSAGES THAT MATCHED OUR DESTINATION OR
33 ; WERE BROADCAST, BUT COULDN'T BE RECIEVED.
34 ; WHEN RECEIVER IS RE-ENABLED (WRITE 1 INTO %CARDN)
35 ; THE COUNT IS THEN CLEARED.
36 ; WHEN A MESSAGE IS LOST, RECEIVER ZAPS ETHER
37 ; SO TRANSMITTER WILL ABORT (IF MESSAGE WAS DESTINED
39 %CARST==20000 ;13 I/O RESET (WO)
40 %CAERR==40000 ;14 CRC ERROR (RO)
41 %CARDN==100000 ;15 RCV DONE.
43 CAIMYN==3,,764142 ;MY # (READ ONLY)
44 CH%MYN==2 ;RETURNS THE [SOURCE] HOST# OF THIS INTERFACE.
46 CAIWBF=3,,764142 ;WRITE BUFFER (WRITE ONLY)
47 CH%WBF==2 ;FIRST WAIT FOR TDONE. (OR SET IT VIA CSR)
48 ;FIRST WORD IN RESETS TRANSMITTER AND CLEARS TDONE.
49 ;STORE INTO THIS REGISTER TO WRITE WORDS OF MESSAGE,
50 ;LAST WORD IN IS DESTINATION ADDRESS, THEN READ CAIXMT.
51 ;SOURCE ADDRESS AND CHECK WORD PUT IN BY HARDWARE.
53 CAIRBF=3,,764144 ;READ BUFFER (READ ONLY)
54 CH%RBF==4 ;THE FIRST WORD READ WILL BE FILLED TO THE LEFT
55 ;TO MAKE THE MESSAGE RECIEVED A MULTIPLE OF 16 BITS.
56 ;IF THE NUMBER OF DATA BITS IN THE MESSAGE WAS A
57 ;MULTIPLE OF 16, THIS WORD WILL BE THE FIRST WORD PUT
58 ;INTO THE BUFFER BY THE TRANSMITTING HOST.
59 ;THE LAST 3 WORDS READ ARE DESTINATION, SOURCE, CHECK.
61 CAIRBC=3,,764146 ;RECEIVE BIT COUNTER (READ ONLY)
62 CH%RBC==6 ;WHEN A MESSAGE HAS BEEN RECEIVED THIS IS ONE LESS THAN
63 ;THE NUMBER OF BITS IN THE MESSAGE (16 X THE
64 ;NUMBER OF WORDS INCLUDING THE THREE OVERHEAD WORDS.)
65 ;AFTER THE LAST WORD (THE CRC WORD) HAS BEEN READ, IT IS 7777
66 ;BITS 10 AND 11 ARE THE HIGH ORDER BITS, AND IF THEY ARE ONE,
67 ;THEN THERE WAS A BUFFER OVERFLOW
69 CAIXMT=3,,764152 ;READING THIS INITIATES TRANSMISSION (!!)
70 CH%XMT==12 ;THE VALUE READ IS ONE'S OWN HOST#.
72 ;REFERENCING ADDRESSES IN THE GROUP OF 8 WORDS NOT LISTED HERE, OR
73 ;USING COMBINATIONS OF READ/WRITE NOT LISTED HERE, WILL TYPICALLY CAUSE
74 ;STRANGE AND BIZARRE EFFECTS.