45

(2017.03.03) I have added a second answer with diagrams and more technical details. This answer is already huge and self-contained; the other focuses on the complexities due to hardware. Why does the C128 perform poorly when running CP/M? The Z80A was sort of an after-thought in the C128 design. Before release it had been touted as "fully C64 compatible" (...


41

There are several simple precautions that are always worth taking when powering up a vintage microcomputer after long periods of storage or non-use. The minimum, simple steps, should include: Place the computer on an electrically safe workbench, preferably one that includes a grounding strap for the user. A wooden table is an OK substitute, just avoid ...


32

Was it the original intention to combine them? No. The Z80 was not even part of the original design. It was added out of necessity to meet a "100% C64 compatible" claim of the original marketing. The C64 offered a CP/M expansion cartridge, which for some reason would not run correctly when inserted into early C128 prototypes. So about 2 months into a 5-...


31

No, they cannot. They share both the data and the address bus of the C128, so they can only run exclusively at any one point in time. The address bus is apparently directly connected, the data bus of the Z80 through a set of latches to the data bus of the rest of the system. In CP/M mode, the 8502 is handling keyboard, screen and printer and serial ...


31

The Commodore 128 was intended to be a fully-compatible, more professional, upgrade to the popular Commodore 64. The marketing called for addressing the most widely criticized shortcomings of the C64 that made it unsuitable in competing with more "professional"/business-oriented machines like the Apple //e and //c and the IBM clones. C64 compatibility was ...


25

I'm Linards Ticmanis, the guy who put out the CPMFAST package in 1999 that has been mentioned several times in the other answers (although I go by the nickname TeaRex on here). While creating that, I had to take a deep look into the innards of C128 CP/M, so that I think I can say that I have a rather detailed understanding of the way it works internally (or ...


23

The change in the MOS designator from 65xx to 85xx was due to the process change - original 65xx were NMOS process, while later 85xx changed to the new HMOS process. This allowed for better densities and lower power dissipation. A positive benefit being that the 85xx used less power even at higher speeds, with obvious benefits for cooling, PSU budget, and ...


21

Ultima V was I think the best known game that behaved differently on a Commodore 128 than it did on the Commodore 64, on the C128 it had music but not on the C64. I believe this was accomplished by separate C64 and C128 versions on the same disk. Apparently some of Andrew Braybrook's games for the C64, like Morpheus and Alleykat, took advantage the ability ...


21

On the C64, no. On power up, the drive is resetting and the motor may spin briefly, but the drive is not actually reading the disk. And even if it were, it is an IEC slave device and cannot initiate communication with the C64/C128 bus master itself. For an auto boot concept to be implemented, it would have to be the computer's kernal directing the flow of ...


20

C64 Basic used a CR as EOL for disk files. (source: Commodore SX-64 User's Guide, page 22: “CR stands for the CHR$ code 13, the carriage return, which is automatically PRINTed at the end of ever PRINT or PRINT# statement … ”, and verified by hex dump of disk image showing 0x0d at line end.)


18

My first answer attempts to answer all the OP's questions without going too deep into the hardware details. Since posting that answer, I have had the pleasure of corresponding for several days with Bil Herd, the lead designer of the C128 project. In addition to what I have learned from him, I have done some additional research on my own. This answer focuses ...


14

BASIC games that use no memory specific code can be ported between different commodore machines. (I did some successfully between PET and C64). Machinecode games could be transferred between some commodore machines if they were written to be portable. I never seen such programs but I found in this wikipedia artikel the following: "The Adventure ...


14

Before GEOS and the 1351 mouse became popular for the C64/C128, the most notable (non-joystick) pointing device was the famous Koala Pad. There were a few programs for the C64 before GEOS that provided fairly complete GUI style interfaces. The Print Shop and Doodle come to mind, as well as the very early (1982) Pinball Construction Set. Because there was no ...


12

The 8502 CPU was also there for C128 mode, of course. The 8502 and Z80 cannot be used at the same time. There are however other options. The C128D has a third CPU, a 6502, in the floppy drive. Any drives connected to the IEC bus port of a C128 or C128D also have a 6502 in them. These CPUs could be used in parallel. A 1541 or 1571 has only 2KB of RAM but a ...


12

You can write Zilog 80 programs and games (as I do) on the Commodore 128. I exploit Z88DK, which does the magic of booting the C128 in Zilog 80 mode. The Zilog80 at 2mhz effective speed is about as fast as a MOS6502/8502@1mhz in many situations. In some situations that depend on a bigger hardware stack, the slow Zilog80@2mhz can beat the MOS6502/8502@1mhz. ...


12

The Z80 can access all hardware I/O addresses in the C128, with the natural exception of the built-in I/O port (a 6520-style PIA) of the 8502 CPU. That means that, if I remember correctly, the only hardware that is not easily usable from the Z80 is the cassette the CAPS LOCK key of the US version (ASCII/DIN in German models, I don't know what it is called ...


10

Neither CoCo nor Retro-Apples are my specific area of expertise - I'll try to answer from a more European viewpoint. Concepts and technical solutions are similar, however. Basically, all the technologies you describe that allow the adaptation of more memory than the CPU would normally be able to address are, at least in my terminology, denoted under the ...


10

SD2IEC SD2IEC is a free software which turns an ATmega644 microcontroller into an emulated VC1541. It attempts a near-complete emulation (I think REL files aren't implemented, but nearly noone ever used them.) The emulation also supports some common fastloaders, most prominently that of The Final Cartridge III. You store .d64 disk images onto a FAT ...


10

Florian Müller's Vom C64 zum C128: Tips & Tricks (available at https://www.retrozone.ch/c128/download.php) gives this command in section 3.7.2: POKE PEEK(45)+256*PEEK(46),1:DELETE 1


9

I'm not sure if it counts as proper example because it is not a game from the days but recently released Super Mario Bros for C64 has a C128 mode. This game is a direct port from NES. As the NES processor is faster (NTSC 1.79, PAL 1.66 MHz) than Commodore 64 (NTSC 1.023, PAL 0.985 MHz) there are slowdowns during gameplay. In C128 mode, it switches to 2MHz ...


9

Pi1541 Pi1541 is a real-time, cycle exact, Commodore 1541 disk drive emulator that can run on a Raspberry Pi 3B, 3B+ or 3A+. It's a Raspberry Pi hat and some specialized software that emulates the 6502 CPU as well as the two 6522 VIAs of a real Commodore 1541 floppy drive. It emulates the whole disk drive so floppy speeders or any other specialized ...


9

The original intention was basically to have the functionality of two separate computers: a 6502-based system running Commodore's OS (with some features added beyond what the Commodore 64 offered, such as 80-column display and more memory) and a Z80-based system running CP/M. (These could not be used at the same time.) This is obviously cheaper than having ...


9

On a C64 PAL model, the VIC chip processes through 312 lines where each lines takes 63 clock cycles to display (including some time for horizontal and vertical blanking for returning the raster beam). So, if a timer counting every clock cycle is once synchronized to the beginning of rasterline 0, then the timer value t tells us the number of the current line ...


9

The basic behavior is correctly stated in the question. However, the details of the timing have to account for the rather complicated details of how RDY works on the NMOS version 6502 and MOS 6510 (Note: 65C02 is different). From the data sheet from Commodore, it states: Ready (RDY) - This input signal allows the user to single cycle the microprocessor on ...


9

According to COMPUTE!'s, Mapping the Commodore 128, the C128 BASIC firmware makes use of the two color RAM banks to support the "split-screen" graphics modes. Normally,the 128 uses one block (insert: of color RAM) for character color and the other for multicolor bitmapped mode. This is why GRAPHIC 4 mode (split multicolor bitmapped and ...


9

Commodore 128 / 128D was capable of outupting 80 columns through RGBi, therefore it could compete with other business machines of the time, but was this the case? Not really. The C128 was introduced in 1985 - a new business machine of that time was x86 based, most likely using a 286 of 6-10 MHz, 512 or more KiB of RAM and a 20 MiB HD. Nothing an 8 bit ...


8

One strategy is to convert the digital to analog, then the analog to VGA. CGA consists of digital red, green, blue, and intensity (RGBI) 5V signals, plus horizontal (15.75 kHz) and vertical (59.92 Hz) sync. VGA consists of analog red, green and blue signals (0.7V peak to peak), plus horizontal (31.46875 kHz) and vertical (59.94 Hz) sync (RGBHV). The first ...


8

Other than some CP/M based text games (mostly PD stuff) that aren't C128 specific, not that I know of. Remember there weren't that all that many C128 specific games to begin with, I'd guess more than 99% of the games people ran on it were unmodified C64 games, and of course the C64 has no Z80 CPU.


8

You're looking at the wrong page. :) The C64-Wiki page on Input Devices lists mice (digital joystick-like mice, and analogue free movement mice), touchpads, graphics tablets such as the Koala Pad with Koala Painter, light pens and light guns as typical C64 pointing devices.


7

It seems that Michael Steil at pagefault.org has recently posted an analysis of the KERNAL calls from all of the Commodore 8-bit machines to try and track lineage. However, what is relevant here is the table he includes near the bottom of his blog post that shows which vector entries are safe for which platforms. The result of his findings is that only the ...


Only top voted, non community-wiki answers of a minimum length are eligible