10 REM > KeyScanWin
   20 REM Display native Windows keyscan code (negative INKEYs)
   30 :
   40 VDU 10,8:IF POS<40:MODE 128 ELSE VDU 13
   50 *ESC OFF
   60 ON ERROR PRINT STRING$(15+B%DIV16,CHR$10):REPORT:PROCend:END
   70 PRINT "Press Shift-Escape to finish"'STRING$(16,CHR$10);
   80 VDU 23,1;0;0;0;0
   90 REPEAT
  100   PRINT STRING$(16,CHR$11);
  110   FOR A%=0 TO 255 STEP 16
  120     FOR B%=A% TO A%+15
  130       SYS "GetAsyncKeyState",B% TO K%
  140       IF K%:PRINT " "FNh0(B%,2)" "ELSE PRINT SPC4;
  150       IF INKEY-1:IF INKEY-113:PRINT STRING$(15-A%DIV16,CHR$10):PROCend:QUIT
  160     NEXT:PRINT
  170 NEXT:UNTIL FALSE
  180 DEFPROCend
  190 REPEAT UNTIL INKEY(0)=-1
  200 VDU23,1,1;0;0;0;
  210 *ESC ON
  220 *FX15
  230 ENDPROC
  240 DEFFNh0(A%,N%)=RIGHT$("0000000"+STR$~A%,N%)