Commodore 64 peripherals

From Wikipedia, the free encyclopedia

This article is about the various external peripherals of the Commodore 64 home computer.

Contents

[edit] Storage

[edit] Tape drives

Commodore Datasette 1530

In the United States, the 1541 floppy disk drive was widespread. By contrast, in Europe the C64 was often used with cassette tape drives (Datassettes), which were much cheaper, but also much slower and less reliable than floppy drives. The datasette functioned similarly to a 300 baud modem, converting audio analog sounds into digital format. It plugged into a proprietary cassette port on the Commodore 64's motherboard. Standard blank audio cassettes can be used in this drive.

The datasette's speed was incredibly slow (about 300 baud). Loading a large program at normal speed could take up to thirty minutes in extreme cases. Many European software developers wrote their own fast tape loaders which replaced the internal kernel code in the C64 and offered loading times often faster than standard-speed floppy disc. Novaload was perhaps the most popular tape loader used by the majority of British and American software developers. Early versions of Novaload had the ability to play music while a program loaded into memory, and was easily recognisable by its black border and digital bleeping sounds on loading. Other fastloaders included loading screens, giving the user some nice computer artwork to admire while the program loaded. Perhaps the most advanced fast loaders included minigames for the user to play while the program loaded from cassette. One such minigame fastloader was Invade-a-Load.

In addition to speed problems, datasette users had to contend with interference from magnetic fields. Also, not too dissimilar to floppy drive users, the datasette's read head would become dirty or often slip out of alignment. This meant that many tapes would often produce errors half-way through loading a large program. A small screwdriver could be used to retune the tape heads, and a few companies capitalised by selling various commercial kits for datasette head-alignment tuning.

As the datasette lacked any random read-write access, users had to rely on a tape counter number to find the starting location of programs on cassette. Tape counter speeds varied over different datasettes however, making recorded counter numbers unreliable between datasettes.

An optional streaming tape drive, based upon the QIC-02 format, was available for the Xetec Lt. Kernal hard drive subsystem (see below). Very few were ever sold, most likely due to their high price.

[edit] Floppy disk drives

Commodore 1541 disk drive

Although usually not supplied with the machine, floppy disk drives of the 5¼ inch (Commodore 1541 and 1571) and, later, 3½ inch (1581) variety were available. The 1541 was excruciatingly slow in loading programs because of a poorly-implemented serial bus, a legacy of the Commodore VIC-20. A common joke advised users to "go grab a cup of hot chocolate milk" after entering the command to load a program on the C64.

The 1541 disk drive was notorious for not only its physical size compared to the C64, but also its unreliability. Perhaps the most-common failure involved the drive's read-write head mechanism. Many complex software copy-protection schemes used data stored on nonstandard tracks on floppies, forcing the drive head, while reading the data, to seek to track zero, which caused the head to slam into a mechanical stop. This caused a loud, telltale knocking[1] and, more seriously, would over time often move the head mechanism out of precise alignment, resulting in read errors and necessitating repairs. Some demos even exploited this to force the disk drive to play crude tunes (Bicycle Built For Two was one) by varying the knocking of the mechanism.

Also, as with the C64, 1541 drives tended to overheat due to a design that did not permit adequate cooling (often fixed by mounting a small fan to the case). Many of the 1541's design problems were eventually rectified in Commodore's 1541-II disk drive, which was 100 percent compatible with the older "lumbering hippo" 1541s. Due to the fact that the power supply unit was not housed inside the drive case, the 1541-II size was significantly smaller and the unit did not overheat.

In the following example, where '*' designates the last program loaded, or the first program on the disk, '8' is the disk drive device number, and the '1' signifies that the file is to be loaded not to the standard memory address, but to the address where its program header tells it to go—the address it was saved from. This usually signifies a machine language program, as opposed to a BASIC program.

LOAD "*",8,1

It wasn't too long after the 1541's introduction that third-party developers showed that the notoriously-slow floppy drive operation could be overcome by a piece of clever software that took over control of the serial bus signal lines and implemented a better transfer protocol between the computer and floppy drive. In 1984 Epyx released its FastLoad cartridge for the C64 which replaced some of the 1541's slow routines with its own custom code, thus allowing users to load programs at a fraction of the time (~ 1/5th). Despite being incompatible with many programs' copy protection schemes, the cartridge became so popular among grateful C64 owners (likely the most-widespread third-party enhancement for the C64 of all time) that many Commodore dealers sold the Epyx cartridge as a standard item when selling a new C64 with the 1541.

As a free alternative to FastLoad cartridges, numerous pure software turbo-loader programs were also created that were loaded to RAM each time after the computer was reset. The best of these turbo-loaders were able to accelerate the time required for loading a program from the floppy drive up to a very remarkable factor of 20x, demonstrating the default bus implementation's inadequacy. As turbo-loader programs were relatively small programs, it was common to place one on almost each floppy disk so that it could be quickly loaded to RAM after restart.

The 1541 floppy drive contained a MOS 6502 processor acting as the drive controller, along with a built-in disk operating system (DOS) in ROM and a small amount of RAM, the latter primarily used for buffer space. Since this arrangement was, in effect, a specialized computer, it was possible to write custom controller routines and load them into the drive's RAM, thus making the drive work independently of the C64 machine. In fact, there were many software packages that took advantage of this; for example, certain back up software allowed users to make multiple disk copies directly between daisy-chained drives without a C64.

Several third party vendors sold an IEEE-488 standard parallel bus adapter for the C64, which plugged into the machine's expansion port. Outside of BBS operators, few C64 owners took advantage of this arrangement and the accompanying IEEE devices that Commodore sold (the SFD-1001 1-megabyte 5¼ inch floppy disk drive, and the peripherals originally made for the IEEE equipped PET computers, such as the 4040 and 8050 drives and the 9060/9090 hard disk drives).

As an alternative to the feeble performing 1541 or the relatively expensive IEEE bus adapter and associated peripherals, a number of third-party serial-bus drives appeared that often offered better reliability, higher performance, quieter operation, or simply a lower price than the 1541, although often at the expense of software compatibility due to the difficulty of reverse engineering the DOS built into the 1541's hardware (Commodore's IEEE-based drives faced the same issue).

Like the IEEE-488 interface, the serial bus offered the ability to daisy chain hardware together — that is, one device (disk drive or printer) would be connected to the Commodore 64 and the others would be connected to each other in sequence. This led to Commodore producing (via a third party) the Commodore 4015, or VIC-switch. This device (now rarely seen) allowed up to 8 Commodore 64s to be connected to the device along with a string of peripherals, allowing each computer to share the connected hardware.

It was also possible, without requiring a VIC-switch, to connect two Commodore 64s to one 1541 floppy disk drive to simulate an elementary network, allowing the two computers to share data on a single disk (if the two computers made simultaneous requests, the 1541 admirably handled one whilst returning an error to the other, which surprised many people who expected the 1541's less-than-stellar drive controller to crash or hang). This functionality also worked with mixed combinations of PET, VIC-20, and other selected Commodore 8-bit computers.

Later in the 1990s, Creative Micro Designs produced several powerful floppy disk drives for the Commodore 64. These included the FD-Series serial bus compatible 3.5" floppy drives (FD-2000, FD-4000), which were capable of emulating Commodore's 1581 3.5" drive as well as implementing a native mode partitioning which allowed typical 3.5"HD floppy disks to hold 1.6 MB of data - more than MS-DOS's 1.4 MB format. The FD-4000 drive had the advantage of being able to read hard-to-find enhanced floppy disks. In addition, the FD series drives could partition floppy disks to emulate the 1541, 1571 and 1581 disk format (although unfortunately, not the emulated drive firmware), and a real time clock module could be mounted inside the drive to time-stamp files. Commercially, very little software was ever released on either 1581 disk format or CMD's native format. However, enthusiasts could use this drive to transfer data between typical PC MS-DOS and the Commodore with special software.

There was one other 3.5" floppy drive available for the Commodore 64. The "TIB 001" was 3.5" floppy drive which connected to the Commodore 64 via the expansion port, meaning that these drives were very fast. These devices appeared from a company in the United Kingdom, but unfortunately did not become widespread.

[edit] Hard drives

Early in 1985, Fiscal Information Inc., of Florida, demonstrated the Lt. Kernal hard drive subsystem for the C64. The Lt. Kernal was revolutionary in that it mated a 10 megabyte, Seagate ST-412 hard drive to an OMTI SASI intelligent controller, creating a high speed bus interface to the C64's expansion port. Connection of the SASI bus to the C64 was accomplished with a custom designed host adapter. The Lt. Kernal shipped with a sophisticated minicomputer-like disk operation system (DOS) that, among other things, allowed execution of a program by simply typing its name and pressing the Return key. The DOS also included a keyed random access feature that made it possible for a skilled programmer to implement ISAM style databases.

By 1987, the manufacturing and distribution of the Lt. Kernal had been turned over to Xetec, Inc., who also introduced C128 compatibility (including support for CP/M). Standard drive size had been increased to 20 MB, with 40 MB available as an option, and the system bus was now the industry-standard small computer system interface, better known as SCSI (the direct descendant of SASI).

The Lt. Kernal was the most technically advanced hard drive subsystem ever offered for Commodore 8 bit computers and was capable of a data transfer rate of over 38 kB per second (65 kB per second in C128 fast mode). An optional multiplexer allowed one Lt. Kernal drive to be shared by as many as sixteen C64s or C128s (in any combination), using a round-robin scheduling algorithm that took advantage of the SCSI bus protocol's ability to handle multiple initiators and targets. Thus the Lt. Kernal could be conveniently used in a multi-computer setup, something that was not possible with other C64-compatible hard drives.

Production of the Lt. Kernal ceased in 1991. Fortunately, most of the components used in the original design were industry standard parts, making it possible to repair the units. Also, several enthusiasts were able to reverse-engineer the host adapter and its boot firmware. As a result, some Lt. Kernal subsystems continue to be used by hobbyists.

Also available for the Commodore 64 was the Creative Micro Designs CMD HD-Series, still available from CMDRKey. Much like the Commodore 1541 floppy drive, the CMD HD could connect to the serial bus, had its own custom computer hardware, and could operate independently of the computer. In addition, a CMD HD series drive included its own SCSI controller to operate its hard drive mechanism, as well as a battery powered real-time clock module for time-stamping files. It should be noted that the standard host bus interface was actually the Commodore serial bus, not SCSI. Faster parallel transfers were possible with the addition of another CMD product, RAMLink. With this arrangement, the performance of the system double that of the Lt. Kernal. One advantage the CMD products had was software compatibility, especially with GEOS, that prior solutions lacked.

User operation of these hard drive subsystems was similar to that of Commodore's floppy drives, with the inclusion of special DOS features to make best use of the drive's capabilities and to effectively manage the vast increase in storage capacity (up to a maximum of 4GB). The CMD HD could even be connected via special parallel cable to a RAMLink for fast speed transfers, and like all CMD drives, was JiffyDOS compatible. An unavoidable problem was that total 1541 compatibility could not be achieved, which often prevented the use of copy-protected software, software fastloaders, or any software whose operation depended on exact 1541 emulation. CMD also missed opportunities to develop the drive's auxiliary port into a printer spooler device (as promised in the user's manual). Support for external SCSI devices (such as CD-ROM and Zip drives) was also noticeably missing. SCSI devices could be connected to the external SCSI port, but could not be used from the HD without difficulty.

The enthusiast-built "IDE64 interface" was designed late in the 1990s, attaching itself in the Commodore 64's expansion port, and allowing users to attach common IDE hard drives, CD-ROM and DVD drives, ZiP and LS-120 floppy drives to their Commodore 64s. Later revisions of the interface board provided an extra compact flash socket. The IDE interface's performance is comparable to the RAMLink in speed, but lacks the intelligence of SCSI. Its main advantage lies in being able to use inexpensive commodity hard drives instead of the more costly SCSI units. 1541 compatibility is not as good as commercially developed hard drive subsystems, but continues to improve with time.

[edit] Input/Output

[edit] Serial communications

Commodore VIC Modem

Likewise, because Commodore offered a number of inexpensive modems for the C64, such as the 1650, 1660, 1670, the machine also helped popularize the use of modems for telecommunications. The 1650 and 1660 were 300 Baud, and the 1670 was 1200 baud. The 1650 could only dial Pulse. The 1660 had no sound chip of its own to generate Touch Tones, so a cable from the monitor /audio out was required to be connected to the 1660 so it could use the C64 sound chip to generate Touch Tones. The 1670 used a modified set of Hayes Commands.

In the United States, Quantum Computer Services (later America Online) offered an online service called Quantum Link for the C64 that featured chat, downloads, and online games. In the UK, Compunet was a very popular online service for C64 users (requiring special Compunet modems) from 1984 to the early 1990s. In Australia, Telecom (now Telstra) ran an online service called Viatel and sold modems for the C64 for use with the service. In Germany the very restictive rules of the state-owned telephone system prevented widespread use of modems, prompting the use of inferior acoustic couplers instead.

Like the VIC-20, the C64 lacked a real UART chip such as the 6551 and used a software emulation. This limited the maximum speed to an error-prone 2400 bit/s. Third-party cartridges with UART chips offered better performance.

Later in the Commodore 64's life, CMD developed two serial communications cartridges for Commodore Computers, the "Swiftlink" and the "Turbo 232". The latter was capable of handling a 56k Hayes modem at full speed, enabling reasonable dial-up internet access speeds.

The Retro-Replay expansion cartridge enabled the addition of the "Silver Surfer" add-on serial board, which also enabled 56k modem connections.

[edit] RAM expansions

Commodore produced several models of RAM expansion cartridges for the Commodore 64 and 128. These were the 17xx series Commodore REUs. Some users of these devices discovered hardware hacks that could be performed to expand the size of these devices - although home-made expansions above 512 KiB were often unstable. Companies also offered services to professionally upgrade Commodore REUs.

Third-party RAM expansions and clones of the Commodore REUs also appeared, including a CMD expansion which used special chips to achieve stable 2 MiB capacity. Some clone RAM expansions did not require the heavy power requirements that Commodore's REU series did.

Unfortunately, very few programs could make use of extra RAM in the Commodore 64, due the fact that the expansion RAM was not treated as true system RAM. However, with special utilities, RAM expansions could be used as RAM drives.

RAM expansions became extremely valuable for serious GEOS users. As GEOS was particularly slow, a RAM expansion was able to speed up the system considerably. Berkeley Softworks developed its own 512k geoRAM cartridge - purposely built for GEOS use, but incompatible with Commodore RAM expansions. Later on, a battery-backed geoRAM device was developed by another third party.

With the creation their RAMDrive expansion behind them, CMD went on to devise the RAMLink unit - undoubtedly the most powerful (and largest) RAM device for the Commodore 64. Until this point, users who owned cartridge-based RAM expansion packs had to load a program from floppy disk every time they wished to use their expansion as a RAM disk. The RAMLink was a large peripheral device which solved this problem. By inserting a RAM expansion into the RAMLink, users could use the RAMLink's built-in JiffyDOS and partitioning functions. The RAMLink also had its own power supply to retain memory even when the Commodore was switched off. In addition, a special port for CMD HD parallel transfers existed on the device. Users could even add a daughter board to the device in order to give the RAMLink the ability to host up to 16 MiB of RAM, or host a real-time clock module.

[edit] Input devices

Commodore mouse

Commodore produced joystick and paddle controllers for the Commodore 64, largely compatible with Atari joysticks. Commodore's paddles were originally intended for the VIC-20, but sadly very few C64 games could take advantage of them. Commodore's joysticks were often derided because they were either not robust enough for extreme gameplay, or broke very easily. Many gaming enthusiasts preferred third-party joysticks. Some enthusiasts have even built their own joysticks and controllers for the Commodore 64, or modified controllers from other systems to work on it. Whilst the Commodore 64 only had two joystick ports for use, a few different kinds of four-player joystick adapters were constructed by enthusiasts, which allowed four joysticks to work on the Commodore 64 with special programming. Not many games could take advantage of these however.

Commodore had two models of computer mouse, namely the 1350 and the 1351. The earlier 1350 was only capable of emulating a joystick and was not very useful. The later 1351 could do this as well as function as a traditional mouse. The NEOS mouse also existed (incompatible with Commodore's 1351), and CMD's SmartMouse could not only emulate Commodore's 1351 mouse, but included a third button and a built in real-time clock module as well.

The Inkwell light pen came with its own drawing software, and was compatible with GEOS

[edit] Other peripherals

The Commodore 1701 and 1702 were 13-inch (33 cm) color monitors for the C64 which accepted as input either composite video or separate chrominance and luminance signals, similar to the S-Video standard, for superior performance with the C64.

Early in the Commodore 64's life, Commodore released several niche hardware enhancements for sound manipulation. These included the "Sound Expander", "Sound Sampler", "Music Maker" overlay, and External music keyboard. The Sound Expander and Sound Sampler were both expansion cartridges, but had limited use. The Sound Sampler in particular could only record close to two seconds of audio, rendering it largely useless. The Music Maker was a plastic overlay for the Commodore 64 "breadbox" keyboard, which included plastic piano keys corresponding to keys on the keyboard. The External keyboard was an add-on which plugged into the Sound Expander. Due to the high cost of these hardware devices, they did not sell well. The reason for this was perhaps due to their cost, lack of adequate software, and the marketing of the expansions as home consumer devices. The end result perhaps turned many serious musicians off.

CMD produced a SID symphony cartridge later in the Commodore's life. This cartridge gave the Commodore another SID chip for use to play stereo SID music[2]. This saved Commodore 64 users from needing to modify their computer motherboards to enable it with dual SID chips.

Creative Micro Designs (CMD) was the longest-running third-party hardware vendor for the Commodore 64 and Commodore 128, hailed by some enthusiasts as being better at supporting the Commodore 64 than Commodore themselves. Their first commercial product for the C64 was a kernal based fast loader and utility chip called JiffyDOS. It was not the first kernal based enhancement for the C64 (SpeedDOS and DolphinDOS also existed), but was perhaps the best implemented. The benefits of a kernal upgrade meant that the cartridge port was free for use (which would have normally been taken up by an Epyx FastLoad cartridge or an Action Replay), however the downside meant that one had to manually remove computer chips from the C64's motherboard and associated floppy drives to install it. Aside from the usual 1541 fast load routines, JiffyDOS contained an easy to use DOS and a few other useful utilities.

[edit] Freezer, Reset, and Utility cartridges

Probably the most well-known hacker and development tools for the Commodore 64 included "Reset" and "Freezer" cartridges. As the C64 had no built-in soft reset switch[3], reset cartridges were popular for entering game "POKEs" (codes which changed parts of a game's code in order to cheat) from popular Commodore computer magazines. Freezer cartridges had the capability to not only manually reset the machine, but also to dump the contents of the computer's memory and send the output to disk or tape. In addition, these cartridges had tools for editing game sprites, machine language monitors, floppy fast loaders, and other development tools. Freezer cartridges were not without controversy however. Despite containing many powerful tools for the programmer, they were also accused of aiding software pirates to defeat software copy protections. Perhaps the best known freezer cartridges were the Datel "Action Replay", Trilogic "Expert", and "The Final Cartridge III" cartridges.

Another important development is the Retro Replay and its additions. The Retro Replay is basically a remake of the popular Action Replay freezer cartridge, but with some fundamental improvements. First, it is flash-based, meaning that the ROMs can be modified anytime. Second, it has two flash ROMs and can therefore hold two independent cartridges (between which you can toggle whenever you reset the computer). It is also not a must to install a cartridge ROM, you may also install all your favourite software in one ROM bank and have it handy all the time and without loading times. Third, it has an amiga clock port. The amiga clock port (known from the Amiga 1200) allows you to install further hardware. For the C64, these additions exist: Silversurfer (a RS232 modem port), RR-Net (a port for DSL/T1-internet), an ethernet card. None of these additions require more than the 64 KiB of RAM or the 0.8 MHz a C64 offers.

The Lt. Kernal hard drive subsystem included a push button on the host adapter called ICQUB (pronounced "ice cube"), which could be used to halt a running program and capture a RAM image to disk. This would work with most copy-protected software that did not do disk overlays and/or bypass the kernel ROM jump table.

[edit] Printers

Commodore MPS 801

A series of dot-matrix printers were created by Commodore, including the MPS 801 and the MPS 803, although many other third-party printers were popular too - some having more advanced printing features than any of Commodore's models. Commodore also produced the DPS-1101 daisy wheel printer, which produced letter quality print similar to a typewriter, and which typically cost more than the computer and floppy disk drive together. Most printers were attached to the C64 via the serial port (much like floppy drives) and were capable of being daisy chained to the system. Later, CMD created the GeoCable which allowed PS2-type ink-jet and laser printers to work under GEOS with a special device driver.

[edit] CPU accelerators

Like the Apple II family, third-party acceleration units providing a faster CPU appeared late in the C64's life. Due to timing issues with the VIC-II chip, however, C64 accelerators were much more complex and expensive to implement than their counterparts for other computers. So while accelerators based on the WDC 65C02, usually running at 4 MHz, and on the 65816 at up to 20 MHz appeared, they appeared too late and at a price of US$199 or higher were too expensive to gain widespread use.

The Turbo Master CPU, produced by Schnedler Systems, was a blue expansion port device which clocked in at 4.09 MHz. It also had a JiffyDOS option.

The most well-known accelerator for the C64 is probably Creative Micro Designs' SuperCPU, which gives the C64 a 20 MHz processor (instead of ~1 MHz) and up to 16 MiB of RAM if combined with CMD's SuperRamCard. Understandably, due to a very limited "market" and number of developers, there has not been much software tailored for the SuperCPU to date— however GEOS was supported. Among the few offerings available include the overhauled GEOS system Wheels, a Wheels-based web browser called "The Wave", a Unix/QNX-like graphical OS called Wings, some demos, and a shooter game in the old Katakis-style called Metal Dust.

[edit] Present and Future devices

While CMD no longer produces Commodore hardware, new peripherals are still being developed and produced, mostly for mass storage or networking purposes.

The MMC64 cartridge allows the C64 to access MMC- and SD flash memory cards. And several revisions and add-ons have been developed for it to take advantage of extra features. It features an Amiga Clockport for connecting a RR-Net Ethernet-Interface, an MP3 player add-on called 'mp3@c64' has even been produced for it.

The Retro Replay is a hugely improved version of the highly popular Datel Action Replay Cartridge, featuring many soft- and hardware-improvements, such as 32 KiB RAM (instead of the Action Replay's 8 KiB) and 2 switchable ROM-Banks with a total of 128 KiB for two 64 KiB ROM-Images. It also has an Amiga Clockport that can hold an additional High-Speed-RS232-Serial- (called "Silver Surfer") or Ethernet- (called "RR-Net") Interface. Like the MMC64, all these peripherals are manufactured by the German Company Individual Computers.

The IDE64 interface not only provides access to IDE drives, but allows for a connection to a PC and can directly access all PC drives, plus it can handle CF (Compact Flash) cards and in its newest version (v4) will also features a USB connector. Today's computer mice can be attached via the micromys interface that can process even optical mice and similar. There are also various interfaces for plugging the 64 to a PC keyboard.

A special board for converting Commodore 64 video signals to standard VGA monitor output is also currently under development, also there is a board to convert the Commodore 128's RGBI CGA signal to VGA being developed but no tangible product exists as yet.

[edit] Notes

  1. Many users came to dread the telltale "RAT-AT-AT-AT-AT" knocking noise, since such knocking contributed to eventual disk drive alignment failure.
  2. A clever modification could be made to older model Commodore 64 motherboards to piggy-back a secondary SID sound chip to the original SID chip. The resulting modification enabled the Commodore 64 to play sound in 6-channel stereo with the appropriate software.
  3. The Commodore 64 had documented user-port pins which could be crossed to achieve a reset. In an attempt to activate game "reset" and POKE cheats, a considerable number of Commodore 64 users attempted to reset their machines by manually touching these pins with wire while the computer was switched on (pins 1 and 3 for those wanting to live on the edge, a rebent paper clip does a great job). Many users made mistakes and missed the correct pins, blowing their C64's fuse and resulting in a costly repair. This achievement was later known as the "Hamster Reset" in "Commodore Format" magazine (presumably because you could shove a live hamster into your Commodore 64 user port and achieve the same result). Smarter users soldered these pins to a button, which they mounted in the C64's case for handy resetting.

[edit] External links

See Protovision if you'd like to obtain any of the new hardware, http://www.protovision-online.com See Individual Computers, they are the producers of MMC64 and the RR-series See IDE64, the IDE64 developer page http://ide64.come.to