1 GRAPHICS 0›5 PRINT :PRINT " KEYBOARD CONTROLLER DEMO"›10 DIM ROW(3),I$(13),BUTTON$(1)›30 GOSUB 6000›40 FOR CNT=1 TO 4›60 POSITION 2,CNT*2+5:PRINT "CONTROLLER # ";CNT; ": ";›70 NEXT CNT›80 FOR CNT=1 TO 4:GOSUB 7000:POSITION 19,CNT+CNT+5:PRINT BUTTON$;:NEXT CNT›120 GOTO 80›6000 REM ** SET UP FOR CONTROLLERS **›6010 PORTA=54016:PORTB=54017:PACTL=54018:PBCTL=54019›6020 POKE PACTL,48:POKE PORTA,255:POKE PACTL,52:POKE PORTA,221›6025 POKE PBCTL,48:POKE PORTB,255:POKE PBCTL,52:POKE PORTB,221›6030 ROW(0)=238:ROW(1)=221:ROW(2)=187:ROW(3)=119›6040 I$=" 123456789*0#"›6050 RETURN›7000 REM ** RETURN BUTTON$ WITH CHARACTER FOR BUTTON WHICH HAS BEEN PRESSED ON CONTROLLER CNT (1-4). **›7001 REM ** NOTE: A 1 WILL BE RETURNED IF NO CONTROLLER IS CONNECTED. **›7002 REM ** A SPACE WILL BE RETURNED IF THE CONTROLLER IS CONNECTED BUT NO KEY HAS BEEN PRESSED. **›7003 PORT=PORTA: IF CNT>2 THEN PORT=PORTB›7005 P=1›7008 PAO=CNT+CNT-2›7010 FOR J=0 TO 3›7020 POKE PORT,ROW(J)›7030 FOR I=1 TO 10:NEXT I›7050 IF PADDLE(PAO+1)>10 THEN P=J+J+J+2:GOTO 7090›7060 IF PADDLE(PAO)>10 THEN P=J+J+J+3:GOTO 7090›7070 IF STRIG(CNT-1)=0 THEN P=J+J+J+4:GOTO 7090›7080 NEXT J›7090 BUTTON$=I$(P,P)›7095 RETURN›