How do I use the extra memory in the BS2sx?
I was using the BS2, which has 2k EEPROM program size ~500 lines. My program hit the limit and would no longer fit in memory. I got the error "Data occupies same location as program". I'm guessing that it's because I have about 650 lines of code so far.
So I remove hte BS2 and put on my BS2sx which says it has 8x2k EEPROM program size ~4000 lines. I get the same error, and the memory map looks identical as it did with the BS2. I thought this chip was supposed to hold 8 times the amount of code?
I don't get it. Can anyone help? Thanks.
So I remove hte BS2 and put on my BS2sx which says it has 8x2k EEPROM program size ~4000 lines. I get the same error, and the memory map looks identical as it did with the BS2. I thought this chip was supposed to hold 8 times the amount of code?
I don't get it. Can anyone help? Thanks.

Comments
' {$STAMP BS2sx} ' {$PBASIC 2.5} LEDs VAR OUTL ' LEDs on P0 - P7 LEDsDirs VAR DIRL ' DIRs control for LEDs SongSpeed CON 428 ' Calibration value DeBounceTime CON 20 WholeBeatTime CON SongSpeed / 2 WholeBeatTimeNoNote CON WholeBeatTime + DeBounceTime BtnBlank DATA %00011111 BtnG DATA %10001111 BtnR DATA %10010111 BtnY DATA %10011011 BtnB DATA %10011101 BtnO DATA %10011110 ' -----[noparse][[/noparse] Testing / Setup Defines ]----------------------------------------- #DEFINE Calibrate = 0 Reset: LEDs = %00011111 ' Start with all buttons depressed LEDsDirs = %11111111 ' Make LEDs outputs Main: #IF Calibrate #THEN DO READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnG ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnR ), LEDs PAUSE WholeBeatTime LOOP #ENDIF GOSUB Sequence1 END Sequence1: READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnG ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnB ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnR ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnG ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnO ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnR ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnB ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnR ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnG ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnB ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnR ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnG ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnO ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnR ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnB ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnR ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnR ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnB ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnR ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnG ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnO ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnR ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnB ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnR ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnR ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnB ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnR ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnG ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnO ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnR ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnB ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnR ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnY ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnB ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnR ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnG ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnO ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnR ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnB ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnR ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnY ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnB ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnR ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnG ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnO ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnR ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnB ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnR ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnG ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnB ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnR ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnG ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnO ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnR ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnB ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnR ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnG ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnB ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnR ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnG ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnO ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnR ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnB ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnR ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnG ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnB ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnR ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnG ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnO ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnR ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnB ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnR ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnG ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnB ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnR ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnG ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnO ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnR ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnB ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnR ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnR ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnB ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnR ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnG ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnO ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnR ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnB ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnR ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnR ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnB ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnR ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnG ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnO ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnR ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnB ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnR ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnY ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnB ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnR ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnG ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnO ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE DeBounceTime READ( BtnR ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE 20 READ( BtnB ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE 20 READ( BtnR ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE 20 READ( BtnY ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE 20 READ( BtnB ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE 20 READ( BtnR ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE 20 READ( BtnG ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE 20 READ( BtnO ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE 20 READ( BtnR ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE 20 READ( BtnB ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE 20 READ( BtnR ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE 20 READ( BtnG ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE 20 READ( BtnB ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE 20 READ( BtnR ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE 20 READ( BtnG ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE 20 READ( BtnO ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE 20 READ( BtnR ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE 20 READ( BtnB ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE 20 READ( BtnR ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE 20 READ( BtnG ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE 20 READ( BtnB ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE 20 READ( BtnR ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE 20 READ( BtnG ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE 20 READ( BtnO ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE 20 READ( BtnR ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE 20 READ( BtnB ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE 20 READ( BtnR ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE 20 READ( BtnG ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE 20 READ( BtnB ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE 20 READ( BtnR ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE 20 READ( BtnG ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE 20 READ( BtnO ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE 20 READ( BtnR ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE 20 READ( BtnB ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE 20 READ( BtnR ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE 20 READ( BtnG ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE 20 READ( BtnB ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE 20 READ( BtnR ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE 20 READ( BtnG ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE 20 READ( BtnO ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE 20 READ( BtnR ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE 20 READ( BtnB ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE 20 READ( BtnR ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE 20 READ( BtnR ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE 20 READ( BtnB ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE 20 READ( BtnR ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE 20 READ( BtnG ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE 20 READ( BtnO ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE 20 READ( BtnR ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE 20 READ( BtnB ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE 20 READ( BtnR ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE 20 READ( BtnR ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE 20 READ( BtnB ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE 20 READ( BtnR ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE 20 READ( BtnG ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE 20 READ( BtnO ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE 20 READ( BtnR ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE 20 READ( BtnB ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE 20 READ( BtnR ), LEDs PAUSE WholeBeatTime READ( BtnBlank ), LEDs PAUSE 20 READ( BtnY ), LEDs PAUSE WholeBeatTime DEBUG "END OF PROGRAM!", CR DO PAUSE 10000 LOOPBtnBlank CON %00011111 BtnG CON %10001111 BtnR CON %10010111 BtnY CON %10011011 BtnB CON %10011101 BtnO CON %10011110 table DATA BtnG, BtnR, BtnY, BtnB, BtnG, ... DATA ' ... more and still more... endtbl DATA 0 ' To mark the end sequence: i = table do read i,temp i = i + 1 LEDs = temp PAUSE WholeBeatTime LEDs = BtnBlank PAUSE DeBounceTime loop until i = endtblFor a discussion of multi-slot programming, look at the PBasic manual in the section on the RUN statement and this Nuts and Volts column: www.parallax.com/dl/docs/cols/nv/vol3/col/nv87.pdf.
This does in a single READ and a subroutine call what you did in 4 lines of code before.
I am not always waiting 'WholeBeatTime' after an entry, sometimes I want to wait (WholeBeatTime / 2), or (WholeBeatTime * 2)
This creates 2400 table entries for 1200 instructions, so getting even more out of the memory would be necessary.
Here is a modified version of the program Mike posted:
BtnBlank CON %00011111 BtnG CON %10001111 BtnR CON %10010111 BtnY CON %10011011 BtnB CON %10011101 BtnO CON %10011110 table DATA action0, action1, action2, action3, action4, ... DATA ' ... more and still more... endtbl DATA 0 ' To mark the end sequence: i = table do read i,temp i = i + 1 lookup temp.nib0, [noparse][[/noparse]btnBlank,btnG,btnR,btnY,btnB,BtnO], LEDs ' possible patterns lookup temp.nib1, [noparse][[/noparse]wbt/4,wbt/2,wbt,wbt*2,wbt*4], beatTime ' possible times LEDs = temp PAUSE beatTime LEDs = BtnBlank PAUSE DeBounceTime loop until i = endtbl▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Tracy Allen
www.emesystems.com