1
0
mirror of https://github.com/wfjm/w11.git synced 2026-03-04 02:36:51 +00:00
Files
wfjm.w11/doc/simh_diff_stklim_amode.md
wfjm 2407e662a9 pdp11_sequencer: BUGFIX: get correct PS after vector push abort
- rtl/w11a
  - pdp11.vhd: add cpustat_type in_vecflow
  - pdp11_sequencer.vhd: BUGFIX: get correct PS after vector push abort
- tools
  - tcode/cpu_details.mac: add test A3.5
  - tcode/cpu_mmu.mac: add test C2.5, C2.6, C2.7
  - xxdp/ekbee1_patch_1170.scmd: fix test 122
  - xxdp/ekbee1_patch_w11a.tcl: fix test 122
2022-12-12 09:02:34 +01:00

1.1 KiB

Known differences between SimH, 11/70, and w11a

SimH: stack limit check and addressing modes

The stack limit check is implemented slightly differenly on all models that support it. All models check the stack limit only in kernel mode for specifiers with SP as register and compare the effective address with the stack limit. Beyond that, the 11/70 and the J11 logic are very different

  • the 11/70 checks for writes with specifiers with mode 1, 2, 4, or 6, thus for
    • clr (sp)
    • mov #77,(sp)+
    • mov #77,(sp)+
    • mov #77,-(sp)
    • mov #77,2(sp)
  • the J11 checks for all accesses with specifiers with mode 4 and 5, thus for
    • mov #77,-(sp)
    • clr @-(sp)
    • tst -(sp)

The 11/70 logic focuses on that a write was done, while the J11 logic focuses on that the SP was decremented.

SimH uses the J11 behavior for all models, thus also for an 11/70 simulation.
xxdp ekbbf0 tests 36,40 and 42, ekbee1 tests 122 and 123, eqkce1 tests 41 and 65, depend on the 11/70 behavior and are patched or skipped.

The w11 correctly implements the 11/70 behavior.