100 ONERR GOTO 6030 110 GOTO 6390: REM TEST 120 REM # MELOPOLI: GIOCO # 130 REM # DINOSOFT 8/83 # 140 GOTO 6230: REM MAIN PROG 150 REM DELAY/NOTE 160 REM IN: DN=DURATA,CN=NOTA 170 REM #DELAY ENTRY: 180 CN = 0 190 REM #NOTE ENTRY: 200 IF PEEK (KB) = 148 THEN ME = NOT ME: POKE KS,0 210 POKE NO,CN: POKE DU,DN 220 IF NOT ME THEN POKE NO,0: REM DISABLED 230 CALL MU 240 RETURN 250 REM BUZZ 260 CN = 10:DN = 60 270 GOTO 200 280 REM XDRAW PEDINA 290 REM IN: GI 300 N = PG%(GI): REM CASELLA 310 S = SG%(GI): REM PEDINA 320 A = GI - 1: REM N.POSIZ 330 REM #ENTRY CON N,S,A 340 C = CT%(N): REM TIPO CAS. 350 XDRAW S AT CX%(N) + OX%(C,A),CY%(N) + OY%(C,A) 360 RETURN 370 REM SUONA MOTIVO 380 REM IN: MO=N.MOTIVO 390 REM # RADDOPPIA NOTE 400 REM $ DIMEZZA NOTE 410 REM SP=PAUSA 420 DN = 40: REM DURATA BASE 430 MO$ = MO$(MO) 440 I = FRE (0) 450 FOR I = 1 TO LEN (MO$) 460 A$ = MID$ (MO$,I,1) 470 N = 1: REM NOTA 480 IF A$ = "#" THEN DN = DN * 2:N = 0 490 IF A$ = "$" THEN DN = DN / 2:N = 0 500 IF A$ = " " THEN A$ = CHR$ (34): REM PAUSA 510 IF N THEN CN = ASC (A$) - 34: GOSUB 200: REM SUONA NOTA 520 NEXT 530 RETURN 540 REM INFO/DEINFO 550 G = GI: REM SAVE 560 FOR GI = 1 TO NG 570 GOSUB 300: REM XDRAW 580 NEXT 590 GI = G: REM RESTORE 600 FOR N = 2 TO 39 610 CT = CC%(N): REM CONTENUTO 620 G = 0: IF CT < 29 THEN G = GC%(CT): REM PROPR. 630 IF NOT G THEN 670 640 S = SG%(G):A = 0: GOSUB 340: IF CT > 22 THEN 670 650 FOR I = 0 TO 2: IF AC%(CT,I) < 0 THEN A = I + 1: GOSUB 340 660 NEXT : REM I 670 NEXT : REM N 680 RETURN 690 REM RILASCIO 700 POKE KS,0 710 IF PD AND PEEK (B0) > 127 THEN 700 720 RETURN 730 REM BOTTONE 740 GOSUB 700: REM RILASCIO 750 GOSUB 2110: IF NOT BP THEN 750 760 RETURN 770 REM MOSSA 780 REM IN: GI,TD 790 REM OUT: CA,CC 800 P = PG%(GI): REM POSIZIONE 810 IF TD = 0 THEN 1020: REM FERMO 820 IF P = 1 THEN DG%(GI) = 1 830 IF P = 31 THEN DG%(GI) = - 1 840 IF P = 21 AND TD < > 6 AND TD < > 10 AND NOT DD THEN MO = 0: GOSUB 420: GOTO 1020: REM MINISTERO 850 D = DG%(GI): REM DIREZIONE 860 DN = 150: GOSUB 180 870 DV = (D = - 1 AND P = TD + 1) OR (D = 1 AND P = 41 - TD): REM DOPPIO VIA 880 REM 890 FOR J = 1 TO TD 900 GOSUB 300: REM CLEAR PEDINA 910 P = P + D 920 IF P > 40 OR P < 1 THEN P = 1 930 PG%(GI) = P 940 GOSUB 300: REM DRAW PEDINA 950 N = J: IF D < 0 THEN N = TD - J + 1 960 IF N > 12 THEN N = N - 12: GOTO 960 970 DN = 4:CN = ASC ( MID$ (SM$,N,1)) - 34: GOSUB 200 980 DN = 30: GOSUB 180 990 IF P = 1 THEN IF NOT (D = - 1 AND J < TD) THEN GOSUB 2800: REM VIA! 1000 NEXT 1010 REM 1020 CA = PG%(GI): REM CASELLA 1030 CC = CC%(CA): REM CONTENUTO 1040 RETURN 1050 REM GOTO CASELLA 1060 REM IN: CA,CD(DESTINAZ.) 1070 REM (IN RETRO SE <0) 1080 DT = DG%(GI): REM SAVE DIR. 1090 DG%(GI) = SGN (CD) 1100 TD = CD - CA: IF CD < 0 THEN TD = CA + CD 1110 IF TD < 0 THEN TD = TD + 40 1120 GOSUB 800: REM MOSSA 1130 DG%(GI) = DT: REM RESTORE 1140 RETURN 1150 REM TIRA DADI 1160 REM IN: GI 1170 REM OUT: TD=TIRO (2-12) 1180 REM DD=1 SE DOPPI 1190 GOSUB 700: REM RILASCIO 1210 DN = 50: GOSUB 180 1220 I = FRE (0) 1230 IF DD THEN VTAB 24: HTAB 1: PRINT HK$ME$(0)NG$(GI)" ";: GOTO 1250: REM DOPPI:TIRA ANCORA 1240 VTAB 24: HTAB 1: PRINT HK$NG$(GI)": "PB$ME$(1);: REM PREMI PER TIRARE 1250 CN = 10 + 5 * GI:DN = 20: GOSUB 200 1260 GOSUB 2110: IF NOT BP THEN 1260 1270 VTAB 24: HTAB 1: PRINT HK$;: REM CLEAR 1280 GOSUB 1690: REM ERASE 1290 J = 0: FOR I = 1 TO 6 + 14 * RND (1) 1300 VTAB 8: HTAB 11 + 4 * J 1310 B = A:A = INT (1 + 6 * RND (1)) 1320 PRINT H3$DA$(A)H0$; 1330 DN = 2:CN = 10 + 20 * J 1340 GOSUB 200: REM NOTE 1350 DN = 20: GOSUB 180: REM DELAY 1360 J = NOT J: NEXT 1370 TD = A + B:DD = (A = B) 1380 IF DD THEN VTAB 14: HTAB 8: PRINT HI$ME$(2)HN$: REM DADI DOPPI 1390 RETURN 1400 REM INCASSA/PAGA 1410 REM IN: GP=GIOCATORE 1420 REM LP=LIRE INCASSATE 1430 REM (+) O PAGATE (-) 1440 LP = INT (LP):S = SGN (LP):A = LP 1450 N = LG(GP): REM LIRE GIOC. 1460 M = 9999999: IF ABS (N + A) > M THEN A = INT (M * SGN (N) - N): REM VALE PER LP = 0 THEN PRINT " "; 1570 PRINT INT (N);: IF POS (0) > 9 THEN PRINT HK$; 1580 NEXT 1590 LG(GP) = INT (N) 1600 PRINT HF$;: REM FULL SCREEN 1610 RETURN 1620 REM RETTANGOLO 1630 REM IN: AX,AY=ANGOLO UL 1640 REM LX,LY=LATI 1650 X = AX + LX:Y = AY + LY 1660 HPLOT AX,AY TO X,AY TO X,Y TO AX,Y TO AX,AY 1670 RETURN 1680 REM ERASE RIQUADRO 1690 HTAB 23: VTAB 19: PRINT HL$; 1700 HTAB 5: VTAB 4: PRINT HU$; 1710 PRINT HH$HF$;: RETURN 1720 REM INPUT NUMERO 1730 REM (MAX 6 CIFRE) 1740 REM IN: PR$=PROMPT 1750 REM OUT: NU=NUMERO 1760 REM #ENTRY 1 (POS.FISSA) 1770 VTAB 24: HTAB 1: PRINT HK$PR$" "; 1780 REM #ENTRY 2 (GENERICO) 1790 IF PEEK (KB) = 148 THEN ME = NOT (ME) 1800 POKE KS,0:LM = 6 1810 IN$ = "" 1820 L = LEN (IN$): GET A$ 1830 IF A$ = CR$ AND L THEN NU = VAL (IN$): GOTO 1910: REM END 1840 IF A$ = CHR$ (20) THEN ME = NOT ME: GOTO 1820 1850 IF A$ = "O" THEN A$ = "0" 1860 IF A$ = "I" THEN A$ = "1" 1870 IF (A$ > = "0" AND A$ < = "9") THEN IF L < LM THEN IN$ = IN$ + A$: PRINT A$;: GOTO 1820 1880 IF A$ < > BS$ OR L = 0 THEN 1820 1890 PRINT BS$" "BS$;: IF L = 1 THEN 1810 1900 IN$ = LEFT$ (IN$,L - 1): GOTO 1820 1910 RETURN 1920 REM SELECT CASELLA 1930 REM IN: CA 1940 REM OUT: N=CASELLA 1950 GOSUB 700: REM RILASCIO 1960 S = SG%(GI) 1970 VS = CA - 1: REM INIZIO 1980 VM = 39: GOSUB 2110: REM SELINPUT 1990 N = VS + 1:A = 0: GOSUB 340: REM DRAW 2000 DN = 5: GOSUB 180 2010 GOSUB 340: REM ERASE 2020 IF NOT BP THEN 1980 2030 RETURN 2040 REM SELECT INPUT 2050 REM IN: VS=V.PREC.(0-VM) 2060 REM VM=VALORE MAX. 2070 REM PD=PADDLE (1/0) 2080 REM OUT: VS=VALORE (0-VM) 2090 REM BP=BOTT.PREMUTO 2100 REM ES=ESC PREMUTO 2110 A = PEEK (KB): IF A > 127 THEN POKE KS,0 2120 ES = A = 155: REM ESCAPE 2130 IF A = 148 THEN ME = NOT ME: REM SOUND 2140 IF PD THEN 2220 2150 REM TASTI 2160 A = A - 128 2170 IF A = 8 THEN VS = VS - 1 2180 IF A = 21 THEN VS = VS + 1 2190 IF VS < 0 THEN VS = VM 2200 IF VS > VM THEN VS = 0 2210 BP = A = 13: RETURN 2220 REM PADDLE 2230 P = PDL (0) * (VM + 1) / 256 2240 IF ABS (P - VS) > .5 THEN VS = INT (P): REM ISTERESI 2250 BP = PEEK (B0) > 127 2260 RETURN 2270 REM SELECT GIOCATORE 2280 REM OUT: G=GIOCATORE 2290 GOSUB 700: REM RILASCIO 2300 X = 196 2310 VS = GI - 1:VM = NG - 1 2320 GOSUB 2110: REM SELINPUT 2330 G = VS + 1:S = SG%(G) 2340 Y = 24 * G - 14 2350 XDRAW S AT X,Y: REM ERASE 2360 DN = 5: GOSUB 180 2370 XDRAW S AT X,Y: REM REDRAW 2380 IF NOT BP THEN 2320 2390 RETURN 2400 REM SCELTA COMANDO 2410 REM IN: VM=N.SCELTE-1 2420 REM L=LARGH. SCELTE 2430 REM SC$(0-X)=SCELTE 2440 REM OUT: VS=N.SCELTA 2450 REM ES=ESC PREMUTO 2460 VTAB 24: HTAB 1: PRINT HK$; 2470 FOR I = 0 TO VM 2480 HTAB 1 + L * I: PRINT SC$(I); 2490 NEXT 2500 GOSUB 700: REM RILASCIO 2510 VS = 0 2520 N = VS: REM OLD 2530 GOSUB 2110: REM SELINPUT 2540 IF ES THEN 2590: REM ESCAPE 2550 HTAB 1 + L * VS: PRINT HI$SC$(VS)HN$; 2560 IF BP THEN 2590: REM OK 2570 IF VS < > N THEN HTAB 1 + L * N: PRINT SC$(N); 2580 GOTO 2520 2590 HTAB 1: PRINT HK$; 2600 RETURN 2610 REM CONFERMA 2620 REM OUT: VS=1/0 2630 VM = 1:L = 10 2640 SC$(0) = ME$(3):SC$(1) = ME$(4): REM ANNULLO/CONFERMO 2650 GOSUB 2460: REM SCELTA 2660 RETURN 2670 REM NEXTPLAYER 2680 REM IN: GI 2690 REM OUT: GI=NUOVO GIOC. 2700 AX = 192:LX = 84:LY = 20 2710 AY = 24 * GI - 19 2720 HCOLOR= 0: GOSUB 1650: REM CLEAR RETTANGOLO 2730 GI = GI * (GI < NG) + 1: REM NEXT PLAYER 2740 AY = 24 * GI - 19 2750 HCOLOR= 3: GOSUB 1650: REM NUOVO RETTANGOLO 2760 IF FG%(GI) THEN VTAB 24: HTAB 1: PRINT NG$(GI)ME$(5);:MO = 1: GOSUB 420:FG%(GI) = FG%(GI) - 1: GOTO 2720: REM FERMO GIRO 2770 RETURN 2780 REM PASSAGGIO VIA! 2790 REM IN: DV=DOPPIO 2800 GOSUB 1690: REM ERASE 2810 IF CD THEN DV = 0: REM NO DOPPIO SU IMPREV. 2820 VTAB 9: IF NOT DV THEN HTAB 11: PRINT HI$ME$(6)HN$;: REM VIA! 2830 IF DV THEN HTAB 8: PRINT HI$ME$(7)HN$;: REM DOPPIO VIA! 2840 LP = V0: REM BASE 2850 IF ST = 2 THEN LP = LP * V1 2860 IF ST = 3 THEN LP = LP * V2 2870 LP = LP + LP * DV 2880 VTAB 14: HTAB 6: PRINT ME$(8)LP: REM INCASSO: 2890 GP = GI: GOSUB 1440: REM ACCREDITO 2900 IF NOT DV THEN DN = 60: GOSUB 180: GOSUB 1690: REM ERASE 2910 RETURN 2920 REM DISPLAY FIGURA 2930 REM STAMPA FIGURA ALBERGO, 2940 REM AGENZIA O TRASPORTO. 2950 REM IN: FI=N.FIGURA (0-17) 2960 REM SE FI=0 NO FIGURA 2970 IF NOT FI THEN 3140 2980 A = FRE (0) 2990 IF FI = 17 THEN VTAB 8: HTAB 5: PRINT HI$ME$(9)HN$: GOTO 3140: REM BAIA DEL GAMBERO 3000 HTAB 15: VTAB 5: PRINT HB$; 3010 PRINT HS$ CHR$ (49 + (FI > 9)); 3020 A = FI - 9 * (FI > 9): REM MOD 3030 C$ = CHR$ (33 + A): REM COLORE 3040 R$ = HI$ + C$ + HN$: REM REVERSE 3050 A = FI - (FI > 4) - (FI > 6):A = A - 7 * (A > 7) 3060 A = 44 + 12 * (A - 1): REM ALBERGO 3070 A$ = C$ + ME$(10) + R$ + HC$: REM !!!!!! 3080 FOR I = 1 TO 4: PRINT C$R$;: NEXT : PRINT HC$;: PRINT A$; 3090 FOR I = 0 TO 9 STEP 4: PRINT C$"!"; 3100 FOR J = 0 TO 3: PRINT CHR$ (A + I + J);: NEXT 3110 PRINT "!"R$HC$; 3120 NEXT : PRINT A$; 3130 FOR I = 1 TO 4: PRINT C$R$;: NEXT : PRINT HC$; 3140 PRINT H0$; 3150 RETURN 3160 REM STAMPA NOME FIGURA 3170 REM IN: NF$=NOME FIGURA 3180 REM (+=CR, /=CRCR) 3190 A = VAL ( LEFT$ (NF$,1)): IF (A) THEN NF$ = PC$(A) + MID$ (NF$,2): REM PRENOME 3200 A = FRE (0) 3210 VTAB 6: HTAB 5 3220 FOR I = 1 TO LEN (NF$) 3230 C$ = MID$ (NF$,I,1) 3240 IF C$ = "/" THEN PRINT :C$ = "+" 3250 IF C$ = "+" THEN PRINT : HTAB 5:C$ = "" 3260 PRINT C$;: NEXT 3270 RETURN 3280 REM DISPLAY ACCESSORI 3290 REM IN: CC 3300 IF CC > 22 THEN 3400 3310 I = FRE (0) 3320 FOR I = 0 TO 2:A = - AC%(CC,I):AC(I) = A * (A > 0): NEXT 3330 AY = 94:LX = 17:LY = 19:PX = 21 3340 FOR I = 0 TO 2: PRINT H3$; 3350 AX = 96 + PX * I: GOSUB 1650: REM RETTANGOLO 3360 VTAB 13: HTAB 15 + 3 * I 3370 A = 60 + 4 * (AC(I) - 1): REM ACCESS. 3380 IF A < > 56 THEN PRINT HB$ CHR$ (A) CHR$ (A + 1)HC$ CHR$ (A + 2) CHR$ (A + 3)HE$; 3390 NEXT : PRINT H0$; 3400 RETURN 3410 REM STAMPA STATO 3420 REM IN: CC,GI 3430 REM OUT: VA,TA 3440 P = FRE (0) 3450 IF CC > 28 THEN 3580: REM NON COMPRABILE 3460 REM ALBERGHI,TRAS,AG: 3470 P = GC%(CC): REM PROPR. 3480 VTAB 13: HTAB 5: PRINT HB$; 3490 IF NOT P THEN PRINT ME$(53)HC$ME$(11)HE$: REM IN VENDITA 3500 IF P THEN PRINT ME$(54)HC$HM$NG$(P)HA$HE$: REM DI 3510 GOSUB 3690: REM VAL/TAR 3520 HTAB 5: VTAB 16: PRINT ME$(12)VA: REM VALORE: 3530 HTAB 5: VTAB 18: IF NOT P THEN PRINT "("; 3540 PRINT ME$(13)TA;: REM TARIFFA: 3550 IF NOT P THEN PRINT ")"; 3560 GOTO 3620: REM RETURN 3570 REM NON COMPRABILI: 3580 VTAB 16: HTAB 5 3590 TA = VC%(CC) * 1000 3600 IF CC = 29 OR CC = 30 THEN PRINT ME$(14)TA: REM IMPORTO: 3610 IF CC = 31 THEN PRINT ME$(15)TA: REM CONSUMAZIONE: 3620 PRINT HN$; 3630 RETURN 3640 REM VALORE E TARIFFA 3650 REM IN: CC=CONT. (1-28) 3660 REM ST=STAGIONE (1-3) 3670 REM OUT: VA=VALORE 3680 REM TA=TARIFFA 3690 P = GC%(CC): REM PROPRIET. 3700 IF CC < 32 THEN VA = VC%(CC) * 1000 3710 REM ALBERGHI: 3720 IF CC > 22 THEN 3840: REM NO ALBERGO 3730 TA = VA / A0: REM BASE 3740 FOR I = 0 TO 2: IF AC%(CC,I) < 0 THEN TA = TA * A1:VA = VA * C1: REM ACCESSORI 3750 NEXT 3760 T = IC%(CC): REM TIPO 3770 FOR I = 1 TO 22 3780 IF IC%(I) = T THEN IF P AND I < > CC AND GC%(I) = P THEN TA = TA * A2: REM ALTRI GRUPPO 3790 NEXT 3800 IF ST = 2 THEN TA = TA * A3: REM MEZZA STAGIONE 3810 IF ST = 3 THEN TA = TA * A4: REM ALTA STAGIONE 3820 GOTO 3950: REM RETURN 3830 REM TRASPORTI: 3840 IF CC > 26 THEN 3910: REM NO TRASPORTO 3850 TA = VA / T0: REM BASE 3860 FOR I = 23 TO 26 3870 IF GC%(I) = P THEN IF P AND I < > CC THEN TA = TA * T1: REM ALTRI TRASPORTI 3880 NEXT 3890 GOTO 3950: REM RETURN 3900 REM AGENZIE: 3910 TA = VA / G0: REM BASE 3920 FOR I = 27 TO 28 3930 IF GC%(I) = P THEN IF P AND I < > CC THEN TA = TA * G1: REM ALTRA AGENZIA 3940 NEXT 3950 TA = INT (TA) 3960 RETURN 3970 REM DISPLAY COMPLETO 3980 REM IN: CA,CC 3990 IF CA = 1 THEN 4090: REM VIA! 4000 FI = IC%(CC) 4010 NF$ = NC$(CC) 4020 GOSUB 1690: REM ERASE 4030 PRINT HN$; 4040 GOSUB 2970: REM FIGURA 4050 GOSUB 3190: REM NOME 4060 GOSUB 3300: REM ACCESSORI 4080 GOSUB 3440: REM STATO 4090 RETURN 4100 REM CAMBIO STAG. 4110 REM IN: ST=STAGIONE (1-3) 4120 REM C=+1/-1 4130 REM OUT: ST=STAGIONE 4140 ST = ST + C 4150 IF ST > 3 THEN ST = 3 4160 IF ST < 1 THEN ST = 1 4170 VTAB 10: HTAB 6: PRINT HI$" "ST$(ST)ME$(16)HN$: REM STAGIONE 4180 VTAB 21: HTAB 31: PRINT HZ$ST$(ST)HA$ 4190 MO = ST + 1 4200 GOSUB 420: REM MOTIVO 4210 RETURN 4220 REM IMPREVISTO 4230 PI = (PI + 1) * (PI < 29) 4240 VTAB 1: PRINT 4250 PRINT RD$FI$",R"MI%(PI) 4260 INPUT NF$,LP,MO$,CD,RS 4270 PRINT D$: VTAB 1: PRINT 4280 GOSUB 3190: REM STAMPA 4290 IF MO$ < > "" THEN GOSUB 420 4300 IF RS THEN GOSUB 4360: REM CASI SPECIALI 4310 GP = GI: GOSUB 1440: REM LIRE 4320 IF CD THEN GOSUB 1080 4330 RETURN 4340 REM IMPREV. SPECIALI 4350 REM IN: RS=N.ROUTINE 4360 ON RS GOTO 4380,4400,4430,4460,4520,4540,4570,4590,4610 4370 REM 1: FERMO GIRO 4380 FG%(GI) = 1: RETURN 4390 REM 2: CONDONO 4400 IF LG(GI) < 0 THEN LP = - LG(GI) 4410 RETURN 4420 REM 3: TASSA ALB 4430 FOR K = 1 TO 40:C = CC%(K): IF C < 23 THEN IF GC%(C) = GI THEN GP = GI: GOSUB 1440 4440 NEXT :LP = 0: RETURN 4450 REM 4: TASSA ACC 4460 FOR K = 1 TO 40:C = CC%(K): IF C > 22 THEN 4500 4470 IF GC%(C) < > GI THEN 4500 4480 FOR J = 0 TO 2: IF AC%(C,J) < 0 THEN GP = GI: GOSUB 1440 4490 NEXT : REM J 4500 NEXT :LP = 0: RETURN 4510 REM 5: TASSE % 4520 LP = - LG(GI) * LP: RETURN 4530 REM 6: SCOMMESSE 4540 GOSUB 2290: IF G = GI THEN 4540: REM NO SE STESSO 4550 LP = - LP:GP = G: GOSUB 1440:LP = - LP: RETURN 4560 REM 7: PASSAPORTO 4570 GOSUB 550: GOSUB 1950:CD = N: GOSUB 550: RETURN 4580 REM 8: INVERSIONE 4590 DG%(GI) = - DG%(GI): RETURN 4600 REM 9:FERMO 2 GIRI 4610 FG%(GI) = 2: RETURN 4620 REM CONSEGUENZE 4630 REM IN: CC 4640 CD = 0: REM NO CAMBIO CA 4650 IF CC = 37 THEN GOSUB 4230: GOTO 4740: REM IMPREVISTO 4660 IF CC = 35 OR CC = 36 THEN C = 1 - 2 * (CC = 36): GOSUB 4140: GOTO 4740: REM STAGIONE 4670 IF CC = 33 THEN MO = 5: GOSUB 420: GOTO 4740: REM GAMBERO 4680 IF CC = 29 THEN MO = 6: GOSUB 420: REM SFORTUNA 4690 IF CC > 31 THEN 4740 4700 REM ALB./AG./TRASP. 4710 G = GC%(CC): REM PROPRIET. 4720 IF (CC > 28) OR (CC < 29 AND G AND G < > GI) THEN LP = - TA:GP = GI: GOSUB 1440: REM PAGA TARIFFA 4730 IF G AND G < > GI THEN GP = G:LP = TA: GOSUB 1440: REM INCASSA TARIFFA 4740 RETURN 4750 REM COMPRA 4760 REM IN: CC,GI 4770 REM OUT: CO=1 SE COMPRATO 4780 AC = (GC%(CC) = GI): REM ACCESSORIO 4790 C = VA: IF AC THEN C = VA / C0: REM COSTO 4800 IF LG(GI) < C / 2 THEN VTAB 24: HTAB 1: PRINT HK$ME$(17);:CN = 13:DN = 50: FOR I = 1 TO 4: GOSUB 200: NEXT : GOTO 4930: REM NON SI FA CREDITO! 4810 IF AC THEN 4840: REM ACC. 4820 GOSUB 2630: IF NOT VS THEN 4930: REM CONFERMA 4830 GC%(CC) = GI: GOTO 4910: REM COMPRA ALB. 4840 VM = 0: REM PER ORA 4850 SC$(0) = ME$(3): FOR I = 0 TO 2:A = AC%(CC,I): IF A > 0 THEN VM = VM + 1:SC$(VM) = NA$(A): REM ANNULLO/ACCESSORI 4860 NEXT 4870 L = 10: GOSUB 2460: IF NOT VS THEN 4930: REM SCELTA 4880 : FOR I = 0 TO 2: IF SC$(VS) = NA$( ABS (AC%(CC,I))) THEN A = I 4890 NEXT 4900 AC%(CC,A) = - AC%(CC,A): REM COMPRA ACC. 4910 CO = 1: REM COMPRATO 4920 GP = GI:LP = - C: GOSUB 1440 4930 RETURN 4940 REM GUARDA 4950 REM IN: GI,CC 4960 GOSUB 550: REM INFO 4970 VTAB 24: HTAB 1: PRINT PB$ME$(18);: REM PREMI PER TORNARE 4980 GOSUB 740: REM BOTTONE 4990 VTAB 24: HTAB 1: PRINT HK$; 5000 GOSUB 550: REM DEINFO 5010 RETURN 5020 REM VENDE 5030 REM IN: CA,CC,GI 5040 GOSUB 550: REM INFO 5050 VE = 0: REM VENDUTO 5060 VTAB 24: HTAB 1: PRINT ME$(19);: REM COSA VENDI ? 5070 GOSUB 1950: REM SEL.CA 5080 VTAB 24: HTAB 1: PRINT HK$; 5090 CA = N:CC = CC%(CA) 5100 IF CC > 28 OR GC%(CC) < > GI THEN GOSUB 260: GOTO 5320 5110 GOSUB 3990: REM DISPLAY 5120 VM = 3:L = 10:VS = 0 5130 SC$(0) = ME$(3):SC$(1) = ME$(20):SC$(2) = ME$(21):SC$(3) = ME$(22): REM ANNULLO/BANCA/ASTA/GIOCATORE 5140 GOSUB 2460: REM SCELTA 5150 IF NOT VS THEN 5320 5160 IF VS = 1 AND LG(GI) > = 100000 THEN GOSUB 260: GOTO 5320 5170 IF VS = 1 THEN AQ = 0:LP = VA * V9: GOTO 5300: REM BANCA 5180 VTAB 24: HTAB 1: PRINT HK$; 5190 IF VS = 2 THEN BA = INT (VA / 2): PRINT ME$(23)BA;ME$(24);: REM BASE: CHI OFFRE DI PIU' ? 5200 IF VS = 3 THEN PRINT ME$(25);: REM A CHI VENDI ? 5210 AS = (VS = 2) 5220 GOSUB 2290: IF G = GI THEN 5320 5230 AQ = G:PR$ = ME$(26) + HM$ + NG$(G) + " ?" + HA$: GOSUB 1760:LP = NU: REM QUANTO OFFRE ? 5240 IF AS AND (LP < BA) THEN VS = 2: GOTO 5180 5250 VTAB 24: HTAB 1: PRINT HK$NG$(AQ)": "LP; 5260 DN = 25: FOR I = 1 TO 4:CN = 35: GOSUB 200: GOSUB 180: NEXT 5270 HTAB 22: PRINT PB$; 5280 GOSUB 740: REM BOTTONE 5290 GOSUB 2630: IF NOT VS THEN 5320: REM CONFERMA 5300 GP = GI: GOSUB 1440: IF AQ THEN LP = - LP:GP = AQ: GOSUB 1440: REM PAGAMENTO 5310 VE = 1 5320 GOSUB 550: REM DEINFO 5330 IF VE THEN GC%(CC) = AQ 5340 RETURN 5350 REM SALVA 5360 PR$ = ME$(27): GOSUB 1760: REM CODICE ? (INNUM) 5370 IF NOT NU THEN 5520 5380 F$ = ME$(28) + STR$ (NU): REM PARTITA.MELOPOLI 5390 VTAB 24: HTAB 1: PRINT ME$(29)PB$;: REM METTI UN DISCO 3.3 5400 GOSUB 740: REM BOTTONE 5410 VTAB 1: PRINT 5420 PRINT OP$F$: PRINT WR$F$ 5430 FOR I = 1 TO 28: PRINT GC%(I): NEXT 5440 FOR I = 1 TO 22: FOR J = 0 TO 2: PRINT AC%(I,J): NEXT : NEXT 5450 PRINT NG: FOR I = 1 TO NG: PRINT NG$(I): PRINT SG%(I): PRINT LG(I): PRINT DG%(I): PRINT PG%(I): PRINT FG%(I): NEXT 5460 PRINT GI: PRINT ST 5470 FOR I = 0 TO 29: PRINT MI%(I): NEXT 5480 PRINT PI: PRINT VV 5490 PRINT CL$F$ 5500 VTAB 24: HTAB 1: PRINT ME$(30)PB$;: REM RIMETTI IL MELOPOLI 5510 GOSUB 740: REM BOTTONE 5520 RETURN 5530 REM AZIONE 5540 CO = 0: IF (CC > 28) OR (CC > 22 AND GC%(CC)) THEN CO = 1: GOTO 5560: REM NON COMPRABILE 5550 IF CC < 23 THEN CO = 1: FOR I = 0 TO 2:CO = CO * (AC%(CC,I) < 0): NEXT : REM ACC.COMPRABILI? 5560 IF GC%(CC) AND GC%(CC) < > GI THEN CO = 1: REM ALTRUI 5570 VM = 3 - CO:L = 10:VS = 0 5580 SC$(0) = ME$(31):SC$(1) = ME$(32):SC$(2) = ME$(33):SC$(3) = ME$(34): REM PASSO/GUARDO/VENDO/COMPRO 5590 GOSUB 2460: REM SCELTA 5600 IF ES THEN GOSUB 5360: GOTO 5560 5610 IF NOT VS THEN 5670: REM END 5620 XC = CC:XA = CA: REM PUSH 5630 ON VS GOSUB 4960,5040,4780: REM GUARDA,VENDE,COMPRA 5640 CC = XC:CA = XA: REM PULL 5650 GOSUB 3990: REM DISPLAY 5660 GOTO 5560 5670 RETURN 5680 REM MAXLIRE 5690 REM OUT: G=GIOC.+RICCO 5700 REM L=LIRE(G) 5710 L = - 1E7:G = 0 5720 FOR I = 1 TO NG 5730 IF LG(I) > (L) THEN L = LG(I):G = I 5740 NEXT : RETURN 5750 REM TEST VITTORIA 5760 GOSUB 5710: REM MAXLIRE 5770 GV = G: IF L < VV THEN 6010: REM VINCITA? 5780 VM = 1:L = 20:SC = 0 5790 VV = VV + 500000: REM SE PROSEGUISSE 5800 SC$(0) = STR$ (LG(G)) + ME$(35):SC$(1) = ME$(55) + STR$ (VV): REM FINIAMO/ANDIAMO A 5810 GOSUB 2460: IF VS THEN 6010: REM PROSEGUE 5820 REM CLASSIFICA: 5830 GOSUB 1690: REM ERASE 5840 VTAB 6: HTAB 8: PRINT ME$(36): PRINT : PRINT : REM CLASSIFICA: 5850 FOR GI = 1 TO NG 5860 GOSUB 5710: REM MAXLIRE 5870 HTAB 5: PRINT NG$(G)":"; 5880 HTAB 15: IF L > = 0 THEN PRINT " "; 5890 PRINT L: PRINT 5900 LG(G) = - 1E7 5910 NEXT 5920 GOSUB 550: REM INFO 5930 V$ = ME$(37) + HM$ + NG$(GV) + "! " + HA$: REM COMPLIMENTI, 5940 VTAB 24: HTAB 3: PRINT V$; 5950 MO = 7: GOSUB 420 5960 VTAB 24: HTAB 3: PRINT HI$V$HN$; 5970 DN = 50: GOSUB 180 5980 VTAB 24: HTAB 3: PRINT V$; 5990 DN = 50: GOSUB 180 6000 GOTO 5960: REM FINE.FINE. 6010 RETURN 6020 REM ERROR 6030 CALL ER 6035 POKE 45081,7: POKE 45083,18: REM MELODOS 6040 E = PEEK (222) 6050 VTAB 24: HTAB 1: PRINT HK$; 6070 IF E > 15 THEN PRINT HI$ME$(38)E;ME$(39); PEEK (218) + 256 * PEEK (219);HN$;:DN = 255: GOSUB 180: GOTO 6150: REM ERR IN LOC 6080 PRINT HI$ME$(40)HN$;: REM ERRORE DEL DISCO! 6090 DN = 20:CN = 45 6100 FOR I = 1 TO 3 6110 GOSUB 200: NEXT 6120 PRINT " "PB$;: GOSUB 740 6130 GOTO 6250: REM RESTART 6140 REM END 6150 VTAB 5: HTAB 5 6160 PR# 0: IN# 0: HIMEM: 32768: TEXT : END 6170 REM 6180 REM ############# 6190 REM # MAIN PROG # 6200 REM ############# 6210 REM ENTRY CON VARIABILI 6220 REM GIA' A POSTO 6230 VTAB 1: PRINT 6240 PRINT OP$FI$: REM IMPREV. 6250 GOSUB 2700: REM NEXT PLYR 6260 GOTO 6290: REM --- LEVARE PER TEST --- 6270 VTAB 24: HTAB 1:PR$ = "TIRO ? ": GOSUB 1770:TD = NU: GOTO 6300 6280 REM --------------- 6290 GOSUB 1190: REM TIRO 6300 GOSUB 800: REM MOSSA 6310 GOSUB 3990: REM DISPLAY 6320 GOSUB 4640: REM CONSEG. 6330 IF CD THEN 6310: REM IMPR. 6340 GOSUB 5540: REM AZIONE 6350 GOSUB 5760: REM VITTORIA? 6360 IF DD THEN 6290: REM DOPPI 6370 GOTO 6250: REM NEXT PLYR 6380 REM # TEST ENTRY # 6390 VTAB 1: PRINT 6400 PRINT CHR$ (4)"BLOAD VPT" 6410 PRINT CHR$ (4)"BLOAD VT" 6420 GOTO 6230: REM MAIN