'Copyright 2002, Michael G Simpson 'Interface to Radio Shack 270-215 Keypad func main() dim key RSkeypadinit() loop: key=RSkeypadread() if key <> 0 then print key endif goto loop endfunc '-------------------------------------------------- 'Sets up ports for key pad. 'Hardcoded to port 0-7 because of pullups func RSkeypadinit() 'Set up ports output 2,4,5 input 3,1,0,6,7 'Now build custom port CUSTOMBIT0 = 3 CUSTOMBIT1 = 1 CUSTOMBIT2 = 0 CUSTOMBIT3 = 6 CUSTOMBIT4 = 7 'Set weak Pullups on ports 0-7 pullupon endfunc '------------------------------------------------- 'Tests the keypad 'Returns 0 if no key press 'Returns key 1-15 depending on key func RSkeypadread() dim pdat,res 'First matrix line high 2,4,5 low 5 customportget pdat pdat = pdat & 31 ^ 31 lookdown res,pdat,1,2,4,8,16 if res > 0 then exit res endif '2nd matrix line high 2,4,5 low 4 customportget pdat pdat = pdat & 31 ^ 31 lookdown res,pdat,1,2,4,8,16 if res > 0 then exit res + 5 endif '3rd matrix line high 2,4,5 low 2 customportget pdat pdat = pdat & 31 ^ 31 lookdown res,pdat,1,2,4,8,16 if res > 0 then exit res + 10 endif exit 0 endfunc