thanks for this reference
On 2/26/23 09:22, Stephen Adolph wrote:
There are some steps you can take to remove the traces of an installed
Option ROM from RAM, which work for all option ROMs as far as I know.
There is a file in the M100SIG that outlines this but I could not find
it this morning. If I do I will reply back identifying the file.
Anyhow this is what REX and REX# and REXCPM do:
1) Initialize the hook table. The hook table is a set of addresses
used by RST 7 calls in M100/T200/NEC. The addresses are "jump-to"
vectors that allow software to hook into specific parts of the operating
system. There are 2 "defaults" depending on the actual hook itself. It
is pretty straightforward to write some machine code to reset the hook
table to nominal. BASIC won't do it because you need full control of
the machine to cleanly change the hooks table.
2) You want to remove any "trigger files" like TS-DOS(.BA) from RAM.
You can do this manually, or you could write some machine code to search
for the trigger file names in the directory, and delete the files.
This isn't "super easy" because it amounts to de-installation of a file
from RAM, which means you need to call some specific ROM routines to
adjust memory pointers etc.
3) The M100 main ROM always copies the 8 bytes at 0x0040-0x0047 in the
Option ROM to upper RAM starting at 0xFAA4. T200 is 0xF4D3, NEC is
0xF991. This region of memory should be reset to nominal, which is 8
bytes of 00.
4) Reset the upper RAM area used by Option ROMs to hook in. On power
up, the M100 copies some software from the main ROM to upper RAM. Some
Option ROMs install their own code there when they install themselves.
in M100, you need to copy 36 bytes from 0x036F to 0xF602
in T200, you need to copy 42 bytes from 0x0372 to 0xEEC8
in NEC, you need to copy 42 bytes from 0x0440 to 0xF590
I think that's it. I imagine what would be useful for manual rom
switchers is to have a little utility that you can run that "cleans out"
the Option ROM.
--
bkw