Open snhirsch opened 1 year ago
I just got the latest build of Ishkur working on NNS, which I am assuming you are using. I am also noticing that file renaming on this adapter simply does not work. PIP is able to copy the files as you mentioned, but never renames the "*.$$$" to its proper form. This is a bug that I am not able to replicate on nabud
or the developer build of the nabunetwork.com adapter.
If I had to guess, I would say that NNS is not interpreting the "FILE_RENAME" NHACP operation correctly. I should probably bring this up to GryBsh.
Can you give me a step-by-step for deploying Ishkur? In the meantime I'll try nabud.
If you are using nabud
. I can give you the exact workflow that I use to develop Ishkur.
The first thing that you will need to do is configure nabud
to point towards the boot program and define a NHACP directory. The nabud.conf
file should be placed in /usr/local/etc
. I'll paste the configuration that I use below:
{
"Sources": [
{
"Name": "Local",
"Location": "/home/gcter/nabu",
}
],
"Channels": [
{
"Name": "nabu",
"Number": 1,
"Type": "nabu",
"Source": "Local",
}
],
"Connections": [
{
"Type": "tcp",
"Port": "5002",
"Channel": 1,
"StorageArea": "/home/gcter/nabu/nhacp",
}
]
}
In my configuration, ~/nabu/nabu
holds the homebrew boot program, and ~/nabu/nhacp
holds the NHACP directory.
I currently do all my development on Windows, so I have a batch script in the Ishkur repository that automatically builds everything and generates all disk images / output binaries. You can technically compile everything manually under Linux, but it would be painful. I have been meaning to write a proper bash script to build everything as well (that may be a good project for this weekend :) ).
After everything is built, it needs to be copied from the Output
directory into the nabud
directories. I usually use a script to do this to, but it can be done manually. Note that the boot program is renamed to 000001.nabu
:
#!/bin/bash
# This script will set up the nabud environment to use the latest NFS hybrid build
cp c:/Projects/Nabu/IshkurCPM/Output/Nabu_NFS/NFS_HYBRID_BOOT.nabu ~/nabu/nabu/000001.nabu
cp c:/Projects/NABU/IshkurCPM/Output/Nabu_NFS/NFS_HYBRID_CPM22.SYS ~/nabu/nhacp/A0/CPM22.SYS
You will still need software to test with. To make things convenient to you and anyone else who wants to set up a system from scratch, I placed an archive of software that I use to test stuff in the repository. It is all known to more or less work with Ishkur: https://github.com/tergav17/IshkurCPM/tree/main/Applications/Premade
After a bit of head-scratching, I have nabud working to serve Ishkur. The older distribution from my Internet Adapter 2.0 download boots and runs, showing the same issues I reported with wildcards and era unfortunately. Next, I attempt to deploy from the Ishkur project:
Then I copied FONT.GRB from the older Ishkur to /home/hirsch/nabu/nhacp
The NABU just goes into an endless loop of attempting to start, failing, attempting, etc.
What did I miss?
Next attempt: Using the NFS flavor. Here's the directory layout:
nabu:
total 32
drwxrwxr-x 4 hirsch hirsch 4096 Jun 10 09:40 .
drwxr-xr-x 145 hirsch hirsch 20480 Jun 10 10:11 ..
drwxrwxr-x 2 hirsch hirsch 4096 Jun 10 09:54 nabu
drwxrwxr-x 4 hirsch hirsch 4096 Jun 10 10:06 nhacp
nabu/nabu:
total 12
drwxrwxr-x 2 hirsch hirsch 4096 Jun 10 09:54 .
drwxrwxr-x 4 hirsch hirsch 4096 Jun 10 09:40 ..
-rw-rw-r-- 1 hirsch hirsch 327 Jun 7 17:25 000001.nabu
nabu/nhacp:
total 8224
drwxrwxr-x 4 hirsch hirsch 4096 Jun 10 10:06 .
drwxrwxr-x 4 hirsch hirsch 4096 Jun 10 09:40 ..
drwxrwxr-x 2 hirsch hirsch 4096 Jun 10 10:09 A0
drwxrwxr-x 2 hirsch hirsch 4096 Jun 10 10:06 B0
-rw-rw-r-- 1 hirsch hirsch 8871 Jun 7 17:25 CPM22.SYS
-rw-rw-r-- 1 hirsch hirsch 2048 May 27 18:38 FONT.GRB
-rw-rw-r-- 1 hirsch hirsch 8388608 Jun 10 09:53 NDSK_B.IMG
nabu/nhacp/A0:
total 128
drwxrwxr-x 2 hirsch hirsch 4096 Jun 10 10:09 .
drwxrwxr-x 4 hirsch hirsch 4096 Jun 10 10:06 ..
-rw-rw-r-- 1 hirsch hirsch 8192 Apr 1 08:21 ASM.COM
-rw-rw-r-- 1 hirsch hirsch 8871 Jun 7 17:25 CPM22.SYS
-rw-rw-r-- 1 hirsch hirsch 5120 Apr 1 08:21 DDT.COM
-rw-rw-r-- 1 hirsch hirsch 6656 Apr 1 08:21 ED.COM
-rw-rw-r-- 1 hirsch hirsch 2048 Apr 1 08:21 FONT.GRB
-rw-rw-r-- 1 hirsch hirsch 1490 May 17 16:44 FUTIL.COM
-rw-rw-r-- 1 hirsch hirsch 1375 May 28 06:36 INIT.COM
-rw-rw-r-- 1 hirsch hirsch 2048 Apr 1 08:21 LOAD.COM
-rw-rw-r-- 1 hirsch hirsch 18432 Apr 1 08:21 OBASIC.COM
-rw-rw-r-- 1 hirsch hirsch 7424 Apr 1 08:21 PIP.COM
-rw-rw-r-- 1 hirsch hirsch 5376 Apr 1 08:21 STAT.COM
-rw-rw-r-- 1 hirsch hirsch 2176 May 21 16:13 SUBMIT.COM
-rw-rw-r-- 1 hirsch hirsch 18944 Apr 1 08:21 TE.COM
-rw-rw-r-- 1 hirsch hirsch 2304 Apr 1 08:21 XDIR.COM
-rw-rw-r-- 1 hirsch hirsch 4096 Apr 1 08:21 XSUB.COM
nabu/nhacp/B0:
total 8
drwxrwxr-x 2 hirsch hirsch 4096 Jun 10 10:06 .
drwxrwxr-x 4 hirsch hirsch 4096 Jun 10 10:06 ..
When I boot I see:
INIT?
A0>
'dir' shows no files.
What to try next?
Update: I think the build from Output/ is defective. If I use the NFS files from nns it all works properly. But, this version of Ishkur shows the era . issue - so perhaps not a server problem.
Looks like you are running into the same issue that seanrox was running into last night. Since it is not working on nabud either, I am betting that something is up with Ishkur itself. Frustratingly, I haven't been able to replicate it on my system just yet...
Update: This looks like it is an issue that only shows up on physical NABUs. The bug can't seem to be replicated on an emulator, which will made debugging a pain.
If you want a quick fix, try disabling interrupt in the config assembly file. By changing the ei
to a di
in wbinit:
, everyone will go back to working as normal. All standard CP/M applications will continue to work, but some NABU specific stuff expects interrupts to be on by default.
I got some fun debugging ahead of me...
Alright, that specific bug has been fixed. Turns out interrupt behavior is subtly different on physical hardware versus an emulator.
Thanks! I was able to build the updated code under Linux (using my shell script since I don't think your Makefile is complete yet) and it booted up just fine. Still seeing the era *.*
issue, however.
Yea, I am not sure what is up with the ERA . code either. Removing single files are files based on a pattern works, but it fails to work when the "All?" prompt shows up. I may have to delve into the CCP code for this one.
If the system modules were in relocatable object format it would be dirt-simple to plug in alternate CCPs. At a minimum consider using ZCPR1, since it doesn't require any outside resources. You get path search to A: for free, which makes the environment much nicer to work in.
I have been considering an upgrade to the toolchain. ZMAC is my top choice right now, but I learn more about ZMAC's capabilities and how I would migrate the current codebase over. The current ZASM stuff makes use of segmentation to set up different memory areas.
Even with the current toolchain, allowing for alternative CCPs shouldn't be too difficult. I have been meaning to move the CCP code out of CPM22.asm for awhile now. With that done, it would just be a matter of changing the #include headers in the config file. The current CCP has been hacked up a little bit already. The big change is to do with how commands are removed from the $$$.SUB
file. I am not sure ZCPR1/3 does it, but the default method that the CCP uses is not compatible with NFS.
ZMAC supports named memory regions that are resolved at link time. Take a look at the Microsoft M80/L80 or SLR z80asm and slrnk docs.
Good evening all! Just thought I should chime in as we have been having the same issue. IshkurCP/M is being hosted on NNS and in both testing from MAME and a real NABU I have been getting the same. It happens when copying from drive to drive and in both pip and nsweep (big sweep user from the old days). In our testing we were trying to get the new "msx8" system going. While I was able to assembly the source to a com on the system I was not able to move it to another drive or move a rom file to it.
If do
pip test.com=ddt.com
it chugs away for a bit and returns to the prompt with no error messages. Under CP/Mdir
fails to show the target file. If I look at the server directory from the host machine I seetest.$$$
. This is a temporary file created by pip that's normally renamed to the correct extension after copy succeeds. For whatever reason, that's not happening. A quick binary compare suggests the copy was indeed successful, with the output file showing some garbage at the very end (maybe from rounding up to next 128-byte record size?).I suppose the failure of
dir
to show the temporary file could also be considered a bug.Again, if I can get setup to build Ishkur on Linux and deploy to the nabunetwork.ca adapter I'd be delighted to help in debugging.