June 16th MacBSD Update, Silicon Valley Chapter.
(Brad Grantham writing)
Most of you have not heard from me in months. That's because I haven't
done anything. My official task has been, for quite some time, to
finish the ADB implementation (at least for the II-class machines) so
it could read mouse events and handle multiple keyboards. I had made
hesitant progress in the months since our Christmas Holiday rush, and
was feeling kind of dejected.
Lawrence arrived in mid-May for his summer internship with SGI, and
immediately we began talking about the many aspects of MacBSD that
required serious work. The second weekend Lawrence was here, we hosted
the second "semi-annual" South Bay MacBSD dinner. We were joined by
Markus Krummenacker, a valued contributor, and *no one* else. Although
we attempted to entertain Markus, the best I could do was try to
explain, haltingly, why ADB does not work on the IIsi, and why Apple's
documentation on the Apple Desktop Bus is so laughable. Still, he
encouraged Lawrence and me, and I came away with a new sense of
direction.
The next day, Lawrence hid my TV remote control, so I had only two
choices: fix the ADB module or watch Lucy reruns. So, two hours into
development, I was receiving keyboard and mouse events without
error for the first time. Fabulous! That was two and a half weeks
ago.
In the intervening weeks, we have seen productivity to rival any during
the summer of 1992. (For those of you lacking in "Alice" history,
Lawrence and I worked on the initial port of BSD Net/2 to the Mac II
in the summer of '92.)
Our hours have been spent largely on revamping the console design.
We have rewritten the virtual terminal interface. The terminals now
switch almost instantaneously, and screen drawing has been greatly
accelerated. The PgUp and PgDn buttons now scroll a half-page of text,
used in conjunction with the Command ("Flower") key. The VT scrollback
keys auto-repeat and Home and End can be used to jump to the top or
bottom of the scroll bufer, respectively. We have added a mouse-based
pointer, which can be used to scroll the VT's and copy and paste text.
Yes, that's right; when you move the mouse, a pointer moves around the
screen, and you can select text on the screen, copy it to a buffer,
and then paste it into any other VT controlled by the same keyboard.
The new DESKTOP module (the overseer of the ADB, VT, and GRF, or graphic,
modules) supports multiple keyboards, each with its own mouse and multiple
screens and virtual terminals. Although no one will probably ever use
this feature, we still think it's really cool. Anyone with two screens
and two keyboards can have two people log in to the same Mac. (This is
more important for the features listed below.)
I smoothed the waveform in the audible beep, so it sounds a little
better. Most people won't notice this, because they'll be too busy
playing with the new VT pointer.
We've added a load-bar in the few spare scan lines we had at the bottom
of the screen. It displays the CPU idleness (from 0% to 100%), and
also shows the average number of jobs in the run queue in the last
minute. It's useful for seeing whether your compile in the other
virtual terminal has finished.
The ADB module is now much more flexible than before. (You can move
the mouse when booting.) There is support for multiple devices but
I have not had a chance to activate it or test it much. This means
people with three-button mice should be able to leave them plugged in.
Even better, this code looks compatible with the LCII code that I
have borrowed from the generous Dave Schleef. This means that we may
have support for the IIvx, IIsi, and other desktop Macs. (We might even
find out, if we ever get off our lazy behinds and borrow someone's
IIvx.)
The final result of all this (and about sixteen hours of intense
chocolate-inhaling, soda-chugging, corn-chip-scarfing coding) is
that X11R6 runs on my Mac II under MacBSD. It only operates in 1-bit
mode, but color support is not far behind. In addition, multi-screen
support is already in the server, and it may be possible to run
X servers on different consoles on the same Mac (with slight fixes
to my DESKTOP code). The server worked well enough that I could
run XMosaic over a SL/IP line from a Sun Sparc 1+, and the Motif
window manager from Allen Briggs' machine, 3000 miles away over
the same SL/IP connection.
Hopefully the next few days/weeks will see more progress from us,
including possible fixes for the split-memory and internal video
problems, ADB for the IIsi et al, and the Zinstaller. (The previous
almost-working version of the Zinstaller was eaten by a finicky MacOS
partition.) I'd also like to work on the sound driver, but I have
a lot of other stuff on my plate...
Last I heard, Allen had a Quadra 700 and was working on '040 support
and a MachTen cross-development environment, and Mike was working on
HFS for MacBSD. That's all the news I have about Alice East.
I suppose the reason for this rush is that the core NetBSD team plans
on releasing NetBSD 1.0 in mid-July, and I'd like to see X windows
and more machines in the NetBSD/Mac68K 1.0 package.
I will try and keep you posted as long as our momentum holds out
and our glasses remain filled.
Now for a few questions for discussion:
1. Would it be at all useful to get rid of the top line of text and
replace it with a pull-down menu bar? I'm not sure what we'd put
in it, but maybe something like console configuration or general
kernel setup might be useful. If you think of something, let us know.
2. Would it be useful to have a split-screen display to display one
virtual terminal on the top half (or whatever) and another on the
bottom?
3. How do you want to simulate three-button mice? We can either have
keys on the keyboard, such as Command-2 and Command-3 be the middle
and right button, or we could use modifier keys, such as Command-Click
for the right button. Keep in mind the Option key is Meta in X, so
we can't use it to modify the click.
4. What other features would you like to see in the console/ADB/desktop
code?
5. Can anyone in the Bay area lend us random hardware for a few days?
Specifically, we'd like a color monitor, an SE/30-size monitor (to test
the small font support), a 3-button mouse, and anything else that's
not currently supported by MacBSD. We are already considering sources
for a IIvx.
-Brad Grantham and Lawrence Kesteloot
--
'1' means a BLACK pixel, '1' means button UP, what will Apple think of next?
Brad Grantham, grantham@netcom.com >+------+< Happily slaved to NetBSD/Mac68k!
I thought I would have to go without dinner tonight until I
remembered the container of chocolate frosting in the fridge!
------------------------------------------------------------------------------