Softpanorama

May the source be with you, but remember the KISS principle ;-)
Contents Bulletin Scripting in shell and Perl Network troubleshooting History Humor

MS DOS/PC DOS History

News

Recommended Books

OS History

Recommended Links

References

Softpanorama Bulletin Archive

The History of Development of Norton Commander

IBM PC DOS - Wikipedia

FAQ

DR DOS

PC DOS

Assembler

Tetris

DJGPP Unix utilities

Usenet

1-2-3
Borland Gary Kildall Tim Paterson John Socha Peter Norton MS Word WordPerfect Agenda
ACT Sidekick Volkov Dmitry Gurtyak Pascal C Norton Ghost Etc

Introduction

I am writing this page about semi-forgotten, short but very influential epoch in programming. It spans from 1980 till approximately 1995. Just fifteen years.

There have always been a gifted young programmers, and there always will be. But PC revolution was a unique period that probably will never be repeated. It was the real revolution in programming despite the fact that DOS was a pretty primitive OS, actually a program loader and a couple of dozens of utilities. PC was the first computer that gave programmer unlimited time to develop their own programs, and not in isolation but interacting with peers as PC revolution generated large scale social activities around it in the form of PC user groups. And at the beginning the field was quite open for anybody with talent to make his/her mark: it was era of re-invention of old concepts on a new level and creation of new one.  Companies like Borland and Lotus were created in garages before they became large players.

DOS history outline

DOS as  a derivative of  CP/M

DOS (Disk Operating System) was a derivative of  CP/M. The latter was  a single-user, single-tasking computer operating system with a command-line interface. It was written by Gary Kildall, the brilliant programmer who single-handily introduced several important concepts into microcomputer OS design: usage of BIOS is probably the most important one. CP/M dominated the world of 8-bit microprocessors.

Here how Wikipedia covers this development:

In 1980, IBM approached Digital Research, at Bill Gates's suggestion, to license CP/M for its upcoming IBM PC. Although he knew about the meeting, Kildall missed the first part because he chose to deliver software in person to North Star Computers in his Pitts Special airplane at the same time. His wife Dorothy, an attorney, handled the business discussions as was usually the case. She hesitated to sign IBM's complex non-disclosure agreement, which the IBM representatives required before revealing any details of the project. Upon returning to DR, Kildall quickly signed the agreement, but he remained unenthusiastic about porting CP/M to the IBM PC's 8088 processor.[2]

IBM related the story to Gates, who was already providing the ROM BASIC interpreter for the PC. Gates was astonished that Kildall had not shown more interest; in later years he would claim that Kildall capriciously "went flying." IBM representatives expressed doubts that the project could continue without CP/M, so Gates agreed to provide a CP/M-compatible OS for the PC, expecting that he could license the CP/M clone QDOS from Seattle Computer Products. Microsoft adapted QDOS for the IBM PC and delivered it to IBM as PC-DOS.

Kildall believed that PC-DOS infringed on CP/M's copyright, but software copyright law was in its infancy—the decision in the landmark Apple v. Franklin case was still two years away—and according to accounts of Kildall's employees and friends, Kildall was wary of engaging IBM in a lengthy and costly lawsuit. Nevertheless, he confronted IBM in late 1980 with his allegation, and they agreed to offer CP/M as an OS option for the PC in return for Digital's release of liability.[2] When the IBM PC was introduced, IBM sold the operating system as an unbundled (but necessary) option. One of the operating system options was PC-DOS, priced at US$60. A new port of CP/M, called CP/M-86, was offered a few months later and priced at $240. Largely due to its early availability and the substantial price difference, PC-DOS became the preferred operating system. IBM's decision to source its favored operating system from Microsoft marked the beginning of Digital Research's decline.

Kildall never spoke publicly about the IBM negotiations or the success of MS-DOS, although he talked about it within DR and wrote an unpublished 226-page memoir shortly before his death that contained his account. This memoir served as source material for a chapter about Kildall and CP/M in the 2004 book They Made America by Harold Evans.

People who have disputed his account include QDOS author Tim Paterson, DR legal counsel Gerry Davis, DR programmers Gordon Eubanks and Alan Cooper, and members of the IBM PC team. Eubanks has also rejected Gates's suggestion that Kildall took the day off when IBM visited, noting that he flew on company business.[3][4][2]

Tim Paterson was 24 when he wrote DOS and just out of the college. Here how he recollects the events in his blog entry The First DOS Machine

Seattle Computer Products (SCP) introduced their 8086 16-bit computer system in October 1979, nearly two years before the introduction of the IBM PC. By "computer system", I actually mean a set of three plug-in cards for the S-100 bus: the 8086 CPU card, the CPU Support Card, and the 8/16 RAM. At that time SCP did not manufacture the S-100 chassis these cards would plug into. That chassis and a computer terminal would be needed to make a complete working computer.

The S-100 Bus

Inside of a modern personal computer you'll find a motherboard crammed with the heart of the computer system: CPU, memory, disk interface, network interface, USB interface, etc. Off in one corner you usually find four or five PCI slots for add-in cards, but for most people no additional cards are needed (except maybe a graphics card).

In contrast, the S-100 Bus motherboard contained no components at all. A full-size motherboard had nothing but 18 – 22 card slots. Each slot accepted a 5" x 10" S-100 card with its 100-pin edge connector. A typical computer system would have a card with a CPU, possibly several cards with memory, a card for a floppy disk interface, a card for serial I/O, possibly a video card, etc.

This arrangement was started by MITS with the Altair 8800 computer, but eventually became standardized by the Institute of Electrical and Electronics Engineers as IEEE-696. During the standardization process, the S-100 bus was extended from being an 8-bit bus (typically used by 8080 and Z80 processors) to a 16-bit bus. It was this extension to 16-bits that made the S-100 bus a suitable target for the 8086 computer from SCP.

SCP also wanted to take advantage of the vast range of existing cards for the S-100 bus. They didn't need to make cards for disk interface, serial I/O, video, etc. since they were already available. Even the (empty) chassis itself was a standard item. An existing computer owner could simply swap out his 8-bit CPU card and replace it with the 16-bit SCP card, and all the hardware would work together (but the software was another matter).

The SCP 16-bit Computer System

The 8086 CPU card was an Intel 8086 microprocessor with dozens of logic chips needed to interface it to the S-100 bus. The signals and timings of the bus were built around the original 8-bit Intel 8080, and it took a lot of "glue" logic to create the same signals with a different microprocessor (this was also true for the Z80). For the 8086, however, there was also a significant added layer of working in "8-bit mode" or "16-bit mode". These modes were defined by the IEEE standard so that a 16-bit CPU could be used with existing 8-bit memory with a performance penalty, or with new 16-bit memory at full speed. Essentially, the CPU card could request 16 bits for each memory access. If there was no response, the card went into 8-bit mode: the microprocessor would be stopped momentarily while logic on the card ran two consecutive 8-bit memory cycles to fetch the required 16 bits.

The SCP 8086 CPU had a mechanical switch on it that allowed the microprocessor to run at either 4 MHz or 8 MHz (while a processor you get today would run at around 3,000 MHz = 3 GHz). When SCP first started sales, Intel could not yet provide the 8 MHz CPU chip so early units could only be run at 4 MHz.

The CPU Support Card was a collection of stuff needed to make a working computer. The most important items were:

The 8/16 RAM had 16 KB (not MB!) of memory. It could operate in "16-bit mode" so the 16-bit processor could run at full speed. In the early days, using four of these cards to build a system with 64 KB of memory would have been considered plenty.

The only 16-bit software available when the system was first released was Microsoft Stand-Alone Disk BASIC. SCP did not make a floppy disk controller, but supported disk controllers made by Cromemco and Tarbell.

Development Timeline

I earned my BS in Computer Science in June of 1978 and started work at SCP. Intel just announced their new 8086 microprocessor, and I was sent to a technical seminar to check it out. The May 1978 issue of IEEE Computer Magazine had published the first draft of the S-100 standard which included 16-bit extensions, so I was excited about the possibility of making a 16-bit S-100 computer. My primary duties at SCP were to improve and create new S-100 memory cards, which at that time were SCP's only products. But I was given the go-ahead to investigate a computer design when I had the time.

By January of 1979 my design for the 8086 CPU and CPU Support Card had been realized in prototypes. I was able to do some testing, but then hardware development needed to be put on hold while I wrote some software. Not even Intel could provide me with an 8086 assembler to do the most basic programming, so I wrote one myself. It was actually a Z80 program that ran under CP/M, but it generated 8086 code. Next I wrote a debugger that would fit into the 2 KB ROM on the CPU Support Card.

In May we began work with Microsoft to get their BASIC running on our machine. I brought the computer to their offices and sat side by side with Bob O'Rear as we debugged it. I was very impressed with how quickly he got it working. They had not used a real 8086 before, but they had simulated it so BASIC was nearly ready to go when I arrived. At Microsoft's invitation, I took the 8086 computer to New York to demonstrate it at the National Computer Conference in the first week of June.

There was a small setback when the June 1979 issue of IEEE Computer Magazine came out. The draft of the IEEE S-100 standard had changed significantly. I got involved in the standards process to correct some errors that had been introduced. But I still had to make design changes to the 8086 CPU which required a whole new layout of the circuit board, with a risk of introducing new errors. It turned out, however, that no mistakes were made so production was able to start 3 months later.

Evolution

The 16 KB memory card was eventually replaced by a 64 KB card. Intel introduced the 8087 coprocessor that performed floating-point math, and SCP made an adapter that plugged into the 8086 microprocessor socket that made room for it. Later SCP updated the 8086 CPU card so it had space for the 8087.

The software situation did not change until I wrote DOS for this machine, first shipping it in August 1980.

When IBM introduced their PC in August 1981, its 8088 processor used 8-bit memory, virtually identical in performance to using 8-bit memory with the SCP 8086 CPU. Except IBM ran their processor at 4.77 MHz while the SCP machine ran at 8 MHz. So the SCP 8086 computer system was about three times faster than the IBM PC.

IBM also reintroduced memory limitations that I had specifically avoided in designing the 8086 CPU. For S-100 computers, a low-cost alternative to using a regular computer terminal was to use a video card. The video card, however, used up some of the memory address space. The boot ROM would normally use up address space as well. SCP systems were designed to be used with a terminal, and the boot ROM could be disabled after boot-up. This made the entire 1 MB of memory address space available for RAM. IBM, on the other hand, had limited the address space in their PC to 640 KB of RAM due to video and boot/BIOS ROM. This limitation has been called the "DOS 640K barrier", but it had nothing to do with DOS.

Microsoft took full advantage of the SCP system capability. In 1988, years after SCP had shut down, they were still using the SCP system for one task only it could perform ("linking the linker"). Their machine was equipped with the full 1 MB of RAM – 16 of the 64 KB cards. That machine could not be retired until 32-bit software tools were developed for Intel's 386 microprocessor.

Posted by Tim Paterson at 2:15 PM 0 comments

In July 1981, Microsoft bought all rights to the DOS from Seattle Computer to fulfill contact already signed with IBM, and the name PC-DOS was adopted. Shortly afterward, IBM announced the Personal Computer, using as its operating system what was essentially Seattle Computer's 86-DOS 1.14. Microsoft has been continuously improving the DOS, providing version 1.24 to IBM (as IBM's version 1.1) with MS-DOS version 1.25 as the general release to all MS-DOS customers in March 1982.  Version 2.0, released in February 1983, has just been announced with IBM's new XT computer. There was also an interesting article "the roots of DOS" in IBM Softalk magazine dated March, 1983:

One does not write an operating system and fail to pick up a little wisdom in the process, particularly when that operating system becomes the property of Microsoft Corporation.

Tim Paterson, who has changed jobs and companies fairly often in the past few years, is satisfied with his position at present. He's at Seattle Computer, a company that made its name in the S-100 market and has since developed its own microcomputer--the Gazelle. It's been almost a year since he quit Microsoft. His experiences constructing an operating system that eventually would be central to IBM's Personal Computer and many other computers is quite a story.

Seen and Not Seen. Paterson looks good. He wears faded jeans. He has a dark beard and moustache, and he often breaks into a mischievous grin. A terrific programmer and hardware engineer, at twenty-six Paterson is typically innocent-looking.

He and his kind are the backbone of computer companies. There is no shortage of business people and production people in the computer industry. There are only a few terrific programmers. Everyone else is replaceable. Yet, in a big company, programmers are sometimes the least known, least appreciated employees.

"With all the code being written out there, who gets the credit? People like Bill Gates get it all and he hasn't written anything in years," says Paterson.

Paterson has been a pawn, a very valuable pawn, in a gigantic game of corporate chess. He has been moved around the board and asked to perform numerous tasks, some of which he'd like to forget. Like any good pawn, he's been relatively straightforward and dependable. But deep down, he's always wanted to be his own master, to call his own moves.

"My dad was an electrical engineer and when I went to school it was the first thing I tried," Paterson says.

In high school, Paterson took a semester of Fortran. He worked with a 7400, one of the TTL series of small logic chips. He didn't learn good textbook design from classes. "I learned it by reading and playing with it. I got a lot of exposure to electronics stuff at home."

It was as a student at Seattle's University of Washington that Paterson first encountered personal computers. In early 1976, his roommate bought an IMSAI 8080. "He provided the cash. I selected and maintained it," recalls Paterson. "It had a 4K memory board with the 8080 chip and no I/O devices. You could play a few stupid games like 'chase the bit,' which was entertaining for fifteen minutes at a time."

Days of Wire and Solder. Later that year, Paterson got a job as a technician at a Seattle-area retail computer store. There he was an eyewitness to those early days when the only way to own a microcomputer was to buy components and assemble it yourself. He's not kidding when he says, "Life begins with a disk drive."

With his university courses and practical experience in the retail store, Paterson learned quickly. He started toying around with designing his own peripheral boards.

"I got to know Rod Brock of Seattle Computer when he came into the store periodically. We were selling his boards. Eventually he asked me to consult for Seattle Computer.

"They were having problems with a 16K static memory board for the S-100," Paterson continues. "Rod Brock hired me in June 1978, at fifty dollars a day, to make the board work. I left the retail computer store at that time." After a few weeks of consulting, he was made a salaried employee of Seattle Computer.

In his computer science classes, Paterson had become interested in operating systems, as well as hardware and compilers. After receiving his bachelor of science degree in June '78, he attended graduate courses off and on for about another year. But he gradually lost interest. "I thought they were too oriented towards theory and not what I needed."

At Seattle Computer he at first worked on several projects--redesigning an S-100 memory board, which led to two new memory board designs. Things changed when he attended a local seminar on the Intel 8086 chip in late July 1978.

"I gained the respect of Rod Brock and made suggestions. I thought doing something with the 8086 would be neat and Brock gave it the go-ahead.

"The first design of the 8086 CPU card was finished by the end of January. We had a prototype by May 1979. We built three boards, but didn't wire them all up. There were both layout and design errors, but we got two prototypes working."

Rainy Day Computer. Seattle Computer was toying with the idea of eventually building its own computer, thus the CPU card project. They wanted to diversify, but had no firm business plan.

Once a prototype of the 8086 CPU was up and running, Seattle was approached by Digital Research to see if it could get CP/M to run on it. Microsoft, which had moved to the Seattle area in January 1979, wanted to see if some of its programs would work, too. At the end of May 1979, Paterson went to Microsoft to work with Bob O'Rear there. In a week or so, Paterson cranked out all 32K of Microsoft's Basic onto the 8086.

"That's pretty remarkable," says Paterson. "Microsoft already had developed several good utilities, like a cross-assembler for use with the PDP-10. There were a few bugs, but basically the CPU worked and the development tools worked."

At the 1979 National Computer Conference in New York, Seattle Computer was the guest of Microsoft and Lifeboat. They showed off standalone Basic-86, then the only software for the 8086. Seattle Computer started shipping the product with its CPU card in November, primarily to software developers.

In April 1980, Paterson began work on an operating system.

"We needed an operating system at Seattle Computer for our own computers and I wanted to do one. So we decided to go for it.

"I was waiting for Digital to come out with CP/M-86. I thought they would have it real soon. If they had beat me I wouldn't have taken the trouble.

"I had always wanted to write my own operating system. I've always hated CP/M and thought I could do it a lot better."

Fast and Grimy. In the spring of 1980, Paterson started working on what would become MS-DOS. By July, he had finished roughly 50 percent of the operating system and called it QDOS 0.10 (for quick and dirty). He quickly found a bug and it became QDOS 0.11.

"Step one was to write down what CP/M-80 did. Step two was to design a file system that was fast and efficient."

One of the significant differences between MS-DOS and CP/M-86, when it finally appeared, was the file management system. CP/M usually provides a window to no more than 16K or 32K. With MS-DOS, the entire file is available. Paterson created QDOS's file management module using the same method found in standalone Basic-86.

"I'm into bottom-up programming. You know that you're going to need certain functions later in the program. I build tools on which to make the next layer.

"When you're programming top-down, it's stepwise refining going from general actions to smaller actions. With my method there isn't a lot of diagramming. Bottom-up programming is definitely legitimate, it just doesn't get a lot of press."

By the end of August 1980, QDOS 0.11 worked well and was being shipped. It didn't stay QDOS very long, and not many copies were distributed. For the much improved update, Paterson worked hard to include all the necessary features of a complete operating system.

"There was an assembler, resident in the operating system, and debugging, but no editor. I wrote the quickest line editor I could imagine--quick in how fast I wrote it, two weeks.

"I was aghast," says Paterson, "when I heard that IBM was using it and not throwing it out the window."

Eighty-six on Cue. In December 1980, Paterson and company came out with 86-DOS, 0.33, which had significant improvements over QDOS. "86-DOS reflected pretty much everything we had learned so far. Just about the only thing it didn't have was variable sector record sizes. The assembler, originally written on the Z-80, was made faster. We also made some changes in the system calls. It was a pretty polished package when it was released."

Starting at the end of 1980, Seattle Computer sold 86-DOS to OEMs (original equipment manufacturers) and other companies like Microsoft.

"They [Microsoft] paid us a flat fee. It was not a per-copy royalty, but per OEM. Part of the contract said we couldn't ask them who they were selling it to or planning to sell it to."

In early 1981 the IBM Personal Computer had not yet been announced, but rumors were flying about Big Blue's micro. "We all had our suspicions that it was IBM that Microsoft was dealing with, but we didn't know for sure."

Around April 1981, while he was doing some internal changes on 86-DOS--modifying system calls and including error handling for hard disks--Paterson decided to quit Seattle Computer. In May, he went to Microsoft to work full-time on the PC-DOS version of 86-DOS.

"The first day on the job I walk through the door and 'Hey! It's IBM,' " says Paterson, grinning impishly. "I worked at Microsoft a neat eleven months. In May, June, and July I worked on things I hadn't quite finished, refining PC-DOS."

International Business Machinations. This was the beginning of an eleven-month hurricane. Almost daily, Paterson shipped stuff to Boca Raton for IBM's approval, and IBM would instantly return comments, modifications, and more problems.

"They were real thorough. I would send them a disk the same day via Delta Dash. IBM would be on the phone to me as soon as the disk arrived." Paterson pauses and winds up. He's remembering one request that clashed violently with his view of the project.

"IBM wanted CP/M prompts. It made me throw up." But when IBM asks, you comply if you're a lowly programmer, and that is what Paterson did.

He finished PC-DOS in July, one month before the pc was officially announced to the world. By this time, 86-DOS had become MS-DOS.

"Microsoft wanted to own it--pay all monies now and take it off Seattle Computer's hands. Both companies realized a good deal when they saw it. Seattle Computer really didn't have the marketing clout of Microsoft.

"So on July 27, 1981, the operating system became Microsoft's property. According to the deal, Seattle Computer can still see the source code, but is otherwise just another licensee. I think both companies were real happy. The deal was closed just a few weeks before the pc was announced. Microsoft was quite confident." Paterson pauses.

"Selling it was the right move. Seattle Computer is doing good without it. The timing was appropriate. I was invited to sit in on the meeting between Rod Brock and Paul Allen. I was flattered."

Is There Life after DOS? After the initial version of PC-DOS, Paterson went on to other programming tasks at Microsoft. He worked on an 8086 version of Microsoft's Basic compiler.

Paterson is like many programmers in the industry. Sure, he likes elegance. Sure, he likes simplicity. Sure, he likes to make things easy for the user. But what he likes more than anything else in a program or system is speed.

"I love assembly language. I'm a speed freak, especially with mathematical routines. If there's a loop that you want to repeat five times, I'll just rewrite the line that many times. Bam, bam, bam, woosh! The 8086 does normal loops real slow."

Paterson, still with Microsoft, did some consulting for Seattle Computer that fall, working on a RAM card for the IBM pc. Soon after he finished, he heard that Microsoft was working on a similar project.

"It was a real thrill to design a card for my employer's competitors. Microsoft was not too upset. They didn't chop my fingers off. By March 1982, Seattle's board had become quite popular. It came out months before anyone else came out with a multifunction board."

Late in 1981, Paterson and Microsoft got the word that IBM was looking for a 1.1 update. In November, he was made technical product manager of MS-DOS. He and his group delivered the initial version of 1.1 at the end of the year, a few days early. Then the Boca Raton deluge came.

"The whole process drove me crazy. A lot of bugs--PTRs [program trouble reports] -- kept dribbling in and IBM would make a phone call a day. It really drove me nuts. I felt like a puppet on an IBM string."

In March 1982, after two months of going back and forth with Paterson, IBM accepted 1.1. Paterson spent the last weeks of that month planning 2.0. Then, on April 1, he suddenly quit Microsoft. (Mark Zbikowski became the group manager and has brought MS-DOS to the brink of releasing the 2.0 version, which Paterson had little to do with.)

Not a man to burn his bridges, Paterson left Microsoft on good terms and returned to Seattle Computer to work, at first, on Seattle's floppy disk controller.

Wrong-Way Paterson. Seattle Computer was doing quite well. Paterson had owned 10 percent of the company since 1979, and had been an officer and member of the board. Achieving such a position at Microsoft was unlikely.

"It was not what was wrong with Microsoft, but what Seattle Computer had to offer. At Seattle, I'm director of engineering. Hey! That's really motivating. It was the basis for my moving back. I was a little irritated with Microsoft, mainly having to work with IBM. Microsoft recognizes talent. If somebody complains, they try to move them around."

Paterson moved himself, though, out the front door.

At present, he and Seattle Computer are "catching up." They have new S-100 products in the works and will have "new IBM stuff" soon.

"We're working on our expansion cards, making them with four functions instead of just two. We want to catch up with those four function guys. We're also working on a new enclosure for the Gazelle.

"I have the urge to do another operating system--to see if, under the circumstances, I couldn't do it better. I don't think I will, though, not at Seattle Computer. I don't have the time.

"Currently, my job does not include designing software, though I consider myself a software designer. I can picture all kinds of neat things--combined packages. Memory's cheap these days and it should be possible to have a spreadsheet, word processor, database, and more at fingertip control in one package.

"Still, the 8086/8088 looks like it for a while. It'll go through a software jump; it hasn't caught up with the Z-80 yet."

Speed Racer. When far from the world of programming and corporate politics, Paterson is something of a race-car nut. He codrives a Mazda RX-2 in pro rallies.

"The car has a roll cage and we wear helmets and all that. I have an RX-7 and, yeah, I'm kinda into cars."

Paterson is still looking for that elusive something. Independently minded, he seeks complete freedom. He doesn't want to work for someone else all his life. More properly put, he doesn't want always to be doing someone else's work.

Some year Paterson would like to start his own company. When his Seattle Computer stock is worth enough, he just may sell it and go off on his own.

"Don't worry, the boss knows. Rod Brock said to me, 'Tim, in a few years you'll go.' There is the potential that I'll go all the way with Seattle, but I just don't know. Small companies that make it either become big or become part of a big company."

For the moment, Paterson is just another brilliant programmer. He's happy, but a little sad sometimes.

"Who cares who wrote the operating system?"

We'll remember, Tim.

softalk for the IBM Personal Computer March 1983

PC-DOC 1.0

The acronym DOS was not new even then. It had originally been used by IBM in the 1960s in the name of an operating system (i.e., DOS/360) for its System/360 line of mainframes.  After QDOS code was quickly polished up and presented to IBM for evaluation IBM found itself left with Microsoft's offering of "Microsoft Disk Operating System 1.0". An agreement was reached between the two, and IBM agreed to accept 86-DOS as the main operating system for their new PC.

Microsoft initially kept the IBM deal a secret from Seattle Computer Products. Microsoft purchased all rights to 86-DOS only in July 1981, and "IBM Personal Computer DOS 1.0" was ready for the introduction of the IBM PC in October 1981. IBM subjected the operating system to an extensive quality-assurance program, reportedly found well over 300 bugs, and decided to rewrite several programs. This is why PC-DOS is copyrighted by both IBM and Microsoft.  And in what was to become another extremely fortuitous move, Bill Gates persuaded IBM to let his company retain marketing rights for the operating system separately from the IBM PC project. So there was two version of the same OS on the market: PC-DOS (the IBM version) and MS-DOS (the Microsoft version). The two versions were initially nearly identical, but they eventually diverged.

Digital Research wanted $495 for CP/M-86 and that considering PC-DOS with similar functionality was $40 many software developers found it easier to port existing CP/M software to DOS than to the new version of CP/M.  IBM's $39.95 DOS was far cheaper than anyone else's alternative and everyone bought DOS.  BTW, formally the IBM PC shipped without an operating system.  IBM didn't start bundling DOS until the second generation AT/339 came out.

Until its acquisition of QDOS and development of MS DOS of its base Microsoft had been a major vendor of computer programming languages for microcomputers. It stated with BASIC interpreter: Gates and co-founder Paul Allen had written Microsoft BASIC and were selling it on disks and tape mostly to PC hobbyists.  Later they added several other languages.  But due to the tremendous success of MS DOS Microsoft all at once became the operating systems company. As PC became the most popular personal computer, revenue from its sales fueled Microsoft's phenomenal growth, and MS-DOS was the key to company's rapid emergence as the dominant firm in the software industry. This product continued to be the largest single contributor to Microsoft's income well after it had become more famous for Windows. 

Phenomenal speed of development of DOS by Microsoft

The original version of DOS (version 1.0) was quickly superseded by newer versions due to phenomenal speed of development by Microsoft. For several years they produced a new version each year and each version contained significant enhancements: 

By 1984, IBM's PC DOS, had grabbed 35% of the personal computer market. With the arrival of IBM compatible clones running MS DOS, the path was set for DOS to become the standard by sheer volume alone. And by 1986 DOS became a de-facto standard. 

Additions and improvements in subsequent versions included support for multiple hard disk partitions, for disk compression and for larger partitions as well as an improved disk checking program, improved memory management, a disk defragmenter and an improved text editor.

In spite of its very small size and relative simplicity, it is one of the most successful operating systems that has been developed.  Paradoxically this simple system was more popular then all versions of Unix combined despite the fact that Unix is much more complex and richer OS or may be because of that.  Due to mass market created by DOS and PCs the quality of DOS applications was very high and in most cases they simply wiped the floor of their Unix counterparts. DOS has more then a dozen variant with three main: MS DOS (Microsoft), PC DOS (IBM) and DR DOS (Digital Research, the authors of DR-DOS).

DOS is a text-based 16-Bit single-user, single-tasking operating system. The early success of Microsoft is mainly based on the success of MS-DOS.  Later versions of MS-DOS brought some changes in memory handling and peripheral support, but because of its architecture, DOS was unable to make use of the capabilities of 386 and later Intel chips. 

Though limited to a single program mode, DOS is still preferred by many programmers (mainly developers of games), because the application has full control over all resources in the PC.  Some unique programs like 1-2-3, MS Word, Norton Commander,  Xtree,  Ghost, originated in DOS. While two-button mouse was widely available on PCs approximately from 1986,  DOS programs widely used "letter accelerators" for menus. 

DOS games became the most successful software industry and many of DOS games became instant classics.  Many site on Internet still make them available for download.  Such games as Tetris, Digger, Alleycat, Frogger, Adventure of Captain Comic, Battle Chess, Lemmings, Prince of Persia, Doom  became part of software game history.

Battle between MS DOS, PC-DOS and DR-DOS

Microsoft used the loophole in IBM contact to market his own version of DOS called MS-DOS. Digital Research was the first company who tried to unseat Microsoft monopoly by producing better versions DOS then MS DOS but Microsoft proved to be a very tough competitor.  As Wikipedia stated:

The first version was released in May, 1988. Version numbers were chosen to reflect features relative to MS-DOS; the first version promoted to the public was DR-DOS 3.41, which offered comparable but better features to the massively successful MS-DOS 3.3 - and Compaq's version, Compaq DOS 3.31. (Compaq's variant was the first to introduce the system for supporting hard disk partitions of over 32MB which was later to become the standard used in MS-DOS 4.0 and all subsequent releases.)

At this time, MS-DOS was only available bundled with hardware, so DR-DOS achieved some immediate success as it was possible for consumers to buy it through normal retail channels. Also, DR-DOS was cheaper to license than MS-DOS. As a result, DRI was approached by a number of PC manufacturers who were interested in a third-party DOS, and this prompted several updates to the system.

Most significant update

The most significant was DR-DOS 5.0 in May 1990. (The company skipped version 4, avoiding comparison with MS-DOS 4.0.) This introduced ViewMAX, a GEM based GUI file management shell, and bundled disk-caching software, but more significantly, it also offered vastly improved memory management over MS-DOS. Compared to earlier MS-DOS 4.01 which already bundled a 386-mode memory manager (EMM386.SYS), capable of converting Extended Memory Specification (XMS) memory into Expanded Memory Specification (LIM 4.0 EMS) memory more commonly used by DOS applications, memory management in DR-DOS had two extra features.

First, on Intel 80286 or better microprocessors with 1MB or more RAM, the DR-DOS kernel and structures such as disk buffers could be located in the High Memory Area, the first 64KB of extended memory which were accessible in real mode due to an incomplete compatibility of the 80286 with earlier processors. This freed up the equivalent amount of critical "base" or Conventional memory, the first 640KB of the PC's RAM – which was the area in which all MS-DOS applications had to run. Using high memory was not a new idea, as this memory could previously be used by Windows applications starting with Windows/286 2.1 released in 1988, but offering more memory to old DOS applications was more interesting.

Additionally, on Intel 80386 machines, DR-DOS's EMS memory manager allowed the OS to load DOS device drivers into upper memory blocks, further freeing base memory. For more information on this, see the article on the Upper Memory Area.

DR-DOS 5 was the first DOS to integrate such functionality into the base OS (loading device drivers into upper memory blocks was possible using QEMM and MS-DOS). As such, on a 386 system, it could offer vastly more free conventional memory than any other DOS. Once drivers for a mouse, multimedia hardware and a network stack were loaded, an MS-DOS machine typically might only have 300 to 400KB of free conventional memory – too little to run most late-1980s software. DR-DOS 5, with a small amount of manual tweaking, could load all this and still keep all of its conventional memory free – allowing for some necessary DOS data structures, as much as 620KB out of the 640KB.

So much, in fact, that some programs would fail to load as they started "impossibly" low in memory – inside the first 64KB. DR-DOS 5's new LOADFIX command worked around this by leaving a small empty space at the start of the memory map.

Given the constraints of the time, this was an incredibly powerful technology which made life much easier for PC technicians of the day, and this propelled DR-DOS 5.0 to rapid and considerable popularity.

 Aggressive competition by Microsoft

Faced with substantial competition in the DOS arena, Microsoft responded strongly. They announced the development of MS-DOS 5.0 in May 1990, to be released a few months later and include similar advanced features to those of DR-DOS. This has been seen as vaporware, as MS-DOS 5.0 was released June 1991. It included matches of the DR's enhancements in memory management, but did not offer all of the improvements to the syntax of DOS commands that DR did.

DR responded with DR-DOS 6.0 in 1991. This bundled in SuperStor on-the-fly disk compression, to maximise the space available on the tiny hard disks of the time - 40MB was still not an atypical size, which with the growth of larger applications and especially Microsoft Windows was frequently not enough space. DR-DOS 6.0 also included an API for multitasking on CPUs capable of memory protection, namely the Intel 80386 and newer. The API was available only to DR-DOS aware applications, but well-behaved ordinary DOS applications could also be pre-emptively multitasked by the bundled task-switcher, TaskMax. On 286-based systems, DOS applications could be suspended to the background to allow others to run. However, DR's multitasking system was seen as technically inferior to third-party offerings such as DESQview, which could multitask applications which performed direct hardware access and graphical applications and even present them in scalable on-screen windows. Though far from being a true "multitasking" operating system, TaskMax nonetheless represented an important "tick on the box" - a feature on the list of specifications.

Microsoft responded with MS-DOS 6.0, which again matched the more important features of DR-DOS 6.0 - but the use of stolen code caused legal problems. See the article on MS-DOS for more.

Though DR-DOS was almost 100% binary compatible with applications written for MS-DOS, Microsoft nevertheless expended considerable effort in attempts to break compatibility. In one example, they inserted code into the beta version of Windows 3.1 to return a non-fatal error message if it detected a non-Microsoft DOS. With the detection code disabled (or if the user canceled the error message), Windows ran perfectly under DR-DOS. [1] This code was removed from final release of Windows 3.1 and all subsequent versions, however. (see also Embrace, extend and extinguish for other Microsoft tactics.)

IBM was the second company that tried to fight MS-DOS dominance, but it entered in the war too late when major battles were already lost. Until version 6 all versions of MS DOS and PC DOS were very similar. But at version 6 those two OSes diverged. Especially different was PC DOS 7 which many consider the best DOS ever created.  Both PC DOS 6 and PC DOS 7 arrived too late to change the history. PC-DOS 7 was substantially more reliable and easier to configure than any of its competitors. In short PC-DOS 7 was  a winner. It even contained REXX interpreter and Xedit style editor. The final release of PC-DOS was Y2K Compliant and was also known as PC DOS 2000. Versions 7 and 2000 natively support a XDF floppy format (800.com driver was used before for this purpose).

The final major version was  probably DOS 7.0, which was released in 1995 as part of Microsoft Windows 95. It featured close integration with that operating system, including support for long filenames and removal of some command line utilities, that were preserved and can installed separately from Windows 95 CDROM. It was revised in 1997 with version 7.1, which added support for the FAT32 filesystem on hard disks.

Although many of the features were copied from UNIX and CP/M, MS-DOS was a distinct OS that surpassed Unix in the command line interface sophistication. 

The Rise of the GUI and the demise of MS DOS

The demise of MS DOS occurred mainly due to raise of important on GUI interfaces and dramatic growth of power of personal computers. The introduction of the Apple Macintosh in 1984 brought about a surge of interest in GUIs (graphical user interfaces), and it soon became apparent that they are the future of personal computer interface.

Although many MS-DOS programs created their own sometimes very sophisticated command line based GUIs, this approach required duplication of programming effort, and the lack of a consistent GUI API made it more difficult for users to learn new programs and for developers to develop them.

It took Microsoft several years to provide high quality GUI of its own, but it finally succeeded with the  introduction of Windows 95 in 1995 which has taken market by storm making DOS obsolete. Still even previous version of Windows starting with Windows 3.0 released in 1990 used to have very capable GUI.  Protected mode and real mode are the two modes of operation supported by the Intel x86 architecture. The former enables 32-bit memory addressing, thereby permitting use of the extended memory that cannot be easily accessed from real mode. This makes it possible to assign separate memory areas to the operating system kernel and to each process (i.e., program or task), thus resulting in much more stable multitasking than can be attained with real mode.

Early versions of Microsoft Windows ran under MS-DOS, whereas later versions were launched under MS-DOS but were then extended by going into protected mode. Windows NT and its successors, Windows 2000 and XP, do not use MS-DOS; however, they contain an emulation layer on which MS-DOS programs can be operated, mainly for backward compatibility which is excellent: most DOS 1 program still can run on both Windows 2000 and XP. 

DOS Commands and DOS shell

MS-DOS has a relatively small number of commands, and an even smaller number of commonly used ones. They can be glued together by very primitive shell called Batch file.  Moreover, these commands are generally inflexible because, in contrast to Unix-like operating systems, they are designed to accommodate few options or arguments (i.e., values that can be passed to the commands).

Some of the most common commands are as follows (corresponding commands on Unix-like operating systems are shown in parenthesis):

CD - changes the current directory (similar to unix cd)
COPY - copies a file (cp)
DEL - deletes a file (rm)
DIR - lists directory contents (ls)
EDIT - starts an editor to create or edit text files
FORMAT - formats a disk to accept DOS files (mformat)
HELP - displays information about a command (man, info)
MKDIR - creates a new directory (mkdir)
RD - removes a directory (rmdir)
REN - renames a file (similar to unix mv)
TYPE - displays contents of a file on the screen (similar to Unix cat)

Primitivism of DOS shell simulated creation of various file managers (see The History of Development of Norton Commander) with additional shell capabilities as well as alternative shells, the most successful of which was 4DOS.

Comparison between MS-DOS and Linux

MS-DOS and Linux have much in common, primarily because MS-DOS copied many ideas from UNIX. However, there are some very fundamental differences, including:

  1. Linux is a full-fledged multiuser, multitasking operating system, whereas MS-DOS is a single-user, single-tasking operating system.
  2. Despite being more complex and powerful OS Linux has much weaker interface with the keyboard and the quality of full screen command mode applications is inferior to DOS.
  3. MS-DOS does not have built-in security concepts such as file-ownership and permissions, which are fundamental to Linux.
  4. Linux has an inverse tree-like filesystem in which all directories and files branch from a single directory, i.e., the root directory, and its subdirectories. MS-DOS can have multiple, independent root directories, such as A:, C:, D:, etc.
  5. Linux uses forward slashes "/" to separate directories, whereas MS-DOS uses backslashes "\" for the same purpose.
  6. Linux filenames can contain up to 255 characters. MS-DOS filenames are limited to an eight characters plus a three-character file type and have restrictions on allowable characters. Also, filenames are case-sensitive in Linux, whereas they are not in MS-DOS.
  7. Linux has a richer command line utilities set than does MS-DOS, with a much greater number of commands and individual commands having greater power, flexibility and ease of use. Commands are case-sensitive in Linux, but they are not in MS-DOS.
  8. Although Linux and MS-DOS both have pipes and I/O redirection, the MS-DOS pipes use a completely different -- and inferior -- implementation. 

MS-DOS Clones and Emulators

The great success of MS-DOS led to the development of several similar operating systems, including DR-DOS, FreeDOS, OpenDOS and PC-DOS. Development of FreeDOS was begun in 1994 by Jim Hall, then a physics student at the University of Wisconsin-River Falls. His motivation was Microsoft's announcement that it would stop supporting MS-DOS because of its impending replacement by Windows 95.

Like MS-DOS, FreeDOS is lean and robust, and it can run on old hardware and in embedded systems. A major improvement as compared with MS-DOS is the addition of options to the commands. FreeDOS is released under the GPL (although some software in the distribution is covered by other licenses).

Because Linux was originally developed on PCs and at a time when MS-DOS was the dominant PC operating system, a variety of tools were developed to help developers and users bridge the gap between the two operating systems. Among them is dosemu, a DOS emulator which is included with Red Hat and other distributions and on which it is possible to run DOS programs. Emulators are also available for running DOS on other versions of Unix, even on non-x86 processors.

mtools is a collection of utilities that make it easy to access an MS-DOS floppy disk from Linux by merely inserting it into the floppy disk drive and without having to use any mount commands (which can be tricky for inexperienced users). Included in mtools are more than 20 commands, all of which are identical to their MS-DOS counterparts except that the letter m is added to the start of each of their names. For example, the MS-DOS command type a:\file1.txt to display the contents of file1.txt that is located on a floppy disk would become mtype a:/file1.txt (mtools commands use forward slashes instead of backslashes).

The Future of MS DOS

Although it is widely believed that MS-DOS is an antiquated dead operating system with few features and capabilities, this is far from correct. In fact, although not generally publicized, MS-DOS is still used today by numerous businesses and individuals around the world. It survived for so long because is is robust, relatively simple and continue to get the job done with a minimum of maintenance.

DOS is one of the most secure operating system in existence. Application doe DOS do not "dial home" and do not automatic updates which are essentially a backdoor. At the same time the quality of application is extremely high. Some components of MS office such as MS Word exist for DOS. 

DOS is still one of the best way to run recovery programs, low-level disk utilities, the flashing of the system BIOS and diagnostics.  In it used in several popular programs with Norton Ghost 2003 probably the most popular.

In many cases, it was not DOS itself that was the limiting factor in system performance; rather, it was the hardware, including small memories, slow CPUs and slow video cards. The capabilities of DOS have, in fact, continued to increase for several year after Microsoft Windows 95 became widespread. This is a result of continuing advances in the hardware support and the introduction of new or improved utilities and applications. The most active segments were not MS-DOS but other DOS clones, particularly IBM PC DOS 7, DrDos and FreeOS. 

Due to IBM efforts PCs DOS usage actually rose after 1995 and version 7 is still used in some parts of Eastern Europe and Asia.  It is probably the most high quality version of MS DOS in existence. PC DOS 7.1 fully supports FAT32 and LBA. Its latest publicly available build is from December 2003. Available from http://www.ibm.com/systems/management/sgstk.html"

DOS will be around for many years into the future not only because of the continued existence of legacy applications and extremely rich high-quality tool chain that even today is in some segments is richer then Linux tool chain but also because of security concerns that are now pretty widespread in Windows environment.

The main area of growth will most likely be simple embedded applications, for which DOS is  attractive because of its extremely small size, very reliable operation, well developed toolset including high quality compilers from C and zero cost (in the case of DrDos and FreeDOS).

Dr Nikolai Bezroukov


Heelo
Top Visited
Switchboard
Latest
Past week
Past month


NEWS CONTENTS

Old News ;-)

[Dec 26, 2016] FreeDOS 1.2 Is Finally Released

Notable quotes:
"... Jill of the Jungle ..."
Dec 26, 2016 | news.slashdot.org
(freedos.org) 59

Posted by EditorDavid on Sunday December 25, 2016 @02:56PM from the long-term-projects dept.

Very long-time Slashdot reader Jim Hall -- part of GNOME's board of directors -- has a Christmas gift. Since 1994 he's been overseeing an open source project that maintains a replacement for the MS-DOS operating system, and has just announced the release of the "updated, more modern" FreeDOS 1.2 !

[Y]ou'll find a few nice surprises. FreeDOS 1.2 now makes it easier to connect to a network. And you can find more tools and games, and a few graphical desktop options including OpenGEM. But the first thing you'll probably notice is the all-new new installer that makes it much easier to install FreeDOS. And after you install FreeDOS, try the FDIMPLES program to install new programs or to remove any you don't want. Official announcement also available at the FreeDOS Project blog .

FreeDOS also lets you play classic DOS games like Doom , Wolfenstein 3D , Duke Nukem , and Jill of the Jungle -- and today marks a very special occasion, since it's been almost five years since the release of FreeDos 1.1. "If you've followed FreeDOS, you know that we don't have a very fast release cycle," Jim writes on his blog . "We just don't need to; DOS isn't exactly a moving target anymore..."

[Dec 08, 2015] PC-DOS 7.1 - FreeDos and Dos - reboot.pro

Hi

I have been looking around for varieties of PC-DOS 7.1

Currently i have several builds:
1.10, 1.11, 1.19, 1.26, 1.28, 1.29, 1.30, 1.32 and one earlier one (no built-in version).

All of these have ibmbio.com, ibmdos.com, and command.com.

1.19 is very common (ghost 2003), but only has the kernel files and some pcdos 2000 files.

1.26 has also himem.sys

1.28 has himem.sys, fdisk32.com, but these come from different copies of 128

1.32 is the most complete set from the server script kit. MSCDEX is not specifically identified as 1.32, but is different to the pcdos 2000 version (in two bytes), that it is counted as first appearing here.

BLDLEVEL.COM, COMMAND.COM, DEBUG.COM, DYNALOAD.COM, FDISK32.COM, FORMAT.COM, FORMAT32.COM, HIMEM.SYS, IBMBIO.COM, IBMCDET.SYS, IBMDOS.COM, MSCDEX.EXE, NOINT25.COM,

These come with a collection of pcdos 2000 files, and a few others. The PCDOS 2000 files come to

ATTRIB.EXE        E.EX                  FIND.EXE                MORE.COM                RXDINFO.RX
CHKDSK.COM        E.EXE            HIMEM.SYS       MOUSE.COM       SMARTDRV.EXE
CHOICE.COM        E.INI            KEYB.COM             MOVE.EXE                SUBST.EXE
COUNTRY.SYS      EGA.CPI                 KEYBOARD.SYS   MSCDEX.EXE        SYS.COM
DELTREE.EXE      EHELP.HLP         LABEL.COM       RAMDRIVE.SYS TREE.COM
DISPLAY.SYS      FC.EXE           MEM.EXE                REXX.EXE               XCOPY.EXE
DOSKEY.COM        FDISK.COM        MODE.COM

There are other task-specific utilities, some of which seem to have general application.

altboot, cliini, findram, linecomb, mbrtool, reboot, scandisk, scrub3, sleep, tshudwn.

For PCDOS, i have modified files like bootnt4/bootw98 to install windows NT, 9x, PC-DOS, PCDOS71, and MSDOS622 sectors. These files write new boot sectors. You can use bootpart or my modified ibmpart to move the necessary files into place. I installed all of these boot sectors onto a vm, and then reverted to pcdos71. The vm rebooted perfectly.

I've also found a proggie in http://omniplex.om.f...os/pcdosasm.htm like dos622.com. It tells you how to change the version to any pcdos or msdos number (even things like pcdos 5.82). Still, it's handy since you can test msdos 6.22 under Windows 2000, without the need for a virtual machine. (dos622 command.com, and then run commands from there). I made versions for all pcdos and msdos (ibm320, 330, 400, 500, 502, 600, 630, 700, 710), and msdos (500, 600, 620, 622, 700, 710, 800). Other dos versions like 6.21 and 6.10 are really 6.20 and 6.00 respectively. There's room to handle dos versions like 20.45 etc. Beats setver.

[Oct 19, 2012] DOS ain't dead - IBM PC DOS, free downloads

"PC DOS 7.1, however, fully supports FAT32 and LBA. Its latest publicly available build is from December 2003 - new enough in my humble opinion. Available from http://www.ibm.com/systems/management/sgstk.html"

PC DOS 7.1, however, fully supports FAT32 and LBA. Its latest publicly available build is from December 2003 - new enough in my humble opinion. Available from

http://www.ibm.com/systems/management/sgstk.html

===

The licensing is complicated, but as AFAIK DR-DOS/OpenDOS 7.01, 7.02 and 7.03 (pre-Devicelogics) are still free, cerainly for private use. Source is free for OpenDOS 7.02. DRDOS, Inc. can't change licensing for an ancestor of its product that it never owned. If they could, Udo Kuhnt would be in a lot of trouble.

... ... ...

===

Snipped from the OpenDOS 7.01 source license:

* REDISTRIBUTION OF THE SOFTWARE IS PERMITTED FOR NON-COMMERCIAL
PURPOSES provided that the copyright notices, marks and these terms
and conditions in this document are duplicated in all such forms and
that the documentaiton, advertising materials, and other materials
related to such distribution and use acknowledge that the software was
developed by Caldera, Inc.

For the source code license grant, you may:

* modify, translate, compile, disassemble, or create derivative works
based on the Software provided that such modifications are for
non-commercial use and that such modifications are provided back to
Caldera except for those who have obtained the right from Caldera
in writing to retain such modifications; any modification, translation,
compilation, disassembly or derivative work used for commercial gain
requires a separate license from Caldera;
[End snips]

So it looks to me like Udo is OK, as long as he doesn't charge money for his OS.

====

excerpt from OpenDOS 7.0.1 license.txt:

---------------------------------------------------------------------
Caldera grants you a non-exclusive license to use the Software in
source or binary form free of charge if

(a) you are a student, faculty member or staff member {...}

(b) your use of the Software is for the purpose of evaluating
whether to purchase an ongoing license to the Software. The evaluation
period for use by or on behalf of a commercial entity is limited
to 90 days; evaluation use by others is not subject to this 90 day
limit but is still limited to a reasonable period.

[Oct 19, 2012] PC DOS 2000 (v7.00R1)

IBM PC DOS 2000 is the complete solution for the millions of personal computers in the world still running an older version of DOS. This powerful new version of IBM PC DOS contains the newest revision of PC DOS (v7.0 revision 1.0) along with an impressive list of features including Y2K compliance.

PC DOS 7.0 Revision 1, released in 1998.

Fully Year 2000 (Y2K) Compliant.

Automtically corrects "century rollover" exposure.

Eurocurrency Support.

Online Help System.

RAMBOOST - Automatically optimizes convential memory.

REXX - allows you to write powerful and portable programs for DOS, OS/2, and other operating systems.

Scheduler - Allows you to schedule any DOS program or batch file for unattended use.

Undelete - Recover previously deleted files.

PCMCIA - Phoenix Technologies level 3.01 PCMCIA support.

DYNALOAD - Dynamically load device drivers from the command line.

E Editor - Text Editor with menus, math, and mouse support. Supports editing and viewing of multiple files simultaneously.

PEN DOS - Hand writing recognition support built in.

[ Oct 10, 2012 ] VPC 2007 and PC DOS 2000 (CD-DVD drive not recognized by DOS VM) - Vista Forums

VPC 2007 and PC DOS 2000 (CD/DVD drive not recognized by DOS VM)

--------------------------------------------------------------------------------

How do I get Virtual PC 2007 to access my CD/DVD drive for my IBM PC DOS 2000
VM? When I run DOSShell in PC DOS, I see only the A, B and C drives. I have
a floppy (A) and 2 hard drives (C, D). My DVD burner is E. The B drive in
DOSShell is irrelevant because it corresponds to nothing on my hardware; but
I'm still trying to get PC DOS to recognize my DVD drive.

[Aug 14, 2011] The IBM PC is 30 today • reghardware

IBM announced its new machine, the 5150, on 12 August 1981. It was no ordinary launch: the 5150 wasn't the 'big iron' typical of Big Blue - it was a personal computer.

Here's the original 1981 announcement (PDF).

A 12-strong team was assembled under Don Estridge, the Development Director of the project, codenamed 'Chess'. Lewis Eggebrecht was brought on board as Chief Designer.

Rather than create the 5150 from scratch, Estridge's engineers used existing parts from a variety of other companies, seemingly in marked contrast with IBM tradition. The company made a virtue out of the fact that it made the components used in its machines. When you bought an IBM computer, it had IBM's imprimatur of quality through and through.

Re: VPC 2007 and PC DOS 2000 (CD/DVD drive not recognized by DOS VM)

--------------------------------------------------------------------------------

On Tue, 25 Aug 2009 23:34:10 GMT, "CookyMonzta via WindowsKB.com"
<u50174@xxxxxx> wrote:

Quote:

>How do I get Virtual PC 2007 to access my CD/DVD drive for my IBM PC DOS 2000
>VM? When I run DOSShell in PC DOS, I see only the A, B and C drives. I have
>a floppy (A) and 2 hard drives (C, D). My DVD burner is E. The B drive in
>DOSShell is irrelevant because it corresponds to nothing on my hardware; but
>I'm still trying to get PC DOS to recognize my DVD drive.
You need to install CD-ROM drivers. DOS does not come with them
preinstalled.
The easiest way is to use the VMAdditions from VPC2004, you can
download them from my website.

[Jul 27, 2011] MS-DOS Is 30 Years Old Today

"Thirty years ago, on July 27 1981, Microsoft bought the rights for QDOS (Quick and Dirty Operating System) from Seattle Computer Products (SCP) for $25,000. QDOS, otherwise known as 86-DOS, was designed by SCP to run on the Intel 8086 processor, and was originally thrown together in just two months for a 0.1 release in 1980 (thus the name). Meanwhile, IBM had planned on powering its first Personal Computer with CP/M-86, which had been the standard OS for Intel 8086 and 8080 architectures at the time, but a deal could not be struck with CP/M's developer, Digital Research.

IBM then approached Microsoft, which already had a few of years of experience under its belt with M-DOS, BASIC, and other important tools — and as you can probably tell from the landscape of the computer world today, the IBM/Microsoft partnership worked out rather well indeed."

Osgeld:

what a half assed summary, and it was not the IBM/Microsoft partnership that did shit, its the MS licencing agreement that allowed MS to sell to other people than IBM that made a huge fucking difference when the clones came in and obliterated IBM at their own game

Chemisor:

And just remember how WordPerfect 5.1 met all your word processing needs in less than 640k, while OpenOffice writer needs 640M to do it.

Rockoon:

Microsoft was already well established in the market by that point. It was hard to find a machine that did not have a Microsoft BASIC baked into a ROM chip, and even harder to find one that didn't rely on any Microsoft BASIC at all. Everyone used Microsoft.

IBM was doing business with an already established partner when they contracted Microsoft for an OS.

dintech:

The MS-DOS acronym It always made me wonder. If QDOS was Quick and Dirty Operating System, then surely MS-DOS is Microsoft Dirty Operating System. It's a weird way to brand your product.

harrkev:

Well, I remember when I was a kid, the computer world was very fragmented. Apple was incompatible with Atari was incompatible with Commodore was incompatible with IBM. Need I mention the other minor players, such as Franklin, Acorn, TI, Sinclair, etc.? Great game came out? Odds are it won't run on the system that YOU have. As much as I generally dislike the major players, at least there are only three major platforms that you have to develop for. In fact, you can develop a game for only one market, and still have the opportunity to make quite a bit of money.

[Jul 27, 2011] All Those Floppy Disk Formats…

Apr 16, 2011 | DosMan Drivel

IBM PC Floppy Disks

IBM chose to use 5” double-density soft-sectored disks with 40 tracks, 8 sectors per track, and 512 bytes per sector. This gave their disk a total capacity of 163,840 bytes, known as the “160k disk”.

In the spring of 1981 I left Seattle Computer to work for Microsoft. My first task was to help put the finishing touches on the adaptation of DOS to the IBM PC hardware. This work was generally driven by bug reports and feature requests from IBM, and I stuck to doing the work I was asked to do. But eventually I got up the nerve to ask: Why were there only 8 sectors per track on the IBM floppy disk?

We had worked with many disk formats at Seattle Computer, and I had gotten deep into the nitty-gritty of how they were laid out. A 5” disk spun at 300 RPM, or 0.2 seconds per revolution. The double-density bit rate was 250 kbps, meaning there was time for 50,000 raw bits, or 6250 bytes, in one revolution. There was considerable overhead for each sector, something like 114 bytes. But IBM was only using (512 + 114) * 8 = 5008 bytes of the track. Adding a 9th sector on the track would increase this to 5634 bytes, still far less than the total available. You could almost fit a 10th sector, but not quite (or maybe you could reduce the overhead and make 10 fit!).

IBM’s response was something like “Oh, really?” They had never done the calculations. It was also too late to put a change like this into the product (it was probably 2 – 3 months before the PC shipped). They said they would save it as a new, upgraded feature for DOS 1.1. The first IBM PCs would ship with the 160k format.

More Formats

IBM refreshed the Personal Computer line around 6 months after the initial release. This not only included DOS 1.1, but now the floppy disk drives could use both sides of the disks, doubling the capacity.

For compatibility, they still had the single-sided format with 8 sectors per track – the 160k disk. But now older PCs (with single-sided disks) could upgrade to DOS 1.1 and use the 9-sector format – the 180k disk. And of course new machines would want to use the double-sided 9-sector format – the 360k disk. For some reason, IBM also supported a double-sided 8-sector format – the 320k disk – which served no useful purpose.

Two years later IBM introduced the Personal Computer AT, based on the Intel 286 microprocessor. With it came the high-capacity 5” floppy disk. It basically gave the 5” disk the same specifications as the older 8” disks – doubling the data rate and spinning the disk at the faster 360 RPM. Capacity increased to 1.2 MB, the same as the 8” disks.

Eventually the 5” floppy disk was replaced by the 3.5” disk with its 1.44 MB capacity. I still see a few of my computers around the office with 3.5” disk drives, but their time has passed as well

[Jul 27, 2011] DosMan Drivel Design of DOS

September 30, 2007 | DosMan Drivel

File System Performance

An important design parameter for the OS was performance, which drove my choice for the file system. I had learned a handful of file management techniques, and I spent some time analyzing what I knew before making a choice. These were the candidates:

North Star DOS and the UCSD p-system used the simplest method: contiguous file allocation. That is, each file occupies consecutive sectors on the disk. The disk directory only needs to keep track of the first sector and the length for each file – very compact. Random access to file data is just as fast as sequential access, because it’s trivial to compute the sector you want. But the big drawback is that once a file is boxed in by other files on the disk, it can’t grow. The whole file would then have to be moved to a new spot with more contiguous free space, with the old location leaving a “hole”. After a while, all that’s left are the holes. Then you have to do a time-consuming “pack” to shuffle all the files together and close the holes. I decided the drawbacks of contiguous allocation were too severe.

UNIX uses a clever multi-tiered approach. For small files, the directory entry for a file has a short table of the sectors that make up the file. These sectors don’t have to be contiguous, so it’s easy to extend the file. If the file gets too large for the list to fit in the table, UNIX adds a tier. The sectors listed in the table no longer reference data in the file; instead, each entry identifies a sector which itself contains nothing but a list of sectors of file data. If the file gets huge, yet another tier is added – the table entries each reference a sector whose entries reference a sector whose entries identify the file data. Random access to file data is very fast for small files, but as the files get larger and the number of tiers grow, if will take one or two additional disk reads just to find the location of the data you really want.

CP/M didn’t track disk space directly in terms of sectors. Instead it grouped sectors together into a “cluster” or “allocation unit”. The original CP/M was designed specifically around 8” disks, which had 2002 sectors of 128 bytes each. By making each cluster 8 sectors (1K), there were less than 256 clusters on a disk. Thus clusters could be indentified using only one byte. The directory entry for CP/M had a table of 16 entries of the clusters in file, so for a file of 16K or less both random and sequential access were fast and efficient. But when a file exceeded 16K, it needed a whole new directory entry to store an additional 16K of cluster numbers. There was no link between these entries; they simply contained the same name and a number indentifying which section of the file it represented (the “extent”). This led to a potential performance nightmare, especially for random access. When switching between extents, the system had to perform its standard linear search of the directory for a file of the correct name and extent. This search could take multiple disk reads before the requested data was located.

Microsoft Stand-Alone Disk BASIC used the File Allocation Table (FAT). Unlike all the other file systems, the FAT system separates the directory entry (which has the file name, file size, etc.) from the map of how the data is stored (the FAT). I will not give a detailed explanation of how that worked here as the system has been well documented, such as my 1983 article An Inside Look at MS-DOS at http://www.patersontech.com/dos/Byte/InsideDos.htm.

Like CP/M, BASIC used a 1K cluster so that, once again, there were less than 256 on the standard 8” floppy disk of the day. The FAT needs one entry per cluster, and for BASIC the entry needed to be just one byte, so the FAT fit within two 128-byte sectors. This small size also meant it was practical, even with the limited memory of the time, to keep the entire FAT in memory at all times.

To me, the big appeal of the FAT system was that you never had to read the disk just to find the location of the data you really wanted. FAT entries are in a chain – you can’t get to the end without visiting every entry in between – so it is possible the OS would have to pass through many entries finding the location of the data. But with the FAT entirely in memory, passing through a long chain would still be 100 times faster than a single sector read from a floppy disk.

Another thing I liked about FAT was its space efficiency. There were no tables of sectors or clusters that might be half full because the file wasn’t big enough to need them all. The size of the FAT was set by the size of the disk.

When I designed DOS I knew that fitting the cluster number in a single byte, limiting the number of clusters to 256, wouldn’t get the job done as disks got bigger. I increased the FAT entry to 12 bits, allowing over 4000 clusters. With a cluster size of as much as 16K bytes, this would allow for disks as large as 64MB. You could even push it to a 32K cluster and 128MB disk size, although that large cluster could waste a lot space. These disk sizes seemed enormous to me in 1980. Only recently had we seen the first 10MB hard disks come out for microcomputers, and that size seemed absurdly lavish (and expensive).

Obviously I’m no visionary. Disk size has grown faster than any other computer attribute, up by a factor of 100,000. (Typical memory size is up by a factor of 30,000, while clock speed is only up 1000x.) Microsoft extended the FAT entry to 16 bits, then to 32 bits to keep up. But this made the FAT so large that it was no longer kept entirely in memory, taking away the performance advantage.

Anonymous:

Greetings,

I don't even know where to begin, given that I am writing to the creator of DOS. But, to start I'll say it is good to see this blog, and I hope to see more from you here (I definitely bookmarked it).

On the DOS-v-CP/M issue, I take your side. What I suspect actually happened was just a case of sour grapes. DOS got the market, CP/M lost it. That's all, I doubt any high principles were at work here. DRI just lost a lot of money.

Technically, it should be obvious DOS was superior to CP/M. You emphasize the FAT, of course, but also better device error handling comes to mind.

Another point you should take up, and I can't believe you haven't yet, is that later DR-DOS is a "rip-off" of MS-DOS! Ironic, huh? Sort of how Apple sued Microsoft for stealing an idea Apple stole from Xerox PARC.

I noticed also the "feud" with this fool Wharton. An article I found on the subject mentioned him as a "pal" of Kildall's. It is reasonable to expect he is biased on the matter, given this. You should be able to find the article as it is titled something like "The man who could have been Bill Gates."

I'd also like to ask: DOS's FAT was obviously better than CP/M's extent system. What about the fact that DOS later adopted Handles for file access, which are simpler to use than FCB's. Didn't CP/M-86 continue with FCB's instead of adding support for Handles?

Despite an interest in this issue, I personally am still "turned off" by all this bickering and fighting over money, fame, and whatever. I sometimes wonder why we can't all just get along and enjoy doing and tinkering with cool and interesting things? Then, the answer comes to me. Money.

All told, I'm glad DOS won and CP/M lost. Granted, being an active (!) DOS hacker/hobbyist, and long-time user, I would be expected to say this, but whatever. I'm glad you provided something that, perhaps incidentally, was better than what we could have had. Well, it was either that or UCSD p-System :)

Thanks, hope to see more from you in the future.

P.S. DRI is actually an acronym:

Dirty Rotten Imbeciles

(This is the name of a real music group)

[April 16, 2011] MS-DOS is 30 years old today ExtremeTech

April 16, 2011 | DosMan Drivel

Thirty years ago, on July 27 1981, Microsoft bought the rights for QDOS (Quick and Dirty Operating System) from Seattle Computer Products (SCP) for $25,000. QDOS, otherwise known as 86-DOS, was designed by SCP to run on the Intel 8086 processor, and was originally thrown together in just two months for a 0.1 release in 1980. Meanwhile, IBM had planned on powering its upcoming Personal Computer with CP/M-86, which had been the standard OS for Intel 8086 and 8080 architectures at the time, but a deal could not be struck with CP/M’s developer, Digital Research. IBM then approached Microsoft, which already had a few years of experience under its belt with M-DOS, BASIC, and other important tools — and as you can probably tell from the landscape of the computer world today, the IBM/Microsoft partnership worked out rather well indeed.

IBM released its Personal Computer in August 1981 running version 1.14 of SCP’s QDOS — but a few months later Microsoft produced MS-DOS 1.24, which then became the standard IBM PC operating system. In March 1983, both MS-DOS 2.0 and the IBM PC/XT were released. The rest, as they say, is history. MS-DOS 3.0 followed in 1984 (alongside the IBM PC/AT), and MS-DOS 4.0 with a mouse-powered, menu-driven interface arrived in 1989. It’s around this point that IBM’s PC operating system, PC-DOS, began to diverge from MS-DOS — and of course, come 1990, Microsoft released Windows 3.0, which would change Microsoft’s focus forever. It’s also around this time that developers start to feel the pinch of the 640KB conventional memory limit imposed by IBM’s original hardware specifications.

Still, come 1991, MS-DOS 5.0 was released (along with the much-loved QBASIC), and MS-DOS 6.0 with much-maligned DoubleSpace disk compression tool appeared in 1993. By this stage, IBM, Digital Research (DR-DOS), and Microsoft were all leapfrogging each other with different version numbers and features. IBM released PC-DOS 6.1, and MS followed quickly with MS-DOS 6.2. IBM released PC-DOS 6.3 — and Novell trumped them all by releasing Novell DOS 7.0. In 1995, however, Windows 95 with an underpinning of MS-DOS 7.0 and its new FAT32 file system was released, and the history of DOS draws to a close. Every other version of DOS was quickly squished out of existence by Windows 95, and it wouldn’t be until the late 90s and the emergence of the Dot Com Bubble that another command-line OS would yet again rise to prominence in the shape of Linux.

Wikipedia has an excellent account of the history of x86 DOS operating systems, and also a table that compares and contrasts each of the different versions from IBM, MS, Digital Research, and others. If you’re interested in the original development of QDOS, check out its creator’s blog.

[Jan 30, 2008] History of Data Compression in Japan

In 1987, I was asked by a magazine editor to write an article about data compression. I wrote a manuscript and an accompanying program, sent them to the editor, and forgot about them. The next time I heard from him I was told that the magazine was discontinued. So I uploaded my program, a simple implementation of the LZSS compression algorithm (see below) to PC-VAN, a big Japanese BBS run by NEC. That was May 1, 1988.

Soon a number of hobby programmers gathered and began improving on that program. The project culminated in Kazuhiko Miki's archiver LArc, which was fairly widey used in Japan. (Dr. Miki was then a medical specialist working at a governmental office. I heard he left office and began work on freeware/shareware promotion.)

The LZSS algorithm is based on a very simple idea. Suppose I'm going to write "compression" here. But probably I've already used that word before in this file. If I used that word 57 characters before, I might as well write "go 57 characters backward, and read 11 characters," or <57,11> for short. In general, when I've already used the string of characters among the recent 4096 characters, say, I encode the string by a <position,length> pair.

In Storer's [8] terminology, this is a sliding dictionary algorithm, analyzed first by Ziv and Lempel [14] and then by Storer and Szymanski [9], among others.

Later versions of my LZSS implementations and Miki's LArc used binary search trees to make string search faster; see Bell [1].

Incidentally, there are two distinct Ziv-Lempel (LZ) methods: sliding dictionary [14] and dynamic dictionary [15] in Storer's [8] terminology. The LZW algorithm [12] belongs to the latter. Most pre-LHarc compression tools, such as 'compress', 'ARC', and 'PKARC', used LZW.

During the summer of 1988, I wrote another compression program, LZARI. This program is based on the following observation: Each output of LZSS is either a single character or a <position,linds of "characters," and the "characters" 256 through 511 are accompanied by a <position> field. These 512 "characters" can be Huffman-coded, or better still, algebraically coded. The <position> field can be coded in the same manner. In LZARI I used an adaptive algebraic compression [13], [2] to encode the "characters," and static algebraic compression to encode the <position> field. (There were several versions of LZARI; some of them were slightly different from the above description.) The compression of LZARI was very tight, though rather slow.

Haruyasu Yoshizaki (Yoshi), a physician and guru hobby programmer, worked very hard to make LZARI faster. Most importantly, he replaced LZARI's algebraic compression by dynamic Huffman coding.

His program, LZHUF, was very successful. It was much faster than my LZARI. As for compression ratio, Huffman cannot beat algebraic compression, but the difference turned out to be very small.

Yoshi rewrote the compression engine of LZHUF in assembler, and added a nifty user interface. His archiver, LHarc, soon became the de facto standard among Japanese BBS users. After Prof. Kenjirou Okubo, a mathematician, introduced LHarc to the United States, it became world-famous. Other vendors began using similar techniques: sliding dictionary plus statistical compressions such as Huffman and Shannon-Fano. (I wondered why they used Shannon-Fano rather than Huffman which is guaranteed to compress tighter than Shannon-Fano. As it turned out, a then-popular book on compression published in U.S. contained a wrong description and buggy sample programs, such that Shannon-Fano outperformed (buggy) Huffman on many files.)

Although LHarc was much faster than LZARI, we weren't quite satisfied with its speed. Because LHarc was based on dynamic Huffman, it had to update Huffman tree every time it received a character. Yoshi and I tried other dynamic Huffman algorithms [5], [10], [11], but improvements were not as great as we desired.

So I took a different step: replacing LHarc's dynamic Huffman by a static Huffman method.

Traditional static Huffman coding algorithm first scans the input file to count character distribution, then builds Huffman tree and encodes the file. In my approach, the input file is read only once. It is first compressed by a sliding dictionary method like LZARI and LHarc, and at the same time the distributions of the "characters" (see above) and positions are counted. The output of this process is stored in main memory. When the buffer in memory is full (or the input is exhausted), the Huffman trees are constructed, and the half-processed content of the buffer is actually compressed and output.

In static Huffman, the Huffman tree must be stored in the compressed file. In the traditional approach this information consumes hundreds of bytes. My approach was to standardize Huffman trees so that (1) each left subtree is no deeper than its right counterpart, and (2) the leaves at the same level are sorted in ascending order. In this way the Huffman tree can be uniquely specified by the lengths of the codewords. Moreover, the resulting table is again compressed by the same Huffman algorithm.

To make the decoding program simpler, the Huffman tree is adjusted so that the codeword lengths do not exceed 16 bits. Since this adjusting is rarely needed, the algorithm is made very simple. It does not create optimal length-limited Huffman trees; see e.g. [6] for an optimal algorithm. Incidentally, my early program had a bug here, which was quickly pointed out and corrected by Yoshi.

The sliding dictionary algorithm is also improved by Yoshi using a "PATRICIA tree" data structure; see McCreight [7] and Fiala and Greene [4].

After completing my algorithm, I learned that Brent [3] also used a sliding dictionary plus Huffman coding. His method, SLH, is simple and elegant, but since it doesn't find the most recent longest match, the distribution of match position becomes flat. This makes the second-stage Huffman compression less efficient.

On the basis of these new algorithms, Yoshi began to rewrite his LHarc, but it took him so long (remember he was a busy doctor!) that I decided to write my own archiver. My archiver was quite recklessly named 'ar'. (Actually I appended version numbers as in 'ar002' for version 0.02.) I should have named it 'har' (after my name), say, because 'ar' collides with the name of UNIX's archiver. I didn't want my program to compete with LHarc, but I wanted many people to try the algorithm, so I wrote it in pure ANSI C. This is the reason 'ar' lacked many bells and whistles necessary for a real archiver.

Note: The version of 'ar002' most often found in the U.S. had a bug. Line 24 of maketbl.c should read, of course,
    while (i <= 16) {
        weight[i] = 1U << (16 - i);  i++;
    }
Somehow the bug didn't show up when compiled by Turbo C.

Yoshi finally showed us his new archiver written in C. It was tentatively named LHx. He then rewrote the main logic in assembler. Yoshi and I wrote an article describing his new archiver, which would be named LH, in the January, 1991, issue of "C Magazine" (in Japanese). The suffix 'arc' of LHarc was deliberately dropped because the people who sold ARC did not want others to use the name.

Then we learned that for the new DOS 5.0, LH meaned LoadHigh, an internal command. We decided to rename LH to LHA.

Also, I was told that the algorithm described in Fiala and Greene [4] got patented ("Textual Substitution Data Compression With Finite Length Search Windows," U.S. Patent 4,906,991, Mar. 6, 1990. Actually they got three patents! The other two were: "Start, Step, Stop Unary Encoding for Data Compression," Application Ser. No. 07/187,697, and "Search Tree Data Structure Encoding for Textual Substitution Data Compression Systems," Application Ser. No. 07/187,699.)

Furthermore, I learned that the original Ziv-Lempel compression method (Eastman et al., U.S. Patent 4,464,650, 8/1984) and the LZW method (Welch, 4,558,302, 12/1985) were patented. I also heard that Richard Stallman, of the Free Software Foundation, author of the EMACS editor and leader of the GNU project, ceased to use 'compress' program any more because its LZW algorithm got patented.

Are algorithms patentable? (See [16].) If these patents should turn out to be taken seriously, all compression programs now in use may infringe some of these patents. (Luckily, not all claims made by those algorithm patents seems to be valid.)


The foregoing is a slight modification of what I wrote in 1991. The year 1991 was a very busy year for me. In 1992, I joined the faculty of Matsusaka University. This opportunity should have given me more free time, but as it turned out I got ever busier. I stopped hacking on my compression algorithms; so did Yoshi.

Luckily, all good things in LHA were taken over, and all bad things abandoned, by the new great archiver zip and the compression tool gzip. I admire the efforts of Jean-loup Gailly and others.

A brief historical comment on PKZIP: At one time a programmer for PK and I were in close contact. We exchanged a lot of ideas. No wonder PKZIP and LHA are so similar.

Another historical comment: LHICE and ICE are definitely not written by Yoshi (or me or anyone I know). I think they are faked versions of LHarc.

REFERENCES

[1]
Timothy C. Bell. Better OPM/L text compression. IEEE Transactions on Communications, COM-34(12):1176--1182, 1986.
[2]
Timothy C. Bell, John G. Cleary, and Ian H. Witten. Text Compression. Prentice Hall, 1990.
[3]
R. P. Brent. A linear algorithm for data compression. The Australian Computer Journal, 19(2):64--68, 1987.
[4]
Edward R. Fiala and Daniel H. Greene. Data compression with finite windows. Communications of the ACM, 32(4):490--505, 1989.
[5]
Donald E. Knuth. Dynamic Huffman coding. Journal of Algorithms, 6:163--180, 1985.
[6]
Lawrence L. Larmore and Daniel S. Hirschberg. A fast algorithm for optimal length-limited Huffman codes. Journal of the Association for Computing Machinery, 37(3):464--473, 1990.
[7]
Edward M. McCreight. A space-economical suffix tree construction algorithm. Journal of the Association for Computing Machinery, 23(2):262--272, 1976.
[8]
James A. Storer. Data Compression: Methods and Theory. Computer Science Press, Rockville, MD., 1988.
[9]
James A. Storer and Thomas G. Szymanski. Data compression via textual substitution. Journal of the Association for Computing Machinery, 29(4):928--951, 1982.
[10]
Jeffrey Scott Vitter. Design and analysis of dynamic Huffman codes. Journal of the Association for Computing Machinery, 34(4):825--845, 1987.
[11]
Jeffrey Scott Vitter. Algorithm 673: Dynamic Huffman coding. ACM Transactions on Mathematical Software, 15(2):158--167, 1989.
[12]
Terry A. Welch. A technique for high-performance data compression. IEEE Computer}, 17(6):8--19, 1984.
[13]
Ian H. Witten, Radford M. Neal, and John G. Cleary. Arithmetic coding for data compression. Communications of the ACM, 30(6):520--540, 1987.
[14]
Jacob Ziv and Abraham Lempel. A universal algorithm for sequential data compression. IEEE Transactions on Information Theory, IT-23(3):337--343, 1977.
[15]
Jacob Ziv and Abraham Lempel. Compression of individual sequences via variable-rate coding. IEEE Transactions on Information Theory, IT-24(5):530--536, 1978.
[16]
Edward N. Zalta. Are algorithms patentable? Notices of the American Mathematical Society, 35(6):796--799, 1988.

Haruhiko Okumura,
okumura@matsusaka-u.ac.jp

Last modified: Tue Mar 17 17:02:03 1998

[Jan 30, 2008] PkZip@Everything2.com

Oct 04 2001 |

PKZip, file compression utility

"...instrumental in inexpensive, dependable communication..." - Leonard Levine

PKZip began life humbly, as PKARC, which was effectively a clone of the ARC file compression utility. Following a legal action with SEA, ARC's developers, agreement was reached allowing one last version of the software using the old file format, and PKPAK was released to an adoring BBS public in 1986. PKWare later developed its own file format, which became immensely popular when the file format was put into the public domain, and BBS users began boycotting the ARC program and using PK programs. The BBS world began to convert all the compressed files from ARC to ZIP format, and ARC slipped into oblivion.

ARC had become popular amongst BBS users, who were paying large amounts of money to transfer files across (by today's standards) painfully slow modems. Any improvement meant money in users' pockets, and tighter compression would mean smaller files, which whipped across the POTS much faster. It's shareware status and simplicity of use were vital to the everyday user, and businesses, recognising its power and versatility began using it to archive data for better storage (necessary in the days of very expensive hard drives.

Phil Katz, the brains behind the company and the product, had already dramatically speeded up the compression process when he developed PKPAK and PKUNPAK, and now began to work on improving the compression algorithm in 1988. Phil was writing in assembly language, and used the best possible algorithms and the 386 processor's features where appropriate. He was still using the LZW algorithm, and whilst he had made improvements in compression and storage techniques, had still not 'invented' compression.

Phil's Zip algorithm was also used in gzip, and remains one of the most the most ported utilities. His improvements to the compression process, and the hatred felt by many toward the creators of ARC meant that the PKZip program had become a standard for the IBM PC under MS-DOS, and even now, remains the most popular file compression algorithm, in many Windows implementations. The MS-DOS version is now at version 2.50, and includes support for long file names.

[Dec 15, 2007] Unsung innovators David Bradley, inventor of the three-finger salute by Gina Smith

December 03, 2007 (Computerworld)

When we were doing the original IBM PC -- and consider this was a brand new hardware and software design -- it was hanging all the time," Bradley says. The only option engineers had to continue the work was to turn off the computer and start it again. That required at least a minute to boot back up because of the Power On Self Test (POST) feature that was built in. To this day, all Windows computers do a POST when they reboot; it's built into every ROM sequence.

But back in those early days, the need to reboot "would happen a lot," Bradley says. "Depending on what you were working on, that could be daily, hourly, even every five minutes if you were working on a particular shortcut."

So Bradley came up with the Ctrl-Alt-Del keystroke combination -- three keys distant enough on the keyboard to make it virtually impossible for someone to hit all three accidentally and simultaneously. "So, if you hit those keys, instead of taking a minute to start up the PC again, it would be much quicker -- the equivalent of turning the machine off and on without running POST."

The combination escaped from IBM labs and hit popular culture when application developers, in the days when programs ran on diskette, decided to publish the combination to help users start their applications faster.

After that, end users got used to it, and the rest is, well, history.

At the 20th anniversary of the unveiling of the IBM PC -- that was in August 2001 -- Bradley appeared on a panel featuring Bill Gates and other industry luminaries. "I thought we were there to have fun," Bradley says, remembering the moment that he joked with Gates about helping make his combo so well known.

Bradley laughs when recalling the joke. "I said, 'I may have invented it, but Bill [Gates] is the one who made it famous.' " In return, he received a glare from Gates.

Nowadays, Microsoft Windows intercepts the Control-Alt-Delete key combination and displays a pop-up window that allows users to shut down the PC or shows what programs are running.

Bradley muses that it's funny "that I got famous for this, when I did so many other nifty and difficult things." Among the Purdue Ph.D.'s accomplishments: He developed the ROM BIOS for the first IBM PC, led the development of the ROM BIOS and system diagnostics on the PC/XT, and was project manager for several PS/2 models. In 1992, he began working on higher-performing IBM systems built around the PowerPC RISC CPU.

Retired from IBM since 2004, Bradley has received engineering awards and will likely be immortalized as being part of the original IBM PC team. But like it or not, his place in computer history as the father of the three-finger salute is here to stay.

[Dec. 8, 2007, 2007] Original DOS developer content with life as high-tech 'tinkerer' By John Letzing

Dec. 8, 2007 | MarketWatch

SAN FRANCISCO (MarketWatch) -- Among the engineers who laid the groundwork for the modern software industry, Tim Paterson didn't exactly cash in on his technical prowess like many of his extraordinarily wealthy peers.

MSFT) Chairman Bill Gates plans to step back from the company he founded in 1975, and focus more of his attention and vast fortune -- estimated at just under $60 billion, according to Forbes -- on philanthropy, funding efforts like fighting AIDS and educating impoverished children.

Meanwhile Paterson, the architect of the computer code that helped spawn that fortune, is busying himself with a small firm operated out of his home in Issaquah, Wash., selling modified widgets designed to improve the performance of aging digital-video recorders.

Paterson developed the DOS operating system in 1980, the year before it was sold to Microsoft for $50,000. DOS then formed the core of what became Microsoft's Windows software, a flagship product that has stoked the Redmond, Wash.-based company's colossal fortunes over the past quarter of a century.

'I don't remember ever thinking at one point how big [DOS] is going to be in the future.'
For Microsoft's first fiscal quarter ended in September, the unit that includes Windows contributed $4.1 billion in sales.

Paterson Technology, which Paterson founded in 1989 as a diversion, will exceed $50,000 in sales this year, he said -- the same amount that DOS fetched some 26 years ago. But more importantly, he added, the firm satisfies his undying need to tinker.

Job at Microsoft

Paterson had developed DOS while working at Seattle Computer Products, and took a job with Microsoft around the time it bought the operating system, helping "tune and spruce" what became known as "MS-DOS" in its first iterations, he said. Paterson would work sporadically for Microsoft for the next 17 years on various products.

But DOS, and what it wrought, is his most prominent legacy. "I don't remember ever thinking at one point how big this is going to be in the future," Paterson said this week.

By the early 1990s, however, Paterson recalls thinking: "Wow, there're 100 million copies of this thing out there, and I wrote it originally."

Al Gillen, an analyst with IDC, said that the operating system proved historic. "DOS is fundamentally the product that made Microsoft into the powerhouse it is today," he commented.

The imprint of DOS on Windows lasted until the XP version, released in 2001, according to Directions on Microsoft analyst Michael Cherry. Cherry said that DOS also begat companions to Windows -- Microsoft's Office applications for word processing and other tasks. The suite is part of a unit that also contributed $4.1 billion in sales in Microsoft's September quarter. Office emerged, Cherry added, simply because the advent of computers with an operating system meant "people needed something to do with them."

Paterson's focus, though, has shifted away from PC software. Paterson Technology began churning out devices in 2004 that let digital-video recorders, such as discontinued lines made by ReplayTV, to continue to automatically change the channels on satellite-TV receivers.

Running the firm out of his house, Paterson said that he's enamored with improving such widespread, existing technologies. He is in the middle of a production run of 400 of his "translators" for digital-video recorders, and reports to be pleased with the consistent demand for them.

"I've always enjoyed making little gizmos," he said.

'He knew my name'

Paterson said that he first met Gates and Microsoft co-founder Paul Allen in 1979.

Allen, who proved to be Paterson's primary contact at Microsoft, resigned from his executive role at the company in 1983, and has since become the owner of professional sports teams, among other high-profile pursuits. Allen usually ranks highly on the annual Forbes list of the world's richest people -- with Gates typically at the top.

Paterson describes his relationship with Gates during his Microsoft days as mostly unaffected by his creation of DOS. "I was just another developer," commented Paterson.

"If we ran into each other at an event, he knew my name," he said, "because of the really early days when we had had some one-on-one time."

Later, Paterson's only contact with Gates occurred during the regular product presentations to the chief executive, something required of all Microsoft units. Gates transitioned from Microsoft's chief to the role of chairman in 2000.

This summer, Gates plans to dramatically reduce the time he spends at Microsoft to one day per week. The rest of his time will be dedicated to the Bill & Melinda Gates Foundation, the charitable organization he founded with his wife in 2000.

Paterson said that Gates has had a unique impact on Microsoft as a technologically adept executive able to see the big picture for the company's business direction.

"He had this impact as far as the overall vision; he knew what the other products were doing, and he had this vision of where things should go," he added. "It seemed funny to me that any old product, it still got a review by the top guy."

A Microsoft spokesman said that such reviews will necessarily have to be limited as Gates steps back. "It might not be the same quantity; it'll be a little more focused in specific areas that he decides upon," the spokesman commented.

Following the launch of his own business in the mid-1980s, Paterson rejoined Microsoft from 1986 through 1988. He left and then signed on again in 1990 to focus on the company's Visual Basic programming language. "I'd gotten married and needed to make more money," he said.

Upon rejoining Microsoft, Paterson said he was shown that had he stayed on with the company after his initial hiring in the early 1980s, his stock options would already have made him a millionaire.

"I had no idea what options really meant. It was hard to fathom," Paterson said. By the time he left Microsoft for good in 1998, however, he noted that his compensation package was "enough to retire and fix me for life."

'Just another tech company'

In "Pirates of Silicon Valley," a 1999 film about the origins of Microsoft and rival Apple Inc. an actor playing Paul Allen approaches a young man named Rod Brock at Seattle Computer Products and offers to buy DOS.

"Why?" a befuddled Brock responds. When Allen offers him $50,000 for it, Brock, wide-eyed, has to take a moment to catch his breath.

The real-life Brock, Paterson said, was a "middle-aged, balding guy" who owned Seattle Computer at that time, Paterson said, pointing out that portraying the deal as poorly considered wasn't quite accurate.

"Seattle Computer was really small, and it was a hardware company," Paterson elaborated. Such flat-fee arrangements were common then, he said, and it was Microsoft's additional engineering strength that ultimately made the product so valuable.

More irritating, Paterson said, is the lingering notion that he lifted much of DOS from an existing operating system called CP/M. That notion apparently was reinforced in a 2004 book by Sir Harold Evans, called "They Made America."

Paterson filed a defamation suit against Evans and his publisher in 2005. But a judge dismissed Paterson's suit earlier this year, citing that questions relating to DOS and CP/M had been widespread before the book.

According to Paterson, he had discussed making clarifications with Evans, but those talks ended when the suit was dismissed.

"He always said he wanted to get it right," Paterson said of Evans. "If he really did, he could have kept talking to me."

These days, Paterson is focused on turning out his next batch of video-recorder translators, along with developing a new model that won't require preordered parts from Taiwan.

Looking to "simplify" his life recently, Paterson shed all of his directly owned stocks, including those in Microsoft. He allows that he still likely owns some stock in the company through mutual funds, though he doesn't pay any special interest to mentions of Microsoft in the news.

"I'm coming around to reading about it as just another tech company," he said. End of Story

John Letzing is a MarketWatch reporter based in San Francisco.

DosMan Drivel The First DOS Machine

Seattle Computer Products (SCP) introduced their 8086 16-bit computer system in October 1979, nearly two years before the introduction of the IBM PC. By "computer system", I actually mean a set of three plug-in cards for the S-100 bus: the 8086 CPU card, the CPU Support Card, and the 8/16 RAM. At that time SCP did not manufacture the S-100 chassis these cards would plug into. That chassis and a computer terminal would be needed to make a complete working computer.

The S-100 Bus

Inside of a modern personal computer you'll find a motherboard crammed with the heart of the computer system: CPU, memory, disk interface, network interface, USB interface, etc. Off in one corner you usually find four or five PCI slots for add-in cards, but for most people no additional cards are needed (except maybe a graphics card).

In contrast, the S-100 Bus motherboard contained no components at all. A full-size motherboard had nothing but 18 – 22 card slots. Each slot accepted a 5" x 10" S-100 card with its 100-pin edge connector. A typical computer system would have a card with a CPU, possibly several cards with memory, a card for a floppy disk interface, a card for serial I/O, possibly a video card, etc.

This arrangement was started by MITS with the Altair 8800 computer, but eventually became standardized by the Institute of Electrical and Electronics Engineers as IEEE-696. During the standardization process, the S-100 bus was extended from being an 8-bit bus (typically used by 8080 and Z80 processors) to a 16-bit bus. It was this extension to 16-bits that made the S-100 bus a suitable target for the 8086 computer from SCP.

SCP also wanted to take advantage of the vast range of existing cards for the S-100 bus. They didn't need to make cards for disk interface, serial I/O, video, etc. since they were already available. Even the (empty) chassis itself was a standard item. An existing computer owner could simply swap out his 8-bit CPU card and replace it with the 16-bit SCP card, and all the hardware would work together (but the software was another matter).

The SCP 16-bit Computer System

The 8086 CPU card was an Intel 8086 microprocessor with dozens of logic chips needed to interface it to the S-100 bus. The signals and timings of the bus were built around the original 8-bit Intel 8080, and it took a lot of "glue" logic to create the same signals with a different microprocessor (this was also true for the Z80). For the 8086, however, there was also a significant added layer of working in "8-bit mode" or "16-bit mode". These modes were defined by the IEEE standard so that a 16-bit CPU could be used with existing 8-bit memory with a performance penalty, or with new 16-bit memory at full speed. Essentially, the CPU card could request 16 bits for each memory access. If there was no response, the card went into 8-bit mode: the microprocessor would be stopped momentarily while logic on the card ran two consecutive 8-bit memory cycles to fetch the required 16 bits.

The SCP 8086 CPU had a mechanical switch on it that allowed the microprocessor to run at either 4 MHz or 8 MHz (while a processor you get today would run at around 3,000 MHz = 3 GHz). When SCP first started sales, Intel could not yet provide the 8 MHz CPU chip so early units could only be run at 4 MHz.

The CPU Support Card was a collection of stuff needed to make a working computer. The most important items were:

The 8/16 RAM had 16 KB (not MB!) of memory. It could operate in "16-bit mode" so the 16-bit processor could run at full speed. In the early days, using four of these cards to build a system with 64 KB of memory would have been considered plenty.

The only 16-bit software available when the system was first released was Microsoft Stand-Alone Disk BASIC. SCP did not make a floppy disk controller, but supported disk controllers made by Cromemco and Tarbell.

Development Timeline

I earned my BS in Computer Science in June of 1978 and started work at SCP. Intel just announced their new 8086 microprocessor, and I was sent to a technical seminar to check it out. The May 1978 issue of IEEE Computer Magazine had published the first draft of the S-100 standard which included 16-bit extensions, so I was excited about the possibility of making a 16-bit S-100 computer. My primary duties at SCP were to improve and create new S-100 memory cards, which at that time were SCP's only products. But I was given the go-ahead to investigate a computer design when I had the time.

By January of 1979 my design for the 8086 CPU and CPU Support Card had been realized in prototypes. I was able to do some testing, but then hardware development needed to be put on hold while I wrote some software. Not even Intel could provide me with an 8086 assembler to do the most basic programming, so I wrote one myself. It was actually a Z80 program that ran under CP/M, but it generated 8086 code. Next I wrote a debugger that would fit into the 2 KB ROM on the CPU Support Card.

In May we began work with Microsoft to get their BASIC running on our machine. I brought the computer to their offices and sat side by side with Bob O'Rear as we debugged it. I was very impressed with how quickly he got it working. They had not used a real 8086 before, but they had simulated it so BASIC was nearly ready to go when I arrived. At Microsoft's invitation, I took the 8086 computer to New York to demonstrate it at the National Computer Conference in the first week of June.

There was a small setback when the June 1979 issue of IEEE Computer Magazine came out. The draft of the IEEE S-100 standard had changed significantly. I got involved in the standards process to correct some errors that had been introduced. But I still had to make design changes to the 8086 CPU which required a whole new layout of the circuit board, with a risk of introducing new errors. It turned out, however, that no mistakes were made so production was able to start 3 months later.

Evolution

The 16 KB memory card was eventually replaced by a 64 KB card. Intel introduced the 8087 coprocessor that performed floating-point math, and SCP made an adapter that plugged into the 8086 microprocessor socket that made room for it. Later SCP updated the 8086 CPU card so it had space for the 8087.

The software situation did not change until I wrote DOS for this machine, first shipping it in August 1980.

When IBM introduced their PC in August 1981, its 8088 processor used 8-bit memory, virtually identical in performance to using 8-bit memory with the SCP 8086 CPU. Except IBM ran their processor at 4.77 MHz while the SCP machine ran at 8 MHz. So the SCP 8086 computer system was about three times faster than the IBM PC.

IBM also reintroduced memory limitations that I had specifically avoided in designing the 8086 CPU. For S-100 computers, a low-cost alternative to using a regular computer terminal was to use a video card. The video card, however, used up some of the memory address space. The boot ROM would normally use up address space as well. SCP systems were designed to be used with a terminal, and the boot ROM could be disabled after boot-up. This made the entire 1 MB of memory address space available for RAM. IBM, on the other hand, had limited the address space in their PC to 640 KB of RAM due to video and boot/BIOS ROM. This limitation has been called the "DOS 640K barrier", but it had nothing to do with DOS.

Microsoft took full advantage of the SCP system capability. In 1988, years after SCP had shut down, they were still using the SCP system for one task only it could perform ("linking the linker"). Their machine was equipped with the full 1 MB of RAM – 16 of the 64 KB cards. That machine could not be retired until 32-bit software tools were developed for Intel's 386 microprocessor.

[Sep 30, 2007] DosMan Drivel Design of DOS

I set to work writing an operating system (OS) for the 16-bit Intel 8086 microprocessor in April of 1980. At that point my employer, Seattle Computer Products (SCP), had been shipping their 8086 computer system (which I had designed) for about 6 months. The only software we had for the computer system was Microsoft Stand-Alone Disk BASIC. “Stand-Alone” means that it worked without an OS, managing the disk directly with its own file system. It was fast for BASIC, but it wouldn’t have been suitable for writing, say, a word processor.

We knew Digital Research was working on a 16-bit OS, CP/M-86. At one point we were expecting it to be available at the end of 1979. Had it made its debut at any time before DOS was working, the DOS project would have been dropped. SCP wanted to be a hardware company, not a software company.

I envisioned the power of the 8086 making it practical to have a multi-user OS, and I laid out a plan to the SCP board of directors to develop a single-user OS and a multi-user OS that would share the same Application Program Interface (API). This would be a big design job that would take time to get right – but we were already shipping our computer system and needed an OS now. So I proposed to start with a “quick and dirty” OS that would eventually be thrown away.

Baseline Experience

I had graduated from college (BS in Computer Science) less than two years earlier. I spent the next year tentatively in graduate school while also working at SCP. So I didn’t have much experience in the computer industry.

This is not to say I had no experience at all. In college I had an IMSAI 8080 with a North Star floppy disk system. I made my own peripherals for it, which included a Qume daisy-wheel printer with its own Z80-based controller that I designed and programmed myself. I also designed my own Z80-based road-rally computer that used a 9-inch CRT video display mounted in the glove box of my car. And my school work included writing a multitasking OS for the Z80 microprocessor as a term project. The thrust of that project had been to demonstrate preemptive multitasking with synchronization between tasks.

For SCP, my work had been ostensibly hardware-oriented. But the 8086 CPU had required me to develop software tools including an assembler (the most basic tool for programming a new processor) and a debugger. These tools shipped with the product.

My hands-on experience with operating systems was limited to those I had used on microcomputers. I had never used a “big computer” OS at all. All programming projects in high school and college were submitted on punched cards. On my own computer I used North Star DOS, and at SCP we had Cromemco CDOS, a CP/M look-alike.

File System Performance

An important design parameter for the OS was performance, which drove my choice for the file system. I had learned a handful of file management techniques, and I spent some time analyzing what I knew before making a choice. These were the candidates:

North Star DOS and the UCSD p-system used the simplest method: contiguous file allocation. That is, each file occupies consecutive sectors on the disk. The disk directory only needs to keep track of the first sector and the length for each file – very compact. Random access to file data is just as fast as sequential access, because it’s trivial to compute the sector you want. But the big drawback is that once a file is boxed in by other files on the disk, it can’t grow. The whole file would then have to be moved to a new spot with more contiguous free space, with the old location leaving a “hole”. After a while, all that’s left are the holes. Then you have to do a time-consuming “pack” to shuffle all the files together and close the holes. I decided the drawbacks of contiguous allocation were too severe.

UNIX uses a clever multi-tiered approach. For small files, the directory entry for a file has a short table of the sectors that make up the file. These sectors don’t have to be contiguous, so it’s easy to extend the file. If the file gets too large for the list to fit in the table, UNIX adds a tier. The sectors listed in the table no longer reference data in the file; instead, each entry identifies a sector which itself contains nothing but a list of sectors of file data. If the file gets huge, yet another tier is added – the table entries each reference a sector whose entries reference a sector whose entries identify the file data. Random access to file data is very fast for small files, but as the files get larger and the number of tiers grow, if will take one or two additional disk reads just to find the location of the data you really want.

CP/M didn’t track disk space directly in terms of sectors. Instead it grouped sectors together into a “cluster” or “allocation unit”. The original CP/M was designed specifically around 8” disks, which had 2002 sectors of 128 bytes each. By making each cluster 8 sectors (1K), there were less than 256 clusters on a disk. Thus clusters could be indentified using only one byte. The directory entry for CP/M had a table of 16 entries of the clusters in file, so for a file of 16K or less both random and sequential access were fast and efficient. But when a file exceeded 16K, it needed a whole new directory entry to store an additional 16K of cluster numbers. There was no link between these entries; they simply contained the same name and a number indentifying which section of the file it represented (the “extent”). This led to a potential performance nightmare, especially for random access. When switching between extents, the system had to perform its standard linear search of the directory for a file of the correct name and extent. This search could take multiple disk reads before the requested data was located.

Microsoft Stand-Alone Disk BASIC used the File Allocation Table (FAT). Unlike all the other file systems, the FAT system separates the directory entry (which has the file name, file size, etc.) from the map of how the data is stored (the FAT). I will not give a detailed explanation of how that worked here as the system has been well documented, such as my 1983 article An Inside Look at MS-DOS at http://www.patersontech.com/dos/Byte/InsideDos.htm. Like CP/M, BASIC used a 1K cluster so that, once again, there were less than 256 on the standard 8” floppy disk of the day. The FAT needs one entry per cluster, and for BASIC the entry needed to be just one byte, so the FAT fit within two 128-byte sectors. This small size also meant it was practical, even with the limited memory of the time, to keep the entire FAT in memory at all times.

To me, the big appeal of the FAT system was that you never had to read the disk just to find the location of the data you really wanted. FAT entries are in a chain – you can’t get to the end without visiting every entry in between – so it is possible the OS would have to pass through many entries finding the location of the data. But with the FAT entirely in memory, passing through a long chain would still be 100 times faster than a single sector read from a floppy disk.

Another thing I liked about FAT was its space efficiency. There were no tables of sectors or clusters that might be half full because the file wasn’t big enough to need them all. The size of the FAT was set by the size of the disk.

When I designed DOS I knew that fitting the cluster number in a single byte, limiting the number of clusters to 256, wouldn’t get the job done as disks got bigger. I increased the FAT entry to 12 bits, allowing over 4000 clusters. With a cluster size of as much as 16K bytes, this would allow for disks as large as 64MB. You could even push it to a 32K cluster and 128MB disk size, although that large cluster could waste a lot space. These disk sizes seemed enormous to me in 1980. Only recently had we seen the first 10MB hard disks come out for microcomputers, and that size seemed absurdly lavish (and expensive).

Obviously I’m no visionary. Disk size has grown faster than any other computer attribute, up by a factor of 100,000. (Typical memory size is up by a factor of 30,000, while clock speed is only up 1000x.) Microsoft extended the FAT entry to 16 bits, then to 32 bits to keep up. But this made the FAT so large that it was no longer kept entirely in memory, taking away the performance advantage.

Hardware Performance

On the few computer systems I personally used, I had experienced a range of disk system performance. North Star DOS loaded files with lightening speed, while the CP/M look-alike Cromemco CDOS took much longer. This was not a file system issue – the difference still existed with files less than 16K (just one CP/M “extent”) and contiguously allocated.

North Star DOS did the best job possible with its hardware. Each track had 10 sectors of 256 bytes each, and it could read those 10 sectors consecutively into memory without interruption. To read in a file of 8KB would require reading 32 sectors; the nature of the file system ensured they were contiguous, so the data would be found on four consecutive tracks. When stepping from track to track, it would have missed the start of the new track and had to wait for it to spin around again. That would mean it would take a total of 6.2 revolutions (including three revolutions lost to track stepping) to read the 8KB. The 5-inch disk turned at 5 revolutions per second so the total time would be less than 1.3 seconds.

The standard disk with CP/M (CDOS) had a track with 26 sectors of 128 bytes each. CP/M could not read these sectors consecutively. It used an interleave factor of 6, meaning it would read every sixth sector. The five-sector gap between reads presumably allowed for processing time. An 8KB file would occupy about 2½ tracks, which, at 6 revolutions per track (because of the interleave), would take about 17 revolutions of the disk to be read (including two revolutions lost to track stepping). The 8-inch disk turned at 6 revolutions per second so the total time would be over 2.8 seconds. This is more than twice as long as the North Star system which used fundamentally slower hardware.

At least part of the reason CP/M was so much slower was because of its poor interface to the low-level “device driver” software. CP/M called this the BIOS (for Basic Input/Output System). Reading a single disk sector required five separate requests, and only one sector could be requested at a time. (The five requests were Select Disk, Set Track, Set Sector, Set Memory Address, and finally Read Sector. I don’t know if all five were needed for every Read if, say, the disk or memory address were the same.)

I called the low-level driver software the I/O System, and I was determined its interface would not be a bottleneck. Only a single request was needed to read disk data, and that request could be for any number of sectors. This put more of the work on the I/O System, but it allowed it to maximize performance. The floppy disk format did not use interleave, and an 8KB file could be read from an 8-inch disk in 4½ revolutions which is less than 0.8 seconds.

When hard disks were first introduced on the IBM PC/XT in 1982, the I/O System provided by IBM once again used an interleave factor of 6. Some aftermarket add-on hard disks were available with interleave factor as low as 3. In 1983 I founded Falcon Technology which made the first PC hard disk system that required no interleave. Once hard disks started having built-in memory, interleave was completely forgotten.

CP/M Translation Compatibility

For DOS to succeed, it would need useful applications (like word processing) to be written for it. I was concerned that SCP might have trouble persuading authors of application software to put in the effort to create a DOS version of their programs. Few people had bought SCP’s 16-bit computer, so the installed base was small. Without the applications, there wouldn’t be many users, and without the users, there wouldn’t be many applications.

My hope was that by making it as easy as possible to port existing 8-bit applications to our 16-bit computer, we would get more programmers to take the plunge. And it seemed to me that CP/M translation compatibility was what would make the job as easy as possible. Intel had defined rules for translating 8-bit programs into 16-bit programs; CP/M translation compatibility means that when a program’s request to CP/M went through the translation, it would become an equivalent request to DOS. My first blog entry explains this in more detail.

So I made CP/M translation compatibility a fundamental design goal. This required me to create a very specific Application Program Interface that implemented the translation compatibility. I did not consider this the primary API – there was, in fact, another API more suited to the 16-bit world and that had more capabilities. Both APIs used CP/M-defined constructs (such as the “File Control Block”); the compatibility API had to, and I didn’t see a reason to define something different for the primary API.

I myself took advantage of translation compatibility. The development tools I had written, such as the assembler, were originally 8-bit programs that ran under CP/M (CDOS). I put them through the translator and came up with 16-bit programs that ran under DOS. These translated tools were included with DOS when shipped by SCP. But I don’t think anyone else ever took advantage of this process.

DosMan Drivel The Contributions of CP-M

Gary Kildall’s CP/M was the first general-purpose operating system (OS) for 8-bit computers. It demonstrated that it was possible to pare down the giant operating systems of mainframes and minicomputers into an OS that provided the essential functionality of a general-purpose Application Program Interface, while leaving enough memory left for applications to run. This was a radical idea.

Beyond this technical achievement is the success CP/M had in the marketplace. It stands alone as the catalyst that launched the microcomputer industry as a successful business. Without those signs of success, companies like IBM wouldn’t have been tempted to enter the business and fuel its growth.

The Significance of the BIOS Interface

The concept of a software interface between separate programs or program components has been around for a long, long time. The most obvious example is the Application Program Interface (API) that all operating systems provide to application programs.

But interfaces can exist at other levels, not just between the OS and applications. Interfaces are used whenever two components must interact, but the components are developed independently or may need to be changed independently.

Much has been made of the layers of interfaces used by CP/M. (John Wharton: “Gary’s most profound contribution”; Harold Evans: “truly revolutionary”, “a phenomenal advance”; Tom Rolander: “supreme accomplishment”, “originator of that layering of the software”.) The core of CP/M was the Basic Disk Operating System (BDOS). On one side of the BDOS was the API exposed to application programs; on the other side was the Basic Input/Output System (BIOS) that connected the BDOS to specific computer hardware.

Certainly the idea of these layers of interfaces was not new to the computer industry. For example, UNIX (like all operating systems) provided an API for application programs, and connected to the hardware with an interface to low-level device driver software. These are equivalent layers to the CP/M’s BDOS and BIOS, but much more sophisticated. So I am a bit mystified as to what is so revolutionary about CP/M’s design.

Of course, being the first microcomputer OS, CP/M was the first to put these layers on a microcomputer. So I guess in distilling down the essence of an OS so it would fit on a microcomputer, we can give Kildall credit for not distilling out too much and leaving out the interface layers. Except that he actually did, originally. As described in his memoirs, quoted by Evans, in early versions of CP/M he had to rewrite the parts that manage the hardware “so many times that the tips of my fingers were wearing thin, so I designed a general interface, which I called the BIOS.” I read somewhere that the BIOS interface was first added to version 1.3 of CP/M. It may well be that Kildall had not seen a device driver or BIOS-level interface before. But the advantages that became obvious to him had been just as visible to his predecessors.

I equipped my first computer, an IMSAI 8080, with the North Star floppy disk system. It came with North Star DOS, which was the first OS that I personally used. It, of course, had a low-level interface so it could be tailored to work with any hardware. This is where my experience with interface layers began. I had not seen CP/M at the time.

CP/M & the DOS Connection

I can think of no specific technical innovations demonstrated by CP/M. The new idea was simply that you could do it – you could actually put a general-purpose operating system on a microcomputer. It worked and the market loved it.

DOS was built on top of this general groundwork. Kildall distilled the OS to a minimal, useful set of capabilities that would fit on a microcomputer. This simplified my task in setting the functionality of DOS. It was a matter of adding or subtracting to an existing & working set rather than developing the list from scratch.

DOS has been accused of being a “rip-off” or “knockoff” of the CP/M “design” or “architecture”. I guess this may refer to the fact that DOS has the same interface layers. Or it may refer to the similar function set. In that sense, since Kildall picked an appropriate set of functions, any subsequent microcomputer OS would have the same ones and would be some sort of “knockoff”

[Aug 17, 2007] DosMan Drivel The Contributions of CP-M

Gary Kildall’s CP/M was the first general-purpose operating system (OS) for 8-bit computers. It demonstrated that it was possible to pare down the giant operating systems of mainframes and minicomputers into an OS that provided the essential functionality of a general-purpose Application Program Interface, while leaving enough memory left for applications to run. This was a radical idea.

Beyond this technical achievement is the success CP/M had in the marketplace. It stands alone as the catalyst that launched the microcomputer industry as a successful business. Without those signs of success, companies like IBM wouldn’t have been tempted to enter the business and fuel its growth.

The Significance of the BIOS Interface

The concept of a software interface between separate programs or program components has been around for a long, long time. The most obvious example is the Application Program Interface (API) that all operating systems provide to application programs.

But interfaces can exist at other levels, not just between the OS and applications. Interfaces are used whenever two components must interact, but the components are developed independently or may need to be changed independently.

Much has been made of the layers of interfaces used by CP/M. (John Wharton: “Gary’s most profound contribution”; Harold Evans: “truly revolutionary”, “a phenomenal advance”; Tom Rolander: “supreme accomplishment”, “originator of that layering of the software”.) The core of CP/M was the Basic Disk Operating System (BDOS). On one side of the BDOS was the API exposed to application programs; on the other side was the Basic Input/Output System (BIOS) that connected the BDOS to specific computer hardware.

Certainly the idea of these layers of interfaces was not new to the computer industry. For example, UNIX (like all operating systems) provided an API for application programs, and connected to the hardware with an interface to low-level device driver software. These are equivalent layers to the CP/M’s BDOS and BIOS, but much more sophisticated. So I am a bit mystified as to what is so revolutionary about CP/M’s design.

Of course, being the first microcomputer OS, CP/M was the first to put these layers on a microcomputer. So I guess in distilling down the essence of an OS so it would fit on a microcomputer, we can give Kildall credit for not distilling out too much and leaving out the interface layers. Except that he actually did, originally. As described in his memoirs, quoted by Evans, in early versions of CP/M he had to rewrite the parts that manage the hardware “so many times that the tips of my fingers were wearing thin, so I designed a general interface, which I called the BIOS.” I read somewhere that the BIOS interface was first added to version 1.3 of CP/M. It may well be that Kildall had not seen a device driver or BIOS-level interface before. But the advantages that became obvious to him had been just as visible to his predecessors.

I equipped my first computer, an IMSAI 8080, with the North Star floppy disk system. It came with North Star DOS, which was the first OS that I personally used. It, of course, had a low-level interface so it could be tailored to work with any hardware. This is where my experience with interface layers began. I had not seen CP/M at the time.

CP/M & the DOS Connection

I can think of no specific technical innovations demonstrated by CP/M. The new idea was simply that you could do it – you could actually put a general-purpose operating system on a microcomputer. It worked and the market loved it.

DOS was built on top of this general groundwork. Kildall distilled the OS to a minimal, useful set of capabilities that would fit on a microcomputer. This simplified my task in setting the functionality of DOS. It was a matter of adding or subtracting to an existing & working set rather than developing the list from scratch.

DOS has been accused of being a “rip-off” or “knockoff” of the CP/M “design” or “architecture”. I guess this may refer to the fact that DOS has the same interface layers. Or it may refer to the similar function set. In that sense, since Kildall picked an appropriate set of functions, any subsequent microcomputer OS would have the same ones and would be some sort of “knockoff”.

Posted by Tim Paterson at 10:11 PM

[Aug 8, 2007] Is DOS a Rip-Off of CP/M?

Paterson v. Evans lawsuit dismissed

In his book They Made America (Little, Brown & Co., 2004), author Harold Evans revives claims that DOS is based on the late Gary Kildall's CP/M, using words such as "slapdash clone" and "blatant copies". I sued the author & publisher for making false and defamatory statements.

The case was dismissed last week shortly before it was to go to trial. The main reason this happened is because the judge ruled that I am a “limited purpose public figure.” This sets a very high bar of protection for free speech, leading the judge to then rule that the book represented protected opinions.

Facts not in dispute

What may be most surprising about the issue is that there is no significant dispute on the actual relationship between DOS and CP/M. The relationship is simply this: DOS implements the same Application Program Interface (API) as CP/M. The API is how an application program (such as a word processor) asks the operating system to perform a task, such as to read or write a disk file.

There is no suggestion that I copied any CP/M code when I wrote DOS. (To this day, I have never seen any CP/M code.) And the internal workings of DOS are quite different. For example, unlike CP/M, DOS used the FAT (File Allocation Table) system for organizing disk files, which made it much faster but meant floppy disks were not interchangeable between CP/M and DOS.

One point of disagreement: In his memoirs (quoted by Evans), Kildall claims that I dissected CP/M to learn how it worked. This is not true, and it doesn’t even make sense. Since DOS worked so differently, there would have been nothing I could learn from CP/M’s internal workings to help in writing DOS.

What do I mean by “implement the same API”? Every operating system has basic functions like reading and writing disk files. The API defines the exact details of how to make it happen and what the results are. For example, to “open” a file in preparation for reading or writing, the application would pass the location of an 11-character file name and the function code 15 to CP/M through the “Call 5” mechanism. The very same sequence would also open a file in DOS, while, say, UNIX, did not use function code 15, 11-character file names, or “Call 5” to open a file.

Translation Compatibility

Since CP/M and DOS both had the same API, you would think that a program for one would run on the other, right? Wrong. CP/M was only for 8-bit computers based on the 8080 or Z80 microprocessors. DOS was only for 16-bit computers based on the Intel 8086 microprocessor. At the time DOS was written, there was a vast library of 8-bit CP/M programs, none of which could run on 16-bit DOS computers.

While 8-bit programs could not run on 16-bit computers, Intel documented how the original software developer could mechanically translate an 8-bit program into a 16-bit program. Only the developer of the program with possession of the source code could make this translation. I designed DOS so the translated program would work the same as it had with CP/M – translation compatibility. The key to making this work was implementing the CP/M API.

So sue me

When you boil it all down, the thrust of Evans’ story is that Kildall and his company, Digital Research (DRI), should have sued for copyright infringement and DOS would be dead. CP/M would have then been chosen for the IBM PC (because it was the only choice left), and the history of the PC would be much different.

While DRI was free to sue for copyright infringement, the likely success of such action is still controversial at best. The question was whether the published API, used by all the applications that ran under CP/M, was protected from being implemented in another operating system. There are experts who say no, and there are experts who say maybe, but from what I can tell as of 2007 there is yet to be a successful finalized case.

I say that because Evans & I each brought our own copyright experts into our negotiations to settle the case. Mine was Lee Hollaar of the University of Utah, while Evans used Douglas Lichtman of the University of Chicago. Lichtman provided a handful of case citations to show “that the issues here are not clear in either direction, and, in a hypothetical copyright suit filed by Kildall, he might have won and he might have lost.” But the only case that seemed to support DRI’s side was a preliminary injunction in 2003 (Positive Software v. New Century Mortgage). We didn’t think it really applied, and as a preliminary injunction it hadn’t gone through a full trial, let alone appeal. I would suppose this is the best he had. Hollaar said to me “I feel that it's clear from the cases under similar circumstances that you would have won.” I have wished my suit against Evans could have really become a copyright suit about CP/M & DOS so this could be settled.

If tiny Seattle Computer Products had been sued by Digital Research back when DOS was new, I’m sure we would have caved instead of fighting it. I would have changed DOS so the API details were nothing like CP/M, and translation compatibility would have been lost. But in the end that would have made absolutely no difference. No one ever used or cared about translation compatibility. I had been wrong to think it was a valuable feature.

Lichtman mentioned to me that he was working for SCO in their lawsuits against Linux. If I understood him correctly, SCO was trying to establish that an API can be protected by copyright, so it could be used to collect royalties on Linux, whose API is the same as or similar to UNIX.

MS-DOS paternity suit settled The Register

Computer pioneer Kildall vindicated, from beyond the grave

By Andrew Orlowski More by this author

Published Monday 30th July 2007 15:23 GMT

Desktop Support under the spotlight, have your say on the 11th December

An overlooked court case in Seattle has helped restore the reputation of the late computer pioneer Gary Kildall.

Last week, a Judge dismissed a defamation law suit brought by Tim Paterson, who sold a computer operating system to Microsoft in 1980, against journalist and author Sir Harold Evans and his publisher Little Brown. The software became the basis of Microsoft's MS-DOS monopoly, and the basis of its dominance of the PC industry.

But history has overlooked the contribution of Kildall, who Evans justifiably described as "the true founder of the personal computer revolution and the father of PC software" in a book published three years ago.

In a chapter devoted to Kildall in Evans' They Made America: From the Steam Engine to the Search Engine: Two Centuries of Innovators, Evans related how Paterson "[took] 'a ride on' Kildall's operating system, appropriated the 'look and feel' of [Kildall's] CP/M operating system, and copied much of his operating system interface from CP/M."

The story of how Bill Gates came to acquire an operating system is well known. In 1980, Kildall's Digital Research provided the operating system for a wide range of microcomputers, and was established as the industry standard. IBM had approached Microsoft, then a tiny software company in the Seattle area, to provide a BASIC run-time for its first micro, the IBM PC. Gates offered to provide IBM an operating system too, even though he didn't have one at the time. This required a hasty purchase.

Microsoft turned to Tim Paterson, whose garage operation Seattle Computer Products was selling a CP/M clone called 86-DOS. This had been developed under the code name QDOS (for "quick and dirty operating system"), and SCP sold it alongside an add-in CPU card. Microsoft turned this into the hugely successful DOS franchise.

(The oft-told story of Kildall spurning IBM to fly his plane is deeply misleading. It was IBM's distribution and pricing of CP/M, which in the end was one of three operating systems offered with the first IBM PC, that ensured MS-DOS captured the market.)

Paterson brought the case against Evans in March 2005, as we reported here, claiming that Evans' defamatory chapter caused him "great pain and mental anguish".

Evans was puzzled that the chapter drew a defamation suit as it merely "recapitulate[d] and state[d] what 11, 12, 15 other books [said] and there [was] no public outcry, no public corrections, no website corrections, no criticism in reviews [that any of the accounts were erroneous".

Taking a dim view of lawsuits designed to curb the First Amendment rights of journalists, Judge Thomas Zilly found that Paterson's lawsuit failed on several important counts. In US law, Zilly pointed out, "truth is an absolute defense to a claim of defamation".

Judge Zilly said Paterson falsely claimed Evans credited Kildall as the "inventor" of DOS, weakening his case. At the same time, the Judge found, Evans had faithfully recorded Paterson's denial of Kildall's view that QDOS "ripped off" CP/M.

The Judge also agreed that Paterson copied CP/M's API, including the first 36 functions and the parameter passing mechanism, although Paterson renamed several of these. Kildall's "Read Sequential" function became "Sequential Read", for example, while "Read Random" became "Random Read".

(DR came to regret not suing Microsoft "very early on". For his part, Paterson was to plead that his operating system of choice, Kildall's CP/M-86, was at the time unavailable for products based on Intel's 8086 that he wanted to sell, necessitating the hasty clone).

Finally, Judge Zilly concluded that Evans acted without malice, and castigated the plaintiffs for introducing irrelevancies into court, including the claim that Kildall was an alcoholic.

"Plaintiffs fail to provide any evidence regarding 'serious doubts' about the accuracy of the Kildall chapter. Instead, a careful review of the Lefer notes... provides a research picture tellingly close to the substance of the final chapter."

And with that, the case was dismissed.

The PC world might have looked very different today had Kildall's Digital Research prevailed as the operating system of choice for personal computers. DRI offered manufacturers the same low-cost licensing model which Bill Gates is today credited with inventing by sloppy journalists - only with far superior technology. DRI's roadmap showed a smooth migration to reliable multi-tasking, and in GEM, a portable graphical environment which would undoubtedly have brought the GUI to the low-cost PC desktop years before Microsoft's Windows finally emerged as a standard.

But then Kildall was motivated by technical excellence, not by the need to dominate his fellow man.

[Aug 6, 2006] The Observer UK News In 1981 these men changed how we live.

I remember the book by David Bradley. Assembly Language Programming for the IBM Personal Computer, Prentice-Hall, 1984 ((ISBN: 0130491713). Bradley's accomplishments are numerous - he wrote the BIOS code for the original PC and rose to become architecture manager at the PC group. In 1992 he became the architecture manager for the group that developed the PowerPC RISC microprocessor. Inventor of the Week Archive See also David Bradley (engineer) - Wikipedia
In 1981 these men changed how we live

David Smith, technology correspondent
Sunday August 6, 2006
The Observer

'IBM Corporation today announced its smallest, lowest-priced computer system - the IBM Personal Computer,' ran the press release 25 years ago this week. 'Designed for business, school and home, the easy-to-use system sells for as little as $1,565. It offers many advanced features and, with optional software, may use hundreds of popular application programs.'

On 12 August 1981 no one could guess quite how profound an impact the announcement from International Business Machines would have on hundreds of millions of lives. Nor how wildly divergent would be the fortunes of three men who were there at the genesis of the IBM PC 5150 - a invention to rank in importance with the motor car, telephone and television.

One of those men was David Bradley, 57, a member of the original 12 engineers who worked on the secret project and who is still amazed by its profound consequences, from email and iPods to Google and MySpace. Speaking from his home in North Carolina last week, he said: 'Computers have improved the productivity of office workers and become a toy for the home. I don't want to assert that the PC invented the internet, but it was one of the preconditions.'

The man with perhaps most cause to toast the industry standard PC's 25th birthday on Saturday, even more than the engineers who built it, is Bill Gates. His software for the IBM PC, and nearly all the computers that followed it, made him the world's richest man. But for IBM, the story was arguably one of defeat snatched from the jaws of victory.

Bradley was also working on a similar machine when, in September 1980, he was recruited to the IBM team and sent to Boca Raton in Florida to come up with a PC that would rival the pioneering Apple II. A few months later the team had grown and got its leader - Don Estridge, a photographer's son from Florida who had worked for the army and NASA. Racing against a 12-month deadline, the engineers scoured the country for components, and asked Intel, then a manufacturer of memory chips, to deliver the central processing unit, or 'brain'.

IBM also needed operating system software. The man in the right place at the right time was a young geek who had dropped out of Harvard. Bill Gates of Microsoft specialised in more modest computer languages but assured the IBM team that he could come up with an operating system for their new machines in just a few days. After Estridge's task force had left for their hotel, Gates went around the corner to a tiny company which had written a system for the Intel processor and bought it out for £26,000. He then customised the system for IBM and sold it to them for £42,000. Critically, Gates retained the right to license the system to other manufacturers who could, and would, clone the IBM design. A quarter of a century later, he has an estimated wealth of £26bn.

IBM's failure to secure exclusive rights to Gates's software is often regarded as a blunder comparable to that of the music executives who spurned The Beatles. But Bradley disagrees, saying that there was a higher purpose - he and his colleagues used 'open architecture', off-the-shelf parts which others could acquire, and so defined a standard that allowed others to build compatible machines capable of running the same software.

Experts generally regard this as the result of haste rather than altruism on IBM's part, but Bradley points out that in the spirit of openness it published technical manuals to explain how the PC worked. Unlike Apple, who stuck by its proprietary system and lost the lion's share of the market, the IBM PC was an invitation to rivals eager to imitate and improve upon it.

Bradley said: 'I believe the primary reason it was so successful is that it was an open system. There was a microprocessor from Intel and an operating system from Microsoft. We published everything we knew so that if you wanted to work on an application program you had all the information to do it and you could be reasonably confident IBM wouldn't change things later.

'The participation of the rest of the industry was important because IBM alone could not possibly have invented all the applications that people would want.'

The IBM PC 5150 weighed 25lbs, stood just under six inches high and had 64 kilobytes of memory and a five-and-a-quarter inch floppy disk drive. Initial sales forecasts expected 242,000 to be sold over five years, but the figure was exceeded in single month. It was a personal triumph for Estridge, the 'father of the PC', but he would not live to see its full legacy in the democratization of computing.

On 2 August 1985 Estridge was on Delta Air Lines Flight 191 from Fort Lauderdale, Florida approaching Dallas-Fort Worth airport. It was caught in a freak wind and plummeted to the ground, bursting into flames. Of 152 passengers on board, 128 died, including 48-year-old Estridge, his wife and several IBM executives.

IBM was overtaken in the PC market by Compaq in 1994. IBM sold its PC division to Chinese giant Lenovo for £628m last year. 'I'm sad and disillusioned that IBM got out of the computer business since I was there at the very beginning,' added Bradley. 'But as an IBM stockholder I think it was an extremely sensible business decision.'

Bradley quit IBM in 2004 after 28 years and lives in comfortable retirement. He mused: 'I have no regrets about what happened. I was there when it was just a glimmer in everybody's eye and it's a privilege to still be here to talk about it. And no, I don't envy Bill Gates.'

[Mar 2, 2005] Suit may revise chapter on tech history Origins of MS-DOS

A decades-old quarrel over a defining event in computer history -- the creation of the program that propelled Microsoft to dominance -- has suddenly become a legal dispute that could lead to a public trial.
SEE THE SUIT
PDF file (441K)

View the actual complaint filed in U.S. District Court by Tim and Penny Paterson.

Tim Paterson, the programmer widely credited for the software that became Microsoft's landmark operating system, MS-DOS, filed a defamation suit this week against prominent historian and author Harold Evans and the publishers of his book, "They Made America," released last year.

At issue is a chapter in the book that calls Paterson's program "a slapdash clone" and "rip-off" of CP/M, an operating system developed in the 1970s by Seattle native Gary Kildall, founder of Digital Research Inc. Paterson's suit disputes that claim and a long list of related assertions in the 16-page chapter on Kildall, who died in 1994 at age 52.

The intent of the chapter, Evans said yesterday, was to "correct history" and set the record straight on Kildall's role as a software pioneer. Evans based key elements of the chapter on Kildall's unpublished memoirs. Evans said he stands by the facts as portrayed in the book and plans to "enter a vigorous defense" against Paterson's lawsuit.

But Paterson, now 48 and retired in Redmond, said the chapter misrepresents history. One possible resolution, he said yesterday, could include the release of a new edition of the book correcting the alleged misrepresentations outlined in his suit.

"It's really a matter of the truth coming out and being widely understood, and if it takes a trial to do that, then maybe a trial can help, but it's not necessary," Paterson said. "We're trying to get their attention, first of all, and then see where that leads in terms of rectifying the problem."

In a statement, Microsoft criticized the version of events as portrayed in "They Made America" as "one-sided and inaccurate."

Microsoft's statement acknowledged the "important" work of Kildall and others at his company. However, the statement added: "The early history of the personal computer industry has been written many times, and Microsoft is proud of the foundational role we played in the industry and for delivering the combination of technical and business acumen that proved to be the catalyst for the revolution that followed."

The lawsuit promises to draw attention not only because of the subject matter but also because of the prominence of the players.

Evans, married to Washington Post columnist and former Vanity Fair and New Yorker editor Tina Brown, has worked as editor of the Sunday Times of London, president and publisher of Random House, and editorial director and vice chairman of U.S. News & World Report, among other high-profile positions. The broader "They Made America" book formed the basis for a PBS television series.

Paterson said he first became aware of the book not long before its October publication, when contacted by a BusinessWeek reporter seeking comment for a story the magazine published about the book's chapter on Kildall. Paterson said neither Evans nor his collaborators contacted him or interviewed him for the chapter, relying instead on some of his previously published writing.

The lawsuit, filed Monday in U.S. District Court in Seattle, names as defendants Evans, collaborators Gail Buckland and David Lefer, and publishers Little, Brown & Co. and Time Warner Book Group. The collaborators and representatives of the publishing companies couldn't be reached for comment yesterday.

The suit acknowledges that Paterson sought to make the application programming interfaces in his QDOS operating system, the predecessor of MS-DOS, compatible with Kildall's CP/M. Application programming interfaces link programs to operating systems, and by ensuring compatibility, Paterson was seeking to "make it easy as possible for software developers to write applications" for his operating system, the suit said.

However, the suit disputes the book's assertion that Paterson's program was a rip-off of Kildall's software. It also dismisses any notion that Kildall was the actual originator of the DOS Microsoft ended up using.

"It is known in the computer world and the public in general that DOS was invented by Plaintiff Tim Paterson," the lawsuit says.

The suit seeks unspecified monetary damages above the $75,000 threshold for federal court jurisdiction.

If the case ever comes to court, "the devil is in the details and in who can remember what details about what happened," said Paul Freiberger, co-author of "Fire in the Valley," a book about creation of the personal computer, first published in 1984.

"DOS certainly looked a lot like CP/M to the user," Freiberger said yesterday. "That gets into all kinds of conflicts about look and feel and when someone is infringing."

As described in the suit, Paterson developed what would become known as DOS in the late 1970s and early '80s while working as a programmer for Tukwila-based Seattle Computer Products. Microsoft bought the operating system in the early 1980s. Paterson later went to work for Microsoft.

"They Made America," which retails for $40, tells the story of inventors such as Henry Ford, Wilbur and Orville Wright, and Walt Disney, among others. The chapter on Kildall describes him as "utterly brilliant" at programming.

Describing the development of CP/M, Evans wrote that "Kildall created the bedrock and subsoil out of which the PC software industry would grow."

"Entirely out of his own head, without the backing of a research lab or anyone, he wrote the first language for a microcomputer operating system ... before there was even a microcomputer," Evans wrote.

Among other things, the chapter dismisses as myth the legendary story in which Kildall is said to have missed a chance to sell his operating system to IBM because he decided to go flying. What's not in dispute is that Microsoft and a young Bill Gates were able to strike a deal instead, providing the operating system for IBM's early PC and launching a pivotal era for what has since become the world's largest software company.


DOSEMU-HOWTO [tldp.org] is the official linux dosemu howto.

It seems to be even kept up-to-date (as popular dos is these days, anyhow).
DOSEMU / FreeDOS useful for embedded support (Score:5, Informative)
by barries (15577) on Saturday January 10, @06:48AM (#7936960)
(http://google.com/)
There's still a dusty corner of systems design and programming that takes place on DOS: some embedded programming tools (compilers, flash burners, in circuit emulator debuggers) for some chips still work "best" on DOS.

Only now, we can use DOSEMU to run them under Linux and get the benefit of real development environment when supporting legacy apps. We can open a bash shell and use Perl, gnu make, emacs/vim, etc to drive development, then have a DOSemu / FreeDOS window to drive download and debug.

It can be quite difficult automating the Windows versions of these tools to that same level. Most of our projects use Windowes tool (running in VMware on Linux), but we did one two years ago hosted on DOSEMU and using Bytecraft's (now) excellent compiler for the PIC chips.

Best of both worlds, and many, many thanks to all the hackers that made it work so well.

am greatly saddened... (Score:4, Insightful)
by tiger99 (725715) on Saturday January 10, @09:57AM (#7937328)
Why? Because I gave away lots of my old but good DOS programs, complete with licence of course, years ago. It would be nice to run almost bug-free, stable things like Word Perfect 5.2 again. (I did find one bug in that actually, but it was not too serious and did not cause data loss). Then there was a magazine cover disk with 50 free utilities, about 20 of which were actually useful and worked, and got used every day, and all the old C programs I wrote, which would compile and run on both DOS and Unix, but not for some reason, Windoze, even in a command window.

It would be nice to run non-bloated code again. I used to be amazed at the speed of spell-checking in WP 5.2 on a 286, it would most probably still beat Word 2000 on my Athlon 2.6GHz. Life was much less troublesome then, before truly abominable software, designed by idiots, for idiots, became dominant.

Now, if DOS could be combined with Unix version 7, that would be almost perfection.

The article is lacking... (Score:2)
by Espectr0 (577637) on Saturday January 10, @10:23AM (#7937421)
(Last Journal: Tuesday September 30, @02:55PM)
...about how to read a current "c:\" drive in your system so you can boot your already-installed games
Re:The article is lacking... (Score:0)
by Anonymous Coward on Saturday January 10, @12:41PM (#7938132)
In dosemu.conf, list /dev/hda1 as an hdimage

Recommended Links

Softpanorama hot topic of the month

Softpanorama Recommended

DOS - Wikipedia, the free encyclopedia

doshist  DOS history timeline

Digital Research - History of MS-DOS

Encyclopedia of Computers and Computer History - (Raul Rojas, editor) - DOS , April 2001.

Byte Magazine - A Short History of MS-DOS, June, 1983.

Byte Magazine - An Inside Look at MS-DOS, June, 1983.

Father of DOS

DosMan Drivel Tim Peterson account on the first QDOS computer

History of BASIC

The history of the creation of DOS, with links to related pages

Digital Research - History of MS-DOS

Club Dr-DOS

OS-2 History

***** DDB DOS Websites - a rather comprehensive list.

OpenDOS Unofficial Home Page

Free games- Download over 400 DOS games. Shareware and freeware ...

Free FDISK

Free DOS Extenders and DPMI Hosts - 32 bit protected mode DOS ...

Interesting DOS programs - Home Page

Free Software for DOS — KEYBOARD & MOUSE UTILS

Drive Image Backup Software for DOS - Image for DOS

History of Microsoft MS-DOS CD-ROM Extensions (MSCDEX)

Gary Kildall, CP/M and DOS origins controversy

Gary Kildall - Wikipedia, the free encyclopedia

Tim Paterson - Wikipedia, the free encyclopedia

Paterson, Tim (1994-10-03). "From the Mailbox: The Origins of DOS". Microprocessor Report. Retrieved on 2006-11-20.

DosMan Drivel The Contributions of CP-M by Paterson, Tim, August 17, 2007

Tim:

You fail to mention here that Gary Kildall drew heavily upon another source -- DEC's RT-11 disk operating system -- for his design. Not only were most of the user level commands the same in CP/M; the APIs were also similar. Given that RT-11 was designed to be a minimal disk operating system for machines that were running "real time" applications (hence the "RT"), it was already very lean and hence a good model for CP/M.

"Programmer sues author over role in Microsoft history", USA Today, 2005-03-02. Retrieved on 2006-11-20.

 Paterson v. Little, Brown, and Co. 2005 CV5-327P. United States District Court for the Western District of Washington. Retrieved on 2006-11-20.

DR DOS - Google Search

DR-DOS - Wikipedia, the free encyclopedia

 

References

NukeSoft MS-DOS Reference

CP/M


Dr Dos

Sources


MS-DOS

 

The history of djgpp
The history of djgpp

Note: DJGPP is spelled all upper case when it would normally be capitalized, and all lower case otherwise. It is never correct to spell it ``Djgpp''. Also, please be careful not to let your fingers get confused and type something like dgjpp or gjgpp.

DJGPP was born around 1989 (originally called djgcc), when Richard Stallman spoke at a meeting of the Northern New England Unix Users Group (NNEUUG) at Data General, where I then worked. I asked if the FSF ever planned on porting gcc to MS-DOS (I wanted to use it to write a 32-bit operating system for PCs), and he said it couldn't be done because gcc was too big and MS-DOS was a 16-bit operating system. Challenge in hand, I began.

The first gcc I built was 1.35, which I built on an ISC Unix system running on a 386/16. I wrote custom replacements for the system calls, linked with ISC's libc.a, write a custom program to turn the resulting binary into a 32-bit EXE that Phar Lap's extender could use, and had the first gcc that ran on MS-DOS.

Because Phar Lap hadn't discovered virtual memory yet, and I didn't have enough physical memory to let gcc compile itself, I had to write an extender that could provide virtual memory. Go32 was born. The first files were control.c, mswitch.s, paging.c, and valloc.c, among a few other minor files. By the time I got this working, gcc 1.37 was out, so that was the first version that was built on a dos platform. I used this version for a while to work on my 32-bit OS, which I still have lurking around on my hard drive (in source form).

I scrounged through the net and found the recently free'd BSD sources, and ported their libc.a to MS-DOS. This, and many custom routines, was the basis for djgpp's standard library. The headers were based on the original g++-includes from g++ 1.37. This is why the headers don't match the libraries all the time.

The first version that made it big was djgpp 1.03, which can still be found in a few shareware catalogs, even though 1.03 was pre-grok-copyleft, and those shareware dealers are distributing it illegally.

The name was changed from djgcc to djgpp when C++ was added. I forget which release this was. Since C++ is integral to gcc, djgpp no longer stands for "DJ's G++" but probably stands for something like "DJ's GNU Programming Platform".

djgpp 1.05 was another big hit, as this was one of the first that was commercially available. djgpp 1.06 added VCPI. 1.10 added DPMI. 1.11 added DPMIEMU, the first step towards version 2, and appeared on the GNU Compiler Binary CD-ROM. Today, djgpp appears in many programming journals and on many CD-ROM distributions in many countries and languages.

Version 2 began due to a need to have a system that could be fully self-bootstrapping. Since go32 requires a Borland compiler to build, it didn't fit the bill. Cygnus, a big user of djgpp for their DOS-based products, requested a self-bootstrapping version, so version 2 was born. The first part was writing an assembler that could produce the 16-bit stub, so djasm was written. This stub relies on DPMI, a break from djgpp's traditional "run on anything" policy. The old go32 was used to provide DPMI services through an offspring product called CWSDPMI (Charles Sandmann), which will ship with djgpp. Eventually, even the DPMI server will be written in a combination of 32-bit gcc code and 16-bit djasm code, or if gcc can produce 16-bit code by then, in that.

Many "third-party" software has been written for djgpp, and many applications that are outgrowing their 16-bit roots are being rewritten to take advantage of djgpp's 32-bit environment. Popular examples of these (some are still in the works) are Quake, Info-Zip, GhostScript, Executor/DOS, WatTCP, Xemu, DESQview/X's developers kit, and countless data processing programs used by companies and individuals throughout the world.

Where we are now

Version 2.00 shipped on February 5, 1996, after more than two years of development. Version 2.01 shipped October 19, 1996. Version 2.02 shipped December 6, 1998.

 

Last modified: April 15, 2017

[Apr. 30, 2000] History of Computing It's Not Easy Being Green (or Red) The IBM Stretch Project

The first machine (now officially named the IBM 7030) was delivered to Los Alamos on April 16, 1961. Although far short of being 100 times faster than competing machines, it was accepted and ran for the next ten years, with the then-astonishing average reliability of 17 hours before failure.

While customers were generally happy with the machine's performance, Stretch was considered a failure within IBM for not meeting its speed benchmark—with the consequence that IBM had to reduce the price from $13.5 million to $7.78 million, thus guaranteeing that every machine was built at a loss. Dunwell's star within IBM fell dramatically, and he was given fewer responsibilities—IBM's version of a gulag.

As time went on, however, attitudes within IBM changed about the lessons Stretch had to offer. From a lagging position in industry, IBM had moved into the forefront through the manufacturing, packaging, and architectural innovations Stretch had fostered. Dunwell's exile ended in 1966, when the contributions Stretch had made to the development of other IBM machines—including the monumentally successful System/360 product line—became evident. Dunwell was made an IBM Fellow that year, the company's highest honor.

A Successful Failure

Hundreds of IBM engineers had dramatically pushed the industry forward during the Stretch project, and Stretch alumni went on to contribute to some of the most important technologies still in use today. (One example is John Cocke, originator of the RISC architectural concept). Harwood Kolsky, designer of Stretch's lookahead unit, now emeritus professor at UC Santa Cruz, notes: "In the early 1950s the time was right for a giant step forward in computing. It was technology that pulled the computing field forward... This is where Stretch really stood out. It was an enormous building project that took technologies still wet from the research lab and forced them directly into the fastest computer of its day."

George Michael, a physicist and Stretch user at the Lawrence Livermore National Laboratory, notes that staff were very surprised that Stretch did not crash every twenty minutes. He calls the system "very reliable... it paid for itself in supporting the 1962 nuclear test series at Christmas Island."

The Stretch story is only one of many chapters in the history of computing demonstrating that our industry's triumphs are built upon the ashes of its "failures." Stretch is one of the hallmark machines—despite its being largely invisible to history—that defined the limits of the possible for later generations of computer architects. Looking at a list of Stretch milestones, you may recognize these many innovations in present-day products:

Not heeding the lessons of history, microprocessor companies twenty or thirty years later "re-invented" most of these innovations.


Papers

An Inside Look at MS-DOS by Tim Paterson

Virtual Museum of Computing - A collection of WWW hyperlinks connected with the history of computing and on-line computer-based exhibits from around the world.

German Web Computer museum. Developments and stories about computers, with descriptions of historic computers like the Altair 8800, Apple LISA, and the IBM PC. It also provides a chronology of microcomputers and personal computers from about 1974 until 1990.

History of Computing Resources - Bibliography of works dealing with computing up to 1950 by historian Brian Randell.

History of Computing Material and Links - Compiled and maintained by the editor of the Annals of the History of Computing- J.A.N. Lee.

WWW Computer Architecture Home Page[July 7, 1999]

Chronology of Digital Computing Machines by Mark Brader (Usenet posting). Many mirrors. see for example A Chronology of Digital Computing Machines (to 1952) or http://www.davros.org/misc/chronology.html

A Chronology of Digital Computing Machines (to 1952)

Computer Museum - Everything you need to know about the original, the venerable Computer Museum in Boston, U.S.A.

Free DOS-compatible Operating Systems (MSDOS/PCDOS Clones)

Free DOS-compatible Operating Systems (MSDOS-PCDOS Clones) (thefreecountry.com)

In its heyday, MS-DOS, PC-DOS and its commercial clones, DR-DOS, was used on a large number of computers, with innumerable pieces of software developed for it. While it is now a dim memory today, it can still be used for a number of purposes including its use as an embedded system (for example, inside cash registers), to run old programs and games, or to study its code. It is also useful for those who have lived through that era and want to run it for nostalgic reasons.

FreeDOS
FreeDOS is the well-known DOS compatible OS that is released under an open source licence. The operating system allows you to run old programs, be it games, business applications or other DOS software, under an environment that emulated the old Microsoft DOS system. It comes with a whole plethora of utilities, including clones of those you can find distributed with MS-DOS and PC-DOS, even things like a replacement for the HIMEM.SYS, EMM386.SYS (memory managers to provide access to memory above the old 640 KB barrier) and MSCDEX.EXE (driver for allowing DOS access to CDROM drives), a mouse driver, etc. However, it goes beyond simply being a DOS clone - it has long filename support in the command.com replacement as well as other tools, FAT32 support, modern archivers like 7zip, zip, unzip, etc. This is a very popular substitute for the old MSDOS among people who still have need for it. It can also be used in embedded systems.
DR-DOS / OpenDOS Enhancement Project
This site provides source code and precompiled binaries (executables) of the original OpenDOS / DR-DOS 7.01, a commercial clone of MS-DOS that was fairly popular in its day before it was released for free at the end of the DOS-era. There are also newer versions that include updates and enhancements to the original code. These enhanced versions add things like support for long file name (LFN), the newer FAT filesystems, and so on.
IBM PC-DOS 2000 (Chinese Version)
The Chinese version of IBM PC-DOS 2000 is available free from IBM's FTP site. Unlike some of the other free DOS clones listed onthis page, PC-DOS 2000 is fairly out-of-date with no updates since the date it was released.
FreeDOS-32 (FD32)
FreeDOS-32 is a 32-bit reimplementation of MS-DOS that runs in 32-bit protected mode. It is intended to run protected mode DOS programs and has its own 32-bit device drivers. There is also some support for Windows console programs. Unfortunately, development for this operating system appears to have halted, even before it has reached release status. That is, although you can download the system, it is still not in a state that can be used in a production environment (or any environment, for that matter).

Related Pages

System 360

System-360 - Wikipedia, the free encyclopedia

Computer History IBM 360-370-3090-390

The IBM Journal of Research and Development recently reprinted the 1964 paper Architecture of the IBM System/360 by Gene Amdahl, Fred Brooks and G A Blaauw. (16 pages, PDF).


Microprocessors history



Etc

FAIR USE NOTICE This site contains copyrighted material the use of which has not always been specifically authorized by the copyright owner. We are making such material available in our efforts to advance understanding of environmental, political, human rights, economic, democracy, scientific, and social justice issues, etc. We believe this constitutes a 'fair use' of any such copyrighted material as provided for in section 107 of the US Copyright Law. In accordance with Title 17 U.S.C. Section 107, the material on this site is distributed without profit exclusivly for research and educational purposes.   If you wish to use copyrighted material from this site for purposes of your own that go beyond 'fair use', you must obtain permission from the copyright owner. 

ABUSE: IPs or network segments from which we detect a stream of probes might be blocked for no less then 90 days. Multiple types of probes increase this period.  

Society

Groupthink : Two Party System as Polyarchy : Corruption of Regulators : Bureaucracies : Understanding Micromanagers and Control Freaks : Toxic Managers :   Harvard Mafia : Diplomatic Communication : Surviving a Bad Performance Review : Insufficient Retirement Funds as Immanent Problem of Neoliberal Regime : PseudoScience : Who Rules America : Neoliberalism  : The Iron Law of Oligarchy : Libertarian Philosophy

Quotes

War and Peace : Skeptical Finance : John Kenneth Galbraith :Talleyrand : Oscar Wilde : Otto Von Bismarck : Keynes : George Carlin : Skeptics : Propaganda  : SE quotes : Language Design and Programming Quotes : Random IT-related quotesSomerset Maugham : Marcus Aurelius : Kurt Vonnegut : Eric Hoffer : Winston Churchill : Napoleon Bonaparte : Ambrose BierceBernard Shaw : Mark Twain Quotes

Bulletin:

Vol 25, No.12 (December, 2013) Rational Fools vs. Efficient Crooks The efficient markets hypothesis : Political Skeptic Bulletin, 2013 : Unemployment Bulletin, 2010 :  Vol 23, No.10 (October, 2011) An observation about corporate security departments : Slightly Skeptical Euromaydan Chronicles, June 2014 : Greenspan legacy bulletin, 2008 : Vol 25, No.10 (October, 2013) Cryptolocker Trojan (Win32/Crilock.A) : Vol 25, No.08 (August, 2013) Cloud providers as intelligence collection hubs : Financial Humor Bulletin, 2010 : Inequality Bulletin, 2009 : Financial Humor Bulletin, 2008 : Copyleft Problems Bulletin, 2004 : Financial Humor Bulletin, 2011 : Energy Bulletin, 2010 : Malware Protection Bulletin, 2010 : Vol 26, No.1 (January, 2013) Object-Oriented Cult : Political Skeptic Bulletin, 2011 : Vol 23, No.11 (November, 2011) Softpanorama classification of sysadmin horror stories : Vol 25, No.05 (May, 2013) Corporate bullshit as a communication method  : Vol 25, No.06 (June, 2013) A Note on the Relationship of Brooks Law and Conway Law

History:

Fifty glorious years (1950-2000): the triumph of the US computer engineering : Donald Knuth : TAoCP and its Influence of Computer Science : Richard Stallman : Linus Torvalds  : Larry Wall  : John K. Ousterhout : CTSS : Multix OS Unix History : Unix shell history : VI editor : History of pipes concept : Solaris : MS DOSProgramming Languages History : PL/1 : Simula 67 : C : History of GCC developmentScripting Languages : Perl history   : OS History : Mail : DNS : SSH : CPU Instruction Sets : SPARC systems 1987-2006 : Norton Commander : Norton Utilities : Norton Ghost : Frontpage history : Malware Defense History : GNU Screen : OSS early history

Classic books:

The Peter Principle : Parkinson Law : 1984 : The Mythical Man-MonthHow to Solve It by George Polya : The Art of Computer Programming : The Elements of Programming Style : The Unix Hater’s Handbook : The Jargon file : The True Believer : Programming Pearls : The Good Soldier Svejk : The Power Elite

Most popular humor pages:

Manifest of the Softpanorama IT Slacker Society : Ten Commandments of the IT Slackers Society : Computer Humor Collection : BSD Logo Story : The Cuckoo's Egg : IT Slang : C++ Humor : ARE YOU A BBS ADDICT? : The Perl Purity Test : Object oriented programmers of all nations : Financial Humor : Financial Humor Bulletin, 2008 : Financial Humor Bulletin, 2010 : The Most Comprehensive Collection of Editor-related Humor : Programming Language Humor : Goldman Sachs related humor : Greenspan humor : C Humor : Scripting Humor : Real Programmers Humor : Web Humor : GPL-related Humor : OFM Humor : Politically Incorrect Humor : IDS Humor : "Linux Sucks" Humor : Russian Musical Humor : Best Russian Programmer Humor : Microsoft plans to buy Catholic Church : Richard Stallman Related Humor : Admin Humor : Perl-related Humor : Linus Torvalds Related humor : PseudoScience Related Humor : Networking Humor : Shell Humor : Financial Humor Bulletin, 2011 : Financial Humor Bulletin, 2012 : Financial Humor Bulletin, 2013 : Java Humor : Software Engineering Humor : Sun Solaris Related Humor : Education Humor : IBM Humor : Assembler-related Humor : VIM Humor : Computer Viruses Humor : Bright tomorrow is rescheduled to a day after tomorrow : Classic Computer Humor

The Last but not Least


Copyright © 1996-2016 by Dr. Nikolai Bezroukov. www.softpanorama.org was created as a service to the UN Sustainable Development Networking Programme (SDNP) in the author free time. This document is an industrial compilation designed and created exclusively for educational use and is distributed under the Softpanorama Content License.

The site uses AdSense so you need to be aware of Google privacy policy. You you do not want to be tracked by Google please disable Javascript for this site. This site is perfectly usable without Javascript.

Original materials copyright belong to respective owners. Quotes are made for educational purposes only in compliance with the fair use doctrine.

FAIR USE NOTICE This site contains copyrighted material the use of which has not always been specifically authorized by the copyright owner. We are making such material available to advance understanding of computer science, IT technology, economic, scientific, and social issues. We believe this constitutes a 'fair use' of any such copyrighted material as provided by section 107 of the US Copyright Law according to which such material can be distributed without profit exclusively for research and educational purposes.

This is a Spartan WHYFF (We Help You For Free) site written by people for whom English is not a native language. Grammar and spelling errors should be expected. The site contain some broken links as it develops like a living tree...

You can use PayPal to make a contribution, supporting development of this site and speed up access. In case softpanorama.org is down you can use the at softpanorama.info

Disclaimer:

The statements, views and opinions presented on this web page are those of the author (or referenced source) and are not endorsed by, nor do they necessarily reflect, the opinions of the author present and former employers, SDNP or any other organization the author may be associated with. We do not warrant the correctness of the information provided or its fitness for any purpose.

Last modified: April 15, 2017