Solaris, Sinclair Spectrum text adventure - Softel 1983
Moderator: Alastair
Solaris, Sinclair Spectrum text adventure - Softel 1983
Played this game 30 years ago on Spectrum computer and couldn't get very far with it as its quite a difficult adventure. Revisited game 15 years ago when I first went online and downloaded snap file running z80 emulator but got stuck on 2nd screen -Inside Airlock. Nothing worked even though 15 years earlier On original game which was on tape cassette, I had gone passed this stage of adventure. Recently have looked at it again and looked at walkthrough which I believe was originally on this site. Tried - Exam Floor, which is first command of walkthrough when you have gone north from Ground Car and enter Into Airlock but this doesn't work. Wondered if anyone has played this game and could shed some light on it as I think it may be that there is a command missing in the walkthrough before the Exam Floor command. Tried dry running the game which is easy to break into but this is more difficult than it seems because part of the program is in machine code, rest in Basic and I am not that conversant with z80 machine code.
Re: Solaris, Sinclair Spectrum text adventure - Softel 1983
Does the machine code do anything important in the game or is it from window dressing? If I could see the Basic code I could perhaps help you out. Any chance you could send it?
Re: Solaris, Sinclair Spectrum text adventure - Softel 1983
It looks like the machine code does a lot of the parsing.
The machine code routine at address 65197 (called from line 45 in the BASIC) extracts the verb from the command. This means a full list of verbs isn't available in the BASIC listing.
Once this is done, control returns to BASIC which does a GOTO to a line based on the ASCII code of the verbs first letter! (e.g. The code for "C" is 67 so the routine starting at line 6700 contains all the instructions for all the "C" verbs jumbled up together! Very confusing.)
Nouns are tested by the machine code at address 65291, called from various lines but usually with the address in variable B rather than specified directly. The variable NO will be set to true if the text in V$(I) doesn't match the noun.
This has got to be the strangest method of parsing ever! What were they thinking?
Anyway, this all means you have to CLOSE REAR in the airlock before you examine the floor. (And no, there's nothing in the game itself that will give you a clue to that. This is one of those "guess what the programmer just happened to be thinking" games.)
The machine code routine at address 65197 (called from line 45 in the BASIC) extracts the verb from the command. This means a full list of verbs isn't available in the BASIC listing.
Once this is done, control returns to BASIC which does a GOTO to a line based on the ASCII code of the verbs first letter! (e.g. The code for "C" is 67 so the routine starting at line 6700 contains all the instructions for all the "C" verbs jumbled up together! Very confusing.)
Nouns are tested by the machine code at address 65291, called from various lines but usually with the address in variable B rather than specified directly. The variable NO will be set to true if the text in V$(I) doesn't match the noun.
This has got to be the strangest method of parsing ever! What were they thinking?
Anyway, this all means you have to CLOSE REAR in the airlock before you examine the floor. (And no, there's nothing in the game itself that will give you a clue to that. This is one of those "guess what the programmer just happened to be thinking" games.)
- Attachments
-
- solaris.zip
- Listing of BASIC part of Solaris. NB colour formatting control codes are not included.
- (10.9 KiB) Downloaded 139 times
[b]~~[i] Pippa [/i]~~[/b]
Re: Solaris, Sinclair Spectrum text adventure - Softel 1983
Thanks for the source Pippa. Sounds intriguing. Maybe I can backward engineer a verb list by guessing and create my own parser subroutine. Ta.
Jim G.
Jim G.
Re: Solaris, Sinclair Spectrum text adventure - Softel 1983
Working on the assumption that when run the game will unscramble itself in memory I took one of the Z80 snapshot images and opened it in WordPad. Guessing that 'INV' for inventory would be in there a search revealed the following text string:
AIMBRICALCHACLODROKILENTEATEXAFLIFIRGETHELINVINSJUMJOIKILLOOLIFMOVOPEPICPULPREQUIREASWISLISAYSTRSCOSHOUSEUNLWEASTA
or breaking it up in to blocks of three:
AIM BRI CAL CHA CLO DRO KIL ENT EAT EXA FLI FIR GET HEL INV INS JUM JOI KIL LOO LIF MOV OPE PIC PUL PRE QUI REA SWI SLI SAY STR SCO SHO USE UNL WEA STA
Some of the abbreviations should be obvious, others may need an understanding of the game for them to make sense.
AIMBRICALCHACLODROKILENTEATEXAFLIFIRGETHELINVINSJUMJOIKILLOOLIFMOVOPEPICPULPREQUIREASWISLISAYSTRSCOSHOUSEUNLWEASTA
or breaking it up in to blocks of three:
AIM BRI CAL CHA CLO DRO KIL ENT EAT EXA FLI FIR GET HEL INV INS JUM JOI KIL LOO LIF MOV OPE PIC PUL PRE QUI REA SWI SLI SAY STR SCO SHO USE UNL WEA STA
Some of the abbreviations should be obvious, others may need an understanding of the game for them to make sense.
Re: Solaris, Sinclair Spectrum text adventure - Softel 1983
Thanks for the intel. I'll let you folks know if my conversion is successful.
Jim
Jim