STORE

BS2p icon BS2pe icon BS2px icon

STORE Examples

 

 

 

Syntax: STORE ProgramSlot

Function

Designate a program slot for the READ and WRITE instructions to operate upon.

Note: On the BS2pe, slots 8 - 15 are only available for data (READ and WRITE); they cannot be used to run programs.

Quick Facts

  BS2p and BS2px BS2pe
Program Slot Range 0 - 7 0 - 15
Related Commands READ, WRITE

Explanation

STORE tells the BS2p, BS2pe, or BS2px which program slot to use when a READ or WRITE instruction is executed. The STORE command only affects the READ and WRITE instructions.

The STORE command allows a program to access all EEPROM locations that exist on the BS2p, BS2pe, and BS2px, regardless of which program is running or which program slot is active. The READ and WRITE commands can only access locations 0 to 2047 within a single program slot. The STORE command switches the program slot that the READ and WRITE commands operate on. This short subroutine demonstrates the use of STORE:

Move_Block:
  FOR idx = 0 TO (blockLen - 1)         ' move blockLen bytes
    STORE srcSlot                       ' point to source slot
    READ srcAddr + idx, eeByte          ' read source byte
    STORE tgtSlot                       ' point to target slot
    WRITE tgtAddr + idx, eeByte         ' write byte to target slot 
  NEXT
  RETURN

The default program slot that the READ and WRITE instructions operate on is the currently running program. The STORE command can be used to temporarily change this, to any program slot. The change will remain in effect until another STORE command is issued, or until another program slot is executed. The current slot used by READ and WRITE (as set by STORE) can be read from byte 127 of the Scratchpad RAM. Example:

  #SELECT $STAMP
    #CASE BS2
      pgmSlot = 0                       ' everything in slot 0
      rwSlot = 0
    #CASE BS2E, BS2SX
      GET 63, pgmSlot                   ' read current slot
      rwSlot = pgmSlot                  ' READ/WRITE slot is same
    #CASE BS2P, BS2PE, BS2PX
      GET 127, pgmSlot                  ' get slot control byte
      rwSlot = rwSlot.HIGHNIB           ' READ/WRITE in high nibble
      pgmSlot = pgmSlot.LOWNIB          ' pgm slot in low nibble
  #ENDSELECT

Go to Welcome page

BASIC Stamp Help Version 2.5.4

Copyright © Parallax Inc.

8/8/2012