Difference between revisions of "84PCE:Ports:1005"

From WikiTI
Jump to: navigation, search
(The text needs to be less certain-sounding.)
(Notice of applicability)
 
(8 intermediate revisions by 3 users not shown)
Line 1: Line 1:
[[Category:84PCE:Ports:By_Address|1005 - VRAM Wait States?]] [[Category:84PCE:Ports:By_Name|VRAM Wait States?]]
+
[[Category:84PCE:Ports:By_Address|1005 - Flash Wait States]] [[Category:84PCE:Ports:By_Name|Flash Wait States]]
 
== Synopsis ==
 
== Synopsis ==
 
'''Port Number:''' 1005
 
'''Port Number:''' 1005
Line 5: Line 5:
 
'''Memory-mapped Address:''' E00005
 
'''Memory-mapped Address:''' E00005
  
'''Function:''' Possibly controls wait states to VRAM accesses. Or maybe flash wait states. Or maybe we have no control over any wait states whatsoever.
+
'''Function:''' Controls flash wait states. Each read from flash will have at least 5 wait states, plus the number of wait states specified in this port. The OS defaults to 04 in this port, so by default, every read from flash incurs a 9 wait state penalty, for a total of 10 clock cycles to read a byte from flash. (V/RAM gets 3 wait states for reads, and 1 waitvstate for writes, for totals of 4 and 2, respectively.)
 +
 
 +
This port is only applicable to older devices which feature a [[84PCE:Ports:1000|parallel flash chip.]]
  
 
== Details ==
 
== Details ==
Line 13: Line 15:
 
|-
 
|-
 
|00
 
|00
|Instant hard crash & reset
+
|Instant hard crash & reset if OS ISR is enabled
 
|-
 
|-
 
|01
 
|01
|Makes OS a little (? 40 %) faster for some operations
+
|Makes OS a little faster, perhaps 30%. Used by the C toolchain between [https://github.com/CE-Programming/toolchain/commit/76c6620b33c550637e97a8e67ae4e6a788d7d113#diff-acbd510f12643ca0895f22a9f30a5a8cR55 October 2016] and [https://github.com/CE-Programming/toolchain/commit/477efec0f05f530041ff09a31517fc5f92c13047#diff-acbd510f12643ca0895f22a9f30a5a8cL55 April 2017]. Occasional crashes reported on calculators across all revisions (see: [https://github.com/CE-Programming/toolchain/commit/477efec0f05f530041ff09a31517fc5f92c13047 fix commit message], [https://tiplanet.org/forum/viewtopic.php?f=8&t=19535 this post]). Not recommended for regular use.
 +
|-
 +
|02
 +
|Used by the C toolchain between [https://github.com/CE-Programming/toolchain/commit/9356661e7e57cd85b54b98a618d3a91891a59da7#diff-cc616a714307890453270fae8f0ff646R60 April 2016] and [https://github.com/CE-Programming/toolchain/commit/76c6620b33c550637e97a8e67ae4e6a788d7d113#diff-acbd510f12643ca0895f22a9f30a5a8cL54 October 2016]. Insufficient usage data was collected to determine the stability of this value.
 
|-
 
|-
|02-03
+
|03
|No ill-effects
+
|Used by the C toolchain since [https://github.com/CE-Programming/toolchain/commit/477efec0f05f530041ff09a31517fc5f92c13047#diff-acbd510f12643ca0895f22a9f30a5a8cR55 February 2017]. No crashes attributed to this value (as of April 2018).
 
|-
 
|-
 
|04
 
|04
Line 28: Line 33:
 
|-
 
|-
 
|20
 
|20
|OS is unbearably sluggish, RAM program dummy loop is not slower
+
|OS is unbearably sluggish
 
|-
 
|-
 
|FF
 
|FF
 
|Don't even bother trying to do anything
 
|Don't even bother trying to do anything
 
|}
 
|}

Latest revision as of 08:24, 18 April 2020

Synopsis

Port Number: 1005

Memory-mapped Address: E00005

Function: Controls flash wait states. Each read from flash will have at least 5 wait states, plus the number of wait states specified in this port. The OS defaults to 04 in this port, so by default, every read from flash incurs a 9 wait state penalty, for a total of 10 clock cycles to read a byte from flash. (V/RAM gets 3 wait states for reads, and 1 waitvstate for writes, for totals of 4 and 2, respectively.)

This port is only applicable to older devices which feature a parallel flash chip.

Details

Value    Effect   
00 Instant hard crash & reset if OS ISR is enabled
01 Makes OS a little faster, perhaps 30%. Used by the C toolchain between October 2016 and April 2017. Occasional crashes reported on calculators across all revisions (see: fix commit message, this post). Not recommended for regular use.
02 Used by the C toolchain between April 2016 and October 2016. Insufficient usage data was collected to determine the stability of this value.
03 Used by the C toolchain since February 2017. No crashes attributed to this value (as of April 2018).
04 Normal value
10 OS feels noticeably sluggish
20 OS is unbearably sluggish
FF Don't even bother trying to do anything