'========================================================== ' ' PicStic4 PicBASIC Pro Demo to save/retrieve 24 80 character strings ' into the EEPROM of PicStic4. Fixed place strings ' '========================================================== ' Include "MODEDEFS.BAS" B0 var byte 'SERIAL INPUT CHARACTER VARIABLE B1 var byte 'EEPROM DATA VARIABLE READ FROM THEN EEPROM B2 var W1.byte0 '[LSB W1] LOOP COUNTER [WORD POINTER] B3 var W1.byte1 '[MSB W1] LOOP COUNTER [WORD POINTER] B4 var W2.byte0 '[LSB W2] START ADDRESS OF THE EEPROM BYTE [WORD POINTER] B5 var W2.byte1 '[MSB W2] START ADDRESS OF THE EEPROM BYTE [WORD POINTER] B6 var W3.byte0 '[LSB W3] END ADDRESS Of THE EEPROM BYTE [WORD POINTER] B7 var W3.byte1 '[MSB W3]END ADDRESS OF THE EEPROM BYTE [WORD POINTER] B8 var W4.byte0 '[LSB W4]WORD ADDRESS LOCATION OF THE BYTE [WORD POINTER] B9 var W4.byte1 '[MSB W4]WORD ADDRESS LOCATION OF THE BYTE [WORD POINTER] B19 var byte 'COMMAND [FOR PASS] B20 var byte 'LSB OF THE PARAMETER [FOR PASS] B21 var byte 'MSB OF THE PARAMETER [FOR PASS] W1 var word W2 var word W3 var word W4 var word W10 var word SYMBOL EE86 = 1983 '2048 - 64 - 1 = 1983 BYTES START: SEROUT 7,N9600,["1-Write EEPROM",13,10] SEROUT 7,N9600,["2-Read EEPROM",13,10] SERIN 6,N9600,B0 if B0=49 then EWR if B0<>50 then START ERD: SEROUT 7,N9600,["Print String #? [0-23]"] SERIN 6,N9600,#B0 SEROUT 7,N9600,[#B0,13,10] W2=B0*80 : W3=W2+79 FOR W1=W2 TO W3 ERD1: if W1>EE86 then ERD4 GOSUB RADRS SEROUT 7,N9600,[B1] if B1=13 then ERD3 ERD2: NEXT W1 GOTO START ERD3: SEROUT 7,N9600,[10] : GOTO START ERD4: SEROUT 7,N9600,[13,10,"END of EEPROM",13,10] : GOTO START EWR: SEROUT 7,N9600,["Change String #? [0-23["] SERIN 6,N9600,#B0 W2=B0*80 : W3=W2+79 SEROUT 7,N9600,["Enter characters",13,10] SEROUT 7,N9600,["CR to end string",13,10] FOR W1=W2 TO W3 EWR1: if W1>EE86 then ERD4 SERIN 6,N9600,B0 EWR2: SEROUT 7,N9600,[B0] GOSUB WADRS if B0=13 then START next W1 goto START SADRS: B19=30 : W10=W1/2 : CALL PASS : GOSUB ERR : RETURN RADRS: GOSUB SADRS B19=32 : B20=0 : B21=0 : REM READ EEPROM ADDRESS call PASS gosub ERR RADRS1: W4=W1//2 if W4=1 then RADRS3 RADRS2: B1=B20 : RETURN RADRS3: B1=B21 : RETURN WADRS: GOSUB RADRS W4=W10 GOSUB SADRS W10=W4 W4=W1//2 if W4=1 then WADRS2 WADRS1: B20=B0 : GOTO WADRS3 WADRS2: B21=B0 WADRS3: B19=31 : REM WRITE EEPROM ADDRESS call PASS gosub ERR WADRS4: RETURN ERR: if B19<>0 or B20<>0 or B21<>0 then ERR1 SEROUT 7,N9600,["Comm Error-",#B19,13,10] ERR1: return