Difference between revisions of "83Plus:Ports:16"

From WikiTI
Jump to: navigation, search
(added "page" where applicable and linked port 5)
(rearranged to address current theories)
Line 1: Line 1:
[[Category:83Plus:Ports:By_Address:Protected|16 - Flash Sector Exclusion]] [[Category:83Plus:Ports:By_Address|16 - Flash Sector Exclusion]] [[Category:83Plus:Ports:By_Name|Flash Sector Exclusion]]
+
[[Category:83Plus:Ports:By_Address:Protected|16 - Flash Sector Exclusion]] [[Category:83Plus:Ports:By_Address|16 - Flash Page Exclusion]] [[Category:83Plus:Ports:By_Name|Flash Page Exclusion]]
 
{{Protected Port}}
 
{{Protected Port}}
  
Line 13: Line 13:
  
 
=== Write Values ===
 
=== Write Values ===
* Bit 0: Set if execution is not allowed in sector SA2 (pages 08-0B.)
+
* Each bit maps to a page, as determined by [[83Plus:Ports:05|port 5]]. Set a bit to disallow execution on that page.
* 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.)
+
* Bit 4: ''Unknown.''
+
* Bit 5: ''Unknown.''
+
* Bit 6: ''Unknown.''
+
* Bit 7: ''Unknown.''
+
  
 
== Comments ==
 
== Comments ==
 
The above only applies to the 83+ basic; the port's function on the SE and 84+ is not known.
 
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 [[83Plus:Ports:14|port 14]] is; it is the only other protected port in the original hardware.
+
This port is protected, just as [[83Plus:Ports:14|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.
  
 
It is used, as are ports [[83Plus:Ports:22|22]] and [[83Plus:Ports:23|23]] on the SE, to prevent code in the archive from executing, thus theoretically limiting Flash execution privileges to FlashApps.
 
It is used, as are ports [[83Plus:Ports:22|22]] and [[83Plus:Ports:23|23]] on the SE, to prevent code in the archive from executing, thus theoretically limiting Flash execution privileges to FlashApps.
  
See also [[83Plus:Ports:05#Synopsis (TI-83 Plus)|Port 5]].
+
=== 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 [[83Plus:Ports:02|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 [http://www.kalimero.be/83phwinfo.txt here].
 +
 
 +
== See Also ==
 +
* [[83Plus:Ports:05#Synopsis (TI-83 Plus)|Port 5]]
 +
* [[83Plus:Ports:22|Port 22]]
 +
* [[83Plus:Ports:23|Port 23]]

Revision as of 23:01, 20 July 2005

This port is protected, which means user programs cannot ordinarily write to it directly.

Synopsis

Port Number: 16h

Function: Flash Sector/Page Exclusion

This port controls which sectors or pages of Flash may contain executable code.

Read Values

  • Nothing useful (mirror of port 14, I think.)

Write Values

  • Each bit maps to a page, as determined by port 5. Set a bit to disallow execution on that page.

Comments

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.

It is used, as are ports 22 and 23 on the SE, to prevent code in the archive from executing, thus theoretically limiting Flash execution privileges to FlashApps.

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.

See Also