diff --git a/MATRIX b/MATRIX index ecb5c5e..18d2caf 100644 --- a/MATRIX +++ b/MATRIX @@ -1,35 +1,44 @@ - 1 REM THE MATRIX - 2 REM BY NEIL KANDALGAONKAR - 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 +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