Commodore 128

ImprimirCitar

The home/personal computer Commodore 128 (C128, CBM 128, C=128) was the last 8-bit machine marketed by Commodore Business Machines (CBM). Introduced in January 1985 at CES in Las Vegas, it appeared three years after its predecessor, the highly successful Commodore 64. The C128's primary hardware designer was Bil Herd.

Technical description

The C128 is a significantly expanded successor to the C64 and, unlike the earlier Plus/4, almost completely compatible with the C64. Featuring 128KB of RAM, in two 64KB banks, and 80-column RGBI video output (driven by the 8563 VDC chip with 16KB of dedicated video RAM), as well as a substantially redesigned cabinet and keyboard, the which included four arrow keys (earlier Commodores had two, requiring shift pressing to move the cursor up or left), plus Alt, Help, Escape, Tab (not present on earlier models), and a numeric keypad.. The lack of a numpad, Alt key, and escape key on the C64 was a problem with some productivity programs in CP/M when used with the C64's Z80 cartridge. Some of the added keys are equivalent to those present on the IBM PC keyboard. While the C128's 40-column mode duplicates that of the C64, an extra 1KB of color RAM is available to programmers as it is multiplexed at memory address 1. The power supply represents a vast improvement over the design unreliable from the C64's source, being larger and equipped with a cooling fan and a replaceable fuse. Instead of a single 6510 microprocessor as in the C64, the C128 incorporates a dual-CPU design. The primary, an 8502, is a slightly improved version of the 6510, capable of clocking up to 2 MHz. The second CPU is a Zilog Z80, which is used to run CP/M software, as well as boot mode. operating system selection at boot time. The two processors cannot work simultaneously, so the C128 is not a multithreaded system. The C128 has three operating modes: C128 mode (native mode), which runs at 1 or 2 MHz with the 8502 CPU and has 40 and 80 column text modes; CP/M mode, which uses the Z80 in text mode with both 40 and 80 columns, and C64 mode, which is practically 100% compatible with the previous computer. The selection of these modes is implemented through the Z80 chip, which monitors the bus at initial boot and checks if any C64/C128 cartridges are present and if the Commodore key (C64 mode selector) is active during boot. Based on what it finds, it will switch to the appropriate mode of operation.

The C128D is considered unique in that its motherboard supports four different types of RAM:

  • 128 KB of main RAM;
  • 64 KB of VDC RAM video;
  • 2 Knibbles of color RAM for VIC-II;
  • 2 KB of RAM of the disquetera;
  • between 128 and 512 KB of RAM REU.

In addition to 3 processors (8502 as main, Z80 for CP/M and a 6502 for the floppy drive) and two different video chips (VIC-IIe and VDC).

C128 Mode

While the C64's graphics and sound capabilities were generally considered excellent, marketing operatives at Commodore's leadership were concerned with sustaining (if not prolonging) the appeal of home computers among non-programmers. These operatives felt that the VIC-II's 40-column display, while excellent for gaming, might be inadequate for productivity applications like word processing. In addition, they felt that the new sound and graphics capabilities would be heavy handling if controlled exclusively via the standard POKE and PEEK instructions, so they embarked on rewriting BASIC 2.0 to have instructions that more accurately reflected their capabilities. In addition, increasing drive capacities in competing markets (such as those dedicated to PC and Apple compatibles) led Commodore's high-ranking officials to worry about the next step. The designers of the C128 were successful in addressing most of those concerns. A new chip, the VDC, provides the C128 with a CGA-compliant 80-column display (also called RGBI for Red-Green-Blue-Intensity, red-green-blue-intensity). The new 8502 microprocessor is fully backwards compatible with the C64's 6510, but can run twice as fast if desired. However, the VIC-II chip that drives the 40-column display cannot operate at the higher clock speed, so the 40-column display appears garbled in FAST mode. In 80 column mode, the editor takes advantage of the VDC features to allow for blinking and underlined text, activated by escape codes. The 40 and 80 column modes are independent and can be active at the same time. A programmer with both a composite video screen and an RGB screen could use one of the screens as a "notepad". The active screen can be swapped with ESC-X. A reset button has been added to the system. The C64's BASIC 2.0 was superseded by BASIC 7.0, which includes instructions designed specifically for using the machine's advantages. A sprite editor and machine code monitor were added later for the benefit of programmers. The screen editor portion of the kernel was further enhanced to support a rudimentary windowing system and was relocated to a separate ROM. In 80 column mode the editor makes use of VDC enhancements to allow text blinking and underlining, activated by escape codes. A reset button was added to the system. Two new drives were introduced along with the C128: the short-lived 1570 and 1571. Later, the 3'5-inch 1581 drive was introduced. All these units are more reliable than the 1541 and promised better performance through a burst mode. The 1581 drive also has more onboard RAM than its predecessors, making it possible to open a larger number of files simultaneously. The C128 also has twice the RAM of the C64 and a greater proportion is available for BASIC programming, due to the bank-switching MMU chip. This allows the code of BASIC programs to be stored separately from variables, greatly improving the machine's ability to handle complex programs, speeding up garbage collection, and making debugging easier for programmers. A running program can receive a STOP, inspect the variables or alter them in direct mode, and execution is continued using the BASIC GOTO statement. The C128 ROM contains an easter egg: Entering the command "SYS 32800,123,45,6" in native mode, it reveals a 40-column screen with a list and a message from the main developers of the machine. Also writing the QUIT or OFF statements produces an ?UNIMPLEMENTED COMMAND ERROR". These instructions exist in anticipation of an LCD laptop ever produced and are intended to exit the BASIC interpreter and ignore the keyboard during execution of sensitive programs, respectively. The higher hardware capabilities of the C128, especially the increase in RAM, screen resolution, and serial bus speed, made it the preferred platform for using the GEOS graphical operating system.

CP/M mode

Using the CP/M mode requires the use of a boot disk

The second of the two processors is the Zilog Z80, which allows the C128 to run on CP/M. The C128 was shipped with CP/M 3.0 (also known as CP/M Plus, backward compatible with CP/M 2.2) and the ADM31/3A terminal emulator. A CP/M cartridge was already available for the C64, but it was expensive and limited to programs on Commodore-formatted disks. To have a large library of applications available instantly at launch, the C128 CP/M and its 1571 floppy drive were designed to read almost all Kaypro-specific CP/M programs without modification. Unfortunately, the C128 was noticeably slower running on CP/M 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 in use of CP/M 3.0, whose complexity makes it inherently slower than the older and more widespread CP/M 2.2 system. From the source code of the CP/M implementation for the C128, it is clear that the engineers originally planned that it would be possible to run CP/M in 'fast' mode as well, with the output of 40 columns disconnected and the Z80 running at an effective speed of 4 MHz. However, this feature did not work properly on the first generation C128. An unusual feature of the C128 among CP/M systems is that some of the low level BIOS services are executed by the 8502 instead of the Z80. It transfers control to the 8502 after placing the relevant parameters in the designated memory locations. The Z80 then shuts down, being woken up by the 8502 on completion of the BIOS routine, with the status value(s) available in RAM for inspection. CP/M was possibly the least used of the three possible modes of operation. Intended to give the new computer a large library of professional-grade programs, which Commodore did not have, the CP/M was long past its prime when the C128 was introduced. Also, CP/M is very different from the Commodore DOS included in the ROM of the disk drives.

C64 Mode

Fully incorporating the original C64 BASIC and kernel, the C128 achieves virtually 100% compatibility with the Commodore 64. 64 mode can be accessed in three ways:

  • Holding the key with the Commodore logo when you start the system;
  • Enter the command GO64 in the BASIC 7.0.;
  • Start with a connected C64 cartridge.

Grounding the /EXROM and/or /GAME lines of the cartridge port will cause the computer to automatically boot into C64 mode. This feature closely duplicates the behavior of the C64 when a cartridge (such as Simons' BASIC) is plugged into the port and activates those two lines; but, unlike the C64, where changing the memory mapping of these lines is done directly in hardware, the C128's Z80 boot firmware checks the lines at boot and then switches modes as necessary. C128 native mode cartridges are recognized and initialized by the kernel check at positions defined in the memory map. C64 mode almost exactly duplicates the hardware features of the C64. Many of the C128's additional features are disabled or unavailable in this mode. 80 column display, fast mode, MMU and BASIC 7.0 are not available in this mode. The 4 cursor keys at the top of the keyboard are not recognized, forcing the user to use the C64's awkward capitalization layout, which is embedded at the bottom of the keyboard. The numeric keypad and the top row of keys are also ignored, excluding the F1 through F8 keys. Some of these features can be reactivated by programs, but commercial programs would ignore them. Some of the few C64 programs that crash on a C128 work correctly when the CAPS LOCK key (or the ASCII/National key on international C128 models) is pressed. This has to do with the larger I/O port on the C128 CPU. Where the SHIFT LOCK key present on both machines is simply a mechanical part that locks the left SHIFT key, the CAPS LOCK key on the C128 can be read through the I/O port included in the 8502. Some C64 programs get confused by this extra I/O bit, holding the CAPS LOCK key down forces the I/O line, matching the C64 settings and solving the problem. A handful of C64 programs write to $D030 (53296), often as part of the VIC-II chip's register startup loop. This memory mapping register, not used on the C64, determined by the system clock speed. Because this register is already fully functional in C64 mode, an inadvertent write could pollute the 40-column display by switching the CPU to 2 MHz, at which the VIC-II video processor's clock speed cannot produce a coherent display. Fortunately, many programs suffer from this bug. In July 1986, COMPUTE!'s Gazette published a written program that exploited this difference by using an interrupt matrix to enable fast mode when the bottom of the visible screen is reached and then turn it off when the screen retrace starts again at the top. Using the highest clock during the vertical flyback period, the standard video display is maintained while the execution speed is increased by 20%. One way to tell the difference between a C64 and a C128 operating in C64 mode, typically used from within a running program, is to write a value other than $FF (255) at address $ D02F, a register that is used to decode the extra keys of the C128 (the numpad and some other keys). On the C64 this memory location always contains the value $FF, no matter what is written to it, but on a C128 in C64 mode, the value of the location (a memory mapping register) can be changed. Thus, checking the position value after writing to it will reveal the true hardware platform.

RAM Settings

To handle the relatively large amount of ROM and RAM, ten times the 64KB address space of the 8502, the C128 uses the 8722 MMU to create different memory maps, in which different combinations of RAM and ROM are displayed. depending on the bit pattern written to the MMU configuration register at memory address $FF00. Commodore RAM expansion units use an external DMA controller to write and read one or more bytes (up to full byte ranges) between the C128 RAM and the expansion unit RAM. Another feature of the MMU is that it allows to relocate the zero page and the stack, thanks to the Direct Page register.

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

Commodore 128D

At the end of 1985 Commodore brought to the European market a new version of the C128 with a redesigned chassis. Called the Commodore 128D, this new European model features a plastic chassis with a carrying handle on the side, incorporates a 1571 disk drive into the main chassis, replaces the integrated keyboard with a detachable one, and adds a cooling fan. The keyboard includes two folding feet to change the typing angle. In the latter part of 1986, Commodore released a version of the C128D in the United States and Europe called the C128DCR (cost reduced). The DCR model includes a stamped steel chassis instead of the plastic version of the C128D (without a carrying handle), a modular power supply similar to the one included with the C128D, as well as a separate keyboard and 1571 floppy drive. On the motherboard, Commodore consolidated some of the components to save production costs and replaced the 8563 video controller with the more technically advanced 8568 MOS Technology (also included in some later C128D models). As a cost-saving measure, the built-in cooling fan on the D model was removed, although the hook-ups on the power supply remained. Internally, the C128DCR ROM, called "ROM 1986" by the copyright date displayed on the home screen, contains many bug fixes, including the famous one where the character 'Q' is missing. it is kept lowercase when CAPS LOCK is active and the 8568 VDC is equipped with 64KB of video RAM, the maximum addressable, equal to four times that of the original C128. The increase in video RAM made it possible, among other things, to generate high-resolution graphics with a more flexible color palette, although few commercial software took advantage of this capability. Despite improvements in RGB video capabilities, Commodore did not update BASIC 7.0 with the ability to manipulate RGB graphics. Handling the VDC in graphical mode continued to require the use of calls to screen editor primitives in ROM (or their assembler equivalents), or using third-party extensions to BASIC. The most popular extension was the "BASIC 8" from Free Spirit Software, which added commands for high-resolution VDC graphics 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.

Result in the market

Because the C128 can run virtually all of the software on the C64 and with the next generation, 16-bit and 32-bit home computers, primarily the Commodore Amiga and Atari ST, gaining traction, relatively little software was created for it. the native mode of the C128 (probably on the order of 100-200 commercial titles, plus programs in the public domain and written in magazines) While the C128 sold 4 million units between 1985 and 1989, its popularity pales in comparison to that of its predecessor. This was blamed on the lack of native software and Commodore's less aggressive marketing, focused mostly on the Amiga at the time. An additional explanation can be found in the fact that the C64 sold a lot of units to people primarily interested in video games, who didn't find the expensive C128 much worth upgrading to. A few Infocom ventures took advantage of the 80 column display and increased memory capacity and a few C64 games were ported natively, such as Mastertonic's Kickstart 2 and The Last V8 and Origin Systems' Ultima V, but most Most games ran in 64 mode. The C128 was certainly a better business machine than the C64, but not much better as a game machine and people who wanted a business machine bought IBM PC compatibles almost exclusively during the time that the C128 was sold. With its advanced BASIC programming language, CP/M compatibility and native "user-friendly" Like Jane, Commodore attempted to create a small business market for the C128, even branding "Personal Computer" in the box, but this strategy was unsuccessful against its low-cost IBM PC compatible contemporaries such as the Leading Edge Model D and Tandy 1000 which, in some cases, sold for less than a complete C128 system. There was a professional CAD program, BRiWALL's Home Designer, but again, most of that work was done on PCs during the C128's commercial life. The main reason sales of the C128 held up fairly well was probably because it was a better machine for programming hobbyists than the C64. Also, when the C128(D/DCR) stopped production in 1989, it was reported that manufacturing costs equaled those of the Amiga 500, although the C128D had to sell for hundreds of dollars less to maintain the Amiga's top-of-the-line image. intact. Bil Herd has indicated that the design goals for the 128 did not initially include 100% compatibility with the C64. Some form of compatibility was attempted after Herd was contacted during the Plus/4 presentation by a woman who was disappointed that the educational software packages he had written for the C64 would not work on Commodore's new computer. Later, Commodore's marketing department demanded full compatibility. Herd gave the reason for including a Z80 processor in the C128 to ensure 100% compatibility, because the C64's Z80 cartridge support would have meant that the C128 would have had to supply additional power to the cartridge port. He also pointed out that the VDC video chip and the Z80 were sources of problems during the machine's design. Herd added that he "just expected the C128 to sell for a year, we figured a couple million would be fine and of course it wouldn't undermine the Amiga or even the C64."

Reliability issues

Early versions of the C128 occasionally experienced reliability issues caused by temperature, due to the use of electromagnetic shielding on the main board. The shield is equipped with pads that touch the top of the main chips, causing the shield to act as a large heatsink. A combination of the lack of contact between the shield and the chips, the limited thermal conductivity inherent in the plastic packaging of the chips, as well as the relatively poor thermal conductivity of the shield itself (which is made of mu-metal), resulted in This will result in overheating and in some cases failure. The SID sound chip is particularly vulnerable to this problem. The most common remedy is to remove the shielding, which Commodore only added to comply with FCC radio frequency regulations. Commodore 128 BASIC 7.0, the programming language that comes bundled with the computer, can hang or cause a reboot by running PRINT""+-0. This bug is present on all 8-bit Commodore machines.

Specifications

  • CPUs:
    • MOS Technology 8502 @ 2 MHz (1 MHz selectable for C64 compatibility mode)
    • Zilog Z80 @ 4 MHz (functioning effectively at 2 MHz due to the state of waiting to allow the VIC-II video chip to access the system bus)
    • (C128D(CR)): MOS Technology 6502 for integrated circuit breaker controller
  • MMU: The memory management unit controls the selection of the 8502/Z80 processor, the ROM/RAM banks, the common areas of RAM, the relocation of page zero and battery
  • RAM: 128 KB of RAM system, 2 KB of 4-bit dedicated RAM (for VIC-II E), 16 KB or 64 KB dedicated video RAM (for VDC), up to 512 KB of expansion of RAM REU.
  • ROM: 72 KB
    • 28 KB for BASIC 7.0
    • 4 KB for MLM
    • 8 KB of the C128 KERNAL
    • 4 KB for screen editor
    • 4 KB for the Z80 BIOS
    • 16 KB for C64 mode RAM: ≈9 KB C64 BASIC 2.0 + ≈7 KB C64 KERNAL
    • 4 KB for the character generator of the C64 mode (or international)
    • 4 KB for the character generator of the C128 (or national) mode — expandable by 32 KB of internal functions ROM (optional; for insertion into the socket of the mother plate) and/or 32 KB of external function ROM (optional; for insertion into the REU socket).
  • Video:
    • MOS 8564/8566 VIC-II E (NTSC/PAL) for video composed of 40 columns (you can use a TV instead of a monitor)
      • Direct access to registration via E/S mapping memory
      • Text mode: 40×25, 16 colors
      • Mode graphic modes: 160×200, 320×200
      • 8 sprites for hardware
      • 2 KB of 4-bit dedicated color RAM, otherwise use main memory as video RAM
    • MOS 8563 VDC (or, at C128DCR, the 8568) for video by 80-stage digital RGBI components, compatible with IBM PC CGA monitors, the monochrome screen is also available on composite video monitors; usable with a TV only if it has a SCART connector and/or cable TV connections, in addition to antenna. The color is possible through SCART, only the monochrome goes through the cable connection
      • Indirect access to records (record of addresses, data record in mapped memory)
      • Text mode: Completely programmable, typically 80×25 or 80x50, 16 colors RGBI (not the same palette as VIC-II)
      • Graphic modes: Completely programmable, typical modes are 320x200, 640×200, and 640×400 (linked)
      • 16 KB dedicated video RAM (64 KB at C128DCR, the C128/C128D can be updated to 64 KB), accessible to the CPU only in a double indirect method (addressing log, data record in the VDC, which in turn are directed through the address record, data record in mapped memory)
      • Limited blitter functionality
  • Sound:
    • Chip Synthesizer MOS 6581 SID (or at C128DCR, MOS 8580 SID)
      • 3 voices with controlable ADSR
      • SID standard waveforms (triangle, saw, variable pulse, noise and some combined modes)
      • Multi-mode audio filter
      • 3 Ring modulators
      • Reduced cost and noise version of C64 MOS 6581; some initial C128 actually had 6581
  • E/S ports:
    • All Commodore 64 ports with 100% compatibility, plus the following:
    • Increased speed in mode ráfaga on the bus series
    • More flexible programmable expansion port
    • Video output RGBI (DE9) connector logically similar to the IBM PC CGA connector, but with an added monochrome composite signal. This added signal causes a small incompatibility with certain CGA monitors that can be rectified by removing the connector's 7th slate at one end of the connection cable
    • DB25 external keyboard input (only on C128D(CR))

Contenido relacionado

DirectX

DirectX is a collection of APIs developed to facilitate complex tasks related to multimedia, especially video and game programming, on the Microsoft Windows...

Horizontal and vertical parity

The horizontal and vertical parity is used in some block codes for a combination of checking to detect errors. The LRC: Longitudinal Redundancy Checking and...

Button (computing)

In computing, a button is a common metaphor, used in graphical interfaces with a similar objective to that of an ordinary button. Buttons are usually...
Más resultados...
Tamaño del texto:
Copiar