[LispM-Hackers] Bug in SSDN2 Macroinstruction Notes

James A. Crippen james@unlambda.com
07 Jan 2002 16:33:50 -0900


Nyef <nyef@softhome.net> writes:

> I'm going to have to suggest that SSDN2, Figure 20-6 clearly shows that
> the <15:9> field for all AUX-OPs is 0 and that bit 8 is part of the auxop
> number.

Yeah, that's it.  Pardon me for typing before I think. :-)

> I also find it plausible that the microcode dispatches first on the
> <15:9> field (thus covering all mainops, calls, AREFI, and so on in
> the general case, and then the handler for auxops further dispatches
> on <8:5> to catch the cases of flow-control (complex call and long
> branch), counted instructions, and everything else. I'll have to
> look at the actual instruction breakdown to see if this remains
> plausible given what falls into the "everything else" category (and
> what else gets caught in the flow control category).

That would make the most sense.  Maybe later we'll need to redo that
stuff more like the microcode originally did it, but as Knuth sez
"prmtur optmztn is th rt of al evl".  We just need it to work right
now, not work quickly or efficiently.  

> If you really want a bug in SSDN2, page 5-12 is missing from the PS up on
> kappa.

Really?  Is it missing from the separate PDF of section 5?  From the
whole PDF?  If so then JM might have missed that while scanning.
Perhaps he could recreate those?  John?  (He's usually too busy to
pay attention... :-)

> I find that much of the ucode directory is missing context. I suspect that
> many of the files there are supposed to be used with the various tools for
> generating the system that we just don't have. There are constant
> references to interesting-sounding codenames, mentions of "GENASYS" or
> something like that, and so on.

There's no question.  We're missing MICASM, the microcode assembler.
We're missing GENASYS which is used to produce a new band from scratch
(ie, without a previous band like N928.LOAD to build upon).  We're
missing all of the microcode sources.  (But we do have the layout of
the microcode, see the e3-{common,unique}-templates files, as well as
the E2 Processor Description Handbook.)

This is all because most of these tools and sources were TI internal
software that didn't get distributed with your ordinary Exploder
installation.  I don't think that even Steve Ford has any of this
stuff on his Explorers, even though they came directly from TI's lab.
Only JM knows through who the sources we're using came from, but I'm
pretty sure that they came via UCB at some point.  They never included
the low-level utilities that wouldn't have left TI's microcode hackers
and system builders.

> Oh, and all those templates appear to be for the bitfield <x:6> of the
> instruction, for x = 8 or 10 (8 usually, 10 for call destinations), and
> the numbers after the two nils are the values for the bitfields.

Good idea.  Thanks!

'james

-- 
James A. Crippen <james@unlambda.com> ,-./-.  Anchorage, Alaska,
Lambda Unlimited: Recursion 'R' Us   |  |/  | USA, 61.20939N, -149.767W
Y = \f.(\x.f(xx)) (\x.f(xx))         |  |\  | Earth, Sol System,
Y(F) = F(Y(F))                        \_,-_/  Milky Way.