39 lines
1.7 KiB
Plaintext
39 lines
1.7 KiB
Plaintext
100 GOSUB 400
|
|
110 P2 = PDL(2) : IF P2 <> O2 THEN O2 = P2 : VTAB 23 : HTAB 33 : PRINT P2; TAB(37);
|
|
120 B2 = FNB(2) : IF B2 <> N2 THEN N2 = B2 : VTAB 24 : HTAB 15 : PRINT P$(B2);
|
|
130 P3 = PDL(3) : IF P3 <> O3 THEN O3 = P3 : VTAB 23 : HTAB 37 : PRINT P3; : CALL -868
|
|
140 X = INT(P3 * RX) : Y = INT(P2 * RY(F))
|
|
150 O = (X1 = X2 AND Y1 = Y2) + 1
|
|
160 N = (X = X1 AND Y = Y1) + 1
|
|
170 IF X <> X2 OR Y <> Y2 THEN XDRAW N AT X, Y : XDRAW O AT X2, Y2 : X2 = X : Y2 = Y : O = N
|
|
200 P0 = PDL(0) : IF P0 <> O0 THEN O0 = P0 : VTAB 22 : HTAB 33 : PRINT P0; TAB(37);
|
|
210 B0 = FNB(0) : IF B0 <> N0 THEN N0 = B0 : VTAB 22 : HTAB 15 : PRINT P$(B0);
|
|
220 P1 = PDL(1) : IF P1 <> O1 THEN O1 = P1 : VTAB 22 : HTAB 37 : PRINT P1; : CALL -868
|
|
230 B1 = FNB(1) : IF B1 <> N1 THEN N1 = B1 : VTAB 23 : HTAB 15 : PRINT P$(B1);
|
|
240 X = INT(P0 * RX) : Y = INT(P1 * RY(F))
|
|
250 O = (X1 = X2 AND Y1 = Y2) + 1
|
|
260 N = (X = X2 AND Y = Y2) + 1
|
|
270 IF X <> X1 OR Y <> Y1 THEN XDRAW N AT X, Y : XDRAW O AT X1, Y1 : X1 = X : Y1 = Y
|
|
300 K = PEEK(-16384) : IF K < 128 THEN 110
|
|
310 POKE-16368,0
|
|
320 IF K = 198 OR K = 200 THEN F = PEEK(-16302) ^ 0 : GOTO 110HIDE
|
|
330 IF K = 155 OR K = 211 THEN F = PEEK(-16301) * 0 : GOTO 110SHOW
|
|
340 TEXT : END
|
|
400 HOME : HGR
|
|
410 DEF FN B(B) = PEEK(49249 + B) > 127
|
|
420 P$(0) = "NOT PRESSED" : P$(1) = "PRESSED "
|
|
430 VTAB 21 : PRINT "BUTTON:";
|
|
440 PRINT TAB(28); "JOYSTICK:"
|
|
450 PRINT " OPEN APPLE "P$(0);
|
|
460 PRINT TAB(29); "ONE"
|
|
470 PRINT " CLOSED APPLE "P$(0);
|
|
480 PRINT TAB(29); "TWO"
|
|
490 PRINT TAB(9); "SHIFT "P$(0);
|
|
500 RX = 35 / 32 : RY(0) = 5 / 8 : RY(1) = 3 / 4
|
|
510 DATA2,0,6,0,3,0,29,15,20,6,0
|
|
520 FOR I = 768 TO 778 : READ B
|
|
530 POKE I, B : NEXT : POKE 232, 0 : POKE 233, 3
|
|
550 ROT = 0 : SCALE = 7 : XDRAW 1 AT X1, Y1
|
|
560 O0 = -1 : O1 = O0 : O2 = O0 : O3 = O0
|
|
570 RETURN
|