Archive for November 2017

The Commodore 64 and Operating Systems (Part 1)   2 comments

The Commodore 64 and Operating Systems (Part 1)


The CP/M Operating Szstem in action

Welcome to everyone who has recently been viewing this blog so much! Unfortunately, I‘ve had serious problems working out what to do next in the quest to find out how some people managed to program the Commodore 64, as well as being very depressed by the destruction of my home city of London. The city is still there, but has been made virtually uninhabitable to me, as well as its nightlife being decimated. If any of you are thinking of visiting London, don‘t bother! Also, as I indicated in my last post, I‘m now exploring a slightly different angle with the C64 for the moment.

Operating Systems are what makes computers go. There‘s some dispute about whether or not the C64 actually had an Operating System, though. Some books and magazines say it had, while other books and magazines say that an Operating System is something you boot into which isn‘t a language waiting for you to type a program in. As the C64 boots into BASIC with the Ready prompt, on that basis it doesn‘t have an operrating system. By this definition, an operating system contemporary to when the Commodore 64 first came out is CP/M or MS-DOS. Each of those systems present the user with a prompt (usually “A>“, “B>“, or “C>“), indicating which disk drive they‘re logged onto. The user can then carry out lots of operations by calling up programs from disk in a way actually designed to be convenient, unlike the botched Commodore DOS on Commodore 1541 disk drives, not including a directory command, as well as using just the commands OPEN or CLOSE followed by various numbers for handling the contents of disks. An MS-DOS or CP/M user with a drive prompt could then type a command such as BASIC, BASICA, or MBASIC to get into a version of the BASIC programming language, or some other command to manipulate files, explore the contents of RAM, etc. This is often called a DOS for Disk Operating System, but actually CP/M and MS-DOS each contain lots of routines loaded into RAM. These routines do things such as detect key presses, print text on the screen, save to files, read from files, and print out files. So to sum up, an operating system is a program which contains lots of useful routines to do everyday things, so that programmers don‘t have to write their own routines to perform these mundane tasks.

The Commodore 64 wasn‘t supplied with an operating system such as CP/M or MS-DOS, but it has what some people call an operating system on ROM. The lying buyers‘ guide “The A-Z of Personal Computers“ said it had “Cassette OS“. This is the Commodore KERNAL. Unlike MS-DOS, the Commodore KERNAL doesn‘t have lots of routines which can be called up. It has a total of 39 routines, as listed on . I don‘t know what routines are contained in the very messy Commodore DOS. MS-DOS seems to have 86 routines it can call up, though. A summary of these can be viewed on . Details of CP/M system calls can be viewed on , but there are only 31 of them!

CP/M is made up of two parts, the BIOS (Basic Input Output System) and the BDOS (Basic Disk Operating System). This was an innovation it brought in, because previous operating systems had both these things combined. The CP/M BIOS managed the computer‘s hardware and each manufacturer usually had to write their own, which enabled the BDOS and all CP/M software to work on that system. With the original IBM PC, the BIOS which worked with IBM PC-DOS was put onto ROM. Microsoft had their own version called MS-DOS.

IBM‘s plan was to persuade lots of businesses to buy their IBM PC made from off the shelf parts, but with a custom Copyrighted BIOS on ROM. Microsoft‘s plan was to license MS-DOS to various manufacturers in a form with some kind of software BIOS like with CP/M. This meant that the hardware from different manufacturers could be quite different, but so long as software developers called MS-DOS functions instead of IBM PC BIOS ROM functions, then their MS-DOS software would run on any computer which could run MS-DOS. Some companies making MS-DOS computers which weren‘t IBM PC compatible were Apricot and Tandy. This concept didn‘t last for long, because other companies made ROMs which were compatible with the IBM PC BIOS, then IBM PC compatibles took over the business and home markets.

Of course, GEOS is a fully fledged third party operating system, which did its best to try and fix the Commodore 64 by making it behave like an early MacIntosh. It‘s much more sophisticated than the Commodore KERNAL, CP/M, or MS-DOS.

I think that nowadays a good way of exploring operating systems and what you can do with them is by using Linux OS. It‘s inspired by the older UNIX, but has been completely rewritten. Linux operating system is open source, which makes it highly customisable. It comes in lots of different varieties, called “distros“ (distributions) meaning that the software included with each distro and how to install new software varies greatly. I don‘t think it depends on any ROM, because it can run on PCs, Macs, and Raspberry Pi computers. When booting up or closing down Linux OS it displays hundreds or thousands of lines of text, unless the system is set to cover this with a graphics screen. In that case, you can choose to display them by hitting the ESC key. These lines are called the Linux Kernel.

Unfortunately, any OS shows signs of its origins. CP/M was originally for people building computers, as well as business users. MS-DOS was originally for business users and adding Windows to it didn‘t change this. The original MacIntosh with its System Software was originally for business users, then later versions of the Mac OS or Mac OSX continued in a similar vein. UNIX and Linux were originally for academics.

Well, that‘s all for now! I hope to make another post in the near future.


Posted November 30, 2017 by C64hater in Uncategorized