Commodore C64 & CP/M: hands-on! (Part 2/2) #cp7mber

preview_player
Показать описание
In this episode, I dive into the hands-on aspects of using CP/M on the Commodore 64. I'll walk you through the practical challenges of transferring software, overcoming floppy disk incompatibilities, and finding workarounds like using the SD2IEC device. I’ll also demonstrate how to use ctools and the c1541 utility from VICE to manage disk images, especiallly to deal with both the standard C64 file system, but also the CP/M filesystem hidden on the C64 disks.
Using CP/M software on the C64 is a culprity, especially because of the absence of a native 80-columns text mode. But there's a solution to this problem.
Speaking of problems: I had a look into a CP/M diagnostics program that, despite all my efforts, just wouldn’t work.
And let's not forget about the dreadful speed issues: Working with CP/M on the C64 was a nightmare. But there existed a Fast Loader, which however seems lost in time ...

00:00 Intro
00:45 Making a System Disk Backup
01:40 Dual-Disk System May (not) Need a Patch
02:15 The Floppy Drive Problem
04:29 Being Lazy: Loading Disk Images from SD2IEC
06:31 Running CP/M in a C64 emulation
08:02 Creating Disk Images: The Modern Way
11:49 Transferring Disk Images onto Floppies
13:04 80 Columns Text Mode for the C64
15:48 The not so Diagnostic Diagnotics Program
19:21 Lost Forver: The CP/M Fast Loader
20:52 Conclusion

To support TPC, check out all my options on

This video was made possible with support by:

THE PHINTAGE ENTHUSIASTS:
Waseem al sammane
Christian Zerrahn

THE PHINTAGE SUPPORTERS:
HMK
Steven Glogger
John DiLiberto
Jack Rosenthal

Copyright @ 2024 THE PHINTAGE COLLECTOR, Gianpaolo Del Matto. All rights reserved.
Individual Copyrights apply for referenced material (see links).

Theme Music composed by Abdallah El-Ghannam.

Additional music featured by rootkitty

Links:

Transfering Programs:
Though code lost:

List of CP/M Computers:

List of CP/M Software, Don Maslin's Collection:

CP/M Software, Walnut Creed CD-ROM collection:

Run startup command in CP/M 1.x/2.x:

C64 ROMs for MAME:

FUNET's C64 CP/M archive:

Zimmer's C64 CP/M archive:

Thomas Tempelmann, Fast Load:

80-columns mode:

VICE's C1541 cli manual:

ctools, for C64 CP/M disk images:

Background Information on C64 CP/M:
- disk format
- Basic Batch for 2-disk operation:

Ruud's CP/M Page:

8080 Opcodes:

C64 Programmer's Reference, P370, for Z80 Test Program:
Рекомендации по теме
Комментарии
Автор

You have to be a little crazy to run CP/M on a C64 in 2024. Just great what you have tried, unbelievable what hurdles have to be overcome. Thomas Tempelmann, a name that has made C64 history. Unbelievable that you were able to contact him. What brilliant detail work.

christopheoberrauch
Автор

Brilliant work! Quite the headache creating appropriate disc images for it though; I appreciate you jumping through the hoops to both demonstrate the CP/M cartridge & its shortcomings, as well as explain exactly how you got there so that anyone else crazy enough to try it, be it via emulation or on real hardware, can.
Both CP/M and the C64 pre-date myself, so I've never had hands-on experience with either, but I finding it incredibly interesting nonetheless; I'm enjoying this series so far!

SamK
Автор

The 1571 can even read MS-DOS floppies with the appropriate tools on the C128. But when the C128 came out it was already too late for CP/M as DOS was in the rise.

mudia
Автор

Really nice and well explained CP/M video. Thank you for sharing it

NiceCakeMix
Автор

So I always test stuff out on emulation before trying to make it work on the real retro hardware: it’s a smart move that you do this!

danielktdoranie
Автор

GCR was used a lot on drives that had their own developed controllers - Apple II, Macintosh, Commodore, etc all either used a software defined controller, or an in house developed controller. MFM disks used a standard floppy controller chip like on the IBM PC. Unfortunately, GCR describes many oddball formats so compatibility was basically nil between them. The 1541 had "DOS" built into it, so it handled the disk format independently of the computer. That's why you had to load "*" and list - the drive managed the disk file catalog and transferred back a BASIC program that the computer could handle. The drive could also run programs on its internal processor - this is what many fast loaders used, Likely as well, CP/M for Commodore 64 loaded in a special program for the 1541 to access CP/M disks. You probably would need something like a Pi1541 which emulates the 1541 CPU to be able to access CP/M disk images. SD2IEC fakes a lot of the fastloader implementations, but doesn't emulate them, whilst Pi1541 emulates the actual 1541 hardware.

tlhIngan
Автор

What was the software compatibility situation in general in the CP/M-80 era? I remember that in the IBM PC / MS-DOS era, basically every application that did something useful did talk to the hardware directly in some capacity, because the official BIOS and DOS APIs were not only painfully slow, but also so limited that AFAIR you couldn't even write a text-mode word processor without accessing the video memory directly, let alone anything that used the graphics mode.

Were the CP/M APIs more comprehensive? How was the multitude of floppy disk formats handled? Were CP/M applications released in multiple variants for different computers anyway? If so, did they usually differ in floppy disk formatting only, or was the code actually different between them?

I'm just trying to grasp how useful CP/M was as a "standard" if the interoperability was so heavily limited.

kFY
Автор

Thanks for this blast from the past, I remember when I owned a Amiga 500 until the power supply took it out. Before that I was eyeing buying the “Fred Fish CD’s” one of the programs was CP/M but pre internet I couldn’t find enough information to make running CP/M worthwhile for me.
What Commodore should have made for the Amiga was a C64 emulator or better C128, then Cp/m if their business clients wanted to run it. Oh well they were run by a marketing team that wanted to charge the “Star Trek 3” production team over $50, 000 dollars to use their Amiga…and Apple provided theirs for free…and now is one of the biggest companies on earth…and Commodore….?…sad.
Have a great day!

Kw
Автор

It looks like the objective of the Z80 card for the C64 was to show the FTC that Commodore did produce it as they promised. It's likely good enough to run some code, with code that fails being an edge case that (like with other CP/M systems) not completely compatable. Good enough for lawyers to argue over, but not good enough for real end users to use.

slincolne
Автор

The product was half-baked and as you point out, a forced release. C= certainly could have improved it, especially the disk access and formatting - the 1541 could do a lot of things because it was programmable, hence things like fastloaders, etc. Most of the improvements however were later tricks for the C64 - 80 columns would have been easy, and I wrote a vt100 emulator for the C64 that did that. Fastloaders I think were later than the C64 carts, but I never had my CP/M cart for long (returned it) so never found out. In the end, CP/M for the C64 wasn't all that interesting, and because of the disk format not even approachable, but I don't think C= even considered it a first-class operating environment. C128 CP/M suffered from it's own limitations, and it's I/O system was absolutely maddeningly slow too.

ChrisCebelenski
Автор

I have to ask that who is this product was for? Maybe on paper it made sense because one could save money this way by not buying a separate Z80 computer with its own monitor and accessories, so one could enjoy the best of both worlds, but the seeming lack of commitment and different floppy disk formats made this a folly.
Maybe it's just hindsight that blinds me by thinking that the C64 was always a product for kids and teens to play video games and program in basic?

negirno
Автор

Is that program actually attempting to execute Intel 8080 operation codes on a MOS 6502??? that's never gonna work... they're entirely different CPUs with entirely different instruction sets... perhaps that's why it did nothing? Or am i misunderstanding things?

ringtailedfox
Автор

The original c64 cpm can only access one device at two drives (being, 8:0 and 8:1)
The config prog doesn’t change that. The mentioned basic prg patches the 6502bios part
Also the cpm load ccp+bdos every warmboot. Very wasteful

mwehrens
Автор

Dolphindos is the best drive accelerator to use with cpm. Jiffydos works as well, but isnt as fast.

phill
Автор

CP/M had terrible disk compatibility. If you had an Osborne machine, you couldn't use its disks in a Kaypro, for example. Every disk drive had a different format, and you pretty much had to buy the specific version of the program. Popular programs like VIsicalc and WordStar had dozens of versions for each machine, but lesser known systems less so. The problem was just disk format, so you could take the binaries from the Kaypro disk, transfer them via serial to an Osbourne, and it would work there. The disk formatting and reading routines were implemented in the BIOS of each machine which is why each had a different format. (This was carried onto the IBM PC as well - which is why Windows 9x stuttered when you formatted a floppy as it was executing BIOS code that formats the disk track by track. Windows NT didn't use the BIOS, which is why formatting disks never caused it to skip a beat).

tlhIngan