• Please review our updated Terms and Rules here

CP/M 2.2 vs 3.0

Ah, I see it: function 26 for systems not using interrupts to track the time and date (the ones that do, plug the values directly in the SCB apparently).
Thanks for pointing that out.
 
Well, I have both my original CP/M 2.2 STD bus machine and the newer CP/M 3.0 S-100 bus machine running. I'm still trying to feel my way around the CP/M 3.0 machine and looking at differences between the two. The first one is the SAVE command. In 2.2, you just ran SAVE x filename.ext and it would save 'x' number of 256 byte blocks onto the disk with whatever filename. In 3.0 you have to first 'activate' the SAVE command, and then go run something else to get the data into memory, then you come back to SAVE to actually save it..... Can you no longer 'save' some number of blocks with a filename, like in 2.2?
 
The problem is that SAVE is no longer a CCP-resident command in 3.0. The other complication is that of bankswitched memory. So you have to load the SAVE command, then load what you want to save using DDT or SID, then answer the prompts for the filename and address range.

Yeah, I know--useless as hell compared to the original.
 
  • Like
Reactions: cjs
The problem is that SAVE is no longer a CCP-resident command in 3.0. The other complication is that of bankswitched memory. So you have to load the SAVE command, then load what you want to save using DDT or SID, then answer the prompts for the filename and address range.

Yeah, I know--useless as hell compared to the original.
Yep, you have that right; a totally useless shoehorned mess. So I guess I will just have to get PCGET working, so I can download programs from the serial port and write them straight to disk.
 
I'm actually surprised by this. I had no idea save didn't work under CP/M 3. It's not like it's a lot of code, and normally I'd assume it was just a bridge too far where code space was concerned, except it shouldn't be given the CCP is loaded from disk file space ( not reserved space ) and the CCP can be completely overwritten and reloaded post-execution, which means the size should not have been a primary concern.

I wonder what the logic was in choosing to remove this from the CCP?
 
I wonder what the logic was in choosing to remove this from the CCP?
This, from earlier in this topic:
One difference is that the CCP is no longer below the BDOS, but rather runs at 0100h just like other programs.
In CP/M 3, after you've exited a program and returned to the command line, the CCP code has wiped out the very code you were wanting to save.
 
Back
Top