Chuck Guzis declared on Wednesday 07 December 2005 20:26:
keeping things like the DAA instruction intact
and supporting a bunch
of do-nothing instructions like MOV DL,DL.
FYI, that most certainly doesn't just "do nothing." It updates the flags
based on the contents of the DL register, and you could do a conditional
jump based on the results.
Consider on Windows XP that you can still run the
following code:
mov cl,9
mov dx,offset HWMes
call 5
mov cl,0
call 5
Huh? Do you mean this?
MOV AH, 9
MOV DX, HWMes
INT 21h
MOV AH, 0
INT 21h
No, he meant what he wrote. It's the CP/M compatibility layer built into
MS-DOS. Address 5 of the PSP (Program Segment Prefix) contains a long jump
to MS-DOS, and uses CL for the function code instead of AH.
-spc (@#$@#!# thought I forgot my MS-DOS arcana ... )