Keeping up with Commodore
Are you keeping up with Commodore? That's a really catchy comercial tune and a good guestion.
Commodore 64 was popular 8-bit home computer that was produced between August 1982 and April 1994. Introductory price was rather steep, about 600 USD alone for the computer and another 600 USD for the disk drive. For the Finnish Joe Average, that was quite a lot of money back in the days. The usual budget route was to get cassette player (branded as 'datasette') for a mass media solution and upgrade to floppy drive later. Despite of the price, Commodore 64 peneratration rate in Finland was the highest in the world. Compare that with the best education system in world and long dark and cold winters and you will get large amounts of young software and hardware geniuses. User guides were rather comprehensive and the infamous "Commodore C64 Programmers Reference Manual" even had the schematics printed for the machine! Skilled users could modify and repair their beloved computers.
That's for the nostalgy. Despite of the Commodore's way of producing computers as cheap as possible, there are number of fully working C64s in use. Software is being produced as well as new hardware ranging from IDE controllers to Wifi network adapters. Because everything is well documented there are also replacement parts for the Commodore proprietary ICs.
In the 80s, acoustic modems were available. The speed were ranging from 300 to 1200 bps. Usually the modem was connected to user port in the back of the Commodore 64. By design userport could do barely 2400 bps. However The RS232 routines in the ROM of the C64 use port B of the CIA (PB0-PB7 on the userport) to input/output all RS232 signals including Tx and Rx. So these routines don't actually use the shift register capabilities of the CIA, and have to do the shifting, parity calculation and bit-banging in software. That's the reason the speed is limited to about 1200 bps.
If the Tx and Rx signals are connected instead of port B to the serial port (SP) of each of the two CIAs (SP1 and SP2 on the userport), you can do the shifting etc. in hardware. The driver for this "special" wiring was called "UP9600".
This opens up several possibilites to get online with C64 in 2019. Most trivial is to build NULL modem serial cable from 5V FTDI USB-Serial cable and hook it with raspberry PI. Jim Brain has implemented a program called TCPSer, which emulates Hayes modem interface to serial port. Naturally you could do this with some serial-to-bluetooth serial bridge chip. You could even build yourself a WiFi modem using affordable ESP8266 chip and special firmware. There are couple of versions of this design avaible for DIY project or at affordable price from eBay. CC65 (C-Compiler for 6502 CPU) has reference driver included for UP9600.
Wouldn't it be cool to have C64 userport adapter for the Promistel Raspberry Pi hat? Afaik it would only require a level shifter, card edge connector and pin header.
Ultimate 1541 family of expansion cardridges and Ultimate 64 are devices where the most interesting development has been happening in recent years. 1541 Ultimate started as a disk drive emulator, but has evolved to multi purpose expansion cartridge with too many features to be described in detail here. Ultimate 64 is a spin-off product, that implements the full C64 system in FPGA and has all features from the Ultimate 1541 cartridge. Both ultimates have ethernet connection, that was originally intended for setting up the board configuration remotely over telnet or transferring files using FTP. However there's an API called ultimate command interface, which is accessible from Commodore C64 side.
Developer known by pseudonym XLAR54 kindly provides the documentation and API reference implementation in his GitHub repository called "ultimateii-dos-lib". If I'm going to connect to my gateway from C64, using the Ultimate route feels more attractive than UP9600.
In the golden 80s the major source of information were computer magazines such as C=, Transactor and Mikrobitti. Over the years, they published several articles about building things like weather stations and computer based lighting control using relays. Those articles were insperation to many youngsters like me to become engineers later on their lives.
If Nasa went to moon with only 4K of RAM, I feel that C64 has to be connected to wireles mesh network. Just because it's cool. Let's code like its 1989 again!
Ralf Schwoebel - are you in ?