The Stack Overflow podcast is back! Listen to an interview with our new CEO.
40

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


31

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


24

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


24

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

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


19

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


17

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


16

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


12

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


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


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


8

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


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

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


7

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


7

Here are the answers of which I am aware, and I know there are others: https://jammingsignal.com/commodore-wi-fi-modem/ Schema's WiFi modem. Connects via the user port. Has a TFT display, and you connect to WiFi using Hayes-modem-like AT commands. http://www.lemon64.com/forum/viewtopic.php?t=65312 C64net WiFi modem from Central Texas Commodore Users' ...


7

If the contents of the Scott Adams' adventure cartridges for the VIC-20 are loaded into the same addresses on the Commodore 64 and executed, the games will behave on the C64 just as they do on the VIC-20 except that screen formatting will be a little wonky. If exactly 22 characters precede a line break, the next line will appear appended to the first (since ...


6

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


6

According to this Wikipedia article, the Z80 in the C128 was stepped down to 2MHz: 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 (instead of the more common 4 MHz). From the source code of the C128 CP/M implementation, it is clear that the engineers originally ...


6

WARNING: Electricity is dangerous. Don't open up your computer without turning off the power and allowing the capacitors to discharge. If you need these instructions for anything other than knowing how this particular computer works, do not try. The voltages involved can be fatal. Before starting Ensure the computer is safe from sparks. Place the ...


6

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


6

Was it the original intention to combine them? Or was it intended the way it was launched (two computers, or three in one case and that's it, simly said). Basically yes. It was a sounding approach to get more revenue from an, at that time already ageing, 8 bit concept without investing much, while running a small risk of failure, as there was no risk of ...


5

The easiest approach is probably to convert to a component video signal. If you pass the R, G, B, and I signals through a couple inverting buffers (so you have buffered versions of complemented and non-complemented signals) and formulated a composite sync signal, you could then use resistor dividers to generate Y, U, and V signals which could be fed into a ...


4

There is a series of cable variants called X1541 collectivly, which have been used as an adapter of the PC parallel port (when PCs still had an parallel port) to the Commodore IEC bus interface. This made it possible to connect a Commodore disk drive to an IBM PC, and also to emulate a Commodore disk drive by connecting the Commodore computer to the PC. ...


3

Novaterm 10 has built-in PPP and a telnet client. It does NOT have a working web or ftp client. You'll need a Swiftlink, Turbo232 or HART cartridge, a modem, and a dialup ISP. There are various ethernet cards like the 64NIC+, The Final Ethernet, and RR-Net which work with various software and alternative operating systems for the C64 including Contiki and ...


3

If you have a genuine CGA card, it should have a composite video output. I would recommend simply using that. For one, lots of devices still have a composite input, and the cables are very common. One thing that's often forgotten is that, for graphics, CGA composite video looks much better than CGA's notoriously horrible digital graphics. Games written ...


3

Stumbled upon this question. I experience this with defective trim capacitor C20 as well and can be an easy fix :-)


3

Most basic programs with no use of POKE command should work. The finest example is probably the Hello World program: 10 PRINT "HELLO WORLD" 20 GOTO 10 Besides that, some cassette games from VIC-20 should work on C64 because they load themselves from the datasette to RAM - they most probably won't refer to a weird memory location that on VIC-20 is on the ...


2

Others have pointed out the slowness causes, but here I will point out some solutions. Firstly, switch to ZPM which is a Z80 BDOS replacement for the 8080 based CP/M BDOS. CPMFAST is another option to speed up the general OS. From a programmers' perspective you can bypass BDOS and BIOS and drive the VDC directly as I've done in SG C Tools (also turn off 40 ...


2

As far as I know the Z80 only runs at the same 2MHz the 8502 runs at. Which, internally, works out to 2/4=0.5MHz. Which is just plain slow. Source: a guy who came to visit our desk last night and knew everything else about the machine. So take with a grain of salt and downvote as much as you like.


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