<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://emuverse.ru/w/index.php?action=history&amp;feed=atom&amp;title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5%3AZilog_Z80%2F%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%2FDAA</id>
	<title>Обсуждение:Zilog Z80/Система команд/DAA - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://emuverse.ru/w/index.php?action=history&amp;feed=atom&amp;title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5%3AZilog_Z80%2F%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%2FDAA"/>
	<link rel="alternate" type="text/html" href="https://emuverse.ru/w/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5:Zilog_Z80/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4/DAA&amp;action=history"/>
	<updated>2026-05-06T10:14:50Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.40.0</generator>
	<entry>
		<id>https://emuverse.ru/w/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5:Zilog_Z80/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4/DAA&amp;diff=834&amp;oldid=prev</id>
		<title>Panther: Новая: http://pudsoft.com/model2/libs/libz80/z80.c &lt;source lang=&quot;c&quot;&gt; /* The DAA opcode  * According to the value in A and the flags set, add a value to A  *  * Flags set   Byte (0..9)(0..9)   *...</title>
		<link rel="alternate" type="text/html" href="https://emuverse.ru/w/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5:Zilog_Z80/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4/DAA&amp;diff=834&amp;oldid=prev"/>
		<updated>2008-02-19T12:48:37Z</updated>

		<summary type="html">&lt;p&gt;Новая: http://pudsoft.com/model2/libs/libz80/z80.c &amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt; /* The DAA opcode  * According to the value in A and the flags set, add a value to A  *  * Flags set   Byte (0..9)(0..9)   *...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;http://pudsoft.com/model2/libs/libz80/z80.c&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
/* The DAA opcode&lt;br /&gt;
 * According to the value in A and the flags set, add a value to A&lt;br /&gt;
 *&lt;br /&gt;
 * Flags set   Byte (0..9)(0..9) &lt;br /&gt;
 * -------------------------------------------- &lt;br /&gt;
 * (None)   + &amp;amp;00 &lt;br /&gt;
 * Carry:+ &amp;amp;60 &lt;br /&gt;
 * Subtract:+ &amp;amp;00 &lt;br /&gt;
 * Subtract+Carry:+ &amp;amp;A0 &lt;br /&gt;
 * Half-carry:+ &amp;amp;06 &lt;br /&gt;
 * Half-carry+Carry:+ &amp;amp;66 &lt;br /&gt;
 * Half-carry+Subtract:+ &amp;amp;FA &lt;br /&gt;
 * Half-carry+Subtract+Carry:+ &amp;amp;9A &lt;br /&gt;
 * &lt;br /&gt;
 * Flags set   Byte (0..9)(A..F) &lt;br /&gt;
 * -------------------------------------------- &lt;br /&gt;
 * (None)   + &amp;amp;06 &lt;br /&gt;
 * Carry:+ &amp;amp;66 &lt;br /&gt;
 * Subtract:+ &amp;amp;00 &lt;br /&gt;
 * Subtract+Carry:+ &amp;amp;a0 &lt;br /&gt;
 * Half-carry:+ &amp;amp;06 &lt;br /&gt;
 * Half-carry+Carry:+ &amp;amp;66 &lt;br /&gt;
 * Half-carry+Subtract:+ &amp;amp;fa &lt;br /&gt;
 * Half-carry+Subtract+Carry:+ &amp;amp;9A &lt;br /&gt;
 * &lt;br /&gt;
 * Flags set   Byte (A..F)(0..9) &lt;br /&gt;
 * -------------------------------------------- &lt;br /&gt;
 * (None)   + &amp;amp;60 &lt;br /&gt;
 * Carry:+ &amp;amp;60 &lt;br /&gt;
 * Subtract:+ &amp;amp;00 &lt;br /&gt;
 * Subtract+Carry:+ &amp;amp;A0 &lt;br /&gt;
 * Half-carry:+ &amp;amp;66 &lt;br /&gt;
 * Half-carry+Carry:+ &amp;amp;66 &lt;br /&gt;
 * Half-carry+Subtract:+ &amp;amp;fa &lt;br /&gt;
 * Half-carry+Subtract+Carry:+ &amp;amp;9A &lt;br /&gt;
 * &lt;br /&gt;
 * Flags set   Byte (A..F)(A..F) &lt;br /&gt;
 * -------------------------------------------- &lt;br /&gt;
 * (None)   + &amp;amp;66 &lt;br /&gt;
 * Carry:+ &amp;amp;66 &lt;br /&gt;
 * Subtract:+ &amp;amp;00 &lt;br /&gt;
 * Subtract+Carry:+ &amp;amp;a0 &lt;br /&gt;
 * Half-carry:+ &amp;amp;66 &lt;br /&gt;
 * Half-carry+Carry:+ &amp;amp;66 &lt;br /&gt;
 * Half-carry+Subtract:+ &amp;amp;fa &lt;br /&gt;
 * Half-carry+Subtract+Carry:+ &amp;amp;9A &lt;br /&gt;
 */	&lt;br /&gt;
&lt;br /&gt;
static int DAA_BYTETYPE[16] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1 };&lt;br /&gt;
&lt;br /&gt;
static byte DAA_ADJUSTMENT[4][8] = { &lt;br /&gt;
	{ 0x00, 0x60, 0x00, 0xA0, 0x06, 0x66, 0xFA, 0x9A }, &lt;br /&gt;
	{ 0x06, 0x66, 0x00, 0xA0, 0x06, 0x66, 0xFA, 0x9A },&lt;br /&gt;
	{ 0x60, 0x60, 0x00, 0xA0, 0x66, 0x66, 0xFA, 0x9A },&lt;br /&gt;
	{ 0x66, 0x66, 0x00, 0xA0, 0x66, 0x66, 0xFA, 0x9A } };&lt;br /&gt;
		&lt;br /&gt;
static void doDAA (Z80Context *ctx)&lt;br /&gt;
{&lt;br /&gt;
	/* (0..9)(0..9) = 0 */&lt;br /&gt;
	/* (0..9)(A..F) = 1 */&lt;br /&gt;
	/* (A..F)(0..9) = 2 */&lt;br /&gt;
	/* (A..F)(A..F) = 3 */&lt;br /&gt;
	int byteType = DAA_BYTETYPE[BR.A] | ((DAA_BYTETYPE[BR.A &amp;gt;&amp;gt; 4]) &amp;lt;&amp;lt; 1);	&lt;br /&gt;
	&lt;br /&gt;
	int flagMask = 0;&lt;br /&gt;
	if (GETFLAG(F_C))&lt;br /&gt;
		flagMask |= 1;&lt;br /&gt;
	if (GETFLAG(F_S))&lt;br /&gt;
		flagMask |= 2;&lt;br /&gt;
	if (GETFLAG(F_H))&lt;br /&gt;
		flagMask |= 4;&lt;br /&gt;
	&lt;br /&gt;
	BR.A += DAA_ADJUSTMENT[byteType][flagMask];&lt;br /&gt;
	&lt;br /&gt;
	adjustFlags(ctx, BR.A);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Panther</name></author>
	</entry>
</feed>