Sat Apr 18 12:56:55 CEST 2009

don't mix side-effects and streams..

The problem is context-dependency of the disassembler on the current
code pointer, which probably doesn't work well with parameterization..

The result of disassembly seems to be correct, but i doubt it really
does what i think it does..  Maybe the parameter should be pushed

No, let's do this properly: all dasm words get passed as a first
argument the current code location.

arbitrary choice:

the PC that's plugged into a disassembler, should it be the location
of the instruction, or the value of the PC when the instruction
executes (pointing _past_ the instruction)?

Let's stick as close as possible to the machine definition: PC should
point after the instruction.

        * assume that PCR addressing mechanism is the same for all
          architectures of interest.  if not, this should be
          parameterized in operand.ss

        * make the assemblers referentially transparent.

Problem: when invoking the assembler, the next position of the PC is
not known, so we can't use this!  The transformation from instruction
address -> PC is done in the macro, which knows instruction sizes.