Difference between revisions of "84PCE:Ports:0020"
From WikiTI
m |
(Mention that exploit was patched.) |
||
(8 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
− | [[Category:84PCE:Ports:By_Address|0020 - | + | [[Category:84PCE:Ports:By_Address|0020 - Memory Protection]] |
+ | [[Category:84PCE:Ports:By_Name|Memory Protection]] | ||
== Synopsis == | == Synopsis == | ||
'''Port Number:''' 0020-0025 | '''Port Number:''' 0020-0025 | ||
− | '''Function:''' | + | '''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. |
Latest revision as of 20:12, 9 April 2020
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.