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