as far as i remember, readkey removes the key pressed from the buffer. if you press a special key, it will put 2 chars in the buffer: a #0 char and another char. the sequencial call to readkey will catch them. but i think this will not allow to have multiple keypress, as the buffer is very short, only 16 chars (at least in dos/windows i think). unless you manage to extend that buffer.