11

I recently saw a video made by the famous "The 8 Bit Guy" about PE6502 computer. At 19:41, he successfully sent a text file from his Windows 95 laptop to the PE6502 using only a standard serial cable.

I got interested in this topic and looked if anyone had ever come up with something similar to send text to the Commodore 64 (I am a C64 newbie btw).

I found that there were many similar projects, but they all used UserPort on the C64 side, rather than SerialPort, and I am not sure why they used that port. They also required special software for the C64.

Is it possible to transfer text or files from PC to C64 without any software on the C64 side, using similar method as on 8BitGuy's video? If so, how to do it?

1
  • Something present on the (far more expensive) Apple ][ when equipped with an "Apple Super Serial Card", but sorely missed on the C64, was a standard port and in-built firmware for redirecting the keyboard/screen to serial such that you instantly had a functional terminal to another system. – Brian H Dec 1 '20 at 21:05
16

The C64 does not have a real standard RS-232 port. (The C64 port marked Serial is something quite different, namely its native IEC port.)

The User Port, however - apart from being usable as a a parallel port - can almost be used as an RS-232 port as well.

The "OS" (kernal) has support for it, but the voltage levels are +5/0 instead of the ±12V of RS-232 so there's a need for some level shifting, which can be trivially handled by an external MAX232 IC. So reasonably easy to homebrew an adaptor - there were also commercial options, of course.

With such a solution in place, you can indeed talk to the C64 using standard RS-232 and standard kernal I/O routines (at limited baud rates!), including from BASIC.

You will need some software running on the C64, though, as there is no built in support of redirecting the RS-232 port to the keyboard input in the way the PE6502 has implemented it in the video you mention.

7
  • 1
    RS232 to TTL (5V) level converter boards used to be very cheap and readily available (not so sure if that's still the case as these days people usually access TTL serial ports using a USB-based adaptor as per Colin's answer). – Rodney Dec 1 '20 at 9:49
  • 5
    If you're using a modern PC with a USB-serial converter, that may already be 5/0V – Chris H Dec 1 '20 at 12:16
  • 2
    Re: "+5/0", That sounds compatible with a "TTL-232R-5V" USB<=>async serial adaptor from FTDI. Google "TTL-232R-5V" to find sources: – Solomon Slow Dec 1 '20 at 16:11
  • 1
    A lot of today's devices with "serial" ports actually use +5/+0 levels instead of +/- 12. Many use +3.3/+0 which is potentially just as good, because a TTL high is really about +3.3 volts (sometimes as low as +2.5) even though it's nominally +5; meanwhile the modern CMOS at 3.3V will drive the signal to full +3.3, which is compatible with the TTL input. In a product to sell, this is no good; if your goal is to wire something up in your basement, you may get away with things like this. Make sure the CMOS output can sink enough current (TTL inputs source current). Get out your voltmeter! – fluffysheap Dec 2 '20 at 0:37
  • And, in case anybody here doesn't already know, FTDI also makes a 3.3V adapter: TTL-232R-3V3. But beware! The "V+" output from the "3.3V" FTDI adapter is 5V. Only the signals are 3.3V. – Solomon Slow Dec 2 '20 at 15:59
5

Once you get the cable sorted out, you might want to investigate the program called Kermit. It was widely used to transfer data between various types of computers over serial links before networking was widely established. There is a version of Kermit specifically for the C64 in the Columbia University archive, see http://www.columbia.edu/kermit/c64.html or the Kermit project site http://www.kermitproject.org/ . Of course there are Windows/Linux/MacOS versions of kermit for the other end.

3

There's a company called FTDI who make cables which fit this purpose, they're USB on one end (your PC), and the other end can be wire ended or have a connector. In @Retrograde's answer it's stated that the voltage levels are +5/0 V so something like the TTL-232RG-VSW5V-WE from FTDI should work.

I am in no way affiliated with the company, I just use some of their products in my working life and they seem reliable.

3
  • But note what other answers say! The port on the C64 that's labelled "Serial" is not an async serial port. – Solomon Slow Dec 1 '20 at 16:13
  • 2
    @SolomonSlow: Indeed, one would have to use the "user" port, but it can communicate at 2400 baud with the Kernel routines, or at 19200 with custom-written routines. – supercat Dec 1 '20 at 16:44
  • In the modern world of USB, this is a very neat answer. – Prof. Falken Dec 2 '20 at 15:16
1

Is it possible to transfer text or files from PC to C64 without any software on the C64 side, using similar method as on 8BitGuy's video? If so, how to do it?

The C64 does not have a RS-232 port, so you cannot use a standard RS-232 adapter on the PC side without having some hardware and software on the C64 side.

However, you can use the IEC bus on the C64 (where normally the 1541 Floppy is attached) without modifications on the C64 side. But then you need special software (and today, also special hardware) on the PC side.

Back when all PCs had a parallel port, a simple self-soldered cable called X1541 cable was all that's needed. Special software on the PC driving the IEC bus through the parallel port could then emulate a floppy, so you could transfer data.

Today, PCs don't come with a parallel port, and the USB-to-parallel converters don't offer the same flexibility as an in-built parallel port, so the modern equivalent would probably be a RaspPi or something similar with a level converter, and a port of the software. I found at least one project (CBM PI1541) with that approach.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.