Skip to content

set cpu noeae not being honored #553

@jnpastin

Description

@jnpastin

Version: Open SIMH V4.1-0, git commit c5d1f8c

Platform: macOS

Summary: set cpu noeae displays correctly in show config but does not prevent EAE Group 3 OPR instructions from executing

Reproduction (minimal, no OS/8 required):

set cpu noeae
show cpu
deposit 0200 7200
deposit 0201 7001
deposit 0202 7403
deposit 0203 7001
deposit 0204 7402
run 200
examine ac

Expected: AC = 0002 (7403 NOPped, second 7001 executes as IAC)

Actual: AC = 0001 (7403 executed as SCL, consumed operand word)

Root cause (from source): For EAE instructions that have no MQL/MQA bits — such as SCL (7403), MUY (7405), DVI (7407), NMI (7411), SHL (7413), etc. — the NOEAE check fires but is ineffective. reason = stop_inst (= 0 by default) followed by break exits the switch case without preventing execution, because reason = 0 allows the while loop to continue to the next instruction fetch rather than halting. The net effect is these instructions execute normally as if NOEAE were not set.

Also worth noting: MQL and MQA execute unconditionally before the NOEAE check, which means they always work regardless of the NOEAE setting. On real pre-/E hardware without the EAE board, these would be no-ops. Whether this is intentional modeling of PDP-8/E behavior (where MQ is always present) or an oversight is worth noting.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions