-
Content Count
805 -
Joined
-
Last visited
Posts posted by InfernalKeith
-
-
Since I doubt all you runners-up are going to divulge your secrets, I thought I'd stir the pot with this thread. If ya have a pair you should surely (or surly) respond here!
And don't worry... I'll post pictures of my new CF device in mid March ! HAHAHahahahahaha
Not if I post pictures of myself chucking it into Boston Harbor first! XB is gonna stand for Xasperated Brit when I'm done!
Hey, this is fun.

-
That's my next 30-line program. FOOLISH EARTHLING... BEWARE THE WRATH... OF THE BOOLEAN COMPARATORS!!!!!!!!!!!
-
I've put up a video recorded in Classic99 on my blog. However, I've had at least one complaint that nothing could be seen. Is anyone else having difficulty viewing it?
It's at http://www.adamantyr.com/blog
Thanks,
Adamantyr
Not working for me. I'm seeing the same little 'lightshow' I see when I play a CD through Windows Media Player.

-
Dammit, Owen! I was supposed to be working tonight.


Enemy Lines is a board game. Each digit you see on the game board above is a pawn. The goal is to get as many of your pawns as possible across the board and onto your color bar. When a pawn reaches the color bar, its number is added to your score.
Each turn, one random square on the board will be bombed. Any pawn on the bombed square will be eliminated, and that square will remain impassable for the rest of the game.
If your pawn encounters an enemy pawn, the two will battle until one is killed, battling in a manner similar to the dice-rolling battle sequence in the board game Risk. Thus, your 9 could become a 1 or a 2 well before it makes it to the color bar.
There will also be a few power-ups to boost your pawns' point values, or decrease your enemy's, but I haven't exactly decided how to implement those yet (esp. given the line limitation).
When all of one player's pawns are off the board, the player with the most points wins.
My goal is to include at least a simple AI so that the game can be played by one or two players.
So far, the pawns are generated and placed properly, and most of the game variables and screen drawing is done. I have to try to condense the turn loop and battle sequence into as few lines as possible.
Hopefully this one should only take me a week or so, and then I can get roped into yet another TI-related distraction.

-
2
-
-
Do it!!!
. You've got plenty of time and another InfernalKeith game would be a welcome entry!Dude, you have no idea how not true that is.
Every time I check this forum or Facebook, I can hear the sound of nickels and dimes rolling away, never to return. That's the problem with self-employment. You're never off the clock.Eh... sleep is for wimps. I'll knock it out.

-
Thinking I might enter this after all, depending on how my work week goes. I have a vague idea right now, and it's a game I want to write on the 99/4A and then convert to other platforms (Vic, Timex/Sinclair, etc). Many of them have really low built-in RAM, so a short game is essential. Gonna ponder it a little and see how I'm feeling about it this weekend... probably gonna keep this one under wraps till it's done, though.

-
I do have an extra complete Editor/Assembler, but I haven't tested the disks out yet. I also have Extended BASIC and at least one joystick adapter available. I haven't listed the E/A in my Ebay store yet, but was planning to this weekend. If you'd like, I'll test it tonight, and assuming it works, I can make you a deal on the whole shebang. Shoot me a private message through here, or email me at [email protected], if you're interested.
Keith
-
Thanks, you guys. I've been fretting about this all afternoon.
Filip, what did you do to make that happen?!

Think I'm gonna start working on the level editor tonight, if I can get this pile of work done. I don't have time, really, but I'm all geeked up about getting the final version of the game done now.
-
OK guys, I need some confirmations here. The picture that retroclouds posted in the contest thread shows level 1 of Herding Cats ALL jacked up. It's supposed to look like this:

And it does for me, both on my 99/4A and in Classic99.
Those of you who've tried the game out, did Level One look like this to you, or like the pic in the other thread? If the game is that jacked up, I have a major bug I didn't know about... but I don't know how that would have happened.
Thanks,
Keith
-
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.
-
Thank you, Filip!
I have to ask, and I may dread the answer, but did the Level 1 screen look like that when you started it? If so, there's a bug I knew nothing about - I hope it looked that way after you'd already done some modifications?
EDIT: Actually, the whole screen looks 'off' a bit. Not sure what's going on there?
Today is the day; the winners of the RGPC competition are to be announced!
This week we did an evaluation of the finished entries "Honeycomb Rapture" and "Herding Cats".
We -that's mainly me and my wife- had plenty of fun playing both games. We know both games still
contain some bugs, but we have ignored that in our evaluation. We only evaluated game functionality.
It was a very close race, let me tell you.
Herding Cats is more of a strategy game whereas Honeycomb Rapture goes arcade style all the way.
Comparing these games is difficult; both are clearly winners in their own league!
In terms of game ideas and instruction manual Herding Cats goes first.
I like the variety in tools. Imagine the idea of having a "CAT-a-pult". Brilliant!
The same goes for the different levels, a lot of variety there and certainly enough to drive you wild. Love it!
Honeycomb Rapture on the other hand offers some great arcade bee action.
It is a very responsive game. Considering we are talking about an Extended Basic game that surely is something
not te be taken for granted. Adding a breeze of assembly language was indeed a clever idea.
Both the graphics and the catchy tune during gameplay are highlights. The UFO stage is also very cool!
Now to the contest results....
"arcade" category
Owen wins The Pitfall! cartridge for doing Honeycomb Rapture.

"strategy" category
Keith wins The "Mechatronic Extended Basic II Plus cartridge" for doing Herding Cats.

Congratulations to both of you! Mission accomplished folks!
Even though we didn't have a high humber of finished contest entries, the competition had a lot of attention.
So for sure, not a bad start.
I also want to thank Karsten for his work on Destroyer.
Still hoping to see a playable version in the near future, cause that game will definitely kick *butts* big time

-
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.
. BooyakashaThanks 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.
-
OK, due to aforementioned work duties, this is NOT happening in time for the March issue of RTM.
I did my article on Santa Paravia (see other thread) and turned it in, and I'll have to make a go of this next weekend. In the middle of a big work push right now, so everything else is having to wait (including the revisions to Herding Cats that I need to do).Hopefully in the next couple weeks, it'll all fall into place and I'll be a coding and modifying machine.

-
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.
-
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 [email protected]=V(A)+T(A) 600 FOR C2=1 TO [email protected] 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 [email protected]=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 [email protected]=X*Y 1530 RR(E)=INT(RR(E)[email protected]+5000) 1540 [email protected]=N(E)*100+CC(E)*40+M(E)*30+P(E)*10+SS(E)*5 1545 [email protected]=INT([email protected]) 1550 L=(3*W+RND*6+12)/10 1560 IF W<>1 THEN 1570 1565 L=L-1 1570 IF [email protected]>=1 THEN 1580 1575 Y=2 1580 GOTO 1610 1590 [email protected]/[email protected] 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);"(";[email protected];" 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 =";[email protected];"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 [email protected]=(N(E)*180+Q(E)+75+M(E)*20)*(Y/100)+U(E)*100 1910 [email protected]=(N(E)*50+M(E)*75+U(E)*15)*(Y/100)*(5-JJ(E))/2 1920 [email protected]=N(E)*250+U(E)*25+(10*JJ(E)*N(E))*(Y/100) 1930 [email protected]=INT([email protected]*GG(E)/100) 1940 IF [email protected]>=32760 THEN 1950 1945 GOSUB 1150 1950 [email protected]=INT([email protected]*HH(E)/100) 1960 IF [email protected]>=32760 THEN 1970 1965 GOSUB 1170 1970 [email protected]=INT([email protected]*II(E)/100) 1980 IF [email protected]>=32760 THEN 1990 1985 GOSUB 1130 1990 PRINT "STATE REVENUES ARE";[email protected][email protected][email protected];"GOLD FLORINS" 1995 PRINT:"TAX";TAB(14);"RATE";TAB(25);"AM'T" 2000 PRINT:"CUSTOMS DUTY";TAB(13);GG(E);"%";TAB(24);INT([email protected]) 2005 PRINT "SALES TAX";TAB(13);HH(E);"%";TAB(24);INT([email protected]) 2010 PRINT "INCOME TAX";TAB(13);II(E);"%";TAB(24);INT([email protected]) 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 [email protected]=KV 2130 IF [email protected]>4 THEN 2090 2140 IF [email protected]>=1 THEN 2160 2150 RETURN 2156 CALL CLEAR 2157 GOSUB 1680 2160 ON [email protected] GOTO 2165,2235,2305,2345 2165 PRINT "HOW MUCH GRAIN DO YOU WANT" 2170 INPUT "TO BUY ? ":[email protected] 2180 K(E)=K(E)-([email protected]*G/1000) 2190 RR(E)=RR(E)[email protected] 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 ? ":[email protected] 2250 IF [email protected]<=RR(E)THEN 2280 2260 PRINT "YOU DON'T HAVE IT": 2270 GOTO 2240 2280 K(E)=K(E)+([email protected]*G/1000) 2290 RR(E)=RR(E)[email protected] 2300 GOTO 2200 2305 PRINT "HOW MANY HECTARES DO YOU" 2310 INPUT "WANT TO BUY ? ":[email protected] 2320 LL(E)=LL(E)[email protected] 2330 K(E)=K(E)-([email protected]*L) 2340 GOTO 2200 2345 PRINT "HOW MANY HECTARES DO YOU" 2350 INPUT "WANT TO SELL ? ":[email protected] 2360 IF [email protected]<=(LL(E)-5000)THEN 2390 2370 PRINT " YOU CAN'T SELL THAT MUCH !" 2380 GOTO 2345 2390 LL(E)=LL(E)[email protected] 2400 K(E)=K(E)+([email protected]*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)[email protected][email protected][email protected]+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?":[email protected] 2970 IF [email protected]>=RR(E)/5 THEN 3000 2980 PRINT "YOU MUST RELEASE AT LEAST 20% OF YOUR RESERVES." 2990 GOTO 2950 3000 IF [email protected]<=(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)[email protected] 3040 CALL CLEAR 3050 PRINT TAB(10);YY:T$(E);" ";N$(E) 3070 [email protected]/[email protected] 3080 IF Z<=0 THEN 3100 3090 Z=Z/2 3100 IF Z<=.25 THEN 3120 3110 Z=Z/10+.25 3120 [email protected]=50-GG(E)-HH(E)-II(E) 3130 IF [email protected]>=0 THEN 3150 3140 [email protected][email protected]*JJ(E) 3150 [email protected][email protected]/10 3160 IF [email protected]<=0 THEN 3180 3170 [email protected][email protected]+3-JJ(E) 3180 Z=Z+([email protected]/10) 3190 IF Z<=.5 THEN 3210 3200 Z=.5 3210 IF [email protected]<([email protected])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 [email protected]<([email protected][email protected]*.3)THEN 3490 3320 [email protected]=SS(E)/1000 3330 Z=([email protected]@)/[email protected]*10 3340 Z=Z*[email protected]*15+RND*40 3350 IF Z<=32000 THEN 3370 3360 Z=32000 3370 [email protected]=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 [email protected]=Z/5 3430 Z=INT(RND*[email protected]) 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 [email protected]=SS(E)/100*(JJ(E)-2)*(JJ(E)-2) 3510 IF [email protected]>=4 THEN 3530 3520 [email protected]=4 3530 IF U(E)<=2 THEN 3550 3540 U(E)=U(E)-JJ(E)/10 3550 [email protected]=INT([email protected]/2) 3560 [email protected]=INT([email protected]*[email protected]) 3570 SS(E)=SS(E)[email protected] 3580 PRINT [email protected];"SERFS FLEE HARSH JUSTICE" 3590 GOTO 3720 3600 X=([email protected]@)/[email protected]*100-9 3610 [email protected]=X 3620 IF X>=0 THEN 3650 3630 [email protected]=0 3640 X=0 3650 A=2 3660 GOSUB 1210 3670 [email protected]+5 3680 GOSUB 1250 3690 IF [email protected]<=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 [email protected]=SS(E) 3780 GOSUB 1170 3790 SS(E)[email protected] 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 [email protected]=INT(9000*RND+1000) 5290 GOTO 5310 5300 [email protected]=INT(P(Z)*1000-LL(Z)/3) 5310 IF [email protected]<=(LL(E)-5000)THEN 5330 5320 [email protected]=INT((LL(E)-5000)/2) 5330 PRINT T$(Z);" ";N$(Z);"INVADES AND SEIZES";[email protected];"HECTARES OF LAND" 5340 LL(Z)=LL(Z)[email protected] 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
-
I should have mentioned, the reason it loads variables from a tape file is because it takes up every square inch of real estate in RAM. You can't RUN it from BASIC with a disk system connected. I haven't tried to load it with disk connected yet.
If I can get it working in XB in Classic99, I'll leave further modifications to others. What do you have against square O's?

-
As reviewed in this month's Retrogaming Times Monthly, I'm planning to try to salvage the UK cassette game Atlantis, and bring it from cassette over into the modern, emulator-friendly world. I'm going to document the process for next month's RTM, if only so everyone can see my make-every-mistake-in-the-book-twice problem solving methods.

Right now, the loose plan is this:
1. Load the code from tape twice, saving half to a new tape each time.
2. Load those two segments with the disk drives on, then save each to disk.
3. Combine the two in Classic99 via paste.
4. Figure out what variables the program is reading from its separate data file, then write a small program to read those variables from the tape and save them to disk.
5. Rewrite the program code to read the variables from disk instead -- or, instead, just add that data to the program code itself.
6. Run the code through the "BXB" program, which should allow it to run in XB with its BASIC character sets intact.
7. Save the whole mess to disk, run it in emulator.
8. Enjoy the adulation and gratitude of millions.
IF I can get the program to load from tape with disk drives attached, I can skip 1-3 and just save the code to disk.
Any suggestions or advice on this undertaking are welcome. I am buried in work right now, but I'm going to try to carve out a few hours to do this project over the weekend.
Keith

-
I'm actually gonna bail on this project already... :/ Just had a very cool deal come up for work that's gonna result in a nice chunk of cash, but is gonna require a LOT of work over the next several weeks. If you guys want to move forward with it in my absence, and use any/all/none of the ideas I laid out, please, go for it. I look forward to seeing what develops, and wish I'd have time to be involved... but I'll be lucky if I have time to lurk till this thing is over with.
-
I think the "farm" should be a "map" of sorts... It'll look just like a farm, but the user can select a plot of land or a herd of animals and then the screen would "zoom" in to a particular plot of land and you would have "corn" or whatever take up the entire screen for real work... That would be the best way to make this playable/enjoyable in my opinion. That way the general farm screen wouldn't be the main area of work, it would just show what's going on an allow the user to specify what he/she wants to do. If the user clicks on the "zombie-infested" plot of land, we go into battle!
. What ya say?The 'zoom in' is kinda what I had in mind for the zombie attack portion, but it'd actually be loading a new program in which tackled the arcade portion of the game. The same principle could apply to the farming portion of the game too. I hadn't really thought of it that way. What would the player do when they clicked on a square of pasture or cropland?
Another idea that just cropped up: if you click on an overrun square and battle zombies there, it's just your people, zombies, and whatever background stuff (tree stumps, old cars, etc) we wanted to add in. But on the occasions where the zombies attack your already-cleared land, there could be animal sprites roaming around getting in the way, and it could count against you somehow if the zombies manage to kill your livestock, even if you ultimately win the battle for that square.
-
I like the idea of separating out crops and herds. My worry was, if each square can be in too many "states" (farmland, water, overrun by zombies, etc) we'd rapidly run out of graphic characters in different color sets to use. A lot will probably depend on making several states be in the same color, but distinguishable to the user's eye -- unplowed land vs. plowed, for example.
One possible solution: require the barns and silos to take up 2x2 squares, and make them sprites. Make it a requirement that they're placed on cleared land, and perhaps set some kind of limit on how many of each (to get around the four sprites-per-line jazz). We want them to take up a proper amount of real estate, to force the player to plan properly, but their only function in actual game mechanics will be to increase the variable that allows for maximum stored amount of crops/cattle.
I gotta go get some real-life work done, but I'll do some puzzling out on paper of formulas and mechanics today, and come back to this later tonight.
-
Holy crap, three new messages in this thread just since I started typing the post above. This place is on fire!

-
OK, I brainstormed this on the drive home from dropping off kids this morning. Here's one proposal for a way to do it, see what you guys think. (And again, I need my head examined, I don't have time for yet another project right now).

I see the farm portion of the game and an action bit as two separate programs. The farm screen is, say, 16x32, with eight lines at the bottom for stats, alerts, etc. The "map" of the farm consists of squares in various states, such as:
uncultivated land
plowed ("reclaimed") land
planted land
grazing land (need x amount per livestock)
water (there'll be a river on one side of the map; digging a canal from it will increase the max amount of crops, and max amount of sustainable population)
house (need housing units per x number of people)
barn (allows storage of x amount of grain and animals)
A square can also be "overrun" which means it's infested by zombies, and nothing can be done with it.
Each turn you get x number of "moves" depending on your population, morale, etc. You have to allocate food, decide where to plant, to send people out to dig canals, plow land, build more shelters, etc. You can also select an "overrun" square, adjacent to your cleared turf, and pick how many people to take along on a 'zombie clearing.' At that point the game saves its variables and loads the zombie attack portion, which should be a simple, fast, assembly-based arcade sequence. Once that's over and casualties are counted, it transfers control back to the farm program.
In addition, the zombies will periodically attack new squares of turf, so even if the player doesn't aggressively go after the zombies, they'll be forced into "battle mode" to defend their existing farmland, buildings, etc.
"Winning" could be a certain population threshhold, or the clearing of the entire map of zombies.
There's more detail to work out, about how overrun the map would be at the start, the formulae for how fast food grows, etc, but this gives you the general idea.
Let me know if doing it this way appeals to anyone. If not, I'm totally ok with it (and will likely make a game like this in 30 years when my schedule opens up).
If you DID want to go with this idea, I'd be happy to tackle the XB farm portion of things, and would love for someone else to handle a fast-paced assembly arcade portion, nicer graphics, etc. -
Okay, because I can't stop thinking about this idea... it's really similar to a game I wanted to do! I was gonna call it "Fort Zombie," but I Googled that title and it's an actual game coming out for PC.
I'm thinking of a turn-based farm-type game, which would be a more graphical version of the classic Hammurabi -- you have to allocate land for planting, seeds to grow stuff, assign labor to harvest, assign grain for feed, account for rats and spoilage, etc.
Then, in the midst of all this, there could be sprite-based arcade action sequences where you go out with your prime zombie response team to blast the undead as they infiltrate sectors of your map.
You could build walls and moats, till and rotate land, etc. Ooh, and have to allow space for your population to live as well, and morale could go up or down depending on how densely they're forced to live and how much they have to work.
Argh! Stop it! Too many ideas, no time!! [email protected][email protected]@!#ergeRG3hmbrg f
-
What if we all took one element of the game and worked on it over the next 48 hours?! I could code up the music and get a working "zombie" SPRITE walking across the screen.

I'm still under TI quarantine till Sunday.


Enemy Lines
in TI-99/4A Development
Posted
Only partway through the beginning of the main turn loop, and I'm realizing I may have bitten off way more than 30 lines here. I'll let you know for sure tomorrow, but I may have to pull this game right back out of contention. However, I still think I can finish it in a week or so. The idea is simple and solid, it just needs a lot more room for legal move checking, etc... especially if I want to put any kind of AI on board at all.
Onward!