Subject: MacBSD Installer patch, and Futura MX problem
To: None <macbsd-development@NetBSD.ORG>
From: Hoshi Takanori <hoshi@sran265.sra.co.jp>
List: macbsd-development
Date: 08/13/1995 00:02:20
Hello,

I'm sorry if someone already suggested this idea, but here is a
patch for the MacBSD Install Utility to be able to install from
splitted archive.  This is quite usefull to install from floppy
disks.

By the way, I have several questions about the MacBSD Installer
and IIvx kernel.

Q1:
I compiled the Installer with CodeWarrior and found a lot of
pointer type mismacthes which THINK C doesn't care.  While most
of them are harmless, some calls of SCSI related functions like
SCSIRead() passes pointers to int (which is 4 bytes, of course)
but the callees expect pointers to short...  is it OK?

Q2:
How can I make an archive to be installed with the Installer?
It doesn't accept either 'X.11Mar95.tgz' nor tar + gzipped files
I made.  How did you create 'base.tar.gz' etc?

Q3:
I'm using Aug 11 'netbsd.iivx' kernel (Thanks Allen and others)
and having trouble with E-machines Futura MX video card and 17
inch display.  While the console is OK, grf0 driver thinks it is
320x240 pixels and its rowByte is 2048, resulting that X runs in
'interleaved' display...  How can I fix it?  Which source files
to look into?

hoshi

*** MacBSD_Installer_Source/util.c	Sat Jan 29 16:07:48 1994
--- MacBSD_Installer_Source.cw/util.c	Sat Aug 12 14:16:54 1995
***************
*** 60,65 ****
--- 60,96 ----
      errno = 0;
      do {
  	len = read(ifd, (char*)inbuf+insize, INBUFSIZ-insize);
+ #ifdef ALICE
+ 	if ((len == 0 || len == EOF) && insize == 0) {
+ 	    SFReply Reply;
+ 	    Point Where = {100, 100};
+ 	    int newfd;
+ 
+ 	    SysBeep(1);
+ 	    printf("EOF -- Choose next part to unpack\n");
+ 	    SFGetFile(Where,NULL,NULL,-1,NULL,NULL,&Reply);
+ 	    if (!Reply.good) {
+ 		printf("Cancelled\n");
+ 		break;
+ 	    }
+ 
+ 	    if (SetVol(NULL, Reply.vRefNum)) {
+ 		printf("Couldn't switch volumes?\n");
+ 		break;
+ 	    }
+ 
+ 	    Reply.fName[1+Reply.fName[0]] = '\000'; /* nasty null terminate */
+ 	    newfd = OPEN((char *) &Reply.fName[1], O_RDONLY | O_BINARY, RW_USER);
+ 	    if (newfd == -1) {
+ 		printf("cant open input file %s\n", &Reply.fName[1]);
+ 		break;
+ 	    }
+ 
+ 	    close(ifd);
+ 	    ifd = newfd;
+ 	    continue;
+ 	}
+ #endif
          if (len == 0 || len == EOF) break;
  	insize += len;
      } while (insize < INBUFSIZ);