Subject: Christmas Hacking Session Summary...
To: MacBSD General Discussion <macbsd-general@sun-lamp.cs.berkeley.edu>
From: Lawrence Kesteloot <kesteloo@cs.unc.edu>
List: macbsd-general
Date: 01/02/1994 16:31:08
(By Lawrence on behalf of Alice)

Okay, the four of us here at Alice Central got together for the last
four days and got a few things done.  But first, a truism to sum up
this week:

 There are three kinds of lies:  lies, damn lies, and Apple developer notes.

I believe that Mark Twain actually said this.  Verbatim.

Summary, in no particular order:
  We got a booting kernel on the IIci.  (Some caveats below...)
    (You need external video board and unplug internal video.)
  For the console, 1, 2, 4, and 8 bit video modes are supported.
  A cool console program was written to get two monitors to work
    at the same time.
  Two way-cool programs to play songs through Brad's neato beep.
  The booter/kernel interface was revamped to be much more
    flexible and robust.
  An "emulator" was written for the FPU.  It is completely untested
    and does not actually calculate anything, but might help people
    who don't have an FPU.
  We fixed several bugs, including some bad ones in serial and console.
  We've made a good start on a booter for 8K paged kernels.  (For
    compatibility with the NetBSD linker.)

NOTE:  You absolutely need a new booter and new kernel because they
are no longer compatible with the old versions.  See below for
locations.

That's it.  Now the long version:

1. Ten minutes ago, after about three days of fighting with the IIci's
   memory setup, we got a kernel to boot on it.  The blame for this
   waste of time rests entirely on the shoulders of Apple, whose
   developer notes misled us as to its memory mapping.  Thanks to
   Mike for writing a quicky MacOS program to enlighten us about this.
   Because of some problems we're having with the memory setup, it
   currently only boots if you have an external video board and don't
   plug a monitor into the internal video.  This may soon be fixed
   because it shouldn't be too hard.  Actually, we hope that one of
   you will download it and fix this.  See below for what to do if
   you want to try this.  (All machines should try this, just to
   try.)  Another important detail: Set the "Ram Size" field in the
   booter to the number of megs you have in RAM Bank A.  (If you don't
   know, try half of your total RAM.)

   USERS BEWARE: We have NOT tested this kernel on anything but Mike's
   accelerated Mac II and a Mac IIci.  We only want to let people know
   that we are making progress.

   Some thanks need to go out for this.  First of all, to the English
   department of Virginia Tech for lending us a IIci for a month.
   Also, to Craig Ruff for posting the program that helped us
   to get the memory mapping stuff.  An especially big thanks
   to him for posting the disassembled code.  We spent roughly
   three hours looking all over the globe for an assembler or something
   to let us use those TT0 registers...

2. The kernel will boot if you're in 1, 2, 4, or 8 bit mode, but will
   be much (MUCH) faster in 1-bit mode.  There may still be some bugs
   in non-1-bit mode, so let us know what you find.  This code hasn't
   been tested on any monitors except our 640x480 here at the lab.

3. A "con" program was released a few days ago which lets you switch
   monitors, change cursor shape/speed, and beep frequency and so on.

4. Mike wrote a program to play Camptown Races using Brad's beep.  Very
   neat.  I wrote another version which has a bad version of
   Star Wars and uses the IBM PC's BASIC-style PLAY commands.

5. The booter used to pass information to the kernel via registers.  So
   of course we ran out of registers.  The new method allocates a text
   buffer and passes information (such as single-user mode, bars,
   memory size, etc.) through an environment.

6. I wrote a routine to trap FPU faults.  This is not tested at all
   because all of our machines here have an FPU.  It probably won't work,
   but try it.  All it does is decode the FP instruction and skips
   it.

7. A bug in serial was causing problems with getty's, but now serial
   getty's work fine.

8. We will be fixing up the 8K booter shortly.  Please be patient.

IIci version:

This version might actually work on other machines than a IIci.  Remember,
you need to have an external video card, and you need to not plug
a monitor into the internal video card.  Also, baud rates are doubled
because the IIci's serial chip runs twice as fast.  IIsi support
may be a while because it uses a new chip about which Apple is releasing
no information.  The Powerbooks use a weird power-manager chip for which
they asked us to sign a non-disclosure agreement if we wanted to see
the docs.  I don't think so.

If you have been having trouble with our kernels on the Mac II, try the
CI kernel; you may have more luck.

Oh, also, we got a checking account, so feel free to send us money.
We were kidding about spending it on pizza, it will only be used to
rent machines.

  The Alice Group
  c/o Michael Q. Finch
  750 Tall Oaks Drive, #3400F
  Blacksburg, VA  24060

Also, thanks to Schuyler Stultz for lending us his machine for a week.

GETTING THE NEW BOOTER AND KERNELS:
	FTP to cray-ymp.acm.stuorg.vt.edu:/pub/NetBSD_Mac/.
	The new kernels can be found in "kernels/" as "netbsd.CI.bin" and
	 "netbsd.II.bin"
	You must download the new booter to run the new kernels, but it is
	 still compatible with previous kernels.  It is located in
	 "newbooter-8k_4k.cpt.bin"


Lawrence, Brad, Mike, and Allen

------------------------------------------------------------------------------