IBM PC-DOS 2.10 explorations
cisin at xenosoft.com
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 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
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 xenosoft.com
More information about the cctalk