fixed URL's
[qbasicapps.git] / unsorted / lightpe2.bas
1 ' Svjatoslav Agejenko 2003.03\r
2 ' light pen test\r
3 \r
4 DECLARE SUB miniscan (x1%, y1%, xn%, yn%)\r
5 DECLARE SUB getxy (x%, y%)\r
6 DECLARE SUB scan (x%, y%)\r
7 DECLARE SUB start ()\r
8 DEFINT A-Z\r
9 DIM SHARED prt, prt2\r
10 DIM SHARED wai, wai2\r
11 DIM SHARED mins, minl\r
12 wai = 4000\r
13 wai2 = 5000\r
14 mins = 20\r
15 minl = 8\r
16 \r
17 DIM SHARED px(1 TO 500)\r
18 DIM SHARED py(1 TO 500)\r
19 DIM SHARED mitup\r
20 \r
21 mitup = 1\r
22 start\r
23 \r
24 x = 160\r
25 y = 100\r
26 px(1) = x\r
27 py(1) = y\r
28 \r
29 1\r
30 getxy x, y\r
31 REM CIRCLE (x, y), 30, 14\r
32 IF (px(mitup) <> x) OR py(mitup) <> y THEN mitup = mitup + 1\r
33 px(mitup) = x\r
34 py(mitup) = y\r
35 \r
36 FOR a = 1 TO mitup - 1\r
37 LINE (px(a), py(a))-(px(a + 1), py(a + 1)), 15\r
38 NEXT a\r
39 GOTO 1\r
40 \r
41 SUB getxy (x, y)\r
42 \r
43 miniscan x + (mins / 4), y + (mins / 4), xn, yn\r
44 IF xn <> -1 THEN x = xn\r
45 IF yn <> -1 THEN y = yn\r
46 \r
47 LOCATE 1, 1\r
48 PRINT SPACE$(40)\r
49 LOCATE 1, 1\r
50 PRINT x, y\r
51 END SUB\r
52 \r
53 SUB miniscan (x1, y1, xn, yn)\r
54 cd = INP(prt2)\r
55 \r
56 xn = -1\r
57 yn = -1\r
58 \r
59 LINE (x1 - mins, y1 - mins)-(x1 + mins, y1 + mins), 0, BF\r
60 \r
61 FOR x = x1 - mins TO x1 + mins\r
62 LINE (x, y1 - mins)-(x, y1 + mins), 15\r
63 LINE (x - minl, y1 - mins)-(x - minl, y1 + mins), 0\r
64 FOR a = 0 TO wai2\r
65 NEXT a\r
66 c = INP(prt2)\r
67 IF c <> cd THEN xn = x: GOTO 4\r
68 NEXT x\r
69 4\r
70 LINE (x1 - mins, y1 - mins)-(x1 + mins, y1 + mins), 0, BF\r
71 \r
72 FOR y = y1 - mins TO y1 + mins\r
73 LINE (x1 - mins, y)-(x1 + mins, y), 15\r
74 LINE (x1 - mins, y - minl)-(x1 + mins, y - minl), 0\r
75 FOR a = 0 TO wai2\r
76 NEXT a\r
77 c = INP(prt2)\r
78 IF c <> cd THEN yn = y: GOTO 5\r
79 NEXT y\r
80 5\r
81 LINE (x1 - mins, y1 - mins)-(x1 + mins, y1 + mins), 0, BF\r
82 IF xn < -1 THEN xn = -1\r
83 IF yn < -1 THEN yn = -1\r
84 \r
85 END SUB\r
86 \r
87 SUB start\r
88 CLS\r
89 SCREEN 13\r
90 \r
91 prt = &H378\r
92 prt2 = &H379\r
93 \r
94 OUT prt, 255\r
95 \r
96 END SUB\r
97 \r