wwarthen / RomWBW

System Software for Z80/Z180/Z280 Computers
GNU Affero General Public License v3.0
332 stars 98 forks source link

COPY.COM is in the CP/M 2.2 ROM but is missing from the CP/M 2.2 slice #371

Closed skullandbones closed 10 months ago

skullandbones commented 11 months ago

@wwarthen I am using v3.4.0-dev.16 on my SC126 board with an SD card.

When I boot the board using option 'C' for the ROM based CP/M 2.2, I note that the B: drive has COPY.COM

C>ls b:
ASM      COM   8k : ASSIGN   COM   4k : CLRDIR   COM   2k : COMPARE  COM   4k
COPY     COM   8k : CPM      SYS  14k : CPUSPD   COM   2k : DDT      COM   6k
DDTZ     COM   8k : DUMP     COM   2k : ED       COM   8k : FDISK80  COM  18k
FDU      COM  10k : FILEATTR COM   4k : FILEDATE COM   6k : FLASH    COM  14k
FORMAT   COM   2k : INITDIR  COM   2k : LDDS     COM   4k : LDP2D    COM   4k
LINK     COM  16k : LOAD     COM   2k : MBASIC   COM  24k : MODE     COM   4k
NULU     COM  16k : PIP      COM   8k : PUTDS    COM  14k : RELOG    COM   2k
RMAC     COM  14k : RTC      COM   4k : STAT     COM   6k : SUBMIT   COM   2k
SUPERSUB COM   4k : SURVEY   COM   2k : SYSCOPY  COM   2k : SYSGEN   COM   2k
TALK     COM   2k : TD       COM   2k : TIMER    COM   2k : UNARC    COM   8k
XM       COM   8k : XSUB     COM   2k : ZAP      COM  10k : ZCAL     COM   2k
ZDE      COM  20k : ZPATH    COM   4k : ZSCONFIG COM   6k : ZSYS     SYS  14k
ZXD      COM   8k
B: Total of 340k in 49 files with 36k space remaining.

I have been happily using COPY.COM (I know it is from ZSDOS) by running B:COPY when in ROM based "CPM 2.2".

When I boot the board using option '4.0' for the CP/M 2.2 slice on the SD card. I note that the A: drive does not contain COPY.COM.

A>ls
ASM      COM   8k : ASSIGN   COM   4k : BBCBASIC COM  16k : BBCBASIC TXT  16k
BBCDIST  MAC   8k : BBCDIST  SUB   4k : CLRDIR   COM   4k : COMPARE  COM   4k
CPM      SYS  16k : CPUSPD   COM   4k : CRUNCH   COM   8k : CRUNCH28 CFG   8k
DDT      COM   8k : DDTZ     COM   8k : DDTZ     DOC  32k : DUMP     COM   4k
ED       COM   8k : EX       COM   8k : FAT      COM  44k : FDISK80  COM  20k
FDU      COM  12k : FDU      DOC  20k : FIND     COM  12k : FLASH    COM  16k
FLASH    DOC   8k : FORMAT   COM   4k : GENHEX   COM   4k : HELP     COM   8k
HELP     HLP  24k : HTALK    COM   4k : KERCPM22 COM  32k : LIB      COM   8k
LINK     COM  16k : LOAD     COM   4k : LS       COM   4k : LSWEEP   COM  16k
MAC      COM  12k : MBASIC   COM  24k : MODE     COM   4k : NULU     COM  16k
PIP      COM   8k : PMARC    COM  12k : PMEXT    COM  16k : PROFCF   SUB   4k
PROFSD   SUB   4k : PROFSDC  SUB   4k : PROFSDTE SUB   4k : README   TXT   8k
RMAC     COM  16k : RMXSUB1  COM   4k : RTC      COM   4k : SLICES   TXT   4k
STAT     COM   8k : SUBMIT   COM   4k : SUPERSUB COM   4k : SUPERSUB DOC   8k
SURVEY   COM   4k : SYSCOPY  COM   4k : SYSGEN   COM   4k : TALK     COM   4k
TBASIC   COM   4k : TDLBASIC COM  16k : TEMINCOM COM  24k : TIMER    COM   4k
TUNE     COM   8k : UNARC    COM   8k : UNARC    DOC  24k : UNCR     COM  12k
UNZIP    COM  12k : UNZIP    DOC   4k : VGMPLAY  COM   4k : WDATE    COM   4k
XM       COM   8k : XSUB     COM   4k : XSUB1    COM   4k : ZAP      COM  12k
ZDE      COM  20k : ZDE      DOC  48k : ZDENST   COM  12k : ZMCONFIG OVR  12k
ZMD      COM  24k : ZMINIT   OVR   8k : ZMP      COM  16k : ZMP      DOC  24k
ZMP      HLP   4k : ZMRX     COM  32k : ZMTERM   OVR  16k : ZMTX     COM  28k
ZMXFER   OVR  20k : ZSID     COM  12k
(Strike any key to continue)
A: Total of 1036k in 90 files with 6360k space remaining.

The lack of COPY.COM came as a surprise.

I observe that the CP/M 2.2 slice has already been enhanced with non-CP/M 2.2 era programs such as FLASH.COM.

Therefore, I don't think that it is a question of purity of only having CP/M 2.2 files.

My suggestion is to add COPY.COM to the CP/M 2.2 slice as it is easier to use than PIP.COM.

In any case, there is a mismatch between the CP/M 2.2 ROM and CP/M 2.2 slices for COPY.COM.

Thanks,

Dean

wwarthen commented 11 months ago

Hi @skullandbones,

I admit this is confusing and indeed COPY.COM could be included on the CP/M 2.2 slice. COPY.COM was developed as a Z-System tool. As with some Z-System tools, it will operate under plain CP/M.

The CP/M 2.2 slice is intended to include original (DRI) CP/M 2.2 applications and applications originally targeted for generic CP/M. COPY.COM is literally part of the ZSDOS distribution fileset and was therefore considered to be a Z-System specific application. I admit this is a very subtle difference. To be more succinct, there are many applications (like COPY.COM) that are part of the ZSDOS distribution and I have not tested all of them to determine which ones actually require Z-System.

The situation is made even more confusing because of the RomWBW ROM Disk. This ROM disk is the primary boot media for the ROM-based CP/M 2.2 and Z-System. As a result, the ROM Disk has an unfortunate mix of CP/M 2.2 and Z-System applications. This situation is documented in the User Guide.

I need to think about this a bit. It would not be hard to inventory and add the Z-System applications that work with generic CP/M to the CP/M 2.2 slice. However, I am worried that veteran users of these operating systems may find this just as disconcerting as you are finding it that COPY.COM is not included. I am aware that there has already been some bleeding of Z-System into the CP/M 2.2 slice (e.g., ZXD.COM). It may be more correct to remove stuff like ZXD.COM from CP/M 2.2 as opposed to adding any Z-System stuff that happens to work. Keep in mind there are 5 different bootable OS slices and each of them has it's own set of core distribution files. I don't want to get into a 5-way merge mess of the applications included with each operating system.

The evolution of these operating systems was that Z-System was considered an "enhanced" CP/M 2.2. As such, you will find most of the CP/M 2.2 applications in the Z-System slice, but (as you point out), not the other way around. As you find yourself wanting to use the Z-System applications, I suggest you move to the Z-System operating system proper. Even those Z-System applications that will run on CP/M 2.2 typically have more features available when run under Z-System.

Thanks,

Wayne

skullandbones commented 11 months ago

@wwarthen thanks for the information.

I understand the concept of having a pure CP/M 2.2 OS installation and not tainting it with programs from other OSes. But you have said, that the CP/M 2.2 slice is already tainted and not pure.

In modern times, OSes are customised on installation. Linux installations, can be restricted to only installing Open Source software for the purists and there can be options to install 3rd party software that taints the system.

So perhaps the CP/M 2.2 slice is neither satisfying the purists or the practical user that wants some useful enhancements.

I was expecting the CP/M 2.2 slice to be purely CP/M 2.2 files.

So far, I have given up on ED.COM and PIP.COM.

Maybe you could create an additional slice of CP/M 2.2 + enhancements for practical people wanting to use CP/M 2.2 ?

On the other hand, I have already customised my CP/M 2.2 slice to contain my hacked TE.COM so maybe I can add COPY.COM into my build.

I am resisting switching to Z-System because I am wanting to get to know the limitations of CP/M 2.2. Also, I have other systems running CP/M 2.2.

Thanks,

Dean

wwarthen commented 11 months ago

Hi @skullandbones,

I will review the CP/M 2.2 slice contents at some point, but that will probably not be in the near future. I have a long list of work and it is hard to make this a high priority based on current user feedback.

I'm glad to hear you have customized your CP/M 2.2 slice. That is exactly what I was going to recommend. My assumption has always been that I will never get the standard slice contents to meet the needs of all users. So, I have done my best to make it possible to create your own slices, either on your RomWBW system or as part of the build process.

Thanks,

Wayne

wwarthen commented 10 months ago

Closing this issue due to lack of activity. I don't think there is any specific action required at this time.