UP
SPIE, STAE, and DDT
If you are going to use DDT, you had better do NOSPIE
under PL/I.
We really ought to work out some way for the domain's DDT
to turn off SPIE by conversing with the OS simulator or
something.
ABEND
OS and OS programs have a habit of abending, which is
something which is not handled well yet in Gnosis.
OSSIM Failures {in case of trouble...}
The O.S. simulator has a somewhat inelegant failure mode
at this time. If your program suddenly appears at an address
above x'800000' that means the simulator crashed at that
address. You cannot see the code in the simulator from the
application program domain, so if you are interested you
must dial into the simulator domain's DDT. When you get
there the commands ";t" and "0800000,ossim;u" will establish
the symbol table. "CESINL]
;x16;" will display the most
recent trace entry, and "ABENDREG;x040" will display the
simulators registers at the time of the interrupt. Hopefully,
you will never have to do this.
The Interrupt Log
The interrupt log contains a 16 byte header, followed
by 16 byte entries. The first word in the header always
points to the most recently created entry, while the second
and third words of the header define the addresses of the
first and last entries in the log buffer. The log wraps
to the beginning after the last entry has been used, and
overlays the first entry.
The first byte of each log entry defines the class of log
event. The following classes are defined at this time:
00-02 - an exit was taken from the OS simulation domain
to the user domain.
bytes 1-3 contain the address of the OS simulation caller
which initiated the user exit.
bytes 4-7 contain the address in the user domain which was
"branched" to.
bytes 8-15 contain the contents of registers 0 and 1 established
for the exit routine in the user domain.
80-8f - a domain trap was processed by the os simulator.
bytes 0-3 contain the abridged trap code generated by
the kernel.
bytes 4-7 contain the application program domains PSW at
the time fo the interrupt.
bytes 8-15 contain the application programs registers 0 and
1 at the time of the interrupt.
F0 - an entry was allocated, but not used as a regular
log entry. This occurs when an interrupt was received which
was not processed by the os simulator, or if an entry was
made to the OS simulator with a nonzero databyte. Nonzero
databytes are used to implement the synthetic domain keeper,
meter keeper, and internal filedef functions, as well as
to pass keys between the OS simulation domain and the application
program domain.
if bytes 1-3 contain x'F0F0F0' the entry resulted from
a "false" entry.
F0F0F0F0 - (in bytes 0-3) indicates a log entry was
allocated, but not used. This will occur if a domain trap
happens which the OS simulator chooses not to handle.