The following are the register values at DOS .COM file startup in the given DOS brands and versions. If you use a different DOS version, any brand, that is not listed here, please run the given program below and email your findings to fys [at] fysnet [the dot thing] net. Thank you.
- All values assume regular execution from the command line with no command line parameters.
- An entry with xxxxh denotes that part of the hex value is undefined (different each time).
- Items with an * in the last column denote that I verified this.
- - All others are from visitors to the page. Thank you.
- Items with an ** denote that it seems to be the same, but don't count on it for sure.
- Please note that the SP value will vary depending on what is pushed before the pusha instruction.
Many thanks goes to Wildman and Daniel Hamilton for many of the versions below.
Brand/Version |
AX |
BX |
CX |
DX |
SI |
DI |
BP |
SP |
Flags |
* |
MS DOS 1.25 (OEM ?) |
0000h |
CS |
02CFh |
03F6h |
0F2Bh |
0FC9h |
00C6h |
xxxx |
0282h |
|
Toshiba MS DOS 2.11 /R2A20US |
0000h |
0000h |
00FFh |
CS |
0100h |
0100h |
4322h |
FFFEh |
0746h |
|
MS DOS 3.20, 3.30, & 3.30a |
0000h |
0000h |
00FFh |
CS |
0100h |
FFFEh |
0882h |
FFFEh |
xx02h |
|
MS DOS 4.00, 4.01, & 4.01a |
0000h |
0000h |
00FFh |
CS |
0100h |
FFFEh |
091Ch** |
FFFEh |
? |
|
MS DOS 5.0a |
0000h |
0000h |
00FFh |
CS |
0100h |
FFFEh |
091Ch** |
FFFEh |
7202h |
* |
MS DOS 6.00 |
0000h |
0000h |
00FFh |
CS |
0100h |
FFFEh |
09xxh |
FFFCh |
xx02h |
|
MS DOS 6.22 |
0000h |
0000h |
00FFh |
CS |
0100h |
FFFEh |
09xxh |
FFFEh |
xx02h |
|
MS DOS 7.10 |
0000h |
0000h |
00FFh |
CS |
0100h |
FFFEh |
09xxh |
FFFCh |
7286h |
|
MS Windows 95a & OSR2.1 |
0000h |
0000h |
00FFh |
CS |
0100h |
FFFEh |
091Ch** |
FFFEh |
? |
* |
MS Windows 95b & 95c |
0000h |
0000h |
00FFh |
CS |
0100h |
FFFEh |
0912h** |
FFFEh |
? |
* |
MS Windows 98 |
0000h |
0000h |
00FFh |
CS |
0100h |
FFFEh |
0912h** |
FFFEh |
? |
|
MS Windows 98 (DOS license only) |
0000h |
0000h |
00FFh |
CS |
0100h |
FFFEh |
0912h** |
FFFEh |
7246h |
* |
MS Windows 98SE |
0000h |
0000h |
00FFh |
CS |
0100h |
FFFEh |
0912h** |
FFFEh |
3202h |
* |
MS Windows 98SE (Boot to DOS) |
0000h |
0000h |
00FFh |
CS |
0100h |
FFFEh |
0912h** |
FFFEh |
7202h |
* |
MS Windows ME |
0000h |
0000h |
00FFh |
CS |
0100h |
FFFEh |
0912h** |
FFFEh |
? |
|
MS Windows NT 4 |
0000h |
0000h |
00FFh |
CS |
0100h |
FFFEh |
09xxh |
FFFEh |
? |
|
MS Windows 2000 Pro |
0000h |
0000h |
00FFh |
CS |
0100h |
FFFEh |
09xxh |
FFFEh |
? |
* |
MS Windows XP Home |
0000h |
0000h |
00FFh |
CS |
0100h |
FFFEh |
09xxh |
FFFEh |
3202h |
* |
MS Windows XP Pro |
0000h |
0000h |
00FFh |
CS |
0100h |
FFFEh |
09xxh |
FFFEh |
3202h |
* |
MS Windows Server 2000 |
0000h |
0000h |
00FFh |
CS |
0100h |
FFFEh |
09xxh |
FFFEh |
3202h |
|
MS Windows Server 2003 |
0000h |
0000h |
00FFh |
CS |
0100h |
FFFEh |
09xxh |
FFFEh |
7202h |
|
MS Windows NT4 Server |
0000h |
0000h |
00FFh |
CS |
0100h |
FFFEh |
09xxh |
FFFEh |
3202h |
|
IBM DOS 1.10 (1981-2) |
0000h |
0307h |
02C1h |
03EEh |
0F1Bh |
0FB9h |
00BFh |
FFFDh |
? |
* |
IBM DOS 3.30 (1987) |
0000h |
0000h |
00FFh |
CS |
0100h |
FFFEh |
0882h |
FFFEh |
? |
|
IBM PC DOS 1.00 |
0000h |
CS |
02B1h |
03FBh |
08CEh |
0960h |
0200h |
FFEBh |
? |
|
IBM PC DOS 1.10 |
0000h |
CS |
02C1h |
03EEh |
0F1Bh |
0FB9h |
00BFh |
FFEDh |
? |
|
IBM PC DOS 2.00 & 2.10 |
0000h |
0000h |
00FFh |
CS |
0100h |
0100h |
0000h |
FFEEh |
? |
|
IBM PC DOS 3.00 |
0000h |
0000h |
00FFh |
CS |
0100h |
0100h |
0081h |
FFEEh |
? |
|
IBM PC DOS 3.10, 3.20, & 3.30 |
0000h |
0000h |
00FFh |
CS |
0100h |
FFFEh |
0882h |
FFEEh |
? |
|
IBM PC DOS 4.00 & 4.01 |
0000h |
0000h |
00FFh |
CS |
0100h |
FFFEh |
091Ch |
FFFEh |
? |
|
IBM PC DOS 5.00, 5.00.1a, & 5.02 |
0000h |
0000h |
00FFh |
CS |
0100h |
FFFEh |
091Ch |
FFFEh |
? |
|
IBM PC DOS 6.10 & 6.30 |
0000h |
0000h |
00FFh |
CS |
0100h |
FFFEh |
091Ch |
FFFEh |
? |
|
IBM PC DOS 7.00 & 7.00r1 (PC-DOS 2000) |
0000h |
0000h |
00FFh |
CS |
0100h |
FFFEh |
091Ch |
FFFEh |
? |
|
PC-MOS/386 1.02, 3.00, 5.01 |
0000h |
0000h |
00A5h |
0000h |
xxxxh |
0000h |
0000h |
FFEEh |
? |
|
DR DOS 1.0 |
? |
? |
? |
? |
? |
? |
? |
? |
? |
|
DR DOS Plus 1.20 |
0000h |
0000h |
0000h |
0000h |
0000h |
0000h |
0000h |
FFECh |
? |
|
DR Concurrent DOS 386 2.00 |
0000h |
0000h |
0000h |
0000h |
0000h |
0000h |
0000h |
FFFEh |
? |
|
DR Concurrent DOS XM 6.00 and 6.21 |
0000h |
0000h |
0000h |
0000h |
0000h |
0000h |
0000h |
FFFCh |
7202h |
|
DR DOS 3.40 & 3.41 |
0000h |
0000h |
0000h |
0000h |
0000h |
0000h |
0882h |
FFFEh |
? |
|
DR DOS 5.00 & 5.10 |
0000h |
0000h |
0000h |
0000h |
0000h |
0000h |
0882h |
FFFEh |
? |
|
DR DOS 6.00 |
0000h |
0000h |
0000h |
0000h |
0000h |
0000h |
0882h |
FFFEh |
? |
|
DR DOS 6.22 |
? |
? |
? |
? |
? |
? |
? |
? |
? |
|
DR DOS 7.00 |
0000h |
0000h |
CS |
CS |
0100h |
FFFEh |
0D7Ah |
FFFEh |
? |
|
DR DOS 7.01 (Open Source) |
0000h |
0000h |
CS |
CS |
0100h |
FFFEh |
0D8Ch |
FFFEh |
? |
|
DR DOS 7.02 |
0000h |
0000h |
CS |
CS |
0100h |
FFFEh |
17DAh |
FFFEh |
? |
|
DR DOS 7.03 |
0000h |
0000h |
CS |
CS |
0100h |
FFFEh |
17D6 |
FFFEh |
? |
|
DR DOS 8.00 |
0000h |
0000h |
CS |
CS |
0100h |
FFFEh |
17DAh |
FFFCh |
3246h |
|
DR DOS 8.10 |
0000h |
0000h |
CS |
CS |
0100h |
FFFEh |
0D7Ch |
FFFCh |
3246h |
|
DR Multiuser DOS Gold 7.22 |
0000h |
0000h |
0000h |
0000h |
0000h |
0000h |
0882h |
FFFEh |
? |
|
Datalight ROM DOS 7.1 r2 |
0000h |
0000h |
0000h |
0000h |
0000h |
0000h |
0000h |
FFFEh |
? |
* |
FDOS 6.22 |
0000h |
0000h |
00FFh |
CS |
0100h |
FFFCh |
0000h |
FFFCh |
? |
|
FreeDOS Alpha 5 & Beta 1-6 |
FFFFh |
0000h |
0000h |
0000h |
0000h |
0000h |
0000h |
FFFEh |
? |
|
FreeDOS Beta 7 & 8 |
0000h |
0000h |
0000h |
0000h |
0000h |
0000h |
0000h |
FFFEh |
? |
|
FreeDOS Beta 8 & 9 rev 5 (Kernel 1.1.35) |
0000h |
0000h |
00FFh |
CS |
0100h |
FFFEh |
091Eh |
FFFCh |
3202h |
|
FreeDOS 1.00 and 1.10 |
0000h |
0000h |
00FFh |
CS |
0100h |
FFFEh |
091Eh |
FFFCh |
0202h |
|
IMS Multiuser DOS 7.10 |
0000h |
0000h |
0000h |
0000h |
0000h |
0000h |
0882h |
FFFEh |
? |
|
MoeDOS Beta 1 |
FFFFh |
0000h |
0000h |
0000h |
0000h |
0000h |
0000h |
FFFEh |
? |
|
PTSDOS 6.70, 7.00 beta, 2000, & 2000 Pro |
0000h |
0000h |
xxxxh |
CS |
0100h |
FFFCh |
0000h |
FFFCh |
? |
|
Real32 7.92a |
0000h |
0000h |
0000h |
0000h |
0000h |
0000h |
0882h |
FFFEh |
? |
|
RxDOS 7.1.5 & 7.2 beta |
0000h |
0000h |
00A5h |
0000h |
0000h |
0000h |
0882h |
FFFEh |
? |
|
Wendin-DOS 2.11 |
0000h |
0000h |
0000h |
D304h |
0000h |
0000h |
0882h |
FFFCh |
? |
|
Any other brand? |
? |
? |
? |
? |
? |
? |
? |
? |
? |
|
Use the following code to display the above registers:
(Or get the .COM file from here).
; Assembled with NBASM
.model tiny
.code
.186
org 100h
; push all registers
pushf ; flags
pusha ; (ax,cx,dx,bx,sp,bp,si,di)
push cs ; CS so I can verify DX
mov di,offset buff ;
mov si,offset msg1 ;
mov cx,10 ; 10 registers to print
Loop1: movsw ; "print" register name
mov al,'=' ; and =
stosb ;
pop ax ; get next register value to print
mov bx,04 ; "print" 4 hex digits
PLoop: rol ax,04 ;
push ax ;
and al,0Fh ;
daa ;
add al,0F0h ;
adc al,40h ;
stosb ;
pop ax ;
dec bx ;
jnz short PLoop ;
mov ax,0D0Ah ; "print" CRLF
stosw ;
loop Loop1 ; do CX times
; if your current DOS version does not support this function,
; please change to print a valid string given in 'buff'
mov al,24h ; place eol marker
stosb ;
mov dx,offset buff ; print the buffer
mov ah,09 ;
int 21h ;
; if your current DOS version does not support this function,
; please change to exit to DOS
mov ah,4Ch ;
int 21h
msg1 db 'CSDISIBPSPBXDXCXAXFL'
buff dup 100,?
.end