|This port is protected, which means user programs cannot ordinarily write to it directly.|
Port Number: 16h
Function: Flash Sector/Page Exclusion
This port controls which sectors or pages of Flash may contain executable code.
- Nothing useful (mirror of port 14, I think.)
- Each bit maps to a page, as determined by port 5. Set a bit to disallow execution on that page.
The above only applies to the 83+ basic; the port's function on the SE and 84+ is not known.
This port is protected, just as port 14 is; it is the only other protected port in the original hardware. Note that as with most protected ports, Flash must be write-enabled for writing to have any effect.
An alternate version?
The 83+ boot code version 1.00 contains some additional code for handling this port somewhat differently. Instead of controlling individual pages, each bit corresponds to a Flash sector:
- Bit 0: Set if execution is not allowed in sector SA2 (pages 08-0B.)
- Bit 1: Set if execution is not allowed in sector SA3 (pages 0C-0F.)
- Bit 2: Set if execution is not allowed in sector SA4 (pages 10-13.)
- Bit 3: Set if execution is not allowed in sector SA5 (pages 14-17.)
It is not currently known whether any actual calculators use this method of protection. Hypothetically, such a calculator would be indicated by a low port 2 bit 1. Since recent OS's use this bit as an LCD status -- and therefore, that bit being permanently low would freeze the calculator -- it seems unlikely that this method was ever used in real 83+'s.
Credits and Contributions
- Tijl Coosemans: Documentation here.