Hmm
as you can see, there aren't a lot of variables.Code:ADR var word : dat var byte : EEunit var byte 'define I²C address, data & unit variables delay var byte 'define delay time variable T1 var byte : T2 var byte : T3 var byte 'define real time buffers T4 var byte : T5 var byte : T6 var byte ' A1 var byte : A2 var byte : A3 var byte 'define alarm time variables A4 var byte : AA var bit : AL var bit 'define alarm condition variable bits D1 var byte : D2 var byte : DB var byte 'define display digit buffers D3 var byte : D4 var byte ' D5 var byte : D6 var byte ' B0 var byte 'define GPS data bytes B2 var byte : B3 var byte ' B4 var byte : B5 var byte ' B6 var byte : B7 var byte ' DP var bit 'define decimal point status bit JS var bit 'define joystick status variable DC var byte 'define display comparison variable RC var byte 'define real time clock comparison variable mode var byte 'define mode variable byte colcnt var byte 'define colon delay counter variable byte sndbuff var byte 'define sound buffer value variable byte soundcalc var byte : snd var byte 'define sound calc variable byte L0 var byte : L1 var byte : L2 var byte 'define variables for Lat & Longitudinal coordinates L3 var byte : L4 var byte : L5 var byte ' L6 var byte : L7 var byte : L8 var byte ' L9 var byte : LA var byte : LB var byte ' LC var byte : LD var byte : LE var byte ' LF var byte : LG var byte : N1 var byte ' LNG var byte : LAT var byte ' last var DB.bit7 : first var DB.bit0 'define display buffer first & last bits for swapping msel var bit : ply var bit 'define mode display / play and pause status bits LTA var byte : LTD var byte 'define lookup table value & data bytes ' roll var byte : Rcnt var byte 'define display animation control variables roll1 var roll.bit0 : roll2 var roll.bit1 ' roll3 var roll.bit2 : roll4 var roll.bit3 ' roll5 var roll.bit4 : roll6 var roll.bit5 ' rollo var byte ' rollo1 var rollo.bit0 : rollo2 var rollo.bit1 ' rollo3 var rollo.bit2 : rollo4 var rollo.bit3 ' rollo5 var rollo.bit4 : rollo6 var rollo.bit5 ' rolls var byte ' rolls1 var rolls.bit0 : rolls2 var rolls.bit1 ' rolls3 var rolls.bit2 : rolls4 var rolls.bit3 ' rolls5 var rolls.bit4 : rolls6 var rolls.bit5 ' F1 var byte : F2 var byte : F3 var byte ' F4 var byte : F5 var byte : F6 var byte ' ' SM var bit 'define search match status bit
I think that the library variables are being added to total the 96 bytes
in the first bank of RAM and then the compiler is clapping out there.
If I add just a few more byte size variables and set them to any value
to make sure they are used, my program will no longer start
If I remember correctly from my 16F84 days, PBP uses some variables
to pass values from the user's PBP routines to it's own library routines.
with a bit of assembler hacking I have managed to claim some of these
"middle man" variables in the past.
Art.





Bookmarks