General Category > LisaList2

Corvus HDDs and the Lisa

<< < (3/6) > >>

compu_85:
From the UniPlus+ "Lisa Specific" notes, page 5: http://bitsavers.org/pdf/unisoft/UniPlus-Lisa-specific.pdf

So yes, it can hook up to any Lisa parallel port.

jamesdenton:
Time to revive an old thread.

I've got a 20MB Corvus hard drive that I've connected to the Lisa on the bottom port of a parallel card in Slot 1.

To Uniplus, this is /dev/c1a with the following attributes:

brw-rw-rw-  1 root   root  2, 16  Jan 4  08:41  /dev/c1a

This existed already, but can be recreated using mknod and would result in the same.

I've created an adapter to adapt the IDC34 connector to DB25, and made the following connections:

PROFILE<->CORVUS

D0<->D0
D1<->D1
D2<->D2
D3<->D3
D4<->D4
D5<->D5
D6<->D6
D7<->D7

STROBE<->STROBE
BSY<->READY
RESET<->RESET
RW<->DIRC

So far, so good. Now, when attempting to straight up mount /dev/c1a using mount /dev/c1a /t the Corvus comes to life, and the FAULT lite is solid while the BUSY light blinks. The console reports the following every 3 seconds or so:

read error: /dev/c1a blkno=1

After roughly 30 seconds that, it reports this every 3 seconds:

read error: /dev/c1a blkno=2

After roughly 30 seconds, activity stops and a console prompt returns.

So, the preferred course of action was probably to create a file system on the disk using mkfs1b as describe in the docs:

mkfs1b /dev/c1a 32420

Where 32420 is the size of the root partition (max for a 20MB disk).


mkfs1b /dev/c1a 32420
bytes per logical block = 512
total logical blocks = 32420
total inodes = 8104
gap (physical blocks) = 7
cylinder size (physical blocks) = 400


It's at this point that nothing happens - the console is effectively locked up and I'm unable to stop the process. It will sit here for hours. There is no activity or trace of activity on the drive itself. This behavior is different than what is seen with, say, a ProFile connected to /dev/c2a - the mkfs1b operation takes less than 5-10 seconds. I CAN trigger an NMI by pushing the interrupt switch on the back, so the kernel is still responsive.

I don't have a scope handy, but when I have some extra time might try to put the Saleae on there to see if anything interesting can be found.

sigma7:

--- Quote from: jamesdenton on March 17, 2025, 12:18:45 pm ---read error: /dev/c1a blkno=1

--- End quote ---

This terminology makes me think more of a communication problem rather than a no file system problem.

To test this theory, you could intentionally miswire the connection (eg. disconnect strobe) and see if you get the same or a different error.

I'd also check the source of the DIRC signal; if it is indeed driven by the Corvus, then it needs to be connected to a different pin than RW (which is driven by the Lisa and not reversible).

sigma7:

--- Quote from: sigma7 on March 17, 2025, 02:52:37 pm ---I'd also check the source of the DIRC signal; if it is indeed driven by the Corvus, then it needs to be connected to a different pin than RW (which is driven by the Lisa and not reversible).

--- End quote ---

Line 453 of  https://github.com/arcanebyte/uniplus/blob/master/v1.5/sys/cv.c shows the direction line (aka Host To Controller I guess) is masked with ST_HTOC


--- Code: ---/* wait for controller to host direction or timeout */ /*
cvctoh(a)
register struct device_d *a;
{
register i;

for (i = 20; i-- > 0;);
i = 100000;
do
while (--i > 0 && ((a->d_irb&ST_BUSY) == 0));
while (i > 0 && (a->d_irb & ST_HTOC));
if (i <= 0) {
printf("cvctoh: timeout\n");
return -1;
}
return 0;
}
--- End code ---

Line 19 of https://github.com/arcanebyte/uniplus/blob/master/v1.5/include/sys/cv.h gives ST_HTOC as 1


--- Code: --- /* cv_stat bits */
#define ST_BUSY 0x02
#define ST_HTOC 0x01 /* host to controller direction */

--- End code ---

And looking at the dual parallel card schematic, the 6522 PB1 (which would be masked with 2) goes to BUSY as expected, and PB0 which is masked with 1 goes to OCD.

Hence I think DIRC needs to be connected to OCD (DB-25 Pin 19) rather than RW (DB-25 Pin 3)

jamesdenton:

--- Quote from: sigma7 on March 17, 2025, 02:52:37 pm ---To test this theory, you could intentionally miswire the connection (eg. disconnect strobe) and see if you get the same or a different error.

I'd also check the source of the DIRC signal; if it is indeed driven by the Corvus, then it needs to be connected to a different pin than RW (which is driven by the Lisa and not reversible).

--- End quote ---

First, I moved DIRC to OCD from RW. No change in behavior for mount or mkfs1b. Still get read errors with some activity on the corvus (busy lights). Perpetual hang with mkfs1b and no activity on the drive.

Then, I removed STROBE. No change in behavior - still get read errors with some activity on the corvus (busy lights).

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version