From suggestions by @badvision: Added the POKE call to get all 24 lines, and the semicolons seem to have fixed the occasional line which somehow advanced the whole screen. Also added more comments and removed leading spaces
This commit is contained in:
parent
a44b9837f7
commit
cec20b3dfc
79
MATRIX
79
MATRIX
|
@ -1,35 +1,44 @@
|
||||||
1 REM THE MATRIX
|
1 REM THE MATRIX
|
||||||
2 REM BY NEIL KANDALGAONKAR <NEILK@NEILK.NET>
|
2 REM BY NEIL KANDALGAONKAR <neilk@neilk.net>
|
||||||
3 REM https://github.com/neilk/apple-ii-matrix/
|
3 REM https://github.com/neilk/apple-ii-matrix/
|
||||||
5 FOR I = 1 TO 30: PRINT " ": NEXT I
|
4 REM CLEAR SCREEN
|
||||||
10 DIM K(3,2)
|
5 FOR I = 1 TO 30: PRINT: NEXT I
|
||||||
11 H = 0
|
6 REM USE ALL 24 LINES
|
||||||
12 V = 1
|
7 POKE 35, 25
|
||||||
13 F = 2
|
9 REM SET UP THREE CURSORS
|
||||||
15 FOR C = 0 TO 3
|
10 DIM K(3,2)
|
||||||
16 GOSUB 50
|
11 REM CONSTANTS FOR ARRAY INDICES.
|
||||||
17 NEXT C
|
12 REM HORIZONTAL, VERTICAL, DRAW/ERASE
|
||||||
20 FOR C = 0 TO 3
|
13 H = 0: V = 1: F = 2
|
||||||
30 R = INT ( RND (1) * 20)
|
14 REM RESET ALL CURSORS
|
||||||
31 IF R = 1 THEN GOSUB 50
|
15 FOR C = 0 TO 3
|
||||||
32 IF R >< 1 THEN GOSUB 100
|
16 GOSUB 50
|
||||||
35 NEXT C
|
17 NEXT C
|
||||||
39 GOTO 20
|
20 REM MAIN LOOP
|
||||||
50 REM RESET
|
21 REM DRAW CURSORS FOREVER. 5% CHANCE OF RESET
|
||||||
51 K(C,H) = INT ( RND (1) * 40) + 1
|
30 FOR C = 0 TO 3
|
||||||
52 K(C,V) = 0
|
31 R = INT ( RND (1) * 20)
|
||||||
53 K(C,F) = INT ( RND (1) * 2)
|
32 IF R = 1 THEN GOSUB 50
|
||||||
99 RETURN
|
33 IF R >< 1 THEN GOSUB 100
|
||||||
100 REM DRAW
|
35 NEXT C
|
||||||
101 K(C,V) = K(C,V) + 1
|
39 GOTO 30
|
||||||
102 IF K(C,V) > 22 THEN RETURN
|
50 REM RESET A CURSOR
|
||||||
103 VTAB K(C,V): HTAB K(C,H)
|
51 REM AT A RANDOM SPOT AT THE TOP OF THE SCREEN
|
||||||
110 IF K(C,F) = 1 THEN GOSUB 120
|
52 REM 50-50 CHANCE OF DRAWING OR ERASING
|
||||||
111 IF K(C,F) = 0 THEN GOSUB 130
|
53 K(C,H) = INT ( RND (1) * 40) + 1
|
||||||
119 RETURN
|
54 K(C,V) = 0
|
||||||
120 REM DRAW CHAR
|
55 K(C,F) = INT ( RND (1) * 2)
|
||||||
121 PRINT CHR$ ( INT ( RND (1) * 96 + 32))
|
59 RETURN
|
||||||
122 RETURN
|
100 REM ADVANCE CURSOR AND DRAW SOMETHING
|
||||||
130 REM ERASE CHAR
|
101 K(C,V) = K(C,V) + 1
|
||||||
131 PRINT " "
|
102 IF K(C,V) > 24 THEN RETURN
|
||||||
132 RETURN
|
103 VTAB K(C,V): HTAB K(C,H)
|
||||||
|
110 IF K(C,F) = 1 THEN GOSUB 120
|
||||||
|
111 IF K(C,F) = 0 THEN GOSUB 130
|
||||||
|
119 RETURN
|
||||||
|
120 REM RANDOM CHAR
|
||||||
|
121 PRINT CHR$ ( INT ( RND (1) * 96 + 32));
|
||||||
|
122 RETURN
|
||||||
|
130 REM ERASE CHAR
|
||||||
|
131 PRINT " ";
|
||||||
|
132 RETURN
|
||||||
|
|
Loading…
Reference in New Issue