Rivista: PC Personal Computer – Anno: 1983 – Numero: 8 – Trascrizione: Francesco Fiorentini
Secondo listato della rivista PC Personal Computer anno I numero 8, questa volta per Apple II:
https://www.retromagazine.net/pc-personal-computer-club-anno-i-numero-8/
Si tratta di una semplice demo che utilizza i caratteri dell’Apple II ed alcuni effetti sonori per rappresentare una rudimentale battaglia navale tra un’incrociatore ed un aereo nemico.
Non c’e’ nessuna interazione con l’utente, anche se nella rivista lo spacciavano per un gioco completo…
Attenzione: si tratta soltanto di una demo.

Titolo: Battaglia Navale (demo)
Piattaforma: Apple II
Linguaggio: Basic
Versione originale: Nicolas Kropacek
Pubblicazione: PC Personal Computer
Anno: 1983, Novembre
Trascrizione: Francesco Fiorentini
Anno: 2026
Download: N/A
Note: N/A
Qui di seguito trovate il codice da copiare sul vostro Apple II oppure su un emulatore, noi suggeriamo AppleWin.
Di seguito le istruzioni per caricare il listato sull’emulatore AppleWin:
– Copiare il listato di cui sotto
– Avviare l’emulatore
– Premere SHIFT + INS per incollare il listato sull’emulatore
– Digitare RUN per eseguire il codice
Buon divertimento!
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: Battaglia Navale (demo) – Apple II – 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 100 REM **************************
110 REM BATTAGLIA NAVALE
120 REM **************************
130 CLEAR : TEXT : CALL - 936: SPEED= 255
140 HTAB 12: VTAB 22: FLASH : PRINT "BATTAGLIA";: NORMAL : PRINT " " ;: FLASH : PRINT "NAVALE": NORMAL
150 A = 10:B = 5:C = 9:D = 6:O = 9:F = 7:G = 6:H = 8:K = 2:L = 9:M = 2:N = 10
160 SPEED= 150
170 VTAB 11: FOR I = 1 TO 4: FOR E = 1 TO 20: PRINT ">>";: NEXT E: FOR U = 1 TO 20: PRINT "<<";: NEXT U: NEXT I
180 SPEED= 255
190 HTAB (A): VTAB (B): PRINT "+======"
200 HTAB (A): VTAB (B - 1): PRINT "Y"
210 INVERSE : HTAB (C): VTAB (D): PRINT " x=": NORMAL
220 INVERSE : HTAB (O): VTAB (F): PRINT " ": NORMAL
230 INVERSE : HTAB (G): VTAB (H): PRINT " ==== ": NORMAL
240 INVERSE : HTAB (K): VTAB (L): PRINT "@ * * * * * ": NORMAL
250 HTAB 6: VTAB (F): PRINT ">>>"
260 INVERSE : HTAB (M): VTAB (N): PRINT " ": NORMAL
270 GOSUB 530
280 FOR Z = 1 TO 1000: NEXT Z
290 FOR A = 1 TO 5
300 GOSUB 590
310 PR = 16
320 SPEED= 240
330 FOR Z = 1 TO 24: VTAB 5: HTAB (PR + Z): PRINT "*": VTAB 5: HTAB (PR + Z - 1): PRINT " ": NEXT Z: VTAB 5: HTAB 40: PRINT " "
340 NEXT A
350 SPEED= 255: FOR X = 1 TO 1000: NEXT X
360 SPEED= 150
370 FOR S = 1 TO 3
380 FOR Z = 1 TO 25: GOSUB 640: VTAB 8: HTAB (15 + Z): PRINT ">": VTAB 8: HTAB (15 + Z - 1): PRINT " ": NEXT Z: VTAB 8: HTAB 40: PRINT " ": FOR I = 1 TO 100: NEXT I: NEXT S
390 GOSUB 700: FOR E = 1 TO 1000: NEXT E: GOSUB 960: SPEED= 255
400 FOR L = 1 TO 500: NEXT L
410 SPEED= 150
420 FOR S = 1 TO 3
430 FOR Z = 1 TO 25: GOSUB 640: VTAB 8: HTAB (40 - Z): PRINT "<": VTAB 8: HTAB (40 - Z + 1): PRINT " ": NEXT Z: VTAB 8: HTAB 15: PRINT " ": FOR I = 1 TO 100: NEXT I: NEXT S
440 GOSUB 1010: FOR I = 1 TO 5: GOSUB 830: NEXT I: SPEED= 250: GOSUB 860: GOSUB 560: FOR A = 1 TO 800: NEXT A
450 FOR U = 1 TO 20: CALL 64477: NEXT U: FOR A = 1 TO 3: GOSUB 590
460 FOR Z = 1 TO 24: VTAB 5: HTAB (PR + Z): PRINT "*": VTAB 5: HTAB (PR + Z - 1): PRINT " ": NEXT Z: VTAB 5: HTAB 40: PRINT " ": NEXT
470 FOR Z = 1 TO 30: GOSUB 670: GOSUB 860: VTAB 2: HTAB (40 - Z): FLASH : PRINT " ": NORMAL: VTAB 2: HTAB (40 - Z + 1): PRINT " ": NEXT Z
480 HTAB 14: VTAB 2: PRINT " ": FOR Z = 1 TO 6: HTAB 10: VTAB (1 + Z): FLASH: PRINT " ": NORMAL: VTAB (1 + Z - 1): HTAB 10: PRINT " ": NEXT Z
490 GOSUB 870
500 SPEED= 255: VTAB 23: END
510 REM
520 REM **********************
530 REM * ROUTINE SONORE *
540 REM **********************
550 REM **SUONO DI SIRENAX**
560 FOR S = 1 TO 200
570 T = PEEK (49200)
580 NEXT S: RETURN
590 FOR U = 1 TO 20
600 V = PEEK ( -16336 )
610 NEXT U: RETURN
620 REM
630 REM *** SUONO DI MOTORE AEREO ***
640 SPEED= 255: FOR V = 1 TO 5:T = PEEK (49200): NEXT V: SPEED= 150: RETURN
650 REM
660 REM ** Routine di RAZZO **
670 SPEED= 255: FOR V = 1 TO 2:T = PEEK (49200): NEXT V: RETURN
680 REM
690 REM ** SUONO BITONALE **
700 SPEED= 255
710 FOR O = 1 TO 7
720 FOR S = 1 TO 20:T = PEEK (49200): NEXT S: FOR U = 1 TO 20:V = PEEK( -16336): NEXT U
730 NEXT O
740 RETURN
750 REM
760 REM **SUONO BITON.PER SILUROX**
770 FOR S = 1 TO 5:T = PEEK (49200): NEXT S: FOR U = 1 TO 5:V = PEEK ( -16336): NEXT U: RETURN
780 REM
790 REM **********************
800 REM * ROUTINE VISIVE *
810 REM **********************
820 REM ****ROUTINE DI AEREI****
830 FOR Z = 1 TO 40: GOSUB 640: SPEED= 255: VTAB 2: HTAB (40 - Z): PRINT "<": VTAB 2: HTAB (40 - Z + 1): PRINT " ": VTAB 2: HTAB 1: PRINT " ": NEXT Z: RETURN
840 REM
850 REM **** ROUTINE PER CANNONE ****
860 FLASH : HTAB 39: VTAB 1: PRINT "##": HTAB 36: VTAB 2: PRINT "=====": HTAB 39: VTAB 3: PRINT "##": HTAB 40: VTAB 4: PRINT "*": NORMAL : RETURN
870 HTAB (C): VTAB (D): PRINT " "
880 HTAB (O): VTAB (F): PRINT " "
890 HTAB (G - 1): VTAB (H): PRINT " "
900 FLASH : HTAB 6: VTAB (F): PRINT " ": NORMAL
910 FLASH : HTAB (G + 2): VTAB (H): PRINT "$$": NORMAL
920 HTAB 2: VTAB 9: PRINT " "
930 RETURN
940 REM
950 REM ***** SILURO *****
960 SPEED= 200
970 FOR W = 1 TO 40: GOSUB 770: VTAB 12: HTAB (40 - W): INVERSE : PRINT " ": NORMAL : VTAB 12: HTAB (40 - W + 1): PRINT "<": NEXT W: VTAB 12: HTAB 11: PRINT "<"
980 VTAB 18: HTAB 16: PRINT "<": RETURN
990 REM
1000 REM **** OBLO' IN ALLARME ****
1010 SPEED= 255: FLASH : HTAB (C + 1): VTAB (D): PRINT "#": NORMAL
1020 FLASH : HTAB 5: VTAB 9: PRINT "#";: HTAB 7: PRINT "#";: HTAB 9: PRINT "#";: HTAB 11: PRINT "#";: HTAB 13: PRINT "#": NORMAL
1030 RETURN
