[Contents] [Commodore] [New] [Search] [Home]



Many people are searching for an alternative to BASIC. BASIC is easy to use, easy to learn, and almost carefree in style and coding. Yet BASIC is not as fast as a high-level language can be. It does not encourage or support modular or even structured programming. It is a very general language, so it lacks commands specific to certain situations, such as graphics, games, business/professional applications, and mathematical work. It's also hard to teach and grade (compared to a language like Pascal).

The microcomputer world knows several languages which have come down to earth from the mainframe computers: COBOL, FORTRAN, Pascal, PL/I, LISP, APL, even ALGOL. Languages which work out particularly well on micros include BASIC, of course, PILOT, Logo, C, and Forth. These languages work well within the speed and memory limitations of many personal computers.

The business community has been transforming its software choices by adapting the larger languages (COBOL, FORTRAN) to 64K Z80 CP/M (Control Program for Microprocessors) computers. These languages are often subsets of the minicomputer versions of the languages. They are smaller versions of the languages, but are still quite powerful and flexible.

CP/M And The 64

Many Commodore 64 owners, especially educators and businessmen, are intrigued with the Commodore CP/M cartridge. It appears to be a gateway to the many thousands of programs that will run only on a CP/M system.

CP/M offers the 8080 or Z80 programmer a set of general, transportable microprograms. These microprograms are customized to each computer, yet act the same from a program's point of view.

These microprograms make up the Basic Input/Output System, or BIOS. The BIOS is much like the 64's set of Kernal routines, which enable a 6510 machine language programmer to work with input and output. The Kernal's strongest point is that its routines have the same addresses (entry points) on many Commodore machines. For example, there's a machine language program at $FFD2 (hexadecimal) that lets you output a single character to the screen or current output device (perhaps the printer after a CMD). You can try out this routine from BASIC with POKE 780,ASC("x"):SYS 65490. x is the character you want to print, so put it inside double quotation marks.

All eight-bit CP/M programs are written in either 8080 or Z80 machine language. These microprocessors and the commands they use are not compatible with the 6510, so you need to add a microprocessor to the computer. The Commodore CP/M cartridge contains a Z80 microprocessor and plugs into 64's expansion port. It also contains circuitry that permits the 64 to switch between the 6510 and the Z80. But you don't have CP(M yet. CP/M is supplied on a disk that you load into your 64 before you begin working with CPM.

The Disk Problem

It takes a long time to load. The Commodore 1541 disk drive is not fast. To be frank, it is one of the slowest disk drives on the market. Don't feel bad, though, it is also about the least expensive. CP/M, however, was written tor machines with fast, expensive disk drives. It is highly disk-intensive. It accesses the disk frequently for the various utilities it performs. The 1541 is the weak link in 64 CP/M. Programs behave sluggishly.

But that is not what makes CP/M unusable on the 64. CP/M adds great capability and potential, a whole new world. But as you found out when you brought your 64 home, it takes software to make your computer do anything. And that's what's missing from Commodore CP/M.

Sure, there are probably 10,000 CP/M programs out there, maybe more. But there's one big point of incompatibility in the world of CP/M: disk formats. Just as you can't even read an Apple or Atari disk on your 64, many CP/M computers cannot interchange disks. The BIOS is general, but other things like screen formatting and cursor control are not. CP/M often requires 80 columns, which isn't easily workable with 64 CP/M.

So COBOL, FORTRAN, and WordStar are available with CP/M, but there are no disks you can buy which your 1541 can read. Commodore has some plans to release some 1541-readable CP/M software, but we've yet to see it.

Dedicated "hackers" or machine language programmers may be interested in CP/M. They can write programs which switch between the 6510 and Z80, getting a chance to learn about another microprocessor, and enjoying the best of both worlds.

Some third-party companies are charging upwards of $300 for CP/M (although many do have some CP/M software that can be used with the 64). Commodore should be applauded for making CP/M available for about $60. No other company has sold CP/M, including the necessary hardware, for so little. But right now we're waiting for an encore.

[Contents] [Commodore] [New] [Search] [Home]
This page has been created by Sami Rautiainen.
Read the small print. Last updated August 26, 1998.