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

From WikiTI
Jump to: navigation, search
m (Port 0E is a shadow of 06)
m (More info from the_mad_joob. Maybe consider making him an account :D.)
 
(8 intermediate revisions by 4 users not shown)
Line 1: Line 1:
[[Category:83Plus:Ports:By Address|2E - CPU Speed Adjustment]] [[Category:83Plus:Ports:By Name|CPU Speed Adjustment]]
+
[[Category:83Plus:Ports:By Address|2E - Memory Access Delay]] [[Category:83Plus:Ports:By Name|Memory Access Delay]]
 
{{SE-Only Port|06}}
 
{{SE-Only Port|06}}
  
Line 5: Line 5:
 
'''Port Number:''' 2Eh
 
'''Port Number:''' 2Eh
  
'''Function:''' CPU Speed Adjustment
+
'''Function:''' Memory Access Delay
  
This port for reasons unknown has a slight effect on the CPU speed. It works in both the 6 MHz and 15 MHz modes. Every bit on the port affects the speed, but only bits 5 and 4 have any significant effects. The default value for this port is 45h on the TI-84 Plus Silver Edition and 45h on the TI-83 Plus Silver Edition.
+
This port will add a 1 cycle delay for certain types of reads for the ram or the flash. This port's effect is enabled by the lcd delay port currently selected by the current CPU speed.
  
=== Read Values (bits 5-4)===
 
* 00: The CPU is running at normal speed (100%)
 
* 01: The CPU is running at ~82% of normal speed
 
* 10: The CPU is running at ~99% of normal speed
 
* 11: The CPU is running at ~81% of normal speed
 
  
 +
==To enable by the LCD Ports==
 +
* Bit 0 of the LCD ports (depending on current CPU speed mode) enable the effects of the flash delay controlled be 2E.
 +
* Bit 1 of the LCD ports (depending on current CPU speed mode) enable the effects of the ram delay controlled be 2E.
 +
 +
 +
== Read and Write Values of port 2E==
 +
* Bits 0-2 of port 2E affect the flash reads and (attempted) writes.
 +
** Bit 0 adds a clock for every opcode read from the flash.
 +
** Bit 1 adds a clock for every non-opcode read from the flash.
 +
** Bit 2 adds a clock for every (attempted) write to the flash.
 +
* Bits 4-6 of port 2E affect the ram reads and writes.
 +
** Bit 4 adds a clock for every opcode read from the ram.
 +
** Bit 5 adds a clock for every non-opcode read from the ram.
 +
** Bit 6 adds a clock for every write to the ram.
 +
* Bits 3 and 7 are not used in port 2E, though they can be toggled.
  
=== Write Values (bits 5 and 4)===
 
* 00: Set the CPU to run at 100% of normal speed
 
* 01: Set the CPU to run at ~82% of normal speed
 
* 10: Set the CPU to run at ~99% of normal speed
 
* 11: Set the CPU to run at ~81% of normal speed
 
  
 
== Comments ==
 
== Comments ==
This port is not available on the normal TI-83+. On the normal TI-83+ this port is a shadow of [[83Plus:Ports:0E|Port 0Eh]].
+
With bits 0 & 4, extra clock cycle are doubled if the instruction is prefixed.
 +
We can safely deduct that the port adds a clock cycle each time the R register is incremented.
 +
 
 +
Why this port is necessary is unknown, however it is set to 44 on the 83+SE and 45 on the 84+(SE).
 +
 
 +
This port is not available on the normal TI-83+. On the normal TI-83+ this port is a shadow of [[83Plus:Ports:06|Port 06h]].
  
== Example ==
 
<nowiki>
 
ld a,74h  ;Set the CPU to ~12.09 MHz/~4.8 MHz
 
out (2Eh),a
 
</nowiki>
 
  
 
== Credits and Contributions ==
 
== Credits and Contributions ==
 
* '''Michael Vincent:''' Documentation found [http://michaelv.org/programs/calcs/ports/port2e.html here].
 
* '''Michael Vincent:''' Documentation found [http://michaelv.org/programs/calcs/ports/port2e.html here].
 +
* '''James Montelongo'''
 +
* '''Ben Moody'''
 +
* '''the_mad_joob'''

Latest revision as of 10:17, 9 December 2020

This port only exists as a distinct port on the TI-83 Plus Silver Edition, the TI-84 Plus, and the TI-84 Plus Silver Edition. On the standard TI-83 Plus, it acts as a shadow of port 06.

Synopsis

Port Number: 2Eh

Function: Memory Access Delay

This port will add a 1 cycle delay for certain types of reads for the ram or the flash. This port's effect is enabled by the lcd delay port currently selected by the current CPU speed.


To enable by the LCD Ports

  • Bit 0 of the LCD ports (depending on current CPU speed mode) enable the effects of the flash delay controlled be 2E.
  • Bit 1 of the LCD ports (depending on current CPU speed mode) enable the effects of the ram delay controlled be 2E.


Read and Write Values of port 2E

  • Bits 0-2 of port 2E affect the flash reads and (attempted) writes.
    • Bit 0 adds a clock for every opcode read from the flash.
    • Bit 1 adds a clock for every non-opcode read from the flash.
    • Bit 2 adds a clock for every (attempted) write to the flash.
  • Bits 4-6 of port 2E affect the ram reads and writes.
    • Bit 4 adds a clock for every opcode read from the ram.
    • Bit 5 adds a clock for every non-opcode read from the ram.
    • Bit 6 adds a clock for every write to the ram.
  • Bits 3 and 7 are not used in port 2E, though they can be toggled.


Comments

With bits 0 & 4, extra clock cycle are doubled if the instruction is prefixed. We can safely deduct that the port adds a clock cycle each time the R register is incremented.

Why this port is necessary is unknown, however it is set to 44 on the 83+SE and 45 on the 84+(SE).

This port is not available on the normal TI-83+. On the normal TI-83+ this port is a shadow of Port 06h.


Credits and Contributions

  • Michael Vincent: Documentation found here.
  • James Montelongo
  • Ben Moody
  • the_mad_joob