On Sun, Feb 12, 2017 at 6:05 PM, Craig Ruff <cruff at ruffspot.net> wrote:
I am working on the disassembly and commenting of the
98228A disk ROM for the 9825T, and my disassembler
flagged two instructions as invalid. They are used inside a routine that copies blocks
of words from various banks
of the ROM into low RAM. The first, bit pattern 070113, is used immediately after a dir
(disable interrupt) instruction.
The second, bit pattern 070117, is used immediately before an eir (enable interrupt)
instruction. The ?invalid?
instructions do not match any instructions described in the 9825A patent, nor are present
in the 9835 or 9845
assemblers instruction descriptions. From the surrounding code, it doesn?t appear that
these instructions reference
any of the user visible CPU registers, but are used in some way that enhances the effect
of dir/eir and ensures the
block copy is not interfered with.
Anyone have any ideas? Possibly a DMA request ignore/resume pair?
My first thought, and it's probably wrong, is that these instrucitons
(which differ by one bit, so might be
setting/reseting something) are NOPs to the CPU, but are interpretted
by the memory mapping hardware in those
9825s that have more than 64K or RAM and ROM total.
Possibly to map in the RAM that's used for the destination.
-tony