Commodore 128
Encyclopedia
The Commodore 128 home
Home computer
Home computers were a class of microcomputers entering the market in 1977, and becoming increasingly common during the 1980s. They were marketed to consumers as affordable and accessible computers that, for the first time, were intended for the use of a single nontechnical user...

/personal computer
Personal computer
A personal computer is any general-purpose computer whose size, capabilities, and original sales price make it useful for individuals, and which is intended to be operated directly by an end-user with no intervening computer operator...

 was the last 8-bit
8-bit
The first widely adopted 8-bit microprocessor was the Intel 8080, being used in many hobbyist computers of the late 1970s and early 1980s, often running the CP/M operating system. The Zilog Z80 and the Motorola 6800 were also used in similar computers...

 machine commercially released by Commodore Business Machines
Commodore International
Commodore is the commonly used name for Commodore Business Machines , the U.S.-based home computer manufacturer and electronics manufacturer headquartered in West Chester, Pennsylvania, which also housed Commodore's corporate parent company, Commodore International Limited...

 (CBM). Introduced in January 1985 at the CES
Consumer Electronics Show
The International Consumer Electronics Show is a major technology-related trade show held each January in the Las Vegas Convention Center, Las Vegas, Nevada, United States. Not open to the public, the Consumer Electronics Association-sponsored show typically hosts previews of products and new...

 in Las Vegas
Las Vegas metropolitan area
The Las Vegas Valley is the heart of the Las Vegas-Paradise, NV MSA also known as the Las Vegas–Paradise–Henderson MSA which includes all of Clark County, Nevada, and is a metropolitan area in the southern part of the U.S. state of Nevada. The Valley is defined by the Las Vegas Valley landform, a ...

, it appeared three years after its predecessor, the bestselling Commodore 64
Commodore 64
The Commodore 64 is an 8-bit home computer introduced by Commodore International in January 1982.Volume production started in the spring of 1982, with machines being released on to the market in August at a price of US$595...

.

The C128 was a significantly expanded successor to the C64 and unlike the earlier Commodore Plus/4
Commodore Plus/4
The Commodore Plus/4 was a home computer released by Commodore International in 1984. The "Plus/4" name refers to the four-application ROM resident office suite ; it was billed as "the productivity computer with software built-in"...

, nearly full compatibility with the C64 was retained, in both hardware and software. The new machine featured 128 KB
Kilobyte
The kilobyte is a multiple of the unit byte for digital information. Although the prefix kilo- means 1000, the term kilobyte and symbol KB have historically been used to refer to either 1024 bytes or 1000 bytes, dependent upon context, in the fields of computer science and information...

 of RAM, in two 64 KB banks and an 80-column RGBI video output (driven by the 8563 VDC chip with 16 KB dedicated video RAM), as well as a substantially redesigned case and keyboard
Computer keyboard
In computing, a keyboard is a typewriter-style keyboard, which uses an arrangement of buttons or keys, to act as mechanical levers or electronic switches...

. Also included was a Zilog Z80 CPU which allowed the C128 to run CP/M
CP/M
CP/M was a mass-market operating system created for Intel 8080/85 based microcomputers by Gary Kildall of Digital Research, Inc...

, as an alternate to the usual Commodore BASIC environment.

The primary hardware designer of the C128 was Bil Herd
Bil Herd
Bil Herd was a designer of 8-bit home computers while working for Commodore Business Machines in the early-to-mid 1980s. After first acting as the principal engineer on the Commodore Plus/4, C16/116, C264, and C364 machines, Herd designed the significantly more successful Commodore 128, a dual-CPU,...

, who had worked on the Plus/4. Other hardware engineers were Dave Haynie
Dave Haynie
Dave Haynie is the former Commodore International chief engineer on high end and advanced projects. He is still quite vocal in the Amiga community.-Beginnings:...

 and Frank Palaia, while the IC design work was done by Dave DiOrio. The main Commodore system software was developed by Fred Bowen and Terry Ryan, while the CP/M subsystem was developed by Von Ertwine.

Technical overview

The C128's keyboard included four cursor keys (previous Commodores had two, which required using the shift key to move the cursor up or left. These were retained on the 128, for C64 compatibility), an Alt key
Alt key
The Alt key on a computer keyboard is used to change the function of other pressed keys. Thus, the Alt key is a modifier key, used in a similar fashion to the Shift key. For example, simply pressing "A" will type the letter a, but if you hold down either Alt key while pressing A, the computer...

, Help key
Help key
A Help key, found in the shape of a dedicated key explicitly labeled "Help", or as another key, typically one of the function keys, on a computer keyboard, is a key which, when pressed, produces information on the screen/display to aid the user in his/her current task, such as using a specific...

, Esc key
Esc key
On computer keyboards, the Esc key is a key labeled Esc or Escape that is used to generate the ASCII Escape character , the character code traditionally used to initiate an escape sequence...

, Tab key
Tab key
Tab key on a keyboard is used to advance the cursor to the next tab stop.- Origin :The word tab derives from the word tabulate, which means "to arrange data in a tabular, or table, form"...

 (not present on prior models) and a numeric keypad. The lack of a numeric keypad, Alt key
Alt key
The Alt key on a computer keyboard is used to change the function of other pressed keys. Thus, the Alt key is a modifier key, used in a similar fashion to the Shift key. For example, simply pressing "A" will type the letter a, but if you hold down either Alt key while pressing A, the computer...

 and Esc key
Esc key
On computer keyboards, the Esc key is a key labeled Esc or Escape that is used to generate the ASCII Escape character , the character code traditionally used to initiate an escape sequence...

 on the C-64 were an issue with some CP/M productivity software when used with the 64's Z-80 cartridge. Many of the added keys matched ones present on the IBM PC
IBM PC
The IBM Personal Computer, commonly known as the IBM PC, is the original version and progenitor of the IBM PC compatible hardware platform. It is IBM model number 5150, and was introduced on August 12, 1981...

's keyboard. While the 128's 40 column mode closely duplicated that of the C64, an extra 1K of color RAM was made available to the programmer, as it was multiplexed through memory address 1. The 128's power supply was vastly improved over the 64's unreliable design, being much larger and equipped with cooling vents and a replaceable fuse. Instead of the single 6510
MOS Technology 6510
thumb|300px|Image of the internals of a [[Commodore 64]] showing the 6510 CPU . The chip on the right is the [[MOS Technology SID|6581 SID]]...

 microprocessor
Microprocessor
A microprocessor incorporates the functions of a computer's central processing unit on a single integrated circuit, or at most a few integrated circuits. It is a multipurpose, programmable device that accepts digital data as input, processes it according to instructions stored in its memory, and...

 of the C64, the C128 incorporated a two-CPU design. The primary CPU, the 8502
MOS Technology 8502
The MOS Technology 8502 was an 8-bit microprocessor designed by MOS Technology and used in the Commodore 128. Based on the MOS 6510 that was used in the Commodore 64, the 8502 added the ability to run at a double clock rate, in addition to the standard 1.024 MHz rate used by the Commodore 64.Since...

, was a slightly improved version of the 6510 capable of being clocked at 2 MHz. The second CPU was a Zilog Z80
Zilog Z80
The Zilog Z80 is an 8-bit microprocessor designed by Zilog and sold from July 1976 onwards. It was widely used both in desktop and embedded computer designs as well as for military purposes...

 which was used to run CP/M
CP/M
CP/M was a mass-market operating system created for Intel 8080/85 based microcomputers by Gary Kildall of Digital Research, Inc...

 software, as well as to initiate operating mode selection at boot time. The two processors could not run concurrently, thus the C128 was not a multiprocessing
Multiprocessing
Multiprocessing is the use of two or more central processing units within a single computer system. The term also refers to the ability of a system to support more than one processor and/or the ability to allocate tasks between them...

 system.

The C128's complex architecture includes four differently accessed kinds of RAM (128 kB main RAM, 64 kB VDC Video RAM, 2 kNibbles VIC-II Color RAM, 2 kB floppy drive RAM, 128 or 512 kB REU RAM), two CPUs (main 8502, Z80 for CP/M; the 128D also incorporated a 6502 in the disk drive) and two different video chips (VIC-IIe and VDC) for its various operational modes.

The C128 had three operating modes
Mode (computer interface)
In user interface design, a mode is a distinct setting within a computer program or any physical machine interface, in which the same user input will produce perceived different results than it would in other settings....

: C128 Mode (native mode
Native mode
The term native mode or native code is used in computing in two related senses.*to describe something running on a computer natively or in native mode meaning that it is running without any external support as contrasted to running in emulation....

), which ran at 1 or 2 MHz with the 8502 CPU and had both 40- and 80-column text mode
Text mode
Text mode is a kind of computer display mode in which the content of the screen is internally represented in terms of characters rather than individual pixels. Typically, the screen consists of a uniform rectangular grid of character cells, each of which contains one of the characters of a...

s available; CP/M Mode, which used the Z80 in either 40- or 80-column text mode; and C64 Mode, which was nearly 100 percent compatible with the earlier computer. Selection of these modes was implemented via the Z80 chip. The Z80 controls the bus on initial boot-up and checks to see if there is a CP/M disk in the drive, if there are any C64/C128 cartridges present, and if the Commodore key (C64-mode selector) is active on boot-up. Based on what it finds, it will switch to the appropriate mode of operation.

C128 Mode

While the C64's graphics and sound capabilities were generally considered excellent, the response to the Plus/4, which was perceived by the Commodore press as a follow-on model, was that of disappointment. Repeated recommendations were made for a new computer called the "C-128" with increased RAM capacity, an 80-column display as was standard in business computers, a new BASIC programming language that made it easy for programmers to use the computer's graphics and sound without resorting to PEEK and POKEs, a new disk drive that improved upon the 1541
Commodore 1541
The Commodore 1541 , made by Commodore International, was the best-known floppy disk drive for the Commodore 64 home computer. The 1541 was a single-sided 170 kilobyte drive for 5¼" disks...

's abysmal transfer rate, as well as total C-64 compatibility

The designers of the C128 succeeded in addressing most of these concerns. A new chip, the VDC
MOS Technology 8563
The 8563 Video Display Controller was an integrated circuit produced by MOS Technology. It was used in the Commodore 128 computer to generate an 80-column RGB video display...

, provided the C128 with an 80-column color CGA
Color Graphics Adapter
The Color Graphics Adapter , originally also called the Color/Graphics Adapter or IBM Color/Graphics Monitor Adapter, introduced in 1981, was IBM's first color graphics card, and the first color computer display standard for the IBM PC....

-compatible display (also called RGBI for red-green-blue plus intensity). The new 8502
MOS Technology 8502
The MOS Technology 8502 was an 8-bit microprocessor designed by MOS Technology and used in the Commodore 128. Based on the MOS 6510 that was used in the Commodore 64, the 8502 added the ability to run at a double clock rate, in addition to the standard 1.024 MHz rate used by the Commodore 64.Since...

 microprocessor was completely backward-compatible with the C64's 6510
MOS Technology 6510
thumb|300px|Image of the internals of a [[Commodore 64]] showing the 6510 CPU . The chip on the right is the [[MOS Technology SID|6581 SID]]...

, but could run at double the speed if desired. However, the VIC-II chip which controlled the 40-column display could not operate at the faster clock rate, so the 40 column display appears jumbled in FAST mode. The C64's BASIC 2.0 was replaced with BASIC 7.0, which included structured programming
Structured programming
Structured programming is a programming paradigm aimed on improving the clarity, quality, and development time of a computer program by making extensive use of subroutines, block structures and for and while loops - in contrast to using simple tests and jumps such as the goto statement which could...

 commands from the Plus/4's BASIC 4.5, as well as keywords designed specifically to take advantage of the machine's capabilities. A sprite
Sprite (computer graphics)
In computer graphics, a sprite is a two-dimensional image or animation that is integrated into a larger scene...

 editor and machine language monitor were added. The screen editor part of the Kernal
KERNAL
The KERNAL is Commodore's name for the ROM-resident operating system core in its 8-bit home computers; from the original PET of 1977, followed by the extended but strongly related versions used in its successors; the VIC-20, Commodore 64, Plus/4, C16, and C128...

 was further improved to support a rudimentary windowing feature and was relocated to a separate ROM
Read-only memory
Read-only memory is a class of storage medium used in computers and other electronic devices. Data stored in ROM cannot be modified, or can be modified only slowly or with difficulty, so it is mainly used to distribute firmware .In its strictest sense, ROM refers only...

. In 80-column mode the editor took advantage of VDC features to provide blinking and underlined text, activated through escape codes.http://www.commodore.ca/manuals/128_system_guide/app-i.htm A hardware reset button was added to the system.

Two new disk drives were introduced in conjunction with the C128, the short-lived single-sided 1570
Commodore 1570
The Commodore 1570 was a 5¼" floppy disk drive for the Commodore 128 home/personal computer. It was a single-sided, 170KB version of the double-sided Commodore 1571, released as a stopgap measure when Commodore International was unable to provide large enough quantities of 1571s due to a shortage...

 and the dual-sided 1571
Commodore 1571
The Commodore 1571 was Commodore's high-end 5¼" floppy disk drive. With its double-sided drive mechanism, it had the ability to utilize double-sided, double-density floppy disks natively. This was in contrast to its predecessors, the 1541 and 1570, which could fully utilize such disks only if the...

. Later on, the 3.5 inch 1581
Commodore 1581
The Commodore 1581 is a 3½ inch double sided double density floppy disk drive made by Commodore Business Machines primarily for its C64 and C128 home/personal computers. The drive stores 800 kilobytes using an MFM encoding but format different from both MS-DOS , and the Amiga formats. With...

 was introduced. All of these drives were more reliable than the 1541 and promised much better performance via a new "burst mode" feature. The 1581 drive also had more on-board RAM than its predecessors, making it possible to open a larger number of files at one time. BASIC 7.0 included DLOAD and DSAVE commands to support loading and saving to disk without using the ",8" device number, and also a DIRECTORY command that read a disk's catalog information directly to screen memory without overwriting BASIC memory as in BASIC 2.0.

The C128 also had twice the RAM of the C64, and a far higher proportion was available for BASIC programming, due to the new MMU
Memory management unit
A memory management unit , sometimes called paged memory management unit , is a computer hardware component responsible for handling accesses to memory requested by the CPU...

 bank-switching chip. This allowed BASIC program code to be stored separately from variables, greatly enhancing the machine's ability to handle complex programs, speeding garbage collection
Garbage collection (computer science)
In computer science, garbage collection is a form of automatic memory management. The garbage collector, or just collector, attempts to reclaim garbage, or memory occupied by objects that are no longer in use by the program...

 and easing debugging for the programmer. An executing program could be STOPped, variable values inspected or altered in direct mode
Direct mode
Direct mode, also known as immediate mode is a computing term referring to the input of textual commands outside the context of a program. The command would be executed immediately and the results printed on screen, in contrast to programming mode where nothing would be executed until a specific...

, and program execution resumed with the variable table intact using BASIC's GOTO command.

The 128's ROM contained an easter egg
Easter egg
Easter eggs are special eggs that are often given to celebrate Easter or springtime.The oldest tradition is to use dyed or painted chicken eggs, but a modern custom is to substitute chocolate eggs, or plastic eggs filled with confectionery such as jelly beans...

: Entering the command "SYS 32800,123,45,6" in native mode reveals a 40-column screen with a listing of, and a message from, the machine's main developers. Also, entering the keywords QUIT or OFF will produce an "?UNIMPLEMENTED COMMAND ERROR". These commands are holdovers from the BASIC interpreter intended for a planned but never produced LCD-display portable computer
Commodore LCD
The Commodore LCD was an LCD-equipped laptop made by Commodore International. It was presented at the January 1985 Consumer Electronics Show, but never released...

 and were intended to exit from the BASIC interpreter and to ignore keyboard input during sensitive program execution, respectively.

The C128's greater hardware capabilities, especially the increased RAM, screen display resolution, and serial bus speed, made it the preferred platform for running the GEOS
GEOS (8-bit operating system)
GEOS is an operating system from Berkeley Softworks . Originally designed for the Commodore 64 and released in 1986, it provided a graphical user interface for this popular 8-bit computer.GEOS closely resembled early versions of Mac OS and included a graphical word processor and paint program...

 graphical operating system.

CP/M Mode

The second of the C128's two CPUs was the Zilog Z80
Zilog Z80
The Zilog Z80 is an 8-bit microprocessor designed by Zilog and sold from July 1976 onwards. It was widely used both in desktop and embedded computer designs as well as for military purposes...

, which allowed the C128 to run CP/M
CP/M
CP/M was a mass-market operating system created for Intel 8080/85 based microcomputers by Gary Kildall of Digital Research, Inc...

. The C128 was shipped with CP/M 3.0 (aka CP/M Plus, which was backward compatible with CP/M 2.2) and ADM31/3A terminal
Computer terminal
A computer terminal is an electronic or electromechanical hardware device that is used for entering data into, and displaying data from, a computer or a computing system...

 emulation. A CP/M cartridge had been available for the C64, but it was expensive and was limited to software on Commodore-formatted disks. To make a large application software library instantly available at launch, the Commodore 128 CP/M and accompanying 1571
Commodore 1571
The Commodore 1571 was Commodore's high-end 5¼" floppy disk drive. With its double-sided drive mechanism, it had the ability to utilize double-sided, double-density floppy disks natively. This was in contrast to its predecessors, the 1541 and 1570, which could fully utilize such disks only if the...

 floppy disk
Floppy disk
A floppy disk is a disk storage medium composed of a disk of thin and flexible magnetic storage medium, sealed in a rectangular plastic carrier lined with fabric that removes dust particles...

 drive was designed to run almost all Kaypro
Kaypro
Kaypro Corporation, commonly called Kaypro, was an American home/personal computer manufacturer of the 1980s. The company was founded by Non-Linear Systems to develop computers to compete with the then-popular Osborne 1 portable microcomputer...

-specific CP/M software without modification.
Unfortunately, the C128 ran CP/M noticeably slower than most dedicated CP/M systems, as the Z80 processor ran at an effective speed of only 2 MHz (instead of the more common 4 MHz), and because it used CP/M 3.0, whose complexity made it inherently slower than the earlier, more widespread, CP/M 2.2 system. From the source code of the C128 CP/M implementation, it is clear that the engineers originally planned to make it possible to run CP/M in the "fast" mode as well, with the 40-column output turned off and the Z80 running at an effective 4 MHz; however, this feature did not correctly function on the first generation C128 hardware.

An unusual feature of the C128 among CP/M systems was that some of the low-level BIOS
BIOS
In IBM PC compatible computers, the basic input/output system , also known as the System BIOS or ROM BIOS , is a de facto standard defining a firmware interface....

 services were executed by the 8502 instead of the Z80. The latter transferred control to the 8502 after having placed the pertinent parameter values in designated memory locations. The Z80 then turned itself off, being awoken by the 8502 at completion of the BIOS routine, with status value(s) available in RAM for inspection.

CP/M mode was very different from the operating environments Commodore users had become familiar with. While Commodore DOS
Commodore DOS
Commodore DOS, aka CBM DOS, was the disk operating system used with Commodore's 8-bit computers. Unlike most other DOS systems before or since—which are booted from disk into the main computer's own RAM at startup, and executed there—CBM DOS was executed internally in the drive: the DOS...

 was built into the ROM of Commodore disk drives and was usually accessed through BASIC, CP/M required the use of a boot diskette and required entry of terse commands inherited from minicomputer
Minicomputer
A minicomputer is a class of multi-user computers that lies in the middle range of the computing spectrum, in between the largest multi-user systems and the smallest single-user systems...

 platforms. CP/M programs tended to lack the user-friendly nature of most Commodore applications. Intended to give the new computer a large library of professional-grade business software that Commodore lacked, CP/M was long past its prime by the time of the 128's introduction. Perhaps because of this, CP/M was possibly the least-used of the 128's three operating modes.

C64 Mode

By incorporating the original C64 BASIC and kernal ROMs in their entirety (16 KB total), the C128 achieved almost 100 percent compatibility with the Commodore 64. The C64 mode can be accessed in one of three ways:
  • Hold down the Commodore logo key when booting the system
  • Enter the GO64 command in BASIC 7.0
  • Boot with a C64 cartridge plugged in


Grounding the cartridge port's /EXROM and/or /GAME lines will cause the computer to automatically start up in C64 mode. This feature faithfully duplicates the C64 behavior when a cartridge (such as Simons' BASIC) is plugged into the port and asserts either of these lines, but unlike the C64, where the Memory-map changing action of these lines is implemented directly in hardware, the C128's Z80 firmware startup code polls these lines on power-up and then switches modes as necessary. C128 native mode cartridges are recognized and started by the kernal polling defined locations in the memory map.

C64 mode almost exactly duplicated the features of a hardware 64; many of the 128's additional features were disabled or unavailable in this mode. The 80 column display, fast mode, MMU, and BASIC 7.0 were not available in 64 mode. The 4 cursor keys at the top of the keyboard were unrecognized, forcing the user to use the 64's cumbersome shifted key arrangement, which were included at the bottom of the 128 keyboard. Also ignored were the 128's numeric keypad and added top-row keys (the only top row keys that were functional in 64 mode were the f1-f8 keys above the keypad.) Some of these features could be turned back on by user software but most commercial programs would ignore them at best, or be completely nonfunctional with these user "wedge" programs in memory.

When in C64 mode, even the character (font) ROM changed from that of C128 mode. Early C128 prototypes had a single ROM, with a slightly improved character set over that of the C64. But some C64 programs read the character ROM as data, and would fail in various ways on a C128. Thus, the C128 was given a double-sized character ROM, which delivered the C128 font in C128 mode, the C64 font in C64 mode.

Some of the few C64 programs that fail on a C128 run correctly when the CAPS LOCK
Caps lock
Caps lock is a key on many computer keyboards. Pressing it sets an input mode in which typed letters are uppercase by default. The keyboard remains in caps lock mode until the key is pressed again...

key is pressed down (or the ASCII/National key on international C128 models). This has to do with the larger built-in I/O port of the C128's CPU. Whereas the SHIFT LOCK key found on both C64 and C128 is simply a mechanical latch for the left SHIFT key, the CAPS LOCK key on the C128 can be read via the 8502
MOS Technology 8502
The MOS Technology 8502 was an 8-bit microprocessor designed by MOS Technology and used in the Commodore 128. Based on the MOS 6510 that was used in the Commodore 64, the 8502 added the ability to run at a double clock rate, in addition to the standard 1.024 MHz rate used by the Commodore 64.Since...

's built-in I/O port. A few C64 programs are confused by this extra I/O bit; keeping the CAPS LOCK key in the down position will force the I/O line low, matching the C64's configuration and resolving the issue.

A handful of C64 programs wrote to $
Hexadecimal
In mathematics and computer science, hexadecimal is a positional numeral system with a radix, or base, of 16. It uses sixteen distinct symbols, most often the symbols 0–9 to represent values zero to nine, and A, B, C, D, E, F to represent values ten to fifteen...

D030 (53296), often as part of a loop initializing the VIC-II
MOS Technology VIC-II
The VIC-II , specifically known as the MOS Technology 6567/8562/8564 , 6569/8565/8566 , is the microchip tasked with generating Y/C/composite video graphics and DRAM refresh signals in the Commodore 64 and C128 home computers.Succeeding MOS's original VIC , the VIC-II was one of the two chips...

 chip registers. This memory-mapped register, unused in the C64, determined the system clock rate. Since this register was fully functional in C64 mode, an inadvertent write could scramble the 40-column display by switching the CPU over to 2–MHz, at which clock rate the VIC-II video processor could not produce a coherent display. Fortunately, few programs suffered from this flaw. In July 1986, COMPUTE!'s Gazette
COMPUTE!'s Gazette
COMPUTE!'s Gazette was a computer magazine of the 1980s, directed at users of Commodore's 8-bit home computers. Publishing its first issue in July 1983, the Gazette was a Commodore-only daughter magazine of the computer hobbyist magazine COMPUTE!....

published a type-in program
Type-in program
A type-in program, or just type-in, is a computer program listing printed in a computer magazine or book, meant to be typed in by the reader in order to run the program on a computer....

 that exploited this difference by using a raster interrupt
Raster interrupt
A raster interrupt is a computer interrupt signal that is used for display timing purposes. It is usually, though not always, generated by the system's graphics chip....

 to enable fast mode when the bottom of the visible screen was reached, and then disable it when screen rendering began again at the top. By using the higher clock rate during the vertical blank period, standard video display was maintained while increasing overall execution speed by about 20 percent.

An easy way to differentiate between a genuine C64 and a C128 operating in C64 mode, typically used from within a running program, is to write a value different from $
Hexadecimal
In mathematics and computer science, hexadecimal is a positional numeral system with a radix, or base, of 16. It uses sixteen distinct symbols, most often the symbols 0–9 to represent values zero to nine, and A, B, C, D, E, F to represent values ten to fifteen...

FF (255)
to memory address
Memory address
A digital computer's memory, more specifically main memory, consists of many memory locations, each having a memory address, a number, analogous to a street address, at which computer programs store and retrieve, machine code or data. Most application programs do not directly read and write to...

 $D02F (53295), a register which is used to decode the extra keys of the C128 (the numerical keypad and some other keys). On the 64 this memory location will always contain the value $FF no matter what is written to it, but on a C128 in 64 mode the value of the location—a memory-mapped register—can be changed. Thus, checking the location's value after writing to it will reveal the actual hardware platform.

RAM setup

To handle the relatively large amounts of ROM
Read-only memory
Read-only memory is a class of storage medium used in computers and other electronic devices. Data stored in ROM cannot be modified, or can be modified only slowly or with difficulty, so it is mainly used to distribute firmware .In its strictest sense, ROM refers only...

 and RAM
Ram
-Animals:*Ram, an uncastrated male sheep*Ram cichlid, a species of freshwater fish endemic to Colombia and Venezuela-Military:*Battering ram*Ramming, a military tactic in which one vehicle runs into another...

, tenfold the 8502's 64 KB address space, the C128 used the 8722 MMU
Memory management unit
A memory management unit , sometimes called paged memory management unit , is a computer hardware component responsible for handling accesses to memory requested by the CPU...

 chip to create different memory maps, in which different combinations of RAM and ROM would appear according to bit patterns written into the MMU's confguration register at memory address
Memory address
A digital computer's memory, more specifically main memory, consists of many memory locations, each having a memory address, a number, analogous to a street address, at which computer programs store and retrieve, machine code or data. Most application programs do not directly read and write to...

 $FF00.

Commodore's RAM Expansion Units
Commodore REU
Commodore's RAM Expansion Unit range of external RAM add-ons for their Commodore 64/128 home computers was announced at the same time as the C128. The REUs came in three models, initially the 1700 and 1750 , and later the 1764...

 utilized an external DMA
Direct memory access
Direct memory access is a feature of modern computers that allows certain hardware subsystems within the computer to access system memory independently of the central processing unit ....

 controller to read and write one or more bytes (up to entire ranges of bytes) between the C-128's RAM and the RAM in the expansion unit.

Another feature of the memory management unit was to allow relocation of Zero page
Zero page
The zero page is the series of memory addresses at the absolute beginning of a computer's address space; that is, the page whose starting address is zero. The size of a "page" depends on the context, and the significance of zero-page memory versus higher addressed memory is highly dependent on...

 and the Stack
Stack (data structure)
In computer science, a stack is a last in, first out abstract data type and linear data structure. A stack can have any abstract data type as an element, but is characterized by only three fundamental operations: push, pop and stack top. The push operation adds a new item to the top of the stack,...

, which, thanks to the Direct Page register.

Commodore 128D

Late in 1985, Commodore released to the European market a new version of the C128 with a redesigned chassis. Called the Commodore 128D, this new European model featured a plastic chassis with a carrying handle on the side, incorporated a 1571 disk drive into the main chassis, replaced the built-in keyboard with a detachable one, and added a cooling fan. The keyboard featured two folding legs for changing the typing angle.

In the latter part of 1986, Commodore released a version of the C128D in North America and Europe referred to as the C128DCR ("cost reduced"). The DCR model featured a stamped steel chassis in place of the plastic version of the C128D (with no carrying handle), a modular switching power supply similar to that of the C128D, as well as a removable keyboard and internal 1571 floppy drive. On the mainboard, Commodore consolidated some of the components to save production costs and replaced the 8563 video controller with the more technically advanced MOS Technology 8568
MOS Technology 8568
The 8568 Video Display Controller was MOS Technology's graphics processor responsible for the 80 column or RGBI display on D[CR] models of the Commodore 128 personal computer...

 (which was also fitted to a few D-models). As a cost-saving measure, the cooling fan
Computer cooling
Computer cooling is required to remove the waste heat produced by computer components, to keep components within their safe operating temperature limits.Various cooling methods help to improve processor performance or reduce the noise of cooling fans....

 that was fitted to the D model was removed, although the mounting provisions on the power supply subchassis were retained.

Inside, the C128DCR ROMs, the "1986 ROMs," so-named from the copyright date displayed on the startup screen, contained fixes for several bugs —including an infamous one where the 'Q' character would remain lowercase when CAPS LOCK was active—and the 8568 VDC was equipped with 64 KB of video RAM—the maximum amount addressable by the chip, equal to four times that of the original C128. The increase in video RAM made it possible, among other things, to generate higher-resolution graphics with a more flexible color palette, although little commercial software took advantage of this capability.

Despite the improvement in the RGB video capabilities, Commodore did not enhance BASIC 7.0 with the ability to manipulate RGB graphics. Driving the VDC in graphics mode continued to require the use of calls to screen editor ROM primitives
Machine code
Machine code or machine language is a system of impartible instructions executed directly by a computer's central processing unit. Each instruction performs a very specific task, typically either an operation on a unit of data Machine code or machine language is a system of impartible instructions...

 (or their assembly language
Assembly language
An assembly language is a low-level programming language for computers, microprocessors, microcontrollers, and other programmable devices. It implements a symbolic representation of the machine codes and other constants needed to program a given CPU architecture...

 equivalents), or by using third-party BASIC language extensions. The most popular such toolkit was Free Spirit Software's "BASIC 8
BASIC 8
BASIC 8 — "The Enhanced Graphics System For The C128" — developed by Walrusoft of Gainesville, Florida and published in 1986 by Patech Software of Somerset, New Jersey, USA, was an extension of Commodore's BASIC 7.0 for the C128 home/personal computer...

", which added high-resolution VDC graphics commands to BASIC 7.0. BASIC 8 was available on two disks (editor disk and runtime disk) and with a ROM chip for installation in the C128's internal Function ROM socket.

Market performance

Because the C128 would run virtually all C64 software, and because the next-generation, 32
32-bit
The range of integer values that can be stored in 32 bits is 0 through 4,294,967,295. Hence, a processor with 32-bit memory addresses can directly access 4 GB of byte-addressable memory....

/16-bit
16-bit
-16-bit architecture:The HP BPC, introduced in 1975, was the world's first 16-bit microprocessor. Prominent 16-bit processors include the PDP-11, Intel 8086, Intel 80286 and the WDC 65C816. The Intel 8088 was program-compatible with the Intel 8086, and was 16-bit in that its registers were 16...

 home computers, primarily the Commodore Amiga and Atari ST
Atari ST
The Atari ST is a home/personal computer that was released by Atari Corporation in 1985 and commercially available from that summer into the early 1990s. The "ST" officially stands for "Sixteen/Thirty-two", which referred to the Motorola 68000's 16-bit external bus and 32-bit internals...

, were gaining ground, relatively little software for the C128's native mode appeared (probably on the order of 100–200 commercial titles, plus the usual share of public domain and magazine type-in programs). While the C128 sold a total number of 4 million units between 1985 and 1989, its popularity paled in comparison to that of its predecessor. This has been blamed on the lack of native software and on Commodore's less-aggressive marketing, which was mostly focused on the Amiga by this time. An additional explanation may be found in the fact that the C64 sold huge numbers to people primarily interested in computer games, which the more expensive C128 didn't add much value towards improving. A few Infocom
Infocom
Infocom was a software company, based in Cambridge, Massachusetts, that produced numerous works of interactive fiction. They also produced one notable business application, a relational database called Cornerstone....

 text adventures took advantage of the 80 column screen and increased memory capacity, and a very few C64 games were ported to native mode like Kikstart 2
Kikstart 2
Kikstart 2 is a motorcycle trials racing videogame released for the Amiga, Amstrad CPC, Commodore 64 and ZX Spectrum. It enjoyed more success than its prequel, Kikstart. The game allowed 2-player simultaneous or 1-player, vs-computer play...

 and The Last V8
The Last V8
The Last V8 is a video game published by Mastertronics on their M.A.D. label. It was released in 1985 for the Commodore 64, Atari 8-bit and Amstrad CPC. The title echoes a plot point from the Mad Max series of movies The design was done by Richard Darling and the programming by David Darling. The...

 from Mastertronic
Mastertronic
Mastertronic was originally a publisher and distributor of low-cost computer game software founded in 1983. Their first games were distributed in mid-1984. At its peak the label was the dominant software publisher in the UK, a position achieved by selling cassette-based software at the £1.99...

 and Ultima V
Ultima V
Ultima V: Warriors of Destiny is the fifth entry in the computer role-playing game series Ultima.-Plot:After having mastered the eight Virtues, attaining Avatarhood and retrieving the Codex of Ultimate Wisdom in the previous game, the player is summoned back to Britannia by his old comrades Iolo...

 from Origin Systems
Origin Systems
Origin Systems, Inc. was a computer game developer based in Austin, Texas that was active from 1983 to 2004...

, but the vast majority of games ran in 64 mode. Productivity software was ported to the 128, including the popular PaperClip
PaperClip
PaperClip was a word processor for the Commodore 64, 128 , and Atari 8 bit personal computers.The Commodore 64 version of PaperClip was written by Steve Douglas and was rewritten for the Atari personal computer by Steve Ahlstrom and Dan Moore....

 and Paperback Writer
Paperback Writer
"Paperback Writer" is a 1966 song recorded and released by The Beatles. Written by Paul McCartney and credited to Lennon–McCartney, the song was released as the A-side of their eleventh single...

 series. The C128 was certainly a better business machine than the C64, but not really a better gaming machine, and people who wanted business machines bought IBM PC clone
IBM PC compatible
IBM PC compatible computers are those generally similar to the original IBM PC, XT, and AT. Such computers used to be referred to as PC clones, or IBM clones since they almost exactly duplicated all the significant features of the PC architecture, facilitated by various manufacturers' ability to...

s almost exclusively by the time the C128 was released. With its advanced BASIC programming language, CP/M
CP/M
CP/M was a mass-market operating system created for Intel 8080/85 based microcomputers by Gary Kildall of Digital Research, Inc...

 compatibility and "user-friendly" native software packages such as Jane
Jane (software)
Jane 128 was a GUI-based integrated software package for the Commodore 128 personal computer developed by Arktronics and released by Commodore International in 1985...

, Commodore attempted to create a low-end business market for the 128 similar to its strategy with the Plus/4, even branding the 128 a "Personal Computer
Personal computer
A personal computer is any general-purpose computer whose size, capabilities, and original sales price make it useful for individuals, and which is intended to be operated directly by an end-user with no intervening computer operator...

" on the case, but this strategy was not successful in the face of contemporary low-cost IBM-compatibles like the Leading Edge Model D
Leading Edge Model D
The Leading Edge Model D was an IBM clone computer first released by Leading Edge Hardware in July 1985. It was initially priced at $1,495 configured with dual 5.25" floppy drives, 256 KB of RAM, and a monochrome monitor. It was manufactured by South Korean conglomerate Daewoo and distributed by...

 and Tandy 1000
Tandy 1000
The Tandy 1000 was the first in a line of more-or-less IBM PC compatible home computer systems produced by the Tandy Corporation for sale in its Radio Shack chain of stores.-Overview:...

 that, in some cases, sold for less than a complete 128 system. There was a professional-level CAD program, Home Designer by BRiWALL, but again, most of this work was done on PCs by the 128s era. The main reason that the C128 still sold fairly well was probably that it was a much better machine for hobbyist programming than the C64.

The C128 indirectly made more money for Commodore than the numbers suggest. Once the C128 was released, sales of the C64 were significantly boosted. Like the rest of its 8-bit generation however, it ultimately could not compete with the new 16/32-bit systems. When the C128(D/DCR) was discontinued in 1989, it was reported to cost nearly as much to manufacture as the Amiga 500
Amiga 500
The Amiga 500 - also known as the A500 - was the first “low-end” Commodore Amiga 16/32-bit multimedia home/personal computer. It was announced at the winter Consumer Electronics Show in January 1987 - at the same time as the high-end Amiga 2000 - and competed directly against the Atari 520ST...

, even though the C128D had to sell for several hundred dollars less to keep the Amiga's high-end marketing image intact.

Bil Herd
Bil Herd
Bil Herd was a designer of 8-bit home computers while working for Commodore Business Machines in the early-to-mid 1980s. After first acting as the principal engineer on the Commodore Plus/4, C16/116, C264, and C364 machines, Herd designed the significantly more successful Commodore 128, a dual-CPU,...

 has stated that the design goals of the 128 did not initially include 100% compatibility with the C64. Some form of compatibility was always intended after Herd was approached at the Plus/4's introduction by a woman who was disappointed that the educational software package she had written for the C-64 would not run on Commodore's new computer, but when Commodore's marketing department learned of this, they demanded total compatibility. Herd gave the reason for the 128's inclusion of a Z-80 processor as to ensure this "100% compatibility" claim, since supporting the 64's Z-80 cartridge would have meant the 128 supplying additional power to the cartridge port. He also stated that the VDC video chip and Z80 were sources of trouble during the machine's design. Herd added that "I only expected the C128 to be sold for about a year, we figured a couple of million would be nice and of course it wouldn’t undercut Amiga or even the C64"

Reliability concerns

Early versions of the C128 occasionally experienced temperature-related reliability issues due to the use of an electromagnetic shield over the main circuit board. The shield was equipped with fingers that contacted the tops of the major chips, ostensibly causing the shield to act as a large heat sink
Heat sink
A heat sink is a term for a component or assembly that transfers heat generated within a solid material to a fluid medium, such as air or a liquid. Examples of heat sinks are the heat exchangers used in refrigeration and air conditioning systems and the radiator in a car...

. A combination of poor contact between the shield and the chips, the inherently limited heat conductivity of plastic chip packages, as well as the relatively poor thermal conductivity of the shield itself, resulted in overheating and failure in some cases. The SID
MOS Technology SID
The MOS Technology 6581/8580 SID is the built-in Programmable Sound Generator chip of Commodore's CBM-II, Commodore 64, Commodore 128 and Commodore MAX Machine home computers...

 sound chip was particularly vulnerable in this respect. The most common remedy was to remove the shield, which Commodore had only added in order to comply with FCC radio frequency regulations.

The Commodore 128's BASIC 7.0, the programming language which comes built-in with the computer, can be crashed or cause the computer to reboot by executing PRINT""+-0. This bug is present in all 8-bit Commodore machines.

Specifications

  • CPUs:
    • MOS Technology 8502
      MOS Technology 8502
      The MOS Technology 8502 was an 8-bit microprocessor designed by MOS Technology and used in the Commodore 128. Based on the MOS 6510 that was used in the Commodore 64, the 8502 added the ability to run at a double clock rate, in addition to the standard 1.024 MHz rate used by the Commodore 64.Since...

       @ 2 MHz (1 MHz selectable for C64 compatibility mode)
    • Zilog Z80
      Zilog Z80
      The Zilog Z80 is an 8-bit microprocessor designed by Zilog and sold from July 1976 onwards. It was widely used both in desktop and embedded computer designs as well as for military purposes...

        @ 4 MHz (running at an effective 2 MHz because of wait state
      Wait state
      A wait state is a delay experienced by a computer processor when accessing external memory or another device that is slow to respond.As of late 2011, computer microprocessors run at very high speeds, while memory technology does not seem to be able to catch up: typical PC processors like the Intel...

      s in order to allow the VIC-II video chip access to the system bus)
    • (C128D(CR)): MOS Technology 6502
      MOS Technology 6502
      The MOS Technology 6502 is an 8-bit microprocessor that was designed by Chuck Peddle and Bill Mensch for MOS Technology in 1975. When it was introduced, it was the least expensive full-featured microprocessor on the market by a considerable margin, costing less than one-sixth the price of...

       for the integrated floppy controller
  • MMU: Memory Management Unit controls 8502/Z80 processor selection; ROM/RAM banking; common RAM areas; relocation of zero page and stack
  • RAM: 128 KB system RAM, 2 KB 4-bit dedicated color RAM (for the VIC-II E), 16 KB or 64 KB dedicated video RAM (for the VDC), up to 512 KB REU expansion RAM
  • ROM: 72 KB
    • 28 KB BASIC 7.0
      Commodore BASIC
      Commodore BASIC, also known as PET BASIC, is the dialect of the BASIC programming language used in Commodore International's 8-bit home computer line, stretching from the PET of 1977 to the C128 of 1985...

    • 4 KB MLM
      Machine code monitor
      A machine code monitor is software built into or separately available for various computers, allowing the user to enter commands to view and change memory locations on the machine, with options to load and save memory contents from/to secondary storage.Machine code monitors became something of a...

    • 8 KB C128 KERNAL
      KERNAL
      The KERNAL is Commodore's name for the ROM-resident operating system core in its 8-bit home computers; from the original PET of 1977, followed by the extended but strongly related versions used in its successors; the VIC-20, Commodore 64, Plus/4, C16, and C128...

    • 4 KB screen editor
    • 4 KB Z80 BIOS
      BIOS
      In IBM PC compatible computers, the basic input/output system , also known as the System BIOS or ROM BIOS , is a de facto standard defining a firmware interface....

    • 16 KB C64 ROM: ≈9 KB C64 BASIC 2.0 + ≈7 KB C64 KERNAL
    • 4 KB C64 (or international) character generator
      PETSCII
      PETSCII , also known as CBM ASCII, is the variation of the ASCII character set used in Commodore Business Machines 's 8-bit home computers, starting with the PET from 1977 and including the VIC-20, C64, CBM-II, Plus/4, C16, C116 and C128...

    • 4 KB C128 (or national) character generator
    • 32 KB Internal Function ROM (optional: for placement in motherboard socket)
    • 32 KB External Function ROM (optional: for placement in REU socket)
  • Video:
    • MOS 8564/8566 VIC-II E
      MOS Technology VIC-II
      The VIC-II , specifically known as the MOS Technology 6567/8562/8564 , 6569/8565/8566 , is the microchip tasked with generating Y/C/composite video graphics and DRAM refresh signals in the Commodore 64 and C128 home computers.Succeeding MOS's original VIC , the VIC-II was one of the two chips...

       (NTSC/PAL) for 40-column composite video
      Composite video
      Composite video is the format of an analog television signal before it is combined with a sound signal and modulated onto an RF carrier. In contrast to component video it contains all required video information, including colors in a single line-level signal...

       (a TV set can be used instead of a monitor if desired)
      • Direct register access through memory-mapped I/O
      • Text mode: 40×25, 16 colors
      • Graphics modes: 160×200, 320×200
      • 8 hardware sprites
      • 2 KB dedicated 4-bit color RAM, otherwise uses main memory as video RAM
    • MOS 8563 VDC (or, in C128DCR, the 8568
      MOS Technology 8568
      The 8568 Video Display Controller was MOS Technology's graphics processor responsible for the 80 column or RGBI display on D[CR] models of the Commodore 128 personal computer...

      ) for 80-column digital RGBI component video, compatible with IBM PC
      IBM PC
      The IBM Personal Computer, commonly known as the IBM PC, is the original version and progenitor of the IBM PC compatible hardware platform. It is IBM model number 5150, and was introduced on August 12, 1981...

       CGA
      Color Graphics Adapter
      The Color Graphics Adapter , originally also called the Color/Graphics Adapter or IBM Color/Graphics Monitor Adapter, introduced in 1981, was IBM's first color graphics card, and the first color computer display standard for the IBM PC....

       monitors, monochrome display also possible on composite video monitors; usable with TV sets only when the set has SCART and/or baseband video-in sockets in addition to the antenna connector. Color is possible through SCART, only monochrome through baseband video-in.
      • Indirect register access (address register, data register in mapped memory)
      • Text mode: Fully programmable, typically 80×25 or 80x50, 16 RGBI colors (not the same palette as the VIC-II)
      • Graphics modes: Fully programmable, typical modes are 320x200, 640×200, and 640×400 (interlaced).
      • 16 KB dedicated video RAM (64 KB standard in C128DCR, C128/C128D could be upgraded to 64 KB), accessible to the CPU only in a doubly indirect method (address register, data register on VDC, which in turn are addressed through address register, data register in mapped memory)
      • Limited blitter
        Blitter
        In a computer system, a blitter is a circuit, sometimes as a coprocessor or a logic block on a microprocessor, that is dedicated to the rapid movement and modification of data within that computer's memory...

         functionality
  • Sound:
    • MOS 6581 SID
      MOS Technology SID
      The MOS Technology 6581/8580 SID is the built-in Programmable Sound Generator chip of Commodore's CBM-II, Commodore 64, Commodore 128 and Commodore MAX Machine home computers...

       (or, in the C128DCR, the MOS 8580 SID
      MOS Technology SID
      The MOS Technology 6581/8580 SID is the built-in Programmable Sound Generator chip of Commodore's CBM-II, Commodore 64, Commodore 128 and Commodore MAX Machine home computers...

      ) synthesizer chip
      • 3 voices
        Electronic oscillator
        An electronic oscillator is an electronic circuit that produces a repetitive electronic signal, often a sine wave or a square wave. They are widely used in innumerable electronic devices...

        , ADSR-controllable
      • Standard SID waveforms (triangle
        Triangle wave
        A triangle wave is a non-sinusoidal waveform named for its triangular shape.Like a square wave, the triangle wave contains only odd harmonics...

        , sawtooth
        Sawtooth wave
        The sawtooth wave is a kind of non-sinusoidal waveform. It is named a sawtooth based on its resemblance to the teeth on the blade of a saw....

        , variable pulse
        Square wave
        A square wave is a kind of non-sinusoidal waveform, most typically encountered in electronics and signal processing. An ideal square wave alternates regularly and instantaneously between two levels...

        , noise
        White noise
        White noise is a random signal with a flat power spectral density. In other words, the signal contains equal power within a fixed bandwidth at any center frequency...

        , and certain combined modes)
      • Multi-mode filter
        Audio filter
        An audio filter is a frequency dependent amplifier circuit, working in the audio frequency range, 0 Hz to beyond 20 kHz. Many types of filters exist for applications including graphic equalizers, synthesizers, sound effects, CD players and virtual reality systems.Being a frequency dependent...

      • 3 ring modulators
        Ring modulation
        Ring modulation is a signal-processing effect in electronics, an implementation of amplitude modulation or frequency mixing, performed by multiplying two signals, where one is typically a sine-wave or another simple waveform. It is referred to as "ring" modulation because the analog circuit of...

  • I/O Ports:
    • All Commodore 64 ports with 100 percent compatibility, plus the following:
    • Higher "burst mode" speed possible on the serial bus
    • Expansion port more flexibly programmable
    • RGBI video output (DE9
      D-subminiature
      The D-subminiature or D-sub is a common type of electrical connector. They are named for their characteristic D-shaped metal shield. When they were introduced, D-subs were among the smaller connectors used on computer systems....

      -connector) logically similar to the IBM PC
      IBM PC
      The IBM Personal Computer, commonly known as the IBM PC, is the original version and progenitor of the IBM PC compatible hardware platform. It is IBM model number 5150, and was introduced on August 12, 1981...

       CGA
      Color Graphics Adapter
      The Color Graphics Adapter , originally also called the Color/Graphics Adapter or IBM Color/Graphics Monitor Adapter, introduced in 1981, was IBM's first color graphics card, and the first color computer display standard for the IBM PC....

       connector, but with an added monochrome
      Monochrome
      Monochrome describes paintings, drawings, design, or photographs in one color or shades of one color. A monochromatic object or image has colors in shades of limited colors or hues. Images using only shades of grey are called grayscale or black-and-white...

       composite signal. This added signal causes a minor incompatibility with certain CGA monitors that can be rectified by removing pin 7 from the plug at one end of the connecting cable.
    • External keyboard input (DB25
      D-subminiature
      The D-subminiature or D-sub is a common type of electrical connector. They are named for their characteristic D-shaped metal shield. When they were introduced, D-subs were among the smaller connectors used on computer systems....

      -connector) (C128D(CR) only)

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK