Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -166,13 +166,22 @@ Offset Size Description (Table 01628)
0Ch WORD "smcbLink", not used yet (planned to be an owner segment)
0Eh WORD reserved
Notes: the next MCB is at segment (current + size + 1)
under DOS 3.1+, the first memory block is the DOS data segment,
an MCB may contain all-zeroes in the word 03h. such an MCB may be
created by explicitly allocating an empty memory block, resizing an
existing block to a zero size, or by operations on surrounding MCBs.
it is expected that every subsequent MCB is stored at a higher segment
than a prior MCB, ie that the size in word 03h doesn't overflow.
under DOS 3.1+, the first block is a segment of DOS data structures,
containing installable drivers, buffers, etc. Under DOS 4.0+ it is
divided into subsegments, each with its own memory control block
(see #01633), the first of which is at offset 0000h.
the DOS data segment (see INT 2F/AX=1203h) is typically in front of
the first MCB, except in lDOS (optionally) and DR-DOS v7
for DOS 5+, blocks owned by DOS may have either "SC" or "SD" in bytes
08h and 09h. "SC" is system code or locked-out inter-UMB memory,
"SD" is system data, device drivers, etc.
MS-DOS v6 LH may allocate excluded UMBs using owner 8 and the name
filled with "HIDDEN " (two trailing blanks, not NULs)
Some versions of DR DOS use only seven characters of the program name,
placing a NUL in the eighth byte.
lDOS S MCBs are heavily used by lDOS (lMS-DOS and lRxDOS), only device
Expand All @@ -187,6 +196,8 @@ Notes: the next MCB is at segment (current + size + 1)
it is reported that some versions of command.com free memory blocks
used transiently from code running in those very blocks, thus
running in free memory for a bit after this point.
lDOS source texts note that splitting MCBs is the only operation that
creates new MCBs, everything else operates on existing MCBs.
SeeAlso: #01630,#01632,#01633

(Table 01629)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,11 @@ INT 2F U - DOS 3.3+ internal - INSTALLABLE COMMAND - EXECUTE
AX = AE01h
DX = magic value FFFFh
CH = 00h
CL = length of command name (4DOS v4.0)
CL = length of command name (4DOS v4.0, MS-DOS v4.01)
DS:BX -> command line buffer (see #02977)
DS:SI -> command name buffer (see #02978)
(at least in MS-DOS v4.01, v6.22) ES:DI -> far callable command.com
"sysparse" entrypoint (this is called by APPEND)
Return: DS:SI buffer updated
if length byte is nonzero, the following bytes contain the uppercase
internal command to execute and the command line buffer contains the
Expand All @@ -25,5 +27,10 @@ BUGS: Novell DOS 7.0's COMMAND.COM (prior to Update 12) will attempt to run
command name buffer to "REM" followed by enough blanks to pad out
the original command's length, which will also work with MS-DOS 6.
(from padgett@tccslr.dnet.mmc.com)
FreeCOM and SvarCOM pass DI = 0, and may crash if used with MS-DOS
APPEND because APPEND may try to call into the "sysparse" entry.
FreeCOM's sources (lib/mux_ae.c) comment on the setting DI = 0 as
"Magic value 4dos v4" so it is possible that 4DOS also crashes.
FreeCOM passes in CX minus command line length (DS:BX) rather than
plus the command name length (DS:SI).
SeeAlso: AX=AE00h

Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
----------------------------------------------------------------------------
Unique ID: 30
Sort As: 30+01
Sort As: 30+02
Category: W MS Windows
Flag: P available only in protected mode
----------------------------------------------------------------------------
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
----------------------------------------------------------------------------
Unique ID: 30
Sort As: 30+02
Sort As: 30+01
Category: D DOS kernel
Flag: n/a
----------------------------------------------------------------------------
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
----------------------------------------------------------------------------
Unique ID: 31
Sort As: 31+01
Sort As: 31+02
Category: v virus/antivirus
Flag: n/a
----------------------------------------------------------------------------
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
----------------------------------------------------------------------------
Unique ID: 31
Sort As: 31+02
Sort As: 31+01
Category: D DOS kernel
Flag: n/a
----------------------------------------------------------------------------
Expand Down