Difference between revisions of "83Plus:Ports:06"

From WikiTI
Jump to: navigation, search
m (Comments: Added normal behavior for ease of use)
m (Example: used the stack to store the old memory page)
Line 22: Line 22:
 
  <nowiki>push af
 
  <nowiki>push af
 
in a,(6)
 
in a,(6)
ld (oldMemPage),a
+
push af
 
ld a,1
 
ld a,1
 
out (6),a
 
out (6),a
 
; do stuff that needs page 1 swapped in
 
; do stuff that needs page 1 swapped in
ld a,(oldMemPage)
+
pop af
 
out (6),a
 
out (6),a
 
pop af</nowiki>
 
pop af</nowiki>

Revision as of 19:33, 27 March 2005

Synopsis

Port Number: 06h

Function: Flash/RAM Memory Paging (Bank A)

This port controls what page is swapped into Memory Bank A (see comments).

Read Values

  • The current port mapped to Memory Bank A (see comments).
    • 83+ Basic: If a RAM page is swapped in, the port reads the RAM page number with bit 6 set. If a ROM page is swapped in, the port reads the ROM page number with bit 6 reset.
    • 83+ Silver, any 84+: If a RAM page is swapped in, the port reads the RAM page number with bit 7 set. If a ROM page is swapped in, the port reads the ROM page number with bit 7 reset.

Write Values

  • The page number to swap into Memory Bank A (see comments).
    • 83+ Basic: If bit 6 is set, bit 0 will choose between the two RAM pages (40h or 41h). If bit 6 is 0, bits 0~4 select a page from ROM (00h through 1Fh).
    • 83+ SE, 84+ (any): If bit 7 is set, bits 0~2 will choose any of the 8 RAM pages (80h through 87h). If bit 7 is 0, bits 0~5 on the 84+ Basic, or bits 0~6 on either SE will select a page from ROM (00h through 3Fh or 7Fh).

Comments

In normal circumstances this controls the page at address 4000h. The behavior of this port changes in different memory map modes. See Port 04h for details about memory map modes.

Example

push af
in a,(6)
push af
ld a,1
out (6),a
; do stuff that needs page 1 swapped in
pop af
out (6),a
pop af