84PCE:Ports:0020

From WikiTI
Revision as of 20:12, 9 April 2020 by Jacobly (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Synopsis

Port Number: 0020-0025

Function: Memory Protection Range

0020-0022: Memory protection range lower limit (inclusive, LSB in 20, MSB in 22)

0023-0025: Memory protection range upper limit (inclusive, LSB in 23, MSB in 25)

Any memory access from unprivileged code at an address (after adding MBASE in z80 mode) in this inclusive range has the following effects:

  • Reads read-as-zero.
  • Writes don't affect the byte in memory and cause an nmi.
  • Fetches (reads of executed code) work normally.
  • Privileged code can read and write normally.

Execution in this range is privileged. Implications of privileged code are described in 84PCE:Ports:001D.

By default the boot code sets this to D1887C-D1887C on pre-M. Later revisions set it to D1887D-D1887C. If lower limit > upper limit then no memory is affected.