Hi there! I'm Jim Hall, founder and coordinator of the FreeDOS Project! This is my FreeDOS blog, where I'll write about various things happening in FreeDOS.
Thoughts on updating the install process
Jerome Shidel has been working on a set of power utilities for DOS batch files. Called the V8Power Tools for DOS
, they provide "Visual" equivalents to many command line tools, such as VCLS, VCHOICE, VECHO .. as well as new power tools such as VPROGRES (display a progress bar) and VFRAME (for text-mode boxes).
I would love to see an update to the FreeDOS install process that uses Jerome's V8Power Tools. It may help to know that we've previously discussed (on the mailing list, and individually with a few developers) that the next FreeDOS distribution should assume some defaults. For example, rather than ask "minimal install," "normal install," "complete install," and "custom install," simply assume a "default" installation. The only option that needs to be asked is if the user wants to install source code, too.
This simplifies the install process quite a lot. And it means that everyone starts with a standard configuration, which makes debugging easier (rather than having to ask "did you do a complete install or only the minimal install?" when helping someone with a question or problem). FreeDOS isn't very large, so limiting the install options is unlikely to be an issue for many people these days.
Applying Jerome's V8Power Tools, the INSTALL.BAT would be quite simple. Here's an example that I'm just making up (I haven't tested this):
VCHOICE "Hi there. You are about to install FreeDOS onto your computer. If this is not what you intend to do, please exit now." "Continue" "Exit"
IF ERRORLEVEL 2 GOTO QUIT
VCHOICE "Do you want to install source code, too?" "Yes" "No"
IF ERRORLEVEL 1 GOTO INSTALL
SET EXCLUDE="-x SOURCE"
VECHO "Installing FreeDOS ... Please wait"
UNZIP -qq A:\INSTALL\PKGS\BASE\*.ZIP %EXCLUDE% -d C:\FDOS
UNZIP -qq A:\INSTALL\PKGS\DEVEL\*.ZIP %EXCLUDE% -d C:\FDOS
UNZIP -qq A:\INSTALL\PKGS\EDIT\*.ZIP %EXCLUDE% -d C:\FDOS
REM ... and so on for other package sets
VCHOICE "FreeDOS has been installed! You can reboot the computer now, or you can just exit back to the system." "Reboot" "Exit"
IF ERRORLEVEL 2 GOTO DONE
VECHO "Rebooting ..."
VECHO "You have aborted the installation."
That batch script is over-simplified (it doesn't check if the C: drive is ready, doesn't run post-install scripts, etc.) but I think it's enough that you can see the idea I had.
Farewell to CarbonOS
I meant to share a note about this earlier, but then SourceForge went down and my attention was drawn to other things. I just wanted to share Corbin's note that Carbon OS is discontinued
. Carbon OS was a distribution of FreeDOS for non-DOS users. I mentioned it on twitter
Visual batch tools (simplifying the install process)
I don't think of these tools as the "FreeDOS Install program" per-se. Rather, they are a set of useful batch tools that others might use for other things. It also makes a very nice FreeDOS Install program.
I imagine that the "V" tools will all share a common command line syntax. So options to define the background color, text color, window color, window background, screen title, and window title. Environment variables would also be a nice option.
So with the right options to define background color=blue, title background color=cyan, title text color=black, window background color=red, window text color=white, … title="FreeDOS 1.2", window title="Hi there!" …
you might have this:
VECHO "This is a simple message box"
I'm just making stuff up as I type, but maybe the options could be defined as environment variables like so:
Or as command line options:
VECHO /VBACKGR:BLUE /VTITLEBG:CYAN /VTITLE:BLACK … "This is a simple message box"
By providing flexibility for both command line options and environment variables, it will make things very easy for someone who wants to use the "VTOOLS" to make their own "visual" batch script.
With text options:
VECHO /TITLE:"FreeDOS 1.2" /WIN:"Hi there!" "This is a simple message box"
A few thoughts on simplifying the install process
Years ago, I wrote the very first FreeDOS Install program. That was what really launched FreeDOS from its Alpha
release to a Beta
release in 1998, with the FreeDOS 0.1 "Orlando" distribution. Over time, I updated the FreeDOS Install program to make the install process more modular, to make things easier for a packager to assemble a FreeDOS distribution. The install process was quite simple back then: the FreeDOS Install program just scanned a list of packages and package "sets," and gave you the option of what sets to install, or what specific packages.
Later, another developer added a post-install process to update the system, to make it ready for first use. And that version is pretty much what you see today in the FreeDOS 1.1 distribution. The FreeDOS install process hasn't changed substantially, even from 1998.
I want to simplify the install proces. DOS is a very simple system; do we really need to have all these options of what packages and package sets to install? I don't think so. Let's just install the whole thing.
But I want to simplify things even more. When you take a step back, the FreeDOS Install program is just a wrapper to the Info-Unzip library. Once you set it in motion, it runs through all the packages and unzip them to the target drive and directory (usually C:\FDOS
). We don't need a compiled program for that. We can simplify this to a smart batch script that calls Unzip for every package in the distribution.
My idea: Rather than create a single DOS application, create a set of small "batch utilities" that do the work of the install process, including the FreeDOS Install program. I imagine these batch utilities as "Visual" utility programs—utilities that are similar to their command-line counterparts, except they use a pretty full-screen interface. Let me define what I think is needed to simplify the install process using these Visual batch utilities. For each program, I'll use V
("Visual") to start the program name:
VCHOICE "prompt" "choice"…
Display some text, and allow the user to select an option from a list.
Can be used to display simple prompts:
VCHOICE "Hi there. This is the FreeDOS 1.2 distribution…" "OK" "Exit"
Or, select what to install:
VCHOICE "Do you want to install everything?" "Yes, everything" "Just BASE" "Exit"
Or, select to install source code:
VCHOICE "Do you want to install source code, too?" "Yes" "No" "Exit"
Display some text. This might be used to display a message while the install process is busy working. For example, this could print a "Now installing FreeDOS…" message as the install process unzips all of the packages.
Clear the screen, and draw a basic screen (background color, header) without any windows.
It's clear to me that VCLS is the "base" program here; just clear the display and draw a basic screen with background colors and "FreeDOS 1.2" header. From that, it's a small step to build the VECHO program. And from VECHO, you are another step to build the VCHOICE program.
And I think we need another simple program to help the install process along:
Checks if the C: drive exists, and is formatted. The errorlevel could indicate status:
0 C: exists and is formatted
1 C: exists but is not formatted
2 C: does not exist
With a modular approach to a simplified install process, we might add other simple programs that do specific things. One program might detect hardware and output lines that get appended to CONFIG.SYS or AUTOEXEC.BAT.
Unfortunately, I am really really
overcommitted right now. I wanted to write these programs over the winter break in December and January, but I didn't have the free time I thought I would have. But maybe others can take these ideas and run with them. Feel free to write these utility programs and contribute them to FreeDOS. This will help everyone. In particular, I think it is an important step towards the FreeDOS 1.2 distribution!
I'm not absent, just overcommitted
You might have noticed that I haven't been very active on the freedos-devel list lately. I'm not absent from the project, I haven't dropped out or anything. It's just that I volunteered for too many projects outside of FreeDOS, so I'm very overcommitted at the moment.
Aside from FreeDOS, I'm also mentoring for the GNOME Outreach Program for Women (now GNOME Outreachy) for usability testing. And at work, I am the Director of Information Technology and Campus CIO at a liberal arts university. That's a lot for me to balance between everything. And I do all the FreeDOS website stuff, and manage the archives at ibiblio, and update the FreeDOS social media at Twitter and Facebook. Somewhere in there, I try to have a personal life, too.
I'm also looking for a new place to work. I'm not out of work, but I would like to move on. Much of my free time is currently engaged with the job search.
So I'm currently having trouble meeting my FreeDOS commitments—but I'm still here! I am following things on the freedos-devel list, as best I can. And I am responding to email, but it may take a while before I can reply to your message.
I'm going to start working on some updates to the website very soon. My plan is to make the site easier for new users to navigate, and make the content easier to read. I do not
indent to change the web style, although you may see some very minor tweaks.
So, what's on my to-do list? A few things:
- Migrating Press releases, News items, and Tech items into the Wiki. This is also a good opportunity to remove stale content (advice that is no longer correct or relevant.)
- Updating the Wiki front page to make it easier to find what you are looking for.
- Cleaning up the Software list.
- Trimming the Links page.
Interested in helping out? I really could use some help in moving content into the Wiki. If you had an account on the Wiki before, you may need to contact me to re-activate it for you; accounts were re-set when SourceForge retired the Wiki service, and we had to run our own. If you don't have a Wiki account, let me know and I can set one up for you.
I am also looking to standardize and re-categorize the FreeDOS software list. My goal is to eliminate any non-free software from the FreeDOS software list. For example: Ndn
does not provide source code; does this belong in FreeDOS? We included these programs long ago because they were technically "free" but not "Free"—they allowed people to redistribute the programs, but did not provide source code. At the time, we didn't have other Free programs to cover the functionality, or the program was likely a popular one. But times have changed; it's time to clean up the software list and make sure that Free
DOS is truly Free
The next version of FreeDOS (when we get there) should include all software sets, so everything needs to be free, no matter if it is in Base or another set. This cleanup will be a process, and I will be sure to talk about it on the email list so others can help replace these programs with free versions. My priority is to look at the list and remove anything that is "closed source," then see where that leaves us. I'll decide next steps from there.
Contributing to free software
As you probably know, I am the IT Director and Campus CIO at the University of Minnesota Morris. Over the weekend, Morris hosted a special event to help students learn about free and open source software. In partnership with OpenHatch, the event was titled "Open Source Comes to Campus" and provided an introduction to open source software, including a career panel, and hands-on opportunities to contribute to open source software projects.
During the afternoon workshop, I led several small groups in contributing to their first open source software projects. In my case, we helped out with FreeDOS. During the afternoon, we contributed in two major ways:
With help from Emily, Josh, and Alek, we migrated old web pages into the FreeDOS Wiki. The overall project to convert old content will take weeks or months, and this workshop provided a great kick-off for our documentation clean-up efforts.
Daniel refactored the web code for the FreeDOS News page, which also feeds the news items on the FreeDOS website. Daniel made an immediate and lasting improvement to the FreeDOS website. Behind the scenes, the news code needed to be cleaned up. Daniel's fixes also allow visitors to link directly to a news item, necessary for sharing on Facebook and Twitter.
Other groups provided improvements to a free Senet board game and to a drone control system.
I am proud to have been a mentor for this event. What a great way to help students and to serve the campus! I look forward to next year's event!
Special thanks to Elena Machkasova and others in the Computer Science Club who planned this wonderful event.
FreeDOS at 20 years and counting
I'd like to share a celebration with you. As of today, The FreeDOS Project is now 20 years old. Happy birthday, FreeDOS!
FreeDOS dates back to 1994, when I was still a physics undergraduate student. I used MS-DOS to analyze data and write papers for classes. I found DOS to be exactly what I needed to do all of my work. I mostly used a shareware spreadsheet program called "AsEasyAs" (a clone of Lotus 1-2-3) to do my data analysis, and a popular commercial word processor "WordPerfect" to write my papers.
So it was with great disappointment in Spring 1994 that I learned Microsoft would soon stop supporting MS-DOS, in favor of a new version of Windows. While the newer Windows became the hugely successful Windows95, you may remember that Windows 3.11 (current at that time) was not so great. In fact, Windows 3.11 was pretty bad. I didn't like using it; I preferred to do all my word in MS-DOS.
I decided to do something about it. And on June 29, 1994
, I announced my intention to write a free version of DOS. I called that first version "PD-DOS" but we renamed our project "FreeDOS" not long after that.
Since then, we have advanced what DOS could do, adding new functionality and making DOS easier to use. For example, FreeDOS lets you access FAT32 file systems and use large disk support (LBA), a feature not available in MS-DOS at the time, and only included in Windows95 and newer. And today in 2014, people continue to use FreeDOS to support embedded systems, to run business software, and to play classic DOS games!
As always, thanks to everyone who has worked on FreeDOS. We wouldn't be here without you!
Usability Themes in Open Source Software
For about the last two years, I've been working hard on my Master's degree. This was an interesting program, M.S. in Scientific & Technical Communication. I had a lot of great classes, including a directed study in Usability, in which I explored Open Source Software & Usability
. I expanded this into my Master's capstone project, "Usability Themes in Open Source Software."
. Also available as EPUB
When I generated the EPUB ebook, I fixed a few minor formatting errors from the PDF. The MOBI ebook is a conversion from EPUB.
I'm going to graduate in May!
Just wanted to share a quick status that my graduation plan has been approved. That's "academic-speak" for "I'm going to graduate in May!" I've been in the M.S. program for about two years now, and it's been a lot of work but also a lot of fun. I really enjoy learning. And I've had some great classes, and a few that have inspired me to do new things, such as my interest in Open Source Software & Usability
. I'm looking forward to commencement in May, then seeing what comes next!
An update from Jim
As many of you know, I am in graduate school, working towards a M.S. degree in Scientific & Technical Communication at the University of Minnesota. On top of that, I'm the IT Director at a small university, so I'm already pretty busy. I've been checking into my FreeDOS email, trying to keep up, but it's getting really hard to stay up-to-date. I'm about half-way through my M.S. program now, and I'm only going to get busier in the next year as I get closer to presenting my thesis.
So I'm going to "go dark" for a while. I'm still around, but I don't expect to be very reachable. If I don't respond to you right away (or at all) please don't take it personally. I'm just crazy busy, and trying to stay focused on my M.S. program work.
In my absence, I'm hoping others in the FreeDOS Project will be able to pitch in. Rugxulo and Eric have already been doing a great job responding to questions, doing email list maintainance, posting news to the website, updating the software list, and mirroring new software versions to our ibiblio archive. Please look to them while I'm away.
Are you looking for my blog?
I used to write a FreeDOS blog, but I haven't updated it in a long time. An archive is available at Jim Hall's FreeDOS blog
You may also follow my other blog about Leadership and Vision in IT and Higher Education
at Jim Hall's blog
, but this will move to my new Coaching Buttons
blog sometime over the summer so people can post comments again (looks like an update to Wordpress broke comments).
Or, you may be interested in my blog about open source software and usability
. I started this blog based on work I am doing in my M.S. program.