!!!Read a key-event from the keyboard

(Basic listing from Thomas E. Rowley - "Atari Basic spielend lernen")

!! How to use

The Forth listing show two differnt way to read a keypress. The first one is the same technique used in the BASIC Program, the second is portable across many F83 Standard and ANSI Standard Forth versions.

Basic Version

{{{
10 REM READ A KEYPRESS
20 PRINT "PLEASE PRESS A KEY"
30 POKE 764,255
35 IF PEEK(764)=255 THEN 35
36 KEY=PEEK(764)
40 CLOSE #1:OPEN #1,4,0,"K:":GET #1,A
50 PRINT "THE KEYCODE OF"; CHR$(A); " IS "; KEY
60 GOTO 30
}}}

volksForth

{{{
: READKEY ( Read Keyboard direct from Shadow register )
  ." press a key" CR
  255 764 C!
  BEGIN
        764 C@
        255 < IF
           764 C@
           ." the keycode of " DUP EMIT ."  is " . CR
           255 764 C!
        THEN
  REPEAT ;
}}}

alternative version

{{{

: READKEY ( Read Keycode with Forth KEY Words )
  ." press a key" CR
  BEGIN
        KEY? IF
           KEY
           ." the keycode of "  DUP EMIT ." is "  . CR
        THEN
  REPEAT ; 
}}}