Spiral – BBC Micro – Basic

Rivista: Acorn User – Numero: 4 – Anno: 1982 – Trascrizione: Francesco Fiorentini

Esordio del BBC Micro nella rubrica RetroLiPS. E decisamente un esordio in pompa magna…

Quello che andiamo a presentarvi é un’altro bel listato estratto dalla rivista inglese Acorn User, numero 4 di Novembre 1982, che sono sicuro apprezzerete.

Un simpatico programmino per BBC Micro che ne evidenzia le capacita’ grafiche e la versatilita’.
Da studiare.

Titolo: Spiral
Piattaforma: BBC Micro
Linguaggio: Basic
Versione originale: J.Telford and Catherine Wheel
Pubblicazione: Acorn User – numero 4
Anno: 1982 – Novembre
Trascrizione: Francesco Fiorentini
Anno: 2026
Download: N/A

Istruzioni:
USE the below KEYS
> TO SPEED UP.
< TO SLOW DOWN.
= TO RESET SPEED.
R TO REVERSE SPIN.
HOLD R DOWN TO FREEZE WHEEL

Come sempre, qui di seguito trovate il codice ottimizzato per essere copiato direttamente sul vostro BBC Micro oppure su un emulatore. Il nostro consiglio é quello di utilizzare BeebEm.

Una volta avviato BeebEm non dovrete far altro che copiare il listato sottostante ed incollarlo sull’emulatore tramite: Edit -> Paste. Dopodiché digitate RUN ed il gioco é fatto!

Attenzione – Ci siamo resi conto che nel listato i caratteri ‘>’ e ‘<‘ potrebbero venir sostituiti dai rispettivi encoding html ‘&gt’ e ‘&lt’. Nel caso, sostituite questi valori nel listato prima di copiarlo sull’emulatore.

Listato: Spiral – BBC Micro – Basic


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
100 REM CATHERINE WHEEL  
100 REM J.TELFORD.  
120 :  
130 ON ERROR GOTO1300  
140 MODE7  
150 mode=5  
160 colours=3  
170 :  
180 REM CHECK FOR MODEL A  
190 :  
200 IF HIMEM = 31744 THEN mode=2:colour=7  
210 :  
220 REM USE BEST MODE+COLOURS  
230 :  
240 MODE mode  
250 :  
260 REM SET UP SPEED,RADIUS,  
270 REM CURVE FACTOR AND  
280 REM INITIAL ANGLE OF TURN  
290 :  
300 S%=200  
310 R=896  
320 CF=10  
330 turn=0  
340 :  
350 REM TURN OFF CURSOR  
360 :  
370 VDU23;8202;0;0;0;
380 :  
390 REMEMBER TO CENTRE THE ORIGIN  
400 REM ON THE SCREEN.
410 :
420 VDU29,640;512;
430 :
440 REM MOVE TO START OF CURVE
450 REM WITHOUT UGLY LINES
460 :
470 MOVE R*COS turn,R*SIN turn
480 :
490 REM WE NEED 351 SEGMENTS
500 :
510 FOR C%=0 TO 351
520 :
530 REM CHANGE COLS FOR EACH SEGMENT
540 :
550 GCOL0,C% MOD colours+1
560 DRAWR*COS turn,R*SIN turn
570 DRAW(R-50)*COSturn,(R-50)*SINturn
580 turn=turn+PI/CF:R=R-CF/4
590 PLOT85,R*COS turn,R*SIN turn
600 PLOT85,(R-50)*COSturn,(R-50)*SINturn
610 NEXT:REM SPIRAL DONE NOW
620 REM PRESS ANY KEY TO SPIN WHEEL
630 :
640 a$=GET$
650 FOR G=1 TO colours
660 FOR F=1 TO colours
670 :
680 REM CHECK FOR SPEED UP OR DOWN
690 :
700 PROC_SPEED
710 :
720 REM CHECK FOR REVERSE DIRECTION
730 REM AND CLOSE, LOOPS BEFORE EXIT  
740 REM IF FOUND  
750 :  
760 IF speed$="R" THEN G=colours:F=G:GOTO890  
770 :  
780 REM H MUST BE GREATER THAN 0  
790 REM TO KEEP COLOURS RUNNING  
800 :  
810 H=F  
820 GCOL0,F  
830 IF F-G<1 THEN H=F+colours  
840 :  
850 REM CHANGE EACH LOGICAL COLOUR  
860 REM CONSECUTIVELY  
870 :  
880 VDU19,F,H-G,0,0,0
890 NEXT  
900 :  
910 REM DELAY FOR EFFECT REQUIRED.  
920 :  
930 FOR WT=1 TO S%:NEXT  
940 NEXT  
950 REM IF NO REVERSE KEEP SPINNING  
960 IFspeed$<>"R"THEN650  
970 :  
980 REM REVERSE SPIN  
990 REM LINES 610 TO 730  
1000 REM PREFORM AS 380 TO 590  
1010 REM BUT COLOURS 'MOVE'  
1020 REM IN OPP. DIRECTION.  
1030 REM HENCE NOT REMED.  
1040 :
1050 FOR G=colours TO 1 STEP-1
1060 FOR F=colours TO 1 STEP-1
1070 PROC_SPEED
1080 IF speed$="R"THEN G=1:F=1:GOTO1130
1090 H=F
1100 GCOL0,F
1110 IF F-G<1 THEN H=F+colours
1120 VDU19,F,H-G,0,0,0
1130 NEXT
1140 FOR WT=1 TO S%:NEXT
1150 NEXT
1160  REM IF NO REVERSE KEEP SPINNING
1170 IFspeed$<>"R"THEN1050
1180 REM REVERSE SPIN
1190 GOTO650
1200 DEFPROC_SPEED
1210 speed$=INKEY$(0)
1220 IFspeed$=">"AND S%>0 THEN S%=S%-10
1230 IFspeed$="<"AND S%<400 THENS%=S%+10
1240 IF speed$="=" THEN S%=200
1250 ENDPROC
1260 :
1270 REM MODE 7 TO RESET RANDOMISED
1280 REM COLOURS, AND READABLE TEXT.
1290 :
1300 MODE7:REPORT:PRINT" at line ";ERL
1310 END
1320 REM USE KEYS......
1330 REM > TO SPEED UP.
1340 REM < TO SLOW DOWN.
1350 REM = TO RESET SPEED.
1360 REM R TO REVERSE SPIN.
1370 REM HOLD R DOWN TO FREEZE WHEEL

Share

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.