File LSN.PA (PAL assembler source file)

Directory of image this file is from
This file as a plain text file

/DECNET/8 V1A LSN TASK
/
/
/
/
/
/
/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.
/
/
/	ADMIRAL COMPANION TO DECNET/8 TLK

/	S.R. - MAY 1976
/JR	11-JAN-77	ADDED NSP CYCLE2 COMPATIBLILTY
/
/ DECNET/8 RELEASE VERSION 1
/ DECNET/8 PATCH LEVEL A
/ APRIL 8,1977
/
	VERSION=1
	PATCH="A
/
/	THERE MAY BE MULTIPLE LSN TAKS ON A SYSTEM
/	IF SO, ONE WOULD USE A TLK CONTROL BLOCK (TCB)

	IFNDEF LSNFLD <LSNFLD=30>
	IFNDEF LSNLOC <LSNLOC=4000>
	IFNDEF LSNCHN <LSNCHN=2>

	CUR=LSNFLD
	CHANNL=LSNCHN
	INIWT=0
	NXTERR=22	/NON-EXISTENT TERMINAL
	RBUFLN=	160	/SIZE FF RECEIVE BUFFER

	IFNDEF LSNNUM <LSNNUM=1>

	IFNDEF LSN1 <LSN1=LSN>

	IFZERO LSNNUM-1 <TASK=LSN1>
	IFZERO LSNNUM-2 <TASK=LSN2>
	IFZERO LSNNUM-3 <TASK=LSN3>
	IFZERO LSNNUM-4 <TASK=LSN4>
	IFZERO LSNNUM-5 <TASK=LSN5>
	IFZERO LSNNUM-6 <TASK=LSN6>
	IFZERO LSNNUM-7 <TASK=LSN7>
/
/	IF IT IS DESIRED TO BE ABLE TO LISTEN
/	ON MORE THAN 7 TABLES, THE TABLE ABOVE
/	CAN BE EASILY EXPANDED.

	FIELD CUR%10

*LSNLOC VERSION /VERSION PATCH /AND PATCH IN CORE START, AC4000 DCA TTYTSK CAL BLKARG MSGWT /SIT AND WAIT FOR SOMETHING TO HAPPEN TAD TTYTSK SPA CLA JMP START /IGNORE EVERYTHING IF 'TTYTSK' IS STILL NEGATIVE TAD (-RBUFLN+1 /ALLOW GETTING BUFSIZ-1 CHARS OF MESSAGE DCA RLEN CAL /RECEIVE DATA FROM REMOTE TLK SENDW NSP RMSG /RECEIVE TAD RSTA /LOOK AT THE STATUS SZA CLA JMP DISC /DISCONNECT ON SLIGHTEST ERROR TAD RLEN /LOOK AT LENGTH RECEIVED CIA /MAKE POSITIVE TAD (RBUF /GET PTR TO FIRST BYTE AFTER END OF BUFFER DCA RPTR DCA I RPTR /PUT 0 AT END OF BUFFER JMS I (PUTPRE /PRINT PRELIMINARY INFORMATION CAL SENDW /SEND MESSAGE TO CORRECT TERMINAL TTYTSK, 4000 /TTY NUMBER WE'RE SENDING TO TTMSG JMP START /REITERATE DISC, CAL SENDW NSP DMSG JMP START /LOOP FOR MORE DMSG, ZBLOCK 3 0 DISCON CHANNL 0 TTMSG, ZBLOCK 3 NOPACK+IND 0 RBUF /SEND DATA FROM RECEIVE BUFFER RMSG, ZBLOCK 3 RSTA, 0 RCVMSG CHANNL CDF CUR RBUF RLEN, -RBUFLN+1
REJ, ZBLOCK 3 0 CONREJ CHANNL OPT2 /REJECT WITH BAD TTY MESSAGE IN OPT DATA RPTR, 0 CNF, ZBLOCK 3 CNFSTA, 0 CONCNF CHANNL 0 /NO OPTIONAL DATA
TTYTAB, 0; TTY 1; TTY 2; TTY IFDEF LPT < 3; LPT> IFDEF TTY2 < 4; TTY2> 4000
TSRCH, 0 TAD (TTYTAB-1 DCA TPTR /SEARCH TTY TABLE FOR THIS NUMBER TLUP, ISZ TPTR TAD I TPTR SPA JMP I TSRCH /A NEGATIVE NUMBER ENDS TABLE ISZ TPTR /POINT TO ASSOCIATED TASK CIA TAD I (TTNUM SZA CLA /HAVE WE FOUND IT? JMP TLUP /NO, KEEP LOOKING TAD I TPTR /YES, GET ASSOCIATED TASK SNA JMP I TSRCH /TASK NON-EXISTENT DCA I (TTYTSK /STORE AWAY ISZ TSRCH JMP I TSRCH TPTR, 0 PAGE
RBUF, ZBLOCK RBUFLN /THE CCB FOLLOWS THE BUFFER IMMEDIATLY
CCB=. *CCB+12 0 TEXT /TLK/ ZBLOCK 4 1;2 *CCB+130 USRAST, TAD CCBRSN /WHY WERE WE TRAPPED? TAD (-CONRSN SNA CLA JMP CON /A CONNECT REQUEST BAD, CAL SENDW NSP DMSG /DISCONNECT JUST IN CASE / TAD (START / DCA CCBPC /JR TAKE OUT RESTART TO PREVENT DISCARD OF MESSAGES JMP CCBRTN /GO BACK TO 'START' AT MAIN LEVEL CON, DCA TTNUM TAD I (TTYTSK SMA CLA JMP NOTFND /SHOULD NEVER HAPPEN TAD I (CCBOPL /HOW MUCH OPTIONAL DATA DID WE GET? SNA CLA JMP NOTFND /NO OPTIONAL DATA TAD CCBOPT DCA TTNUM /GET TERMINAL NUMBER TAD CCBOPT+2 DCA SRCTTY /GET SOURCE TERMINAL NUMBER JMS I (TSRCH JMP NOTFND CAL SENDW NSP CNF /ACCEPT THE CONNECTION TAD I (CNFSTA SNA CLA JMP CCBRTN JMP BAD NOTFND, CLA TAD TTNUM DCA OPT2+1 /SEND BACK BAD TTY NUMBER CAL SENDW NSP REJ /REJECT THE CONNECTION JMP CCBRTN OPT2, NXTERR;0;-1 TTNUM, 0 SRCTTY, 0 PAGE
/PRINT PRELIMINARY INFORMATION OF THE FORM / TLK>NODNAM_TTN: PUTPRE, 0 TAD (PREBUF /SET BUFFER POINTER DCA BUFPTR JMS PUTNAM /GO PUT IN NODE NAME CCBND1 TAD ("_ /PRINT BACKARROW JMS PCH TAD ("T /PRINT TTN JMS PCH TAD ("T JMS PCH TAD I (SRCTTY AND (7 TAD ("0 JMS PCH TAD (": /PRINT COLON JMS PCH DCA I BUFPTR /MARK END OF TEXT TAD I (TTYTSK /COPY TTY TASK NUMBER INLINE DCA TTYTS2 CAL SEND TTYTS2, 4000 PREMSG JMP I PUTPRE /DONE PREMSG, ZBLOCK 3 /SPACE FOR EF AND LINKAGE NOPACK+NOCRLF /FORMAT CONTROL 0 /NO INPUT "T;"L;"K;"> PREBUF, ZBLOCK 20 /THE BUFFER PCH, 0 DCA I BUFPTR ISZ BUFPTR JMP I PCH PUTNAM, 0 TAD I PUTNAM ISZ PUTNAM DCA NAMPTR TAD (-3 DCA NAMCNT NAMLP, TAD I NAMPTR RTR RTR RTR JMS P6CH /PRINT LEFT 6 BITS TAD I NAMPTR JMS P6CH /PRINT RIGNT 6 BITS ISZ NAMPTR ISZ NAMCNT JMP NAMLP /LOOP IF MORE JMP I PUTNAM /FORCE EXIT P6CH, 0 AND (77 SNA JMP I PUTNAM /RETURN OF ENCOUNTER NULLS TAD (240 /EXPAND TO 7BIT AND (77 TAD (240 JMS PCH /SEND IT JMP I P6CH NAMPTR, 0 NAMCNT, 0 BUFPTR, 0 PAGE



Feel free to contact me, David Gesswein djg@pdp8online.com with any questions, comments on the web site, or if you have related equipment, documentation, software etc. you are willing to part with.  I am interested in anything PDP-8 related, computers, peripherals used with them, DEC or third party, or documentation. 

PDP-8 Home Page   PDP-8 Site Map   PDP-8 Site Search