• Please review our updated Terms and Rules here

I created floppy images of Scott Adams Adventure Games for CP/M on Nabu

jefferystone

Experienced Member
Joined
Dec 16, 2022
Messages
57
If anyone's interested, I created 2 floppy images with Scott Adam's Adventure Games that work on CP/M with Nabu

Works better with 80 column Wyse 50 terminal attached instead of default console.

The files are from: https://ifarchive.org/indexes/if-archive/scott-adams/games/cpm/

There are 12 adventure games in this collection.

To use:

I used PIP to copy files from both floppy images to hard disk image and started up "adventur". You then enter a number between 1 and 12.

The adventures I tried required "UPPERCASE" to work.

These are using "Osborne Double Density Disk" format (/etc/cpmtools/diskdefs: -f osborne1).
 

Attachments

  • scott-adams-cpm1.dsk.zip
    48.7 KB · Views: 18
  • scott-adams-cpm2.dsk.zip
    53.9 KB · Views: 18
Last edited:
Awesome. I remember playing these on the VIC-20 from cartridge.

Do you mind sharing the floppy image(s)?
 
Ooh, the goodies keep coming. I played the crap out of these on a Model III.

Wonder how hard it would be to make a scottfree interpreter in JavaScript. There's C source for multiple different ones. Be fun to put these up online somewhere without needing an old PC emulator.
 
I tried running the above software on Z80Pack CPM emulator and also natively on my PCPI CP/M card for the Apple ][, but encountered problems. The RNDTST program works and shows a sequence of random numbers. However, when I run ADVENTUR.COM, I don't see a full list of adventures. Instead, I just see "Which Adventure (1-Z)?" Then, when I select an adventure, it asks me my name, then says, "A few moments, please...", then the program hangs.

I get the same program hang on both platforms. Has anyone had success on these platforms?
 
I tried these files on Vice Emulator for C128 (x128 under Linux) with CP/M and the RNDTST worked fine.

The ADVENTUR.COM hung after asking for "Which Adventure (1-Z)?"
 
Awesome. I remember playing these on the VIC-20 from cartridge.

Do you mind sharing the floppy image(s)?
The image will ONLY work on a Microbee. But it does NOT use the ADVENTUR.COM loader but rather a

A Microbee port of the open-source interpreter for Scott Adams
Adventure Games, modified to match the original TRS80 version as closely as possible.
* Response messages updated to more closely match original
* Original welcome/copyright/help message added back
* Switches to Microbee 64x16 display resolution
* Uses direct buffer access to video ram for output
* Generates a single block PCG character for the separator between to the top and bottom parts of the screen
* Some of the optional ScottFree features removed to save space


Written in C and uses Hitech C to compile, I can post the C source if you think thats useful.
 
The image will ONLY work on a Microbee. But it does NOT use the ADVENTUR.COM loader but rather a

A Microbee port of the open-source interpreter for Scott Adams
Adventure Games, modified to match the original TRS80 version as closely as possible.
* Response messages updated to more closely match original
* Original welcome/copyright/help message added back
* Switches to Microbee 64x16 display resolution
* Uses direct buffer access to video ram for output
* Generates a single block PCG character for the separator between to the top and bottom parts of the screen
* Some of the optional ScottFree features removed to save space


Written in C and uses Hitech C to compile, I can post the C source if you think thats useful.
It wouldn't help me.
 
Thanks for this - it's exactly what I was looking for. I'll add the disks to my NABU cloud cp/m distro. Well done!
 
Hope it works on the cloud CP/M - above I mentioned it would hang on C128 CP/M (with no indication why).
 
Oh, interesting. I'll try it pretty soon. I'm in optimization mode right now. Have to clean up that code. The sdcc isn't super great at inlining many functions, specifically ones with return values. So the stack builds. When I did is make the functions naked, so the only stack was the CALL function, and I forcefully hardcoded a RET. I'm not talking about the CPM bios vector jumps; I'm talking about all the c functions behind it. So I had to use a lot more inline assembler than I wanted. The goal is to make it all in C - which will be impossible because I need to load register values into memory addresses of variables referenced in c. But other than that, I should be able to move much of my assembly into C. don't ask me why I'm doing this all in c because I still don't seem to have a good reason other than "wonder if I can do it."

Optimizing the C is essential without it looking ridiculously, uhm, nerd-C. I mean, those guys who write an entire OS in one line of code. I want it to look somewhat readable. Because the bios vector functions are so basic, there aren't many reasons to call functions, so I can manually inline code. For example, reading from the network only needs to happen in one place. Or writing to the console only happens in one place. So there's no need to have functions because nothing is reusable. Anything reusable will be thrown in their function - that's my first optimization plan.

As for ports, that has been a lot of fun because z88dk has __sfr (special function registers), which will inline an assembly OUT or IN without needing to call. So accessing a port looks like a variable; I love it!

Text scrolling was a nightmare that I learned with my nabu-lib. Reading and writing to the vdp ram is super expensive. I learned the solution is to sacrifice 960 bytes for a 40x24 text buffer in ram. that way; I don't need to latch and read data from the vdp. Instead, I write to the vdp consecutively with their blast? blirt? bliz? burty? blitzy? Whatever it's called when the address increments after every write/read. So, read from system ram, and write to vdp ram - fast, with a small buffer overhead.

Anyway, I'm rambling because I'm pretty excited about the project. Far as I know, this is a first for CPM to have a remote filesystem like this :D
 
Great to have you on the forum @DJ Sures ! I've been enjoying the videos that you have made, and really appreciate all the efforts that you, Leo, and others in the Nabu community have put in, to get these machines back and running.

I can't think of any other system that has had it's entire infrastructure recreated. The closest would be PLATO and its replacement IRATA Online, which doesn't recreate the infrastructure as closely.

- Alex
 
Thanks for the warm welcome - happy to be here! I also just published Cloud CP/M's first draft. You'll need the latest internet adapter (2023.01.14.00) for it, as there was a small modification to one of the remote file system calls. I came here to grab this game pack so I can try it out on cloud cp/m. I'll put them in the games disk if they do
 
I took a quick run at the package, but you're right it stops responding from keyboard input. I looked quickly at the stack trace and it's sitting waiting for the keyboard from a bdos command. But it's looping - must be waiting for something that we're not giving it. I can take a closer look another day. But in the meantime, I added Scott's Adventure from a different z80 build on Cloud CP/M G: User Area 1 if you wanna try. Same with the Zork's and stuff. Here's some info for ya!

 
If anyone's interested, I created 2 floppy images with Scott Adam's Adventure Games that work on CP/M with Nabu

Works better with 80 column Wyse 50 terminal attached instead of default console.
I tested these files from Cloud CP/M using a local B.DSK and it doesn't hang anymore.

The program likes to scroll over to the end of the line a lot (virtual 80 column) so you have to PG/UP to get back to beginning of line.

Do you know if Cloud CP/M (based on CP/M 2.2) will allow a redirect to a serial console for output?
 
I found a bug on Cloud CP/M. I made a small program like LOAD.COM that will load a file like LOAD.COM FILE.BIN. Using mame and the original CP/M floppies there are no problems running from drive A or B. But on cloud cp/m the FCB fails. I am using the original FCB that CP/M creates for you as first parameter. Maybe you can try using a program like wordstar to open a file WS.COM DOCUMENT.TXT from drive B.
 
I'm not following what you mean - the ADVENTUR.COM mentioned above works fine from Cloud CP/M now (I didn't back on Jan 14, 2023).
 
I recreated the above disks with "nab1" format (as "osborne1" will be taken away from MAME support)

I also patched for 36 columns (originally 64 columns) - not perfect, but will help:

0418: 24h (original 40h number of columns)
0972: 24h (orig 40h number of "=" in divider)

ADVEN36C.COM = 36-column patched ADVENTUR.COM
ADVEN64C.COM = original 64-column ADVENTUR.COM

This works with CP/M 3.1 (From Leo's drive), but currently not working with Cloud CP/M (I think it was working earlier, but not now).

So if you don't have a serial terminal hooked up to your NABU and want to play using normal console, here you go.
 

Attachments

  • scott_adams_cpm1_nab.dsk.zip
    60 KB · Views: 2
  • scott_adams_cpm2_nab.dsk.zip
    75.5 KB · Views: 2
Back
Top