On 4/22/24 09:54, Lamar Owen via cctalk wrote:
> On 4/22/24 12:18, Chuck Guzis via cctalk wrote:
>> I don't know if this applies to the Z80, but on the 8080, 16-bit
>> increment/decrement is handled by a separate increment block (also used
>> to advance the P-counter and stack operations).  Probably one of the
>> reasons that INX/DCX doesn't set any flags.
> 16-bit INC and DEC are indeed handled by a separate block, which also
> gets used to increment PC and decrement SP at the appropriate times. 
> Ken's page on the 4-bit ALU has a 'mapped' dieshot showing it. Ken
> covers it operation in the blog article
> https://www.righto.com/2013/11/the-z-80s-16-bit-incrementdecrement.html

Interesting document. Ken also documents the K and V flags in the 8085.
I was aware of the use of the K flag with the 16-bit INX/DCX operations
as an over/underflow indicator for 16-bit inc-decrements.  He also
points out that it comes into play with the usual  8-bit ALU operations.

https://www.righto.com/2013/02/looking-at-silicon-to-understanding.html

One question that I've long had is if the K flag is set in case of a
"wraparound" situation with the PC or stack pointer.  I have never
checked that (and 8085 programming is in my dimming past), but I suspect
that it does indeed get set, since the "wrap" of those registers would
be pretty uncommon in normal-functioning code.

Managing underflow with a 16-bit decrement is certainly useful and can
cut out a few instructions to test that situation.  However, the K flag
being restricted to the 8085 pretty much limits its use when viewed in
the universe of other x80 CPUs.

Somewhat akin to the packed BCD string instructions on the NEC V-series
CPUs.  Useful?  You bet--but not implemented on any of the strict Intel
hardware so left to molder away in a dusty corner.

--Chuck

Reply via email to