;CHAOS NET INTERFACE DEFS -*- PALX -*- ;USUAL ADDRESS IS 764140 . USUAL INTERRUPT VECTOR IS 270 . CAICSR=164140 ;COMMAND STATUS REG CH.CSR==0 ;OFFSET OF CSR FROM THE BASE ADDRESS %CATIE==1 ;0 FORMERLY XMT BUSY NOW QUAD TIMER INTERRUPT ENABLE (R/W) %CALPBK==2 ;1 LOOP BACK MODE (DOESN'T USE CABLE WHEN ON) (R/W) %CASPY==4 ;2 RECIEVE MSGS FOR ANY DESTINATION (R/W) %CARCL==10 ;3 CLEAR THE RECEIVER. WRITING A 1 CLEARS RCV DONE ; AND ENABLES THE RECEIVER TO GOBBLE ANOTHER MESSAGE (WO) %CAREN==20 ;4 RCV INT ENB (R/W) %CATEN==40 ;5 XMT INT ENB (R/W) %CATAB==100 ;6 TRANSMIT ABORTED BY ETHER CONFLICT (RO) %CATDN==200 ;7 TRANSMIT DONE. SET WHEN TRANSMITTER IS DONE %CATCL==400 ;8 CLEAR THE TRANSMITTER MAKING IT READY (WO) ;9-12 LOST COUNT (RO) [# MSGS RCVED WITH RCV BFR FULL] ; WHEN MSG IS WAITING IN BUFFER, THIS COUNTS ; THE MESSAGES THAT MATCHED OUR DESTINATION OR ; WERE BROADCAST, BUT COULDN'T BE RECIEVED. ; WHEN RECEIVER IS RE-ENABLED (WRITE 1 INTO %CARDN) ; THE COUNT IS THEN CLEARED. ; WHEN A MESSAGE IS LOST, RECEIVER ZAPS ETHER ; SO TRANSMITTER WILL ABORT (IF MESSAGE WAS DESTINED ; TO US.) %CARST==20000 ;13 I/O RESET (WO) %CAERR==40000 ;14 CRC ERROR (RO) %CARDN==100000 ;15 RCV DONE. CAIMYN=164142 ;MY # (READ ONLY) ;RETURNS THE [SOURCE] HOST# OF THIS INTERFACE. CH.MYN==2 ;OFFSET CH.NET==3 ;OFFSET FOR READING SUBNET # CAIWBF=164142 ;WRITE BUFFER (WRITE ONLY) CH.WBF==2 ;OFFSET ;FIRST WAIT FOR TDONE. (OR SET IT VIA CSR) ;FIRST WORD IN RESETS TRANSMITTER AND CLEARS TDONE. ;STORE INTO THIS REGISTER TO WRITE WORDS OF MESSAGE, ;LAST WORD IN IS DESTINATION ADDRESS, THEN READ CAIXMT. ;SOURCE ADDRESS AND CHECK WORD PUT IN BY HARDWARE. CAIRBF=164144 ;READ BUFFER (READ ONLY) CH.RBF==4 ;OFFSET ;THE FIRST WORD READ WILL BE FILLED TO THE LEFT ;TO MAKE THE MESSAGE RECIEVED A MULTIPLE OF 16 BITS. ;IF THE NUMBER OF DATA BITS IN THE MESSAGE WAS A ;MULTIPLE OF 16, THIS WORD WILL BE THE FIRST WORD PUT ;INTO THE BUFFER BY THE TRANSMITTING HOST. ;THE LAST 3 WORDS READ ARE DESTINATION, SOURCE, CHECK. CAIRBC=164146 ;RECEIVE BIT COUNTER (READ ONLY) CH.RBC==6 ;OFFSET ;WHEN A MESSAGE HAS BEEN RECEIVED THIS IS ONE LESS THAN ;THE NUMBER OF BITS IN THE MESSAGE (16 X THE ;NUMBER OF WORDS INCLUDING THE THREE OVERHEAD WORDS.) ;AFTER THE LAST WORD (THE CRC WORD) HAS BEEN READ, IT IS 7777 ;BITS 10 AND 11 ARE THE HIGH ORDER BITS, AND IF THEY ARE ONE, ;THEN THERE WAS A BUFFER OVERFLOW ;NOTE: FOR THE Q-BUS VERSION OF THE INTERFACE (FOR LSI-11'S) ;WRITING CAIMYN INTO CAIRBC INITIATES TRANSMISSION. CAIXMT=164152 ;READING THIS INITIATES TRANSMISSION (!!) CH.XMT==12 ;OFFSET ;THE VALUE READ IS ONE'S OWN HOST#. ;**** NOTE COMMENT ABOVE UNDER CAIRBF FOR LSI-11'S **** ;REFERENCING ADDRESSES IN THE GROUP OF 8 WORDS NOT LISTED HERE, OR ;USING COMBINATIONS OF READ/WRITE NOT LISTED HERE, WILL TYPICALLY CAUSE ;STRANGE AND BIZARRE EFFECTS. CAIBRV==270 ;STANDARD INTERRUPT VECTOR ;;; OPCODES AND CONNECTION STATES FROM SYSTEM;CHSDEF > (BE SURE TO UPDATE BOTH ;;; PLACES IF YOU MAKE A CHANGE). ;PACKET OPCODES %CORFC==1 ;REQUEST FOR CONNECTION %COOPN==2 ;OPEN %COCLS==3 ;CLOSE %COFWD==4 ;FORWARD %COANS==5 ;ANSWER %COSNS==6 ;SENSE STATUS %COSTS==7 ;REPORT STATUS %CORUT==10 ;ROUTING INFO (NOT YET USED) %COLOS==11 ;REPORT LOSSAGE %COLSN==12 ;LISTEN FOR RFC %COMNT==13 ;MAINTENANCE USE, IGNORED BY NORMAL NCPS %COEOF==14 %COUNC==15 %COMAX==16 ;HIGHEST NON-DATA OPCODE +1 %CODAT==200 ;NORMAL DATA OPCODE (NOTE SIGN BIT OF WORD IS SET) %CODWD==300 ;16-BIT DATA ;PACKET SIZE (THESE NUMBERS ARE FOR 4K PACKET BUFFERS) %CPMXW==126. ;MAXIMUM NUMBER OF PDP10 WORDS IN WHOLE PACKET %CPMXC==488. ;MAXIMUM NUMBER OF CHARACTERS OF DATA ;CONNECTION STATES %CSCLS==0 ;CLOSED %CSLSN==1 ;LISTENING %CSRFC==2 ;RFC RECEIVED %CSRFS==3 ;RFC SENT %CSOPN==4 ;OPEN %CSLOS==5 ;BROKEN BY RECEIPT OF "LOS" %CSINC==6 ;BROKEN BY INCOMPLETE TRANSMISSION (NO RESPONSE TO SNS)