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.