IBM PC-DOS 2.10 explorations

Fred Cisin cisin at
Sat Oct 3 16:07:48 CDT 2020

On Sat, 3 Oct 2020, Will Senn via cctalk wrote:
> 2. Most of the Assembly examples use DOS interrupt 21 for output. Is this 
> typical of assembly programs of the time, or did folks use other methods?

For simple stuff, Int21H works and is portable to anything running MS-DOS.

Int10H is less portable.  Not as commonly used.

If you need SPEED, which all commercial software perceived a need for, 
then you need to determine WHERE video memory is (segment B000H for MDA, 
segment B800H for CGA, with TEXT modes of EGA/VGA also using those), and 
put bytes/words directly into video memory.  REP MOVSW was generally the 
quickest way to put up a screenful of stuff (avoid segment over-ride 
because REP MOVSW lost that if an interrupt occured in mid transfer)

Keyboard input could be done with Int21H, Int16h, or accessing memory in 
the BIOS segment.

> 3. I was able to find a lot of 5150/5160 and other manuals, but I couldn't 
> find an IBM Macro Assembler 2.0 manual (there are plenty of IBM Macro 
> Assembler/2 manuals, but those are for OS/2, not DOS). Does anyone know where 
> I can find one online?

MASM manual??!?
MASM 5.0 was the first version to have documentation that a sane person 
could say was adequate.
The MASM 5.00 manualS were pretty usable for the earlier MASM.

I used Lafore as textbook for my assembly language class

> 4. In y'all's view, what are the significant differences between IBM PC-DOS 
> 2.10 and it's brother MS-DOS 2.x?

2.00 to 2.10 was minor changes.  Perhaps the most significant was that the 
PCJr used the QumeTrak 142 (early half-height) drives, which were TOO SLOW 
for 2.00, so PC-DOS 2.10 slowed down the DOS track to track access time.

2.11 was MS-DOS ONLY, not PC-DOS.  It was one of the favorite ones for 
OEMs to patch for different video or different drives (such as 720K 3.5")
PC-DOS didn't get 3.5" drives until PC-DOS 3.20.
PC-DOS 3.30 added 1.4M 
If you want CD-ROM, 3.10 added the "network redirector".

MS-DOS (NOT PC-DOS) 3.31, another favorite for patching, was the first to 
support hard drives larger than 32M

PC-DOS 4.00 was unpopular, partially becaause IBM didn't pre-warn Norton 
to revise their fUtilities.

MS-DOS 5.00 was the first to be sold RETAIL (not gray-market from an OEM), 
and added such things as SETVER (so LINK and EXe2BIN didn't need patching 
for DOS versions).

MS-DOS 6.00 added a whole cartful of bundled aftermarket add-ons, 
including compression, SMARTDRV disk cacheing, etc.
PC-DOS 6.10 had a cartful of different aftermarket brands of the same 

MS-DOS 6.20 was the first version of MS-DOS for which imporving 
reliability was primary goal!  (instead of adding smell-o-vision, dancing 
kangaroos and yodelling jellyfish)
It backed off the settings for SMARTDRV so that disks didn't get 
trashed (incorrectly blamed on compression)
6.21 was same, without compression due to copyright lawsuit(s).
6.22 was same with non-infringing compression

> 5. I'm thinking of moving on to 3.3 at some point, in your view, what are the 
> advantages?
Consider 3.31, instead of 3.30, to get larger drive support.

Bob Wallace (MICROS~1 10th? employee) wrote the IBM PASCAL.  He advised me 
to NOT use the run-time library.

Grumpy Ol' Fred     		cisin at

More information about the cctech mailing list