SkillAgentSearch skills...

Retroterm

Multimedia terminals for the Commodore 64, Commodore Plus/4 and MSX computers, implementing the Turbo56K protocol

Install / Use

/learn @retrocomputacion/Retroterm
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

<div align = center>

Retroterm

VERSION 0.31

Jorge Castillo & Pablo Roldán

Badge commodore Badge MSX1 GitHub all releases Badge license Discord


</div>

Table of contents:

  1. Introduction
    1. Release history
    2. The Turbo56K protocol
    3. Features
    4. Requirements
  2. Usage
  3. Building
    1. Symbols
    2. Intro screen
    3. Customizing
  4. Known bugs
  5. To-do
  6. [Wi-fi modem schematics]
    1. Commodore
    2. RS-232
    3. MSX printer port
  7. Wi-fi Modem setup
  8. Acknowledgments

1 Introduction

Retroterm is a small terminal with multimedia functions for the Commodore 64 / 128 (in 64 mode), Commodore Plus/4 and MSX1.

It implements the Turbo56k protocol for high speed data transfer & streaming when connecting to a BBS supporting the protocol, such as RetroBBS.

Data rate is fixed at the following speeds:

  • 57600bps for Retroterm 64 for userport and Turbo232**
  • 57600bps for Retroterm MSX for parallel port (very alpha state - candidate for deprecation)
  • 38400bps for Retroterm 64 for Swiftlink**
  • 38400bps for Retroterm MSX for parallel port (alpha state - mostly stable)
  • 19200bps for Retroterm Plus/4**
  • 19200bps for Retroterm MSX for RS232
  • 57600bps for Retroterm BadCat (Zimodem firmware)

(**)The full data throughput while using the turbo transfer / streaming can only be achieved with the screen disabled.

[!IMPORTANT] If experiencing PCM audio stutter with U1541-II, Ultimate 64, or Commodore 64U internal Swiftlink emulation, you need to the value of Modem Settings->Tweaks->Loop Delay to 10ms

The effective throughput for text is 1500 / 1800bps depending on PAL/NTSC timings respectively.

Retroterm is optimized for use with Wi-Fi modems using the Zimodem firmware.

It also runs on the latest VICE/Z64K and openMSX emulators.

Separate Commodore 64 versions of the executable are provided for cartridges featuring an ACIA 6551 such as SwiftLink (limited to 38400bps) and Turbo232.</br> The Commodore Plus/4 version is limited to the maximum speed for the built in ACIA: 19200bps<br> The MSX 1 RS-232 version (rt-232.com) is also limited to 19200bps, and only supports RS-232 interfaces that adhere to the MSX standard (ie: SVI-738 and HX-22 built-in ports, SVI-737 and Sony HB-232, or any other interface implemented with the i8251 + i8253 USART and Timer combo)<br> The MSX 1 BadCat version (rt-bd.com) works with the BadCat cartridge or any other RS-232 interface that uses the i16550 UART.<br> The MSX 1 printer port versions use a simple printer port Wi-fi modem interface. The 56K version has reduced capabilities.

1.1 Release history

v0.31:

  • Fixed startup when running Retroterm with no disk drive attached on Commodore 64.

v0.30 (12/January/2026):

  • New MSX ports
  • Turbo56K v0.8
  • Drawing primitives: clear screen, plot, line, box, ellipse, fill
  • Ability to save a configuration file to disk. Optional modem init string with selectable 300,1200 or 2400 baud speed.
  • Phone book with up to 5 preset dial strings, also saved to the configuration file.
  • Bugfix, all ports: No more missing filename characters when downloading to disk
  • Bugfix, C64 ports: Fixed glitched sprites after downloading to disk

v0.21 (Intermediate Github version, no oficial release):

  • New shortcut key for the Plus/4 port: CBM+, disables/enables the FLASH-ON control code. Improves compatibility with BBSs running Centipede 128 software.
  • Bugfix for the Commodore 64 ports: No more extraneous beep after streaming PCM audio.

v0.20 (02/January/2024):

  • Turbo56K v0.7
  • New Commodore Plus/4 port. Turbo56K v0.7 commands implemented, except for the ones regarding SID tune streaming.
  • Fixed bug in command $A3 which caused the parameter to be misread, or the terminal to hang
  • New command $86 to initiate a download to disk.
  • New command $B6 to scroll the text window up or down X number of rows.
  • SID streaming now better supports tunes using hardrestart, a special version of SIDdump and updated version of RetroBBS is required.
  • New compile target ultimate compiles with timings compatible with the Swiftlink emulation in the Ultimate1541-II/II+ and Ultimate64.
  • Basic configuration screen by pressing CBM+F7, terminal screen is not preserved.
  • ACIA based versions now allow selection of the interface base address ($DE00 or $DF00).
  • Connected disk drives are scanned on first run, and can be selected when downloading a file with command $86.

v0.14 (13/April/2022):

  • Source code liberated
  • Turbo56K v0.6
  • Fixed small visual glitch when using the split screen mode
  • Better, more robust exit to BASIC
  • Disabled interrupts on command $A2, prevents crashes if (re)connecting to a BBS while the split screen mode is active
  • Fixed severe bug affecting the text output in early Commodore 64 Kernal revisions
  • Full digi-boost for 8580 SID
  • Intro screen exits automatically after ~2 seconds by default
  • Other small bugfixes.

v0.13 (16/August/2021):

  • Initial release
  • Turbo56K v0.5

1.2 The Turbo56K protocol

Turbo56k was created by Jorge Castillo as a simple protocol to provide high-speed file transfer functionality to his bit-banging 57600bps RS232 routine for the C64. Over time, the protocol has been extended to include 4-bit PCM audio streaming, bitmap graphics transfer and display, SID music streaming and more.

1.3 Features

Implements all commands of the Turbo56k v0.8 protocol.

  • Full duplex PETSCII (Commodore versions)/ASCII (MSX versions) color terminal
  • Turbo data transfers to custom/preset memory locations
  • Split Screen | Hi-res or Multicolor+Text
  • Up to 11520Hz 4-bit PCM audio streaming
  • Bitmap display | Hi-res + Multicolor (Commodore) | Screen 2 (MSX)
  • Uses 16K of RAM above $C000 (For the Commodore 64 versions), the rest of the RAM is free to use as a buffer, load programs, graphics, etc.
  • 1x speed SID music streaming (C64 versions)
  • PSG music streaming (MSX versions, except rt-56k.com)
  • Scrolling Text Windows
  • Set Cursor Position
  • Text Line Fill
  • Bidirectional scrolling
  • Download files to disk
  • Graphic primitives, draw onto Hi-res/Multicolor screens
  • Phone book with 5 entries

1.4 Requirements

  • A Commodore 64 (or Commodore 64U), 128 or Plus/4 computer, or an emulator such as VICE or Z64K.
  • Either an userport Wi-Fi modem with the Zimodem firmware or...
  • A SwiftLink or Turbo232 compatible cartridge connected to a Wi-Fi modem with the Zimodem firmware.
  • An MSX1 or superior computer with 64K of RAM. With either a built-in RS-232 port or an MSX standard RS-232 interface cartridge. Or openMSX 20.0RC1
  • An MSX1 or superior computer with a printer port Wi-fi modem.
  • An MSX1 or superior computer with the BadCat cartridge with the Zimodem firmware.
  • ACME and PASMO crossassemblers for building the programs.

2 Usage

Retroterm is very simple to use, most of its functionality being controlled externally from a Turbo56k enabled BBS.

Retroterm comes in nine variants:

  • rt-cbm-u.prg Userport version 57600bps
  • rt-cbm-sl.prg SwiftLink version 38400bps
  • rt-cbm-ulti.prg SwifLink Ultimate version 38400bps
  • rt-cbm-232.prg Turbo232 version 57600bps
  • rt-cbm-p4.prg Plus/4 version 19200bps
  • rt-232.com MSX RS-232 version 19200bps
  • rt-38k.com MSX parallel port version 38400bps
  • rt-56k.com MSX parallel port version 57600bps
  • rt-bd.com MSX BadCat version 57600bps

Retroterm lacks classic file transfer functions, when used to communicate with a normal PETSCII/ASCII BBS, file transfers are not available.

After running Retroterm, it will search for a configuration file on the last used drive, if found, and a modem initialization string is set, it will be sent at this moment. If no configuration file is found then the setup screen will be shown

The modem should be setup to the correct baud rate before leaving the initial setup screen. If the modem is not set at the correct speed, use the initialization string do so. You can then press F5 to save the settings to disk, and F1 to go to the terminal.

[!NOTE] The initialization string is only sent before Retroterm goes to terminal mode for the first time.

To exit Retroterm, just press RUN/STOP (Commodore) or CTRL+C (MSX), it will remain in memory, and you can recall it with SYS49152 (Commodore 64), or SYS28672 (Commodore Plus/4).

If you downloaded a program into memory from a BBS you can also RUN it (Commodore versions only).

On MSX pressing CTRL+U will reset the computer, if a ROM file was downloaded to RAM the system will try to execute it. ROMs that expect mirroring are not supported.

Retroterm beeps for every received character by default, you can toggle the sound by pressing CBM+M (Commodore) or CTRL-W (MSX).

2.1 Setup screen

A simple setup screen can be accessed by pressing CBM+F7 (Commodore) or CTRL+F5 (MSX), pressing F1 will exit back to the terminal.

The first setting, common to all _Ret

View on GitHub
GitHub Stars47
CategoryDevelopment
Updated9d ago
Forks5

Languages

Assembly

Security Score

95/100

Audited on Mar 24, 2026

No findings