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

How to install, exactly? #10

Open snhirsch opened 1 year ago

snhirsch commented 1 year ago

Sorry to be dense, but how exactly do I install this code? The standalone FDC based system is obvious, but the one that boots over the wire isn't quite clear. What is an NHACP directory? How do I set one up and define it to one of the internet adapters? Similarly, how to setup a 'homebrew' directory and define it to the adapter? I have an older version of IshkurCPM that came with NABU_Server_Linux_v2.0. It works just fine, but per the above, I cannot successfully define a different CP/M system in that server.

seanrox commented 1 year ago

I'm in the process of updating my NabuNetwork.com software to support the latest Ishkur updates. I have it done and doing some testing. A proper v2.1 release will be coming soon.

tergav17 commented 1 year ago

Hey snhirsh!

Sorry that the installation instructions are a little vague, I should probably get around to updating them. It's a bit difficult to give generalized instructions, as each adapter software does things slightly differently. I'll try to answer your questions the best that I can:

NHACP is a community developed communication protocol that extends the normal NABU protocol. It provides an interface for direct file I/O from the host machine, among other things. The "NHACP directory" refers to the directory that the adapter software will search for files that are requested by the NABU. For example, on NABU_Server_Linux_V2.0, this is the cpm/ directory. It is different on other adapter software that has been made, such as nabud or NNS.

On a normal Nabu, NHACP cannot be booted directly. In order to get around this, a custom .nabu segment (or homebrew segment) is used get the boot process going. Again, different software has different ways of defining and selecting homebrew software to run.

Now, onto installation:

NabuNetwork.com: This one comes packaged with an older version of Ishkur NDSK. You can update to a later version of the NDSK distribution by simply replacing the NDSK_BOOT.nabu and CPM22.SYS files in the cpm/ directory. However, the software that comes with that version is not quite up to date, so some things will not work correctly and would need to be replaced. The NFS versions of Ishkur also do not work on this version. However, as seanrox mentioned there is a big update coming to that software, which will include the most recent versions of everything!

GryBsh's NNS: This one comes packaged with a fairly up to date version of Ishkur, including both NDSK and NFS. It isn't the most recent versions, but it is fairly easy to upgrade just by replacing the correct files in the NHACP directory for that software.

nabud: This one also supports NHACP, and therefore Ishkur. It's actually the one that I mainly use for development as it is usually the one that gets the newest NHACP update first. This is also the one that the original installation instructions are for. Setting it up will require reading the nabud documentation, but it follows the same general steps as before.

Let me know if you have any questions :)

snhirsch commented 1 year ago

Thanks @tergav17 ! After a bit of hair-pulling I have NNS web working here. I am able to boot both the NDSK and NFS versions of CP/M (what is the difference?), but there are issues:

Floppy access does not work. The Gotek drive (which boots and runs CP/M 3 just fine) is accessed, but there's an immediate BDOS error. I tried both 3.5" and 5.25" DS images with the same results. What geometry and diskette layout is it expecting?

The Ctrl-C command clears the screen. This is definitely not the expected behavior for CP/M.

I am using the Ishkur files that came with nns, FWIW. I'd like to try the files from this GitHub project, but it's not clear which directory to use. I'll flail around a bit more here.

snhirsch commented 1 year ago

I'm totally confused by the directory structure in nns. Tried updating Ishkur from this repository but I cannot seem to find the correct place to put files. Sorry again for the high specific gravity here, but nns documentation is not very forthcoming for folks who do not already understand the layout.

tergav17 commented 1 year ago

The difference between NDSK and NFS is how the CP/M system goes about accessing files. On NDSK (NHACP Disk), a virtual disk image formatted with the CP/M file system is used. It's the more traditional way to do things, but it can be a headache for adding and removing files. On NFS (NHACP File System), the CP/M system accesses individual files on the host system directly. Instead of needed to use something like cpmtools, files can be added simply by dragging them into the correct directory. Files can also be manipulated without needing to reboot. There are a few quirks, but it is generally easier to use and faster than NDSK.

At the moment, the FDC driver is expecting to see disks formatted with the "osborne1" SSDD format. Some Nabu cycle programs use this format of disks, but not all of them. Adding support for more disk formats may be a goal later down the line.

I have made a large amount of fixes to the Ishkur kernel over the last couple of weeks. The warm boot screen clear thing is one of them that has been fixed fairly recently. Other things that have been fixed include IM2 interrupts, multidirectory SUBMIT files, and a half dozen other smaller things.

I haven't used NNS much, so give me a few seconds to try and figure out where it keeps all of the NHACP stuff.

snhirsch commented 1 year ago

I've been playing with Ishkur under NNS (default build that ships with it). I'm unable to format a physical diskette. It briefly selects the drive, prints "Formatting Track 0" and immediately throws Error! Disk Operation Failed. Is this supposed to work?

tergav17 commented 1 year ago

That utility mostly works, except for formatting unfortunately. I don't own a physical FDC to test with, and the emulator is not capable of accurately emulating the lower level track stuff that I would need to test it. I'll need to find somebody with a physical FDC who is willing to help me to test that part out.

snhirsch commented 1 year ago

Well, I have a physical FDC and would be perfectly willing to assist. I also have Z80 assembler skills and my relationship with CP/M goes back to 1983. Let me know what I can do to help!

snhirsch commented 1 year ago

@tergav17 - Just wondering if you had an opportunity to puzzle out file placement for nss?

tergav17 commented 1 year ago

This may be different on the Linux versions, but here is where everything is on the Windows version. The actual NHACP root directory can be found in Files/Source. This directory mainly contains symbolic links to files in Packages/nns-bundle-ishkurcpm/storage

snhirsch commented 1 year ago

Ok, not having any luck. First bit of confusion: I'm finding CP/M related .nabu files in two places:

./Packages/nns-bundle-iskurcpm/programs/NDSK_HYBRID_BOOT.nabu
./Packages/nns-bundle-iskurcpm/programs/NFS_HYBRID_BOOT.nabu

./NABUs/Boot Floppy Disk.nabu
./NABUs/IshkurCPM.nabu

I tried replacing the ones under ./Packages with the current Ishkur release and cannot get it to boot. It gets in a loop, trying, failing, trying, etc.

tergav17 commented 1 year ago

Sounds like you are getting close. If the screen is turning black/white and the system is bootlooping, it usually means that something is going wrong with loading in the CP/M image. Either the boot program is unable to find CPM22.SYS (A0/CPM22.SYS if NFS), or it is trying to load in the wrong version of it.

Have you tries replacing the files in Packages/nns-bundle-ishkurcpm/storage as well? When I get back home later I can try manually updating NNS myself to make sure there are no issues.