You need to learn about the 'timer()' function
and the 'and' operator so basically:
if upkey()=1 then upkeypress=timer()+1000
if timer()>upkeypress then etc
and this kind of thing too:
if upkey()=1 AND if downkey()=1 then etc...
Variations on these commands can do what you want
[edit]
One such variation would be:
sync on
do
cls
if upkey()=1
if uk=0 then upkeypress=timer():uk=1
if timer()>upkeypress+1000 then print "1000"
if timer()>upkeypress+2000 then print "2000"
if timer()>upkeypress+3000 then print "3000"
endif
if upkey()=0 then uk=0
sync
loop
ZX Spectrum 48k Issue 3, Radio shack Tape drive, Rank arena 12" T.V. set.