Type-in Mania: BASIC Programming on the TRS-80 MC-10
8-Bit BASIC Retro-programming Projects and Classic BASIC Games
Saturday, 3 January 2026
"Meteorite" by Kenta Cho (1989)
Sunday, 21 September 2025
"Super Mind" by Marc Petitqueux & Micro Influx (1983)
I think I have found another bug in a commercial BASIC game distributed for a computer equipped with the Motorola MC6847 Video Display Generator. I recently ported the code for "Super Mind" for the Sanyo PHC-25 to the TRS-80 MC-10. Like my last project from that machine, "Fire War," there was a bug in the code that I think would have prevented the game from functioning as the designers intended. In Supermind the problem would only have occurred on the last of your 10 guesses. For that guess there was no need for the computer to print a report about how many of your guesses were right colors and rightly placed, since it was your last turn, so the programmer had created a special routine for your last guess. But I think that guess would never be able to be judged correct.
2510 N=N+1:GOSUB 3000:IF N=10 THEN5000 ELSE GOSUB4000
2520 IF O=4 THEN 6000 ELSE 2510
5000 REM Reponse dernier coup
5010 IF Z=1 THEN 5050
5020 FOR I=1 TO 4:LOCATE2*I+2,1:PRINT" ";CHR$(C(X(I)+1));" ":NEXTI:GOTO5090
5050 LOCATE4,1:PRINT " "
5060 FOR I=1 TO 4:LINE(42+(I-1)*16,18)-(45+(I-1)*16,23),X(I)+1,BF:NEXTI:GOTO5090
5090 IF O=5 THEN 5100 ELSE 5110
5100 LOCATE0,13:PRINT "Ͱ Gagne en 10 coups De justesse !!! ":GOTO5120
5110 LOCATE0,13:PRINT " Vous avez perdu... "
Thursday, 28 August 2025
"La Guerre du Feu" by Sanyo (1984-1985): A Text Adventure CRPG Combo
I received a really neat email from David Kilpatrick about my latest game port and translation project for the TRS-80 MC10:
------ Original Message ------
Hi Jim
When I prompt Google Gemini 2.5 Flash chat AI with this:
"Provide non spoiler instructions for playing this game:" and then paste in the contents of "Firwar11.txt", I get:
This is a text-based adventure game written in a dialect of BASIC, likely for an older computer such as the TRS-80 Color Computer or a similar 8-bit machine. The core objective is to find a fire and bring it back to your village. The instructions below are based on an analysis of the code and are non-spoiler.
Gameplay Instructions
The game operates by having you type commands in response to prompts. The game world is a grid-based map, and your primary actions will involve moving around this map and interacting with your environment.
- Movement: You can move in four cardinal directions: NORTH, SOUTH, EAST, and WEST. You can type the full word or just the first letter (
N,S,E,W).- Interaction: The game will prompt you with "WHAT NOW:". This is your opportunity to type a command. The code supports a variety of commands, including:
- GET or TAKE: To pick up an item. You must specify the item you want to take, e.g., "TAKE AX".
- FIGHT, KILL, or ATTACK: To engage in combat. You'll then be prompted to specify which item you want to use, e.g., "FIGHT WITH SPEAR".
- HUNT: To hunt for food.
- EAT: To consume food you have collected.
- DRINK: To drink from your flask.
- FILL: To refill your flask with water.
- SLEEP: To rest and recover.
- HIT, STRIKE, or SCRAPE: These commands are related to crafting or creating something.
- LOOK or EXAMINE: To get a description of your current location.
- Inventory and Status: The game has a system for managing your health, hunger, and thirst.
- The game keeps track of your health and other stats in the background.
- Hunger and thirst increase as you travel. You will be alerted when your character is hungry or thirsty. If these needs are not met, your character will eventually die.
- Meat is a resource you can collect, likely by hunting.
- You have a flask that can hold water. The game will tell you when it is full or empty.
- Goal: The main quest is to find the fire and return it to your village. You start in the village and must explore to find it.
Tips for Playing
- Pay attention to the text: The game provides all the necessary information through text. The descriptions of locations and your character's status are crucial.
- Manage your resources: Conserving food and water is critical to survival.
- Explore and experiment: Some objects or actions may not be obvious. Try different commands in different locations.
- Survival is key: Your main priority is to stay alive by managing your hunger, thirst, and fatigue. Death is a real possibility.
Thought you might be interested, if you don't already experiment with Gemini or ChatGPT.
Does it sound okay to you?
It doesn't mention a save feature though.
CheersDavid
Here was my response (edited):
That is soooo cool. Especially considering that there is so little (as far as my research has shown) about the game on the Net. Thanks. I suspect it's LLM training is drawing on some "generic advice" about "two-word parser" text adventures and integrating that somewhat with the details available from the source. For example it states "You must specify the item you want to take, e.g., 'TAKE AX'" (neat-- it has definitely processed the Github source code). But this is originally a French language text adventure (It doesn't seem aware of that) and the French doesn't really work well in the two-word parser mode. For example, commands aren't usually grammatically put in a simple definitive verb-noun form (I think), but really require different definite or indefinite articles, injunctive conjugation of the verb, not to mention common polite two-verb forms for some actions. As such the French have a somewhat difficult time with the "two-word" format (not to mention that they simply don't like to bow to "anglicisms"). So, the game is actually a "one-word" parser. You input an injunctive verb. Then the game prompts you for a noun and responds. It also knows that you have an inventory, but doesn't recognize that it is simply always listed on screen.
With those qualifications made, I have to say that Google Gemini did a pretty bang up job at describing the game and providing basic instructions for how it works.
So AI has saved me from some writing drudgery. But as I have found with most of my own experience with LLM systems, it often makes subtle mistakes and has blind spots, such as the lack of awareness about the origins of the game. So I'll describe that stuff here.
The game was originally for the obscure (market failure in France--perhaps also in Japan) Sanyo PHC-25. There is a small amount of French software for the PHC-25 that I have come across:
http://www.phc25.com/collection.htm
I haven't been able to locate any Japanese stuff, but if folks out there know of any, please let me know. The reason the PHC-25 is useful for my projects is it uses the Motorola MC-6847 video chip (a Japanese variation of it), which is the chip used in the MC-10. So text and graphic screens are essentially compatible. I have done other conversions in the past, such as "Citadelle: The Shield of Oran."
The BASIC is also very similar to the MC-10's Microsoft variation. However, to use graphics commands on an MC-10 you need access to the MCX-SD or MCX-128 add-on pack. These add Coco BASIC graphic commands so hires screen stuff can be done. The entire game is in Color Graphics Three (CG3) mode. The fact that this is a graphic text adventure is another detail missed by Gemini.
I had to do some conversion of commands from Sanyo Basic v1.3 to Microsoft, but they are very close in most respects. The first big hurdle was that Sanyo Basic has a RESTORE (line number) feature, which Coco Extended BASIC doesn't have. So I had to count up all the DATA elements for the various data lines referenced for terrain graphic elements, and then create a subroutine to quickly read all the elements just before that line. This created a very excessive delay in drawing the tent, so I PEEKed and stored (as part of the startup screen delay) and restored that specific item's DATA read location.
The second big hurdle was that Sanyo Basic has built in text rendering for hires screens, whereas Coco Basic does not. Instead I had to use DRAW commands and a subroutine for placing messages on screen of the right size and spacing. This required the most conversion, since the PHC-25 could just use regular LOCATE and PRINT commands for messages, whereas I had to set variables and GOSUB a bunch of subroutines instead. I had to scale my text routine so it as closely matched the size of original as possible. However, I think the original program used a slightly narrower font in the horizontal, which I couldn't get my routine to exactly match, so it had a couple of extra lines to work with. This required some condensing and re-formatting of messages for my version. For example, I had to print 3 of the inventory items in a different color font (red) and list them on lines with other items.
Once that was done, I just had to use my old high school French and Google translate to convert all the commands and messages. There are always some challenges. In this case the word which I translate as FLASK was a little obscure. I think "OUTRE" means something like "skin," as in "wineskin." But I wanted a familiar term in English, which suggested a rustic form of container, but that was not too obscure or long since space for text on screen is at a premium given the font differences. "Flask" seemed to strike a good balance.
Then I just had to figure out playing the game so I could bug test it. The author of the French web page mentions in his comment on the game that he never was able to complete it:
LE jeu d'aventure pour le Sanyo.
Vous êtes un homme préhistorique et vous devez ramener le feu au village. Le chemin sera semé d'embûches. Personnellement, je n'ai jamais réussi à finir le jeu vivant :)
Translation:
THE adventure game for the Sanyo. You are a prehistoric man and you must bring fire back to the village. The path will be fraught with pitfalls. Personally, I never managed to finish the game alive :)
I also found this to be the case. I kept dying from exhaustion, or thirst or hunger. Exhaustion (from lack of SLEEP) was particularly difficult. As much as I would try to EAT and DRINK and SLEEP regularly it didn't seem enough, and when I started doing these actions, it seemed like the opponents I met would become particularly difficult to defeat. The SN, SB and SS variables in the following code refer to your level of eating, drinking and sleep. You start at zero. If you rise above certain levels (10, 8 and 30), you starve to death, die of thirst, or die from exhaustion.
30250 IFSN<0THENEX=EX+SN:SN=0
30256 IFSB<0THENEX=EX+SB:SB=0
30258 IFSS<0THENEX=EX+8*SS:SB=0
30258 IFSS<0THENEX=EX+SS:SS=0
30230 IFSN=8THENCLS:LOCATE0,10:PRINT"VOUS AVEZ FAIM" ELSE IFSN>10THENCLS:LOCATE0,11:PRINT"VOUS ETES MORT DE FAIM":GOTO4000030240 IFSB=5THENCLS:LOCATE0,10:PRINT"VOUS AVEZ SOIF"ELSEIFSB>7THENCLS:LOCATE0,11:PRINT"VOUS ETES MORT DE SOIF":GOTO40000
15080 IFBB=1THENCLS:LOCATE0,11:PRINT"VOUS BUVEZ":SB=SB-5.1:IFDR=1THENDR=0:BB=0:GOTO30000 ELSE GOTO3000015150 IFVI>0THENCLS:LOCATE0,11:PRINT"VOUS MANGEZ":SN=SN-5.1:VI=VI-1:DR=1:IFVI<>0THENGOTO30000
Tuesday, 6 May 2025
"TPUG Sample Adventure" by Steven C. Darnold (1985)
This is a text adventure modified to work on the TRS-80 Micro Color Computer ("MC-10") using Micro Color BASIC from the author's published source code in TPUG Magazine June/July 1985 pp. 8-12. The game is a sample adventure described in an article "Do-It-Yourself Adventure", which provides the basic building blocks for creating your own text adventures in BASIC. TPUG Magazine was the newsletter of the Toronto Pet Users Group, one of the largest Commodore computer clubs in North America in the 1980s.
Here is a walkthrough:
N,GET CANDLE,EXAMINE PEWS,GET KEY,S,W,EXAMINE DESK,LOOK,GET MATCHES,W
LIGHT CANDLE,LOOK,READ SIGN,GET SHOVEL,E,E,DIG,DROP SHOVEL,GET GOLD,W,W
DROP GOLD,SCORE,E,E,E,OPEN SAFE,DROP KEY,S,GET COINS,N,W,W,W,DROP COINS
SCORE
TPUGADVR.C10 for TRS-80 MC-10 can be downloaded or played online at the Internet Archive: https://archive.org/details/TPUGADVR
The source code can be found on GitHub: https://github.com/jggames/trs80mc10/tree/master/quicktype/Text%20Adventures/TPUGAdvr
Tuesday, 22 April 2025
"Survival" by Stewart F. Rush (1981)
I've created a new MC-10 version of "Survival" aka "Moon Survival Adventure" from David Ahl's 1984 book "Big BASIC Games". I only made minimal changes to get the source code to work properly. Renga in Blue (Jason Dyer) did a blog post about the game which made me aware that a version I had created a while ago (from source found online) was actually a modified version with the authorship attribution changed (as was common back in the day). My new version is a faithful rendition of the source code found in Ahl's book. In fact you should be able to simply type in the following changes recommended by Rush in the description of the game to make it easier:
350 T2=275
360 P1=320
370 P2=75
730 IF T1>485 THEN 2960
740 IF T1>380 THEN 3840
I made a few other changes. The carried item count is not decremented when you get the fuel and then use it to refuel your rocket. This shrinks your carry limit to 3. I fixed it. Also, the following line was missing from the code listing in the book:
If you are looking for an authentic experience of the original 1981 version of the game published in Ahl's 1984 book, it can be played on the Internet Archive: https://archive.org/details/survival_202504
Thursday, 3 April 2025
"Drakulas Diamanten" by C. Seibt (1983)
Full Walkthrough
"Dracula's Diamonds" was originally published in German as a type-in for ZX-81 in the October 1983 issue of Homecomputer magazine, pp.30-35. I found out about it from Strident over on the CASA Adventure forum. He suggested it as a possibility for conversion and translation. Thanks Strident! He mentioned a VZ version and provided some useful info for tracking the game down. I was able to find it on one of the VZ repos under the collection of German Laser 200 programs. Using Google Translate I was able to translate the German messages and items into English.
Apparently, there are also Spectrum and C64 versions. The titles vary ranging from Dracula to Draculas Diamanten and also the more Germanic Drakulas. The main differences seem to be in tweaks to the graphics. I used techniques I've developed to translate the graphic characters from Laser/VZ-200 BASIC to something that works on the MC-10. Unfortunately, they all come over as red semi-graphic block characters. Then I have to "re-colourize" them.
A modern coder Frank Gerbig liked the game so much that he translated it into a modern Interactive Fiction (IF) creation engine (Inform), which can be played online (in German). Like him I couldn't resist reimagining the game. First I tweaked the graphics using my MC-10 screen editor software. It was very awkward back in the day to draw text graphics using only the keyboard to input characters. But today I can just transfer an entire screen to my special BASIC editor program. Then I can print out the screen and re-line number it and add PRINT statements and reinsert it back into the code using a modern text editor. So I was able to fix some clunky aspects of the line drawings, and fiddle with colours and change shapes to make the images look a little more coherent and the items a little more identifiable. For example, I tweaked the "fan" in the bathroom to look more like a fan (I initially thought it was some weird decoration).
Original Painting and Cabinet
I also fixed the operation of the fan switch so that when it is turned on, it prints a message about the "stench" disappearing. The walkthrough for the ZX-81 or Commodore version on CASA mentions such a message, but it didn't appear in the VZ version.
I fixed the two-word parser to accept more synonyms. Now you can TAKE or GET, PUT or PLACE. Nouns too. GET NOTE or GET PAPER. OPEN CABINET or OPEN CUPBOARD. PULL or MOVE. FRIDGE or REFRIGERATOR, etc.
I changed many of the "hints" and added a few more. Some of the original hints seemed to imply that Count D. is aware that you are there. The first one was weird. It said "YOU WILL NEVER FIND THE STONES." I didn't like this notion of D. being aware of the presence of the investigator., although this particular hint could have also been meant to give a hint about the puzzle in the Tower Room that involves a "stone" (seems a stretch). Another one was an outright instruction: "SOMETIMES PAINTINGS HIDE VALUABLES." I changed the notes to avoid threats, indications of awareness of your presence and outright instructions. I also altered the location of a few of them to make them slightly harder to find and more understandable as to why they might be there. In most cases I made them into notes of D. to himself, like the new one on the table in the first room: "REMEMBER: BUY MORE CANDLES." This seems more reasonable-- just a shopping list-- and that table is right below a chandelier with what might be recognized as having candles in it. Or I made them jokes or cases of possible doodling.
I added to the graphic images that appear when you take actions in rooms that show the results of your actions. I fixed the door of the fridge to make it look more like an opened door, for example. I also added a board to the bathroom when you figure out where to place the last piece of the puzzle. I made some significant changes to the way young Count D. looks (i.e. Count Dracula-- As if it is really a mystery). I changed the code number to the actual birthdate of the actual historical Count.
Finally, I added "C. Seibt" back to the title screen. Wolfgang Wesemann, seems to have felt his alterations to the code warranted the dropping of the original author (not an uncommon practice back in the day). I would agree that it must have been a lot of effort to get the game working on a Laser/VZ-200 so I kept Wesemann on the title page, but I thought it best in the Internet Age to add back a reference to the original author.
If you want to compare the changes I have made to something closer to the original Laser/VZ-200 version, watch my walkthrough at the top and the other Youtube video, then these snippets of the rooms as they now appear. In the snippets I show all the possible actions available in each room.
![]() |
| Cyan Window |
Saturday, 22 February 2025
"Bally's Alley" by John Collins (1980)
Jason Dyer made a post about an interesting little text adventure for the Bally Astrocade system. He was able to get a version of the game running from source code typed-in by Paul Thacker in November 2022 from a printed listing and handwritten notes of the original author, which were preserved by Bally Astrocade hobbyists. This game fits in 4K of memory, which is quite a feat of programming by the author. Jason wasn't able to complete the game because he ran into some apparent bugs. My MC-10 version contains bug fixes to ensure that it can be played to completion.
The following is a map by Jason of how far he got (pink box) from the start (green):
The problems were probably a result of a few slightly misinterpreted numbers by Thacker from the handwritten notes.
I have two proposed fixes to the hand recorded list of variables:
- @(17) change from 370 to 3170. This allows the player to move on to room #19 of the Color Maze, which I don't think Jason would have been able to do. This was my best guess of where a typo would most likely have occurred to prevent a move to room #19 (and the whole subsequent section), as the method of room number parsing only allows jumps from 1 to 2 (plus or negative) from the current room number. So the problem had to be either #17 or #18 that was preventing movement onwards in the Color Maze. The handwritten note for room # 17 looked like it had a possibly partial "1"that needed to be added to its 3 digits (370)-- just the hint of a "1" in front of the "7." When I tried it, it worked.
- @(14) change from 1603 to 10603 (this one is optional). Thacker's version just lets you go N from the WELL directly into the COLOR MAZE, which I think undermines a puzzle Collins wanted/was working on. I suspect he had some problems with his room number parser, possibly due to rounding errors, which was a problem for my MC-10 version. I fixed these problems by converting the room numbers to text, and then chopping them up as needed using the MID$ function instead of division by 10s 100s and 1000s and INT and subtracting INTed and non-INTed versions from each other. Collin's handwritten notes have numerous scribbled-out numbers and replacements for the room data. (This data had to be entered directly by the user, to help conserve memory), which suggests that he might have been experiencing frustrations with rounding errors too.
|
# of Room Jumps------> |
|
|
|
|
|
|
Rooms |
Get a Command? |
+2 |
+1 |
-1 |
-2 |
|
17 |
|
|
3 |
7 |
0 |
|
New 17 |
|
3 |
1 |
7 |
0 |
|
20 |
1 |
0 |
6 |
0 |
8 |
|
14 |
|
1 |
6 |
0 |
3 |
|
New 14 |
1 |
0 |
6 |
0 |
3 |
The trick with the WELL is to be carrying the KEYS, have just tried to move DOWN, and then issue the command UNLOCK when prompted. This should take you to the COLOR MAZE room with the LAMP (I'm sensing that Collins was inspired by Crowther's original, Adventure and its formula of "get lamp").
Similarly, in the problematic PURPLE room (it's red in my MC-10 version), the player must have just tried to move in the DOWN direction, and then must issue the command "F." I'm not sure what "F" stands for, but perhaps "Find" or "Fire," because the player must also be carrying the OIL (but the LAMP doesn't seem to be required in the original). I changed it so that if the player types "F" or "L" (Look) or "S" (Search), a descent to a new section which I call the "Echoing Cave" is initiated (room 30 "No Way Up" in my map below). It also might simply be for "Fall" (If so, wouldn't "J" for jump be better?) However, since the COMMAND parser only looks at one or two characters (G for Get, DR for drop, L in unLock), it doesn't much matter. Apparently Collins mentioned that people could play the game "for weeks." I can understand why.
The descent takes the player to an area, where the rooms don't have descriptions. Instead, I'm pretty sure each room makes a different noise. I don't have Jason's patience to get an Astrocade emulator running, so I'm guessing based on a rough knowledge of Astrocade BASIC (original and extended versions). Maybe there are some screen effects too. I'm not super familiar with the system but I was able to build some knowledge converting Clyde Perkin's classic "O-Jello"4K "Othello" game, which has a wicked AI opponent for a 4K game. Each room has a slightly different tone/pitch to its sound. This is an absolutely intriguing game dynamic. I don't think I've ever seen a text adventure from this era that uses sound as a critical part of the navigation/description system. It could be a first.
My new MC-10 version fits into 4K like the original (I am in total awe of Collins) and has a few other "fixes" (possible improvements). I added an "L" Look command that can be used in any room to redisplay the description as well as other function ("S" for search will have a similar effect, and both will also accomplish the "F" Find/Fall action). I also added save/load to the main menu and an extra hint to help with the purple room puzzle. I made it so that the player must have both the LAMP and the OIL to descend into the Echoing Cave, based on the assumption that the player needs these items to navigate "the darkness." BALLYSAL.C10 for MC-10 emulators can be found here, but people should be aware that my colors for the Color Maze will be different from those of the Bally Astrocade original:
The MC-10 version can be played online at the Internet Archive.
BALLYSAL.C10 can also be found and played online at the Color Computer Archive (Thanks Guillaume!)
The source code is on the Internet Archive (highest numbered is latest).
I have managed to play it to completion. I'm not sure if 956 is a good score, but your score is decreased by how many moves you take. Since I was using maps and cheats (most importantly reading the source to know what to do), I suspect it's a pretty high score compared to what a real player, working from scratch, would be able to get:












