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? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
; 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