GETATKBDRAW()
Esta função, ao contrario de GETATKBD(), retorna o "raw scancode" do teclado. Ou seja, nao há tabela de translação - se voce aperta a tecla "A", voce vai receber tres bytes (1C F0 1C) como resposta.
Observe que, sabe-se lá porque, necessita-se da tabela de translação igualzinho na função GETATKBD(), porem a mesma pode estar vazia que nao faz a minima diferença. Estas foram as palavras do Mark Alberts: "porque a mesma rotina é utilizada, voce precisa ter uma tabela, mas a mesma pode estar vazia. Entao basta definir o rotulo [da tabela], ele nao é utilizado no modo "raw". Em "raw mode", nao há conversao do scancode, entao voce pega o scancode direto."
Forma de uso:
var=GETATKBDRAW()
Onde var pode ser BYTE ou STRING. Se nenhuma tecla for pressionada, o valor 0 será retornado. Lembre-se que enquanto a função GETATKBD() aguarda uma tecla ser pressionada, a função GETATKBDRAW() nao aguarda.
'Programa teste pra GETATKBDRAW()
'Dica publicada em 29/01/2006 por Alexandre Souza
config keyboard = pind.2, DATA = pinD.4, keydata = tabela
dim scancode as string * 1
mainloop:
scancode=getatkbdraw()
if scancode="" then goto mainloop
print scancode ; " " ;
goto mainloop
end
tabela:
data 0