

			RSP.TXT
			*******

-----------------------------------------------------------------------

Transmission rate measurements without RSP protocol(27-oct-81):

DL-11 serial interface, 9600 Baud is used, ca.  0.5 Kw/s.(DLTEST,DLECHO)
-----
DR-11 (C, DRV-11 00) parallel interfaces(on PDP 11/34 + LSI 11/23):
-----

interrupt:  2*64 Kwords    in 19.    sec. =ca.  7.  Kw/s.(DRTEST,DRECHO)
(.INTEN)
interrupt:  2*64 Kwords    in  7.5   sec. =ca. 17.  Kw/s.(DRTST1,DRECH1)
loop	 :  2*64 Kw.       in  3.7   sec. =ca. 34.  Kw/s.(DRTST0,DRECH0)

-----------------------------------------------------------------------

DIAGNOSTICS:

DRT00 : Transmits a testword and waits for receive, compares
DRE00 : Echo's a word received.
	Conditionals: LIGHT to select testword on display
		      FAST  to omitted .INTEN in interr. service
DRTB00 : Transmits a whole buffer, then waits for receive, comp. buff.
DREB00 : Echo's a buffer received.

------------------------------------------------------------------------------

PERFORMANCE:

10 times READ and WRITE 1024 words(=4 blocks) gives:

			   PDP-11/34 PDP-11/03 LSI-11/23
			   -----------------------------
using FORTRAN low-mem array:   37. 			clock ticks.(Threaded)
  "      "       "	"  :   14.	29.    	 17.	   "    "   (In-line)
  "      "    VIRTUAL   "  :  103.    		  	   "    "   (Threaded)
  "      "    VIRTUAL   "  :   89.    		   	   "    "   (In-line)
  "   MACRO   low-mem array:    3.01  	 6.66	  3.86 	   "    "
  "   MACRO   low-mem array:    2.50	 5.26	  3.19	   "    "   (Optimiz.)
on VM: .READW/.WRITW	   :    7.			   "    "
on RK05	    "		   :   81.			   "    "
on RX01	    "		   :	       420.



DATA-COMMUNICATION:  PDP-11/34 <--> LSI-11/23
---------------------------------------------
				VM:		RK05 (Removable drive)
-----------------------------------------------------------------------------
 PDL   <--> DR -F 1B	   :  140.		230.
(Looping HD)DR +F 1B	   :   74.		199.
	    DR -F 4B	   :  135.		199.
	    DR +F 4B       :   70.		141.		

 PDI-F <--> DR -F 1B	   :  164.		299.
(Interrupt) DR +F 1B	   :  143.		240.
	    DR -F 4B	   :  155.		220.
	    DR +F 4B       :  138.		199.		

 PDI+F <--> DR -F 1B	   :  147.		240.
(Interrupt) DR +F 1B	   :   91.		199.
(no .INTEN) DR -F 4B	   :  143.		221.
	    DR +F 4B       :   87.		160.		
Note: all values are clockticks( 1=20. ms.)
-----------------------------------------------------------------------------

RSP(Radial Serial Protocol):

Note: when 2 values are given the 1st. is for the DL-11 serial coupling and
      the 2nd. for the DR-11 parallel coupling.

	Level 1 codes(flagbyte/word):
	-----------------------------

		XOFF=23			;19. RSP
R$INIT  =	INIT  =  4		;4.	  protocol
R$CONT	=	CONTIN= 20		;16.		chars
R$CDAT  =	CNDATA= 40		;32. Continue with DATA (not for DD)
		BOOT=   10		;8.
R$MSG	=	COMMND=  2		;2.
R$DATA	=		 1		;DATA-packet headerflag
R$MSIZ	=		10.		;Message packet contents size
R$DSIZ	= PKDSIZ 64.bytes/256.words	;Data packet max. contents size
R$ASIZ  = PKASIZ   R$DSIZ/2*R$DSIZ	;Adres offset


Command packet:		+-----------------------------------------------+
**************        1 ! pkt. cnt 10 b./5 w.  !    packet flag	= 2	! 0
			! PK$MBC / PKTBYT      ! PK$FLG/CMDPKT/ENDPKT	!
			-------------------------------------------------
		      3 !  modifier	       !    opcode		! 2
			! PK$MOD/I$MSUC/MODIF  ! PK$OPC/I$MOPC/OPCODE	!
			-------------------------------------------------
		      5 ! special function cod.!    unitnr. 0-7		! 4
			! PK$SPF               ! PK$UNT / UNIT		!
			-------------------------------------------------
		      7 ! additional spec. func. dataword, SPDATA	! 6
			! PK$SSQ					!
			-------------------------------------------------
		      9 !  bytecount/wordcount				! 8
			! PK$BCT / BYTCNT / WRDCNT			!
			-------------------------------------------------
		     11 !  blocknr.					!10
			! PK$RCD / BLCKNR				!
			-------------------------------------------------
		     13 !  checksum					!12
			! PK$CKS / CMDCHK				!
			-------------------------------------------------



	Level 2 codes(opcode byte):
	---------------------------
R$$NOP	=	0	;No operation, not used in datacomm. version.
R$$INT	=	1	;Initialize  ,  "    "   "     "        "
R$$RED	=	2	;Read
R$$WRT	=	3	;Write
R$$POS	=	5	;Position
R$$END	=     100	;Endpacket code, see below.


End packet:		-------------------------------------------------
**********            1 !  packet count (10/5) !    packet flag	= 2	! 0
			-------------------------------------------------
		      3 !  I$MSUC succescode   !    I$MOPC= 64.=100	! 2
			-------------------------------------------------
		      5 !  PK$SPFE SPFUN/SPDIR error return block word 1! 4
			-------------------------------------------------
		      7 !  		"	 "      "     "   word 2! 6
			-------------------------------------------------
		      9 !  		"	 "	"     "   word 3! 8
			-------------------------------------------------
		     11 !  		"	 "	"     "   word 4!10
			-------------------------------------------------
		     13 !  checksum					!12
			-------------------------------------------------

	Succescodes, TU58 version:
	--------------------------
O.k.			=	0	=	0
O.k. with retries	=	1	=	1
Failed self test	=      -1	=     377
Partial op.(Medium End) =      -2	=     376
Hard error		=      -6	=     372
Bad unit nr.		=      -8.	=     370
No cardridge		=      -9.	=     367
Write protect		=     -11.	=     365
Data checksum error	=     -17.	=     357
Seek error, blk.not fnd.=     -32.	=     340
Motor stopped		=     -33.	=     337
Bad opcode		=     -48.	=     320
Bad blocknr.(>DEVSIZ)	=     -55.	=     311

	Succescodes, Datacomm. version:
	-------------------------------
O.k.			=	0	=	0
Hard error		=      -1	=     377
End of File		=      -2	=     376

				Max. X= 128. bytes/ 256. words(X=0 !) 
Data packet:		-------------------------------------------------
***********           1 !  packet count X (b/w)!    packet flag	= 1	! 0
			-------------------------------------------------
		      3 !  2 nd data byte      !    1 st data byte	! 2
			-------------------------------------------------
		      5 !  4 th data byte      !    3 th data byte	! 4
			-------------------------------------------------
		        /						/
			-------------------------------------------------
		   XX+1 !  last 2 data bytes/ last data word		!XX
			-------------------------------------------------
		   XX+3 !  checksum					!XX+2
			-------------------------------------------------


	DD/PD.SYS	     !			DDJOB/DRJOB
------------------------------------------------------------------
READ:
****
	Command packet -------------->
			<------------------- Data packet 128. byt./256. word
			<-------------------  "     "     "    "    "     "
				//
			<------------------- Data packet XX bytes/words
			<------------------- End packet
WRITE:
*****
	Command packet -------------->
			<------------------- Continue/Continue with DATA 
	Full data packet   ------------>
			<------------------- C/CDATA (DD:1 byte/DR:1 word)
	Full data packet   ------------>
				//
	Data XX byt./wrds. ------------>
			<------------------- Endpacket

-------------------------------------------------------------------
                                                                                                                                                                                                                                                                                   