ZX81 Listing for blkhole.p


ZX81 program listing for **BLACK HOLE*SLR/2023**

**BLACK HOLE*SLR/2023** (blkhole.p)

A little BASIC program by Dusty W. Murray that displays a swirling pattern. This is my conversion to ZX81 BASIC.


SYSTEM VARIABLES

PROG  : 16509
D-FILE: 17436
VARS  : 18229
E-LINE: 18230
STKBOT: 18230
STKEND: 18230


LEGEND

9999 means line number
PRINT means treat as KEYWORD P


PROGRAM LISTING

  10 REM **BLACK HOLE*SLR/2023**
  20 REM **BY: DUSTY W. MURRAY**
  30 REM SET DEFAULTS
  40 GOSUB 500
  50 REM MAIN LOOP
  60 FAST
  70 GOSUB 600
  80 FOR I=1 TO ITERATIONS
  90 FOR T=0 TO 99
 100 LET CH=INT (RND*5)
 110 IF CH=0 THEN LET RD=RDS
 120 IF CH=1 THEN LET RD=-RDS*0.
991
 130 IF CH=2 THEN LET AD=ADS
 140 IF CH=3 THEN LET AD=-ADS
 150 LET R=R+RD
 160 IF R<4 THEN LET R=4
 170 IF R>W THEN LET R=MR
 180 LET A=A+AD
 190 IF A<0 THEN LET A=A+PI2
 200 IF A>PI2 THEN LET A=A-PI2
 210 LET AR=A+R/RS
 220 LET X=INT (SIN (AR)*R)+MW
 230 LET Y=INT (COS (AR)*R)+MH
 240 IF X>=0 AND X<=W AND Y>=0
AND Y<=H THEN PLOT X,Y
 250 NEXT T
 260 PAUSE 100
 270 NEXT I
 280 PAUSE 4E4
 290 IF INKEY$<>"Q" THEN GOTO 50
 300 SLOW
 310 STOP
 400 REM SAVE
 410 SAVE "BLKHOLE"
 420 RUN
 500 REM DEFAULTS
 510 LET W=63
 520 LET H=43
 530 LET MW=INT (W/2)
 540 LET MH=INT (H/2)
 550 LET MR=MW*2
 560 LET ITERATIONS=10
 570 LET PI2=2*PI
 580 RAND 0
 590 RETURN
 600 REM CLEAR VARS
 610 LET ADS=0.04
 620 LET RDS=1.0
 630 LET R=5
 640 LET RD=0
 650 LET RS=3
 660 LET A=0
 670 LET AD=ADS
 680 CLS
 690 RETURN