NEC V30MZ flags: Difference between revisions

From WSdev Wiki
Jump to navigationJump to search
(add remaining anchors)
No edit summary
 
Line 26: Line 26:


{{Anchor|CF}}
{{Anchor|CF}}
=== Carry ===
=== CF - Carry ===


Stores the carry/borrow state of the last arithmetic operation, or the bit shifted to it for shift/rotate operations.
Stores the carry/borrow state of the last arithmetic operation, or the bit shifted to it for shift/rotate operations.


{{Anchor|PF}}
{{Anchor|PF}}
=== Parity ===
=== PF - Parity ===


Set to <tt>1</tt> if, after arithmetic and logical operations, the lower 8 bits of the result are even.
Set to <tt>1</tt> if, after arithmetic and logical operations, the lower 8 bits of the result are even.


{{Anchor|AF}}
{{Anchor|AF}}
=== Auxillary Carry ===
=== AF - Auxillary Carry ===


Stores the carry state from the lower 4-bit nibble (bits 0-3) to the higher 4-bit nibble (bits 4-7), or the borrow state from the higher nibble to the lower nibble.
Stores the carry state from the lower 4-bit nibble (bits 0-3) to the higher 4-bit nibble (bits 4-7), or the borrow state from the higher nibble to the lower nibble.


{{Anchor|ZF}}
{{Anchor|ZF}}
=== Zero ===
=== ZF - Zero ===


Set to <tt>1</tt> if, after arithmetic and logical operations, the result is equal to zero.
Set to <tt>1</tt> if, after arithmetic and logical operations, the result is equal to zero.


{{Anchor|SF}}
{{Anchor|SF}}
=== Sign ===
=== SF - Sign ===


Set to <tt>1</tt> if, after arithmetic and logical operations, the highest bit of the result is set.
Set to <tt>1</tt> if, after arithmetic and logical operations, the highest bit of the result is set.


{{Anchor|OF}}
{{Anchor|OF}}
=== Overflow ===
=== OF - Overflow ===


Set to <tt>1</tt> if an overflow occured as part of the arithmetic operation.
Set to <tt>1</tt> if an overflow occured as part of the arithmetic operation.
Line 60: Line 60:


{{Anchor|TF}}
{{Anchor|TF}}
=== Single step ===
=== TF - Single step ===


If set to <tt>1</tt>, after every instruction, a software interrupt (vector 1) is generated.
If set to <tt>1</tt>, after every instruction, a software interrupt (vector 1) is generated.
Line 67: Line 67:


{{Anchor|IF}}
{{Anchor|IF}}
=== Interrupt enable ===
=== IF - Interrupt enable ===


If set to <tt>1</tt>, enables maskable interrupt handling via the interrupt vector table; cleared to <tt>0</tt> as part of interrupt handling and restored by the <tt>IRET</tt> opcode.
If set to <tt>1</tt>, enables maskable interrupt handling via the interrupt vector table; cleared to <tt>0</tt> as part of interrupt handling and restored by the <tt>IRET</tt> opcode.


{{Anchor|DF}}
{{Anchor|DF}}
=== Direction ===
=== DF - Direction ===


If set to <tt>1</tt>, string instructions decrement pointers as part of their operation; if set to <tt>0</tt>, the pointers are to be incremented.
If set to <tt>1</tt>, string instructions decrement pointers as part of their operation; if set to <tt>0</tt>, the pointers are to be incremented.


{{Anchor|MD}}
{{Anchor|MD}}
=== Mode ===
=== MD - Mode ===


This flag does nothing on the NEC V30MZ. It was used to implement 8080 emulation mode in other V20/V30-family chips, but this functionality has been removed in the V30MZ.
This flag does nothing on the NEC V30MZ. It was used to implement 8080 emulation mode in other V20/V30-family chips, but this functionality has been removed in the V30MZ.

Latest revision as of 11:04, 28 December 2024

NEC V30MZ flags

Layout

The V30MZ processor features a 16-bit flag register:

15  bit  8  7  bit  0
 ---- ----  ---- ----
 m111 odit  sz0a 0p1c
 |    ||||  || |  | |
 |    ||||  || |  | +- Carry (CFCY)
 |    ||||  || |  +--- Parity (PFP)
 |    ||||  || +------ Auxillary Carry (AFAC)
 |    ||||  |+-------- Zero (ZFZ)
 |    ||||  +--------- Sign (SFS)
 |    |||+------------ Single StepBreak (TFBRK)
 |    ||+------------- Interrupt Enable (IFIE)
 |    |+-------------- Direction (DFDIR)
 |    +--------------- Overflow (OFV)
 +-------------------- Mode (MD)

Status flags

The following flags are typically modified by instructions:

CF - Carry

Stores the carry/borrow state of the last arithmetic operation, or the bit shifted to it for shift/rotate operations.

PF - Parity

Set to 1 if, after arithmetic and logical operations, the lower 8 bits of the result are even.

AF - Auxillary Carry

Stores the carry state from the lower 4-bit nibble (bits 0-3) to the higher 4-bit nibble (bits 4-7), or the borrow state from the higher nibble to the lower nibble.

ZF - Zero

Set to 1 if, after arithmetic and logical operations, the result is equal to zero.

SF - Sign

Set to 1 if, after arithmetic and logical operations, the highest bit of the result is set.

OF - Overflow

Set to 1 if an overflow occured as part of the arithmetic operation.

Control flags

The following flags are typically modified by the developer:

TF - Single step

If set to 1, after every instruction, a software interrupt (vector 1) is generated.

Alternatively referred to as the trap flag.

IF - Interrupt enable

If set to 1, enables maskable interrupt handling via the interrupt vector table; cleared to 0 as part of interrupt handling and restored by the IRET opcode.

DF - Direction

If set to 1, string instructions decrement pointers as part of their operation; if set to 0, the pointers are to be incremented.

MD - Mode

This flag does nothing on the NEC V30MZ. It was used to implement 8080 emulation mode in other V20/V30-family chips, but this functionality has been removed in the V30MZ.