Home
JAQForum Ver 24.01
Log In or Join  
Active Topics
Local Time 03:44 29 Nov 2024 Privacy Policy
Jump to

Notice. New forum software under development. It's going to miss a few functions and look a bit ugly for a while, but I'm working on it full time now as the old forum was too unstable. Couple days, all good. If you notice any issues, please contact me.

Forum Index : Microcontroller and PC projects : CMM2: More creaky old text adventures (SAAINT)

     Page 2 of 3    
Author Message
Turbo46

Guru

Joined: 24/12/2017
Location: Australia
Posts: 1611
Posted: 06:10am 26 Jul 2021
Copy link to clipboard 
Print this post

Some time ago Tom posted an MMBasic port of "TENLINER CAVE ADVENTURE" a ZX81 game by Einar Saukas here.

The attached is the same adventure in the Scott Adams adventure format.

Cave.zip

If you want to play, just copy it to the 'adventures\misc' directory and run SAAINT.

Bill
Keep safe. Live long and prosper.
 
thwill

Guru

Joined: 16/09/2019
Location: United Kingdom
Posts: 4047
Posted: 06:39pm 26 Jul 2021
Copy link to clipboard 
Print this post

Very nice Bill you could probably have posted the .dat in a CODE block so that casual readers could have seen what is involved.

Is anyone else playing with SAAINT ?

Is there any interest in having a TBS interactive fiction writing competition ?

Best wishes,

Tom
Edited 2021-07-27 05:06 by thwill
Game*Mite, CMM2 Welcome Tape, Creaky old text adventures
 
Turbo46

Guru

Joined: 24/12/2017
Location: Australia
Posts: 1611
Posted: 01:02am 27 Jul 2021
Copy link to clipboard 
Print this post

  Tom said  you could probably have posted the .dat in a CODE block

Yes I could have but it's 256 lines long, even for such a small adventure. The .dat file is a plain text file and plain old notepad will open it. A dump file may be better?

Bill

The Dump file:

Data dump for 'A:/cmm2-saaint-develop-2.0.0/src/../adventures/misc/cave.dat'

Min text size (bytes):  1066
Max object index:       9
Max action index:       16
Max vocabulary index:   27
Max room index:         4
Max objects carried:    5
Starting room index:    1
Number of treasures:    1
Vocabulary word length: 4
Time limit:             999
Max message index:      6
Treasure room index:    1

ACTIONS
-------

0: 0     100   IN 1   -BIT 0   Par 0   Par 0   Par 0   MSG:4   MSG:5   MSG:6   SETz
1: 0     0     Par 0  Par 0    Par 0   Par 0   Par 0   0       0       0       0
2: LOOK  ANY   IN 1   Par 0    Par 0   Par 0   Par 0   MSG:3   0       0       0
3: LOOK  ANY   IN 2   Par 0    Par 2   Par 0   Par 0   x->y    DspRM   0       0
4: KILL  DRAG  IN 2   -HAVE 4  Par 0   Par 0   Par 0   DEAD    FINI    0       0
5: LOOK  ANY   IN 3   Par 1    Par 3   Par 0   Par 0   x->y    DspRM   0       0
6: OPEN  CHES  IN 3   -HAVE 3  Par 0   Par 0   Par 0   MSG:1   0       0       0
7: OPEN  CHES  IN 3   HAS 3    Par 4   Par 3   Par 0   x->y    DspRM   0       0
8: LOOK  ANY   IN 4   -IN/W 2  Par 2   Par 4   Par 0   x->y    DspRM   0       0
9: LOOK  ANY   IN 4   IN/W 2   Par 3   Par 4   Par 0   x->y    DspRM   0       0
10:GET   KEY   IN 4   IN/W 3   Par 3   Par 0   Par 0   GETx    INV     0       0
11:GET   SWOR  IN 3   IN/W 4   Par 4   Par 0   Par 0   GETx    INV     0       0
12:KILL  DRAG  IN 2   HAS 4    Par 0   Par 0   Par 0   MSG:2   FINI    0       0
13:INVE  ANY   Par 0  Par 0    Par 0   Par 0   Par 0   INV     0       0       0
14:QUIT  ANY   Par 0  Par 0    Par 0   Par 0   Par 0   SCORE   FINI    0       0
15:LOOK  ANY   Par 0  Par 0    Par 0   Par 0   Par 0   DspRM   0       0       0
16:SCOR  ANY   Par 0  Par 0    Par 0   Par 0   Par 0   SCORE   0       0       0

VOCAB
-----

0:    AUTO   ANY
1:    GO     NORTH
2:    *ENT   SOUTH
3:    *EXIT  EAST
4:    *WALK  WEST
5:    *RUN   UP
6:    CLIM   DOWN
7:    LOOK   DRAG
8:    *EXAM  CHES
9:    *INSP  CORP
10:   GET    KEY
11:   *CARR  SWOR
12:   *TAKE  
13:   *PICK  
14:   *CATC  
15:   INVE  
16:   QUIT  
17:   HELP  
18:   DROP  
19:   *RELE  
20:   *PUT  
21:   *GIVE  
22:   *LEAV  
23:   SCOR  
24:   KILL  
25:   *SLAY  
26:   OPEN  
27:   *UNLO  

ROOMS
-----

0:    <storeroom>
     Exits: None
1:    Cave
     Exits: North
2:    Hall
     Exits: South, East
3:    Pit
     Exits: North, West
4:    Lake
     Exits: South

MESSAGES
--------

0:    <empty>
1:    Cannot do
2:    You won
3:    Nothing
4:    As a young warrior apprentice, you have been chosen by the village elders to
5:    seek out the evil menace that lurks in some nearby caves. Once found, use any
6:    means at your disposal to defeat it... Gook luck on your quest!

OBJECTS
--------
No    Rm

0:    0     dragon
1:    0     chest
2:    0     corpse
3:    0     key
4:    0     sword
5:    4     water
6:    0     x
7:    0     y
8:    0     z
9:    0     lamp

For "SAAINT's many devoted users" I should explain that the objects 'x, y, and z' are padding because the adventure system expects the light source (not Used Here) to be object number 9. Also it expects the verb 'DROP' (also not used) to be number 18, so there are extra un-needed verbs for padding.
Edited 2021-07-27 14:31 by Turbo46
Keep safe. Live long and prosper.
 
thwill

Guru

Joined: 16/09/2019
Location: United Kingdom
Posts: 4047
Posted: 06:20pm 28 Jul 2021
Copy link to clipboard 
Print this post

Thanks Bill, I'm sure "SAAINT's many devoted users" will appreciate it . I'm looking at handling those minimum object and verb issues in the next maintenance build - but not much free time at the moment.

Best wishes,

Tom
Game*Mite, CMM2 Welcome Tape, Creaky old text adventures
 
thwill

Guru

Joined: 16/09/2019
Location: United Kingdom
Posts: 4047
Posted: 11:48pm 19 Feb 2022
Copy link to clipboard 
Print this post

Hi folks,

I've consulted the Necronomicon and resurrected this thread so that I can announce SAAINT version 2.0.5 which can be downloaded from the usual place:

 README
 ChangeLog
 Download

There are many, many changes but the bottom line is that it makes some creaky old text adventures marginally less creaky and will now also run on Linux using MMB4L.

It won't run on MMB4W alpha 3, I need Peter to implement #INCLUDE and even then I suspect there will be some file API incompatibilities to iron out.

It also won't run on the PicoMite even after I transpile out the #INCLUDEs because it uses too much memory due to naive storage of strings, one of these days I'll get around to dealing with that.

If you are wondering why I've bothered then hopefully that mystery will be resolved within a couple of days .

Best wishes,

Tom
Edited 2022-02-20 09:58 by thwill
Game*Mite, CMM2 Welcome Tape, Creaky old text adventures
 
Mixtel90

Guru

Joined: 05/10/2019
Location: United Kingdom
Posts: 6808
Posted: 07:42am 20 Feb 2022
Copy link to clipboard 
Print this post

More moons ago than I care to remember, I had a play with compacting strings. It was in my old TRS-80 programming book and saves about 50% on string space. It was impressive! Limitations are that you only have 40 characters (usually A-Z, 0-9, space, period, comma, dash). One is a default, which is substituted if you try to compress an unrecognized character. It converts each 3-byte section of the string into 2 bytes. Unfortunately for us it was in Z80 assembler, but I suspect that even done in MMBasic it wouldn't be snail's pace. I might have a play at some point...
Mick

Zilog Inside! nascom.info for Nascom & Gemini
Preliminary MMBasic docs & my PCB designs
 
thwill

Guru

Joined: 16/09/2019
Location: United Kingdom
Posts: 4047
Posted: 08:47am 20 Feb 2022
Copy link to clipboard 
Print this post

Hi Mick,

SAAINT on the PicoMite shouldn't need string compression per se, I just need to stop using 256 characters for each string.

If I need more than that then I will probably repurpose the Z-String compression in Z-MIM which sounds very similar to what you mention.

Best wishes,

Tom
Game*Mite, CMM2 Welcome Tape, Creaky old text adventures
 
KD5ZXG
Regular Member

Joined: 21/01/2022
Location: United States
Posts: 53
Posted: 09:21am 20 Feb 2022
Copy link to clipboard 
Print this post

TRS-80 Model 1 could display only 6 bits per character unless you piggyback a missing ram and disable the logic that faked it. Moreover, mine needed a new character rom (missing lower case fonts? I can no longer recall with certainty.) If you had Model 3 or hacked Model 1, most adventures included full support for lower case text. Quite a surprise to me, as that was demonstrated even before Model 3 existed.

I got stuck in SAA a lot, hot reset and peek'd through memory looking for hints. All I could ever find were a few keywords. Majority of text in memory was scrambled or compressed or otherwise obfuscated.

Something not right about my story, as a character could display 6 blocks of graphics and that's six bits right there. How did that ever work? Maybe it was seven bits faked out to eight by logic. This page offers far better explanation: Cloning a TRS-80

"In the original TRS-80 the designers skimped on memory, providing only seven 1-bit static RAM chips for the video memory. Bit-7 controlled whether a memory location defined either a graphics character or a ROM-generated "text" character. Bit-6 was the missing memory chip, leaving only six bits (bits 0 through 5) for selecting the character. So, that gave 64 ROM-defined "text" characters and 64 graphics/block characters (the latter giving chunky, pseudo bit-mapping). Only 64 text characters didn't leave enough room for lower case letters of the alphabet. Lower case letters, in addition to several other characters, were actually defined in the second 64 character page of the TRS-80's character ROM, but the original hardware just couldn't access them without bit-6."

Except my character rom also needed upgrade. I had an early Model 1 Level 1. Switchable to Level 2 Basic via cigar box hanging out the back. Not talking expansion interface, but external eproms zif socketed into an actual cigar box. Those sold as Level 1's may not have had complete character rom. Character rom was an internal upgrade, separate from the display bit and cigar box hacks.
Edited 2022-02-20 20:16 by KD5ZXG
 
Mixtel90

Guru

Joined: 05/10/2019
Location: United Kingdom
Posts: 6808
Posted: 10:57am 20 Feb 2022
Copy link to clipboard 
Print this post

I had (still have but it's not been plugged in for many years) a Model 1 level 2 with several mods! There's also an expansion interface with a AY3-8910 sound chip where the memory expansion should be (expansion is in the keyboard). There's also a Tandy green screen monitor and a couple of floppy drives. When I bought it they didn't have a UK version, so there's also a little 240/110v transformer. Unfortunately that doesn't fix the frequency so the monitor has a continuous wobble on the display. :(

Through nefarious sources I also got Newdos-80 and, later, LDOS. :)  Getting a good disk BASIC was fantastic.

Fond memories of "Dancing Demon" :)
Mick

Zilog Inside! nascom.info for Nascom & Gemini
Preliminary MMBasic docs & my PCB designs
 
lizby
Guru

Joined: 17/05/2016
Location: United States
Posts: 3152
Posted: 01:36pm 20 Feb 2022
Copy link to clipboard 
Print this post

  Mixtel90 said  . . . Limitations are that you only have 40 characters (usually A-Z, 0-9, space, period, comma, dash). One is a default, which is substituted if you try to compress an unrecognized character. It converts each 3-byte section of the string into 2 bytes.

Sounds like a variant of 5-bit ASCII. I first encountered that in 1968 on a paper tape technical journal typesetting and publishing system. All you need to add is a shift-on and shift-off character and you can have full ASCII plus tons of special characters (shift-on encountered while you are already shifted takes you to a whole additional character set--as many times as you need).
PicoMite, Armmite F4, SensorKits, MMBasic Hardware, Games, etc. on fruitoftheshed
 
Turbo46

Guru

Joined: 24/12/2017
Location: Australia
Posts: 1611
Posted: 05:48am 21 Feb 2022
Copy link to clipboard 
Print this post

I have written a Scott Adams style adventure:




Blackberry.zip


The idea came from a comment by lizby about picking blackberries in a previous post.

It is a small adventure with one treasure and 17 locations and it is kid friendly, no gruesome death. There are several ways to complete the adventure and only a few ways to get into trouble. It would be a good one to involve a child, our hero is most likely to be a young boy but not necessarily.

Like any adventure of this type will have to draw a map as you go or you will get lost. It will fit on an A4 sheet so it's not a big task.

Tom has been tireless and very patient in assisting me with this by testing, identifying bugs and making suggestions. Without his help it would have been nowhere as complete and playable. He is doubtless glad to see the back of it. Thanks Tom.

Tom has updated SAAINT since the post above and the download now includes blackberry. If you want to play blackberry (and I hope someone does) then I suggest that you download the latest version. Any comments or suggestions would be gratefully accepted (because it would mean that someone actually tried it   )

If you just download this file the unzip it and put the two files in:

saaint\adventures\misc

Bill
Keep safe. Live long and prosper.
 
thwill

Guru

Joined: 16/09/2019
Location: United Kingdom
Posts: 4047
Posted: 04:37pm 21 Feb 2022
Copy link to clipboard 
Print this post

Note that even with the latest MMB4W alpha (21st Feb 2022) SAAINT still doesn't work on Windows .

Peter said "Your file and directory handling is so multi-layered and complex I can't make head or tail of it ..."

I haven't yet decided whether I will wear this as a badge of pride or of ignominy  .

I'm waiting until he implements "Change all file and path input to properly canonicalize the pathnames" and then I'll get it working.

Watch (or not) this space,

Tom
Game*Mite, CMM2 Welcome Tape, Creaky old text adventures
 
Mixtel90

Guru

Joined: 05/10/2019
Location: United Kingdom
Posts: 6808
Posted: 04:51pm 21 Feb 2022
Copy link to clipboard 
Print this post

Lol!

I'm sure something nice will happen eventually. :)
Mick

Zilog Inside! nascom.info for Nascom & Gemini
Preliminary MMBasic docs & my PCB designs
 
thwill

Guru

Joined: 16/09/2019
Location: United Kingdom
Posts: 4047
Posted: 10:06am 22 Feb 2022
Copy link to clipboard 
Print this post

  Turbo46 said  I have written a Scott Adams style adventure:


Well done Bill, I've really appreciated collaborating with you on this and SAAINT is much better as a result of the process. I think "The Great Blackberry Adventure" is a great achievement and I know you've worked really hard on creating the tooling to make it possible.

   

Best wishes,

Tom
Game*Mite, CMM2 Welcome Tape, Creaky old text adventures
 
Turbo46

Guru

Joined: 24/12/2017
Location: Australia
Posts: 1611
Posted: 09:52pm 22 Feb 2022
Copy link to clipboard 
Print this post

Thanks Tom, and thanks again for all of your help. It's been quite a journey from when I offered to try to port 'Pirate' to the CMM2. I did not realize at the time that it was really an interpreter and all of the adventure commands, locations and so on were contained in the data statements. The 90 odd GOTOs it contained quickly got the better of me.

You then wrote SAAINT just to get 'Pirate' going for the CMM2. Now SAAINT has evolved to be able to play any of the Scott Adams style adventures better, I think, than many of the original versions.  

It seems that SAAINT is coming closer to be able to run on MMB4W. Interesting that Peter could not make head nor tail of your file and directory handling, how could a mere mortal like me expect to understand it (and much of the rest of it)?  

Cheers

Bill
Keep safe. Live long and prosper.
 
thwill

Guru

Joined: 16/09/2019
Location: United Kingdom
Posts: 4047
Posted: 02:24pm 06 Apr 2022
Copy link to clipboard 
Print this post

Blame Bill ,

SAAINT 2.0.7 now runs on CMM2, MMB4L and MMBasic for Windows:

 README
 ChangeLog
 Download

Best wishes,

Tom
Edited 2022-04-07 01:14 by thwill
Game*Mite, CMM2 Welcome Tape, Creaky old text adventures
 
Mixtel90

Guru

Joined: 05/10/2019
Location: United Kingdom
Posts: 6808
Posted: 03:17pm 07 Apr 2022
Copy link to clipboard 
Print this post

Tried to run it, Tom without success. Might be that my CMM2 needs updating though. I'm running MMBasic 5.07.01.

error in splib/file.inc line 4b:syntax

I'm not absolutely sure about the 4b as the very top line is cropped on my monitor. I've not tried earlier versions so I've nothing to compare it with. I just happen to have spare time because I'm stuck at home with soddin' covid. :(
Mick

Zilog Inside! nascom.info for Nascom & Gemini
Preliminary MMBasic docs & my PCB designs
 
thwill

Guru

Joined: 16/09/2019
Location: United Kingdom
Posts: 4047
Posted: 04:03pm 07 Apr 2022
Copy link to clipboard 
Print this post

  Mixtel90 said  Tried to run it, Tom without success. Might be that my CMM2 needs updating though. I'm running MMBasic 5.07.01.


I'm running on 5.07.02b2 ... which may or may not be the latest, I lose track.

  Quote  error in splib/file.inc line 4b:syntax


I'm guessing it is line 46:
file.exists% = Mm.Info(Exists File f$) Or Mm.Info(Exists Dir f$)

MM.INFO(EXISTS [FILE|DIR] path$) is a very recent addition to MMBasic, so possibly only in 5.07.02.

  Quote  I just happen to have spare time because I'm stuck at home with soddin' covid. :(


Damn! I hope you get well soon.

Best wishes,

Tom
Edited 2022-04-08 02:05 by thwill
Game*Mite, CMM2 Welcome Tape, Creaky old text adventures
 
Mixtel90

Guru

Joined: 05/10/2019
Location: United Kingdom
Posts: 6808
Posted: 05:18pm 07 Apr 2022
Copy link to clipboard 
Print this post

Cheers, Tom. I'll do an update.

(I don't recommend covid - even when fully jabbed! I wouldn't mind, but as a family we have all tended towards playing safe most of the time - wearing a mask in shops & on the bus etc. Still, we get short term immunity as some sort of recompense. :) )

EDIT:
YAY! that fixed it. I've put the latest b5 version on and it's perfectly happy. Playing Adventureland again has brought back a lot of happy memories. It was the first "real" text adventure I ever played.
Edited 2022-04-08 05:07 by Mixtel90
Mick

Zilog Inside! nascom.info for Nascom & Gemini
Preliminary MMBasic docs & my PCB designs
 
Rickard5

Guru

Joined: 31/03/2022
Location: United States
Posts: 463
Posted: 08:50pm 07 Apr 2022
Copy link to clipboard 
Print this post

THWILL Hoping my CCM2 Comes soon Because this is the BEST NEWS EVER I loved Scott Adams Games back when :) You sir are a Man among Men and you deserve our Praise and Admiration
I may be Vulgar, but , while I'm poor, I'm Industrious, Honest,  and trustworthy! I Know my Place
 
     Page 2 of 3    
Print this page
© JAQ Software 2024