Difference between revisions of "83Plus:Ports:0E"

From WikiTI
Jump to: navigation, search
(TI-84+CSE)
Line 1: Line 1:
[[Category:83Plus:Ports:By_Address|0E-0F - Boot Code Paging]] [[Category:83Plus:Ports:By_Name|Boot Code Paging]]
+
[[Category:83Plus:Ports:By_Address|0E - MemA High Flash Address]] [[Category:83Plus:Ports:By_Name|MemA High Flash Address]]
  
 
== Synopsis ==
 
== Synopsis ==
'''Port Numbers:''' 0Eh and 0Fh
+
'''Port Numbers:''' 0Eh
  
'''Function:''' Boot Code Paging
+
'''Function:''' This port contains the high two bits of addresses for memory mapped in [[83Plus:Ports:06|port 6]]. [[83Plus:Ports:0F|Port 0F]] is an identical port that works with [[83Plus:Ports:07|port 7]].
  
These ports have no function on the 84+ line. They might do something on the 83+SE.
 
  
 
=== Read Values ===
 
=== Read Values ===
Line 17: Line 16:
  
 
== Comments ==
 
== Comments ==
These two ports are written to very early in the boot code where they both receive 03 then 00. Port 0E is written to first and is used before accessing page 7F in the 8000h region via memory map mode 1. Port 0Fh is written to second before accessing page 7F in the 4000h region via memory map mode 0. Once execution is running normally in the 4000h region, both ports are set back to 00.
+
These two ports are only useful for calculators with 4 or 8 MB of flash, namely, the TI-84+CSE. On 1 or 2 MB calculators, the values are ignored. The boot code of all models likes to write 03 to these ports early in the boot process, in order to ensure that the highest possible flash pages are swapped in. Of course, that only actually matters on the TI-84+CSE. On the TI-83+SE, TI-84+, and TI-84+SE, the value of these ports are ignored.
  
It would seem that port 0E is related to the 8000h range and port 0F is related to the 4000h range, but that might not be correct.
+
TI likes to write 00 to these ports before swapping RAM. However, that appears to be fully unnecessary; setting bit 7 of 06 or 07 correctly maps RAM into MemA or MemB without regard for the value of these ports.
 
+
It has also been confirmed on all three ASIC revisions that this port is not necessary to fix the boot code memory mapping. For more information on that see: [[83Plus:State_of_the_calculator_at_boot|State of the calculator at boot]]
+

Revision as of 21:22, 19 February 2013


Synopsis

Port Numbers: 0Eh

Function: This port contains the high two bits of addresses for memory mapped in port 6. Port 0F is an identical port that works with port 7.


Read Values

  • Bits 0-1: Whatever was last written
  • Bits 2-7: always 0

Write Values

  • Bits 0-1: Set a new value
  • Bit 2-7: No effect

Comments

These two ports are only useful for calculators with 4 or 8 MB of flash, namely, the TI-84+CSE. On 1 or 2 MB calculators, the values are ignored. The boot code of all models likes to write 03 to these ports early in the boot process, in order to ensure that the highest possible flash pages are swapped in. Of course, that only actually matters on the TI-84+CSE. On the TI-83+SE, TI-84+, and TI-84+SE, the value of these ports are ignored.

TI likes to write 00 to these ports before swapping RAM. However, that appears to be fully unnecessary; setting bit 7 of 06 or 07 correctly maps RAM into MemA or MemB without regard for the value of these ports.