pressed, the bit (bit 4 in this case) changes to a 0. To read the
joystick from BASIC, the following subroutine should be used:
10 FORK=0TO10:REM SET UP DIRECTION STRING
20 READDR$(K):NEXT
30 DATA"","N","S","","W","NW"
40 DATA"SW","","E","NE","SE"
50 PRINT"GOING...";
60 GOSUB100:REM READ THE JOYSTICK
65 IFDR$(JV)=""THEN80:REM CHECK IF A DIRECTION WAS CHOSEN
70 PRINTDR$(JV);" ";:REM OUTPUT WHICH DIRECTION
80 IFFR=16THEN60:REM CHECK IF FIRE BUTTON WAS PUSHED
90 PRINT"-----F-----I-----R-----E-----!!!":GOTO60
100 JV=PEEK(56320):REM GET JOYSTICK VALUE
110 FR=JVAND16:REM FORM FIRE BUTTON STATUS
120 JV=15-(JVAND15):REM FORM DIRECTION VALUE
130 RETURN
NOTE: For the second joystick, set JV = PEEK (56321). |
The values for JV correspond to these directions:
JV EQUAL TO | DIRECTION |
0 | NONE |
1 | UP |
2 | DOWN |
3 | - |
4 | LEFT |
5 | UP & LEFT |
6 | DOWN & LEFT |
7 | - |
8 | RIGHT |
9 | UP & RIGHT |
10 | DOWN & RIGHT |