Skip to content
Merged
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
24 changes: 12 additions & 12 deletions source/Cmos-Memory Map/_Note.txt
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ screen in 8 rows of 16 values.
The CMOS RAM space has an upper limit of 128 bytes because of the structure
of port 70: only bits 0-6 are used for addressing, bit 7 is used to
enable (0) or disable (1) Non-Maskable Interrupts (NMI) and explains why
IBM uses 80h OR <address> to read/write data & follows with a "throw-away"
IBM uses 80h OR <address> to read/write data & follows with a "throw-away"
call.

Note that if the CMOS only has 64 bytes available, addressing will
Expand Down Expand Up @@ -126,9 +126,9 @@ CHECKS_ADDRESS DW 0

CMOS_DATA DB 128 DUP (?)


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

Organization of CMOS Memory - Clock

00h-0Eh is defined by the clock hardware and all must follow it. Other
Expand All @@ -142,16 +142,16 @@ of which are read/write and two of which are read only.

The format of the ten clock data registers (bytes 00h-09h) is:


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

Organization of CMOS Memory - non-Clock

The last two bytes in the first hexadecimal decade (hexade ?) were not
specified in the PC/AT but may have the following use on some systems:

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


The second group of values extends from address 10h to 2Dh. The word at
2Eh-2Fh is a byte-wise summation of the values in these bytes. Most BIOSes
Expand All @@ -162,17 +162,17 @@ version of MSD reports my XT as having 20+ MB of extended memory.
Where a definiton appears universal, no identification is made. Where
the definition is thought to be specific to a manufacturer/model (AMI,
AMSTRAD, IBM AT, IBM PS/2) the identification is enclosed in parens. The
AMSTAD definitions appear to relate to 8088/8086 (PC and PC/XT class)
mchines only. AT class machines appear to adhere to IBM PC/AT fornat.
AMSTRAD definitions appear to relate to 8088/8086 (PC and PC/XT class)
machines only. AT class machines appear to adhere to IBM PC/AT format.



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


End of original 64 CMOS RAM bytes. Many modern chips now contain 128
bytes and the IBM PS/2 has provision for 2k of "Expansion CMOS".
The AMI HI-FLEX description is below. If the chip does have only
64 bytes, addresses will wrap so that requests for bytes 40h-7Fh will
return the same values as 00h-3Fh.


Original file line number Diff line number Diff line change
Expand Up @@ -22,5 +22,4 @@ Notes: free space on drive in bytes is AX * BX * CX
use AX=4402h"CD-ROM" instead
(FAT32 drive) the reported total and free space are limited to 2G-32K
should they exceed that value
SeeAlso: AH=1Bh,AH=1Ch,AX=4402h"CD-ROM",AX=7303h

SeeAlso: AH=1Bh,AH=1Ch,AX=4402h"CD-ROM",AX=7303h,INT 2F/AX=110Ch
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,10 @@ INT 21 - DOS 2+ - "EXIT" - TERMINATE WITH RETURN CODE
AH = 4Ch
AL = return code
Return: never returns
Notes: unless the process is its own parent
(see #01378 [offset 16h] at AH=26h), all open files are closed and
all memory belonging to the process is freed
Notes: unless the process is its own parent (see #01378 [offset 16h] at
AH=26h), all open files are closed and all memory belonging to the
process is freed. (the same code path of not closing handles and
not freeing memory is taken for TSR AH=31h.)
the parent process is made the current process. this INT 21 call
reads the SS:SP stack of the parent from the parent's PSP (see
#01378 [offset 2Eh] at AH=26h) and returns on that user stack,
Expand Down Expand Up @@ -40,5 +41,4 @@ Notes: unless the process is its own parent
so that they receive exactly the same user stack as was set
up by the interrupt caller.
SeeAlso: AH=00h,AH=26h,AH=4Bh,AH=4Dh,INT 15/AH=12h/BH=02h,INT 20,INT 22
SeeAlso: INT 60/DI=0601h

SeeAlso: INT 60/DI=0601h,INT 2F/AX=111Dh,INT 2F/AX=1122h
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ Return: CF clear if successful
AX = error code (01h,06h) (see #01680 at AH=59h/BX=0000h)
CF unchanged or CF set if no function 71h subfunctions supported
AX = error code (7100h)
SeeAlso: AH=42h
SeeAlso: AH=42h,INT 2F/AX=1142h"dosemu2",INT 2F/AX=11C2h"dosemu2"
Notes: supported by FAT+ builds of Enhanced DR-DOS (including 2023+ lDOS
flavour and if FATPLUS option enabled for 2023+ SvarDOS flavour;
the SvarDOS fork introduced the FATPLUS option to disable it by
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ BUGS: this function returns a maximum of 2GB free space even on an FAT32
partition larger than 2GB under some versions of Win95 and Win98,
apparently by limiting the number of reported free clusters to no
more than 64K -- but only in a DOS window if a TSR has hooked INT 21h
SeeAlso: AX=7302h,AX=7304h,AX=7305h,AH=36h
SeeAlso: AX=7302h,AX=7304h,AX=7305h,AH=36h,INT 2F/AX=11A3h"dosemu2"

Format of extended free space structure:
Offset Size Description (Table 01789)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,5 +16,4 @@ Return: CF clear if data valid
DX = number of available clusters
CF set if data invalid
Notes: this function is called by the DOS 3.1+ kernel
SeeAlso: INT 21/AH=36h

SeeAlso: INT 21/AH=36h,AX=11A3h"dosemu2"
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,7 @@ Notes: used when a process is aborted; the process being terminated is
this function is called by the DOS 3.1+ kernel
closes all FCBs opened by process
this is only called if the process being terminated isn't self-
parented and the termination is no TSR.
parented and the termination is no TSR (INT 21/AH=31h).
called after all PHT / Job File Table entries have been closed,
and before FCB SFTs and busy SFTs are freed.
SeeAlso: INT 21/AX=5D04h

SeeAlso: AX=1122h,INT 21/AH=4Ch,INT 21/AX=5D04h
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,10 @@ Return: CF set on error
Notes: this function is called by the DOS 3.1+ kernel, but only when seeking
from the end of a file opened with sharing modes set in such a
manner that another process is able to change the size of the file
while it is already open
while it is already open. if the seek origin is the file's current
seek or the start of the file, its resulting seek can be entirely
determined by DOS's local understanding of the file (its SFT). if
the seek origin is EOF and EOF may have changed, the redirector
must be called to determine the final seek.
SeeAlso: AX=1228h,INT 21/AH=42h

Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
----------------------------------------------------------------------------
Unique ID: 2F1142
Category: N network
Flag: C callout or callback (usually hooked rather than called)
----------------------------------------------------------------------------

INT 2F C - NETWORK REDIRECTOR - dosemu2 - 64-bit SEEK (obsolete)
AX = 1142h
DS:DX -> 64-bit seek buffer (in destination offset, out result seek)
CL = origin of move
00h start of file
01h current file position
02h end of file
ES:DI -> SFT
Return: CF set on error
AX = DOS error code (see #01680 at INT 21/AH=59h/BX=0000h)
CF clear if successful
buffer updated with new 64-bit file position
Notes: called by fdpp or lDOS SEEKEXT to service 64-bit seeking from
INT 21/AX=7142h on a redirector SFT
historical, now function number AX=11C2h is used
SeeAlso: INT 21/AH=42h,INT 21/AX=7142h,AX=11C2h
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
----------------------------------------------------------------------------
Unique ID: 2F11A3
Category: N network
Flag: C callout or callback (usually hooked rather than called)
----------------------------------------------------------------------------

INT 2F C - NETWORK REDIRECTOR - dosemu2 - GET LARGE DISK SPACE
AX = 11A3h
ES:DI -> CDS
Return: CF set on error
AX = DOS error code (see #01680 at INT 21/AH=59h/BX=0000h)
CF clear if successful
SI = block size (currently always 512)
AX:BX = number of blocks on disk, clamped to all-1s
CX:DX = number of blocks free, clamped to all-1s
Notes: called by fdpp to service INT 21/AX=7303h on a redirector drive
SeeAlso: INT 21/AX=7303h
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
----------------------------------------------------------------------------
Unique ID: 2F11A6
Category: N network
Flag: C callout or callback (usually hooked rather than called)
----------------------------------------------------------------------------

INT 2F C - NETWORK REDIRECTOR - dosemu2 - GET LARGE FILE INFO
AX = 11A6h
DS:DX -> buffer for result (see #01784)
ES:DI -> SFT
Return: CF set on error
AX = DOS error code (see #01680 at INT 21/AH=59h/BX=0000h)
CF clear if successful
buffer written
Notes: called by fdpp or lDOS SEEKEXT to service INT 21/AX=71A6h on a
redirector SFT
SeeAlso: INT 21/AX=71A6h
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
----------------------------------------------------------------------------
Unique ID: 2F11C2
Category: N network
Flag: C callout or callback (usually hooked rather than called)
----------------------------------------------------------------------------

INT 2F C - NETWORK REDIRECTOR - dosemu2 - 64-bit SEEK
AX = 11C2h
DS:DX -> 64-bit seek buffer (in destination offset, out result seek)
CL = origin of move
00h start of file
01h current file position
02h end of file
ES:DI -> SFT
Return: CF set on error
AX = DOS error code (see #01680 at INT 21/AH=59h/BX=0000h)
CF clear if successful
buffer updated with new 64-bit file position
Notes: called by fdpp or lDOS SEEKEXT to service 64-bit seeking from
INT 21/AX=7142h on a redirector SFT
previously used function number AX=1142h
SeeAlso: INT 21/AH=42h,INT 21/AX=7142h,AX=1142h