|
Basic information about the C64 and C128
|
| Machine
| C-64
| C-64c
| SX-64
| C128 (Flat)
| C128-D (European)
| C128-DCR (American)
|
| CPU Speed
| PAL: 985,248.4 Hz
NTSC: 1.022727 MHz
| PAL: 985,248.4 Hz
NTSC: 1.022727 MHz
| PAL: 985,248.4 Hz
NTSC: 1.022727 MHz
| PAL: 985,248.4 Hz
or 1.9704968 MHz
NTSC: 1.022727 MHz
or 2.0454545 MHz
| PAL: 985,248.4 Hz
or 1.9704968 MHz
| NTSC: 1.022727 MHz
or 2.0454545 MHz
|
| MIPS (varies by instruction)
| PAL: 0.1407143 to 0.4926242
NTSC: 0.1461039 to 0.5113635
| PAL: 0.1407143 to 0.4926242
NTSC: 0.1461039 to 0.5113635
| PAL: 0.1407143 to 0.4926242
NTSC: 0.1461039 to 0.5113635
| PAL: 0.1407143 to 0.9852484
NTSC: 0.1461039 to 1.0227273
| PAL: 0.1407143 to 0.9852484
NTSC: 0.1461039 to 1.0227273
| PAL: 0.1407143 to 0.9852484
NTSC: 0.1461039 to 1.0227273
|
| Base Memory
| 64 KB
| 64 KB
| 64 KB
| 128 KB
| 128 KB
| 128 KB
|
| Maximum Internal Memory
| 256 KB
| [8]
| [8]
| 1 MB
| 1 MB
| 1 MB
|
| Maximum Extended Memory
| 32 MB
| 32 MB
| 16 MB [7]
| 32 MB
| 32 MB
| 32 MB
|
| BASIC Free Mem.
| 38,911 bytes
| 38,911 bytes
| 38,911 bytes
| 122,365 bytes
| 122,365 bytes
| 122,365 bytes
|
| Display Device(s)
| VIC-II composite
| VIC-II composite
| VIC-II composite
| VIC-IIe composite
and VDC / RGBI
| VIC-IIe composite
and VDC / RGBI
| VIC-IIe composite
and VDC / RGBI
|
| Resolutions [9]
| 40x25 text
160x200 Multicolor mode
320x200 Hires color mode
| 40x25 text
160x200 Multicolor mode
320x200 Hires color mode
| 40x25 text
160x200 Multicolor mode
320x200 Hires color mode
| VIC-IIe:
40x25 text
160x200 Multicolor mode
320x200 Hires color mode
VDC:
80x25 text
80x50 text
640x172 Hides color mode
640x200 monochrome mode
Interlacing available, but not useful
| VIC-IIe:
40x25 text
160x200 Multicolor mode
320x200 Hires color mode
VDC:
80x25 text
80x50 text
640x172 Hides color mode
640x200 monochrome mode
Interlacing available, but not useful
| VIC-IIe:
40x25 text
160x200 Multicolor mode
320x200 Hires color mode
VDC:
80x25 text
80x50 text
640x200 to 640x600 Hires color mode
640x200 to 720x750 Hires monochrome
Interlacing available where Y resolution exceeds about 300 lines.
|
| Video RAM
| 1 K x 4 plus part of base memory [11]
| 1 K x 4 plus part of base memory [11]
| 1 K x 4 plus part of base memory [11]
| VIC-IIe: 2 K x 4 plus part of base mem. [12]
VDC: 16 KB [10]
| VIC-IIe: 2 K x 4 plus part of base mem. [12]
VDC: 16 KB [10]
| VIC-IIe: 2 K x 4 plus part of base mem. [12]
VDC: 64 KB
|
| Color cell size
| 4x8 or 8x8
| 4x8 or 8x8
| 4x8 or 8x8
| VIC-IIe: 4x8 or 8x8
VDC: 8x8 to 8x32
| VIC-IIe: 4x8 or 8x8
VDC: 8x8 to 8x32
| VIC-IIe: 4x8 or 8x8
VDC: 8x1 [14] to 8x32
|
| Number of Colors
| 16
| 16
| 16
| 16
| 16
| 16
|
| Hardware sprites
| Yes
| Yes
| Yes
| VIC-IIe: Yes
VDC: No
| Yes
VDC: No
| Yes
VDC: No
|
| Sound Device
| 6581
| 8580
| 6581
| 6581 or 8580
| 8580
| 8580
|
| Voices [13]
| 3
| 3
| 3
| 3
| 3
| 3
|
| Built-in Drive
| No
| No
| Yes (1541)
| No
| Yes (1571)
| Yes (1571)
|
| Notes
| [1]
| [2]
| [3]
| [4]
| [5]
| [6]
|
|
Footnotes
- This is the machine everyone always called the "breadbin" or "breadbox".
- Filtering circuitry improved with the 8580 SID.
- Cassette port was removed and ROM was updated in this unit to set the default device to 8 (the built-in 1541).
- In C128 mode, the built-in 1571 becomes the default LOAD device. All modes on the VIC-IIe are identical to the C64 except that a few more tricks
are possible using ~2MHz "Fast" mode. The VDC's modes are mildly extendable and mostly don't require active software tricks.
- In C128 mode, the built-in 1571 becomes the default LOAD device. All modes on the VIC-IIe are identical to the C64 except that a few more tricks
are possible using ~2MHz "Fast" mode. The VDC's modes are mildly extendable and mostly don't require active software tricks.
- In C128 mode, the built-in 1571 becomes the default LOAD device. All modes on the VIC-IIe are identical to the C64 except that a few more tricks
are possible using ~2MHz "Fast" mode. The VDC's modes are widely extendable and mostly don't require active software tricks.
- The SX-64's power supply is generally considered to be irreplaceable, unlike the regular C64 and C64c's power supply. Therefore, due to it's low
power output, the SX is not suitable for use with a SuperCPU or a Commodore 17xx REU, due to the power needs of those devices. The CMD RAMLink and
RAMDrive can be used, however, as they have their own separate power supplies.
- I have no clue what to put here. Can the C64C and/or the SX-64 be upgraded internally like the breadbox and the C128's?
- All machines feature a VIC-II, and on this chip most video modes can be either altered or completely redesigned. A large number of extended
video modes are possible using software tricks.
- 16 KB VDC machines can be upgraded to 64 KB using a plug-in module or a permanent modification.
- In the C64, the VIC-II has 1024 nybbles of memory dedicated to it, for color information in certain modes, plus the VIC-II uses up to 16 KB of
base memory (configurable by the programmer).
- Like the C64, the VIC-IIe uses a dedicated color RAM chip plus part of base memory, plus there is an extra register in the machine that controls
which of the two 1024-nybble segments of color RAM is visible to the VIC. The VIC-II can also access, via a register, the entire 128 KB address space
of the C128, and presumeably all the way up into the 1 MB that is possible with internal memory hacks.
- All C64 and C128 computers feature one SID chip. Depending on whether you're upgrading a C64 or a C128, and the method used to add more SID
chips, anywhere from two (six extra voices) to thirty-one more SID chips (that is, * 93 * extra voices) can be added to the machine, with
only a small amount of basic glue logic and some perfboard. It is more practical to stop at 8 chips (to keep the I/O usage to one page), but in
practice most users either stick with the single on-board SID, or they add one via a plug-in cartridge (total of 6 voices). At this time, I don't
know of any software that supports more than two SID chips in a machine.
- The VDC can do color cell sizes from 8x2 to 8x32 without software tricks. With a software trick similar to opening the upper/lower border on the
VIC-II, the VDC can display 8x1 color cells.
Adding a SuperCPU to the mix introduces a number of changes to the way the machines operate. There were several other accellerators for the
C64 over the years, but today only the SuperCPU really survived. Briefly, these changes are:
- The SuperCPU is an almost entirely self-contained computer, which runs at 20 MHz. Leaving the C64 or 128 to run internally at its normal
~1 MHz or ~2 MHz mode, the SuperCPU uses the C64/128 as essentially an I/O adaptor and video RAM.
- The SuperCPU runs at 20 MHz unless software instructs it to communicate with video RAM or I/O devices, or tells it to manually slow down to match
the C64.
- The SuperCPU employs a one-byte write cache, allowing it to disconnect from the C64 entirely. This allows the programmer to perform a write
operation and then immediately go do something else, without waiting, while the cache handles the actual write operation to I/O or video RAM. This
applies so long as the programmer spaces his/her writes out so that they occur at least 20 cycles apart.
- The SuperCPU always slows down when reading from an I/O device, and does not use the cache.
- The write cache allows SuperCPU code to treat the C64 as a ~1 MHz I/O and video memory bus. This allows more video and sound effects than the C64
would normally be capable of (you can normally write to memory or I/O at about 50 KB/sec).
- The WDC 65816 used in the Super CPU does NOT support the 6502's so-called "illegal" opcodes. Instead, the command set has been extended.
- In exchange for those "illegal" opcodes, most of the 6502's instructions have been upgraded to allow them to take advantage of the full 16 MB of
available memory, if present.
- The SuperCPU comes with 256 KB of 20 ns "cache" RAM, which serves as base memory. User-installed extended memory beyond this is 70 ns or faster.
- In 20 MHz mode, the SuperCPU corrects for the 70 ns speed by imposing occasional memory wait states when dealing with extended memory. On
average, these wait states incur up to a 5% speed penalty. It is possible to avoid wait-states with carefully written code.
- With Turbo mode turned off, code runs at the same speed as on stock machines, wherever it is located in the 16 MB address space, and
perform block-move commands at a rate of seven clock cycles per byte, regardless of which part of memory that's being dealt with.
- With Turbo mode turned on, block-moves to the first 256 KB are executed at 7 cycles per byte, and code in this region runs at about 2.71
Million to 10 Million instructions per second.
- Internal memory hacks that take the C64 or C128 beyond 64 or 128 KB are not recognized by the Super CPU.
|
Storage solutions, approximate speeds
Using a Stock C64 unless otherwise noted. Exact speeds depend on many factors such as the program code that handles the
data being loaded, exact disk format, drive model (where multiple drives have roughly the same speed), quality of the disk media (errors slowing
things down), and so on. Software-loadable fastload routines which bypass the default KERNAL loader are counted separately, and do not constitute a
modification.
Note: In some setups, the C128 may perform a little better than the C64, due to it's hardware-assisted burst mode and faster
CPU. Similarly, adding a SuperCPU has a small but noticeable effect on drive speeds as well, but I don't have accurate measurements
other than the RAMLink+SCPU measurement below.
|
| Device Type
| Speed
| Interface
| Loader
| Notes
|
| Datassette
| 45 to 60 bytes/sec
| Dedicated Serial line
| Stock
| Exact speed depends on binary program data.
|
| All IEC devices
| 500-700 bytes/sec
| IEC Serial
| Stock
| Exact speed varies slightly with drive model
|
| Datasette
| Up to 1 KB/sec
| Dedicated serial line
| Custom (rturbo, etc)
|
|
| 1541 or 1571
| 6 to 7 KB/sec
| IEC Serial
| Fastloader
|
|
| 1581 or FD2000
| About 7 KB/sec
| IEC Serial
| Fastloader
| Exact speed depends on data layout
|
| CMD HD or CMD ZIP
| 7-8 KB/sec, maybe more
| IEC Serial
| JiffyDOS
| JD is a replacement KERNAL ROM chip, the most commonly-used fastloader for CMD devices. Exact brand of ZIP or HDD mechanism affects speed
slightly.
|
| CMD HD or CMD ZIP
| 15-20 KB/sec
| RAMLink Parallel Bus
| Supplied by RAMLink
| There is no "stock" loader. The CMD HD/ZIP switches to parallel mode if it detects a parallel connection to RAMLink.
|
| SFD-1001
| ?
| IEEE/Parallel on Expansion Bus
| Supplied by interface
| There is no "stock" loader. Should be comparable to a parallel 1541.
|
| 1541 or 1571
| 12 to 20 KB/sec
| User Port Parallel
| Fastloader
| Typically the fastloader will either be a software-loadable program or a replacement ROM chip (Dolphin DOS comes to mind)
|
| CMD RAMLink
| About 30 KB/sec
| Expansion Bus
| JiffyDOS (supplied by the RAMLink)
| There is no "stock" loader.
|
| IBM compatible PC/interface cable
| About 35 KB/sec
| IEC Serial or User Port Parallel (?)
| Fastloader
| These types of cables use a PC as a storage device.
|
| IDE64
| About 50 KB/sec
| Expansion Bus
| Fastloader
| Loader is supplied by the IDE64
|
| CMD RAMLink
| 200-250 KB/sec
| Expansion Bus, via Super CPU Accellerator
| Custom fastloader (not JiffyDOS)
| Speed estimated by Chester Kollschen
|
| Drive sizes and capacities, in order smallest to largest
In all cases, it is possible to extend the C64's disk access routines (and hence add fastloaders, extra DOS commands, extend a
floppy drive's capacity slightly, etc) without hardware expansions. These can just be loaded into memory, and often are very small (1-3
KB).
|
| Device
| Maximum storage
| Media Type
| Notes
|
| Datasette
| Typ. 100+ KB per 30 minute side using stock load/save routines
| Standard audio casette tapes
| Exact storage depends on tape length and specific load/save routine used.
|
| 1541
| 170 KB to 190 KB
| 5.25" SSDD or DSDD floppies
| Normally stores 170KB unless you extend it to 40 tracks with a custom load/save routine
|
| 1571
| 340 KB to 380 KB
| 5.25" DSDD floppies
| Normally stores 340K on a double-sided formatted disk. Up to 380KB if you use all 80 tracks.
|
| 1581
| 800 KB
| 3.5" DSDD floppies
|
|
| SFD-1001
| 1 MB
| 5.25" DSDD 96TPI floppies
|
|
| CMD FD-2000
| 1.6 MB
| 3.5" DSHD floppies
| Standard floppies as used for PC 1.44 MB format
|
| CMD FD-4000
| 3.2 MB
| 3.5" DSED floppies
| Standard floppies as used for PC 2.88 MB format
|
| CMD RAMDrive
| 512 KB, 1MB or 2MB
| Solid State RAMdisk
| Size depends on specific model
|
| CMD RAMLink
| 1 MB to 16 MB
| Solid State RAMdisk (30-pin SIMMs)
| Total capacity is user-upgradeable.
|
| CMD HD or CMD ZIP
| 20 MB to 4 GB
| Standard SCSI I/II hard disks, ZIP drives, or CD-ROM drives
| Hard Disk is replaceable. Additional hard disks can be added via built-in Linear RAID capability. The maintainer of these devices indicates
plans to upgrade the maximum storage beyond 4 GB. External software is currently needed for CD-ROM access; the maintainer indicates plans to remedy
this.
|
| IDE-64
| Up to 128 GB (128,000 MB)
| Standard IDE hard disks, CompactFlash cards, CD-ROM drives
| Hard disk and CompactFlash card are user-replaceable.
|
| IBM compatible PC/interface cable
| No practical limit
| Uses a PC as a storage device.
| Maximum storage is limited only by the PC and it's software capabilities
|