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!

Paint Server for Flyer

Here’s a simple network programming example for the Flyer I’ve been meaning to post for quite some time. It demonstrates using the Flyer to implement a server application, utilizing the tcp listen functionality that was recently added in the 1.2.1 firmware.

It is essentially a “paint server”, and includes a corresponding client application for Windows, Mac and Linux. Once running on the Commodore/Flyer, clients can connect and paint remotely onto the Commodore’s display (nothing high tech at all – painting is done using simple character blocks). The goal was to demonstrate/provide some solutions to writing a “real” networked application for the Flyer.

Source code is included for both server and client applications.

  • The server app is written in C and developed using CC65. There are both c64 and pet targets. I am using the excellent “generic makefile” for cc65 projects, found here. Please refer to this page if you have any issues building the CC65 targets.
  • The client is written in C++ and uses the Qt 4 framework. Solution/project files are included for Visual Studio 2008 (requires the Qt Visual Studio add-in). Project files are also included for Qt Creator, which should build under Windows, OS X and Linux without issue.

Downloads

The client and server projects + source code can be downloaded here.
Precompiled binaries for Windows can be downloaded here.
The server binaries can be downloaded for the C64 here, and for the PET here.

To load the paint server directly from your Commodore using the Flyer, type the following:

For the C64: load”http:retroswitch.com/files/PaintServer.c64″,7
For the PET: load”http:retroswitch.com/files/PaintServer.pet”,7

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

Hello, Android


As a recent Android convert (and with no real Java programming experience) I thought it might be fun to try writing a live wallpaper app.

With Christmas around the corner, I figured a gentle snowfall would be the obvious choice despite there already being about a million existing snowfall apps on the Google Play store.

Anyway, I thought it came out ok 🙂 If you’d like to check it out, you can find it here.

It utilizes OpenGL for rendering and native code for the physics update, and seems to perform quite well even on older phones.

If you are interested in Android app development, this book is the absolute best one I’ve found. It seems to cover topics at a perfect pace, and the section on getting an OpenGL based live wallpaper engine set up was invaluable, as this is not officially provided in the standard Android SDK.

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!

Why No Updates?

Some of you may have noticed the slowdown in updates, along with the ongoing unavailability of the Flyer and might be wondering what’s going on? Rest assured, I’m as committed as ever to the Flyer and related development!

I just completed an interstate move which has had me scrambling for the past couple months (side note – if you’ve ever wondered how to safely box your vintage computers for shipment/storage, this stuff is fantastic).

I was also dealing with a parts shortage for the Flyer, and during that downtime I started getting enough interest for future orders that I decided to look into automated assembly (each Flyer I’ve shipped to date has been hand assembled). I just received a photo of the first one “off the line” to verify parts placement, etc, and everything looks great. I expect they’ll be sent out within a couple days.

Additionally, I should be back on software and firmware development by the end of the week. I’ve received a lot of GREAT feedback over the past couple of months, and I have some surprises in store as well!

Thanks to everyone who has contacted me, and thanks for your continued interest in the Flyer!

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