Data Reader Source Code:

' {$STAMP BS2p}
' {$PBASIC 2.5}
'This program is used to retrieve the recorded values from all program slots and DEBUGs them to a
'monitor. The raw data is then copied/pasted into a spreadsheet for conversions and graphing.

STORE 6         'must manually change to read each slot: Flight1 = slots 1 thru 3, flight2 = slots 4 thru 6

'Pins/Constants
MEMORYSIZE      CON     2020 
                                               'must be made divisible by 20 + extra (20B per block + 6b Header/Footer)

'Variables
address VAR Word
dayMonth VAR Word
year VAR Byte
hrs VAR Byte
mins VAR Byte
secs VAR Byte
latLeft VAR Word
latRight VAR Word
longLeft VAR Word
longRight VAR Word
speed1 VAR Word
speed2 VAR Nib
course1 VAR Word
course2 VAR Nib
numSats VAR Nib
alt1 VAR Word

'Initialize
dayMonth = 0
year = 0
hrs = 0
mins = 0
secs = 0
latLeft = 0
latRight = 0
longLeft = 0
longRight = 0
speed1 = 0
speed2 = 0
course1 = 0
course2 = 0
numSats = 0
alt1 = 0

main:
address = 0

READ address, dayMonth.HIGHBYTE
address = address + 1
READ address, dayMonth.LOWBYTE
address = address + 1
DEBUG "dayMonth: ", DEC dayMonth, CR

READ address, year
address = address + 1
DEBUG "year: ", DEC year, CR
'end 3 byte header for slotX dataBlock

DO

READ address, hrs
address = address + 1

READ address, mins
address = address + 1

READ address, secs
address = address + 1
DEBUG "HHMMSS: ", DEC hrs, ":", DEC mins, ":", DEC secs, CR

READ address, latLeft.HIGHBYTE
address = address + 1
READ address, latLeft.LOWBYTE
address = address + 1

READ address, latRight.HIGHBYTE
address = address + 1
READ address, latRight.LOWBYTE
address = address + 1
DEBUG "latitude: ", DEC latLeft, ".", DEC latRight, " N", CR

READ address, longLeft.HIGHBYTE
address = address + 1
READ address, longLeft.LOWBYTE
address = address + 1

READ address, longRight.HIGHBYTE
address = address + 1
READ address, longRight.LOWBYTE
address = address + 1
DEBUG "longitude: ", DEC longLeft, ".", DEC longRight, " W", CR

READ address, speed1.HIGHBYTE
address = address + 1
READ address, speed1.LOWBYTE
address = address + 1

READ address, speed2
address = address + 1
DEBUG "knots: ", DEC speed1, ".", DEC speed2, CR

READ address, course1.HIGHBYTE
address = address + 1
READ address, course1.LOWBYTE
address = address + 1

READ address, course2
address = address + 1
DEBUG "heading in degrees: ", DEC course1, ".", DEC course2, CR

READ address, numSats
address = address + 1
DEBUG "number of satellites: ", DEC numSats, CR

READ address, alt1.HIGHBYTE
address = address + 1

READ address, alt1.LOWBYTE
address = address + 1
DEBUG "altitude: ", DEC alt1, CR

LOOP WHILE address < MEMORYSIZE

READ address, dayMonth.HIGHBYTE                                       'start 3 byte footer for slotX dataBlock
address = address + 1
READ address, dayMonth.LOWBYTE
address = address + 1
DEBUG "dayMonthFooter: ", DEC dayMonth, CR

READ address, year
address = address + 1
DEBUG "yearFooter: ", DEC year, CR
END  
End Of Sourcecode