Flyer Firmware 1.3.0

Flyer development is alive and well again, and I’ve just posted a major firmware update: version 1.3.0, the first since 1.2.2 back in 2021.

But before getting into the details, a bit of housekeeping. retroswitch.com and commodoreONLINE.com both got a complete server rebuild on a modern, self-updating setup. HTTPS has been turned on as well (the one exception is the Flyer’s own endpoints, since the Flyer doesn’t have the memory for encrypted connections).

commodoreONLINE has had more updates as well:

  • registration and password reset fixes
  • security audits and fixes
  • a new Commodore online gaming service that I’ll unveil and post about soon!

The gaming service is something I designed back in 2017(ish) but never had a chance to fully implement. It will work with any Commodore internet device that supports TCP connections, not just the Flyer. And of course, everything is still free (with no ads) and always will be, as long as I’m still around :).

There’s more I’ll share soon, including details about open sourcing the Flyer hardware and software!

So, back to the firmware… This is a major update. It fixes many long-standing bugs (over 60 tracked issues) and adds a few new features. A lot of the disk fixes came from new rounds of testing the Flyer side by side with a 1541, command by command, so it now behaves much more like the real thing. Please check it out and let me know if you run into any issues.

1.3.0 is not yet available for SST26VF032B flash versions of the Flyer (the last 4 Flyers sold in 2021). I’m working on acquiring the parts to build an SST26 version for my own testing, although 1.3.0 *should* work on these units. If you do not see the 1.3.0 update available for your Flyer, and you would like to beta test now, please reach out using the contact form on the site.

Updating

Update the usual way, with . Your settings and disks are kept. And if anything ever goes wrong, holding the button at power-on restores the factory firmware (see the User Guide).

Can’t connect? Check your router’s security settings.

Some routers check every name lookup (DNS) for security, and answer in a way that firmware 1.2.2 and earlier can’t read. I ran into this with an eero router with Advanced Security turned on, and other routers with similar “threat protection” or DNS filtering features may do the same.

What you’ll see: your other devices are online, but the Flyer can’t reach anything by name. LOAD"$^",7 (the firmware list), the update itself and commodoreONLINE listings all fail.

The workaround: turn the security feature off for a few minutes (for eero, the Advanced Security setting in the eero app), update the Flyer with LOAD"^:*",7, then turn it back on. 1.3.0 reads these replies fine, so you can leave the feature on after updating.

Changing the Flyer’s DNS server won’t help: these routers answer every lookup themselves, whichever server it’s sent to. And if you ever restore the factory firmware, you’ll need the workaround again until you update.

As an alternative, you can temporarily change your firmware server from retroswitch.com to 54.71.241.253, using the Flyer’s config utility. Update to 1.3.0, then change it back to retroswitch.com.

New

  • Groundwork for the upcoming gaming service: a new play: channel on the control unit (7).
  • D-M (mount disk) with no disk number now reports which disk is mounted.
  • With DHCP on, the Flyer now renews its address lease, so it keeps its address when left on for long periods. It also uses the DNS server from your router.
  • Flash writes are now journaled, so a power cut in the middle of one no longer loses data.

Disk drive

  • Fixed SAVE"@0:…" (save with replace), which could overwrite a different file.
  • Fixed directory, format and validate problems that could bring back deleted files.
  • Append mode for sequential files (,S,A) now works.
  • REL (relative) files: fixed files over 64 KB, record positioning, and several hangs.
  • Direct-access commands (U1, B-R, B-W, M-R, M-W) now behave as on a 1541, and M-W can no longer crash the Flyer.
  • Damaged or copy-protected disk images no longer hang the Flyer.
  • Many error codes and messages now match the 1541. A few programs may notice: for example, LOAD"*",8 now gives error 64 (file type mismatch) when the first file isn’t a program, just like a 1541.

Network and cloud

  • Works behind routers that pad their DNS replies, such as eero with Advanced Security on (see “Can’t connect?” above).
  • Chunked HTTP responses over about 8 KB are no longer cut short.
  • Fixed hangs on long HTTP header lines and on servers that stop responding.
  • Short replies are no longer lost when the server closes the connection right away.
  • Failed or interrupted downloads, error pages (like 404) and redirects to HTTPS are now reported as errors instead of being passed along as data. This includes firmware updates.
  • A failed DNS lookup no longer sends cloud requests to the wrong address.
  • DNS answers now expire, which fixes connecting to BBSes on dynamic DNS.
  • tcp: no longer loses data sent over a slow connection, and failed connections give clearer errors.
  • Long URLs, host names and settings no longer overflow memory.
  • A setting that’s too long no longer overwrites the next one (a long cloud user name used to overwrite the password), and CONFIG can now clear a setting.

Bus

  • JiffyDOS transfers are now timed correctly. On NTSC machines, loads could occasionally get bad bytes or stop after a few bytes. Reading from the control unit could also come back empty or garbled, for example CONFIG showing a setting as “fi” or stopping with ?FILE DATA ERROR.
  • JiffyDOS: loading a missing file no longer fills memory with garbage, and occasional corrupted loads are fixed.
  • Resetting the computer in the middle of a normal (non-JiffyDOS) transfer no longer leaves the Flyer unresponsive.
  • Commands over 255 characters are refused instead of running garbage.

Under the hood

  • Extensive code cleanup, a new build system and a newer compiler.
  • The firmware is now checked by about 180 automated tests, plus a test suite that runs on the C64 itself.

Let’s Try This Again

Yes, I’m back. Let’s hope it’s for a bit longer this time… sigh.

Anyway, let’s just get right to it 🙂

Version 1.2.2 firmware is now available for the Flyer! As always, you can download it by typing the following on your favorite Commodore:

The major addition in 1.2.2 is support for HTTP chunked transfer encoding, which seems to be used by Apache most of the time now, even for trivial page requests.

Also, the Flyer User’s Guide has been updated to version 1.2, and should contain up-to-date documentation for all features that have been added to Flyer over the last few firmware updates.

Note that this latest firmware was built with an all new development toolchain. While I expect everything to be fine, and I have done a reasonable amount of testing, it’s always possible (though unlikely) something has gone haywire. If you discover any issues new to 1.2.2, please let me know immediately via the contact form! And remember you can always downgrade your firmware to a previous version, or even reset your Flyer to its pristine “factory” state. The Flyer was designed to be a very robust device 🙂

I’ve spent close to a month now resurrecting Flyer development and even rebuilding retroswitch.com (although content-wise, it’s more or less identical to the old site). I’m super excited to be working on C=/hardware dev again and have some unfinished ideas from years ago I’d love to continue exploring.

Please contact me with any feedback, requests, ideas, questions or anything else! And please let me know how version 1.2.2 is working for you!

Flyer 1.2.1 Firmware

Firmware version 1.2.1 is now available for the Flyer. It includes the following additions/fixes:

  • Ability to listen for connections. Set your Commodore up as a server!
  • TCP data source fix – no EOI was sent when reading from a channel that currently had zero bytes available.

Simply type the following command on your Commodore to instruct the Flyer to download and install the latest firmware:

Listening for Connections
To open a channel to listen for incoming connections, simply use the “listen:” channel protocol along with the port you want to listen on. A maximum of 2 channels can be listening for connections at any one time.

For example:

open2,7,2,"listen:5000"

The existing command “n-s:” (net stat) may be issued via the command channel to determine if a connection has been accepted, as it returns the connection status as part of its response.

Assuming the command channel has already been opened and bound to file id 7,

open7,7,15

the connection status may be checked as follows:

print#7,"n-s:2"
input#7,a,b$,c,d
print "connected: ";d

‘d’ will be either 1 or 0, indicating whether or not a connection has been established on channel 2.

Once a connection has been established, normal communication can proceed via print#, get# and input# commands.

New “Connection Info” Command

A new command has been added in firmware version 1.2.1, “c-i:” (connection info), which will return the remote host’s IP address and port, as well as current connection status for a particular channel. For example:

print#7,"c-i:2"
input#7,a,b$,c,d
print "error: ";a
print "remote ip: ";b$
print "remote port: ";c
print "connected: ";d

More examples will be posted shortly. Please watch this space! 🙂

Flyer 1.2.0 Firmware

Firmware version 1.2.0 is now available for the Flyer. Simply type the following command on your Commodore to instruct the Flyer to download and install the latest firmware:

It is now possible to stream disks over the network! This is accomplished by downloading a small disk shortcut to the Flyer instead of an entire image.

commodoreONLINE fully supports this exciting new feature. Updated versions of the cloud server are also available for immediate download.

To request a streaming disk shortcut, add an additional argument (“,r”) when loading a disk onto the Flyer:

load"disk:Blue Max,r",7

This indicates the disk should be remotely mounted. A very small shortcut file will be downloaded and stored on the Flyer instead of the entire disk image. Otherwise, it will appear and function just as any other disk managed by the Flyer (you can switch between both local and remote mounted disks with the button as usual).

Note there is a limit of 32 disks that can be managed by the Flyer at any one time, even though the Flyer is capable of storing many more shortcuts as they are only 4K each. This limit may be lifted in the future.

When modifying a streamed disk, the changes are not automatically copied to the original disk – the disk must be saved first. This mirrors the usage pattern of standard downloaded disks. The “,r” does not need to be specified when saving a streaming disk back to a cloud account:

save"disk:Blue Max",7

It is also possible to perform a temporary remote mount as follows:

open7,7,15,"r-m:Blue Max":close7

At this point (assuming the disk was found), the disk will be mounted for read-only access (“REMOTE MOUNT” will be displayed on the LCD). Pressing the button on the Flyer will unmount the disk automatically and return the Flyer to normal operation.

You can also unmount a temporarily mounted disk with the following command:

open7,7,15,"r-u:":close7

Firmware/Software Updates (1.1.9)

Firmware version 1.1.9 is now available for the Flyer.

1.1.9 is an interim release containing some soon-to-be-announced features which are still in development. It does, however, contain a few IEEE-488 protocol fixes (including full support for CATALOG) that I wanted to make available ASAP for the growing number of PET/Flyer users.

Cloud Server 1.0.3 is now available on Windows, Linux and Mac OS X platforms!
The latest release of the cloud server includes the following changes and new features:

  • Added ability to chose ethernet interface if multiple are available.
  • Added optional access restrictions to allow multi-user configuration (including login credentials & per user directories).
  • Disk types (d64, d71, ..) now displayed in search listings returned from the server.
  • Fixed bug causing wrong disk type ID to be sent back to the Flyer. This would cause incorrect disk types to be displayed when listing disks on the Flyer (load”$$”,7) even though the disks would otherwise work fine.
  • Media is no longer pre-scanned. Any file system changes are seen immediately.
  • Cloud Server now available for Windows, Linux (Ubuntu tested) and Mac OS X.

As always, please let me know if you have any questions or feedback, especially regarding the new platforms!

Flyer 1.1.8 Firmware

Firmware version 1.1.8 is now available for the Flyer. It includes the following additions/fixes:

  • REL file support.
  • Support for D64 error blocks. The error blocks (if present) were previously ignored by the Flyer’s drive emulation.
  • IEEE-488 protocol timing fix.
  • Miscellaneous minor fixes and code cleanup (leading spaces in filenames now handled correctly, red LED error flash rate now matches 1541, …).
Building a Better Tomorrow