Contents | < Browse | Browse >
NAME
	PACK -- Pack binary coded decimal	(68020+)

SYNOPSIS
	PACK	-(Ax),-(Ay),#<adjustment>
	PACK	Dx,Dy,#<adjustment>

        Size = (Byte, Long)

FUNCTION
	Convert byte-per-digit unpacked BCD to packed two-digit-
	per-byte BCD.
	When operand is in a data register, 16 bits adjustment is added
	to source operand (16 bits). Then, bits 8 to 11 and 0 to 3 are
	packed and placed in the bits 0 to 7 of destination register.
	Others bits of this register are not altered.

	When operand is in memory, there's a research by pre-decrementing
	of the two bytes placed at given address. The two bytes are
	linked together, then adjustment is added, and the compacted result
	is stored at destination's place.

FORMAT
	-----------------------------------------------------------------
	|15 |14 |13 |12 |11 |10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
	|---|---|---|---|-----------|---|---|---|---|---|---|-----------|
	| 1 | 0 | 0 | 0 |   Dy/Ay   | 1 | 0 | 1 | 0 | 0 |R/M|   Dx/Ax   |
	|---------------------------------------------------------------|
	|                    16 BITS ADJUSTMENT                         |
	-----------------------------------------------------------------

	R/M = 0 -> Direct addressing by data register.
	R/M = 1 -> Addressing by pre-decrementing.
	Register Dy/Ay specifies destination register.
	Register Dx/Ax specifies source register.
	"16 BITS ADJUSTMENT" is an immediate value added to source operand.

RESULT
	None.

SEE ALSO
	UNPK