/DECNET/8 V1A CONNECT CONTROL BLOCK FORMAT IFDEF DDCMP / / / / / / / / /COPYRIGHT (C) 1976,1977 BY DIGITAL EQUIPMENT CORPORATION / / / / / / / / / / /THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT NOTICE /AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT /CORPORATION. DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY /FOR ANY ERRORS THAT MAY APPEAR IN THIS DOCUMENT. / /THE SOFTWARE DESCRIBED IN THIS DOCUMENT IS FURNISHED TO THE PURCHASER /UNDER A LICENSE FOR USE ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED /(WITH INCLUSION OF DIGITAL'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH /SYSTEM, EXCEPT AS MAY OTHERWISE BE PROVIDED IN WRITING BY DIGITAL. / /DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY FOR THE USE /OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY /DIGITAL. / / / / / / / DECNET/8 RELEASE VERSION 1 / DECNET/8 PATCH LEVEL A / APRIL 8, 1977 / / / / IFDEF DDCMP < XLIST EJECT > /PRELIMINARY DEFINITIONS /THESE SHOULD NORMALLY BE DEFINED IN USER'S TASK /CHANNL= /SET TO CCB REFERENCE NUMBER /CCB= /SET TO CCB ORIGIN (CCB MUST LIE WITHIN A PAGE) /USRAST= /SET TO ENTRY POINT OF DECNET DERAIL ROUTINE FIELD NSPFLD%10 IFDEF CHANNL < *CHANNL^2+CCBTAB-2 /SETUP CCB TABLE ENTRY FOR THIS CCB CDF CUR CCB > FIELD CUR%10 /CCB STATE BIT DEFINES CHNCON= 2000 /SET IF CCB CONNECTED CHNCIS= 1000 /SET IF CI WAS SENT CHNCIR= 400 /SET IF CI WAS RECEIVED CHNCCS= 200 /SET IF CC WAS SENT CHNDIS= 100 /SET IF DI WAS SENT CHNNLL= 40 /SET IF NORMAL LOGICAL LINK CHNOFL= 4 /SET IF CCB IN OFF LINE MODE /MSGFLG DEFINES RTHBIT= 1 /SET IF ROUTING HEADER PRESENT CMBIT= 2 /SET IF THIS IS A CONTROL MESSAGE INTBIT= 4 /SET IF THIS IS AN INTERRUPT MESSAGE /DDCMP FUNCTION CODES SNDFUN= 0 /SEND MESSAGE ON LINE STRFUN= 1 /START SEQUENCE HLTFUN= 2 /HALT LINE AND RETURN MESSAGES OFLFUN= 3 /SEND MESSAGE OFF LINE /DERAIL REASON CODES INTRSN= 0 /INTERRUPT SEMAPHORE FROM PARTNER CONRSN= 1 /CONNECT INIT RECEIVED DISRSN= 2 /DISCONNECT FROM PARTNER DABRSN= 3 /DISCONNECT ABORT ERRRSN= 10 /NSP ERROR CAUSED LINK TO BREAK LDNRSN= 11 /PHYSICAL LINK CAUSED LINK TO BREAK /NSP FUNCTION CODES CONINI= 10+7000 /CONNECT INITIATE (NLL+FC DEFAULT) CONCNF= 11+7000 /CONNECT CONFIRM (NLL+FC DEFAULT) CONREJ= 12 /CONNECT REJECT DISCON= 13 /DISCONNECT TRNSMT= 14+4000 /TRANSMIT MESSAGE (EOM DEFAULT) INTRPT= 15 /SEND INTERRUPT MESSAGE RCVMSG= 16+4000 /RECEIVE MESSAGE (NEW MSG DEFAULT) RCNMSG= 16+6000 /RECEIVE MESSAGE WITH NO LINK STATUS TRANSMISSION RCVSM= 17 /RECEIVE SINGLE MESSAGE TRNSM= 20 /TRANSMIT SINGLE MESSAGE /STATUS WORD DEFINES (LOW 6 BITS) SUCST= 0 /SUCCESS DISST= 1 /DISCONNECT PREEMPTED DABST= 2 /ABORT PREEMPTED DRJST= 3 /DISCONNECT REJECT BY NSP CRJST= 4 /CONNECT REJECT BY TARGET TASK ILLST= 5 /ILLOGICAL REQUEST (IGNORED) LSTST= 6 /DATA LOST WARNING NODST= 7 /NODE NAME NOT FOUND ERRST= 10 /NSP ERROR PREEMPTED LDNST= 11 /LINE DROPPED PREEMPTING THIS REQ /NSP MESSAGE TYPE AND SUBTYP CODES CONTYP= 1 /CONNECT TYPE DISTYP= 2 /DISCONNECT TYPE LSTYPE= 3 /LINK STATUS ERRTYP= 4 /ERROR MESSAGE CISUBT= 0 /CONNECT INITIATE CCSUBT= 1 /CONNECT CONFIRM CRSUBT= 2 /CONNECT REJECT DRSUBT= 3 /DISCONNECT REJECT DISUBT= 4 /DISCONNECT INITIATE DCSUBT= 5 /DISCONNECT CONFIRM DASUBT= 6 /DISCONNECT ABORT IFDEF CHANNL < /CONNECT CONTROL BLOCK AREA /THOSE ENTRIES FLAGGED "/*" IN THE COMMENT MUST BE INITIALIZED /PRIOR TO USE *CCB CCBSTA, 0 /STATE WORD CCBDOT, 0 /DEST OBJECT TYPE CCBDN1, 0 /DEST NAME CCBDN2, 0 /(SIXBIT) CCBDN3, 0 CCBDN4, 0 CCBDN5, 0 CCBDN6, 0 CCBDG, 0 /DEST GROUP CCBDU, 0 /DEST USER NOPUNCH CCBSOT, 0 /* SOURCE OBJECT TYPE CCBSN1, 0 /* SOURCE NAME CCBSN2, 0 /* CCBSN3, 0 /* CCBSN4, 0 /* CCBSN5, 0 /* CCBSN6, 0 /* CCBSG, 0 /* SOURCE GROUP CCBSU, 0 /* SOURCE USER [P,PN]... ENPUNCH *. CCBTSK, TASK /* TASK BOUND TO THIS CCB CCBDNO, 0 /DEST NODE (RESERVED) CCBLIN, 0 /PHYSICAL LINK NUMBER (DDCMP LINE) CCBND1, 0 /CONTAINS NODE NAME DURING CONNECTION CCBND2, 0 CCBND3, 0 CCBDST, 0 /DSTADR THIS CONNECTION CCBDS2, 0 CCBSRC, 0 /SRCADR THIS CONNECTION CCBSR2, 0 CCBPH, 0 /HEAD OF TRANS REQS WAITING FOR POST CCBTH, 0 /HEAD OF TRANS REQS WAITING FOR TRANS CCBTT, 0 /TAIL OF TRANS/POST QUEUE (NEWEST REQST) CCBRH, 0 /HEAD RECV Q CCBRT, 0 /TAIL RECV Q CCBTRQ, 0 /TRANSMIT REQCNT (FROM USER RECEIVES) CCBTSG, 0 /TRANSMIT SEGCNT FROM USER RECEIVES CCBRRQ, 0 /RECEIVED REQCNT (FROM LINE) CCBRSG, 0 /RECEIVED SEGCNT CCBCON, 0 /POINTS TO CONNECT PACKET CCBDIS, 0 /POINTS TO DISCONNECT PACKET CCBINT, 0 /POINTS TO INTERRUPT PACKET (ONLY 1 ALLOWED) CCBIH, 0 /INTERRUPT Q HEAD CCBIT, 0 /INTERRUPT Q TAIL CCBIC, 0 /INTERRUPT QUEUE SIZE LIMITER CCBSMT, 0 /HEAD OF SINGLE MESSAGE TRANSMIT QUEUE CCBSMR, 0 /HEAD OF SINGLE MESSAGE RECEIVE QUEUE CCBRSN, 0 /GETS REASON CODE FOR INTERRUPT CCBDRL, USRAST /* DERAIL ADDR (PSEUDO AST) CCBOPL, 0 /-BYTE COUNT OF OPTIONAL DATA CCBAC, 0 /MAIN LINE AC CCBPC, 0 /MAIN LINE PC CCBXDF, 0 /CDF MAIN LINE DF /IF NONZERO INDICATES AT AST LEVEL /IF ZERO INDICATES AT TASK LEVEL CCBGLK, 0 /SET LINK INSTR (ENTRY OF AST EXIT CODE) DCA CCBXDF /CLEAR XDF FLAG NOW TAD CCBAC /GET THE AC ION /RE ENABLE INTERRUPTS NOW JMP I CCBPC /RETURN TO MAINLINE CCBRTN, IOF /USER AST RETURN ROUTINE TAD CCBIH /SEE IF ANY MORE PACKETS WAITING SNA CLA JMP CCBXDF /EXIT IF NO TAD CCBCHN /ELSE SET AC TO CHANNL NUMBER CIF CDF NSPFLD /GET SET TO ENTER NSP JMP I CCBDXT /GET ANOTHER REQUEST CCBDXT, DRLXIT CCBTSW, TSWFLG CCBCHN, CHANNL /*USER CHANNL NUMBER CCBAST, ISZ I CCBTSW /COME HERE FROM AST DEQ ROUTINE JMP .+3 /SKIP TASK SWITCH IF NO INTERRUPTS CAL RESCHD /OTHERWISE RESCHEDULE CDF CUR JMP I CCBDRL /ENTER USER AST NOW CCBOPT=. /THE NEXT 16. WORDS IN THE CCBTAB HAVE LAST OPTDATA GOT CCBSIZ= CCBOPT+20-CCBSTA /TALLY ALL WORDS IN ACTUAL CCB >