• Please review our updated Terms and Rules here

NABU PC Emulation under MAME

I would work with the 8K version 29 of the firmware Leo provided. It allows me to boot to CP/M AND use NABU RetroNet together. Rev B, which was originally in my NABU PC would not run NABU RetroNet properly. It could never get to the opening menu. Just wanted to give you guys a heads up on that. I've been using version 29 exclusively.
 
I would work with the 8K version 29 of the firmware Leo provided. It allows me to boot to CP/M AND use NABU RetroNet together. Rev B, which was originally in my NABU PC would not run NABU RetroNet properly. It could never get to the opening menu. Just wanted to give you guys a heads up on that. I've been using version 29 exclusively.
Well i need to fix an outstanding issue with the emulation first. For reasons i have not been able to determine when booting the roms with floppy boot support it never displays the boot menu no matter what.

If i don't have the adapter or floppy connected, I get "Adapter or floppy disk failed" message
If I have the adapter connected, but not the floppy I get "Adapter or floppy disk failed" message.
If I have the floppy but not the adapter connected i go straight to the "Insert disk and press go" message
If I have both connected it goes straight to the "Insert disk and press go" message.

So no matter what i am never even given the option to try and boot from cable. The wierd thing is that it never even seems to attempt to read or write to IO port 0x80. Haven't yet had much luck in figuring out why yet.
 
Here's what I get on real hardware (with V29).

If i don't have the adapter or floppy connected, I get Insert System Disk and press Go" message. I still have the FDC in place but have the drive disconnected.
If I have the adapter connected, but not the floppy I get "Please select Loading Device. 1. Cable 2. Floppy" message. I still have the FDC in place but have the drive disconnected.
If I have the floppy but not the adapter connected i go straight to the "Insert disk and press go" message.
If I have both connected it goes to the ""Please select Loading Device. 1. Cable 2. Floppy" message." message.

Note, the Reset button and the Power button react very different. Pressing Reset will remember your last setting so if I get the "Please insert disk.." option even though I started up the network adapter, I will never see that "Cable" option in the menu until I Power off and back on. You probably know this but just making sure in case you don't.
 
I have created 3 floppy images for Zork I, Zork II, and Zork III using the method that quidol gave (using cpmtools):

The filename needed to be ZORK1.DAT, but I created a "nabu writer" file on Zork II and Zork III explaining this:

$ cpmls -f osborne1 nabu_zork1.dsk
0:
zork1.dat

$ cpmls -f osborne1 nabu_zork2.dsk
0:
its_zork.ii
zork1.dat

$ cpmls -f osborne1 nabu_zork3.dsk
0:
its_zork.iii
zork1.dat

I have not tested them other than letting it boot into each version and running $verify (they all verified fine).
 

Attachments

  • nabu_zork3.zip
    57.3 KB · Views: 9
  • nabu_zork2.zip
    65 KB · Views: 8
  • nabu_zork1.zip
    60.6 KB · Views: 9
Actually, If you rename any of the CP/M Infocom game files to ZORK1.DAT, they will play as Zork 1, does, because all of them use this same engine. All we really needed to was to swap the name, picture and DAT file name, and we knew we could offer any Infocom game if demand took off.
 
Yeah, any Z3 game (except Amiga versions of Lurking Horror) should theoretically work.

There's a few third-party games (like an old version of "Curses") that will also work.
 
I've updated my mame core to support booting from the CPM disks, no disk image editing is required. Just use a raw sector image and mame will add the necessary out of band information into track 0.

./mame nabupc -kbd nabu_hle -bios revb -option1 fdc -flop1 ./leo1.img

cpmboot.png
 
Awesome work @brijohn ... looking forward to the update. Curious, did you track down the issue with getting the proper boot menu (with both server and disk options showing, vs. just disk) when using Leo's ver 29 ROM?
 
Awesome work @brijohn ... looking forward to the update. Curious, did you track down the issue with getting the proper boot menu (with both server and disk options showing, vs. just disk) when using Leo's ver 29 ROM?
Nope still haven't had a chance to look into why that is not happening.
 
That is awesome.

Just a small note. Most people will want the "Leo 2" diskette. "Leo 1" is a developer disk with a bunch of different CPM3.SYS variants and other utilities. Leo 2 is the consumer version with most CP/M 3 tools.
 
That is awesome.

Just a small note. Most people will want the "Leo 2" diskette. "Leo 1" is a developer disk with a bunch of different CPM3.SYS variants and other utilities. Leo 2 is the consumer version with most CP/M 3 tools.
MAME will run either, though i'd have to do the editing to get the leo2 to run on real hardware. That is certainly possible though. Also as a side note MAME can now run and boot the original NABUPER1-3 disks as well.

Doing a quick look at the PER1 seems to be the same as "Leo 2" and PER3 is basically the "Leo 1" disk. PER2 is new and contains actually development tools, (MAC.COM, LINK.COM, SID.COM, etc).

They also have a slightly older release being 4.3 instead of 4.4.
 
Takes a while but CPM booted. I can't view my previous OSBORNE1 .dsk files anymore, they show up as NABU disks. Is there a way to turn it off or are we converting to NABU format now?
 
MAME will run either, though i'd have to do the editing to get the leo2 to run on real hardware. That is certainly possible though. Also as a side note MAME can now run and boot the original NABUPER1-3 disks as well.

I hacked up the Leo 2 image yesterday and while it boots, it loops on an "CP/M Error On Q: Invalid Drive" error instead of giving the command prompt. I used the out of band DPB at image offset F02, your translate table at image offset F13, and adjusted the XLT pointer of the image DPH at EE8 to point to C13h. The BIOS DPH is at offset 465F, and XLT pointer was changed to E824h, the BIOS DPB is at 44D4 and was also changed to the out of band variation. Last, offset 45A4 was updated with your translate table (that puts it in memory at address E824h).

It appears the the XLT pointer is always getting reset to 0000h during SELDSK (or perhaps elsewhere). I didn't step through SELDSK to see where.
 
Takes a while but CPM booted. I can't view my previous OSBORNE1 .dsk files anymore, they show up as NABU disks. Is there a way to turn it off or are we converting to NABU format now?
Not at the moment, it determines what disk format to use based on file size (204800), and since both are the same size, it always uses the nabu disk format. I'll have to come up with a way to tell them apart. eitehr based on extension or maybe slapping a small header onto the raw sector output.
 
I hacked up the Leo 2 image yesterday and while it boots, it loops on an "CP/M Error On Q: Invalid Drive" error instead of giving the command prompt. I used the out of band DPB at image offset F02, your translate table at image offset F13, and adjusted the XLT pointer of the image DPH at EE8 to point to C13h. The BIOS DPH is at offset 465F, and XLT pointer was changed to E824h, the BIOS DPB is at 44D4 and was also changed to the out of band variation. Last, offset 45A4 was updated with your translate table (that puts it in memory at address E824h).

It appears the the XLT pointer is always getting reset to 0000h during SELDSK (or perhaps elsewhere). I didn't step through SELDSK to see where.
Yes it pulls XLT address from elsewhere in memory. I am going to edit "Leo 2" later, to work correctly.
 
brijohn,

How about an option in the menu to pick type of format (nabu or osborne I) by the user. Unless you can find a uniqueness (specific pattern or byte location value) that would determine the format.
 
brijohn,

How about an option in the menu to pick type of format (nabu or osborne I) by the user. Unless you can find a uniqueness (specific pattern or byte location value) that would determine the format.
That's possible, but the issue with that is that you can still only do one or the other.

Currently I'm thinking either different extensions (.nb1, .nb2) or something like that. Or adding a header to disk image, something like "NABU" to indicate that its a NABU disk, and nothing indicates its a normal osborn disk. Then you could mount the osborne disk in drive B: while your system disk is in drive A. But i have not decided what the best way to go about it yet.
 
That's possible, but the issue with that is that you can still only do one or the other.

Currently I'm thinking either different extensions (.nb1, .nb2) or something like that. Or adding a header to disk image, something like "NABU" to indicate that its a NABU disk, and nothing indicates its a normal osborn disk. Then you could mount the osborne disk in drive B: while your system disk is in drive A. But i have not decided what the best way to go about it yet.
OK the disk issue has been fixed. Now it can load either type of disk. I just booted into CPM with an osborne style disk in drive B and was able to access it fine.

I realized that since the CPM disks have a boot loader on them, i could just check for certain strings at the correct offset to determine the type.
 
Back
Top