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
|
||||
2 REM BY NEIL KANDALGAONKAR <NEILK@NEILK.NET>
|
||||
3 REM https://github.com/neilk/apple-ii-matrix/
|
||||
5 FOR I = 1 TO 30: PRINT " ": NEXT I
|
||||
10 DIM K(3,2)
|
||||
11 H = 0
|
||||
12 V = 1
|
||||
13 F = 2
|
||||
15 FOR C = 0 TO 3
|
||||
16 GOSUB 50
|
||||
17 NEXT C
|
||||
20 FOR C = 0 TO 3
|
||||
30 R = INT ( RND (1) * 20)
|
||||
31 IF R = 1 THEN GOSUB 50
|
||||
32 IF R >< 1 THEN GOSUB 100
|
||||
35 NEXT C
|
||||
39 GOTO 20
|
||||
50 REM RESET
|
||||
51 K(C,H) = INT ( RND (1) * 40) + 1
|
||||
52 K(C,V) = 0
|
||||
53 K(C,F) = INT ( RND (1) * 2)
|
||||
99 RETURN
|
||||
100 REM DRAW
|
||||
101 K(C,V) = K(C,V) + 1
|
||||
102 IF K(C,V) > 22 THEN 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 DRAW CHAR
|
||||
121 PRINT CHR$ ( INT ( RND (1) * 96 + 32))
|
||||
122 RETURN
|
||||
130 REM ERASE CHAR
|
||||
131 PRINT " "
|
||||
132 RETURN
|
||||
1 REM THE MATRIX
|
||||
2 REM BY NEIL KANDALGAONKAR <neilk@neilk.net>
|
||||
3 REM https://github.com/neilk/apple-ii-matrix/
|
||||
4 REM CLEAR SCREEN
|
||||
5 FOR I = 1 TO 30: PRINT: NEXT I
|
||||
6 REM USE ALL 24 LINES
|
||||
7 POKE 35, 25
|
||||
9 REM SET UP THREE CURSORS
|
||||
10 DIM K(3,2)
|
||||
11 REM CONSTANTS FOR ARRAY INDICES.
|
||||
12 REM HORIZONTAL, VERTICAL, DRAW/ERASE
|
||||
13 H = 0: V = 1: F = 2
|
||||
14 REM RESET ALL CURSORS
|
||||
15 FOR C = 0 TO 3
|
||||
16 GOSUB 50
|
||||
17 NEXT C
|
||||
20 REM MAIN LOOP
|
||||
21 REM DRAW CURSORS FOREVER. 5% CHANCE OF RESET
|
||||
30 FOR C = 0 TO 3
|
||||
31 R = INT ( RND (1) * 20)
|
||||
32 IF R = 1 THEN GOSUB 50
|
||||
33 IF R >< 1 THEN GOSUB 100
|
||||
35 NEXT C
|
||||
39 GOTO 30
|
||||
50 REM RESET A CURSOR
|
||||
51 REM AT A RANDOM SPOT AT THE TOP OF THE SCREEN
|
||||
52 REM 50-50 CHANCE OF DRAWING OR ERASING
|
||||
53 K(C,H) = INT ( RND (1) * 40) + 1
|
||||
54 K(C,V) = 0
|
||||
55 K(C,F) = INT ( RND (1) * 2)
|
||||
59 RETURN
|
||||
100 REM ADVANCE CURSOR AND DRAW SOMETHING
|
||||
101 K(C,V) = K(C,V) + 1
|
||||
102 IF K(C,V) > 24 THEN 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