InfernalKeith Posted February 28, 2010 Share Posted February 28, 2010 Anyone else as interested in really old code as me... here's a 1980 game called "Santa Paravia and Fiumaccio." It was originally released in TI BASIC by the Instant Software company, based on a 1978 magazine type-in program. The concept is a variation on the classic "Hammurabi" game, in which you grow crops, allocate land, feed peasants, and attempt to maintain rule over your kingdom. SP&F introduces several other ideas, like building marketplaces, mills and palaces, collecting taxes, and training an army to protect your land. The object is to rise from a "sir" to a "baron" and through several other ranks to "king." I'm writing up an article about this game for Retrogaming Times Monthly. It's the oldest piece of original software I own, dated 1980, its documentation only mentioning the 99/4 (the 4A wasn't released yet). It'll work fine in Extended BASIC in Classic99, and will run faster and not give you MEMORY FULL errors. There are no graphics whatsoever - it's all text. Talk about old school! Keith 100 REM SANTA PARAVIA AND FIUMACCIO VERSION 7.2 110 REM COPYRIGHT (C) 1980,INSTANT SOFTWARE,INC. (P) 120 CALL CLEAR 135 OPTION BASE 0 140 DIM AA(6),BB(6),CC(6),D(6),GG(6),HH(6),II(6),JJ(6),K(6),LL(6),M(6),N$(6),N(6),O(6),P(6),Q(6),RR(6),SS(6) 145 DIM T$(6),T(6),U(6),V(6) 150 RANDOMIZE 160 YY=1400 165 NW=0 170 DATA "SIR","BARON","COUNT","MARQUIS","DUKE","GRAND DUKE","PRINCE","*H.R.H. KING" 180 DATA "LADY","BARONESS","COUNTESS","MARQUISE","DUCHESS","GRAND DUCHESS","PRINCESS","*H.R.H. QUEEN" 190 DATA "SANTA PARAVIA","FIUMACCIO","TORRICELLA","MOLINETTO","FONTANILE","ROMAGNA" 210 PRINT: : :"SANTA PARAVIA AND FIUMACCIO": : : : : : : : : : : 260 RESTORE 190 270 PRINT "HOW MANY PEOPLE WANT TO PLAY SANTA PARAVIA ? "; 280 GOSUB 5630 290 F=KV 300 IF F<1 THEN 315 310 IF F<=6 THEN 320 315 CALL CLEAR 317 GOTO 270 320 FOR A=1 TO F 325 CALL CLEAR 330 READ T$(A) 350 PRINT:"WHO IS THE RULER OF ";T$(A); 360 INPUT N$(A) 370 N$(A)=N$(A)&" OF "&T$(A) 380 PRINT: :"IS ";N$(A): 385 INPUT "A MAN OR A WOMAN ? ":K$ 390 V(A)=0 410 IF(SEG$(K$,1,1)<>"W")*(SEG$(K$,1,1)<>"M")THEN 380 415 IF SEG$(K$,1,1)="M" THEN 420 417 V(A)=8 420 GG(A)=25 430 HH(A)=10 440 II(A)=5 450 JJ(A)=2 460 K(A)=1000 470 LL(A)=10000 480 RR(A)=5000 490 T(A)=1 500 U(A)=1 510 N(A)=4 520 P(A)=25 530 Q(A)=5 540 M(A)=25 550 SS(A)=2000 560 NEXT A 570 FOR A=1 TO F 580 RESTORE 590 B@=V(A)+T(A) 600 FOR C2=1 TO B@ 610 READ T$(A) 620 NEXT C2 630 NEXT A 650 U(0)=9 660 GOSUB 1300 670 E=E+1 672 IF NW=F THEN 18690 675 IF E>F THEN 695 677 IF T(E)<8 THEN 680 679 GOTO 670 680 IF T(E)<>-1 THEN 690 685 E=E+1 690 IF E<=F THEN 730 695 E=0 700 YY=YY+1 710 GOSUB 1300 720 GOTO 670 730 GOSUB 1430 740 GOSUB 2040 750 GOSUB 2950 760 GOSUB 2420 780 GOSUB 4020 790 GOSUB 4550 800 GOTO 670 810 CALL CLEAR 815 CALL SCREEN(14) 820 PRINT TAB(9);"COMPARE NOBLES": : : 830 FOR A=1 TO F 834 PRINT:T$(A);" ";N$(A) 836 PRINT "HAS";N(A);"NOBLES": 850 NEXT A 854 PRINT: : 855 GOSUB 1110 856 CALL SCREEN(7) 860 PRINT TAB(;"COMPARE SOLDIERS": : : 870 FOR A=1 TO F 875 PRINT:T$(A);" ";N$(A) 880 PRINT "HAS";P(A);"SOLDIERS": 890 NEXT A 891 PRINT: : 895 GOSUB 1110 896 CALL SCREEN(16) 900 PRINT TAB(9);"COMPARE CLERGY": : : 910 FOR A=1 TO F 920 PRINT:T$(A);" ";N$(A) 925 PRINT "HAS";Q(A);"CLERGYMEN": 930 NEXT A 931 PRINT: : 935 GOSUB 1110 936 CALL SCREEN(11) 940 PRINT TAB(7);"COMPARE MERCHANTS": : : 950 FOR A=1 TO F 960 PRINT T$(A);" ";N$(A) 965 PRINT "HAS";M(A);"MERCHANTS": : 970 NEXT A 971 PRINT: : 975 GOSUB 1110 976 CALL SCREEN(5) 980 PRINT TAB(9);"COMPARE SERFS": : : 990 FOR A=1 TO F 1000 PRINT:T$(A);" ";N$(A) 1005 PRINT "HAS";SS(A);"SERFS": 1010 NEXT A 1011 PRINT: : 1015 GOSUB 1110 1016 CALL SCREEN(4) 1020 PRINT TAB(6);"COMPARE LAND OWNED": : : 1030 FOR A=1 TO F 1040 PRINT:T$(A);" ";N$(A) 1045 PRINT "HAS";LL(A);"HECTARES OF LAND": 1050 NEXT A 1051 PRINT: : 1055 GOSUB 1110 1056 CALL SCREEN(12) 1060 PRINT TAB(7);"COMPARE TREASURIES": : : 1070 FOR A=1 TO F 1080 PRINT:T$(A);" ";N$(A) 1085 PRINT "HAS";K(A);"GOLD FLORINS": 1090 NEXT A 1091 PRINT: : 1110 INPUT " (PRESS ENTER)":A$ 1115 CALL CLEAR 1116 CALL SCREEN(4) 1120 RETURN 1130 I=INT(I) 1140 RETURN 1150 C2=INT(C2) 1160 RETURN 1170 S=INT(S) 1180 RETURN 1190 K(E)=INT(K(E)) 1200 RETURN 1210 Z=INT((3+A*RND)*SS(E)/100) 1220 PRINT: : :Z;"SERFS BORN THIS YEAR" 1230 SS(E)=SS(E)+Z 1240 RETURN 1250 Z=INT((3+RND*A*SS(E))/100) 1260 Z@=Z 1270 PRINT Z;"SERFS DIED THIS YEAR" 1280 SS(E)=SS(E)-Z 1290 RETURN 1300 W=INT((RND*5+RND*6)/2) 1305 IF W<1 THEN 1300 1310 ON W GOTO 1320,1340,1360,1380,1400 1320 W$="DROUGHT - FAMINE THREATENS" 1330 GOTO 1410 1340 W$="BAD WEATHER - POOR HARVEST" 1350 GOTO 1410 1360 W$="NORMAL WEATHER AND HARVEST" 1370 GOTO 1410 1380 W$="GOOD WEATHER - FINE HARVEST" 1390 GOTO 1410 1400 W$="EXCELLENT WEATHER & HARVEST" 1410 R=INT(RND*50) 1420 RETURN 1430 RR(E)=RR(E)-RR(E)*R/100 1440 X=LL(E) 1450 Y=(SS(E)-D(E)*100)*5 1460 IF Y>=0 THEN 1470 1465 Y=0 1470 IF Y>=X THEN 1480 1475 X=Y 1480 Y=RR(E)*2 1490 IF Y>=X THEN 1500 1495 X=Y 1500 RR(E)=RR(E)-X/2 1510 Y=W-.5 1520 H@=X*Y 1530 RR(E)=INT(RR(E)+H@+5000) 1540 D@=N(E)*100+CC(E)*40+M(E)*30+P(E)*10+SS(E)*5 1545 D@=INT(D@) 1550 L=(3*W+RND*6+12)/10 1560 IF W<>1 THEN 1570 1565 L=L-1 1570 IF H@>=1 THEN 1580 1575 Y=2 1580 GOTO 1610 1590 Y=D@/H@ 1600 IF Y<=2 THEN 1610 1605 Y=2 1610 IF Y>=8 THEN 1620 1615 Y=8 1620 L=L*Y 1630 L=INT(L*10/3) 1640 L=L/10 1650 Z=6-W 1660 G=INT((Z*3+3+RND*5)/5*Y*20)/10 1670 RETURN 1690 PRINT:"RATS ATE ";R;"%";"OF YOUR RESERVES" 1700 PRINT W$:TAB(11);"(";H@;" STERES)": 1720 IF K(E)>=32766 THEN 1730 1725 GOSUB 1190 1726 RR(E)=INT(RR(E)) 1730 PRINT "GRAIN RESERVE =";RR(E);"STERES" 1740 PRINT "GRAIN DEMAND =";D@;"STERES" 1750 PRINT "PRICE OF GRAIN=";G;"/1000ST" 1760 PRINT "PRICE OF LAND =";L;"/HECTARE" 1770 PRINT "(THE TREASURY CONTAINS ";K(E);" FLORINS.)" 1780 RETURN 1790 J=INT((JJ(E)*300-500)*T(E)) 1800 ON JJ(E)GOTO 1810,1830,1850,1870 1810 J$="VERY FAIR" 1820 GOTO 1880 1830 J$="MODERATE" 1840 GOTO 1880 1850 J$="HARSH" 1860 GOTO 1880 1870 J$="OUTRAGEOUS" 1880 Y=150-GG(E)-HH(E)-II(E) 1890 IF Y>=1 THEN 1900 1895 Y=1 1900 C@=(N(E)*180+Q(E)+75+M(E)*20)*(Y/100)+U(E)*100 1910 S@=(N(E)*50+M(E)*75+U(E)*15)*(Y/100)*(5-JJ(E))/2 1920 I@=N(E)*250+U(E)*25+(10*JJ(E)*N(E))*(Y/100) 1930 C@=INT(C@*GG(E)/100) 1940 IF C@>=32760 THEN 1950 1945 GOSUB 1150 1950 S@=INT(S@*HH(E)/100) 1960 IF S@>=32760 THEN 1970 1965 GOSUB 1170 1970 I@=INT(I@*II(E)/100) 1980 IF I@>=32760 THEN 1990 1985 GOSUB 1130 1990 PRINT "STATE REVENUES ARE";J+C@+S@+I@;"GOLD FLORINS" 1995 PRINT:"TAX";TAB(14);"RATE";TAB(25);"AM'T" 2000 PRINT:"CUSTOMS DUTY";TAB(13);GG(E);"%";TAB(24);INT(C@) 2005 PRINT "SALES TAX";TAB(13);HH(E);"%";TAB(24);INT(S@) 2010 PRINT "INCOME TAX";TAB(13);II(E);"%";TAB(24);INT(I@) 2015 PRINT "JUSTICE";TAB(14);J$;TAB(24);J: 2030 RETURN 2040 CALL CLEAR 2060 PRINT TAB(10);YY;"A.D.":T$(E);" ";N$(E) 2070 GOSUB 1690 2080 PRINT:"0. CONTINUE GAME" 2090 PRINT "1. BUY GRAIN":"2. SELL GRAIN":"3. BUY LAND":"4. SELL LAND" 2100 PRINT "YOUR CHOICE ? "; 2110 GOSUB 5630 2120 I@=KV 2130 IF I@>4 THEN 2090 2140 IF I@>=1 THEN 2160 2150 RETURN 2156 CALL CLEAR 2157 GOSUB 1680 2160 ON I@ GOTO 2165,2235,2305,2345 2165 PRINT "HOW MUCH GRAIN DO YOU WANT" 2170 INPUT "TO BUY ? ":I@ 2180 K(E)=K(E)-(I@*G/1000) 2190 RR(E)=RR(E)+I@ 2200 CALL CLEAR 2210 PRINT:T$(E);" ";N$(E) 2220 GOSUB 1720 2230 GOTO 2080 2235 PRINT "HOW MUCH GRAIN DO YOU WANT" 2240 INPUT "TO SELL ? ":I@ 2250 IF I@<=RR(E)THEN 2280 2260 PRINT "YOU DON'T HAVE IT": 2270 GOTO 2240 2280 K(E)=K(E)+(I@*G/1000) 2290 RR(E)=RR(E)-I@ 2300 GOTO 2200 2305 PRINT "HOW MANY HECTARES DO YOU" 2310 INPUT "WANT TO BUY ? ":I@ 2320 LL(E)=LL(E)+I@ 2330 K(E)=K(E)-(I@*L) 2340 GOTO 2200 2345 PRINT "HOW MANY HECTARES DO YOU" 2350 INPUT "WANT TO SELL ? ":I@ 2360 IF I@<=(LL(E)-5000)THEN 2390 2370 PRINT " YOU CAN'T SELL THAT MUCH !" 2380 GOTO 2345 2390 LL(E)=LL(E)-I@ 2400 K(E)=K(E)+(I@*L) 2410 GOTO 2200 2420 CALL CLEAR 2440 PRINT TAB(10);YY;"A.D.":T$(E);" ";N$(E): : 2460 GOSUB 1790 2470 PRINT:"0.NO CHANGE IN TAXES" 2480 PRINT "1.CUSTOMS DUTY":"2.SALES TAX":"3.WEALTH TAX":"4.JUSTICE" 2490 PRINT:"YOUR CHOICE ? "; 2500 GOSUB 5630 2510 I=KV 2520 IF I<=4 THEN 2550 2540 GOTO 2500 2550 IF I<1 THEN 2870 2560 ON I GOTO 2570,2640,2710,2780 2570 INPUT "NEW CUSTOMS DUTY (0-100)":I 2580 IF I<=100 THEN 2600 2590 I=100 2600 IF I>=0 THEN 2620 2610 I=0 2620 GG(E)=I 2630 GOTO 2420 2640 INPUT "NEW SALES TAX(0 TO 50)":I 2650 IF(I>=0)+(I<=50)THEN 2690 2660 I=5 2690 HH(E)=I 2700 GOTO 2420 2710 INPUT "NEW WEALTH TAX (0 TO 25)":I 2720 IF(I<=25)+(I>=0)THEN 2760 2730 I=0 2760 II(E)=I 2770 GOTO 2420 2780 PRINT:"JUSTICE:":"1.VERY FAIR 2.MODERATE":"3.HARSH 4.OUTRAGEOUS" 2790 GOSUB 5630 2800 I=KV 2810 IF(I<=4)+(I>=1)THEN 2850 2820 I=1 2850 JJ(E)=I 2860 GOTO 2420 2870 K(E)=INT(K(E)+C@+S@+I@+J) 2880 IF K(E)>=0 THEN 2900 2890 K(E)=INT(K(E)*1.5) 2900 IF K(E)<(-1000*T(E))THEN 5020 2910 IF(GG(E)+HH(E)+II(E))>=20 THEN 2920 2920 IF JJ(E)<>0 THEN 2940 2930 U(E)=U(E)+.2 2940 RETURN 2950 PRINT "RELEASE HOW MUCH GRAIN" 2965 INPUT "TO THE PEOPLE?":G@ 2970 IF G@>=RR(E)/5 THEN 3000 2980 PRINT "YOU MUST RELEASE AT LEAST 20% OF YOUR RESERVES." 2990 GOTO 2950 3000 IF G@<=(RR(E)-(RR(E)/5))THEN 3030 3010 PRINT "YOU MUST KEEP AT LEAST 20% OF YOUR RESERVES." 3020 GOTO 2950 3030 RR(E)=RR(E)-G@ 3040 CALL CLEAR 3050 PRINT TAB(10);YY:T$(E);" ";N$(E) 3070 Z=G@/D@-1 3080 IF Z<=0 THEN 3100 3090 Z=Z/2 3100 IF Z<=.25 THEN 3120 3110 Z=Z/10+.25 3120 Z@=50-GG(E)-HH(E)-II(E) 3130 IF Z@>=0 THEN 3150 3140 Z@=Z@*JJ(E) 3150 Z@=Z@/10 3160 IF Z@<=0 THEN 3180 3170 Z@=Z@+3-JJ(E) 3180 Z=Z+(Z@/10) 3190 IF Z<=.5 THEN 3210 3200 Z=.5 3210 IF G@<(D@-1)THEN 3600 3220 A=3 3230 GOSUB 1210 3240 A=2 3250 GOSUB 1250 3260 IF GG(E)+HH(E)>=35 THEN 3280 3270 M(E)=INT(M(E)+4*RND) 3280 IF II(E)>=RND*20 THEN 3310 3290 Q(E)=INT(Q(E)+RND*3-1) 3300 N(E)=INT(N(E)+2*RND-1) 3310 IF G@<(D@+D@*.3)THEN 3490 3320 Z@=SS(E)/1000 3330 Z=(G@-D@)/D@*10 3340 Z=Z*Z@*15+RND*40 3350 IF Z<=32000 THEN 3370 3360 Z=32000 3370 Z@=Z 3380 Z=INT(Z/2+24*RND) 3390 PRINT Z;"SERFS MOVE TO THE CITY" 3400 SS(E)=SS(E)+Z 3410 U(E)=U(E)+.5 3420 Z@=Z/5 3430 Z=INT(RND*Z@) 3440 IF Z<=50 THEN 3460 3450 Z=50 3460 M(E)=M(E)+Z 3470 N(E)=N(E)+1 3480 Q(E)=Q(E)+2 3490 IF JJ(E)<3 THEN 3590 3500 J@=SS(E)/100*(JJ(E)-2)*(JJ(E)-2) 3510 IF J@>=4 THEN 3530 3520 J@=4 3530 IF U(E)<=2 THEN 3550 3540 U(E)=U(E)-JJ(E)/10 3550 J@=INT(J@/2) 3560 J@=INT(J@*RND+J@) 3570 SS(E)=SS(E)-J@ 3580 PRINT J@;"SERFS FLEE HARSH JUSTICE" 3590 GOTO 3720 3600 X=(D@-G@)/D@*100-9 3610 X@=X 3620 IF X>=0 THEN 3650 3630 X@=0 3640 X=0 3650 A=2 3660 GOSUB 1210 3670 A=X@+5 3680 GOSUB 1250 3690 IF Z@<=1000 THEN 3710 3700 U(E)=U(E)/2 3710 GOTO 3490 3720 Z=AA(E)*75 3730 K(E)=K(E)+Z 3740 IF Z<=0 THEN 3760 3750 PRINT:"YOUR MARKET EARNED ";Z;" FLORINS RENT." 3760 IF SS(E)>=32766 THEN 3800 3770 S@=SS(E) 3780 GOSUB 1170 3790 SS(E)=S@ 3800 Z=INT(D(E)*(55+RND*250)) 3810 IF Z<=0 THEN 3840 3820 K(E)=K(E)+Z 3830 PRINT:"YOUR WOOLEN MILL EARNED ";Z;" FLORINS." 3840 Z=P(E)*3 3850 PRINT:"YOU PAID YOUR SOLDIERS";Z;"FLORINS": : : : 3860 K(E)=K(E)-Z 3870 IF(LL(E)/1000)>P(E)THEN 5170 3880 IF(LL(E)/500)<P(E)THEN 3960 3890 IF X<=65 THEN 3920 3900 X=65 3910 M(E)=INT(M(E)) 3920 FOR A=1 TO F 3930 IF A=E THEN 3950 3940 IF P(A)>(P(E)*2.4)THEN 5170 3950 NEXT A 3960 INPUT "(PRESS ENTER)":A$ 3970 RETURN 4020 CALL CLEAR 4040 PRINT TAB(10);YY;"A.D.":T$(E);" ";N$(E) 4050 PRINT: :"***** STATE PURCHASES *****" 4055 PRINT "0.NO PURCHASES 0.00 FLORINS" 4060 PRINT "1.MARKETPLACE 1000 FLORINS" 4070 PRINT "2.WOOLEN MILL 2000 FLORINS" 4080 PRINT "3.PALACE 3000 FLORINS" 4090 PRINT "4.CATHEDRAL 5000 FLORINS" 4100 PRINT "5.EQUIP 20 SERFS":" AS SOLDIERS 500 FLORINS" 4110 PRINT "6.COMPARE STANDINGS": 4120 PRINT:"YOU HAVE";INT(K(E));"GOLD FLORINS": 4130 IF K(E)<-30000 THEN 5020 4150 PRINT:"YOUR CHOICE ? "; 4160 GOSUB 5630 4170 I=KV 4175 IF I>=7 THEN 4160 4176 IF I=0 THEN 1120 4270 ON I GOSUB 4360,4320,4410,4460,4510,810 4310 GOTO 4020 4320 D(E)=D(E)+1 4330 K(E)=K(E)-2000 4340 U(E)=U(E)+.25 4350 RETURN 4360 AA(E)=AA(E)+1 4370 M(E)=M(E)+5 4380 K(E)=K(E)-1000 4390 U(E)=U(E)+.1 4400 RETURN 4410 BB(E)=BB(E)+1 4420 N(E)=INT(N(E)+RND*2) 4430 K(E)=K(E)-3000 4440 U(E)=U(E)+.5 4450 RETURN 4460 CC(E)=CC(E)+1 4470 Q(E)=INT(Q(E)+RND*6) 4480 K(E)=K(E)-5000 4490 U(E)=U(E)+1 4500 RETURN 4510 P(E)=P(E)+20 4520 SS(E)=SS(E)-20 4530 K(E)=K(E)-500 4540 RETURN 4550 Z=0 4551 TT=0 4560 A=AA(E) 4570 GOSUB 4910 4580 A=BB(E) 4590 GOSUB 4910 4600 A=CC(E) 4610 GOSUB 4910 4620 A=D(E) 4630 GOSUB 4910 4640 A=K(E)/5000 4650 GOSUB 4910 4660 A=LL(E)/6000 4670 GOSUB 4910 4680 A=M(E)/50 4690 GOSUB 4910 4700 A=N(E)/5 4710 GOSUB 4910 4720 A=P(E)/50 4730 GOSUB 4910 4740 A=Q(E)/10 4750 GOSUB 4910 4760 A=SS(E)/2000 4770 GOSUB 4910 4780 A=U(E)/5 4790 GOSUB 4910 4800 A=INT(Z/8-JJ(E)+1) 4805 IF A<=8 THEN 4810 4806 A=8 4810 IF(YY+2)<>O(E)THEN 4830 4820 T(E)=T(E)+1 4830 IF T(E)>=A THEN 4900 4840 T(E)=A 4850 RESTORE 4860 FOR B=1 TO(T(E)+V(E)) 4870 READ T$(E) 4880 NEXT B 4890 IF T(E)>=8 THEN 4980 4900 RETURN 4910 TT=TT+A 4920 IF A<=10 THEN 4940 4930 A=10 4940 A=INT(A) 4950 Z=Z+A 4960 RETURN 4970 REM KING OR QUEEN 4980 CALL CLEAR 4985 PRINT: : : : :"LONG LIVE ";T$(E);" ";N$(E);"!!!!!": : : : : : : : : : 4990 FOR WAIT=1 TO 200 4995 NEXT WAIT 5000 GOSUB 810 5010 GOSUB 5510 5012 INPUT "PRESS ENTER TO CONTINUE":Z$ 5015 GOTO 4960 5020 CALL CLEAR 5030 PRINT:T$(E);" ";N$(E);" IS BANKRUPT." 5040 PRINT:"CREDITORS HAVE SEIZED MUCH OF YOUR ASSETS": 5060 INPUT "(PRESS ENTER)":A$ 5070 AA(E)=0 5080 BB(E)=0 5090 CC(E)=0 5100 D(E)=0 5110 LL(E)=6000 5120 U(E)=1 5130 K(E)=100 5140 M(E)=INT(M(E)/2) 5150 RR(E)=5000 5160 RETURN 5170 Z=0 5180 FOR A=1 TO F 5190 IF A=E THEN 5240 5200 IF P(A)<P(E)THEN 5240 5210 IF P(A)<(1.2*(LL(A)/1000))THEN 5240 5220 IF P(A)<=P(Z)THEN 5240 5230 Z=A 5240 NEXT A 5250 IF Z<>0 THEN 5300 5260 T$(0)="BARON" 5270 N$(0)="PEPPONE OF MONTERANA" 5280 A@=INT(9000*RND+1000) 5290 GOTO 5310 5300 A@=INT(P(Z)*1000-LL(Z)/3) 5310 IF A@<=(LL(E)-5000)THEN 5330 5320 A@=INT((LL(E)-5000)/2) 5330 PRINT T$(Z);" ";N$(Z);"INVADES AND SEIZES";A@;"HECTARES OF LAND" 5340 LL(Z)=LL(Z)+A@ 5350 Z=INT(RND*41) 5360 IF Z<=(P(E)-15)THEN 5380 5370 Z=P(E)-15 5380 PRINT T$(E);" ";N$(E);" LOSES";Z;" SOLDIERS IN BATTLE" 5390 P(E)=P(E)-Z 5400 INPUT "(PRESS ENTER)":A$ 5410 RETURN 5490 GOSUB 3980 5500 GOSUB 810 5510 TT=TT+F 5520 TY=YY-1400 5530 TZ=TT*10/TY 5540 CALL CLEAR 5550 PRINT: :"TOURNAMENT WINNER IS ";N$(E) 5560 PRINT "SCORE IS ";TZ:" YEAR IS";YY 5570 V$=STR$(U(E))&" "&SEG$(N$(E),1,6)&" 72"&STR$(TY-7)&STR$(TT)&STR$(T(E)) 5590 PRINT:"TOURNAMENT VERIFICATION CODE" 5600 PRINT V$ 5610 PRINT "(MUST BE REPORTED TO CERTIFY TOURNAMENT)" 5615 NW=NW+1 5620 RETURN 5630 CALL KEY(0,KV,KS) 5635 IF KS=0 THEN 5630 5640 K$=CHR$(KV) 5645 IF(KV<48)+(KV>57)THEN 5630 5650 KV=VAL(K$) 5667 PRINT KV 5668 FOR WAIT=1 TO 50 5669 NEXT WAIT 5670 RETURN 18690 END Quote Link to comment Share on other sites More sharing options...
ti99iuc Posted February 28, 2010 Share Posted February 28, 2010 It'll work fine in Extended BASIC in Classic99, and will run faster and not give you MEMORY FULL errors. There are no graphics whatsoever - it's all text. good, i would want to try but i can't do it, when i paste all copied in Classic99 it stops on first line and init to beep... :-( ... someone can help me in copy and paste with classic99 ? maybe i wrong something ? thanks Quote Link to comment Share on other sites More sharing options...
+retroclouds Posted February 28, 2010 Share Posted February 28, 2010 (edited) Hi! In the newer versions of the classic99 emulator a "CLIP" device got introduced. The idea is that you can use it to copy something to and from the clipboard. Suppose you already have a basic program loaded from a disk file, you can then copy it to the windows clipboard by doing LIST "CLIP" It allows you then to then easily copy it in for example windows notepad. Now you can also do the reverse and import from the clipboard. I am certain that I did that a while ago, but somehow I keep getting I/O errors now, I also don't recall if I have to use MERGE CLIP or OLD CLIP. I think Owen could know or we have to ask Tursi. Think it is about time to do a "tips & tricks" article on classic99. EDIT: I have asked in the YAHOO online group about this. Waiting for feedback. Edited February 28, 2010 by retroclouds Quote Link to comment Share on other sites More sharing options...
Opry99er Posted February 28, 2010 Share Posted February 28, 2010 (edited) Just copy it and "Paste" into Classic99. Pasting does what MERGE or OLD used to do. Dropdown menu, "EDIT-->PASTE". Whatever is on the clip is now in your program. . Booyakasha Edited February 28, 2010 by Opry99er Quote Link to comment Share on other sites More sharing options...
JamesD Posted February 28, 2010 Share Posted February 28, 2010 (edited) Most versions I'm aware of had graphics. The Apple II version used Lo-Res, the TRS-80 Model I had it's primitive graphics, the Panasonic JR-200 used it's character graphics, etc... All I saw on the Atari version was text. I think the only version with fancy graphics was for the C64. <edit> I'm guessing they ran out of memory on the TI. Edited February 28, 2010 by JamesD Quote Link to comment Share on other sites More sharing options...
Opry99er Posted February 28, 2010 Share Posted February 28, 2010 I've never even heard of this game! Thanks for posting, Keith. I'll try a paste when I get home from church Quote Link to comment Share on other sites More sharing options...
InfernalKeith Posted February 28, 2010 Author Share Posted February 28, 2010 Most versions I'm aware of had graphics. The Apple II version used Lo-Res, the TRS-80 Model I had it's primitive graphics, the Panasonic JR-200 used it's character graphics, etc... All I saw on the Atari version was text. I think the only version with fancy graphics was for the C64. <edit> I'm guessing they ran out of memory on the TI. Yeah, this one eats up all 16K and actually wouldn't run after loading if a disk drive was attached, because the drive eats up a few precious bytes. This would be another prime candidate for a modern-day update, if everyone's plates weren't full of other projects. The TI versions of a lot of third-party houses seemed to have been afterthoughts, or first-time 'hey, let's try this out' projects. I reviewed the Avalon Hill game "Galaxy" on my website, and noted that the TI version was very limited and primitive compared to the versions described for other machines in the docs. The worst offender I've ever seen of this was Cosmi's "Aztec Challenge" -- a simple, but graphically interesting jump-and-duck game on the C64, with a really cool soundtrack. The TI version looks like a bad type-in program sent in to a magazine by a 5th grader. Quote Link to comment Share on other sites More sharing options...
ti99iuc Posted February 28, 2010 Share Posted February 28, 2010 Just copy it and "Paste" into Classic99. Pasting does what MERGE or OLD used to do. Dropdown menu, "EDIT-->PASTE". Whatever is on the clip is now in your program. . Booyakasha Thanks to Retroclouds and opry99er for answer but i do not understand where i wrong... when i paste it does not wrap and it block to the first line... :-( ..Yet it should be simple :-( ... help to understand please... Quote Link to comment Share on other sites More sharing options...
InfernalKeith Posted February 28, 2010 Author Share Posted February 28, 2010 Just copy it and "Paste" into Classic99. Pasting does what MERGE or OLD used to do. Dropdown menu, "EDIT-->PASTE". Whatever is on the clip is now in your program. . Booyakasha Thanks to Retroclouds and opry99er for answer but i do not understand where i wrong... when i paste it does not wrap and it block to the first line... :-( ..Yet it should be simple :-( ... help to understand please... Try this: paste it into Wordpad or Notepad first. Then copy it from there, and PASTE into Classic99. That has worked for me before. It seems to add a line break to each line. Quote Link to comment Share on other sites More sharing options...
Opry99er Posted February 28, 2010 Share Posted February 28, 2010 Yea... That's an easy fix--- paste the listing into notepad, go through and put each line on it's own line by hitting return repeatedly on each line. Re-copy, then paste into Classic99 and do the happy success dance Quote Link to comment Share on other sites More sharing options...
InfernalKeith Posted February 28, 2010 Author Share Posted February 28, 2010 Yea... That's an easy fix--- paste the listing into notepad, go through and put each line on it's own line by hitting return repeatedly on each line. Re-copy, then paste into Classic99 and do the happy success dance I didn't even have to do that, in WordPad. Just pasting it in, and then copying it back out, worked for me. Quote Link to comment Share on other sites More sharing options...
ti99iuc Posted February 28, 2010 Share Posted February 28, 2010 Try this: paste it into Wordpad or Notepad first. Then copy it from there, and PASTE into Classic99. That has worked for me before. It seems to add a line break to each line. wow !!! WordPad work fine... in notepad i have the same problem paste the code all in one line... finally i can check all lines on this forum and not only :-) just a bit slow (now at line 4000 )... thanks all... I'm going to enjoy myself :-) ciro. Quote Link to comment Share on other sites More sharing options...
Opry99er Posted February 28, 2010 Share Posted February 28, 2010 By the way, 95% of the XB or BASIC listings on this forum won't require that mod. Also, most of them aren't that long, so even if you need to make a mod, it won't take but a few seconds. Quote Link to comment Share on other sites More sharing options...
sometimes99er Posted February 28, 2010 Share Posted February 28, 2010 By the way, 95% of the XB or BASIC listings on this forum won't require that mod. Also, most of them aren't that long, so even if you need to make a mod, it won't take but a few seconds. I think it’s has more to do with ones OS, browser and clipboard. Somehow linefeeds goes missing. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.