do
wait_for_keypress:
readadc fromKP, junk
if junk < 5 then wait_for_keypress
pause 60 ' debounce keypress
readadc10 fromKP, key ' get ADC value
wait_for_release:
readadc fromKP, junk
if junk > 5 then wait_for_release
select case key ' decode keypress
case < 384 : char = 49 ' 1
case < 401 : char = 50 ' 2
case < 435 : char = 51 ' 3
case < 474 : char = 52 ' 4
case < 499 : char = 53 ' 5
case < 558 : char = 54 ' 6
case < 628 : char = 55 ' 7
case < 696 : char = 56 ' 8
case < 767 : char = 57 ' 9
case < 884 : char = 42 ' *
case < 976 : char = 48 ' 0
else : char = 35 ' #
end select
high toMP ' data available
pulsin fromMP,1, junk ' junk is junk,
low toMP ' we're just waiting
pause 2 ' allow time for MP
' to set up serin
serout toMP,N2400_8,(char) ' send char to MP
loop