[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Microcode internal convention changes

A-TEM has been replaced with several new specialized A registers.
M-3 has been replaced with M-TEM (which also implies a new A-TEM).
A new M-3 has been introduced, which behaves the same as M-1, M-2, and
M-4.  Nothing uses it yet.

The page-fault/interrupt checking instructions have been changed.
Here are the new ones:
(ILLOP-IF-PAGE-FAULT) - put this where a page fault should not happen
(CHECK-PAGE-READ), (CHECK-PAGE-WRITE) - these are the normal ones to use
(CHECK-PAGE-{READ/WRITE}-NO-INTERRUPT) - used only inside the interrupt handler,
  when PGF-{R/W} retry the cycle, and when you don't want to let the interrupt
  handler bash the map.
(CHECK-PAGE-{READ/WRITE}-SEQUENCE-BREAK) - when you want to allow sequence
  breaks.  This one hasn't been finished yet.

To review, interrupts are hardware signals that are handled entirely
in microcode without swapping in any pages from the disk, without getting
involved with the garbage collector, and without clobbering any registers
except those that page faults clobber.  Sequence breaks are (will be)
macro-code interrupts which result in stack-group switching.
Many comments have been changed to reflect this terminology.

This version of the microcode also has some new stuff for booting.  Type
control-meta-control-meta-rubout to do a "cold boot".
Type control-meta-control-meta-return to do a "warm boot", which is like
a 1@G (doesn't do a disk-restore).

Due to lack of pdp10 time, this microcode has not been debugged yet.  That
hopefully will happen tonight.