so, that old code used 3110 bytes and took about 5 seconds to run through.

im still working on it, but i changed to using nmea data, which is something i have never been able to get working before, and its now down to 1204 bytes and cycles in 1 second!!! i think the problem was that the parallax module takes the nmea data, then rips it all apart, and only sends out what is requested. so i think going straight from the nmea to the PIC is probably a better way to do it anyways!

so heres the new code:

DEFINE OSC 20

'VARIABLES

lcd VAR PORTf.7
gpsin VAR PORTb.3
baudLCD CON 32 'baud rate for lcd
baudgps con 188 'baud rate for gps 32


valid VAR byte
hours var byte(2)
minutes var byte(2)
seconds var byte(2)
degreelat var byte(2)
minlat var byte(2)
seclat var byte(4)
degreelong var byte(3)
minlong var byte(2)
seclong var byte(4)
speed var byte(3)
decspeed var byte


course var byte(3)
deccourse var byte
decdeglat var byte
decdeglong var byte


degreelong = 0
minlong = 0
seclong = 0
degreelat = 0
minlat = 0
seclat = 0
speed = 0


'STARTUP PROGRAM

startup:

SerOut2 lcd, baudlcd,[254,"X"] 'clear screen
Pause 200
SerOut2 lcd, baudlcd,[254,"X"] 'clear screen again

'MAIN PROGRAM

start:

serin2 gpsin, baudgps,[WAIT ("$GPRMC"), SKIP 1, STR hours\2,str minutes\2, str seconds\2, SKIP 1, valid, skip 1, str degreelat\2,str minlat\2, SKIP 1, str seclat\4, SKIP 3, str degreelong\3, str minlong\2, SKIP 1, str seclong\4, SKIP 3, str speed\3, SKIP 1, decspeed, SKIP 1, str course\3, SKIP 1, deccourse]

SerOut2 lcd, baudlcd,[254,"G",1,1, " TIME=", STR hours\2, ":", str minutes\2, ":", str seconds\2, " ", valid, 254,"G",1,2, str degreelat\2, str minlat\2,".", str seclat\4," ", str degreelong\3, str minlong\2,".", str seclong\4, 254,"G",1,3, str speed\3,".", decspeed," ", str course\3,".", deccourse]


GoTo start
end


I will try changing to DEBUG sometime and see what happens, and im going to keep playing with this, but if anyone knows a better or more efficient way of doing this, let me know..