Legacy apps in Windows/OS X was Re: Old MS-DOS & Win Software

Chuck Guzis cclist at sydex.com
Thu Dec 8 16:33:54 CST 2005


On 12/8/2005 at 5:14 PM Allison wrote:

>8080/8085 have a flag that is set when ther eis a carry from the low 4 
>bits to the upper as part of the DAA (Decimal Adjust Accumulator).  Not
>only is it mostly undocumented therre are a bunch of instructions like
>Jumps that work with it also undocumented.   While I've never deleved 
>deeper than I had to with 8086/88 I'd bet it exits there and and with 
>a few more permutations added. It's not unique to Intel!

It's still there--and is one of the reasons this little tibit still works
to convert a 4-bit binary value to ASCII hex:
       
        and   al,15
        add   al,90h
        daa
        adc   al,40h
        daa

Of course, on the '86 it's probably faster to just translate the thing
(XLAT) or even use an indexed move--and rather than use a shift and mask to
separate the two hex nibbles, one could use an AAM with a 10H in the second
byte of the opcode instead of the default 0AH.  But on the 8080, a cute
trick saved a bunch of code because indexing wasn't easy.

BTW, where was the first place this little trick was employed?  I think I
can remember seeing it in the Intel MDS monitor code.

Cheers,
Chuck




More information about the cctalk mailing list