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

From WikiTI
Jump to: navigation, search
(Synopsis)
m (More info from the_mad_joob. Maybe consider making him an account :D.)
 
(5 intermediate revisions by 3 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
  
Bits 4 and 5 can adjust the CPU speed to a certain degree. In order for the speed adjustment to work bit 1 must be set in the appropriate LCD Delay port according to the contents of port 20. In other words, if you wish to adjust the speed at 6mhz you must set bit 1 of port 29. Other bits of this port 2E may affect the speed but nothing significant.  The default value for this port is 45h on the TI-84 Plus Silver Edition and 44h 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 ~90% of normal speed
 
* 10: The CPU is running at ~95% of normal speed
 
* 11: The CPU is running at ~86% 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-4)===
 
* 00: Set the CPU to run at 100% of normal speed
 
* 01: Set the CPU to run at ~90% of normal speed
 
* 10: Set the CPU to run at ~95% of normal speed
 
* 11: Set the CPU to run at ~86% of normal speed
 
  
 
== Comments ==
 
== 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 [[83Plus:Ports:06|Port 06h]].
 
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,0
 
out (20h),a    ;would be 6mhz
 
in a,(29h)
 
or 2          ;set bit 1
 
out (29h),a
 
ld a,74h      ;Set the CPU to ~5.1 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 11: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