Subject: Re: Lapis PDS/30 video card?
To: None <macbsd-general@NetBSD.ORG>
From: David Condon <david@trouble.wariat.org>
List: macbsd-general
Date: 02/10/1995 22:48:43
>Has anyone successfuly used Lapis PDS/30 card?  I might get one for cheap
>price.                                       ^ I mean, with MacBSD, of course.
>
I have a Lapis ProColorServer 8/PDS. As long as you set it to B&W mode before
starting MacBSD, it works fine as the ite (minimal console) with the Beta-1
or MRG kernels. It doesn't get configured as a grf device, however, because
like the Rasterops card somebody mentioned recently, the type is reported
as 0. But unlike that Rasterops card, the manufacturer info comes out
right. The configuration routine is expecting a video card to be type 3.
This is easy to fix. You just want to convince it that type 0 is also a
video card. I took a wild guess that the type was 0 because of it being a
PDS card, although I
think this was probably wrong. But it doesn't make any difference for my
purposes. So in /usr/src/sys/arch/mac68k/dev/nubus.h you will find the
following:

#define NUBUS_VIDEO             3
#define NUBUS_NETWORK           4
#define NUBUS_MOTHERBOARD       0x0a
#define NUBUS_MAXSLOTS          16

And I just added

*** nubus.h     Thu Jan  5 22:00:12 1995
--- nubus.h.dist        Thu Jan  5 21:52:16 1995
***************
*** 39,48 ****
  #define NUBUS_MOTHERBOARD     0x0a
  #define NUBUS_MAXSLOTS                16

- #ifdef PDS    /* 0 is a video card */
- #define PDS_VIDEO             0
- #endif
-
  struct imagedata{
        long whatTheHellIsThis;
        long offset;
--- 39,44 ----

and then in grf.c you do this, and put "options PDS" in the config file. Then
the Lapis will be configured as grf0 and the builtin monitor as grf1.

*** grf.c       Fri Jan  6 23:21:59 1995
--- grf.c.dist  Thu Jan  5 21:51:25 1995
***************
*** 115,121 ****
        int i;

        for (i=0,hw = nubus_table;i<NUBUS_MAXSLOTS; hw++,i++) {
!               if ((hw->Slot.type!=NUBUS_VIDEO) && (hw->Slot.type!=PDS_VIDEO))
                        continue;
                /*
                 * Found one, now match up with a logical unit number
--- 115,121 ----
        int i;

        for (i=0,hw = nubus_table;i<NUBUS_MAXSLOTS; hw++,i++) {
!               if (hw->Slot.type!=NUBUS_VIDEO)
                        continue;
                /*
                 * Found one, now match up with a logical unit number
***************
*** 183,189 ****
  {
        struct nubus_hw *nu = (struct nubus_hw *) aux;

!       return ((nu->Slot.type == NUBUS_VIDEO) || (nu->Slot.type == PDS_VIDEO));
  }

  static void
--- 183,189 ----
  {
        struct nubus_hw *nu = (struct nubus_hw *) aux;

!       return (nu->Slot.type == NUBUS_VIDEO);
  }

  static void

Only other problem that might occur is that the Lapis, the one I have at least,
supports several monitors in ROM, such as the Apple 13" and 14" and a bunch
of others. Then it is also supposed to support VGA with software, and
presumably the latter would not work under MacBSD.

--
      "The Net interprets censorship as damage and routes around it."
                                          -- John Gilmore
david@trouble.wariat.org