apple-ii-matrix/MATRIX

45 lines
1.1 KiB
Plaintext

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