50 CLS
60 NEXT f
70 FOR f=1 TO 10
80 LOAD "m:ball"+ STR$ (f) CODE
90 NEXT f
100 BEEP 0.01, 0.01
110 FOR f=9 TO 2 STEP -1
120 LOAD "m:ball"+ STR$ (f) CODE
130 NEXT f
140 BEEP 0.01, 0.01
150 GO TO 70
The example above works only on Layer 0 and leverages the RAMdisk without getting into BANK management territory. It can do that because the frames we're saving are very small. If you remember from Chapters 14 through 16 how the Layer 0 memory is organised in thirds, you'll soon figure out that although small it's not necessarily the faster way of doing things.
The RAMdisk is good to replay things but our SD card is also quite good. Let's try the following example with something more complicated based on a program contributed by mathematician Uwe Geiken from the NextBASIC forum.
1 REM Based on Rotating Ellipses by
Uwe Geiken © 2019
10 RUN AT 3
20 LAYER 2,1: PAPER 0: CLS
30 X,Y=128,88
40 A,B=20,0
50 ITER,CURITER=20,0
60 FOR Q=0 TO 2* PI STEP PI/ITER
70 INK 246: A,B=30,16: P=Q: PROC
ellipse (X,Y,A,B,P)
80 INK 155: A,B,P=19,10,2* PI-Q:
PROC ellipse (X,Y,A,B,P)
90 IF CURITER <=ITER THEN SAVE
"ANIM"+STR$ (CURITER)+",SL2"
LAYER: CURITER +=1
110 PRINT AT 23,0; "Frame:";
CURITER-1;" saved";:CLS: IF
CURITER > ITER THEN GO TO 220
120 NEXT Q: GO TO 220
130 DEFPROC ellipse (X,Y,A,B,P)
140 LOCAL c,d,i,j,k,s
150 c,d=COS P,SIN P
160 FOR k= 0 TO 2.05* PI STEP PI /20
170 i,j=A* COS k,B* SIN k
180 IF k=0 THEN PLOT x+i*c-j*d,
y+i*d+j*c: GO TO 200
190 DRAW x+i+*c-j*d- PEEK 23428,
y+i*d+j*c- PEEK 23430
200 NEXT k
210 ENDPROC
220 FOR %I = 0 TO 5
ZX Spectrum Next User Manual, 3rd Edition (ISBN 978-1-5272-5496-1), written and illustrated by Phoebus R. Dokos. Copyright © 2020-2024 Phoebus Dokos / SpecNext Ltd. Licensed under CC BY-NC-SA 4.0. This is a transcription and can contain errors; check any doubt against the printed page.