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


42

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

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


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


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


22

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


21

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


19

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


19

(This answer is about using the built-in methods on real hardware. If it's about conversion of emulator files, then Brian's solution may be more suitable.) TL;DR: Saving a program as text onto a disk file (real or emulated) is essentially listing it, but redirecting output to a file - much like when printing it (on a real printer): OPEN 1, 8, 2, "0:...


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


15

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

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


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

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

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


11

Whatever would have taken place occurred inside the RF modulator: I haven't been able to find a C128 schematic that includes the modulator, however if it's anything like the C64 modulator, there's a current limiting resistor in the path between +9V UNREG, a couple of transistors (only the last of which is shown here) and ground. For this particular C64 ...


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

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


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


10

In the Commodore 128, the Video Display Controller (VDC) was used for the 80-column mode. Two variants of the VDC were used, the 8563 and the 8568. Looking at the POKEs, the address 54784 ($D600) is the index register for the VDC, while 54785 ($D601) is the data register. So those two POKEs write the value 232 ($E8) to register 9 of the VDC. Register 9 is ...


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

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


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


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