// DicentraBooting.doc, HGM, 27-Nov-83 18:12:41

There is a signal on the Multibus called INIT/.  It is pulled low by the CP when the boot button on the front pannel is in.  It is also pulled low by the Misc board when power is comming up, the Watchdog timer goes off, or the software pokes the boot button.

While INIT/ is low, the microcode gets a trap.  (As long as INIT/ stays low the trap keeps happening every cycle 1.  The first 3 instructions of the trap handler get executed many times.  That doesn't hurt anything.)

The trap handler makes a few simple sanity checks, scans for the top of real memory, runs some short memory tests, and sets up the map.  Then it copys the Germ from the EPROMs on the Misc board into main memory, and starts the Mesa emulator running the Germ.   (Somewhere in there the Watchdog timer gets turned on.  Maybe that's too early?)

The first problem for the Germ is to decide where to boot from.  It first looks at the AltBoot button.  If it's in, it goes into a DLion like loop displaying various choices to the user.  The list of codes is in the table below.  If the AltBoot button is not in, the Germ checks the EEROM.   If the checksum and version of the where-to-boot from slot are reasonable, then the Germ boots from there.  If all else fails, it boots from a default boot file number on the first 10mb net.

AltBoot codes:
  x24n:  Boot file 25200002000+n from 10MB Ethernet board x
  x26n:  Boot file 25200002000+n from phone line number x
  x28n:  Boot file 140000+n from 3MB Ethernet board x
  
  n cycles from 0 through 5 (I think), and x cycles from 0 to 3.  If you want to boot from the 3rd 10MB board, you have to wait a while for the numbers to cycle around.

Current boot file numbers (at PARC):
  25200002000 OscarDicentra.boot		←←←← This is the default
  25200002001 BootMeAgainDicentra.boot
  25200002002 FlukeServer.boot
  25200002003 GLiPServer.boot