🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.bugs.2bsd
Article #221

Re: Problems with Spectralogic "Spectra 25-Plus" disk/tape controller

#221
From: Casey Leedom
Date: Fri, 30 Sep 1988 09:36
67 lines
3014 bytes
> From: Carl Lowenstein <cdl@mplvax.nosc.mil>
> 
> The problem is more general than just SpectraLogic.  What if one has (as
> I do) two or more TS11 drives at consecutive bus addresses.  Then testing
> at address tmba = tmer+6 (0177526) gets instead tssr of the second TS11.
> tssr0 + 4 = 0177526.  More so if you have 3 drives etc.
> 
> I have meant to look in the RT11 sources to see how DEC software
> distinguishes a TM11 from a TS11, since they seem to do it successfully.  
> 
> Thanks to networked computers, I got hold of my RT11 sources without
> having to leave this chair.  DEC tells the difference between TS11 and
> TM11 with the following PDP11 assembly language (paraphrased):  (this is
> DEC-flavor not unix-flavor assembly language)
> 
> 	MOV	#MTCSR, R0		; point to control-status
> 	MOV	#1000, 2(R0)		; try to select unit 2
> 	BIT	#1000, 2(R0)		;  did it work?
> 	BNE	GOOD			; yes, it is a TM11
> 
> Note that selecting unit 2 is a benign thing to do even if you have only
> one TM11 drive.  The controller can select up to 8 drives even if they
> are not present.  Of course, the non-existent drive doesn't report that
> it is ready.

  Thank you much Carl!!!  Here's my stab at modifying pdpuba/tsauto.c to
do what you suggest.  If everyone who can would test it I'd appreciate
it.  If it works correctly, I'll work it into my new mtboot.s primary
tape bootstrap for pdpstand and get that tested.  Please send responses
as soon as possible as we're really (for sure this time (cross my heart
and hope to die)) getting ready to cut our second release.

Casey

-----
/*
 * Copyright (c) 1986 Regents of the University of California.
 * All rights reserved.  The Berkeley software License Agreement
 * specifies the terms and conditions for redistribution.
 *
 *	@(#)tsauto.c	1.1 (2.10BSD Berkeley) 12/1/86
 */

#include "param.h"
#include "../machine/autoconfig.h"
#include "../machine/machparam.h"

#include "tmreg.h"

tsprobe(addr)
	struct tsdevice *addr;
{
	extern int errno;

	/*
	 * Unfortunately the TS and TM CSRs overlap.  So simply testing for
	 * presence of a TS register isn't good enough.  So we try to do a
	 * TM select of drive 2.  If we get a bus fault or if the select
	 * works, we don't have a TS.
	 */
	errno = 0;
	stuff(01000, &(((struct tmdevice *)addr)->tmcs));
	if (errno || (grab(&(((struct tmdevice *)addr)->tmcs)) & 01000))
		return(ACP_NXDEV);
	return(ACP_EXISTS);
}
Technical Details
Message-ID: <16369@shemp.CS.UCLA.EDU>
Path: arc1-ca.pugleaf.net!utzoo!attcan!uunet!pyrdc!pyrnj!rutgers!ucla-cs!admin.cognet.ucla.edu!casey
References: <16291@shemp.CS.UCLA.EDU>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!attcan!uunet!pyrdc!pyrnj!rutgers!ucla-cs!admin.cognet.ucla.edu!casey
From: casey@admin.cognet.ucla.edu (Casey Leedom)
Newsgroups: comp.bugs.2bsd
Subject: Re: Problems with Spectralogic "Spectra 25-Plus" disk/tape controller
Keywords: 2.10BSD, autoconfig, TS tape emulator, Spectralogic "Spectra 25-Plus"
Message-ID: <16369@shemp.CS.UCLA.EDU>
Date: 30 Sep 88 09:36:03 GMT
References: <16291@shemp.CS.UCLA.EDU>
Sender: news@CS.UCLA.EDU
Reply-To: casey@cs.ucla.edu (Casey Leedom)
Organization: UCLA
Lines: 67