Shop OBEX P1 Docs P2 Docs Learn Events
P1 EEPROM Explorer (updated 28 FEB 2026) — Parallax Forums

P1 EEPROM Explorer (updated 28 FEB 2026)

JonnyMacJonnyMac Posts: 9,698
edited 2026-02-28 19:17 in PASM/Spin (P1)

I've participated in a couple of forum threads having to do with the P1 EEPROM, and my current work project uses the upper EE for data. I often knock together little utilities for myself, but none for the EE that I'd release. Given the complexity of my work project and the needs of the community, I made this little explorer.

In it's current state is will let you examine the EE, and there's a menu for writing $00 or $FF to the upper or lower EE. I added the ability to jump to an arbitrary address, and to get the byte, word, and long values from an address (word and longs have boundary limits).

Compatibility

  1. Propeller Tool
    • with PST (ok)
  2. Spin Tools
    • with PST (ok)
    • issue with internal terminal (Marco confirmed)
    • with internal terminal (Spin Tools v0.53.1+) (ok)
  3. FlexProp (7.6.1)
    • compiled to PASM / FlexProp terminal (ok)
    • compiled to bytecodes / FlexProp terminal (error with formatted #s -- will check with Eric) (Edit: Ada confirmed)

Updated to 0.5.0

  • version # displayed
  • clock mode string added
  • L or H in front of block address indicates memory section
  • updated input menu for future flexibility
  • add help (?) display

Updated to 0.6.0

  • general program improvements
  • values can be entered as decimal (optional leading -), binary (leading %), or hex (leading $)
  • added [W]rite feature to modify EEPROM (use with caution)

Updated to 0.6.1

  • fixed a typo that threw an error in Propeller Tool, but not in Spin Tools IDE

Comments

  • RaymanRayman Posts: 16,081

    Interesting... What are PBASE, VBASE, DBASE?

  • JonnyMacJonnyMac Posts: 9,698
    edited 2026-02-27 15:52

    PBASE is the start of program code
    VBASE is the start of variables
    DBASE is the start of the stack

    I found this comment block in a program I'm updating:

    '  Initialziation bytes (first 16 bytes of program image)
    '
    '    0..3       (Long) Clock frequency
    '    4          (Byte) Clock mode
    '  * 5          (Byte) Checksum
    '    6..7       (Word) Start of code
    '  * 8..9       (Word) Start of variables
    '  * 10..11     (Word) Start of stack
    '    12..13     (Word) Current program pointer
    '    14..15     (Word) Current stack pointer
    
  • JonnyMacJonnyMac Posts: 9,698

    Added [W]rite feature to modify EEPROM locations. This feature follows P1 address alignment rules: You can write a byte anywhere. Words can be written do addresses evenly divisible by 2. Longs can be written to addresses evenly divisible by 4. Use with caution!

Sign In or Register to comment.