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 ...


33

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 ...


29

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

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 ...


15

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 ...


11

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 ...


11

You can absolutely do this, I've used a 6 foot extension like this before on my 128DCR with no signaling issues. You are correct that you need all 25 pins wired straight through which a normal DB25m/f cable for serial / modem won't provide (and a normal Centronics cable obviously has the wrong connector on one end). You need to look for a IEEE 1284 DB25 M/...


11

The maximum size file that you can load with the built-in commands is 65280 bytes. This is using the address range of $0000-$FEFF for either BANK. There is no "wrap" ability to extend from bank 0 to 1. All of the BASIC commands (LOAD, DLOAD, BLOAD) rely on the kernal ILOAD code. The limitation is that the ILOAD code will not continue loading once ...


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

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 ...


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

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 ...


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