5 DIM IC(255),AC(255):SC=PEEK(88)+256*PEEK(89):SHIFT=64:VERS=0›10 GOSUB 500:REM ÔÈÉÓ ×ÉÌÌ ÃÒÅÁÔÅ ÁÒÒÁÙÓ ÆÒÏÍ ÄÁÔÁ ÓÔÁÔÅÍÅÎÔÓ›15 REM GOSUB 600:REM ÕÓÅ ÔÈÉÓ ÔÏ ÃÒÅÁÔÅ ¢ÄºËÅÙÃÏÄÅ®ÄÁÔ¢›20 REM GOSUB 700:REM ÕÓÅ ÔÈÉÓ ÔÏ ÃÒÅÁÔÅ ÁÒÒÁÙÓ ÆÒÏÍ ÄÉÓËÆÉÌÅ ¢ÄºËÅÙÃÏÄÅ®ÄÁÔ¢›100 POKE 694,0:ON PEEK(753)<>3 GOTO 100:K=PEEK(764)›105 N=K:IF N>63 THEN N=N-64:IF N>63 THEN N=N-64:IF N>63 THEN N=N-64›110 IF N=60 THEN SHIFT=4+K-64›115 IF N=39 THEN VERS=128*(VERS<>128)›200 PRINT N,CHR$(AC(N+SHIFT)+VERS)›205 POKE SC+959,IC(N+SHIFT)+VERS›210 GOTO 100›500 RESTORE 1000:FOR I=0 TO 191:READ N:IC(I)=N:NEXT I:FOR I=192 TO 255:IC(I)=0:NEXT I›510 FOR I=0 TO 255:N=IC(I)›520 IF N<64 THEN AC(I)=N+32›530 IF N>63 AND N<96 THEN AC(I)=N-64›540 IF N>95 THEN AC(I)=N›550 NEXT I›560 RETURN ›600 OPEN #4,8,0,"D:KEYCODE.DAT"›605 RESTORE 1000:FOR I=0 TO 191:READ N:PUT #4,N:NEXT I›610 FOR I=192 TO 255:PUT #4,0:NEXT I›615 CLOSE #4:RETURN ›700 OPEN #4,4,0,"D:KEYCODE.DAT"›705 FOR I=0 TO 255:GET #4,N:IC(I)=N›710 IF N<64 THEN AC(I)=N+32›715 IF N>63 AND N<96 THEN AC(I)=N-64›720 IF N>95 THEN AC(I)=N›725 NEXT I:RETURN ›1000 DATA 108,106,27,0,0,107,11,10,111,0,112,117,0,105,13,29›1016 DATA 118,0,99,0,0,98,120,122,20,0,19,22,91,21,18,17›1032 DATA 12,0,14,110,0,109,15,0,114,0,101,121,127,116,119,113›1048 DATA 25,0,16,23,126,24,28,30,102,104,100,0,0,103,115,97›1064 DATA 44,42,26,0,0,43,60,62,47,0,48,53,0,41,63,124›1080 DATA 54,0,35,0,0,34,56,58,4,0,3,6,0,5,2,1›1096 DATA 59,0,61,46,0,45,31,0,50,0,37,57,0,52,55,49›1112 DATA 8,0,9,7,0,32,125,0,38,40,36,0,0,39,51,33›1128 DATA 76,74,123,0,0,75,94,95,79,0,80,85,0,73,92,93›1144 DATA 86,0,67,0,0,66,88,90,0,0,0,0,0,0,0,0›1160 DATA 64,0,96,78,0,77,0,0,82,0,69,89,0,84,87,81›1176 DATA 0,0,0,0,0,0,0,0,70,72,68,0,0,71,83,65›