10
20
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%)