durgadas311 / cpnet-z80

26 stars 6 forks source link

Consideration of support for CP/NOS #9

Open durgadas311 opened 4 years ago

durgadas311 commented 4 years ago

CP/NOS (Network Only System) is a way to run CP/M on diskless machines, or to run on machines without involving any local disks.

It can be loaded from ROM (or other offline storage) or booted over a network. It requires that the network adapter be setup, though (in the case of the W5500), prior to starting. Because of the amount of code involved in network initialization, especially for DHCP, this code is not normally included in the CP/NOS as it takes up too much TPA.

On Heathkit systems, the monitor ROM supports network boot, and network initialization from NVRAM. For other platforms, a method for initialization the network is required in order to start CP/NOS.

durgadas311 commented 4 years ago

A serial-port version of CP/NOS would not require special setup code, and thus could be loaded from ROM without extra steps.

durgadas311 commented 3 years ago

The project https://github.com/durgadas311/minimalCPM is looking at what is required to network boot over serial ports, and what it takes to integrate that into existing ROMs. The target machines in that project have only CPU, memory, and a serial port. But, this could have applications on other systems, such as for recovery purposes. Although, most modern "retro" computers have some sort of removable storage, like CF or SD card, and thus are easier to recover.

durgadas311 commented 3 years ago

RomWBW now has a "network boot" add-on command that initializes the W5500 on the MT011. CP/NOS can now be booted in that environment.

durgadas311 commented 1 year ago

The program "cpnboot.com" is now built for some projects, which uses an extension of the network boot protocol to load NDOS.SPR and SNIOS.SPR over the network on an existing CP/M system. Other projects may add this by adding "XCPN2 += cpnboot.com" to the associated 'makevars' file. This is not for booting CP/NOS, though.

durgadas311 commented 1 year ago

There is a "src/netboot.asm" which is the bare network boot implementation, used by cpnboot but also could be used to implement other network boot options, such as CP/NOS. It links with an SNIOS, but may require additional initialization (such as wizcfg) on certain networks. This netboot.rel is used in the minimalCPM project to create NETBOOT modules for ROMs.