HP2100: Updated bug fix info from Dave Bryan
This commit is contained in:
parent
f60390ce89
commit
33536f0759
1 changed files with 99 additions and 1 deletions
|
@ -1,6 +1,6 @@
|
|||
HP 2100 SIMULATOR BUG FIX WRITEUPS
|
||||
==================================
|
||||
Last update: 2015-09-14
|
||||
Last update: 2015-11-24
|
||||
|
||||
|
||||
1. PROBLEM: Booting from magnetic tape reports "HALT instruction, P: 77756
|
||||
|
@ -6813,3 +6813,101 @@
|
|||
millisecond.
|
||||
|
||||
STATUS: Fixed in version 4.0-0.
|
||||
|
||||
|
||||
|
||||
268. ENHANCEMENT: Provide "fprint_sym" and "parse_sym" with register-specific
|
||||
information when a register is being examined or deposited.
|
||||
|
||||
VERSION: 3.9-0
|
||||
|
||||
OBSERVATION: When EXAMINE or DEPOSIT specifies a register that has the
|
||||
REG_VMIO flag, "fprint_sym" or "parse_sym", respectively, is called in lieu
|
||||
of "fprint_val" or "get_uint". This allows VM-specific interpretations,
|
||||
such as symbolic display of a status or current instruction register value,
|
||||
by specifying a switch with the command:
|
||||
|
||||
sim> examine STAT-CIR
|
||||
STAT: 060001
|
||||
CIR: 030020
|
||||
|
||||
sim> examine -s STAT
|
||||
STAT: mITroc CCG 001
|
||||
|
||||
sim> examine -m CIR
|
||||
CIR: PAUS 0
|
||||
|
||||
The REG definition contains a radix field that allows a register to have a
|
||||
default radix that is different than that of the device. This is
|
||||
particularly helpful in connection with the EXAMINE STATE command, as
|
||||
different registers may have different preferred radices:
|
||||
|
||||
sim> examine state
|
||||
P: 012077 (defaults to octal)
|
||||
CNTR: 9 (defaults to decimal)
|
||||
MASK: FFF0 (defaults to hex)
|
||||
|
||||
However, there is no way to specify that the preferred display or input is
|
||||
symbolic. So a CPU state that contains such registers would have to be
|
||||
displayed multiple times -- once to get most of the values in their default
|
||||
forms, and again to display those registers whose preferred form is
|
||||
symbolic:
|
||||
|
||||
sim> examine state
|
||||
PB: 000100
|
||||
P: 012077
|
||||
PL: 023000
|
||||
STAT: 060001
|
||||
CIR: 030020
|
||||
|
||||
sim> examine -s STAT
|
||||
STAT: mITroc CCG 001
|
||||
|
||||
sim> examine -m CIR
|
||||
CIR: PAUS 0
|
||||
|
||||
It would be useful if a default symbolic interpretation could be specified
|
||||
in the REG structure and passed to "fprint_sym" and "parse_sym" to be used
|
||||
in the absence of overriding command-line switches. Currently, no
|
||||
information is provided to these routines to indicate which register is
|
||||
being manipulated, so there is no way to provide register-specific default
|
||||
interpretations within the routines.
|
||||
|
||||
RESOLUTION: Reserve space for register-specific flags in the "flags" field
|
||||
of the REG structure (sim_defs.h) starting at REG_V_UF. Modify "ex_reg"
|
||||
and "dep_reg" (scp.c) to merge the register-specific flags into the radix
|
||||
value passed as the "addr" parameter to "fprint_sym" and "parse_sym".
|
||||
|
||||
A VM that defines register-specific flags will know to separate them from
|
||||
the passed radix value by the presence of the SIM_SW_REG value in the
|
||||
"switch" parameter. VMs that do not define register-specific flags are not
|
||||
affected by this change.
|
||||
|
||||
STATUS: Fixed in version 4.0-0.
|
||||
|
||||
|
||||
|
||||
269. PROBLEM: Tape read reports "end of medium" even if a gap precedes it.
|
||||
|
||||
VERSION: 4.0-0
|
||||
|
||||
OBSERVATION: Calling "sim_tape_rdrecf" to read a tape record sometimes
|
||||
returns MTSE_EOM and sets the "position not updated" (PNU) flag, even when
|
||||
an erase gap precedes the EOM. The correct response should be to return
|
||||
MTSE_RUNAWAY to indicate that spacing over a gap did not end with a data
|
||||
record or tape mark. Moreover, PNU should not be set, as the position has
|
||||
been updated.
|
||||
|
||||
CAUSE: The routine attempts to handle this case by returning MTSE_RUNAWAY
|
||||
if the EOF was detected while reading a buffer of gap markers. However, if
|
||||
a buffer read ends immediately before an EOM marker or the physical EOF,
|
||||
the next read attempt will return a zero buffer length. The routine
|
||||
misinterprets this to mean that no gap was present and returns MTSE_EOM and
|
||||
sets the PNU flag.
|
||||
|
||||
RESOLUTION: Modify "sim_tape_rdlntf" (sim_tape.c) to determine whether the
|
||||
EOM marker or physical EOF was seen on the first or a subsequent buffer
|
||||
read, and to return MTSE_EOM with PNU or MTSE_RUNAWAY without PNU,
|
||||
respectively.
|
||||
|
||||
STATUS: Fixed in version 4.0-0.
|
||||
|
|
Loading…
Add table
Reference in a new issue