Misplaced Pages

Commodore 1541

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.

The Commodore 1541 (also known as the CBM 1541 and VIC-1541 ) is a floppy disk drive which was made by Commodore International for the Commodore 64 (C64), Commodore's most popular home computer . The best-known floppy disk drive for the C64, the 1541 is a single-sided 170- kilobyte drive for 5¼" disks. The 1541 directly followed the Commodore 1540 (meant for the VIC-20 ).

#178821

128-403: The disk drive uses group coded recording (GCR) and contains a MOS Technology 6502 microprocessor, doubling as a disk controller and on-board disk operating system processor. The number of sectors per track varies from 17 to 21 (an early implementation of zone bit recording with 4 constant angular velocity zones ). The drive's built-in disk operating system is CBM DOS 2.6 . The 1541

256-511: A COLLECT command for removing "splat" files (files that were not closed properly and truncated to zero length). All 1571 drives will normally start up in native mode on the C128. If the user switches to C64 mode by typing GO 64 , the drive remains in native mode. But if C64 mode is activated by holding the Commodore key down when powering up, the 1571 then goes into 1541 mode. This routine

384-563: A proprietary serialized derivative of the IEEE-488 parallel interface, found in previous disk drives for the PET/CBM range of personal and business computers, but when the VIC-20 was in development, a cheaper alternative to the expensive IEEE-488 cables was sought. To ensure a ready supply of inexpensive cabling for its home computer peripherals, Commodore chose standard DIN connectors for

512-431: A run-length limited (RLL) encoding scheme, belonging into the group of modulation codes . The others are similar encoding methods used in mainframe hard disks or microcomputer floppy disks until the late 1980s. GCR is a modified form of a NRZI code, but necessarily with a higher transition density. Group coded recording was first used for magnetic-tape data storage on 9-track reel-to-reel tape . The term

640-667: A 1541 cannot read MFM disks and will run much slower due to not supporting the C128's burst mode. CP/M boot disks nonetheless must be in the drive's native GCR format; MFM disks cannot be booted from, only read once the user is already in CP/M. This is because the code necessary to operate the drive in MFM mode is loaded as part of the boot process. In addition, 80-column mode is generally required since most CP/M software expects an 80-column screen. The C128 emulates an ADM-3A terminal in CP/M mode, so software will have to be set up for that. Aside from

768-740: A 1541 sold for $ 300 or less. After a home computer price war instigated by Commodore, the C64 and 1541 together cost under $ 500. The drive became very popular and difficult to find. The company said that the shortage occurred because 90% of C64 owners bought the 1541 compared to its 30% expectation, but the press discussed what Creative Computing described as "an absolutely alarming return rate" because of defects. The magazine reported in March 1984 that it received three defective drives in two weeks, and Compute!'s Gazette reported in December 1983 that four of

896-421: A C128. An easy way to differentiate between a hardware C64 and a C128 operating in C64 mode, typically used from within a running program, is to write a value different from $ FF (255) to memory address $ D02F (53295) , a register which is used to decode the extra keys of the C128 (the numerical keypad and some other keys). On the C64 this memory location will always contain the value $ FF no matter what

1024-459: A C64 the SID chip $ D4xx memory page was also mirrored on $ D5xx, $ D6xx and $ D7xx pages, while on a C128 it was only accessible through $ D4xx page. This is not a common issue, since the C64 reference guide only describes registers in $ D4xx in details while describing $ D5xx-$ D8xx just as "SID IMAGES", making most programs accessing them through $ D4xx page and hence have the sound getting played as intended on

1152-486: A favorite with amateur and professional chefs since they could compute and cook on top of their 1500-series disk drives at the same time". A series of humorous tips in MikroBitti in 1989 said "When programming late, coffee and kebab keep nicely warm on top of the 1541." The MikroBitti review of the 1541-II said that its external power source "should end the jokes about toasters". The drive-head mechanism installed in

1280-482: A floppy controller which (along with the Disk II drive itself) imposed two constraints: The simplest scheme to ensure compliance with these limits is to record an extra "clock" transition before each data bit according to differential Manchester encoding or (digital) FM (frequency modulation). Known as 4-and-4 encoding , the resulting Apple implementation allowed only ten 256-byte sectors per track to be recorded on

1408-553: A full complement of graphics and sound-handling commands, as well as BASIC 4.0's disk commands and improved garbage cleanup, and support for structured programming via IF...THEN...ELSE, DO...WHILE , and WHILE...WEND loops. On the downside, BASIC 7.0 ran considerably slower than BASIC 2.0 unless 2 MHz mode was used due to its 28 KB size (a 250% increase over BASIC 2.0) and having to bank switch to access program variables and BASIC program text (if greater than 16k in length). The 128's ROM contains an easter egg : Entering

SECTION 10

#1732802084179

1536-461: A hardware shift register (one component of the 6522) to maintain fast drive speeds with the new serial interface . However, a hardware bug with this chip prevents the initial design from working as anticipated, and the ROM code was hastily rewritten to handle the entire operation in software. According to Jim Butterfield , this causes a speed reduction by a factor of five; had 1540 compatibility not been

1664-604: A larger number of files at one time. BASIC 7.0 includes DLOAD and DSAVE commands to support loading and saving to disk without using the ,8 or other device number, and also a DIRECTORY command that reads a disk's catalog information directly to screen memory without overwriting BASIC memory as in BASIC 2.0. In addition, the C128 introduces auto-booting of disk software, a feature standard on most personal computers, but absent from Commodore machines up to that point. Users no longer have to type LOAD"*",8,1 . BASIC also added

1792-476: A lever rather than a pull-down tab to close the drive door. Although the alignment issues were resolved after the switch, the Newtronics drives add a new reliability problem in that many of the read/write heads are improperly sealed, causing moisture to penetrate the head and short it out. The 1541's PCB consists mainly of a 6502 CPU, two 6522 VIA chips, and 2k of work RAM. Up to 48k of RAM can be added; this

1920-607: A loop initializing the VIC-II chip registers. This memory-mapped register, unused in the C64, determines the system clock rate. Since this register is fully functional in C64 mode, an inadvertent write can scramble the 40-column display by switching the CPU over to 2–MHz, at which clock rate the VIC-II video processor cannot produce a coherent display. Fortunately, few programs suffer from this flaw. In July 1986, COMPUTE!'s Gazette published

2048-407: A middle ground between MBASIC's 32-bit floating point and 64-bit double precision variables. MBASIC also offers only 34k of free program space against BASIC 7.0's approximately 90k. The CP/M CBIOS (the part of CP/M that interfaces with the hardware) does not directly interface with the hardware like on most CP/M implementations; rather, it calls the kernal routines for interrupt handling and I/O—when

2176-479: A new version of the C128 with a redesigned chassis resembling the Amiga 1000 . 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 also featured two folding legs for changing the typing angle. The C128 released in

2304-524: A proprietary high-density 4/5 group coded encoding. The machine was using a Western Digital FD1781 floppy disk controller, designed by a former Sperry ISS engineer, with 77-track Micropolis drives. In later models such as the Durango 800 series this was expanded to a double-sided option for 960 KB (946 KB formatted ) per diskette. For the Apple II floppy drive, Steve Wozniak invented

2432-458: A replaceable fuse. Early versions of the C128 occasionally experience temperature-related reliability issues due to the use of an RF 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 . A combination of poor contact between the shield and the chips, the inherently limited heat conductivity of plastic chip packages, as well as

2560-468: A requirement, the disk interface would have been much faster. In any case, the C64 normally cannot work with a 1540 unless the VIC-II display output is disabled via a register write to the DEN bit (register $ D011, bit 4), which stops the halting of the CPU during certain video lines to ensure correct serial timing. As implemented on the VIC-20 and C64, Commodore DOS transfers 512 bytes per second, compared to

2688-578: A row as a synchronization sequence . This more efficient GCR scheme, combined with an approach at constant bit-density recording by gradually increasing the clock rate ( zone constant angular velocity , ZCAV) and storing more physical sectors on the outer tracks than on the inner ones ( zone bit recording , ZBR), enabled Commodore to fit 170 KiB on a standard single-sided single-density 5.25-inch floppy, where Apple fit 140 KiB (with 6-and-2 encoding) or 114 KiB (with 5-and-3 encoding) and an FM-encoded floppy held only 88 KiB . Similar,

SECTION 20

#1732802084179

2816-526: A row. Sequences of 9 or more one-bits (in practice 14 all-ones codes, or 70 one-bits, were used) are used as a synchronization pattern . Because of the extremely high density (for the time) of 6250 bpi tape, the RLL code is not sufficient to ensure reliable data storage. On top of the RLL code, an error-correcting code called the Optimal Rectangular Code (ORC) is applied. This code

2944-521: A row. This allowed each eight-bit byte to hold six bits of useful data, and allowed 16 sectors per track. This scheme is known as 6-and-2 encoding , and was used on Apple Pascal , Apple DOS 3.3 and ProDOS , and later with Apple FileWare drives in the Apple Lisa and the 400K and 800K 3½-inch disks on the Macintosh and Apple II. Apple did not originally call this scheme "GCR", but the term

3072-514: A row; the drive imposed no special constraint on the first bit in a byte. This allowed the use of a scheme similar to that used in 6250 bpi tape drives. Every four bits of data are translated into five bits on disk, using the same 5-bit codes as IBM to ensure there are never more than two zero bits in a row, but in a different order: Like the IBM code, at most eight one bits in a row are possible, so Commodore used sequences of ten or more one bits in

3200-416: 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 will fail in various ways on a C128. Thus, the C128 was given a double-sized character ROM, which delivers the C128 font in C128 mode, and the C64 font in C64 mode. International models of the C128 use the unmodified C64 font in both modes, since the second half of the character ROM

3328-486: A single-density 5¼-inch floppy. It uses two bytes for each byte. Close to a month prior to the shipment of the disk drive in spring 1978, Wozniak realized that a more complex encoding scheme would allow each eight-bit byte on disk to hold five bits of useful data rather than four bits. This is because there are 34 bytes which have the top bit set and no two zero bits in a row. This encoding scheme became known as 5-and-3 encoding , and allowed 13 sectors per track; it

3456-492: A spring-eject mechanism ( Alps drive), and the disks often fail to release. This style of drive has the popular nickname "Toaster Drive", because it requires the use of a knife or other hard thin object to pry out the stuck media, just like a piece of toast stuck in an actual toaster . This was fixed later when Commodore changed the vendor of the drive mechanism ( Mitsumi ) and adopted the flip-lever Newtronics mechanism, greatly improving reliability. In addition, Commodore made

3584-427: A true windowing system, or generate higher-resolution graphics with a more flexible color palette. Little commercial software took advantage of these possibilities. The C128DCR is equipped with new ROMs dubbed the "1986 ROMs", so-named from the copyright date displayed on the power-on banner screen. The new ROMs address a number of bugs that are present in the original ROMs, including an infamous off-by-one error in

3712-450: A type-in program that exploited this difference by using a raster interrupt 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 is maintained while increasing overall execution speed by about 20 percent. A few C64 programs would lack sound effects and music because on

3840-479: Is 1541-compatible) incorporates track-zero detection by photo-interrupter and is thus immune to the problem. Also, a software solution, which resides in the drive controller's ROM, prevents the rereads from occurring, though this can cause problems when genuine errors do occur. Due to the alignment issues on the Alps drive mechanisms, Commodore switched suppliers to Newtronics in 1984. The Newtronics mechanism drives have

3968-409: Is a Zilog Z80 which is used to run CP/M software, as well as to initiate operating-mode selection at boot time. The C128's keyboard includes four cursor keys , Alt , Help , Esc and Tab ↹ keys and a numeric keypad. None of these were present on the C64 which had only two cursor keys, requiring the use of the ⇧ Shift key to move the cursor up or left. This alternate arrangement

Commodore 1541 - Misplaced Pages Continue

4096-445: Is a combination of a parity track and polynomial code similar to a CRC , but structured for error correction rather than error detection. For every seven bytes written to the tape (before RLL encoding), an eighth check byte is calculated and written to the tape. When reading, the parity is calculated on each byte and exclusive-ORed with the contents of the parity track, and the polynomial check code calculated and exclusive-ORed with

4224-478: Is a factor 5/4 less due to GCR encoding . The 1541 disk typically has 35 tracks. Track 18 is reserved; the remaining tracks are available for data storage. The header is on 18/0 (track 18, sector 0) along with the BAM, and the directory starts on 18/1 (track 18, sector 1). The file interleave is 10 blocks, while the directory interleave is 3 blocks. Header contents: The header is similar to other Commodore disk headers,

4352-578: Is a mirror of the RAM in blocks 0 and 1. Since the I/O registers and system ROMs can be disabled or enabled freely, as well as being locatable in either RAM bank and the VIC-II set to use either bank for its memory space, up to 256 memory configurations are possible, although the vast majority of them are useless (for example, unworkable combinations like the kernal ROM in bank 0 and the I/O registers in bank 1 are possible). Because of this, BASIC's BANK statement allows

4480-442: Is built into the ROM of Commodore disk drives and is usually accessed through BASIC, CP/M requires the use of a boot diskette and requires entry of terse commands inherited from minicomputer platforms. CP/M programs tend to lack the user-friendly nature of most Commodore applications. By incorporating the original C64 BASIC and Kernal ROMs in their entirety (16 KB total), the C128 achieves almost 100 percent compatibility with

4608-466: Is completely backward-compatible with the C64's 6510, but can run at double the speed if desired. The C64's Commodore BASIC 2.0 was replaced with BASIC 7.0, which includes structured programming commands from the Plus/4's BASIC 3.5, as well as keywords designed specifically to take advantage of the machine's capabilities. A sprite editor and machine language monitor were added. The screen-editor part of

4736-434: Is detected. The tape version will even crash if a floppy drive is switched on while the game is running. Group coded recording In computer science , group coded recording or group code recording ( GCR ) refers to several distinct but related encoding methods for representing data on magnetic media . The first, used in 6250  bpi magnetic tape since 1973, is an error-correcting code combined with

4864-489: Is for a 60 mm fan. A significant improvement introduced with the DCR model was the replacement of the 8563 video display controller (VDC) with the more technically advanced 8568 VDC and equipping it with 64 KB of video RAM—the maximum amount addressable by the device. The four-fold increase in video RAM over that installed in the "flat" C128 made it possible, among other things, to maintain multiple text screens in support of

4992-535: Is identical to the Commodore one. Starting around 1985, Brother introduced a family of dedicated word processor typewriters with integrated 3.5-inch 38-track diskette drive. Early models of the WP and LW series  [ de ] used a Brother-specific group-coded recording scheme with twelve 256-byte sectors to store up to 120 KB on single-sided and up to 240 KB on double-sided double-density (DD) diskettes. Reportedly, prototypes were already shown at

5120-435: 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 kernel polling defined locations in the memory map. C64 mode almost exactly duplicates the features of a hardware C64. The MMU, Z80, and IEC burst mode are disabled in C64 mode, however all other C128 hardware features including

5248-537: Is instead dedicated to the international font (containing such things as accented characters or German umlauts ). Some of the few C64 programs that fail on a C128 will run correctly when the ⇪ Caps Lock 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

Commodore 1541 - Misplaced Pages Continue

5376-402: Is mainly useful for defeating copy protection schemes since an entire disk track could be loaded into drive RAM, while the standard 2k only accommodates a few sectors (theoretically eight, but some of the RAM was used by CBM DOS as work space). Some Commodore users use 1541s as an impromptu math coprocessor by uploading math-intensive code to the drive for background processing . The 1541 uses

5504-410: Is necessary for software that performs low-level drive access. The C128 has twice the RAM of the C64, a far higher proportion of which is available for BASIC programming, due to the new MMU bank-switching chip. This allows BASIC program code to be stored separately from variables, greatly enhancing the machine's ability to handle complex programs, speeding garbage collection and easing debugging for

5632-502: Is not possible for a user to command two 1541 drives to copy a disk (one drive reading and the other writing) as with older dual drives like the 4040 that was often found with the PET computer, and which the 1541 is backward-compatible with (it can read 4040 disks but not write to them as a minor difference in the number of header bytes makes the 4040 and 1541 only read-compatible). Originally, to copy from drive to drive, software running on

5760-443: Is similar to the format used on the PET 2031, 2040 & 4040 drives, but a minor difference in the number of header bytes makes these drives and the 1541 only read-compatible; disks formatted with one drive cannot be written to by the other. The drives will allow writes to occur, but the inconsistent header size will damage the data in the data portions of each track. The 4040 drives use Shugart SA-400s, which were 35-track units, thus

5888-417: Is simply a mechanical latch for the left ⇧ Shift key, the ⇪ Caps Lock key on the C128 can be read via the 8502'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 write to $ D030 (53296) , often as part of

6016-409: Is to power on the first drive in the chain, alter its device number via a software command to the highest number in the chain (if three drives were used, then the first drive in the chain would be set to device #10), then power on the next drive, alter its device number to the next lowest, and repeat the procedure until the final drive at the end of the chain was powered on and left as device #8. Unlike

6144-404: Is used, or more specifically a ⁠ 4 / 5 ⁠  (0, 2) block code sometimes also referred to as GCR (4B-5B) encoding. This code requires five bits to be written for every four bits of data. The code is structured so that no more than two zero bits (which are represented by lack of a flux reversal) can occur in a row, either within a code or between codes, no matter what

6272-491: Is written to it, but on a C128 in C64 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. To handle the relatively large amounts of ROM and RAM (tenfold the size of 8502's 64 KB address space) the C128 uses the 8722 MMU chip to create different memory maps, in which different combinations of RAM and ROM would appear according to bit patterns written into

6400-511: The Apple II , where support for two drives is normal, it is relatively uncommon for Commodore software to support this setup, and the CBM DOS copy file command is not able to copy files between drives – a third party copy utility is necessary. The pre-II 1541s also have an internal power source, which generates a lot of heat. The heat generation was a frequent source of humour. For example, Compute! stated in 1988 that "Commodore 64s used to be

6528-728: The Atari 810 's 1,000 bytes per second, the Apple Disk II 's 15,000 bytes per second, and the 300- baud data rate of the Commodore Datasette storage system. About 20 minutes are needed to copy one disk—10 minutes of reading time, and 10 minutes of writing time. However, since both the computer and the drive can easily be reprogrammed, third parties quickly wrote more efficient firmware that would speed up drive operations drastically. Without hardware modifications, some " fast loader " utilities (which bypassed routines in

SECTION 50

#1732802084179

6656-582: The CES in Las Vegas , it appeared three years after its predecessor, the Commodore 64 , the bestselling computer of the 1980s. Approximately 2.5 million C128s were sold during its four year production run. The C128 is a significantly expanded successor to the C64, with nearly full compatibility. It is housed in a redesigned case with an improved keyboard including a numeric keypad and function keys . Memory

6784-481: The EMACS -derived PerfectWriter available, and Commodore user groups sometimes had a selection of CP/M diskettes, but the limited software availability negated one of CP/M's chief attractions—its huge software library. In addition, the cartridges only work on early model C64s from 1982 and are incompatible with later units. Since they were also incompatible with the C128, the design team decided to support CP/M by putting

6912-673: The Internationale Funkausstellung 1979 (IFA) in Berlin. In 1986, Sharp introduced a turnable 2.5-inch pocket disk drive solution (drives: CE-1600F , CE-140F ; internally based on the FDU-250 chassis; media: CE-1650F ) for their series of pocket computers with a formatted capacity of 62 464 bytes per side (2× 64 kB nominal, 16 tracks, 8 sectors/track, 512 bytes per sector, 48 tpi , 250 kbit/s, 270 rpm) with GCR (4/5) recording. GCR

7040-597: The Kernal was further improved to support an insert mode and other features accessed through ESC-key combinations, as well as a rudimentary windowing feature, and was relocated to a separate ROM . The VIC-II chip which controls the 40-column display can only operate at 1 MHz, so the 40-column display appears jumbled in FAST mode. In 80-column mode the editor takes advantage of VDC features to provide blinking and underlined text, activated through escape codes , in addition to

7168-409: The mainboard were consolidated to reduce production costs and, as an additional cost-reduction measure, the cooling fan that was fitted to the D model's power supply was removed. However, the mounting provisions on the power supply subchassis were retained, as well as the two 12-volt DC connection points on the power supply's printed circuit board for powering the fan. The C128DCR mounting provision

7296-446: The nibbles (other than xx00 and 0001) have their code formed by prepending the complement of the most significant bit ; i.e. abcd is encoded as a abcd. The other five values are assigned codes beginning with 11. Nibbles of the form ab00 have codes 11ba a , i.e. the bit reverse of the code for ab11. The code 0001 is assigned the remaining value 11011. Because the all-ones code is not used in normal data, at most 8 one-bits can appear in

7424-621: The 100163-51-8 and 100163-52-6 ), Micropolis endorsed data encoding with group coded recording on 5¼-inch 100 tpi 77-track diskette drives to store twelve 512-byte sectors per track since 1977 or 1978. Micro Peripherals , Inc. (MPI) marketed double-density 5¼-inch disk drives (like the single-sided B51 and double-sided B52 drives) and a controller solution implementing GCR since early 1978. The Durango Systems F-85 (introduced in September 1978 ) used single-sided 5¼-inch 100 tpi diskette drives providing 480 KB utilizing

7552-522: The 128 than for it." Because the 128 would run virtually all 64 software, and because the next-generation 32 / 16-bit home computers—primarily the Commodore Amiga and Atari ST —represented the latest technology, 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 ), leading some users to regret their purchase. While

7680-459: The 128D also incorporates a 6502 in the disk drive), and two different video chips (VIC-IIe and VDC) for its various operational modes. The C128 does not perform a system RAM test on power-up like previous Commodore machines. Instead of the single 6510 microprocessor of the C64, the C128 incorporates a two-CPU design. The primary CPU, the 8502 , is a slightly improved version of the 6510, capable of being clocked at 2  MHz . The second CPU

7808-415: The 1541 became the first disk drive to see widespread use in the home and Commodore sold millions of the units. In 1986, Commodore released the 1541C, a revised version that offers quieter and slightly more reliable operation and a light beige case matching the color scheme of the Commodore 64C. It was replaced in 1988 by the 1541-II, which uses an external power supply to provide cooler operation and allows

SECTION 60

#1732802084179

7936-828: The 1541's onboard ROM) managed to achieve speeds of up to 4 kbit/s. The most common of these products are the Epyx Fast Load , the Final Cartridge , and the Action Replay plug-in ROM cartridges , which all have machine code monitor and disk editor software on board as well. The popular Commodore computer magazines of the era also entered the arena with type-in fast-load utilities, with Compute!'s Gazette publishing TurboDisk in 1985 and RUN publishing Sizzle in 1987. Even though each 1541 has its own on-board disk controller and disk operating system, it

8064-499: The 5.25-inch floppy drives of the Victor ;9000 aka Sirius 1 , designed by Chuck Peddle in 1981/1982, used a combination of GCR and zone bit recording by gradually decreasing a drive's rotational speed for the outer tracks in nine zones while increasing the number of sectors per track to achieve formatted capacities of 606 KiB (single sided) / 1188 KiB (double-sided) on 96 tpi media. The GCR code

8192-503: The 8502 CPU and has both 40- and 80-column text modes available. CP/M Mode uses both the Z80 and the 8502, and is able to function in both 40- and 80-column text mode. C64 Mode is nearly 100 percent compatible with the earlier computer. Selection of these modes is 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, or if

8320-422: The 8502 for any I/O or interrupt processing. For these reasons, few users actually ran CP/M software on the C128. When the C128 is powered on, the Z80 is active first and executes a small boot loader ROM at $ 0-$ FFF to check for the presence of a CP/M disk. If one is not detected, control is passed to the 8502 and C128 native mode is started. CP/M mode in practice requires a 1571 or 1581 drive to be useful, since

8448-526: 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 a more capable platform than the C64 for running the GEOS graphical operating system. The second of the C128's two CPUs is the Zilog Z80, which allows the C128 to run CP/M. The C128

8576-716: The C128 sold a total number of 4 million units between 1985 and 1989, its popularity paled in comparison to that of its predecessor. Some C64 software such as Bard's Tale III and Kid Niki ran in 128 mode without stating this in the documentation, using the autoboot and the 1571's faster disk access. Some Infocom text adventures took advantage of the 80-column screen and increased memory capacity. Some C64 games were ported to native mode like Kikstart 2 and The Last V8 from Mastertronic , which had separate C128 versions, and Ultima V: Warriors of Destiny from Origin Systems , which used extra RAM for music if running on

8704-685: The C128 was Bil Herd , who had worked on the Plus/4 . Other hardware engineers were Dave Haynie 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. The C128's complex architecture includes four differently accessed kinds of RAM (128 KB main RAM, 16–64 KB VDC video RAM, 2 kNibbles VIC-II Color RAM, 2-KB floppy-drive RAM on C128Ds, 0, 128 or 512 KB REU RAM) , two or three CPUs (main: 8502, Z80 for CP/M;

8832-672: The C128D case and the normal case concurrently. In the latter part of 1986, Commodore released a version of the C128D in North America and parts of Europe referred to as the C128DCR, CR meaning "cost-reduced". The DCR model features a stamped-steel chassis in place of the plastic version of the C128D (with no carrying handle), a modular switched-mode power supply similar to that of the C128D, retaining that model's detachable keyboard and internal 1571 floppy drive. A number of components on

8960-403: The C64 was needed and it would first read from one drive into computer memory, then write out to the other. Only when Fast Hack'em and, later, other disk backup programs were released, was true drive-to-drive copying possible for a pair of 1541s. The user could, if they wished, unplug the C64 from the drives (i.e., from the first drive in the daisy chain) and do something else with the computer as

9088-571: The C64, the VIC-II can only see the character ROM in banks 2 and 4 of its memory space, the C128, on the other hand, makes it possible to enable or disable the character ROM for any VIC-II bank via the register at $ 1 . Also, there are two sets of color RAM—one visible to the CPU, the other to the VIC-II and the user may select what chip sees what. In CP/M mode, the Program Segment Prefix and Transient Program Area reside in Bank 1 and

9216-418: The Commodore 64. The C64 mode can be accessed in three ways: 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's behavior when a cartridge (such as Simons' BASIC ) is plugged into the port and asserts either of these lines but, unlike an actual C64, where the memory-map-changing action of these lines

9344-467: The Commodore key (which serves as the C64-mode selector) is being depressed on boot-up. Based on these conditions, it will switch to the appropriate mode of operation. In 1984, a year before the release of the Commodore 128, Commodore released the Plus/4. Although targeted at a low-end business market that could not afford the relatively high cost and training requirements of early IBM PC compatibles, it

9472-447: The I/O registers and CP/M system code in Bank 0. The C128's RAM is expandable from the standard 128 KB to 256, 512 or even 1,024 KB, either by using commercial memory expansion modules, or by making one based on schematics available on the internet. Commodore's RAM Expansion Units use an external 8726 DMA controller to transfer data between the C128's RAM and the RAM in the expansion unit. Late in 1985, Commodore released

9600-536: The IBM 5153. However, PAL models of the C128 operate at 50 Hz and aren't compatible with most CGA monitors, which expect a 60 Hz refresh rate. Two new disk drives were introduced in conjunction with the C128: the short-lived single-sided 1570 and the double-sided 1571 . A dual-disk 1572 model was announced but never produced. Later on, the 3.5-inch 1581 was introduced. The 1581 drive also has more on-board RAM than its predecessors, making it possible to open

9728-512: The MMU's configuration register at memory address $ FF00 . Another feature of the memory management unit is to allow relocation of zero page and the stack . Although the C128 can theoretically support 256k of RAM in four blocks, the PCB has no provisions to add this extra RAM, nor can the MMU actually access more than 128k. Therefore, if the MMU is programmed to access blocks 2 or 3, all that results

9856-592: The United Kingdom on 25 July 1985, and in North America in November 1985. According to Bil Herd, head of the Hardware Team (a.k.a. the "C128 Animals"), the C128D was ready for production at the same time as the regular version. Working to release two models at the same time had increased the risk for on-time delivery and was apparent in that the main PCB has large holes in critical sections to support

9984-525: The VDU and 2 MHz mode are still accessible. The extended keys of the C128 keyboard may be read from machine language, although the kernal routines only recognize the keys that exist on the C64. A few games are capable of detecting if a C128 is running and switching to 2 MHz mode during the vertical retrace for faster performance. On North American C128s, when in C64 mode, even the character (font) ROM changes from that of C128 mode. Early C128 prototypes had

10112-505: The VDU chips as they were prone to overheating and self-destructing. The VDU also underwent numerous hardware revisions while the C128 was in development and the CP/M programmer was unable to get his code working properly, so the C128 engineering team requested instead that he simply rewrite the CBIOS to pass function calls to the 8502. CP/M mode is very different from the operating environments familiar to Commodore users. While Commodore DOS

10240-724: The VIC-20 and VIC-1540. Then, to match the look of the C64, CBM changed the drive's color to brown-beige and the name to Commodore 1541 . The 1541's numerous shortcomings opened a market for a number of third-party clones of the disk drive. Examples include the Oceanic OC-118 a.k.a. Excelerator+ , the MSD Super Disk single and dual drives, the Enhancer 2000 , the Indus GT , Blue Chip Electronics 's BCD/5.25, and CMD ' s FD-2000 and FD-4000 . Nevertheless,

10368-411: The Z80 on the main system board. The C128 runs CP/M noticeably slower than most dedicated CP/M systems, as the Z80 processor runs at an effective speed of only 2  MHz . This was because the C128's system bus was designed around the 65xx CPUs. These CPUs handle data and memory addressing very differently from the Z80. CP/M also ran more slowly for several reasons, such as needing to pass control to

10496-460: The business market with the Apple and perhaps with other business computers. With the present disk drive, though, it is hard-pressed to lose its image as a toy. The C-64's designers blamed the 1541's slow speed on the marketing department's insistence that the computer be compatible with the 1540, which is slow because of a flaw in the 6522 VIA interface controller. Initially, Commodore intended to use

10624-407: The circuit board to permanently change the drive's device number, or hand-wire an external switch to allow it to be changed externally. It is also possible to change the drive number via a software command, which is temporary and would be erased as soon as the drive was powered off. 1541 drives at power up always default to device #8. If multiple drives in a chain are used, then the startup procedure

10752-426: The command SYS 32800,123,45,6 in native mode reveals a screen with a listing of the machine's main developers followed by the message Link arms, don't make them." 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 portable computer and had been intended to exit from

10880-476: The computer. If this happens, it will default to a gray background with brown text. In CP/M mode, it is possible to run MBASIC , Microsoft's release of BASIC-80 for CP/M. Compared with the native mode BASIC 7.0, MBASIC is terse and limited in its capabilities, requiring the use of terminal-style key combinations to edit program lines or move the text cursor and lacking any sound or graphics features. Moreover, Commodore BASIC has 40-bit floating point which serves as

11008-415: The data was. This RLL code is applied independently to the data going to each of the nine tracks. Of the 32 five-bit patterns, eight begin with two consecutive zero bits, six others end with two consecutive zero bits, and one more (10001) contains three consecutive zero bits. Removing the all-ones pattern (11111) from the remainder leaves 16 suitable code words. The 6250 bpi GCR RLL code: 11 of

11136-403: The directory is located) before this procedure, the head would be actually moved 18 times, and then rammed against the stop 22 times. This ramming gives the characteristic "machine gun" noise and sooner or later throws the head out of alignment. A defective head-alignment part likely caused many of the reliability issues in early 1541 drives; one dealer told Compute! ' s Gazette in 1983 that

11264-673: The disk. However, one track is reserved by DOS for directory and file allocation information (the BAM, block availability map ). And since for normal files, two bytes of each physical sector are used by DOS as a pointer to the next physical track and sector of the file, only 254 out of the 256 bytes of a block are used for file contents. If the disk side is not otherwise prepared with a custom format, (e.g. for data disks), 664 blocks would be free after formatting, giving 664 ×  254 = 168,656  bytes (or almost 165 KB ) for user data. By using custom formatting and load/save routines (sometimes included in third-party DOSes, see below), all of

11392-515: The drive to have a smaller desktop footprint (the power supply "brick" being placed elsewhere, typically on the floor). Later ROM revisions fixed assorted problems, including a software bug that causes the save-and-replace command to corrupt data. The Commodore 1570 is an upgrade from the 1541 for use with the Commodore 128 , available in Europe. It offers MFM capability for accessing CP/M disks, improved speed, and somewhat quieter operation, but

11520-482: The drive's controller board smaller and reduced its chip count compared to the early 1541s (which had a large PCB running the length of the case, with dozens of TTL chips ). The beige-case Newtronics 1541 was produced from 1984 to 1986. All but the very earliest non-II model 1541s can use either the Alps or Newtronics mechanism. Visually, the first models, of the VIC-1541 denomination, have an off-white color like

11648-467: The drives proceeded to copy the entire disk. The 1541 drive uses standard 5¼-inch double-density floppy media; high-density media will not work due to its different magnetic coating requiring a higher magnetic coercivity . As the GCR encoding scheme does not use the index hole, the drive was also compatible with hard-sectored disks. The standard CBM DOS format is 170 KB with 35 tracks and 256-byte sectors. It

11776-409: The early production years is notoriously easy to misalign. The most common cause of the 1541's drive head knocking and subsequent misalignment is copy-protection schemes on commercial software. The main cause of the problem is that the disk drive itself does not feature any means of detecting when the read/write head reaches track zero. Accordingly, when a disk is not formatted or a disk error occurs,

11904-406: The error correction code. In order to reliably read and write to magnetic tape , several constraints on the signal to be written must be followed. The first is that two adjacent flux reversals must be separated by a certain distance on the media, defined by the magnetic properties of the media itself. The second is that there must be a reversal often enough to keep the reader's clock in phase with

12032-435: The format there is due to physical limitations of the drive mechanism. The 1541 uses 40 track mechanisms, but Commodore intentionally limited the CBM DOS format to 35 tracks because of reliability issues with the early units. It is possible via low-level programming to move the drive head to tracks 36–40 and write on them, this is sometimes done by commercial software for copy protection purposes and/or to get additional data on

12160-473: The head to track zero. Few of these schemes have much deterrent effect, as various software companies soon released " nibbler " utilities that enable protected disks to be copied and, in some cases, the protection removed. Commodore copy protection sometimes fails on specific hardware configurations. Gunship , for example, does not load if a second disk drive or printer is connected to the computer. Similarly Roland's Ratrace will crash if additional hardware

12288-438: The kernel needs to be used, the Z80 uses routines at $ FFD0 - $ FFEF to pass parameter data to the 8502, which is then activated and the Z80 deactivated. After the kernel routine is finished executing, control is passed back to the Z80. It was reported that the programmer in charge of porting CP/M to the C128 had intended to have the CBIOS interface with the hardware directly in Z80 machine language, but had great difficulty with

12416-478: The keyboard decoding table, in which the Q character would remain lowercase when ⇪ Caps Lock was active. Some software will only run on the DCR, due to dependencies on the computer's enhanced hardware features and revised ROMs. Despite the DCR's improved RGB video capabilities, Commodore did not enhance BASIC 7.0 with the ability to manipulate RGB graphics. Driving the VDC in graphics mode continues to require

12544-411: The magazine stated that, "The latest word online is that the last C128 will roll off the lines in December of 1987." Compute! stated in 1989, "If you bought your 128 under the impression that 128-specific software would be plentiful and quick to arrive, you've probably been quite disappointed. One of the 128's major selling points is its total compatibility with the 64, a point that's worked more against

12672-413: The magazine's seven drives had failed; "COMPUTE! Publications sorely needs additional 1541s for in-house use, yet we can't find any to buy. After numerous phone calls over several days, we were able to locate only two units in the entire continental United States ", reportedly because of Commodore's attempt to resolve a manufacturing issue that caused the high failures. The early (1982 to 1983) 1541s have

12800-442: The mechanically possible 40 tracks can be used. Owing to the drive's non-use of the index hole, it is also possible to make " flippy floppies " by inserting the diskette upside-down and formatting the other side, and it is commonplace and normal for commercial software to be distributed on such disks. Tracks 36–42 are non-standard. The bitrate is the raw one between the read/write head and signal circuitry so actual useful data rate

12928-410: The new computer more attractive to business software developers. While the 128's 40-column mode closely duplicates that of the C64, an extra 1K of color RAM is made available to the programmer, as it is multiplexed through memory address 1. The design of the C128's power supply is different from that used with the C64. Although it is much larger, the new power supply is equipped with cooling vents and

13056-419: The part had caused all but three of several hundred drive failures that he had repaired. The drives were so unreliable that Info magazine joked, "Sometimes it seems as if one of the original design specs ... must have said ' Mean time between failure : 10 accesses.'" Users can realign the drive themselves with a software program and a calibration disk. The user can remove the drive from its case and then loosen

13184-510: The programmer. An executing program can be STOP ped, its code edited, variable values inspected or altered in direct mode , and program execution resumed with the variable table intact using BASIC's GOTO command. Although other BASICs support the CONT command to restart execution without clearing variables, editing any code causes them to be cleared. Different memory configurations can be loaded using BASIC's BANK command. BASIC 7.0 has

13312-520: The received check code, resulting in two 8-bit syndrome words. If these are both zero, the data is error free. Otherwise, error-correction logic in the tape controller corrects the data before it is forwarded to the host. The error correcting code is able to correct any number of errors in any single track, or in any two tracks if the erroneous tracks can be identified by other means. In newer IBM half-inch 18-track tape drives recording at 24 000  bpi , ⁠ 4 / 5 ⁠  (0, 2) GCR

13440-420: The relatively poor thermal conductivity of the shield itself, resulted in overheating and failure in some cases. The SID sound chip is particularly vulnerable in this respect. The most common remedy is to remove the shield, which Commodore had added late in development to comply with FCC radio-frequency regulations. The C128 has three operating modes . C128 Mode ( native mode ) runs at 1 or 2 MHz with

13568-491: The screens as a "scratchpad" or for rudimentary multiple buffer support. The active display can be switched with ESC-X. A hardware reset button was added to the system. The keyboard, however, was not switched to the Selectric layout as had become standard, instead retaining the same ADM-3A -derived design as on Commodore's prior models. NTSC C128s will work with any CGA-type monitor (TTL RGB @ 15 kHz/60 Hz) such as

13696-428: The screws holding the stepper motor that move the head, then with the calibration disk in the drive gently turn the stepper motor back and forth until the program shows a good alignment. The screws are then tightened and the drive is put back into its case. A third-party fix for the 1541 appeared in which the solid head stop was replaced by a sprung stop, giving the head a much easier life. The later 1571 drive (which

13824-469: The serial interface. Disk drives and other peripherals such as printers connect to the computer via a daisy chain setup, necessitating only a single connector on the computer itself. IEEE Spectrum in 1985 stated that: The one major flaw of the C-64 is not in the machine itself, but in its disk drive. With a reasonably fast disk drive and an adequate disk-operating system (DOS), the C-64 could compete in

13952-406: The standard ADM-3A terminal commands, a number of extra ones are available to use the VIC-II and VDC's features, including setting the text and background color. The CP/M command interpreter (although not application software) includes a safeguard to prevent the user from issuing a control code to make the text and background the same color, which would render text invisible and force the user to reset

14080-415: The standard Commodore reverse text. The C128's 80-column mode can display lowercase characters along with PETSCII graphics characters; 40-column mode is subject to the same "upper- and lowercase" or "uppercase-plus-graphics" restriction as earlier Commodores. The 40- and 80-column modes are independent and both can be active at the same time. A programmer with both a composite and RGB display can use one of

14208-503: The structural differences being the BAM offset ( $ 04 ) and size, and the label+ID+type offset ( $ 90 ). Early copy protection schemes deliberately introduce read errors on the disk, the software refusing to load unless the correct error message is returned. The general idea is that simple disk-copy programs are incapable of copying the errors. When one of these errors is encountered, the disk drive (as do many floppy disk drives) will attempt one or more reread attempts after first resetting

14336-438: The unit tries to move the head 40 times in the direction of track zero (although the 1541 DOS only uses 35 tracks, the drive mechanism itself is a 40-track unit, so this ensured track zero would be reached no matter where the head was before). Once track zero is reached, every further attempt to move the head in that direction would cause it to be rammed against a solid stop: for example, if the head happened to be on track 18 (where

14464-482: The use of calls to screen-editor ROM primitives or their assembly language equivalents, or by using third-party BASIC language extensions, such as Free Spirit Software's " BASIC 8 ", which adds high-resolution VDC graphics commands to BASIC 7.0 . By January 1987, Info reported that "All of those rumors about the imminent death of the C128 may have some basis in fact." Stating that Commodore wanted to divert resources to increasing 64C production and its PC clones,

14592-732: The user to select 15 of the most useful arrangements, with the power-on default being Bank 15. This default places the system ROMs, I/O registers, and BASIC program text in block 0, with block 1 being used by BASIC program variables. BASIC program text and variables can extend all the way to $ FFEF . But since block 0 contains the ROMs and I/O registers from $ 4000 onward, BASIC uses an internal switching routine to read program text higher than $ 3FFF . The top and bottom 1k of RAM ( $ 0 – $ 3FF and $ FF00 - $ FFFF ) are "shared" RAM, visible from both blocks. The MMU allows either to be expanded in increments up to 16k. The $ 0 – $ 3FF range contains

14720-405: The written signal; that is, the signal must be self-clocking and most importantly to keep the playback output high enough as this is proportional to the density of flux transitions. Prior to 6250 bpi tapes, 1600 bpi tapes satisfied these constraints using a technique called phase encoding (PE), which was only 50% efficient. For 6250 bpi GCR tapes, a (0, 2)  RLL code

14848-473: The zero page and stack while $ FF00 - $ FFFF contains the MMU registers and reset vectors. These areas are always shared and cannot be switched to non-shared RAM. Shared RAM is always the opposite bank from the one currently being used by the CPU, thus if bank 0 is selected, any read or write to shared RAM will refer to the corresponding locations in bank 1 and vice versa. The VIC-II can be set to use either RAM bank and from there, its normal 16k window. While on

14976-572: Was also evaluated for a possible use in bar code encoding schemes (packing efficiency, timing tolerances, amount of storage bytes for timing information, and DC output level). Commodore 128 The Commodore 128 , also known as the C128 , C-128 , or C= 128 (the "C=" representing the graphical part of the logo), is the last 8-bit home computer that was commercially released by Commodore Business Machines (CBM). Introduced in January 1985 at

15104-468: Was coined during the development of the IBM 3420 Model 4/6/8 Magnetic Tape Unit and the corresponding 3803 Model 2 Tape Control Unit, both introduced in 1973. IBM referred to the error correcting code itself as "group coded recording". However, GCR has come to refer to the recording format of 6250 bpi (250 bits/mm ) tape as a whole, and later to formats which use similar RLL codes without

15232-495: Was enlarged to 128  KB of RAM in two 64 KB banks. A separate graphics chip provided 80-column color video output in addition to the original C64 modes. It also included a Zilog Z80 CPU which allows the C128 to run CP/M , as an alternative to the usual Commodore BASIC environment. The huge CP/M software library, coupled with the C64's software library, gave the C128 one of the broadest ranges of available software among its competitors. The primary hardware designer of

15360-464: Was later applied to it to distinguish it from IBM PC floppies which used the MFM encoding scheme. Reserved GCR-codes: 0xAA and 0xD5. Independently, Commodore Business Machines (CBM) created a group coded recording scheme for their Commodore 2040 floppy disk drive (launched in the spring of 1979). The relevant constraints on the 2040 drive were that no more than two zero bits could occur in

15488-404: Was only manufactured until Commodore got its production lines going with the 1571 , the double-sided drive. Finally, the small, external-power-supply-based, MFM-based Commodore 1581 3½-inch drive was made, giving 800 KB access to the C128 and C64. The 1541 does not have DIP switches to change the device number. If a user adds more than one drive to a system, the user has to cut a trace in

15616-446: Was perceived by the Commodore press as a follow-up to the 64 and would be expected to improve upon that model's capabilities. While the C64's graphics and sound capabilities were generally considered excellent, the response to the Plus/4 was one of disappointment. Upon the Plus/4's introduction, repeated recommendations were made in the Commodore press for a new computer called the "C-128" with increased RAM capacity, an 80-column display as

15744-420: Was priced at under US$ 400 at its introduction. A C64 with a 1541 cost about $ 900, while an Apple II with no disk drive cost $ 1,295. The first 1541 drives produced in 1982 have a label on the front reading VIC-1541 and an off-white case to match the VIC-20. In 1983, the 1541 switched to the familiar beige case and a front label reading simply "1541" along with rainbow stripes to match the Commodore 64. By 1983,

15872-501: Was replaced by a more efficient ⁠ 8 / 9 ⁠  (0, 3) modulation code, mapping eight bits to nine bits. In the mid-1970s, Sperry Univac , ISS Division was working on large hard drives for the mainframe business using group coding. Like magnetic tape drives, floppy disk drives have physical limits on the spacing of flux reversals (also called transitions, represented by one-bits). Offering GCR-compatible diskette drives and floppy disk controllers (like

16000-460: Was retained on the 128, for use under C64 mode. The lack of a numeric keypad, Alt , and Esc on the C64 was an issue with some CP/M productivity software when used with the C64's Z80 cartridge. A keypad was requested by many C64 owners who spent long hours entering machine language type-in programs . Many of the added keys matched counterparts present on the IBM PC 's keyboard and made

16128-568: Was shipped with CP/M 3.0 (a.k.a. CP/M Plus, which is backward-compatible with CP/M 2.2) and ADM31/3A terminal emulation. A CP/M cartridge had been available for the C64, but it was expensive and of limited use since the 1541 drive cannot read the MFM-formatted disks that CP/M software was distributed on. Software had to be made available on Commodore-specific disks formatted using the GCR encoding scheme. Commodore made versions of PerfectCalc and

16256-523: 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 's abysmal transfer rate, as well as total C64 compatibility. A new chip, the VDC , provides the C128 with an 80-column color CGA -compatible display (also called RGBI for red-green-blue plus intensity ). The then-new 8502 microprocessor

16384-400: Was used for Apple DOS 3.1, 3.2 , and 3.2.1 , as well as for the earliest version of Apple CP/M  [ de ] : Reserved GCR-codes: 0xAA and 0xD5. Wozniak called the system "my most incredible experience at Apple and the finest job I did". Later, the design of the floppy drive controller was modified to allow a byte on disk to contain up to one pair of zero bits in

#178821