mirror of
https://github.com/badvision/apple-ii-matrix.git
synced 2024-06-02 22:41:30 +00:00
cec20b3dfc
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
45 lines
1.1 KiB
Plaintext
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
|