• Please review our updated Terms and Rules here

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

The above disks DO work in cloud cp/m

I had used the old 'naburn' insteadof 'naburn8mb' and corrupted my B.DSK for cloud cp/m

Here's a modified version (disassembled and re-assembled) prompting if you want 36 column or it will use default of 64 column:

1677597309116.png

I plan to continue to make some improvements to this mainly for text layout.
 

Attachments

  • adventur.com.zip
    4.8 KB · Views: 1
Do you want to build a 40 col binary and I'll put that in the cloud cpm a: cloud drive?
 
Do you want to build a 40 col binary and I'll put that in the cloud cpm a: cloud drive?
It seems like there's a 2 column padding on each side.

When it hits 40 characters across it auto-jumps to the right on the virtual 80 column - which is confusing an weird.

I'm still working out a few other things for a better experience with visuals.

The main reason I'm doing this is lack of serial redirect in cloud cp/m (I know you're probably sick of hearing that).

A plus to this is getting to play with Z80 assembler.
 
Last edited:
I'd love to add serial support on cloud cpm but I've asked a few times without an answer. I don't know the ports or interrupts used for it. So I have no way to make it happen.
 
brijohn would be the guy. I'm working on a nabu sw project that I started a few days ago, which is massive, so it won't be done for at least a few weeks to show. As henry ford said, you can't build a reputation on things you're going to do - so I'm not talking about the project until I have something to show. In the meantime, I won't have time to dive into debugging and reverse engineering mame serial ATM. But, if brijohn can tell me what ports and irq the serial is using, I can add that into cloud cpm bios for someone with a serial card to test with.

Once I have the port and irq for the serial card, I can always replicate it with an Arduino - that would be easy to use for testing. But if mame has serial support, then I can use that.
 
brijohn would be the guy. I'm working on a nabu sw project that I started a few days ago, which is massive, so it won't be done for at least a few weeks to show. As henry ford said, you can't build a reputation on things you're going to do - so I'm not talking about the project until I have something to show. In the meantime, I won't have time to dive into debugging and reverse engineering mame serial ATM. But, if brijohn can tell me what ports and irq the serial is using, I can add that into cloud cpm bios for someone with a serial card to test with.

Once I have the port and irq for the serial card, I can always replicate it with an Arduino - that would be easy to use for testing. But if mame has serial support, then I can use that.
So the serial IO Ports and IRQ are based on which Expansion slot the serial card is in. The base IO ports for these slots are: 0xC0, 0xD0, 0xE0 and 0xF0. With slot 1 being 0xC0.

The first two offsets from the base port (0,1) allow you to address the i8251 serial controller with offset 1 being the status/control register and offset 0 being the data register.

Offsets 4,5,7 are used to program the pit8253 timer chip that generates the TX/RX baud rate for the 8251. Offset 4, 5 are the counters for timers 0 and 1 and offset 7 is the control register.

The IRQs for the slots are starting with the first slot 4,5,6,7. These are triggered whenever a new character is available on the serial port for reading.
 
Thanks Bri - does the nabu cpm bios scan each irc and port to figure out where the serial card is? Or is there a standard slot for the serial card when using the nabu bios
 
Thanks Bri - does the nabu cpm bios scan each irc and port to figure out where the serial card is? Or is there a standard slot for the serial card when using the nabu bios
Yeah you will need to have the cloud cp/m bios scan the bus on boot to figure out which slot, if any, the serial card is in. You can do this reading from each base + 0x0F port (CF,DF,EF,FF). The first port the return the value 0x08 has a serial card in the slot associated with it. If none of the ports read 0x08 then there is no serial card installed.
 
Looking at the schematic for the NABU I see that there is an unused TX port on the keyboard's 8251 UART. I was think that this could be used as a console out which could be duplicated from Cloud CP/M VDM, redirect device from 3.1 CP/M base or simply a debug-out side port. I have just got a second unit so I plan to use that one to play around with. There are separate clocks for the TX and RX sides. A 1.843200 MHz crystal osc can feed the 8251 TX baud rate and since the chip is programmed up for 16x (I believe) then the TX baud rate would be 115,200. We'll see how that goes here in the next few days.

Greg
 
The keyboard 8251 is poop'n NABUs out the TX port At 115,200 baud. Essentially just add a 1.843200MHz crystal oscillator to the /TxC input, grab the TxD out and wiggle TX bit control reg. This great for debug output or maybe Cloud CP/M 80 column serial display. hint, hint. :)

IMG_4365b.JPGIMG_4364.JPG
 
Do you want to build a 40 col binary and I'll put that in the cloud cpm a: cloud drive?
1677875824943.png
I did create a 40 Column Mod for this and if "Y" is chosen - it will short the prompt to "what to do? "

I didn't want to cause virtual 80 column to scroll over as it was confusing, but virtual 80 column will still work if appropriate key is pressed)

I renamed the original to ADVENTUR.OLD

I added ADVLIST.TXT to list out the Adventure number with the names.

I have uploaded the 2 disks in 'nab1' format

Feel free to add them on Cloud CP/M if you'd like.

Again, it's not perfect as I can't control the format of all the text, but my goal to make it work on 40 Columns is done.
 

Attachments

  • scott_adams_cpm1_nab.dsk.zip
    60 KB · Views: 0
  • scott_adams_cpm2_nab.dsk.zip
    75.6 KB · Views: 0
The keyboard 8251 is poop'n NABUs out the TX port At 115,200 baud. Essentially just add a 1.843200MHz crystal oscillator to the /TxC input, grab the TxD out and wiggle TX bit control reg. This great for debug output or maybe Cloud CP/M 80 column serial display. hint, hint. :)

View attachment 1253689View attachment 1253690
This is neat, you might be able to skip the additional crystal and just connect the onboard 1.79 MHz clock up. This is one of two clock signals that go to the system bus. It is slightly slower, but if it works then you would not need an extra crystal oscillator to drive the /TXC pin. Then you could connect the TXD to one of the unused pins on the keyboard DIN and create a cable that splits its output to another din connector and a DB9 that can be used to connect to a terminal.
 
This is neat, you might be able to skip the additional crystal and just connect the onboard 1.79 MHz clock up. This is one of two clock signals that go to the system bus. It is slightly slower, but if it works then you would not need an extra crystal oscillator to drive the /TXC pin. Then you could connect the TXD to one of the unused pins on the keyboard DIN and create a cable that splits its output to another din connector and a DB9 that can be used to connect to a terminal.
Yep, It is slightly slower and didn't want this to be variable while testing but I will try this tonight for sure. It looks like the baud rate that this would produce is the same as the HCCA port now. 1.79MHz/16 = 111,875 baud.

That is a good idea piping it out through the unused pin of the keyboard cable connector!

Greg
 
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?
Hi. I'm the guy that found ADVENTUR.COM and added the RNDTST program and posted the collection to the IF Archive.

I wish I had an answer for your question, but I can say that I have seen similar behavior with one version of CP/M Plus on the Commodore 128, but not a different (older?) version. I traced it to a BIOS call that reads console input. I was unable to just chop the top of the program off and reproduce the effect with a program fragment so I have no idea why it's doing that, or why it works with one version of a particular CP/M platform and not another.

I did recently get a CP/M card for the Apple II and I will definitely put it in the rotation to test it there.
 
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)?"
I found the same thing with a specific version of CP/M Plus for the C128.

Try grabbing a different version of the CP/M disk from zimmers. I found that one worked and one did not. It seems to be at the point that the application does a BIOS call to do console input to grab a character from the user at the prompt. I have not been able to determine why this happens because if I write a new program that reproduces the steps to the BIOS call, it works on both versions.
 
Last edited:
I found the same thing with a specific version of CP/M Plus for the C128.

Try grabbing a different version of the CP/M disk from zimmers. I found that one worked and one did not. It seems to be at the point that the application does a BIOS call to do console input to grab a character from the user at the prompt. I have not been able to determine why this happens because if I write a program the reproduces the steps to the BIOS call, it works on both versions.
I remember that originally Cloud CP/M had similar issues, but eventually started working.

I have a disassembly of this that I could share (with my comments).

Are you using the original or the 40 column modified version or both?
 
I just have the original (that I got from a shareware disk c. 1990) . I didn't see the 40-column version existed until just today.

I'd love to look over a disassembly (rather than completing my partial one - I was just looking at the front bit of code, initialization and menu code because that was where it was hanging up in some circumstances)
 
I reviewed my disassembly and frankly it leaves a lot to be desired. Also, after checking out your readme.txt and verifying that certain versions work and others don't, I don't blame the ADVENTUR.COM - it must be a BDOS/BIOS bug that causes this issue.
 
Back
Top