![]() |
| Fesquest |
8-Bit BASIC Retro-programming Projects and Classic BASIC Games
Wednesday, 25 December 2013
Some Projects (*New +Ports) I'm Porting to Coco and Dragon for Retrochallenge Winter Warmup
Friday, 13 December 2013
Retrochallenge Winter Warmup Project
![]() |
| Mahjong |
1. NightBlitz
2. Flipull worldofdragon.org and JGGAMES8.DSK
3. Meteor worldofdragon.org and JGGAMES6.DSK
4. Ouranos worldofdragon.org and JGGAMES6.DSK 5. Great worldofdragon.org and JGGAMES6.DSK
6. Tomb worldofdragon.org and JGGAMES6.DSK
7. Aststorm worldofdragon.org and JGGAMES6.DSK
8. Fesquest worldofdragon.org and JGGAMES5.DSK
9. Berzerk worldofdragon.org and JGGAMES2.DSK
10. Defcon1 worldofdragon.org and JGGAMES2.DSK11. Qbert worldofdragon.org and JGGAMES2.DSK
12. Invader worldofdragon.org and JGGAMES2.DSK
13. Mahjong worldofdragon.org and JGGAMES2.DSK
14. Rover worldofdragon.org and JGGAMES2.DSK
Hustle (TRS-80 Model 1/3) worldofdragon.org and JGGAMES8.DSK
MoonFX (PC) worldofdragon.org and JGGAMES6.DSK
3DLaby (VZ-200) worldofdragon.org and JGGAMES9.DSK
Mountain (Spectrum) worldofdragon.org and JGGAMES7.DSK
Elgon (TRS-80 TRS-80 Model 1/3) worldofdragon.org and JGGAMES7.DSK
UncleTay's House Adventure (Apple JSBasic github.com) worldofdragon.org and JGGAMES9.DSK
Mansion (TRS-80 Model 1/3) worldofdragon.org and JGGAMES7.DSK
DND (TRS-80 Model 1/3) worldofdragon.org and JGGAMES7.DSK
IceWar (TRS-80 Model 1/3) worldofdragon.org and JGGAMES7.DSK
Swarms (PDP-11) worldofdragon.org and JGGAMES9.DSK
Roulette (Sol-20) worldofdragon.org and JGGAMES6.DSK Nukewar (TRS-80,Apple,Atari) worldofdragon.org and JGGAMES6.DSK
Lostgold (TRS-80 Model 1/3,PC) worldofdragon.org and JGGAMES7.DSK
Snake (Nec PC8201a) worldofdragon.org and JGGAMES9.DSK
Uboat (PC) worldofdragon.org and JGGAMES9.DSK
CIA (TRS-80 Model 1/3) worldofdragon.org and JGGAMES7.DSK
Gables (TRS-80 Model 1/3) worldofdragon.org and JGGAMES9.DSKBulls (TRS-80 Model 1/3) worldofdragon.org and JGGAMES8.DSK
Draughts (Alice) worldofdragon.org and JGGAMES8.DSK
Tholian (TRS-80 Model 1/3) worldofdragon.org and JGGAMES7.DSK
Dominoes (TRS-80) worldofdragon.org and JGGAMES6.DSK
GBusters (VZ-200) archive.worldofdragon.org and JGGAMES5.DSK
Andromed (PC) worldofdragon.org and JGGAMES5.DSK
Switch (Atari ST) worldofdragon.org and JGGAMES5.DSK
Engineer (TRS-80 Model 1/3) archive.worldofdragon.org and JGGAMES5.DSK
Monday, 13 May 2013
"Fest Quest:" Pit With Monsters By Jim Ennes Becomes Something New
Allen Huffman, the videographer and Fest reporter for Glenside Color Computer Club's Annual Last Coco Fest contacted me after the "last" Chicago Coco Fest to see if I might be interested in programming a game based on a Fest motif. He had seen my port of Pitman and thought that I might be able to create a similar puzzle/adventure game, but somehow using Fest locations He thought it could possibly be used as fundraiser for Glenside or perhaps to help promote next year's event. I started thinking about the project, but in the meantime I had been working on another port of a classic game from the ZX81 called "Pit with Monsters" or PM for short. In this game you are presented with three panels representing left, forward and right, each containing a brief description of a what you see in those directions (see above). You choose which direction to go based on what you see there and each of the various kinds of structures (passageway, room, door, stairs up, stairs down) has different attributes that influence their optimal navigation (up and out of the pit). Also you run into a range of monsters (1-100) with varying strengths that you must take account of when you choose to fight them. You can fight monsters using your strength and weapons, which are all represented by your "hit points," or with magic using your "magic points." You can find various items throughout the pit that can add to your supply of these different kinds of points. You can also choose to retreat, but this option has its own dangers. It is a very simple game in its elements, but they all combine to create a game that is actually quite complex and interesting to play.
The port of the code from the ZX81 went quite well. The two machines share a 32 column screen, which makes things a little easier. ZX81 Basic is a little unique, but not overly weird. The primary difficulty is dealing with the fact that the ZX81 has 24 rows of text, so messages have to be shortened or blank lines removed to fit information into the 16 rows of the MC-10. This was somewhat simple for PM because many of the messages used double spacing, which could simply be removed (or replaced by the use of my handy word wrap routine for printing messages). Other than that, it was just a question of removing redundant code, such as repeated IF statements that do the same test but only one operation per IF. Instead I just use colons. I suspect that the lack of colons in the source indicates that the ZX81 doesn't allow multiple commands per line. To save space I pulled together many such lines into single lines of code containing multiple commands separated by colons. As sometimes happens since I have a "word-processor-eye" view of the code it is easier for me to spot mistakes or minor oddities in the operation of the program that probably eluded the original programmer simply because they were stuck with the clunky line editor and the awkward LIST command. Once again I came to appreciate EmuCompBoy's VMC emulator with its quicktype of text files saved from WordPad. A quick change to the source in Wordpad, then type NEW and Enter and then quicktype in the new source code. Then type RUN and see the results. Takes about 10 seconds.
As I did the conversion it struck me that it might be nice to use some simple VDG graphics for the three panels, then it struck me that instead of just doing that, I could perhaps simply nudge PM into a slightly different story premise based on the Fest motif instead of monsters in a dungeon. As usual, I sat down with my son Charlie and we quickly settled on a "battle with geeks" theme. Instead of "hit points" we would use "geek cred". Instead of "magic" we would use "floppy trading". The items would come from the Coco Fests as would the "monsters" aka "geeks", who would, like in the original, come in a range (1-100) of power when it came to their geek cred. Here are some screen shots of the new game:
I based the various geeks on names mentioned in Glenside newsletters over the years (more mentions roughy higher in the list) and some classic names from Color Computer magazines for the most powerful geeks.
Finally I thought it might be nice to add a trivia component to the game, that would celebrate Coco lore and act as another way of judging the "geek cred" of the player. I asked people on the Yahoo forums to send me multiple choice questions and a few did, such as Allen, John Mark Mobley and some others.
Allen Huffman Wrote regarding this aspect of the game:
There are several aspects to game play beyond the trivia component. These are a legacy of PM. The object is to explore and gather the right kind of items that will increase your geek cred. Other kinds of items add to your “floppy” supply. One must learn to recognize the differences between these two kinds of item. The opponents have different levels of geek cred (1-100). If you run into an opponent who has more geek cred than you, they will defeat you. If you have more geek cred than them, then you will defeat them, but you “use up” geek cred to do so (i.e. the amount of geek cred of your opponent is subtracted from your geek cred). So you must sometimes avoid such combat by using floppy trading (at least as long as your “disks” hold out) to overcome more powerful opponents. However, I added the trivia question component as a randomly occurring “save” feature (you only get asked a question half the time when geek combat occurs). If you meet up with someone with higher geek cred and you answer the question correctly, then you beat them no matter how much cred they have, but just barely, so your cred goes to 0. If you meet someone with higher cred, but flub the question, then you lose. But if you meet someone with lower cred and get asked a trivia question, but flub the question, then your geek cred goes to 0. If you battle someone with lower cred, and get the question, you beat them in the usual way (your cred is reduced by the # of their cred).
So, in brief, navigating to the top floor takes a bunch of strategies. You need to collect floppy trading stuff (or equivalents, such as the coco CD or drive-wire cables). You also need to collect other items, which increase geek cred (manuals & cool hardware). You need to avoid combat with people with higher cred unless you feel you have enough floppies for floppy trading to defeat them, or you are confident enough that your trivia knowledge can save you in geek combat no matter what their cred. You also have to try to keep building up cred and floppy supplies, so sometimes careful exploration of rooms (and strategic retreats) can be more prudent than simply trying to move forward and upward via passages stairs and combat. Use the “s” option to see the status of your cred and floppy supplies at any “what direction” prompt. I should also mention the “q” can be used to start the game over.
There are also some completely random elements of the game that can knock you back down a few levels (the object of the game now is to get to floor 20 of the hotel where the "no minimum bid auction" is going on). A geek squad can abduct you, or you can accidentally wander into a elevator. These events add a kind of "snakes and ladders" element to the game.
I will probably post the 40 question MC-10 version soon. I will hopefully be followed next year with a more full-blown trivia Coco version. Whichever version you might try, I hope you enjoy "Fest Quest."
The port of the code from the ZX81 went quite well. The two machines share a 32 column screen, which makes things a little easier. ZX81 Basic is a little unique, but not overly weird. The primary difficulty is dealing with the fact that the ZX81 has 24 rows of text, so messages have to be shortened or blank lines removed to fit information into the 16 rows of the MC-10. This was somewhat simple for PM because many of the messages used double spacing, which could simply be removed (or replaced by the use of my handy word wrap routine for printing messages). Other than that, it was just a question of removing redundant code, such as repeated IF statements that do the same test but only one operation per IF. Instead I just use colons. I suspect that the lack of colons in the source indicates that the ZX81 doesn't allow multiple commands per line. To save space I pulled together many such lines into single lines of code containing multiple commands separated by colons. As sometimes happens since I have a "word-processor-eye" view of the code it is easier for me to spot mistakes or minor oddities in the operation of the program that probably eluded the original programmer simply because they were stuck with the clunky line editor and the awkward LIST command. Once again I came to appreciate EmuCompBoy's VMC emulator with its quicktype of text files saved from WordPad. A quick change to the source in Wordpad, then type NEW and Enter and then quicktype in the new source code. Then type RUN and see the results. Takes about 10 seconds.
As I did the conversion it struck me that it might be nice to use some simple VDG graphics for the three panels, then it struck me that instead of just doing that, I could perhaps simply nudge PM into a slightly different story premise based on the Fest motif instead of monsters in a dungeon. As usual, I sat down with my son Charlie and we quickly settled on a "battle with geeks" theme. Instead of "hit points" we would use "geek cred". Instead of "magic" we would use "floppy trading". The items would come from the Coco Fests as would the "monsters" aka "geeks", who would, like in the original, come in a range (1-100) of power when it came to their geek cred. Here are some screen shots of the new game:
Finally I thought it might be nice to add a trivia component to the game, that would celebrate Coco lore and act as another way of judging the "geek cred" of the player. I asked people on the Yahoo forums to send me multiple choice questions and a few did, such as Allen, John Mark Mobley and some others.
Allen Huffman Wrote regarding this aspect of the game:
It is our shared hope that over this coming year we can add a much larger library of questions than the current 40 (please still send me any you think of), which will likely require integrating something like Allen's tokenization routine. Unfortunately, this will likely only be available on the Coco version of the program and not the MC-10.I was actually thinking more about memory usage. I created a simple word tokenizer in C for my day job when I was out of room in a small project, and I think it could be used on the CoCo as well. I wrote a test version in BASIC via Xroar yesterday, and will finish it up and make it available in case it is of interest to you.Basically, it will scan thought all the strings (from a text file, or from data statements) and then create a dictionary of words, and tokenized strings. I have a method that will be ultra efficient, but not human readable (it would be legal BASIC, but not something you could LIST or type in), and another one that is not quite as efficient but completely typeable.For instance, it might look like this:1000 REM Token dictionary1005 DATA 8,bacon,eggs,and,really,like,i,pancakes,tooAbove, that might represent an 8 word dictionary. Then the strings would be encoded and might look like this:2000 REM Tokenized strings2005 DATA "FDEACD"Assume "A" is 0, etc. So that represents those full words. This is a simple example, limited to the number of single characters you could put in a string. If I built those strings mechanically, I could use non-typeable characters and get maybe 128 tokens. But, a decent compromise is to use two characters. Instead of using numbers, which take more BASIC space:2000 DATA 2,42,3,25,5,1,23,51
There are several aspects to game play beyond the trivia component. These are a legacy of PM. The object is to explore and gather the right kind of items that will increase your geek cred. Other kinds of items add to your “floppy” supply. One must learn to recognize the differences between these two kinds of item. The opponents have different levels of geek cred (1-100). If you run into an opponent who has more geek cred than you, they will defeat you. If you have more geek cred than them, then you will defeat them, but you “use up” geek cred to do so (i.e. the amount of geek cred of your opponent is subtracted from your geek cred). So you must sometimes avoid such combat by using floppy trading (at least as long as your “disks” hold out) to overcome more powerful opponents. However, I added the trivia question component as a randomly occurring “save” feature (you only get asked a question half the time when geek combat occurs). If you meet up with someone with higher geek cred and you answer the question correctly, then you beat them no matter how much cred they have, but just barely, so your cred goes to 0. If you meet someone with higher cred, but flub the question, then you lose. But if you meet someone with lower cred and get asked a trivia question, but flub the question, then your geek cred goes to 0. If you battle someone with lower cred, and get the question, you beat them in the usual way (your cred is reduced by the # of their cred).
So, in brief, navigating to the top floor takes a bunch of strategies. You need to collect floppy trading stuff (or equivalents, such as the coco CD or drive-wire cables). You also need to collect other items, which increase geek cred (manuals & cool hardware). You need to avoid combat with people with higher cred unless you feel you have enough floppies for floppy trading to defeat them, or you are confident enough that your trivia knowledge can save you in geek combat no matter what their cred. You also have to try to keep building up cred and floppy supplies, so sometimes careful exploration of rooms (and strategic retreats) can be more prudent than simply trying to move forward and upward via passages stairs and combat. Use the “s” option to see the status of your cred and floppy supplies at any “what direction” prompt. I should also mention the “q” can be used to start the game over.
There are also some completely random elements of the game that can knock you back down a few levels (the object of the game now is to get to floor 20 of the hotel where the "no minimum bid auction" is going on). A geek squad can abduct you, or you can accidentally wander into a elevator. These events add a kind of "snakes and ladders" element to the game.
I will probably post the 40 question MC-10 version soon. I will hopefully be followed next year with a more full-blown trivia Coco version. Whichever version you might try, I hope you enjoy "Fest Quest."
Tuesday, 30 April 2013
Retrospectiva Win!
Wednesday, 17 April 2013
Time to Vote for the Retrospectiva Contest
Okay. It's time to vote in the Retrospectiva Basic Games contest.
Please consider sending your support to my entries in the contest:
Penguino, Romp in the Garden, Crawl, Doctor's Adventure on Scaro, and
Battlbots. The link to the voting site is:
http://rsp.retrocomputacion.com/retrospectiva-2012-voting-phase-basic-games/
Thanks to all those who helped along the way.
http://rsp.retrocomputacion.com/retrospectiva-2012-voting-phase-basic-games/
Thanks to all those who helped along the way.
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Sunday, 14 April 2013
The House of Seven Gables Port
It also required shortening some lines. I find the best way to process such long lines is to make my Wordpad Window a size that I know when I have roughly passed the 128 character limit. Then I just make jumps to subroutines (because Hassett had programmed with very tight line numbering I couldn't simply add lines).
Another quirk of TRS-80 Model 1 Basic is the ability to drop the "THEN" command from IF statements. Hassett did this quite a lot in this program. I had to systematically go through and put THENs on all the IF statements.
Finally, I had to switch all the PRINT commands with messages longer than 32 characters to put their message into an M$ variable and then GOSUB my word wrap routine (lines 1-4). If such messages contain numeric variables, these variables have to be put into a STR$() command and these have to be concatenated with the M$ string using a "+" symbols rather than the ";" symbol normally used in PRINT commands.
I also had to convert the tape cassette save and load routines. For the MC-10 the only way to save and load to tape is to use the CSAVE* and CLOAD* commands which can only save and load the contents of a numeric array. So you need to expand one of the arrays (usually the largest one being saved) to accept any other single variables that are also being saved. In this case the OB array is the bulk of the saved file data, so I simply expanded its size by 6 elements to contain the 6 extra unique variable elements. The result is that the original load routine which looks like this:
74 CLS:INPUT"PRESS <ENTER> WHEN CASSETTE PREPARATIONS ARE MADE ";XX$
75 FORI=8TOLO:IFOB$(I)=""THEN77
76 INPUT#-1,OB(I,0)
77 NEXTI
78 INPUT#-1,CP,FF,ZZ,T,P(5,0),DF
must be converted for the MC-10 to look like this:
74 CLS:INPUT"PRESS <ENTER> WHEN CASSETTE IS READY FOR LOADING";XX$
75 CLOAD*OB,"GABLEDAT"
76 CP=OB(41,0):FF=OB(42,0):ZZ=OB(43,0):T=OB(44,0):P(5,0)=OB(45,0):DF=OB(46,0)
For doing saves you simply reverse the process, so for example ZZ=OB(44,0) becomes OB(44,0)=ZZ, which you do for all the single variables before issuing the CSAVE*OB command.
There were also a number of places where Hassett used FOR/NEXT loops with IF statements that would break out of the loops without completing them. I don't know if this can cause any real problems, but it strikes me as inelegant. I always take something like this:
10 FOR C=1 TO 10:IF P(C)=5 THEN F=C:GOTO100
20 NEXT
30 ...
And change it to something like this to make sure FOR/NEXTs are always completed:
10 FOR C=1 TO 10:IF P(C)=5 THEN F=C:C=10:NEXT:GOTO100
20 NEXT
30 ...
If anyone can tell me if such finickyness on my part is pointless I would appreciate hearing from you.
Anyway, as usual all my programs can be found in the Emulator .c10 format at: https://github.com/jggames
Wednesday, 27 March 2013
Scrabble Helper Final Version (Hopefully)
I've released the final version of Scrabble Helper for MC-10, Coco and Dragon. It can be found on the Yahoo MC-10 group site, the Yahoo Coco site, the Dragon Archive Forums and my own site. I think I've got rid of most bugs and added all the features I can add, given memory restrictions. Recent additions include adding a bunch of 2 letter "killer" Scrabble words. Now the word look-up function ("H") does not just provide a list of the first five words found, but continues rolling over the list of five until you hit a key or until it reaches the end. If it reaches the end of its dictionary, it then prints a list of the five longest words found. I got rid of a few lingering proper nouns from the dictionary and cleaned up the display when the game ends. I also added a total point calculation so that games between multiple players can be assessed in terms of the overall level of competition. You can also now choose to play as a single player for playing games of "Scrabble Solitaire." I should mention that the key in the bottom right lists the letters not only in order of ascending point values, but descending order of the number of tiles. In other words, "E" comes first because the largest number of tiles are "E"s followed by "A"s and then "I"s, etc.
Subscribe to:
Posts (Atom)


















