1 REM THE MATRIX 2 REM BY NEIL KANDALGAONKAR 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