[net.unix-wizards] KMC info wanted

govern@houxf.UUCP (07/07/83)

I have a VAX running 4.1BSD, and I want to use the KMC's.  When I
used USG, one kmc drove the dz's, and the other ran a Remote Job
Entry (RJE) line.  Under BSD, I can't get the kmc's to interrupt,
and I don't have the "kmc" man page.  I do have some (supposedly
correct) kmc driver software.  Here is the relevant part of my
config-file:
	cpu		"VAX780"
	controller	uba0	at nexus ?
	device		kmc0	at uba0 csr 0160260 vector kmcrint kmcxint
	device		kmc1	at uba0 csr 0160270 vector kmcrint kmcxint
	pseudo-device	vpm

Can someone send my a man page?  What should I look for to get the
kmc's interrupting?  

			Thanks;
			Bill Stewart houxf!govern
			ucbvax!ihnp4!houxf!govern
			decvax!duke!burl!houxf!govern

lat@wbux5.UUCP (07/08/83)

In kmc.c you have to make sure that the vector number and
the last three numbers of the address correspond to the
actual vector and address of your kmc(s).
Here is our config line:

device		kmc0	at uba? csr 0760200		vector kmcrint kmcxint

the vector for our kmc is 410 (you will find the address and vector numbers
inside the expansion cabinet) and here are the lines from our kmc.c:

	switch( reg )
		{
		case 020003400200:
			cvec = 0410;
			break;
		case 020003400060:
			cvec = 0340;
			break;
		case 020003400070:
			cvec = 0350;
			break;

		default:
			printf("bad kmc probe, reg=%o\n",reg);


Laurie
wbux5!lat

mikeg@mprvaxa.UUCP (07/09/83)

cvec can be set without hardwiring the csr/vector pairs by downloading
a small program to the KMC.  here is the 'probe' code to do so:

kmcprobe(reg)
caddr_t reg;
{
	register int br, cvec;
	register struct kmcdevice *kmcaddr = (struct kmcdevice *)reg;

#ifdef lint
	br = 0; cvec = br; br = cvec;
#endif
	spl7();
	kmcaddr->bsel1 = MCLR;
	spl0();
	kmcaddr->bsel1 = ROMI;
	kmcaddr->sel4 = BUS_RQ;
	kmcaddr->sel6 = 0121111;		/* mov csr4,obr */
	kmcaddr->bsel1 = ROMI|STEP;
	DELAY(5);
	kmcaddr->bsel1 = 0;
	return(1);
}


Michael Ghesquiere
Microtel Pacific Research
..!ubc-vision!mprvaxa!mikeg