I've recently been looking at ways to boost my productivity. I want to get more done in less time, so I have more free time for family and other things. Well, today I'm going to show you some of the improvements. Watch the video to see my new and improved AmigaOS graphics driver development system in action.

How the New Setup Works in Brief

All development and compilation is now done on my laptop. The A1222 Amiga that I'm currently using is nice, but is way slower than my laptop's Core i7 CPU. Plus, I can use all 4 cores (8 threads hyperthreading) in parallel to further boost compillation.

On the laptop

  • A batch script (e.g., W3DNovaDev.bat) starts:
    • A code editor (currently Notepad++; I'm experimenting with editors)
    • A Cygwin console window for building
    • PuTTY for serial debugging
  • A new "remoteinstall" build rule compiles drivers, and then uses FTPS to upload the new binary to the Amiga. Performing a parallel build is done as follows:
    make remoteinstall -j8

On the Amiga

  • I use my own ZitaFTP Server for driver uploads. Uploading cross-compiled builds is one of the reasons I wrote the server in the first place. I wanted an easy and secure way to transfer build files...
  • An AmigaDOS script (W3DNovaDev):
    • Starts DirectoryOpus so I can easily access the results of automated tests (DirectoryOpus starts with the Warp3D Nova test directory)
    • Changes the console window's directory to the Warp3D Nova test directory, so I can run tests
  • From there, I can run the automated testing suite. Or, run specific tests (e.g., if I'm working on a specific bug or feature)

The Result

I now spend much less time waiting for new builds to complete. The scripts also help reduce the time spent on mundane tasks such as opening up the development environment. With RadeonRX/RadeonHD (2D) driver development, it's also eliminated the time spent waiting for AmigaOS reboots. The 2D drivers require a reboot to test. So, using a separate machine for programming allows me to keep working while the machine reboots.