1
0
mirror of https://github.com/wfjm/w11.git synced 2026-01-23 11:27:38 +00:00
wfjm.w11/doc/simh_diff_spl.md
2022-12-21 12:58:05 +01:00

20 lines
995 B
Markdown

## Known differences between SimH, 11/70, and w11a
### SimH: `SPL` doesn't have 11/70 behavior
On an 11/70, the `SPL` instruction in the 11/70 always fetches the next
instruction regardless of current mode, pending device, or even console
interrupts. This behavior is used in some xxdp diagnostic codes to prepare
a situation suitable for interrupt response testing.
SimH does not implement this behavior, `SPL` behaves like all other
instructions, and interrupts or traps are honored after it completes.
xxdp program `ekbbf0` test 032 depends on the 11/70 behavior and is skipped
(see [patch](../tools/xxdp/ekbbf0_patch_1170.scmd)).
The w11 implements 11/70 behavior for `SPL` in kernel mode only. In supervisor
or user mode `SPL` is a nop and honors traps and interrupts, see
[`SPL` on w11](w11a_diff_70_spl_bug.md).
Several [tcodes](../tools/tcode/README.md) utilize the `SPL` behavior and
are skipped when executed on SimH
(see [cpu_basics.mac](../tools/tcode/cpu_basics.mac) test F2.3).