Chopper – Dragon 32 – Dragon BASIC

Rivista: C+VG (UK)– Mese/Anno: ottobre 1984 – Numero: 36 – Trascrizione: David La Monaca

Questo titolo per Dragon 32 compare per la prima volta sul web in forma binaria ed è quindi una sorta di inedito. Naturalmente non è inedito il listato BASIC ma la distribuzione binaria del gioco sotto forma di immagine di un floppy disk d32-chop.dmk, compatibile con gli emulatori Dragon, che contiene il programma chopper.bas. Nel gioco impersonate l’unico pilota sopravvissuto di uno squadrone di elicotteri distrutti da uno stormo nemico. Dopo la fine della cruenta battaglia nei cieli di un’isola sperduta nel Pacifico, voi e il vostro chopper siete rimasti nelle vicinanze, nascosti in una radura poco lontana dall’eliporto militare nemico. L’ordine superiore che vi giunge dal Comando Centrale è di penetrare in un’area vicina alla base nemica e annientare i loro ultimi tre elicotteri da guerra. Quando questi si leveranno in volo per le loro missioni di ricognizione, voi potrete attaccarli uno alla volta e colpirli. La missione potrà dirsi conclusa solo quando li avrete abbattuti tutti. E dovrete farlo con molta circospezione, altrimenti verrete intercettati dai loro radar e verrete investiti da una pioggia di missili.

Lo scenario è composto da una grafica essenziale ma efficace, gli elicotteri sono ben disegnati, i movimenti piuttosto fluidi ed il suono dei colpi sparati da e verso il nemico sono credibili. I controlli sono semplici e tutti presenti sulla tastiera: le frecce SU e GIÙ muovono il vostro chopper verticalmente aumentando o diminuendo la quota nella zona del duello in volo. La freccia a DX serve a fare fuoco contro i nemici quando questi si troveranno orizzontalmente a tiro. Se riuscirete ad abbattere tutti e tre gli elicotteri del nemico avrete raggiunto la fine della missione. A questo punto potete premere il tasto S per cominciare un nuovo duello volante.

Titolo: Chopper
Piattaforma: Dragon 32/64 – Tandy CoCo 2/3
Genere: Sparatutto militare/Shooting duel
Linguaggio: Dragon BASIC
Versione originale: Colin Carter
Pubblicazione: C+VG n. 36, ottobre (listato presente anche nel libro “Enter The Dragon”, Melbourne House, 1984)
Anno: 1984

Digitazione: David La Monaca
Anno: 2026 (gennaio)
Download: immagine dischetto d32-chop.dmk (contiene chopper.bas)
Note: –

Pronti a far fuoco, il gunfire nemico è quasi nel nostro mirino!
Restiamo in una zona sicura mentre il nemico ci sta cercando

Qui di seguito trovate il codice da copiare sul vostro Dragon 32 oppure su un emulatore. Per PC Windows 10/11 suggeriamo XRoar oppure potete utilizzare XRoar Online. Per l’emulatore residente su PC dovrete procurarvi le ROM del computer e del DOS necessarie qui.

Di seguito le istruzioni per caricare il listato sull’emulatore XRoar:
– Copiare il listato qui sotto e incollatelo in un file di testo con il nome “chopper.txt”
– Avviare l’emulatore su Windows oppure accedere all’emulatore online
– Selezionare Hardware-> Machine > Tandy CoCo (PAL)
– Selezionare Hardware-> Cartridge > RSDos
– L’emulatore si avvierà. Premere un tasto qualsiasi.
– Selezionare File-> Type from file…
– Selezionare il file precedentemente salvato “chopper.txt” per caricare il listato nell’ambiente BASIC
– Digitare RUN per eseguire il gioco
Buon divertimento!

Attenzione – Nel listato i caratteri ‘>’ e ‘<‘ potrebbero essere stati sostituiti dai rispettivi codici di encoding HTML ‘&gt;’ e ‘&lt;’. Nel caso siano presenti, sostituite questi valori nel listato prima di caricarlo nell’emulatore.

Listato: Chopper – Dragon 32 – Dragon 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
10 PCLEAR 4
20 PMODE 1,1
30 COLOR 1,3:PCLS(2)
40 SCREEN 1,0
50 DIM C1(17),C2(17),C3(15),C4(15),BL(17)
60 GET(1,1)-(41,31),BL,G
70 P$="T255;O1;V31;L1;3;L255;3;P60;V15;L10;2;L255;2;P40;V2;L100;1;L255;1;"
80 DRAW"C1"
90 LINE(0,185)-(10,185),PSET
100 LINE-(10,175),PSET
110 LINE-(30,175),PSET
120 LINE-(30,185),PSET
130 LINE-(90,185),PSET
140 LINE-(100,175),PSET
150 LINE-(100,120),PSET
160 LINE-(110,120),PSET
170 LINE-(110,145),PSET
180 LINE-(120,145),PSET
190 LINE-(120,135),PSET
200 LINE-(140,135),PSET
210 LINE-(140,145),PSET
220 LINE-(170,145),PSET
230 LINE-(170,135),PSET
240 LINE-(190,135),PSET
250 LINE-(190,145),PSET
260 LINE-(220,145),PSET
270 LINE-(220,135),PSET
280 LINE-(240,135),PSET
290 LINE-(240,145),PSET
300 LINE-(255,145),PSET
310 PAINT(150,190),1,1
320 DRAW"C4"
330 LINE(255,145)-(255,196),PSET
340 LINE-(0,196),PSET
350 LINE-(0,185),PSET
360 LINE(100,155)-(255,155),PSET
370 LINE(100,165)-(255,165),PSET
380 LINE(100,175)-(255,175),PSET
390 LINE(0,185)-(255,185),PSET
400 LINE(100,145)-(255,145),PSET
410 ' PMODE1,3:COLOR 1,3:PCLS(2)
420 SCREEN1,0
430 DRAW"C3"
440 CIRCLE(4,158),3
450 A$="BM7,159;M26,159;F6L8;M7,159;BM18,168;R4NU2R4NU2R4;BM22,156;D8"
460 B$="M-19,+0;G6R8;M-2,-6;BM+3,+10;L4NU2L4NU2L4;BM+12,-4;E4R2L3ND1L5;BM+1,-4;D3R15NU2ND2"
470 DRAW A$
480 PAINT(18,160),3,3
490 GET(0,140)-(40,170),C1,G
500 DRAW"BM152,96;"+ B$
510 GET(120,80)-(152,107),C3,G
520 GET(120,88)-(152,115),C4,G
530 FOR Y=88 TO 108
540 PUT(120,Y)-(152,Y+27),C3,PSET:NEXTY
550 PUT(170,108)-(202,135),C3,PSET
560 PUT(220,108)-(252,135),C3,PSET
570 PUT(0,100)-(40,130),C1,PSET
580 GET(0,108)-(40,138),C2,G
590 FOR Y=104 TO 144 STEP4
600 PUT(0,Y)-(40,Y+28),C1,PSET
610 NEXT Y
620 LINE(172,120)-(192,120),PSET
630 LINE(224,120)-(244,120),PSET
640 XE=120:YE=108:ED=2
650 YO=144:OD=10
660 DE=-4:YE=108
670 FC=0
680 F=0
1000 ' MAIN LOOP
1010 PSET(XE+6,YE+ED,3):PSET(XE+10,YE+ED,3):PSET(XE+18,YE+ED,2):PSET(XE+22,YE+ED,2)
1020 FOR DX=0 TO 12 STEP 4
1030 PSET(8+DX,YO+OD,3):PSET(24+DX,YO+OD,2)
1040 NEXT DX
1050 IF YE=108 THEN PUT(XE,YE)-(XE+32,YE+27),C4,PSET
1060 YE=YE+DE:IF YE<=10 THEN DE=+4:ED=12:GOTO1060
1070 IF YE>110 THEN DE=-4:ED=2:GOTO1060
1080 IF DE<0 THEN PUT(XE,YE)-(XE+32,YE+27),C4,PSET: ELSE PUT(XE,YE)-(XE+32,YE+27),C3,PSET
1090 IF PEEK(341)<>223 GOTO 1150
1100 IF YO=144 THEN PUT(0,YO)-(40,YO+30),C2,PSET
1110 IF OD=12 THEN PUT(0,YO)-(40,YO+30),C2,PSET
1120 IF YO<=10 THEN GOTO1180 ELSE YO=YO-4:OD=4
1130 PUT(0,YO)-(40,YO+30),C2,PSET
1140 GOTO 1180
1150 IF PEEK(342)<>223 GOTO 1180
1160 IF YO>=142 GOTO 1180 ELSE YO=YO+4:OD=12
1170 PUT(0,YO)-(40,YO+28),C1,PSET
1180 IF YE>90 THEN GOTO 1460 ELSE F=F+RND(3)
1190 IF F<10 GOTO 1300
1200 F=0
1210 SOUND250,1
1220 YS=YE+ED+10
1230 FOR XX=XE TO 30 STEP -8
1240 PSET(XX,YS,3):PSET(XX,YS,2)
1250 NEXT XX
1260 IF ABS(YO+OD+6-YS)-6>0 GOTO1300
1270 FOR I=1TO5:PSET(RND(35),YO+OD+RND(12),4):PLAY P$:PSET(RND(35),YO+OD+RND(12),1):NEXT I
1280 SOUND 100,2
1290 GOTO 1450
1300 FC=FC+1:IF PEEK(344)<>223 GOTO 1460
1310 IF YO>100 THEN XL=100 ELSE XL=250
1320 SOUND 250,1
1330 YS=YO+OD+10
1340 IF FC<4 THEN GOTO 1460 ELSE FC=0
1350 FOR XX=40 TO XL STEP 8
1360 PSET(XX,YS,3):PSET(XX,YS,4):PSET(XX,YS,2):PSET(XX,YS,2)
1370 NEXT XX
1380 IF ABS(YE+ED+6-YS)-6>0 GOTO 1460
1390 FORI=1TO5:PSET(XE+RND(28),YE+ED+RND(9),4):PLAY P$:PSET(XE+RND(28),YE+ED+RND(9),1):NEXTI
1400 PUT(XE-5,YE)-(XE+35,YE+30),BL,PSET
1410 XE=XE+50
1420 YE=108
1430 IF XE<230 GOTO 1460
1440 FOR J=1TO7:SOUND 50+20*J,1:NEXTJ
1450 I$=INKEY$:IF I$="S" THEN PCLS(2):GOTO80: ELSE GOTO 1450
1460 PSET(XE+6,YE+ED,2):PSET(XE+10,YE+ED,2):PSET(XE+18,YE+ED,3):PSET(XE+22,YE+ED,3)
1470 FOR DX=0 TO 12 STEP 4
1480 PSET(8+DX,YO+OD,2):PSET(24+DX,YO+OD,3)
1490 NEXT DX
1500 GOTO 1000

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.