 |
» |
|
|
|
Privileged Mode Initialize registers from a specified location. Syntax |  |
INITNM virtaddr [ISM |PIMREAL |PIMVIRTUAL]
INITCM virtaddr [ISM |PIMREAL |PIMVIRTUAL]
INITNM TCB
INITCM TCB | CMG | REGS
|
This command is for use by experienced DAT users and internals specialists to initialize DAT when a dump is corrupted. The command is also provided for the experienced Debug user. For the INITNM command, the NM register set is loaded from the specified location. It is assumed that the location contains data in the form of an interrupt stack marker (ISM) which is the default, or in the form of processor internal memory (PIM). Not all of the machine's registers are found in an ISM. If this is the structure being used,
those registers not stored in the ISM are retrieved from the save state area in the dump (or from the running machine in Debug). For the INITCM command, the CM register set is loaded from one of several locations depending upon the option specified. Four possibilities exist: The emulator/translator is not running, and the CM state for the process
is stored in the CMGLOBALS area of the PIB. The CMG option is used
in this case. The emulator/translator is running, in which case
the CM state is maintained in the native mode registers.
In this case the virtual address of an interrupt stack marker (ISM) or processor
internal memory record (PIM) containing the emulator/translator's native mode
register set
should be given so that the CM state may be extracted from the
registers. The state of the
emulator/translator is stored in the task control block (TCB).
As in the PIM and ISM case above, the register data found is used
to set up the CM state. The user desires to construct the
CM state from scratch. To do this, the user must place into the current
NM register set (using the MR command) values that correspond to the
state of an active emulator/translator. The appropriate values are then
extracted from the register set to build the CM state.
The REGS options allows this to be done.
Parameters |  |
- virtaddr
Any valid expression specifying the virtual address of an interrupt
stack marker (ISM) or a processor internal memory (PIM) record.
The type of structure is indicated by one of the following optional parameters: - ISM
The data is an interrupt stack marker (default). - PIMVIRTUAL
The data is processor internal memory format. - PIMREAL
The data is processor internal memory format, but the address is a real memory address. If a full virtual address is given, the offset
part is used as the real memory address.
- TCB
This parameter indicates that the register save state in the task control block (TCB) for the current PIN should be used for initialization. The register save state in the TCB is in the form of an interrupt_marker_type. - CMG
This parameter indicates that the CM registers should be initialized based on CMGLOBALS area in the process information block (PIB) of the current process. - REGS
This parameter indicates that the CM registers should be initialized based on the current NM regs. The NM regs are interpreted as containing values used by the emulator/translator.
Examples |  |
$ nmdebug > initnm 0.tcb(20)
|
Initialize the native mode registers from the indicated virtual address.
% cmdebug > initcm 40153014
|
Initialize the CM registers from the interrupt marker that starts at address 40153014. The process was most likely in the emulator (or else the CM state would be stored in the CMGLOBALS area of the PIB).
|