MS-DOS reminiscences

Continuing the discussion from Consider Switching from Creative Cloud to Affinity V2:

Ashton Tate committed corporate suicide. dBase III was incredibly popular, used and beloved by everybody.

But they took forever to develop version 4, and when it shipped, dBase IV was a resource-hog, slow and crashed all the time. I remember trying to use it and recommended going back to dBase III (and Nantucket’s Clipper compiler for making native executables from dBase applications). Which we did.

This catastrophic failure (and taking 2 years to put out a bug-fix release) killed the company. And then the Borland merger ended up killing Borland too. (See also Wikipedia).

Ironically, this is not a problem with DOS, but with sloppy programming on the part of the utility/app writers (more specifically, the development tools used at the time).

On UNIX-like systems (including Mac OS X), even in the 1980’s, the shell (sh, csh, etc.) would parse the command line, including a robust mechanism of quoting and substitution to support wildcards, environment variables and other such things. It would then pass the list of parameters to the launched app via the exec family of system calls. The app receives the list as an array when it starts.

MS-DOS was much more primitive. When launching a DOS app, the 256 byte structure containing various process-specific information includes a 128-byte block of text containing its command-line parameters (up to 128 characters, of course). It is the application’s responsibility to parse this text into a sequence of parameters, including quoting parameters with spaces and expanding wildcard characters into lists of filenames.

Apps written in a high-level language like Pascal or C would get an array of parameters (like on UNIX), only because the language’s startup code would parse the DOS-provided parameter string. This parsing was typically very primitive, blindly using space characters as delimiters and doing very little else. Hence the inability to use filenames with spaces - not because of a DOS problem, but because of a Pascal or C library limitation.

An application could choose to manually parse these parameters on its own in order to (for example) allow the use of quotes to allow parameters with spaces (I have sample code in a book showing one way to do this), but very few applications actually did this.

Ironically, applications (even using the old GW-BASIC interpreter) have no problems using filenames with spaces. Within an application, you could easily include a space in the string used to represent a filename. DOS wouldn’t have a problem with such strings and would dutifully create, open and use such files. But you wouldn’t be able to pass those filenames to most commands, due to the primitive argument-parsing logic used.

3 Likes

Just one more reminisce before this goes too much off the rails, though a friend of mine was very adept at dBase III, I was in love with the beauty that was Javelin. The way it allowed different ways to look at the data was a beautiful interface to a data set. Don’t know if anyone in the Mac work is doing it that way.

David,
I usually include the basic commands/utilities that would come with an OS, as part of the OS. Did not Microsoft write the dir, del, copy, etc. basic commands/utilities that came with MS-DOS?** Those were the ones that could not deal with filenames with a space in them.

I cut my computer teeth on the Flex OS, on 6800 and later 6809 Motorola microprocessors, after a semester course using the book called “Interfacing microcomputers to the real world” by Murray Sargent and Richard Shoemaker, both Professors at the Optical Science Center, University of Arizona (same Sargent that wrote the book “Laser Physics” with Nobel Prize winner Willis Lamb). Sargent had an add on board for diablo daisy wheel printers for incorporating scientific stuff and greek letters on the market, was a kind of it own version of a TeXT processor for page layout, called Scroll. Shoemaker taught the course, and in the lab we mostly used SS-100 bus single board computers with the Z80 microprocessor. We had to hand compile the assembly code and put it in using an hexadecimal keypad and had the microcomputer do D/A, A/D, run a stepper motor, then a complete servo, using the later two: two pots controlled a voltage, the user could turn one pot, the stepper motor the other to keep the resultant voltage constant (earlier labs went over 7400 series logic chips, 555 timers, etc, LEDs (dimming them using PWM), and debouncing switches (keyboard keys). Sargent left the Optical Sciences Center went on to work for Microsoft.

On FLEX using an WUSIWYG editor, Stylograph, or and the manual word processor (like TeXT) within FLEX, I wrote print drivers to do super/subscripts and greek letters (Stylograph already did bold, underline, AND overline (why no other word processor does overline beats me)) for both a dot matrix printer and a Diablo daisy wheel (dot matrix for rough drafts of my dissertation, daisy wheel for the final copy with absolutely no changes in the source files). Sargent and I both agreed on using a ^ to signify a superscript followed, but Sargent eventually used my _ to signify a subscript followed. There was a periodical that cover 6809 microcomputers and I read it cover to cover every month, it covered both FLEX and OS 9, a simultaneous multiuser OS based on UNIX. This is why when the IBM PC came out with MS-DOS I thought it set the microcomputer industry back 5 or more years because OS 9 was far more powerful than MS-DOS, and I have avoided Microsoft/Gates ever since. In fact OS 9 is still around and Apple had to deal with them when it released their own OS 9 for Macs. Why the suits at IBM let a pimpled face teen with no college computer degree, no OS experience, write their OS beats the heck out of me. Yes, I’ve heard the stories, Gates and company were based here in Albuquerque, my autoshop had a copy of Gates’ mug shot when he was caught for a DWI under their glass counter, but I think there is more to it than those stories.

**FLEX on SouthWest Technical Products computers only used 48K of RAM, above that was the ROM and the I/O addresses, but the later two didn’t use the whole 16K, only 4 K of it. So I put in some RAM chips (actually in spare ROM sockets) and put most of the common command/utilities up there, like dir, copy, del, and a few others, So those commands were not read off the start up floppy each and every time. By decompiling the utilities I found they all used one large subroutine (I think probably the command parser you referred to) and I only had to put one copy of it up in that ‘hidden’ RAM.

1 Like

Absolutely, but these are apps, just like ones you purchase separately.

MS-DOS is an incredibly simple OS by today’s standards. It’s just a bunch of system calls (implemented via interrupt handlers) and a directory of bundled utilities that work by making these system calls. I always try to distinguish what DOS is capable of (that is, what those system calls can do) from what Microsoft’s bundled tools are capable of (which is often significantly less).

This is why, for example, third-party developers were able to port large chunks of the GNU utilities to MS-DOS, and they support all the things you would expect a Unix system to support, including support for quotes around parameters, so they can include spaces.

The PC was not designed or developed by “the suits at IBM”. It was very much a pet project developed by a group of engineers with a goal to ship something in less than the five years IBM typically takes to develop and ship a product.

They really didn’t care about DOS at all. They just needed to ship something, and ship it fast. They first went to Gary Kildall to see about getting CP/M. He was unavailable and his wife told them to come back later. So they went to the next person in their phone book, Bill Gates, who they had already worked with in order to get their ROM BASIC interpreter. He said “no problem” even though he didn’t have an OS, but he knew someone who did and bought that software for a song, and pretty much just repackaged it as his own - which was DOS 1.0.

Not that it really mattered. The only requirement at the time was the ability to load and run a program from floppy disk. Just like the DOS’s running on the PC’s competitors (including the Apple II, Commodore 64, Atari 800, and others).

What I think was brilliant on Gates’ part was LICENSING the OS, not selling it. It provided a steady income stream.

Roger D. Parish
Lehigh Acres, FL

2 Likes

Not quite…In my ad sales days I worked with IBM and their ad agency on the PC Junior super mega expensive ad campaign which began running around late 1984, featuring a Charlie Chaplain double. IBM developed PC Junior because they wanted to branch out into the home, education and small business markets, and guess what computer company was quickly making great strides and rapidly gaining market share in these rapidly expanding markets at that time.

IBM spent a fortune on developing PC Jr But their big mistake was that they developed it and marketed it as a dumbed down version of a PC. It ran a dumbed down version of DOS, and it couldn’t do very much at all. And Apple II was already running VisiCalc and other sophisticated software, and the newly released Mac was beginning to change the world. PC Jr didn’t stand a chance.

1 Like

That brings back memories…. I have the chest and cane from the marketing campaign. Pretty sure there was a cardboard cutout to go along with it.

Diane

1 Like

By the time I jumped into the DOS/Windows command line, I’d become very familiar with the Unix csh (and later, ksh and then bash) command line shells. So trying to run any sort of commands on the DOS or Windows command line – or, God help you, trying to write a batch script – was like pulling teeth.

Luckily, there was a decent workaround: a 3rd-party tool, MKS Toolkit, which when installed and run in the DOS or Windows command line app, would intercept the DOS interpreter with a Unix shell interpreter that had a useful subset of the basic Unix commands (mostly file manipulation). It allowed pipes, input/output redirects, etc.; a real time saver, particularly when I jumped into doing Windows NT/XP app development in the 90s.

Made digging into MS Windows configuration problems much more pleasant (and efficient!)

PC Jr also suffered from a really crap keyboard. I arrived at college in the fall of '86. Most of my undergrad work was done on PCs in the college’s computer labs and stored on one of the 5.25" floppy disks I carried around, but for my first paper I used the PC Jr. belonging to a student across the hall. Never again after that.

I only started using a Mac as a senior; my first Mac was a college graduation present.

Dave

1 Like

What I didn’t understand then, and I still don’t understand now, is why they threw tons of $$$$$$$$$$$$ on developing, promoting and advertising hardware and software that was 100% crap. Especially when it wasn’t priced lower than hundreds, maybe even thousands, of DOS PCs.

Yes, but the PCjr was not what I was referring to. The original PC that shipped in 1981 was not developed using IBM’s usual bureaucracy-heavy development cycle. They needed something to compete with Apple, Tandy and the other companies making small computers that were popular with small businesses. They knew that if they waited five years to ship, they would have lost the market.

Because of this, it was designed around as much off-the-shelf hardware as possible, with the intention of doing a proper redesign later on. But it became too popular for any incompatible redesign to be practical. The result is that the industry standardized on a stopgap architecture that nobody had the courage to deviate from (until Apple shipped Macintosh).

  • They chose the Intel 8088 because it was available in quantity and was fairly inexpensive.

    Ironically, this chip was a stopgap solution for Intel. The 8086 (on which it was based) was intended as a chip to keep sales up while the iAPX 432 architecture could be developed and shipped. Ironically, the iAPX 432 was a commercial failure and (thanks to the IBM PC) the 8088 and its successors became the company’s biggest source of profit.

  • The first PC’s motherboard was developed incredibly quickly. Designed in only 40 days, with a working prototype in 4 months, borrowing many design features from other pre-existing IBM products.

  • Most of the internal peripherals (power supply, floppy drives, chips on the I/O cards, etc.) were all third-party products that the IBM engineers integrated.

  • The ROM BASIC was commissioned from Microsoft.

  • The companion monitor was a pre-existing design.

  • The companion printer was made by Epson.

  • The system software (PC-DOS) was commissioned from Microsoft (as their second-choice, because the person responsible for selling their first-choice option, CP/M, wasn’t immediately available).

Because of all this, they shipped the first unit after only one year of development. A schedule completely unheard of for IBM. And it sold so well, that they decided to continue evolving it as a platform instead of replacing it with “the real thing” a few years later, as originally expected.

See also:

By the time the PCjr came along, the PC architecture and MS-DOS were quite solidly entrenched. And the jr (as you point out) was designed via the IBM bureaucracy, and it was a colossal failure in every sense of the word. But ultimately, it didn’t matter because the home users were buying full-size PCs (and later PC clones) anyway.

I used the MKS Toolkit at one employer. A nice suite of software, but I never considered buying it for myself, since DOS ports of quite a lot of GNU software were available for free download from the big shareware FTP sites at the time.

On my DOS systems, I had (still have - on the one DOS PC I still have running):

  • Core Utilities (originally distributed as three packages: file, text and shell utilities). Not all were ported to DOS, but quite a lot of them were.
  • Grep
  • Awk
  • Emacs (originally third-party apps that behaved similar to GNU-Emacs, but later on, the real thing was ported to DOS)
  • Gcc (there were several different projects that ported gcc to DOS). The code produced at the time wasn’t as good as what Microsoft C produced, but MS-C was quite expensive and gcc was a free download. And gcc was more compatible with the language standard than Turbo C was.

The original PCjr keyboard had chicklet keys and an infrared wirelss interface. It was pretty bad - uncomfortable to type on an unreliable, especially when the batteries ran low.

You could buy an optional cable, which made it more reliable, but still had a lousy feel.

IBM later replaced the keyboard with a better version. Still rubber-dome switches, but with normal-shaped key caps. Which was an improvement, but still bad compared with the keyboards they were shipping with the PC, PC/XT and PC/AT.

See also IBM PCjr STRIPPED BARE: We tear down the machine Big Blue would rather you forgot • The Register

FWIW, I never owned an actual IBM PC. My first PC-compatible system was a complete no-name clone made from generic parts, which I assembled as a part of receiving it from my college. (They chose to have each student build the PC in a classroom environment instead of distributing fully-built systems.)

Over the years, I upgraded that computer piecemeal, swapping out whatever I thought needed upgrading. Which was good, because the school wanted it back after graduation. But by that point, I had literally upgraded everything, so I could give them back what they gave me.

I still have the final incarnation of that PC. A 120 MHz 486, 4MB RAM, SCSI hard drive, optical drive, SoundBlaster, SVGA video. All in a very large tower case. I don’t power it on that often these days, but it still works and there are some games I like which don’t exist on any other platform.

I didn’t get my first Mac until the late 90’s, when I bought a surplus SE because I wanted a Mac to play with. Later got various used models, including a IIci and a Quadra 840av. Then I could afford to buy new models: A 2002 PowerMac G4, a 2011 mini and today a 2018 mini.

2 Likes

This is turning out to be a really big trip down memory lane for me. I just remembered another IBM division I worked on in ad sales around the same time was their mega OS/2 ad campaign. IIRC, it was a joint development with MS. But not long down the road IBM got really POed when Microsoft started replacing DOS with Windows in new PCs made by other manufacturers without warning and was totally ignoring OS/2.

Not long after, IBM sold its personal computer hardware division to Lenovo. And Lenovo has been doing great with it for decades.

Yep. I was an OS/2 developer since 1991. It had all kinds of features that Microsoft wouldn’t put in Windows until NT version 4 (1996) and some features not until Windows XP (2003).

OS/2 was a joint project between IBM and Microsoft but during the development of 32-bit OS/2 (aka “OS/2 NT”, about 1990), Microsoft decided that they wanted the future to be based on Windows (which was version 3.0), and decided to cancel it.

This angered the developer community, because they didn’t give any warning and didn’t even agree to refund the $800 spent for each copy of the pre-release development kit. IBM gained a lot of goodwill by offering the Microsoft OS/2 developers free copies of the IBM OS/2 development kits.

IBM gained even more goodwill when they offered all OS/2 users free upgrades to version 2.0 when it was released. I got my first personal copy by buying a closeout copy of OS/2 1.0 and sending IBM its proof-of-license certificate.

Sadly, IBM could not (and, IMO, still can’t) market its way out of a paper bag. Despite having a product that was technically superior in every way, Microsoft manage to convince the world (through bundling and ad campaigns) that Windows 3.0 (and then 95) was somehow better, catapulting them into dominating the market, while IBM’s sales faded away. By the time they dropped support in the late 90’s, most users no longer cared. Enthusiasts and developers (myself included) were (and in many ways, still are) quite upset with the decision.

Although I’ve been meaning to get around to it for decades now, I would still like to set up an OS/2 system at home to play with. I don’t think my OS/2 4.0 install media would work on a modern PC, but a third party (Arca Noae) is selling and supporting it with current apps and device drivers. Maybe I’ll get around to it some day. :slight_smile:

2 Likes

Though they never acknowledged this in so many words, after these disasters they bought Red Hat and became very successful, and very early, pioneers in cloud services for companies of all shapes and sizes. And they have been very actively courting businesses that are Apple users.

https://cloud.ibm.com/developer/appledevelopment/dashboard

2 Likes

In other words, they went back to their old habits of business-to-business services. They could sell mainframes to mega-corporations, and now they’re doing the same thing with cloud services.

But could they sell a small-business device (like desktop/laptop PCs) or software for such an audience? I don’t think so. I don’t think they have a clue how to sell to these markets. Which is why they pretty much abandoned that marketplace, divesting the PC business (to Lenovo), dropping small system software (OS/2) and divesting the peripheral business to Lexmark.

Today, if you’re not running a data center, you probably have no need for any of IBM’s products.

1 Like

Here is a quote from a webpage that I created having a dig at Windows circa 1996:
http://www.vdrsyd.com/aoaug/ms_dig.html

“The problem in the PC industry is that there is no real pressure to develop better, more efficient systems - they just get bigger with “add ons”. The market “influence” seems to be that the CEO’s secretary uses a particular word processor and it happens to be part of a suite of programs so everyone in the organisation has to use the same package - brilliant marketing but the people who actually have to use the package for “computing” don’t get any say in the features of the product. Someone’s done a course in “How you peddle excreta” (HYPE).”

BTW - In another post I report on successfully running ancient DOS software Open Access using Crossover and Ventura.

I also tried installing a Win95 app called Ami Pro (the first, and IMO still the best, Windows word processor). I managed to find a copy of the installation disks that I had saved on CD but, unfortunately, there was a corrupt file and the installation stopped.
In theory Crossover should be able to run OS2 IF you have the installation disks.

1 Like

They are, and always been fast learners. In the current Fortune 500 ranking IBM is #35. Among information technology companies IBM is #5. The market for desktop and laptop hardware is generally not highly profitable, except for Apple. This is probably why IBM turned its back on hardware long ago.

Apple is #1 in the overall and IT 500s.

1 Like

How? Crossover isn’t a VM. It has special versions of the Windows system DLLs (via the WINE project) for running Windows apps on other platforms.

But OS/2 isn’t a Windows software package. It is a completely different operating system. As far as I know, there is no “OINE” project to allow OS/2 apps to run on other platforms without a running OS/2 system.

That having been said, I’ve read about 32-bit OS/2 running on Macs via VM systems (Parallels, VMWare Fusion, VirtualBox). But it’s not (as far as I know) supported by any of them.

As far as I know, there doesn’t exist any VM system capable of running 16-bit OS/2 (version 1.x), because that uses the segmented virtual memory model of the 80286 processor, and no VMs or emulators (that I know of) support this memory model, mostly due to lack of interest.

These days, if I decide to install an OS/2 system, I’ll probably buy/build an inexpensive compact PC (maybe some model of Intel NUC) that I can stick on the back of my desk and access via a KVM.

2 Likes

:+1:

Next task is to try and boot up my 1981 Sinclair Spectrum computer - if I can work out how to make the video work (uses the very old analogue TV input).

Seasons greetings to the Talk participants. I enjoy the discussions and advice.

3 Likes

I adored OS/2, which was from the future, and unlike NT, it actually ran useful software that you actually used … that was available for DOS or Win3X. Also, just to keep a slight Apple spin on things, the screen reader for it, Screen Reader/2, was, pretty much uniquely in the industry, also developed by IBM, just as VoiceOver is now developed (poorly) by Apple (see? Spin.). Unfortunately Warp 4 was the last version supported by SR/2, and beyond a certain patchlevel it breaks, so I can’t use any modern OS/2 or even CP2; also unfortunate, they provided this very nice buckling-spring keypad for Screen Reader/2 navigation commands that only connected via PS/2, and at some point I could no longer use the one I had. And in truth, by the time Warp 4 came out, SR/2 had already ceased to be productive on laptops, or to support most of the new features of Warp4, like the WarpGuide or the WarpCenter control strip, in effect rendering it little more than a slightly more pleasant to install version of Warp 3. But, OMG, what a delight! A real 32-bit protected-mode OS that did native 8086 emulation of other OSs and was truly object-oriented, with a much more modern filesystem and networking, rexx scripting and multimedia, amazing help books and many useful personal productivity features in the box. There will never be anything like it again, at least not for Intel processors.

I … think it’s true that IBM did marketing poorly, but I also think we have to be brutally honest that Win95 was a genuine nail in the coffin. It may have been technically inferior, but it ran on the shabby hardware that people had (up to and including interoperating with 16-bit real-mode DOS drivers), and gave an effectively chisel-free computing environment to the great unwashed™. And, of course, there was the famous Synchronous Interrupt Queue, which even Warp 4 never really remedied. There’s a certain delightful desperation in the defence of OS/2, which even before Windows 95 launched, was obviously at a competitive disadvantage. By the time Windows 2000 came out and we had a functioning Windows NT that included a virtual DOS machine and was (relatively) easy to install on most hardware, the game was well and truly up.

But I still miss OS/2, very much. It is a great shame that we never saw a world with a thriving OS/2 in it once Windows gained hegemonic dominance. IBM endorsed Linux to enterprises, and anyway their management had a death wish on the PSS group. It’s all very sad.

See also:
https://www.os2museum.com/

1 Like