mincount var byte
startflag var byte
endflag var byte
kount var byte
serData var byte
baud var word
length var byte
pnt var byte
mesg var byte(16)
baud = 27889
mincount = 3
startflag = 1
endflag = 3
idle:
kount = 0
rcv:
serin 7, baud, 500, idle, [serData]
if serData <> startflag then idle
kount = kount + 1
if kount >= mincount then packet_wait
goto rcv
packet_wait:
pnt = 0
serin 7, baud, oops, 500, idle, [serData]
if serData = startflag then packet_wait
get_data:
mesg(pnt) = serData
pnt = pnt + 1
serin 7, baud, idle, 500, idle, [serData]
if serData = endflag then to_comp
goto get_data
to_comp:
length = pnt - 1
serout 8, baud, [startflag]
for pnt = 0 to length
serout 8, baud, [mesg(pnt)]
next
serout 8, baud, [endflag]
goto idle