Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Special pages
Niidae Wiki
Search
Search
Appearance
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
Commodore 64
(section)
Page
Discussion
English
Read
Edit
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
View history
General
What links here
Related changes
Page information
Appearance
move to sidebar
hide
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== Hardware == {{More citations needed|section|date=December 2023}} === CPU and memory === [[File:C64 Block Diagram new.svg|thumb|alt=See caption|Block diagram of the C64]] {{Main|MOS Technology 6510}} The C64 uses an [[8-bit computing|8-bit]] [[MOS Technology 6510]] [[microprocessor]] that is almost identical to the [[MOS Technology 6502|6502]] but has [[three-state bus]]es, a different [[pinout]], slightly different [[clock signal]]s and other minor changes for this application. It also has six I/O lines on otherwise-unused legs on the 40-pin IC package. These are used for two purposes in the C64: to [[Bank switching|bank-switch]] the machine's [[read-only memory]] (ROM) in and out of the processor's address space, and to operate the [[Commodore Datasette|datasette]] tape recorder. The C64 has {{val|64|u=KB}} of 8-bit-wide dynamic [[random-access memory|RAM]], {{val|1|u=KB}} of 4-bit-wide static color RAM for text mode, and {{val|38|u=KB}} are available to built-in [[Commodore BASIC]] 2.0 on startup. There is {{val|20|u=KB}} of ROM, made up of the BASIC interpreter, the [[KERNAL]], and the character ROM. Because the processor can only address {{val|64|u=KB}} at a time, the ROM was mapped into memory and only {{val|38911 |u=bytes}} of RAM (plus {{val|4|u=KB}} between the ROMs) were available at startup. Most "[[breadbin]]" Commodore 64s used 4164 DRAM with eight chips totaling 64K of system RAM. Later models, featuring Assy 250466 and Assy 250469 [[motherboard]]s, used 41464 DRAM (64K×4) chips which stored {{val|32|u=KB}} per chip (so only two were required). Because 4164 DRAMs are 64K×1, eight chips are needed to make an entire byte; the computer will not function without all of them present. The first chip contains Bit 0 for the memory space, the second chip contains Bit 1, and so forth. The C64 performs a RAM test on power-up and if a RAM error is detected, the amount of free BASIC memory will be lower than the normal 38,911. If the faulty chip is in lower memory, then an <code>?OUT OF MEMORY IN 0</code> error is displayed rather than the usual BASIC startup banner. The C64 uses a complicated memory-banking scheme; the normal power-on default is the BASIC ROM mapped in at {{mono|$A000}}-{{mono|$BFFF}}, and the screen editor (KERNAL) ROM at {{mono|$E000}}–{{mono|$FFFF}}. RAM under the system ROMs can be written to, but not read back, without swapping out the ROMs. Memory location {{mono|$01}} contains a register with control bits for enabling or disabling the system ROMs and the I/O area at {{mono|$D000}}. If the KERNAL ROM is swapped out, BASIC will be removed at the same time.{{r|prg|p=264}}<ref>{{cite book|title=Mapping the Commodore 64 and 64C|isbn=0-87455-082-3|last=Leemon|first=Sheldon|year=1987|publisher=COMPUTE! Publications|page=[https://archive.org/details/Compute_s_Mapping_the_64_and_64C/page/4 4]|url=https://archive.org/details/Compute_s_Mapping_the_64_and_64C/page/4}}</ref> BASIC is not active without the KERNAL; BASIC often calls KERNAL routines, and part of the ROM code for BASIC is in the KERNAL ROM. The character ROM is normally invisible to the CPU. The character ROM may be mapped into {{mono|$D000}}–{{mono|$DFFF}}, where it is then visible to the CPU. Because doing so necessitates swapping out the I/O registers, interrupts must first be disabled. By removing I/O from the memory map, {{mono|$D000}}–{{mono|$DFFF}} becomes free RAM. C64 cartridges map into assigned ranges in the CPU's address space. The most common cartridge auto-starting requires a [[String (computer science)|string]] at {{mono|$8000}} which contains "{{mono|CBM80}}" followed by the address where program execution begins. A few C64 cartridges released in 1982 use Ultimax mode (or MAX mode), a leftover feature of the unsuccessful MAX Machine. These cartridges map into {{mono|$F000}} and displace the KERNAL ROM. If Ultimax mode is used, the programmer will have to provide code for handling system interrupts. The cartridge port has 16 [[address line]]s, which grants access to the computer's entire address space if needed. Disk and tape software normally load at the start of BASIC memory ($0801), and use a small BASIC stub (such as <code>10 SYS(2064)</code>) to jump to the start of the program. Although no Commodore 8-bit machine except the C128 can automatically boot from a floppy disk, some software intentionally overwrites certain BASIC vectors in the process of loading so execution begins automatically (instead of requiring the user to type RUN at the BASIC prompt after loading). About 300 cartridges were released for the C64, primarily during the machine's first {{frac|2|1|2}} years on the market, after which most software outgrew the {{val|16|u=KB}} cartridge limit. Larger software companies, such as [[Ocean Software]], began releasing games on bank-switched cartridges to overcome the {{val|16|u=KB}} cartridge limit during the C64's final years. Commodore did not include a reset button on its computers until the CBM-II line, but third-party cartridges had a reset button. A [[Reboot#Cold versus warm reboot|soft reset]] can be triggered by jumping to the CPU reset routine at {{mono|$FCE2}} (64738). A few programs use this as an [[exit (command)|exit]] feature, although it does not clear memory. The KERNAL ROM underwent three revisions, mainly designed to fix bugs. The initial version is only found on 326298 motherboards (used in the first production models), and cannot detect whether an NTSC or PAL VIC-II is present. The second revision is found on all C64s made from late 1982 through 1985. The final KERNAL ROM revision was introduced on the 250466 motherboard (late breadbin models with 41464 RAM), and is found in all C64Cs. The 6510 CPU is clocked at {{val|1.023|u=MHz}} (NTSC) and {{val|0.985|u=MHz}} (PAL),<ref>{{cite web|url=http://www.eurogamer.net/articles/digitalfoundry-face-off-zx-spectrum-vs-commodore-64|title=Face-Off: ZX Spectrum vs. Commodore 64|first=Richard|last=Leadbetter|date=April 29, 2012|website=Eurogamer}}</ref> lower than some competing systems; the Atari 800, for example, is clocked at {{val|1.79|u=MHz}}). Performance can be boosted slightly by disabling the VIC-II's video output via a register write. This feature is often used by tape and disk [[fast loader]]s and the KERNAL cassette routine to keep a standard CPU cycle timing not modified by the VIC-II's sharing of the bus. The restore key is gated directly to the CPU's [[non-maskable interrupt|NMI]] line, and will generate an NMI if pressed. The KERNAL handler for the NMI checks if run/stop is also pressed; if not, it ignores the NMI and exits. Run/stop-restore is normally a soft reset in BASIC which restores all I/O registers to their power-on default state, but does not clear memory or reset pointers; any BASIC programs in memory will be left untouched. [[Machine code|Machine-language software]] usually disables run/stop-restore by remapping the NMI vector to a dummy [[Run-time infrastructure (simulation)|RTI]] instruction. The NMI can also be used for an extra interrupt thread by programs, but risks a system lockup or other undesirable side effects if the restore key is accidentally pressed (which activates the NMI thread). === Joysticks, mice, and paddles === {{multiple image|perrow=2|total_width=275 | align = right | image1 = Commodore CX-40-style white and black joystick.jpg <!-- Optional image: https://en.wikipedia.org/wiki/File:Commodore_Joystick_model_1311.jpg --> | alt1 = Original Commodore white and black joystick | image2 = Commodore-Paddles.JPG | alt2 = Commodore analog paddles | image3 = Commodore blockomaus.jpg | alt3 = Commodore mouse | image4 = Joystick Eingänge C64.jpg | alt4 = The DE-9 Atari-style joystick ports | footer = ''(from top)'' Commodore's version of the Atari joystick; a set of analog paddles; a 1350/1351 mouse, and DE-9 Atari-style joystick ports }} The C64 retained the VIC-20's [[D-subminiature|DE-9]] [[Atari joystick port]] and added another; any Atari-specification game controller can be used on a C64. The joysticks are read from the registers at {{mono|$DC00}} and {{mono|$DC01}}, and most software is designed to use a joystick in port 2 for control rather than port 1; the upper bits of {{mono|$DC00}} are used by the keyboard, and an I/O conflict can result. Although it is possible to use [[Sega]] [[gamepad]]s on a C64, it is not recommended; their slightly different signal can damage the [[MOS Technology CIA|CIA]] chip. The [[MOS Technology 6581|SID chip]]'s register {{mono|$D419}}, used to control paddles, is an analog input. A handful of games, primarily released early in the computer's life cycle, can use paddles. In 1986, Commodore released two mice for the C64 and C128: the 1350 and [[Commodore 1351|1351]]. The 1350 is a digital device read from the joystick registers, and can be used with any program supporting joystick input. The 1351 is an analog [[potentiometer]]-based mouse, read with the SID's [[analog-to-digital converter]]. === Graphics === {{Main|MOS Technology VIC-II}} The VIC-II [[Video Display Controller|graphics chip]] features a new palette, eight hardware [[sprite (computer graphics)|sprites]] per [[scanline]] (enabling up to 112 sprites per PAL screen), [[scrolling]] capabilities, and two [[Raster graphics|bitmap graphics]] modes. {| class="wikitable sortable" |+ Commodore 64 palette ! Color # ! Name ! Hexadecimal RGB value |- | style="text-align:right" | 0 | style="color: white; background-color: #000000" | Black | #000000 |- | style="text-align:right" | 1 | style="color: black; background-color: #FFFFFF" | White | #FFFFFF |- | style="text-align:right" | 2 | style="color: white; background-color: #9F4E44" | Red | #9F4E44 |- | style="text-align:right" | 3 | style="color: black; background-color: #6ABFC6" | Cyan | #6ABFC6 |- | style="text-align:right" | 4 | style="color: white; background-color: #A057A3" | Purple | #A057A3 |- | style="text-align:right" | 5 | style="color: white; background-color: #5CAB5E" | Green | #5CAB5E |- | style="text-align:right" | 6 | style="color: white; background-color: #50459B" | Blue | #50459B |- | style="text-align:right" | 7 | style="color: black; background-color: #C9D487" | Yellow | #C9D487 |- | style="text-align:right" | 8 | style="color: white; background-color: #A1683C" | Orange | #A1683C |- | style="text-align:right" | 9 | style="color: white; background-color: #6D5412" | Brown | #6D5412 |- | style="text-align:right" | 10 | style="color: black; background-color: #CB7E75" | Light Red | #CB7E75 |- | style="text-align:right" | 11 | style="color: white; background-color: #626262" | Dark-Gray | #626262 |- | style="text-align:right" | 12 | style="color: white; background-color: #898989" | Mid-Gray | #898989 |- | style="text-align:right" | 13 | style="color: black; background-color: #9AE29B" | Light Green | #9AE29B |- | style="text-align:right" | 14 | style="color: black; background-color: #887ECB" | Light Blue | #887ECB |- | style="text-align:right" | 15 | style="color: black; background-color: #ADADAD" | Light-Gray | #ADADAD |} === Text modes === The standard text mode features 40 columns, like most [[Commodore PET]] models; the built-in character encoding is not standard [[ASCII]] but [[PETSCII]], an extended form of ASCII-1963. The KERNAL ROM sets the VIC-II to a dark-blue background on power-up, with a light-blue border and text. Unlike the PET and VIC-20, the C64 uses double-width text; some early VIC-IIs had poor video quality which resulted in a fuzzy picture. Most screenshots show borders around the screen, a feature of the VIC-II chip. By utilizing interrupts to reset hardware registers with precise timing, it was possible to place graphics within the borders and use the full screen.<ref name="Ojala">{{cite web| url=http://www.antimon.org/dl/c64/code/opening.txt|title=Opening the Borders|last=Ojala|first=Pasi| access-date=September 13, 2008}}</ref> [[File:Fonts-C64.png|thumb|alt=Two character sets, both light blue against a darker background|The C64's two PETSCII character sets]] The C64 has a resolution of 320×200 pixels, consisting of a 40×25 grid of 8×8 character blocks. It has 255 predefined character blocks, known as PETSCII. The character set can be copied into RAM and modified by a programmer. There are two color modes: high resolution, with two colours available per character block (one foreground and one background), and multicolour (four colors per character block{{snd}}three foreground and one background). In multicolor mode, attributes are shared between pixel pairs so the effective visible resolution is 160×200 pixels; only 16 KB of memory is available for the VIC-II video processor. Since the C64 has a bitmapped screen, it is possible (but slow) to draw each pixel individually. Most programmers used techniques developed for earlier, non-bitmapped systems like the Commodore PET and TRS-80. A programmer redraws the character set, and the video processor fills the screen block by block from the top left corner to the bottom right corner. Two types of animation are used: character block animation and hardware sprites. ====Character block animation==== The user draws a series of characters of a person walking, possibly two in the middle of the block and another two walking in and out of the block. Then the user sequences them so the character walks into the block and out again. Drawing a series of these gets a person walking across the screen. By timing the redraw to occur when the television screen blanks out to restart drawing the screen, there will be no flicker. For this to happen, a user programs the VIC-II that it generates a [[raster interrupt]] when [[flyback transformer#History|video flyback]] occurs. This technique is used in the ''[[Space Invaders]]'' arcade game. Horizontal and vertical pixel scrolling of up to one character block is supported by two hardware scroll registers. Depending on timing, hardware scrolling affects the entire screen or selected lines of character blocks. On a non-emulated C64, scrolling is glass-like and blur-free. ====Hardware sprites==== [[File:Gesteuerter Sprite läuft nach oben (Spittis Search Game Commodore 64).jpg|thumb|alt=Screenshot of a video game|Sprites on screen in a C64 game]] A sprite is a character which moves over an area of the screen, draws over the background, and redraws it after it moves. This differs from character block animation, where the user flips character blocks. On the C64, the VIC-II video controller handles most sprite emulation; the programmer defines the sprite and where it goes. The C64 has two types of sprites, respecting their color-mode limitations. Hi-res sprites have one color (one background and one foreground), and multi-color sprites have three (one background and three foreground). Color modes can be split or windowed on a single screen. Sprites can be doubled in size vertically and horizontally up to four times their size, but the pixel attributes are the same – the pixels become "fatter". There are eight sprites, and all eight can be shown in each horizontal line concurrently. Sprites can move with glassy smoothness in front of, and behind, screen characters and other sprites. The hardware sprites of a C64 can be displayed on a bitmapped (high-resolution) screen or a text-mode screen in conjunction with fast and smooth character block animation. Software-emulated sprites on systems without support for hardware sprites, such as the [[Apple II]] and [[ZX Spectrum]], required a bitmapped screen. Sprite-sprite and sprite-background collisions are detected in hardware, and the VIC-II can be programmed to trigger an interrupt accordingly. === Sound === The SID chip has three channels, each with its own [[ADSR envelope]] generator and filter capabilities. [[Ring modulation]] makes use of channel three to work with the other two channels. [[Bob Yannes]] developed the SID chip and, later, co-founded the synthesizer company [[Ensoniq]]. Composers and programmers of game music on the C64 include [[Rob Hubbard]], [[Jeroen Tel]], [[Tim Follin]], [[David Whittaker (video game composer)|David Whittaker]], [[Chris Hülsbeck]], [[Ben Daglish]], [[Martin Galway]], Kjell Nordbø and David Dunn. Due to the chip's three channels, chords are often played as [[arpeggio]]s. It was also possible to continuously update the master volume with sampled data to enable the playback of 4-bit digitized audio. By 2008, it was possible to play four-channel 8-bit audio samples and two SID channels and still use filtering.<ref>{{cite web|title=New revolutionary C64 music routine unveiled|publisher=C64Music!|year=2008|url=http://c64music.blogspot.com.au/2008/11/new-revolutionary-c64-music-routine.html|access-date=May 20, 2014}}</ref> [[File:StrikeForce8580R5.ogg|thumb|alt=Electronic-music clip|An example of SID chip-generated music]] There are two versions of the SID chip: the 6581 and the 8580. The [[MOS Technology 6581]] was used in the original ("breadbin") C64s, the early versions of the 64C, and the [[Commodore 128]]. The 6581 was replaced with the MOS Technology 8580 in 1987. Although the 6581 sound quality is a little crisper, it lacks the 8580's versatility; the 8580 can mix all available waveforms on each channel, but the 6581 can only mix waveforms in a channel in a limited fashion. The main difference between the 6581 and the 8580 is the supply voltage; the 6581 requires {{nowrap|12 volts}}, and the 8580 {{nowrap|9 volts}}. A modification can be made to use the 6581 in a newer 64C board (which uses the {{nowrap|9-volt}} chip). In 1986, the Sound Expander was released for the Commodore 64. It was a [[sound module]] with a [[Yamaha YM3526]] chip capable of [[FM synthesis]], primarily intended for professional [[music production]].<ref>{{cite magazine |last1=Taylor |first1=Graham |title=Music Hardware: Now that's what I call music |magazine=[[Popular Computing Weekly]] |date=February 13, 1986 |pages=13–4 |url=https://archive.org/details/popular-computing-weekly-1986-02-13/page/n12}}</ref><ref name="Yamaha">{{cite web |title=Yamaha Sound Chips |url=https://soundprogramming.net/electronics/yamaha-sound-chips/ |website=Sound Programming |access-date=October 9, 2020}}</ref> === {{anchor|Hardware revisions}}Revisions === [[File:3 versioner av c64 (modified).jpg|thumb|upright=1.2|Three case styles were used: C64 (top, 1982), C64C (middle, 1986) and C64G (bottom, 1987).]] Commodore made many changes to the C64's hardware, sometimes introducing compatibility issues.<ref name="halfhill198307">{{cite news | url=https://archive.org/stream/1983-07-computegazette/Compute_Gazette_Issue_01_1983_Jul#page/n41/mode/2up | title=Commodore 64 Video Update | work=Compute!'s Gazette | date=July 1983 | access-date=February 6, 2016 | last=Halfhill | first=Tom R. | page=40}}</ref> The computer's rapid development and Commodore and [[Jack Tramiel]]'s focus on cost-cutting instead of product testing resulted in several defects which caused developers like Epyx to complain and required many revisions; Charpentier said that "not coming a little close to quality" was one of the company's mistakes.{{r|ieee85}} Cost reduction was the reason for most of the revisions. Reducing [[manufacturing cost]]s was vitally important to Commodore's survival during the [[price war]] and lean years of the 16-bit era. The C64's original ([[NMOS logic|NMOS]]-based) motherboard went through two major redesigns and a number of revisions, exchanging positions of the VIC-II, SID and [[programmable logic array|PLA]] chips. Much of the cost was initially eliminated by reducing the number of discrete components, such as [[diode]]s and [[resistor]]s, which enabled a smaller [[printed circuit board]]. There were 16 C64 motherboard revisions to simplify production and reduce manufacturing costs. Some board revisions were exclusive to [[PAL region]]s. All C64 motherboards were manufactured in [[Hong Kong]]. IC locations changed frequently with each motherboard revision, as did the presence (or lack) of the metal RF shield around the VIC-II; PAL boards often had aluminized cardboard instead of a metal shield. The SID and VIC-II are socketed on all boards, but the other ICs may be socketed or soldered. The first production C64s, made from 1982 to early 1983, are known as "silver label" models due to the case having a silver-colored "Commodore" logo. The power LED had a silver badge reading "64" around it. These machines have only a five-pin video cable, and cannot produce [[S-Video]]. Commodore introduced the familiar "rainbow badge" case in late 1982, but many machines produced into early 1983 also used silver-label cases until the existing stock was used up. The original 326298 board was replaced in spring 1983 by the 250407 motherboard, which had an eight-pin video connector and added S-Video support. This case design was used until the C64C appeared in 1986. All ICs switched to plastic shells, but the silver-label C64s (notably the VIC-II) had some ceramic ICs. The case is made from [[Acrylonitrile butadiene styrene|ABS]] plastic, which may become brown with time; this can be reversed with [[retrobright]]. ==== ICs ==== [[File:C64motherboard.jpg|thumb|right|upright=1.6|alt=See caption|An early C64 motherboard (Rev A [[PAL]] 1982)]] [[File:C64Cmotherboard.jpg|thumb|right|upright=1.6|alt=See caption|A C64C motherboard ("C64E" Rev B PAL 1992)]] The VIC-II was manufactured with 5-[[micrometre|micrometer]] NMOS technology{{r|ieee85}}, and was clocked at {{nowrap|17.73447 MHz}} (PAL) or {{nowrap|14.31818 MHz}} (NTSC). Internally, the clock was divided to generate the dot clock (about 8 MHz) and the [[two-phase clock|two-phase system clocks]] (about 1 MHz; the pixel and system clock speeds differ slightly on NTSC and PAL machines). At such high clock rates the chip generated considerable heat, forcing MOS Technology to use a ceramic [[dual in-line package]] known as a CERDIP. The ceramic package was more expensive, but dissipated heat more effectively than plastic. After a redesign in 1983, the VIC-II was encased in a plastic dual in-line package; this reduced costs substantially, but did not eliminate the heat problem.{{r|ieee85}} Without a ceramic package, the VIC-II required a [[heat sink]]. To avoid extra cost, the metal [[radio frequency|RF]] [[electromagnetic shielding|shielding]] doubled as the VIC's heat sink; not all units shipped with this type of shielding, however. Most C64s in [[Europe]] shipped with a cardboard [[Electromagnetic shielding|RF shield]] coated with a layer of metal foil. The effectiveness of the cardboard was questionable; it acted instead as an insulator, blocking airflow and trapping heat generated by the SID, VIC, and PLA chips. The SID was originally manufactured using NMOS at 7 micrometers and, in some areas, 6 micrometers.{{r|ieee85}} The prototype SID and some early production models had a ceramic dual in-line package, but (unlike the VIC-II) are very rare; the SID was encased in plastic when production began in early 1982. ==== Motherboard ==== In 1986, Commodore released the last revision of the classic C64 [[motherboard]]. It was otherwise identical to the 1984 design, except for two 64-[[kilobit]] × 4-bit [[DRAM]] chips which replaced the original eight 64-kilobit × 1-bit ICs. After the release of the Commodore 64C,<ref name='Commodore 64c abbreviated as "C64C" (capital c on both ends)'>{{cite web|last1=Kirk|first1=Mandy|title=Commodore 64C System Guide at Auction on ebay|url=http://www.ebay.com/itm/Commodore-64C-Personal-Computer-System-Programming-Guide-Manual-RARE-/321552326540?pt=US_Vintage_Computing_Manuals_Merchandise&hash=item4ade031f8c|website=www.ebay.com|publisher=Commodore International|access-date=October 17, 2014}}</ref> MOS Technology began to reconfigure the original C64's [[chipset]] to use [[HMOS]] technology. The main benefit of HMOS was that it required less voltage to drive the IC, generating less heat. This enhanced the reliability of the SID and VIC-II. The new chipset was renumbered 85xx to reflect the change to HMOS. In 1987, Commodore released a 64C variant with a redesigned motherboard known as a "short board". The new board used the HMOS chipset, with a new 64-pin PLA chip. The "SuperPLA", as it was called, integrated discrete components and [[transistor–transistor logic]] (TTL) chips. In the last revision of the 64C motherboard, the 2114 4-bit-wide color RAM was integrated into the SuperPLA. === Power supply === [[File:Commodore 64 - Joystickports, EinAus-Schalter, Poweranschluss.jpg|thumb|alt=Rear of a C64|{{nowrap|Joystick ports}}, {{nowrap|power switch}}, {{nowrap|power inlet}}]] The C64 used an external [[power supply]], a linear transformer with multiple taps differing from [[Switched-mode power supply|switch mode]] (presently used on PC power supplies). It was encased in [[epoxy]] resin gel, which discouraged tampering but increased the heat level during use. The design saved space in the computer's case, and allowed international versions to be more easily manufactured. The [[Commodore 1541|1541-II]] and [[Commodore 1581|1581]] disk drives and third-party clones also have external power-supply "bricks", like most peripherals. Commodore power supplies often [[Mean time between failures|failed sooner than expected]]. The computer reportedly had a 30-percent return rate in late 1983, compared to the 5–7 percent rate considered acceptable by the industry;<ref name="Infoworld Nov 1983">{{Cite magazine | last = Mace | first = Scott | title = Commodore 64: Many unhappy returns |magazine= InfoWorld | volume = 5 | issue = 46 | page =23 | publisher = Popular Computing Inc. | date = November 13, 1983 | url = https://books.google.com/books?id=wS8EAAAAMBAJ&pg=PA23 | issn = 0199-6649}}</ref> ''[[Creative Computing]]'' reported four working C64s, out of seven.<ref name="anderson198403">{{cite news | url=https://archive.org/stream/creativecomputing-1984-03/Creative_Computing_v10_n03_1984_Mar#page/n57/mode/2up | title=Commodore | work=Creative Computing | date=March 1984 | access-date=February 6, 2015 | last=Anderson | first=John J. | page=56 | author-link=John J. Anderson}}</ref> Malfunctioning power bricks were notorious for damaging the RAM chips. Due to their higher density and single supply (+5V), they had less tolerance for over-voltage. The usually-failing [[78xx|voltage regulator]] could be replaced by piggybacking a new regulator on the board and fitting a heat sink on top.<ref>{{cite web|url=https://www.youtube.com/watch?v=vWP_ELDb0Ls| archive-url=https://ghostarchive.org/varchive/youtube/20211211/vWP_ELDb0Ls| archive-date=2021-12-11 | url-status=live|title=Commodore C64 Dangerous Wedge PSU Repair|website=[[YouTube]]|access-date=May 13, 2021|date=November 1, 2020}}{{cbignore}}</ref> The original [[Power supply unit (computer)|PSU]] on early-1982 and 1983 machines had a 5-pin connector which could accidentally be plugged into the computer's video output. Commodore later changed the design, omitting the resin gel to reduce costs. The following model, the Commodore 128, used a larger, improved power supply which included a fuse. The power supply for the [[Commodore REU]] was similar to that of the Commodore 128, providing an upgrade for customers purchasing the accessory. === Specifications === ==== Internal hardware ==== * Microprocessor CPU: ** [[MOS Technology 6510]]/8500 (the 6510/8500 is a modified [[MOS Technology 6502|6502]] with an integrated 6-bit I/O port) ** Clock speed: {{nowrap|0.985 MHz ([[PAL]])}} or {{nowrap|1.023 MHz ([[NTSC]])}} * Video: [[MOS Technology VIC-II]] 6567/8562 (NTSC), 6569/8565 (PAL) ** 16 colors<ref name="the-commodore-zone.com">{{cite web|url=http://www.the-commodore-zone.com/articlelive/articles/88/6/Software-Superstars/Page6.html |title=Software Superstars |website=The-commodore-zone.com |date=December 5, 2007 |access-date=March 18, 2017}}</ref><!--to be listed--> ** Text mode: 40×25 characters; 256 user-defined chars (8×8 [[pixel]]s, or 4×8 in multicolor mode); or extended background color; 64 user-defined chars with 4 background colors, 4-bit color RAM defines foreground color ** Bitmap modes: 320×200 (2 unique colors in each 8×8 pixel block),<ref name="Rautiainen">{{cite web| url=http://www.devili.iki.fi/Computers/Commodore/C64/Programmers_Reference/Chapter_3/page_123.html |title=Programmers_Reference|last=Rautiainen|first=Sami|access-date=March 23, 2011}}</ref> 160×200 (3 unique colors + 1 common color in each 4×8 block)<ref name="Rautiainen"/> ** 8 hardware [[sprite (computer graphics)|sprites]] of 24×21 pixels (12×21 in multicolor mode) ** Smooth scrolling, [[raster interrupt]]s * Sound: [[MOS Technology SID|MOS Technology 6581/8580 SID]] ** 3-channel{{r|the-commodore-zone.com}} [[synthesizer]] with programmable [[ADSR envelope]] ** 8 [[octave]]s ** 4 [[waveform]]s per audio channel: [[Triangle wave|triangle]], [[Sawtooth wave|sawtooth]], [[Square wave (waveform)|variable pulse]], [[white noise|noise]] ** [[Oscillator sync]]hronization, [[ring modulation]] ** Programmable filter: [[high-pass filter|high pass]], [[low-pass filter|low pass]], [[band-pass filter|band pass]], [[Band-stop filter|notch filter]] * Input/Output: Two [[MOS Technology CIA|6526 Complex Interface Adapters]] ** 16 bit parallel I/O ** 8 bit serial I/O ** 24-hours (AM/PM) Time of Day clock (TOD), with programmable [[alarm clock]]<ref>{{cite web|url=http://www.6502.org/documents/datasheets/mos/mos_6526_cia.pdf |archive-url=https://web.archive.org/web/20081204114028/http://www.6502.org/documents/datasheets/mos/mos_6526_cia.pdf |archive-date=2008-12-04 |url-status=live|title=MOS 6526 CIA datasheet (PDF format)|website=6502.org}}</ref> ** 16 bit interval timers * RAM: ** 64 KB, of which 38 KB were available for BASIC programs ** 1024 [[nybble]]s{{r|prg|p=262}} color RAM (memory allocated for screen color data storage)<ref name="Rautiainen_Service_Manual">{{cite web| url=http://www.devili.iki.fi/Computers/Commodore/C64/Service_Manual/Page_08.html |title=Service_Manual: RAM Control Logic.|last=Rautiainen|first=Sami|access-date=March 13, 2011}}</ref> ** Expandable to 320 KB with [[Commodore REU|Commodore 1764]] 256 KB [[Commodore REU|RAM Expansion Unit]] (REU); although only 64 KB directly accessible; REU used mostly for the [[GEOS (8-bit operating system)|GEOS]]. REUs of 128 KB and 512 KB, originally designed for the C128, were also available, but required the user to buy a stronger power supply from some third party supplier; with the 1764 this was included. [[Creative Micro Designs]] also produced a 2 [[megabyte|MB]] REU for the C64 and C128, called the 1750 XL. The technology actually supported up to 16 MB, but 2 MB was the biggest one officially made. Expansions of up to 16 MB were also possible via the CMD [[SuperCPU]]. * ROM: ** {{nowrap|20 KB}} ({{nowrap|9 KB}} [[Commodore BASIC]] 2.0; {{nowrap|7 KB}} [[KERNAL]]<!-- the BASIC continues into the upper ROM chip-->; {{nowrap|4 KB}} character generator, providing two {{nowrap|2 KB}} character sets) ==== Input/output (I/O) ports and power supply ==== [[File:Commodore-64-Computer-BL.jpg|thumb|right|upright=1.4|Commodore 64 ports (from left: Joy1, Joy2, Power switch and jack, ROM cartridge, RF-adj, RF modulator, A/V, Serial 488 bus, Tape, User)]] * I/O ports:<ref name="computermuseum_li-Commodore64-Back">{{cite web|title=empty|url=http://www.computermuseum.li/Testpage/Commodore64-Back.jpg|url-status=dead|archive-url=https://web.archive.org/web/20100216022431/http://www.computermuseum.li/Testpage/Commodore64-Back.jpg|archive-date=February 16, 2010}} 090505 computermuseum.li</ref>{{better source needed|reason=This is just an image with no supporting information, e.g. provenance and to confirm it's actually a C64|date=August 2021}} ** [[ROM cartridge]] expansion slot (44-pin slot for [[edge connector]] with 6510 CPU address/data bus lines and control signals, as well as GND and voltage pins;<ref>{{cite web|url=http://www.hardwarebook.info/C64_Cartridge_Expansion|title=The Hardware Book|access-date=November 17, 2014}}</ref> used for program modules and memory expansions, among others) ** Integrated [[RF modulator]] television antenna output via an [[RCA connector]]. The used channel could be adjusted from number 36 with the [[potentiometer]] to the left. ** 8-pin [[DIN connector]] containing [[composite video]] output, separate [[S-Video|Y/C]] outputs and sound input/output. This is a 262° horseshoe version of the plug, rather than the 270° circular version. Early C64 units (with motherboard Assy 326298) use a 5-pin DIN connector that carries composite video and luminance signals, but lacks a chroma signal.<ref name="Carlsen">{{cite web|url=http://project64.c64.org/hw/avconnect.txt|title=C64 video port|last=Carlsen|first=Ray|access-date=September 13, 2008|archive-date=June 29, 2018|archive-url=https://web.archive.org/web/20180629085250/http://project64.c64.org/hw/avconnect.txt|url-status=dead}}</ref> ** [[Commodore bus|Serial bus]] (proprietary serial version of [[IEEE-488]], 6-pin DIN plug) for CBM printers and disk drives ** [[Commodore PET|PET]]-type [[Commodore Datasette]] 300 [[baud]] tape interface (edge connector with digital cassette motor/read/write/key-sense signals), Ground and +5V DC lines. The cassette motor is controlled by a +5V DC signal from the 6510 CPU. The 9V AC input is transformed into unregulated 6.36V DC<ref name="zimmers_250469-rev_A-right">{{cite web|title=250469 rev.A right|url=http://www.zimmers.net/anonftp/pub/cbm/schematics/computers/c64/250469-rev.A-right.gif}} 100610 zimmers.net</ref> which is used to actually power the cassette motor.<ref name="zimmers_250469-rev_A-left">{{cite web|title=250469 rev.A left|url=http://www.zimmers.net/anonftp/pub/cbm/schematics/computers/c64/250469-rev.A-left.gif}} 100610 zimmers.net</ref> ** User port (edge connector with [[Transistor-transistor logic|TTL]]-level signals, for modems and so on; byte-parallel signals which can be used to drive third-party parallel printers, among other things, 17 logic signals, 7 Ground and voltage pins, including 9V AC) ** 2 × screwless [[D-subminiature|DE9M]] [[game controller]] ports ([[Atari joystick port|compatible with Atari 2600 controllers]]), each supporting five digital inputs and two analog inputs. Available peripherals included digital [[joystick]]s, analog [[paddle (game controller)|paddles]], a [[light pen]], the Commodore [[Commodore 1351|1351 mouse]], and graphics tablets such as the [[KoalaPad]]. * Power supply: ** 5[[Volt|V]] [[Direct current|DC]] and 9V [[Alternating current|AC]] from an external "power brick", attached to a 7-pin female DIN-connector on the computer.<ref name="allpinouts_org-Commodore_C64_Power_Supply">{{cite web|url=http://www.allpinouts.org/index.php/Commodore_C64_Power_Supply|title=Commodore C64 Power Supply Connector Pinout – AllPinouts}} 090505 allpinouts.org</ref> The {{nowrap|9 volt AC}} is used to supply power via a [[charge pump]] to the SID sound generator chip, provide {{nowrap|6.8V}} via a rectifier to the cassette motor, a "0" pulse for every positive half wave to the time-of-day (TOD) input on the CIA chips, and {{nowrap|9 volts AC}} directly to the user-port. Thus, as a minimum, a {{nowrap|12 V}} [[Square wave (waveform)|square wave]] is required. But a {{nowrap|9 V}} [[sine wave]] is preferred.<ref name="zimmers_net-250469-rev_A-left">{{cite web|title=Commodore-64 BN/E 250469 schematic (left)|url=http://www.zimmers.net/anonftp/pub/cbm/schematics/computers/c64/250469-rev.A-left.gif}} 090519 zimmers.net</ref><ref name="zimmers_net-250469-rev_A-right">{{cite web |title=Commodore-64 BN/E 250469 schematic (right)|url=http://www.zimmers.net/anonftp/pub/cbm/schematics/computers/c64/250469-rev.A-right.gif}} 090519 zimmers.net</ref>{{better source needed|reason=These are just images, with no supporting information especially provenance|date=August 2021}} ==== Memory map ==== {| class="wikitable" |- ! Address || Size<br />[KB] !colspan=4| Description |- |align="right"| 0x0000 <!--0x7FFF--> |align="right"| 32 |colspan=3| RAM ||<ref name="c64map">{{cite web|title=Commodore 64 memory map|url=http://sta.c64.org/cbm64mem.html|date=February 4, 2013|access-date=June 16, 2013|publisher=sta.c64.org}}</ref> |- |align="right"| 0x8000 <!--0x9FFF--> |align="right"| 8 |colspan=2| RAM || [[ROM cartridge|Cartridge ROM]] ||{{r|c64map}} |- |align="right"| 0xA000 <!--0xBFFF--> |align="right"| 8 |colspan=2| RAM || [[Commodore BASIC|BASIC]] ROM ||{{r|c64map}} |- |align="right"| 0xC000<!--0x1FFF--> |align="right"| 4 |colspan=3| RAM ||{{r|c64map}} |- |align="right"| 0xD000 <!--0xDFFF--> |align="right"| 4 | RAM || [[Memory-mapped I/O|I/O]]/Color RAM || [[PETSCII|Character ROM]] ||{{r|c64map}} |- |align="right"| 0xE000 <!--0xBFFF--> |align="right"| 8 |colspan=2| RAM || [[KERNAL]] ROM ||{{r|c64map}} |} Note that even if an I/O chip like the VIC-II only uses 64 positions in the memory address space, it will occupy 1,024 addresses because some address bits are left undecoded.{{r|c64map}} ==== Peripherals ==== {{See also|Commodore 64 peripherals}} <gallery mode=packed heights=170px> Commodore-64-1541-Floppy-Drive-01.jpg|[[Commodore 1541]] floppy drive Commodore 1541 white.jpg|Commodore 1541C floppy drive C64-IMG 5372.jpg|Commodore 1541-II floppy drive Commodore-Datasette-C2N-Mk1-Front.jpg|[[Commodore 1530]] Datasette Commodore Matrixdrucker MPS-802 (weißen hintergrund).jpg|Commodore MPS-802 [[dot matrix printer]] CommodoreVICModem.jpg|Commodore VIC-Modem Commodore blockomaus.jpg|[[Commodore 1351]] mouse Commodore 1702 (made by JVC) front.jpg|Commodore 1702 video monitor Commodore 1581 Disk Drive Front.jpg|Commodore 1581 3.5" double-sided floppy drive </gallery> === Manufacturing cost === [[Vertical integration]] was the key to keeping Commodore 64 production costs low. At the introduction in 1982, the production cost was US$135 and the retail price US$595. In 1985, the retail price went down to US$149 (US${{Inflation|US|149|1985|r=-1|fmt=c}} today) and the production costs were believed to be somewhere between US$35–50 ({{nowrap|{{circa| US${{Inflation|US|35|1985|r=-1|fmt=c}}–{{Inflation|US|50|1985|r=-1|fmt=c}} today).}} }} Commodore would not confirm this cost figure. Dougherty of the [[Berkeley Softworks]] estimated the costs of the Commodore 64 parts based on his experience at [[Mattel]] and [[Imagic]]. {| class="wikitable" |+Cost{{r|ieee85}} |- ! Count || Price in 1985 [[United States dollar|US$]] || Part |- | 3 || 1 || ROMs{{r|ieee85}} |- | 8 || 1.85 || [[Dynamic random-access memory|Dynamic RAMs]] |- | || 4 || SID (sound) chip |- | || 4 || VIC-II (graphics) chip |- | || 3 || [[RF modulator]] package |- | || 1–2 || [[MOS Technology 6510|6510]] 8-bit microprocessor |- | || 5 || A handful of [[Transistor–transistor logic|TTL]], buffers, power regulators and capacitors |- | || 10 max || Keyboard |- | || 1–2 || [[Printed circuit board]] |- | || 1–2 || Plastic case |- | || 5–10 || Power supply and miscellaneous connectors |- | || 1–2 || Packaging and manual |- | Total: || 52.8–61.8 |} To lower costs, TTL chips were replaced with less expensive custom chips and ways to increase the [[Semiconductor device fabrication#Device test|yields]] on the sound and graphics chips were found. The video chip [[MOS Technology VIC-II#List of VIC-II versions|6567]] had the ceramic package replaced with plastic but heat dissipation demanded a redesign of the chip and the development of a plastic package that can dissipate heat as well as ceramic.{{r|ieee85}} === {{anchor|Newer compatible hardware}}Compatible hardware === C64 enthusiasts were developing new hardware in 2008, including [[Ethernet]] cards,<ref name="Dunkels">{{cite web|url=http://www.dunkels.com/adam/tfe/|title=The Final Ethernet – C64 Ethernet Cartridge|last=Dunkels|first=Adam|access-date=September 13, 2008}}</ref> specially-adapted [[hard disk]]s and [[flash memory|flash]] card interfaces (sd2iec).<ref name="sd2iec">{{cite web|url=http://www.c64-wiki.com/index.php/SD2IEC |title=SD2IEC |publisher=C64-Wiki |access-date=March 18, 2017}}</ref> A-SID, which gives the C-64 a [[Wah-wah (music)|wah-wah effect]], was introduced in 2022.<ref>{{Cite web |last=Barela |first=Anne |date=2022-10-12 |title=A-SID: turn your Commodore 64 into a wah effect #VintageComputing #Music |url=https://blog.adafruit.com/2022/10/12/a-sid-turn-your-commodore-64-into-a-wah-effect-vintagecomputing-music/ |access-date=2022-10-20 |website=Adafruit Industries - Makers, hackers, artists, designers and engineers! |language=en-US}}</ref>
Summary:
Please note that all contributions to Niidae Wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Encyclopedia:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Search
Search
Editing
Commodore 64
(section)
Add topic