83Plus:Ports:05
Please format this article according to the guidelines and Wikification suggestions, then remove this {{Wikify}} notice from the article.
Contents
Synopsis (TI-83 Plus S.E. and TI-84 Plus Family)
Port Number: 05h
Function: RAM Paging Port
This port can be used to control what RAM page is paged into the C000h-FFFFh memory bank. Note that it can only page RAM pages, not flash pages.
Read Values
Returns the current RAM pages.
Write Values
Sets the current RAM page, by giving a value in 00h-07h, inclusive. When you work with the other paging ports, RAM pages are given in 80h-87h, but this port does not need bit 7 to be set. You cannot set the upper four bits.
Synopsis (TI-83 Plus)
Port Number: 05h
Function: Port 16h Configuration Port
This port configures which memory pages are locked or unlocked (i.e. whether or not the PC register is allowed to point within the page) by port 16h. Only bits 0..2 are considered, the rest have no effect.
Read Values
Nothing of value.
Write Values
Writing a set bit to 16h protects the page; writing a clear bit unprotects the page.
Port 05h Bit | Port 16h Bit | |||||||||
---|---|---|---|---|---|---|---|---|---|---|
2 | 1 | 0 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
0 | 0 | 0 | ROM 0F | ROM 0E | ROM 0D | ROM 0C | ROM 0B | ROM 0A | ROM 09 | ROM 08 |
0 | 0 | 1 | ROM 17 | ROM 16 | ROM 15 | ROM 14 | ROM 13 | ROM 12 | ROM 11 | ROM 10 |
0 | 1 | 0 | X | X | X | X | ROM 1B | ROM 1A | ROM 19 | ROM 18 |
1 | 1 | 1 | X | X | RAM 01 | X | X | X | X | RAM 00 |
Comments
At least on my TI-84+, if you output a value with bit 3 set, reading from the port will return a value with bit 3 set. This would imply that you can use RAM pages 08h-0Fh, but these RAM pages do not exist--this bit is simply ignored (only bits 0-2 actually determine what RAM page is active.)
Credits and Contributions
- Michael Vincent: Initial documentation.
- Tijl Coosemans (sp? and correct mundane name?): Documenting TI-83 Plus functionality here.