Rivista: Acorn User – Numero: 9 – Anno: 1983 – Trascrizione: Francesco Fiorentini
Estratto dalla rivista inglese Acorn User, numero 9 di Aprile 1983, e creato da Robert Harding dell’Università di Cambridge arriva “Stars and Stripes”.
L’idea è nata da un viaggio che ha fatto in California in compagnia di un microcomputer BBC negli anni ’80. Gli americani rimasero colpiti dalla velocità e dalla grafica del BBC e il programma era un omaggio per il lancio della serie televisiva della BBC oltreoceano ed i piani di Acorn negli Stati Uniti.

Titolo: Stars and Stripes
Piattaforma: BBC Micro
Linguaggio: Basic
Versione originale: Robert Harding
Pubblicazione: Acorn User – numero 9
Anno: 1983 – Aprile
Trascrizione: Francesco Fiorentini
Anno: 2026
Download: N/A
Note: corretto un errore alla riga 1020.
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 ‘>’ e ‘<’. Nel caso, sostituite questi valori nel listato prima di copiarlo sull’emulatore.
Listato: Stars and Stripes – 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 10 REM *** STARS & STRIPES ***
15 REM Model B, uses MODE 1
20 REM Written by Robert Harding
28 :
30 PROCinitplay
35 PROCplay(2)
38 :
40 REM table of COS for stars
50 DIM CS(12)
60 FOR I%=0 TO 12
70 CS(I%)=COS(RAD(30*(I%-1)))
80 NEXT
82 :
100 H=650: W=1.5*H : REM height, width
110 H1=300: REM height of blue box
120 W1=1.5*H1: REM width of blue box
130 S=1.25 : REM OVERALL SCALE FACTOR
140 X0=100: Y0=100 : REM base corner
190 H=H*S: W=W*S: H1=H1*S: W1=W1*S
192 st2=W1/20: st1=st2/3
198 :
200 REM --- main shape ---
210 MODE 1: GCOL 0,3 : REM white
220 PROCbox(X0,Y0,W,H)
230 GCOL 0,1 : REM red stripes
240 FOR I%=0 TO 6
242 PROCplay(1)
250 PROCbox(X0,Y0+I%*H*2/13,W,H/13)
260 NEXT
270 VDU19, 2,4,0,0,0
280 GCOL 0,2 : REM blue background
290 PROCbox(X0,Y0+H-H1,W1,H1)
298 :
300 REM --- put in the stars ---
310 GCOL 0,3
320 REM 5 rows of 6 first
330 D=W1/6: E=H1/5
340 FOR J%=0 TO 4
350 FOR I%=0 TO 5
352 PROCplay(1)
360 X=D/2+I%*D: Y=E/2+J%*E
370 PROCstar(X0+X,Y0+H-Y,st1,st2)
380 NEXT
390 NEXT
398 :
400 REM --- inner stars ---
410 FOR J%=1 TO 4
420 FOR I%=1 TO 5
422 PROCplay(2)
430 X=I%*D : Y=J%*E
440 PROCstar(X0+X,Y0+H-Y,st1,st2)
450 NEXT
460 NEXT
470 END
900 REM *** END OF MAIN PROGRAM ***
910 REM ===============
998 :
1000 REM --- 6 pt star ---
1010 DEF PROCstar(X,Y,A,B)
1020 LOCAL I%,CU,SU,CV,SV,CW,SW
1030 FOR I%=1 TO 11 STEP 2
1040 CU=CS(I%-1):SU=CS((I%+8)MOD12)
1050 CW=CS(I%+1):SV=CS((I%+10)MOD12)
1060 MOVE X,Y
1070 PLOT 0,A*CU,A*SU
1080 PLOT 85,X+A*CV,Y+A*SV
1090 PLOT 85,X+B*CW,Y+B*SW
1100 NEXT
1110 ENDPROC
1998 :
2000 REM --- rectangle ---
2010 DEF PROCbox(X,Y,A,B)
2020 MOVE X,Y
2030 PLOT 0,A,0
2040 PLOT 81,-A,B
2050 PLOT 81,A,0
2060 ENDPROC
2998 :
3000 REM ---
3010 REM play a few notes
3020 DEF PROCplay(NUM%)
3030 LOCAL I%,N%,T%
3040 IF NP%>=NNOTES% THEN ENDPROC
3050 I%=0
3060 REPEAT
3070 READ N%,T%
3080 IF N%<100 THEN 3082 ELSE 3088
3082 SOUND 1,V%,4*N%+33,T%:GOTO 3090
3088 SOUND 1,0,0,T%
3090 SOUND 1,0,0,1
3100 I%=I%+1: NP%=NP%+1
3110 UNTIL I%=NUM% OR NP%=NNOTES%
3120 ENDPROC
3138 :
3140 REM ---
3150 :
3160 REM initialise for tune.
3170 DEF PROCinitplay
3175 READ NNOTES%,V%
3180 NP%=0
3200 ENDPROC
8998 :
9000 REM Data for JOHN BROWN
9010 DATA 77,-15
9020 DATA 7,12,7,12,4,9,7,3,12,9
9030 DATA 14,3,16,9,16,3,16,9,14,3
9040 DATA 12,12,100,6
9050 DATA 9,12,9,12,12,9,11,3,12,9
9060 DATA 9,3,7,9,9,3,7,9,5,3
9070 DATA 4,12,100,6
9080 DATA 7,12,7,12,4,9,7,3,12,9
9090 DATA 14,3,16,9,16,3,16,9,14,3
9100 DATA 12,12
9110 DATA 12,9,12,3,14,12,14,12
9120 DATA 12,9,12,3,14,12,14,12
9130 DATA 7,18,5,3,4,9,7,3,12,9
9140 DATA 14,3,16,24,12,21,100,3
9150 DATA 9,18,11,3,12,9,11,3,12,9
9160 DATA 9,3,7,24,4,21,100,3
9170 DATA 7,18,5,3,4,9,7,3,12,9
9180 DATA 14,3,16,24,12,12,100,3
9190 DATA 12,9,12,3,14,12,14,12
9200 DATA 12,12,11,12,12,24
