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

From WikiTI
Jump to: navigation, search
m
 
 
(12 intermediate revisions by 4 users not shown)
Line 1: Line 1:
'''Note:''' Do not take the information on this template page as actual documentation!
+
[[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}}
The Ports are named by their number, in hexadecimal. An example is [[83Plus:Ports:00]].
+
 
+
You also must put a variation on the following code into your page to have it categorized:
+
NaodW29-nowiki48675a4be467d7e00000001
+
 
+
----
+
  
 
== Synopsis ==
 
== Synopsis ==
'''Port Number:''' 06h
+
'''Port Number:''' 16h
  
'''Function:''' Flash Memory Paging
+
'''Function:''' Flash Sector/Page Exclusion
  
This port controls what page is swapped into the 4000h to 7FFFh range. ('''DO NOT''' take this template page as real documentation on port 6!)
+
This port controls which sectors or pages of Flash may contain executable code.
  
 
=== Read Values ===
 
=== Read Values ===
* [00h - FFh]: The current port mapped to the memory range 4000h through 7FFFh.
+
* Nothing useful (mirror of [[83Plus:Ports:14|port 14]], I think.)
  
 
=== Write Values ===
 
=== Write Values ===
* [00h - FFh]: The new page to swap in to the memory range 4000h through 7FFFh
+
* Each bit maps to a page, as determined by [[83Plus:Ports:05|port 5]].  Set a bit to disallow execution on that page.
 
+
''Note: if you would have bitwise flags for your port, label them "bit X".''
+
  
 
== Comments ==
 
== Comments ==
The behavior of this port changes in different memory map modes.
+
The above only applies to the 83+ basic. It does nothing on other models.
  
== Example ==
+
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.
  NaodW29-nowiki48675a4be467d7e00000002
+
 
 +
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.
 +
 
 +
=== An alternate version? ===
 +
The TI-73 uses this port 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.)
  
 
== Credits and Contributions ==
 
== Credits and Contributions ==
* '''/dev/urandom:''' Because of your randomness, this project is possible.
+
* '''Tijl Coosemans:''' Documentation [http://tijl.ulyssis.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]]

Latest revision as of 18:25, 3 March 2020

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. It does nothing on other models.

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 TI-73 uses this port 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.)

Credits and Contributions

  • Tijl Coosemans: Documentation here.

See Also