Hayes Transet

The Hayes Transet is a communications buffer that works with printers as a print buffer and with your modem as a mailbox. It includes sophisticated internal routing that allows data from one of it’s three ports to be sent to any other port (or all ports).

The Hardware

The Hayes Transet is housed in the typical extruded aluminum case, the same as their SmartModem line. Plastic caps on either end secure the motherboard inside. On the front, a series of LEDs show current status along with three push buttons allow for changes to certain settings. The power supply is a 13.5VAC wall wart (HAYES 52-00005) 700mA, 9.5VA. The Transet has no power switch, it’s always on.

The Transet CPU is a Motorola 68008 processor with either 128K of 512K of buffer RAM and 32K of EPROM. The EPROM is labeled “TS 1.17 1985” and can be downloaded below.

The rear ports are as follows.

  • S1 is a DE-9 male serial port and has a standard RS-232 pin out.
  • S2 is a DE-9 female serial port with a pin out that seems to be RS-422, similar to the Macintosh 128/512k serial ports.
  • P1 is a DA-15 female combination serial and parallel port.

The Manual

The Hayes Transet Users Guide/Manual and the Quick Reference Guide have been scanned and are available at the VTDA website.

The Software

To configure the Hayes Transet, you can use the build-in command set, which is very similar to the Hayes “AT” SmartModem commands. In this case, instead of typing three plus signs (+++) to enter command mode, the default character for the Transet is three dollar signs ($$$). You’re then greeted with the usual “OK” response.

You can also configure the Transet with the included software. Currently, only the Macintosh software exists, although it’s likely there was also MS-DOS based software included or available. You can download the Transet Software for Macintosh at the VTDA web site. Below are screenshots of the Hayes Transet Configuration application on System 7.1.

News

The following are contemporary articles and reviews of the Hayes InterBridge.

Hayes InterBridge

The Hayes InterBridge is “an inter-connecting ‘bridge’ that allows users of an AppleTalk network to tie into other AppleTalk networks.” This niche product was sold by Hayes in 1987 for $799 retail. There’s not a lot of information about this device left around so this page is an attempt to collect what I can find.

The Hardware

The InterBridge itself comes in the usual double height extruded aluminum case, like that of the Hayes Chronograph. The front and rear “caps” can be removed to remove the motherboard. It features two female DE-9 AppleTalk connectors and two male DB-25 connectors, typically for a connecting to a modem. The power supply is a Hayes wall wart model “52-00013” providing 14VAC @ 1.14AMP (16VA). The CPU is a Motorola 68008 (7.73Mhz) processor running AMX 68000 RTOS by Kadak Products, Ltd. It has 256K of RAM, 64K of ROM, and 256 bytes of EEPROM memory for storing settings.

The 64K EPROM is labeled as “V1.12, 04-00002, 1986”. You can download it below.

The Software (is missing)

The configuration software for the InterBridge is currently missing. Without a way to configure the unit, it’s of little use. If you have access to the InterBridge configuration software, please consider archiving it and uploading to Archive.org or leave a comment below.

The InterBridge is configured on a Macintosh computer via an AppleTalk network using the included InterBridge manager and the Zone Chooser DA (Desk Accessory). The software was delivered on at least a 800k Macintosh 3.5″ floppy.

Since the InterBridge is configured over AppleTalk, I decided to connect it to a Mac and use NetMinder to see if it could discover devices on the network. It was able to return a name of “ADMIN Basement” (presumably left in EEPROM by previous owner) and a service type of “InterBridge.” This was successful to confirm that the unit appears to be somewhat functional.

I also used Apple’s InterPoll v1.0.1 (available in the Administrator Tools folder of the CD-ROM image) software to perform a network search. It also revealed the InterBridge was functioning with the “ADMIN Basement” name but also showed a Zone name of “CENTRAL SUPPORT” (also presumably left in EEPROM by the previous owner).

In the June 1988 issue of MacWorld pg. 136, we get our first glimpse of what the InterBridge Manager software looks like.

In the June 1987 issue of MacWorld pg. 160, we see a screenshot of the InterBridge Manager software showing diagnostics and network statistics.

The Manual

Good news, the manual exists and should be available soon!

AppleTalk Ports Pin Out

The following pinout is unconfirmed and is based this document on how to create your own LocalTalk adapters. I didn’t have an LocalTalk adapter with a DE-9 plug. I used this to create an adapter for a standard PhoneNet adapter with a mini DIN 8 plug to a DE-9 plug.

DE-9 PinMini DIN 8Signal
34GND
46TX+
53TX-
88RCV+
95RCV-

News

The following are contemporary articles and reviews of the Hayes InterBridge.

Making DOS and CP/M 5.25″ Boot Disks with Commodore 128 and 1571 Floppy Drive

Did you recently get a new MS-DOS, KayPro IV, or Osborne 1 computer but no boot floppies?

If you have a Commodore 128 and a 1571 floppy drive, you might already know that you can read and write certain CP/M floppy formats while in CP/M mode. This is because the 1571 floppy drive can read and write two types of disk encoding schemes. GCR (Commodore, Apple, etc.) and MFM (common on CP/M and DOS platforms).

But so far, this has been limited to formatting disks and manipulating data at the file system level. Programs like Big Blue Reader and Super Sweep 128 allowed you to copy files between Commodore format and MS-DOS formatted floppies. This was a big step forward in compatibility at the time.

Today, there’s a need to create new floppies from disk images that you’ve downloaded. Most commonly, you’ve picked up a new computer and it didn’t come with any boot floppies and you don’t have access to a “tweener” PC (a PC that bridges the gap from the modern era to the 8-bit era, usually with the addition of a 5.25″ floppy drive). This was me recently so I decided to develop a way to write 5.25″ MFM floppy disk images for a number of platforms using a Commodore 128 and 1571 floppy drive.

To start, I located an article titled “1571 Utility Package” written by Dick Smit in Compute! Magazine, July 1987. The article contained a couple of type-in programs that created a toolkit for manipulating MFM disks. I built on top of this toolkit and created a suite of programs to make disk images for the following:

  • MS-DOS 360k (2 sides, 40 tracks/side, 9 sectors/track, 368,640 bytes)
  • KayPro IV (2 sides, 40 tracks/side, 10 sectors/track, 409,728 bytes)
  • Osborne 1 Double Density (1 side, 40 tracks, 5 sectors/track, 204,800 bytes)

Download The 1571 MFM Disk Image Writer

The 1571 MFM Disk Image Writer Toolkit is available as a .D64 disk image. (Download .D64, 175KB)

What’s Needed

To get started, you’ll need the following:

  • Input disk images must be “RAW” or “DSK” format and must be exactly the right number of bytes in file size as listed above. “RAW” format has no additional data in it, only raw sector contents in the right order.
  • Commodore 128
  • Commodore 1571 Floppy Disk Drive set as device 8
  • SD2IEC or other mass storage device to hold disk images set to device 9 or higher)
  • JiffyDOS is optional, but may improve write speeds

Making a Disk From a Disk Image

  1. Copy the 1571 MFM Tools disk image or copy the files from the disk image to your SD card and insert into your SD2IEC.
  2. Start the program by typing RUN”START”,U9
  3. At the menu, choose which type of disk image you want to make.
  4. At “FILENAME?” prompt, enter the disk image name and then device number where the image is located at “DEVICE NUM?” prompt.
  5. Insert your destination disk into the 1571 drive (device 8) and hit enter.
  6. The disk will be formatted and then the disk image will be written. Progress is shown on screen.

Northern Telecom Displayphone Firmware ROMs and Information

This page is intended to collect information about the Northern Telecom Displayphone terminal. If you have any additional information about the Displayphone, please leave a comment. I’m specifically looking for later revisions of the software found in EPROM on these machines.

If you need to familiarize yourself with the unit, have a look at Dave Dunfield’s Displayphone site.

Displayphone Models I’ve Had

I have encountered two types of Northern Telecom Displayphones:

  1. The regular Displayphone (model NT6K00)
  2. The upgraded Displayphone Plus (model NT6K90)

Displayphone Manuals

Displayphone Keyboards

I’ve seen the regular Displayphone NT6K00 with both the small chicklet keyboard as well as the upgraded keyboard. The Displayphone Plus NT6K90 I’ve only seen with the upgraded keyboard.

Displayphone Firmware Revision ROMs / EPROMs

Software in a Displayphone resides on EPROMs that are accessed by removing a trap door on the bottom of the unit.

Displayphone NT6K00 Firmware

I have encountered two revisions of firmware for the Displayphone NT6K00. The firmware is stored on five 2764 (8 kilobyte) UV EPROMs. In my testing of one machine, one ROM had failed with 5 bytes failing checksum.

Correct 16-bit checksum value appears to be the last two bytes of U49 ROM in little endian.

  1. Version “AA07” with the checksum of 4601 (hex). 1982 or 1983. Download Displayphone ROMs AA07 (26 kilobyte ZIP file)
    • U45, QQ6WM, A0298294
    • U46, QQ6WN, A0298295
    • U47, QQ6WF, A0298296
    • U48, QQ6WQ, A0298297
    • U49, QQ6WR, A0298298
    • Note: This version appears to disable the external (or “local”) RS-232 port in firmware and therefore not very useful.
  2. Version ” 6V0″ (there may be a space to the left of the 6) with checksum 5652 (hex).¬†Download Displayphone ROMs 6V0 (25 kilobyte ZIP file)
    • U45, A0295041
    • U46, A0295042
    • U47, A0295043
    • U48, A0295044
    • U49, A0295045
  3. Version “AA05” dated Nov 1982 sent by Andrew (see comments below) with checksum of 0C70H (hex). Download Displayphone Roms AA05 (24 kilobyte ZIP file)
    • U45, QQ4BT
    • U46, QQ4BU
    • U47, QQ4BW
    • U48, QQ4BX
    • U49, QQ4BY

Displayphone Plus NT6K90 Firmware

I have encountered one revision of the firmware for the Displayphone Plus NTK690. The firmware is stored on three 27128 (16 kilobyte) UV EPROMs and one 2764 (8 kilobyte) UV EPROM.

  1. Version “VT01B” with unknown checksum. Unable to verify if ROMs are valid, machine will not power up properly. Download Displayphone Plus ROMs VT01B (41 kilobyte ZIP file)
    • U31, VT01B 3, “21 MAR. 85”
    • U32, VT01B 2, “21 MAR. 85”
    • U33, VT01B 1, “8 MAR. 85”
    • U34, VT01B 0, “11 MAR. 85”

Performing a ROM Checksum

Perform a ROM firmware checksum on your Displayphone with the following key combination:

  1. Press SERVICES.
  2. Press zero on dial pad.
  3. At PASSWORD? prompt, hold SHIFT and press C on keyboard

Clearing Displayphone Memory

After each power on, you should clear the memory of your Displayphone with the following key combination:

  1. Press SERVICES.
  2. Press zero on dial pad.
  3. At PASSWORD? prompt, press 7 then 8.

Displayphone Power Supply

The Displayphone power supply is a triple voltage box-on-leash style brick with permanently attached cables. The plug that goes to the Displayphone is a DE9 female. I’ve encountered both a metal case and a plastic case style power supply.

The plastic style case (model NT6K01AA) is 110 VAC, 0.50 A input and has output ratings listed as:

  • +5V at 2.0 ADC
  • +12V at 0.8 ADC
  • -12V at 0.1 ADC

The power supply DE-9F pin out has been visually determined as follows (along with the cable color used on the NT6K01AA PSU).

  • Pin 1: +5V (white)
  • Pin 2: +5V (yellow)
  • Pin 3: N/C (purple)
  • Pin 4: +12V (orange)
  • Pin 5: N/C (red)
  • Pin 6: -12V (brown)
  • Pin 7: N/C (green)
  • Pin 8: Common (blue)
  • Pin 9: Common (black)

Opening the Displayphone Case

If anyone has any tips or pointers on how to open the Displayphone case, please leave a comment.

Update: Andrew confirms (in the comments below) to open the Displayphone case, you need to insert a tool into the back of the case to release an internal tab. Andrew used a multimeter probe.

Update: @TubeTimeUS has posted pictures of the take apart process including discovering there is a battery inside that leaks. If you have one of these units, you’ll want to remove the battery ASAP, clean the board, and examine for any damage.

 

Modern Upgrades for the Hayes Chronograph

Hayes Chronographs

Until recently, I had no idea what a Hayes Chronograph was. I didn’t even know it existed until Bill Lange (@BillLange1968) posted a picture of one on Twitter that linked to a wonderful article he wrote about them. The name Hayes was instantly recognizable though, being the inventors of the Hayes “AT” Command set that has found a way into just about every modem since. The shape was also familiar, a bigger version of the same case used in their Smartmodem 300. This was different. It had a beautiful vacuum fluorescent display (VFD) that was showing the current time and day of the week. I was hooked. I needed to buy this. What a wonderful trophy from the soon to come BBS halcyon days.

Hayes Chronograph, Smartmodem 300 and Bell telephoneThe purpose was simple– it’s a real time clock and calendar for your computer. At the time, many computers weren’t equipped with a clock or calendar. The Chronograph connected to your computer via RS-232 and communicated with “AT” commands (albeit slightly different than the modem command set). Manually set the time once from your computer and the Chronograph dutifully kept the time and displayed it on the front for you. Should your computer need to know the time, simply ask with “ATRT” and you’d get “193601” for 7:36:01 PM. Batteries inside kept the time in case of a power failure. It also has an alarm feature that will signal the computer on the “RI” (ring indicator) line. They were also designed to stack with other Hayes components, topped off with your classic Bell telephone.

As you might imagine, Hayes didn’t sell many of these at $250 each and ultimately production was short compared with their Smartmodem line.

I got in touch with the original seller, a previous employee of Hayes, and secured my purchase. He also had the schematics to the unit and has since uploaded it. Created in 1981, the units are now 36 years old. They still work beautifully but it’s time to breathe some new life into them.

I set about coming up with plans to make the Chronograph set the time on its own. I started this project by employing a ESP8266 WiFi microcontroller. This would give me access to NTP to set the clock and HTTP to allow for configuration. I’d need to write custom firmware to manage WiFi and NTP settings along with time zones and daylight savings time functions. I could re-purpose one of my WiFi232 units for the job by plugging it into the RS-232 port but it would need a gender changer, null modem and a power source– hardly elegant. Ideally, I’d like everything to fit inside.

Hayes Chronograph configuration pageThe firmware is based loosely on the WiFi232 and handles communication over WiFi, contacting an NTP server for the time, calculates time zone offsets and daylight savings time, a HTTP server for user settings, saving and retrieving settings from flash, and creates a WiFi access point when it’s unsuccessful at connecting as a client. I’ve added user features such as specifying the start and end dates for daylight savings time in your area, the time zone, NTP server, even the MDNS name. In addition, you can select if you’d like to display only the date, the time, or both the date and time on the front VFD screen.

Hayes Chronograph motherboard with prototypeI prototyped a simple version with an ESP-01 on a breadboard and used spring loaded pin grabbers to attach to the PIC1650A chip for power and data. And much to my surprise, it worked! It even worked with the board was slid back into the aluminum enclosure (I assumed the the metal case would diminish the WiFi signal and not work). I jumped into KiCAD and drew up a quick adapter board. It fits in the 40 pin DIP socket below, provides a 40 pin DIP socket above and adds a ESP-01 header along with the necessary 3.3v bits.

Hayes Chronograph motherboardWith both the firmware and an adapter board two weeks later from OSH Park, it was time to insert it into the Chronograph and see if it works. My initial test provided to be bad– it blew a fuse on the Chronograph. This had me totally bummed. For the next hour, I poured over datasheets, checked my schematics, and probed with a multi-meter. Nothing.

Suddenly, I realized I had the ESP-01 plugged in backwards! I flipped it around, changed the fuse and it worked! Power on the Chronograph and after a few seconds the date is displayed on the front. Afterwards, the time is set (at the top of the next minute– seconds must be set to “00”).

Hayes Chronograph VFD and motherboardSomething very important to me is that this mod is reversible and non-destructive so you can return it to normal simply by removing the adapter PCB.

The load on the AC original power supply adds 20mA draw on the 120V side (.13A to .15A).

I’m happy with the way this project turned out. I received the clocks on July 13 and finished the project on July 31 with working firmware and a non-destructive adapter PCB that installs inside that adds modern amenities to 36+ year old computer clock. Not bad for two weeks of work!

If you have a Hayes Chronograph and are interested in one, get in touch with me.

Hayes Chronograph and Smartmodem 300

Atari Portfolio Serial Interface: How To Get Terminal Software

I’ve had an Atari Portfolio HPC-004 for a couple of years now. It’s a slick little palm-top: solid state memory, MS-DOS compatible, 4 AA batteries as power source. It also has a docking slot on the right side for extra peripherals. This enables you to add communications ports that are otherwise lacking like a parallel or serial port. I’ve been seeking a second hand serial interface (HPC-102) for some time but have come up empty. I decided to instead purchase one new.

Atari Portfolio and Serial Interface

Atari Portfolio and Serial Interface

Yes, Brad at Best Electronics still has a stock of new and reconditioned Atari Portfolios and peripherals, including a brand new Serial Interface for $59.95. The only caveat is the manual is in German only. No big deal considering it doesn’t really need a manual.

The Serial Interface is about 1/3 the size of the Portfolio and gives you a standard 9-pin RS-232C serial port capable of 110 to 9600 baud. You can change the parameters of the serial port by accessing the Portfolio’s setup menu with Atari-S. From there, choose RS-232 port and which reveals settings for baud rate, parity, and data and stop bits.

Atari Portfolio Serial Interface and Manual

Atari Portfolio Serial Interface and Manual

This is great, but now you need a communications or terminal program to actually do anything useful like transfer files or dial a BBS. I did a quick search and it seems that the easiest method to transfer files is to use the built in file transfer utilities with the Parallel Interface.

Your use may require additional hardware/software.

Your use may require additional hardware/software.

Unfortunately, I don’t have one so I kept searching. Another link listed a method to hand-type in binary code which resulted in a small program to transfer a file using the serial port. The method looked like it was easy to make mistakes, so I passed.

Another link detailed the method I was looking for. This method used the DOS copy command to save data from COM1 that was transmitted from a PC with a serial port. I don’t actually have a PC with a serial port anymore, so I had to use Virtual Box on a Mac with a USB to serial adapter. The instructions called for setting the baud rate initially to 110 for the DOS copy command. My guess is this is likely due to keep the speed as low as possible since there’s no error checking.

USB to serial null modem cable

USB to serial null modem cable

I connected the Portfolio with a USB to serial null modem cable and proceeded to give it a try. I setup everything and ran STARTX.BAT. This is where I had problems– it kept failing. I tried several different USB to serial adapters, different cables, confirmed wiring. All ended with “Not ready error, Abort, Retry, Ignore?” on the Portfolio and an empty file. I began to wonder if existing USB to serial adapters can even do 110 baud any more. I wasn’t able to find any conclusive evidence they didn’t support 110 baud, nor any that confirmed they did. All spec sheets listed 300 as the lowest.

I should able to use any baud rate I’d like, as long as I slow the per-character flow over the link. I remembered that CoolTerm has a setting that lets you add a transmit delay for each character. I abandoned the Virtual Windows instance and went to CoolTerm. Here are my steps.

How to transfer xterm to an Atari Portfolio with a Mac or PC

  1. Connect the Mac/PC and Portfolio together with the USB to serial null modem cable.
  2. Download xload.zip and xterm2.zip. Unzip both. (On my Mac, I had to use the command line unzip tool in Terminal.)
  3. Set CoolTerm on the Mac/PC and the Portfolio to 300 baud, 8N1 and no flow control.
  4. Set CoolTerm to have a transmit delay of 10ms.
  5. Type “copy com1 xload.com” on the Portfolio (don’t hit enter yet).
  6. Choose “Send Textfile” in CoolTerm and select the “xload.com” file (don’t hit OK yet).
  7. Hit enter on the Portfolio and then hit OK on CoolTerm.
  8. The file should be sent and you should see “1 file(s) copied.”
  9. Change the baud rate to 1200 baud on both CoolTerm and the Portfolio.
  10. Remove the transmit delay in CoolTerm.
  11. Type “xload.com” on the Portfolio (don’t hit enter yet).
  12. Choose “Send Textfile” in CoolTerm and select the “xterm2.com” file (don’t hit OK yet).
  13. Hit enter on the Portfolio and then hit OK on CoolTerm.

Atari Portfolio with xterm

Atari Portfolio with xterm

If everything worked, you should be rewarded with a terminal program on the Portfolio. Type “xterm” to launch it. Change baud rates using the same system setup menu (Atari-S). Receive a file with XModem with F2.

If you received a single character response from xload, you can look up the error code by reading the “startx.bat” file.

Atari Portfolio and WiFi Modem

Atari Portfolio and WiFi Modem

Now you’re ready to hit the boards and relive the hay-day of computing before the Internet. Use tcpser to setup a virtual modem with your Mac, PC or even a Raspberry Pi. Or if you’re lucky enough to have a WiFi modem, you can use those too. For a list of online BBSs, visit the Telnet BBS Guide.

Let me know if you’re able to get it working in the comments.

 

Convert a Commodore 64 from NTSC to PAL format

If you’ve ever used a NTSC Commodore 64 for any length of time, you’ll quickly find out that many games and demos you try to run on your machine sometimes exhibit strange graphic or sound glitches or just refuse to run properly at all. It’s most likely because the program you’re trying to run was originally written on a PAL machine. With it’s different VIC-II chip generating a different master clock signal, the PAL C64 has a few more cycles available per frame than the it’s NTSC counterpart. Tightly coded loops in programs rely on a certain number of cycles to be available. And when they’re not, well, it doesn’t work as intended.

If you happen to own a C64 “short board” system, you can convert your NTSC machine to a PAL one easy. If you are unsure which board you have inside, you can open it up and take a look or make an educated guess by reading this site. A SID 8580 is usually a good sign you have a short board. But please make sure you confirm your board type before you begin. The VIC-II types (65xx vs 85xx) are not interchangeable!

Once you’ve determined you have a short board C64, gather these two parts.

  1. MOS/CSG 8565 VIC-II PAL Chip (eBay, $23)
  2. 17.734475MHz crystal (Mouser.com, <$1)

A C64 short board, showing NTSC specific components (circled).

A C64 short board, showing NTSC specific components (circled).


Steps to conversion:

  1. Replace the existing VIC-II (8562 NTSC) chip with the new (8565 PAL) chip. You’ll most likely find the existing VIC-II chip to be socketed on the motherboard so removal will be very quick and easy with a small flat head screw driver.
  2. Replace the existing crystal. You’ll notice the old crystal is rather large compared to the new one. It’s fine, you’re just benefiting for 30+ years of innovation to make parts smaller now. De-solder the old crystal or clip the legs and remove each leg. Solder in the new crystal– polarity doesn’t matter. You don’t need to worry about replacing the old crystal’s wire “belt” that went over it.
  3. Solder across “J3” on the motherboard next to the VIC-II (it’s labeled OPEN: NTSC, SHORT: PAL).

A C64 short board, showing PAL specific components (circled) converted from NTSC.

A C64 short board, showing PAL specific components (circled) converted from NTSC.


That’s it. Now, you’ll need a display that’s capable of working with a PAL signal. A NTSC 1702 monitor will probably only show a black and white PAL image. Your easiest solution is to use a LCD monitor that has composite or s-video inputs. Most modern LCD displays are “world displays” and will support NTSC and PAL signals. Unsure? Check your manual or just test it. If you are keen on staying on the CRT route, check out Sony PVM “studio” monitors as some of those models supported NTSC and PAL.

And forget about using the RF out as the channel positions are different (but you weren’t going to use that anyway, right?).

Enjoy the brand new world of European games and demos!

RS-232 for Commodore PET and Dialing a BBS over WiFi

Commodore PET running WordPro Four Plus.

Commodore PET running WordPro Four Plus.

I’ve owned a Commodore PET* 8032 for a few years now. I’ve been able to download and run many different programs for it, like WordPro you see above. But one thing always remained elusive. I’ve long wanted to connect it to a standard RS-232 device and use it as a terminal. The PET’s classic shape, green monochrome monitor, and 80 column display all lend itself perfectly as a terminal.

Like it’s much more popular successors, it too lacked proper RS-232 UART hardware. Adding a modem meant you either had to purchase a IEEE-488 enabled modem (Commodore made the 8010), purchase an add-on board for your PET, or use the existing parallel user port to “bit-bang” RS-232 serial signals. The later is exactly what the Commodore VIC-20, C64 and C128 do– simulate RS-232 on user port pins by the CPU rapidly turning outputs on and off. They even have KERNAL ROM code (albeit broken at high speeds) that did the RS-232 handling for you.

The PET lacks this ROM code but it can added to drive RS-232 TTL signals over the user port. I found two methods that did this– a commercial product and a freeware one.

Before we continue, please– if you attempt any of this, make sure you understand the difference between RS-232 TTL level signals (0v to +5v) and proper RS-232 level signals (-13v to +13v or more). Connecting proper RS-232 level signals to your PET will damage your computer and make you sad. See this explanation for SparkFun about the differences in RS-232 levels.


The first was McTerm which was produced by Madison Computer. I knew of this company since I owned their McPen lightpen system for the VIC-20 and C64 but I didn’t know their pedigree went that far back. It was sold as three parts– software on floppy, a ROM chip that had to be installed inside the PET, and a user port cable that connected to the RS-232 device. I located the software and the ROM online [local cached copy] but I’ve never actually seen the user port cable before so this was going to be challenging.

The first step was to create the ROM using an EPROM. On the PET 8032, the ROM slot is UD12 which maps to memory location $9000. The ROM code was only 2 Kbytes but I only had 4 Kbyte EPROMs. That’s OK, I just filled the other half with 0xFF. The next problem was the PET ROM slot expected a 2532 style pinout but my EPROM was a 2732 which has a slightly different pinout. Luckily, this can be overcome by making an adapter carrier to swap the 3 of the pins around. This site was useful in creating the adapter so I won’t go into that here. (Note: There’s two adapters on that site, make sure you’re building the 2732 -> 2532.)

Next was the software, which was easy enough to transfer to a 1541 floppy disk that can be read with the IEEE-488 enabled Commodore 2031 Single Floppy Disk drive. I put it as the first item on the disk so the “shift-run/stop” trick will load and run the first item on the disk.

Finally, I needed to figure out how to make the cable. I was going to need to test the user port pins to locate which ones the program was using. I examined how the VIC-20 and C64 do RS-232 over the serial port first. Immediately, I found that pins B and C were tied together for receive (RX). Pin C is PA0 which is a GPIO pin and B is /FLAG2 which I believe is for an interrupt. This makes sense since you want to immediately begin processing incoming data as soon as possible. The PET user port pin B is CA1 is is also for an interrupt. I had a hunch it may be used the same way.

To test the pins, I tied pins B and C together and connected to a USB RS-232 TTL adapter. I used a terminal program called CoolTerm, set the baud rate properly and tried sending characters. Nothing. I then tried B and D. Nothing. I kept trying until I landed on B and F. This DID give me something on the PET screen. It wasn’t correct, but it was receiving something.

I repeated this hunting for the transmit (TX) pin but this time only on a single pin. I found pin H was being using for transmit but again, it wasn’t recognizable characters from the PET but something was being transmitted.

Next I wanted to troubleshoot the characters not being displayed right. First thing was maybe it was the wrong number of data or stop bits or even parity. I tried many different combinations: 7n1, 7e1, 8e2, etc. None of them seemed to make a different. Typing the alphabet “abcdef..” seemed to return the alphabet but in seemingly reverse order with some other characters interspersed.

I decided to get the scope out and look at the differences between the USB RS-232 and PET signals. I decided on the ‘0’ character since it’s the same for ASCII and PETSCII just in case that might be part of the problem. Below is a comparison of the two.

Top is a Mac and USB Serial TTL cable. Bottom is a Commodore PET transmitting via user port on pin H.

Top is a Mac and USB Serial TTL cable. Bottom is a Commodore PET transmitting via user port on pin H.

Immediately you can see the issue. The Commodore PET is using a logic low for false and logic high for true (which I’ve learned is called “non-inverse”). Standard RS-232 TTL signals are “inverse” of this using logic high for false and logic low for true. This would explain what I’m seeing since the bits are reversed. I connected the pins through a 7404 inverting IC to invert the singals to and from the PET.

Commodore PET 8032 and inverting circuit.

Commodore PET 8032 and inverting circuit.

This yielded partial success. I was now able to send characters to the Commodore PET.

Commodore PET displaying Hello World message sent from a Mac over RS-232.

Commodore PET displaying Hello World message sent from a Mac over RS-232.

Sending characters from the PET to the USB RS-232 TTL adapter revealed that it was setting bit 7 high. If bit 7 was set low, it would be working fine. I’ve still yet to figure this out. If you have an idea, leave a message in the comments.

I later found in the BASIC code of McTerm on line 1070 was a way to use inverted RS-232 which does work without the inverting circuit.

1070 sysa :rem ***** use a for regular modems, a+36 to invert


The second method was found in Transactor Magazine issue 3 volume 6. It included a type in terminal program (simply called “Terminal v11”) and simple instructions for building a user port cable. I believe this program was created by Steve Punter, who also created the only known BBS program for the Commodore PET. Being a type-in freebie in a magazine, it wasn’t as full featured as McTerm but it does do automatic PETSCII/ASCII translation and has file transfers using an early version of the Punter protocol. It is locked to 300 baud however.

Commodore PET Terminal type in program.

A portion of the Commodore PET Terminal type in program.

Next up was the software. I really didn’t relish the idea of reliving that part of my childhood and typing all of those DATA statements. Modern technology to the rescue in the form of a free online OCR service. Much to my surprise, this service worked extremely well. I did have to process each column of code separately by extracting each from the PDF as a JPG. The most OCR errors were in the BASIC program but it was still dramatically lower than what I expected. Between the two ML programs with the DATA statements, those only had a single error! I later found version 12 of Terminal was available here [local cached copy].

This time, the PET user port pins were listed. Pins B and L are for RX and pin C is for TX. I swapped my user port adapter cable around to match this pinout, ran the signals through the inverter circuit and tried it. Immediate success in both directions!

Commodore PET and MacBook Air communicating over a RS-232 serial connection.

Commodore PET and MacBook Air communicating over a RS-232 serial connection.

Now that I have a working RS-232 cable and software for the PET, we can put it to use. I connected it to a SparkFun ESP8266 breakout board. This board connects over WiFi and can support a standard Hayes modem AT command set with the right firmware.

ESP 8266 wired to Commodore PET user port edge connector through a 7404 inverter circuit.

ESP 8266 wired to Commodore PET user port edge connector through a 7404 inverter circuit.

With this adapter, I’m able to “dial” into BBS systems that are accessible via IP. One such board is Level 29 which is run by @FozzTexx.

ATDT bbs.fozztexx.com:23

Commodore PET dialed into Level 29 BBS over WiFi.

Commodore PET dialed into Level 29 BBS over WiFi.

So, was non-inverted RS-232 TTL a standard 30 years ago since two separate terminal programs used it? When did inverted RS-232 TTL become the standard?

So, until I can figure out what’s wrong with McTerm transmitting with bit 7 set, use Terminal instead and you can use RS-232 on your PET.

*Actually, Commodore dropped the PET moniker shortly after they introduced the line and changed it to just CBM. The name PET just fits better I think.

LumaFix64: Commodore 64 with less stripes

Commodore 64
You might be asking yourself, less stripes? No, not the colorful stripes on your breadbin badge. We’re talking about the stripes on the video image. The same stripes that we’ve all become accustomed to over the many years of playing Commodore 64 games, watching demos and carrying on with modems and BBS’s. These stripes, which are actually interference, come in a variety of flavors: horizontal, vertical, and checkerboard patterns. The intensity of the stripes also varies from machine to machine. Some say with that these stripes become even more apparent when using a C64 with a modern LCD monitor.

Whether you love them or hate them, there is a solution for easing or even completely eliminating the stripes all together. The user e5frog on lemon64.com came up with a design for a carrier PCB that would sit between the VIC-II and the motherboard. It’s purpose was to invert certain signals back into itself, each with an adjustable degree. These signals AEC, PHI0 and chroma are all thought to contribute to the stripes on the final output image of the C64. It’s a fascinating discussion that I urge you to read.

A LumaFix64 with manual and installed inside a C64 with a short board.

A LumaFix64 with manual and installed inside a C64 with a short board.


The board is available from a variety of places, built or bare and costs between $15-$30 shipped.

To test, I picked a C64 from my collection that exhibited the most stripes. It’s a PAL German C64 with a short board and a white keyboard. It’s basically a C64c inside a breadbin. For comparison, I wanted to make sure the pictures were taken the same. The camera was locked to a tripod, set to manual exposure, manual white balance and manual focus. For each picture, there’s an original shot of the unmodified C64 and one with the same C64 with a LumaFix64 installed. The C64 is connected to a Dell LCD widescreen display via a s-video lead. I used the three trimpots on the LumaFix64 PCB and dialed in each one according to the directions until the picture was as clean as possible. Below are the before and after pictures. Click each image to embiggen.

What do you think? Will you be purchasing a LumaFix64 for your C64? Or will you be sticking with your stripes for more authenticity? Let me know in the comments.

Top: original, bottom: LumaFix64

Top: original, bottom: LumaFix64


Top: original, bottom: LumaFix64

Top: original, bottom: LumaFix64


Left images: original, right images: LumaFix64

Left images: original, right images: LumaFix64


Left: original, right: LumaFix64

Left: original, right: LumaFix64


Top: original, bottom: LumaFix64

Top: original, bottom: LumaFix64

SX-64 Short Expansion Board

SX-64 Expansion Boards, original and new, front and back views.

SX-64 Expansion Boards, new (top) and original (bottom), front (left) and back (right) views.

If you were following along with my previous post about converting an SX-64 to a DX-64 by adding a second floppy drive, you’ll know that the process isn’t without it’s problems. There are some irreversible changes that need to be made to the case to accommodate all the extra equipment.

The SX-64 Second Floppy doesn't leave enough room for the EXP Connector board to mount to it's original location. There are alternatives.

The SX-64 Second Floppy doesn’t leave enough room for the EXP Connector board to mount to the original location. There are alternatives.


In addition, there’s no room for the cartridge board, also referred to as the “Exp. Connector PCB”. The second floppy drive leaves no room for the original board to rest in it’s original location.

Some have been able to work around this problem by flipping the board around 180 degrees. This can be problematic since now all cartridges need to be plugged in backwards. While that may work for some, I think it could lead to me forgetting and plugging in something the wrong way. I’d hate to damage a 1541 Ultimate II cartridge this way.

Since the location of the cartridge slot is so critical due to the spring-loaded door opening on the top case, I decided to create a new expansion board that was shorter. The original board is 1.75″ tall. My new board needs to be no larger than 1.4″ tall.

I’ve been learning my way through KiCad creating some cartridges for the Timex Sinclair 2068 and the Commodore 64 so this project seemed easy enough. The board is basically just a passive connector between a cartridge edge and a ribbon cable. The hardest part was measuring everything to ensure I had everything lined up just right. I even created the two parts from scratch, laying out the pins and pitch between them.

SX-64 Short Expansion Board, Pin holes are too small

SX-64 Short Expansion Board, Pin holes are too small

My first revision of the board came back from Oshpark and it looked great. I immediately fire up the soldering iron only to discover I’ve made a mistake– 44 of them to be exact. I didn’t make the holes large enough for the pins of the cartridge edge connector. Bummed, I returned to KidCad to fix my mistake and submitted a second revision and the pins fit as they should.

The next step is to make the ribbon cable. You’ll need these parts.

SX-64 Expansion Connector Ribbon Cable. The orientation of the connectors is important.

SX-64 Expansion Connector Ribbon Cable. The orientation of the connectors is important.

Crimp the connectors on the ribbon cable, matching the orientation of the original cable. I find an easy way to crimp IDC connectors is to use a bench vice. Lightly press the connectors together with the ribbon cable in place, plug them into one another and sandwich it in the vice using an old magazine to protect the connectors from the metal on the vice. Close the vice until the pins are no longer visible.

SX-64 Expansion Connector PCBs, Original and Short

SX-64 Expansion Connector PCBs, Original and Short

Solder the edge connector and ribbon cable on and install in your SX-64. The clearance is still tight, but should now fit.

SX-64 Short Board Expansion PCB installed next to a second floppy drive.

SX-64 Short Board Expansion PCB installed next to a second floppy drive.

Warp Speed cartridge plugged into SX-64 new short expansion board PCB (shown without top case cover).

Warp Speed cartridge plugged into SX-64 new short expansion board PCB (shown without top case cover).