So over 40 years ago, if Microsoft and IBM had partnered just a little bit sooner, if they’d been able to predict how popular the platform would become, if they could have harnessed more of its power, and if Microsoft had been able to build more synergy between their flagship BASIC product and the underlying “Quick and Dirty” operating system, how dramatic could the impact have been?
It’s impossible to know with any certainty. However, what’s not impossible is creating that product today, and to see for ourselves what the IBM PC was really capable of from “Day One.”
And that was the inspiration for BASIC-DOS, a product (well, just a proof-of-concept at this point) that combines the power of BASIC with a multitasking DOS.
A fascinating bit of alternative history, and one that goes beyond mere words – BASIC-DOS is in development as a retro-programming project, and is intended to be released next year. You can get a preview of what’s to come, and follow development on the blog.
RiscoOS Pico says “hold my beer”?
https://www.riscosopen.org/wiki/documentation/show/Software%20information:%20RaspberryPi:%20RC5%20RISC%20OS%20Pico
This is a cut-down build of RISC OS (no GUI) that boots straight into BASIC. It was released to celebrate the 50th anniversary of the BASIC programming language.
The best part of that project is that its multitasking. Basic is a nice addition, but having the ability to run two programs at once would have been the real killer feature of this OS. I think that was kind of possible later somehow. I saw it work in the mid 90’s, but I didn’t ever figure out how they were doing it with DOS 6.22
Bill Shooter of Bul,
Who did it with DOS 6.22?
We did try DOS 386 back when MS had DOS4/5. It’s multitasking worked as advertised. If it had been a microsoft feature, the market would have embraced it immediately, but considering MSDOS had the monopoly the company I worked for could not justify allocating dev resources to such a small customer base. So we never did anything with it. It’s one of those areas where there was genuinely useful innovation, but because nobody could really compete against microsoft’s monopoly tactics, it remained obscure.
https://en.wikipedia.org/wiki/Multiuser_DOS#CDOS386
I had heard rumors about DOS 7 having new multitasking features but MS rolled them back to market windows 95 instead. This was probably strategically wise because DOS is too easy to clone and sooner or later a major manufacturer would have seen a viable path in defecting. By contrast windows is hard to clone.
https://betawiki.net/wiki/MS-DOS_7
Some internal MS documents about DOS7 were published from the antitrust case…
antitrust.slated.org/www.iowaconsumercase.org/011607/1000/PX01827.pdf
Incidentally it reminds me of the internal evangelical emails, which I find fascinating as we get to see the inner corporate workings of astroturfing and FUD/RDF mechanisms at work.
antitrust.slated.org/www.iowaconsumercase.org/011607/0000/PX00425.pdf
antitrust.slated.org/www.iowaconsumercase.org/011607/3000/PX03096.pdf
One of my friends did it on a pc at school, I didn’t ask about the multitasking he was doing. I was more interested in his crude 3D wireframe he created in pascal. At that point I only had DOS 4 at home, so I thought that was something baked into Dos 6.22. Their was also considerable backlash against DOS 6.22 amongst my more computer savvy friends who advocated staying on 4.
Bill Shooter of Bul,
I searched deep in my archives and I found several DOS multithreading/multitasking utilities that I took interest in back in the day. I can’t find any references to most of these. Public traces seem to be long gone, but here are some excerpts from the readme’s:
Your friend may have used something like this for pascal… it’s the co-routines of yester-year.
I had completely forgotten about DESQview…
https://en.wikipedia.org/wiki/DESQview
Its not entirely impossible that it wasn’t a DOS 7 super alpha/beta he was using. There was much consternation amongst my friends when 7 was cancelled and they spoke as if they knew it had multitasking. They were more connected to the BBS scene and had early Chicago Demos somehow.
Bill Shooter of Bul,
Is it possible you are thinking of DOSSHELL which was included with MS DOS5/6?
The video is very slow to get started…jump to 7:00…
http://www.youtube.com/watch?v=tB035ZDMZD4
This was multitasking but not concurrency, I believe it swapped the entire program memory to/from disk when you pressed alt-tab.
@Alfman
The fact anyone is giving this topic the time of day shows how successful Microsoft’s monopoly strategies have been. Microsoft were allowed to get away with it both because of weak regulators turning a blind eye and the “What is good for General Motors is good for America” dogma. If anyone thinks any of this has changed out of the goodness of their hearts I would invite them to re-examine this thought.
The market for multi-tasking on the PC was very limited prior to 1990 because of the cost of RAM. Placing something like BASIC-DOS on the 5150 in 1981 would have increased cost by about $1,000 for the needed additional pair of 64 kB memory expansion cards. Can’t multitask without the memory for at least two programs available though fitting two applications and an OS on a 160K floppy is an interesting challenge.
Didn’t Borland ship a compiler which enabled memory swapping for compiled code? There’s a load of guff here on TSRs too: https://www.drdobbs.com/cpp/compiler-specific-c-extensions/184408821
HollyB,
I’ve written my share of TSRs back in the day, although IMHO assembly was the way to go since a lite footprint was very important.
Borland pascal had a feature called overlays, which allowed programs to pull in unit code from overlay files transparently on demand.
https://secondboyet.com/articles/publishedarticles/theslithytove.html
It was useful for overcoming the limits of x86 real mode in complex software.
@Alfman
Yes, that was probably what I was thinking of. It was so long ago my memory is a jumble.
I only did 6502. When I was making my mind up about learning x86 Intel was going through its “add instructions for marketing reasons” stage and gave up before I started.
krebizfan,
Running multiple tasks “simultaneously” doesn’t necessarily imply multithreaded/concurrent execution. On human timeframes, you can effectively “multi-task” with one program in memory at a time if two tasks don’t actually have to run concurrently. In DOS it would have been pretty simple to swap program state in and out of RAM without relying on v86 mode and I think this may be how DOSSHELL (mentioned earlier) worked.
Obviously you’d have to deal with peripheral state, like video in particular, but it’s doable.
FCBs and FILE handles could have been problematic if one were to open too many simultaneously, although it ought to be possible to save/restore this state along with the rest of the program state.
https://en.wikipedia.org/wiki/File_Control_Block
It’d be primitive, yes, but possible even on very old hardware. And since we’re dealing with linear memory and “large” sequencial I/O, swapping could be done relatively quickly for that time. Although I concede I’d use a hard disk at minimum because swapping to a floppy would be terrible, haha.
Swapping a program out of memory requires disk space to store the program. So if one was to alternate a pair of 64 kB COM programs, it would require a disk with 128 kB free space available (for the program being saved and for the program being recalled). For the 5150, that means devoting an extra 160 kB floppy drive to just the disk swapping and waiting almost 10 seconds for the swap to happen. That is in addition to having drives storing OS, and each application, plus disks for data all within the 4 drive limit of a floppy controller. I guess one could put in a hard drive for another $5,000 in 1981 but that pricing should have precluded the 5150 from having the same sales volume as historical.
Sign of how times have changed. When I started working with computers, it was common to turn off multi-tasking with OSes like RT-11 to keep from buying excess memory and a very expensive memory management unit. Now, it seems that even simple OSes for very cheap hardware 40 years ago can’t be imagined without multi-tasking.
krebizfan,
That’s why I specifically said I would not want to do it with a floppy disk. Swapping became more viable with faster HDDs.
I just remembered… Didn’t the original IBM PC boot up in BASIC if an OS disc wasn’t present?