tergav17 / IshkurCPM

An open source, modular CP/M distribution for the NABU computer
GNU General Public License v3.0
23 stars 3 forks source link

CCP built-in 'era' not handling '*.*' wildcards #11

Closed snhirsch closed 1 year ago

snhirsch commented 1 year ago

I can delete files by specifying their exact name and/or wildcarding only one of name and extension. If I enter era *.* it asks me "All?". I enter 'Y' and it immediately warm-boots back to the prompt with no action taken.

tergav17 commented 1 year ago

My guess is that CP/M is attempting to delete a file that it does not have permissions to delete on the host system. If an NHACP "FILE-DELETE" request comes back with an error, I think the default response it to warm boot. Is this also on NNS?

snhirsch commented 1 year ago

I took a quick shot at using ZCPR1 as the CCP. It's assembling without errors but gets into a loop at boot. nabud reports this over and over:

INFO: stext_file_open: [/dev/ttyUSB0] Opening 'A0/CPM22.SYS'
INFO: stext_file_open: [/dev/ttyUSB0] Opening 'A0/FONT.GRB'
INFO: stext_file_open: [/dev/ttyUSB0] Opening 'A0/CPM22.SYS'
INFO: stext_file_open: [/dev/ttyUSB0] Opening 'A0/FONT.GRB'
...

Is there something you needed to do with the DRI CCP code in order to get it working on the NABU? I have a feeling this porting chore would be simpler on an emulator as opposed to connecting up my Z80 ICE to real hardware. What environment are you using for emulation?

snhirsch commented 1 year ago

Here's the source for ZCPR1 and my quick hack to merge it with CPM22.asm. zcpr17.zip hacked_cpm22.zip

snhirsch commented 1 year ago

Caught a typo in my CP/M merge. This one still doesn't boot, but no loop - just hangs. Progress of a sort! hacked_cpm22.zip

tergav17 commented 1 year ago

For emulation, I usually use NABU MAME. It provides a very capable debugging environment, easy configuration, and (mostly) accurate emulation.

There shouldn't be too much tweaking that needs to happen to drop in a new CCP. As long as no high-memory buffers are used, it should be compatible right out of the box. The only thing I would watch out for is the inbuff command buffer area. The cold boot hook will try to modify it at startup to enable INIT.COM to run. You may also run into issues with SUBMIT files later down the line.

I think I'll look into getting ZCPR1 working tonight as well. ZCPR3 may be interesting to eventually port, but it also has a decently large memory footprint and some Ishkur configurations are already quite big (NFS + FDC is like 11kb, IIRC).

snhirsch commented 1 year ago

Found the problem! I was assuming an even page location for fbase:. It's working fine now and, not surprisingly, era *.* is now working. zcpr1_cpm22.zip ZCPR3 won't require porting since it's been superceeded by NZCOM. The latter is basically a universal ZCPR3 that self-installs. I'll pull the files together in my Dropbox area and drop you a PM.

tergav17 commented 1 year ago

Awesome!

I'll have to do more research into ZCPR / NZCOM / Z-System. CP/M itself was long obsolete by the time I came around, so all of this is very new to me.

snhirsch commented 1 year ago

Some of the critical documentation for Z-System is difficult to find, mostly the developer related documentation. I have almost everything in paper form and have scanned some to PDF. Let me know if you are having trouble finding anything.

I need to do a lot cleanup on that ZCPR1 merge, but I think the proof of concept is there. If I have time this weekend I'm planning (for my own edification) to see what it would take to build and link with the zmac and ld80 tools. May be more trouble than it's worth, but for years I used M80/L80 tools to build systems natively. Should be doable with cross-tools now. Best part is that Peter Philips (author) is a super nice guy and very responsive to technical questions and bug reports.

tergav17 commented 1 year ago

Being able to build the system on actual hardware would be pretty cool. I was originally planning on being able to do just that, but the increasing source code complexity has locked me into using ZASM for a awhile.

Oh yea, found that ERA *.* bug in the vanilla CCP. I should be more careful when converting source code to lower case... Closing the issue.

snhirsch commented 1 year ago

Thanks for the update! Building on native hardware should be straightforward. That's how everything was done "back in the day". Nice part is that zmac/ld80 is near 100% compatible with M80/L80. If we get a piecewise (individual module assemble with linker phase) build working with cross-tools it will almost certainly transfer to the real metal. I'll let you know how my experiments go.