Friday, June 30, 2017

Guest post: Building the FreeDOS installer

Jerome Shidel created our new FreeDOS Installer, which first appeared in the FreeDOS 1.2 distribution. Jerome shared his FreeDOS story:

My FreeDOS story began many years ago in the pre DOS days. An early version of MS-DOS may have been around. But, it definitely was not a thing yet. It brings back fond memories.

At age 9, laying on the living room floor and hoarding the television. The Sinclair ZX80 powered up and its manual open. Teaching myself to program its 1 kilobyte of RAM with that terrible membrane keyboard. It wasn’t long until my father got me the enormous 16Kb RAM add-on module. That was a lot to fill back in those days. Especially when you bumped the ZX80, it would reset that extra memory module.

Next came that incredible Atari 800XL and the Coleco Adam home computers, before my father got a Laser XT and we moved into the reign of the 8086 CPU and MS-DOS. I spent many wonderful winter days sitting up in the attic with a space heater blowing under the desk, waiting for the keyboard to warm up enough for the computer to boot without errors.

After several years, Windows 3.1x became popular. But, I only had limited use for it at the time. I still spent most of my time wearing out keyboards programming odds and ends in DOS.

In 1995, Microsoft broke my heart with Windows 95. It looked so new and cool. I was so excited to give try it on my almost new $5000 notebook. That would be pricey now, imagine that in 1995 dollars. I went over all the requirements. Everything specification was met or far exceeded what it needed. I was ready to rock Windows 95. Or, so I thought.

Part of the way through installation, the notebook all of a sudden went to just a black screen. The install trashed my video BIOS firmware. According to the manufacturer, I would have to send it in and have some chips replaced. Not the patient sort, through a lot of trial and error, I was able to just re-flash the BIOS and get it working again. But, it would never support Windows 95.

At that point, I started to look around the internet for alternates to Microsoft products. I messed around with Slackware Linux and other DOS systems (like PC-DOS).

Even though I eventually grew to accept what happened in the Windows 95 debacle, I never did truly forgive them. I can really hold a grudge. Not even now.

So, I have been aware of FreeDOS since its early days in the late 1990s. But, I really did not use it much back in those days. FreeDOS was still in its early alpha stages. Plus, there were several other DOS distributions and Linux platforms that I had favored at the time. However, I did install some of those early versions and played around with them a little. It found it interesting, that unlike many of the commercial versions of DOS, FreeDOS was not stagnant. It was slowly progressing. I figured that I needed to keep an eye on that crazy FreeDOS project.

Fast forward nearly 20 years…

Generally speaking, I'm not much into any of the social media stuff on the web. So it was kind of unusual that back around March of 2015, I was wasting time on Facebook.

I was looking around at Facebook pages and groups for some of my interests. OpenSUSE, bash, Delphi, Pascal, assembly, FreeDOS… I though to myself:

“Huh?” “What?” “There is a FreeDOS page on Facebook?” “Wow!” “Neat.”

I was quite surprised to find out that there were still several very active DOS communities around the world. It was pretty weird in a cool way. I figured I should do something nice for them.

So, I perused some of the programs that I wrote back in the early 1990s and decided to make some of the stuff Open Source. Most notably was "Program Manager v7.2" a multi-menu program and game launcher. PGM's most recent update was way back in 1992. Yet, it was well received by the FreeDOS community. I decided to do more.

That led me to doing a complete rewrite of PGM using more modern concepts and techniques. I went a little (ok, a lot) overboard. Theme-able, multi-language, custom fonts, screen savers and etc. Like FreeDOS, The Program Manager Eternity (PGME) was reborn to live forever.

During the development of PGME, it was brought to my attention that Jim Hall was looking to create a brand new installer for FreeDOS. Something that looked more modern, easier to install and was powered by batch files. Something that could use some "simple" command line utilities to install FreeDOS.

Hmm, a set of tiny non-memory resident utilities that can interact with each other to create a text mode UI for batch files. All the logic for the batch program to reside in the batch. Use no memory. Yet provide batch files with enough functionality to build a flexible and simple installer. It sounded interesting. Sure why not.

So, I volunteered to create some GPL tools that could do the job. There were a few naysayers that thought it could not be done or just wouldn’t work. But, most were excited that a new FreeDOS release might be coming soon.

Well as you know, one thing tends to lead to another. As the foremost expert on the usage of V8 Power Tools, a set of batch tools I wrote, I volunteered to create the new installer and work began on FDI, the FreeDOS Installer. There were many enhancements and additions to V8PT during the development of FDI. It was a long and slow process jumping back and forth between them as new needs arose. But, the work progressed.

There was a lot of back and forth with Jim during the development of FDI. Lots of design, workflow and other decisions. Plus, coordinating all of the additional languages supplied by the community, the new installer was quite a lot of work.

After dozens of public beta tests and two Release Candidates, we released FreeDOS 1.2-Final on Christmas Day 2016.

Many thanks to the FreeDOS community for all their help during the development of FreeDOS 1.2. There are a wonderful community with many great people. Without their efforts, this release would not exist.

Then of course there is FDIMPLES. Originally, I created it specifically just to provide detailed package selection for the Advanced Mode of FDI. Its only purpose, modify the package list used during installation. But, as go so many plans, it didn't stay there. It was just to cool for installing and removing packages. I have big plans FDIMPLES.

Nowadays, there are several other areas that keep me busy with the FreeDOS project. But, that would be a tale for another day.

-Jerome Shidel

No comments:

Post a Comment