zex

package
v0.10.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 22, 2024 License: MIT Imports: 2 Imported by: 0

Documentation

Overview

Package zex provides test cases of Z80 Exerciser.

http://mdfs.net/Software/Z80/Exerciser/

Index

Constants

View Source
const Msbt = 0x0103

Msbt means machine state before test.

View Source
const MsbtHi = (Msbt >> 8) & 0xff

MsbtHi has high 8 bits of Msbt.

View Source
const MsbtLo = Msbt & 0xff

MsbtLo has low 8 bits of Msbt.

Variables

View Source
var AllADC16 = Case{
	0xff,
	Status{
		0xed, 0x42, 0x00, 0x00, 0x832c, 0x4f88, 0xf22b,
		0xb339, 0x7e1f, 0x1563, 0xd3, 0x89, 0x465e,
	},
	Status{
		0x00, 0x38, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0xf821, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0xffff, 0xffff, 0xffff, 0xd7, 0x00, 0xffff,
	},
	CRC32(0xd48ad519),
	"<adc,sbc> hl,<bc,de,hl,sp>",
}

AllADC16 - <adc,sbc> hl,<bc,de,hl,sp> (38,912 cycles)

View Source
var AllADD16 = Case{
	0xff,
	Status{
		0x09, 0x00, 0x00, 0x00, 0xc4a5, 0xc4c7, 0xd226,
		0xa050, 0x58ea, 0x8566, 0xc6, 0xde, 0x9bc9,
	},
	Status{
		0x30, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0xf821, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0xffff, 0xffff, 0xffff, 0xd7, 0x00, 0xffff,
	},
	CRC32(0xd9a4ca05),
	"add hl,<bc,de,hl,sp>",
}

AllADD16 - add hl,<bc,de,hl,sp> (19,456 cycles)

View Source
var AllADD16X = Case{
	0xff,
	Status{
		0xdd, 0x09, 0x00, 0x00, 0xddac, 0xc294, 0x635b,
		0x33d3, 0x6a76, 0xfa20, 0x94, 0x68, 0x36f5,
	},
	Status{
		0x00, 0x30, 0x00, 0x00, 0x0000, 0x0000, 0xf821,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0xffff,
		0x0000, 0xffff, 0xffff, 0xd7, 0x00, 0xffff,
	},
	CRC32(0xb1df8ec0),
	"add ix,<bc,de,ix,sp>",
}

AllADD16X - add ix,<bc,de,ix,sp> (19,456 cycles)

View Source
var AllADD16Y = Case{
	0xff,
	Status{
		0xfd, 0x09, 0x00, 0x00, 0xc7c2, 0xf407, 0x51c1,
		0x3e96, 0x0bf4, 0x510f, 0x92, 0x1e, 0x71ea,
	},
	Status{
		0x00, 0x30, 0x00, 0x00, 0x0000, 0xf821, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0xffff, 0x0000,
		0x0000, 0xffff, 0xffff, 0xd7, 0x00, 0xffff,
	},
	CRC32(0x39c8589b),
	"add iy,<bc,de,iy,sp>",
}

AllADD16Y - add iy,<bc,de,iy,sp> (19,456 cycles)

View Source
var AllALU8I = Case{
	0xff,
	Status{
		0xc6, 0x00, 0x00, 0x00, 0x9140, 0x7e3c, 0x7a67,
		0xdf6d, 0x5b61, 0x0b29, 0x10, 0x66, 0x85b2,
	},
	Status{
		0x38, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0xff, 0x0000,
	},
	Status{
		0x00, 0xff, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0xd7, 0x00, 0x0000,
	},
	CRC32(0x51c19c2e),
	"aluop a,nn",
}

AllALU8I - aluop a,nn (28,672 cycles)

View Source
var AllALU8R = Case{
	0xff,
	Status{
		0x80, 0x00, 0x00, 0x00, 0xc53e, 0x573a, 0x4c4d,
		Msbt, 0xe309, 0xa666, 0xd0, 0x3b, 0xadbb,
	},
	Status{
		0x3f, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0xff, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x00ff, 0x0000, 0x0000,
		0x0000, 0xffff, 0xffff, 0xd7, 0x00, 0x0000,
	},
	CRC32(0x06c7aa8e),
	"aluop a,<b,c,d,e,h,l,(hl),a>",
}

AllALU8R - aluop a,<b,c,d,e,h,l,(hl),a> (753,664 cycles)

View Source
var AllALU8RX = Case{
	0xff,
	Status{
		0xdd, 0x84, 0x00, 0x00, 0xd6f7, 0xc76e, 0xaccf,
		0x2847, 0x22dd, 0xc035, 0xc5, 0x38, 0x234b,
	},
	Status{
		0x20, 0x39, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0xff, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x00ff, 0x0000, 0x0000,
		0x0000, 0xffff, 0xffff, 0xd7, 0x00, 0x0000,
	},
	CRC32(0xa886cc44),
	"aluop a,<ixh,ixl,iyh,iyl>",
}

AllALU8RX - aluop a,<ixh,ixl,iyh,iyl> (376,832 cycles)

View Source
var AllALU8X = Case{
	0xff,
	Status{
		0xdd, 0x86, 0x01, 0x00, 0x90b7, Msbt - 1, Msbt - 1,
		0x32fd, 0x406e, 0xc1dc, 0x45, 0x6e, 0xe5fa,
	},
	Status{
		0x20, 0x38, 0x00, 0x00, 0x0000, 0x0001, 0x0001,
		0x0000, 0x0000, 0x0000, 0x00, 0xff, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x00ff, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0xd7, 0x00, 0x0000,
	},
	CRC32(0xd3f2d74a),
	"aluop a,(<ix,iy>+1)",
}

AllALU8X - aluop a,(<ix,iy>+1) (229,376 cycles)

View Source
var AllBITX = Case{
	0xff,
	Status{
		0xdd, 0xcb, 0x01, 0x46, 0x2075, Msbt - 1, Msbt - 1,
		0x3cfc, 0xa79a, 0x3d74, 0x51, 0x27, 0xca14,
	},
	Status{
		0x20, 0x00, 0x00, 0x38, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x53, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x00ff, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	CRC32(0x83534ee1),
	"bit n,(<ix,iy>+1)",
}

AllBITX - bit n,(<ix,iy>+1) (2048 cycles)

View Source
var AllBITZ80 = Case{
	0xff,
	Status{
		0xcb, 0x40, 0x00, 0x00, 0x3ef1, 0x9dfc, 0x7acc,
		Msbt, 0xbe61, 0x7a86, 0x50, 0x24, 0x1998,
	},
	Status{
		0x00, 0x3f, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x53, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x00ff, 0x0000, 0x0000,
		0x0000, 0xffff, 0xffff, 0x00, 0xff, 0x0000,
	},
	CRC32(0x5e020e98),
	"bit n,<b,c,d,e,h,l,(hl),a>",
}

AllBITZ80 - bit n,<b,c,d,e,h,l,(hl),a> (49,152 cycles)

View Source
var AllCPD1 = Case{
	0xff,
	Status{
		0xed, 0xa9, 0x00, 0x00, 0xc7b6, 0x72b4, 0x18f6,
		Msbt + 17, 0x8dbd, 0x0001, 0xc0, 0x30, 0x94a3,
	},
	Status{
		0x00, 0x10, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x000a, 0x00, 0xff, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0xd7, 0x00, 0x0000,
	},
	CRC32(0x134b622d),
	"cpd<r>",
}

AllCPD1 - cpd<r> (1) (6144 cycles)

View Source
var AllCPI1 = Case{
	0xff,
	Status{
		0xed, 0xa1, 0x00, 0x00, 0x4d48, 0xaf4a, 0x906b,
		Msbt, 0x4e71, 0x0001, 0x93, 0x6a, 0x907c,
	},
	Status{
		0x00, 0x10, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x000a, 0x00, 0xff, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0xd7, 0x00, 0x0000,
	},
	CRC32(0x2da42d19),
	"cpi<r>",
}

AllCPI1 - cpi<r> (1) (6144 cycles)

AllCases has all test cases in zexdoc.asm

View Source
var AllDAAOP = Case{
	0xff,
	Status{
		0x27, 0x00, 0x00, 0x00, 0x2141, 0x09fa, 0x1d60,
		0xa559, 0x8d5b, 0x9079, 0x04, 0x8e, 0x299d,
	},
	Status{
		0x18, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0xd7, 0xff, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	CRC32(0x6d2dd213),
	"<daa,cpl,scf,ccf>",
}

AllDAAOP - <daa,cpl,scf,ccf> (65,536 cycles)

View Source
var AllINCA = Case{
	0xff,
	Status{
		0x3c, 0x00, 0x00, 0x00, 0x4adf, 0xd5d8, 0xe598,
		0x8a2b, 0xa7b0, 0x431b, 0x44, 0x5a, 0xd030,
	},
	Status{
		0x01, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0xff, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0xd7, 0x00, 0x0000,
	},
	CRC32(0x81fa8100),
	"<inc,dec> a",
}

AllINCA - <inc,dec> a (3072 cycles)

View Source
var AllINCB = Case{
	0xff,
	Status{
		0x04, 0x00, 0x00, 0x00, 0xd623, 0x432d, 0x7a61,
		0x8180, 0x5a86, 0x1e85, 0x86, 0x58, 0x9bbb,
	},
	Status{
		0x01, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0xff00, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0xd7, 0x00, 0x0000,
	},
	CRC32(0x77f35a73),
	"<inc,dec> b",
}

AllINCB - <inc,dec> b (3072 cycles)

View Source
var AllINCBC = Case{
	0xff,
	Status{
		0x03, 0x00, 0x00, 0x00, 0xcd97, 0x44ab, 0x8dc9,
		0xe3e3, 0x11cc, 0xe8a4, 0x02, 0x49, 0x2a4d,
	},
	Status{
		0x08, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0xf821, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0xd7, 0x00, 0x0000,
	},
	CRC32(0xd2ae3bec),
	"<inc,dec> bc",
}

AllINCBC - <inc,dec> bc (1536 cycles)

View Source
var AllINCC = Case{
	0xff,
	Status{
		0x0c, 0x00, 0x00, 0x00, 0xd789, 0x0935, 0x055b,
		0x9f85, 0x8b27, 0xd208, 0x95, 0x05, 0x0660,
	},
	Status{
		0x01, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x00ff, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0xd7, 0x00, 0x0000,
	},
	CRC32(0x1af612a7),
	"<inc,dec> c",
}

AllINCC - <inc,dec> c (3072 cycles)

View Source
var AllINCD = Case{
	0xff,
	Status{
		0x14, 0x00, 0x00, 0x00, 0xa0ea, 0x5fba, 0x65fb,
		0x981c, 0x38cc, 0xdebc, 0x43, 0x5c, 0x03bd,
	},
	Status{
		0x01, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0xff00, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0xd7, 0x00, 0x0000,
	},
	CRC32(0xd146bf51),
	"<inc,dec> d",
}

AllINCD - <inc,dec> d (3072 cycles)

View Source
var AllINCDE = Case{
	0xff,
	Status{
		0x13, 0x00, 0x00, 0x00, 0x342e, 0x131d, 0x28c9,
		0x0aca, 0x9967, 0x3a2e, 0x92, 0xf6, 0x9d54,
	},
	Status{
		0x08, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0xf821, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0xd7, 0x00, 0x0000,
	},
	CRC32(0xaec6d42c),
	"<inc,dec> de",
}

AllINCDE - <inc,dec> de (1536 cycles)

View Source
var AllINCE = Case{
	0xff,
	Status{
		0x1c, 0x00, 0x00, 0x00, 0x602f, 0x4c0d, 0x2402,
		0xe2f5, 0xa0f4, 0xa10a, 0x13, 0x32, 0x5925,
	},
	Status{
		0x01, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x00ff, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0xd7, 0x00, 0x0000,
	},
	CRC32(0xca8c6ac2),
	"<inc,dec> e",
}

AllINCE - <inc,dec> e (3072 cycles)

View Source
var AllINCH = Case{
	0xff,
	Status{
		0x24, 0x00, 0x00, 0x00, 0x1506, 0xf2eb, 0xe8dd,
		0x262b, 0x11a6, 0xbc1a, 0x17, 0x06, 0x2818,
	},
	Status{
		0x01, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0xff00, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0xd7, 0x00, 0x0000,
	},
	CRC32(0x560f955e),
	"<inc,dec> h",
}

AllINCH - <inc,dec> h (3072 cycles)

View Source
var AllINCHL = Case{
	0xff,
	Status{
		0x23, 0x00, 0x00, 0x00, 0xc3f4, 0x07a5, 0x1b6d,
		0x4f04, 0xe2c2, 0x822a, 0x57, 0xe0, 0xc3e1,
	},
	Status{
		0x08, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0xf821, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0xd7, 0x00, 0x0000,
	},
	CRC32(0xfc0d6d4a),
	"<inc,dec> hl",
}

AllINCHL - <inc,dec> hl (1536 cycles)

View Source
var AllINCIX = Case{
	0xff,
	Status{
		0xdd, 0x23, 0x00, 0x00, 0xbc3c, 0x0d9b, 0xe081,
		0xadfd, 0x9a7f, 0x96e5, 0x13, 0x85, 0x0be2,
	},
	Status{
		0x00, 0x08, 0x00, 0x00, 0x0000, 0x0000, 0xf821,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0xd7, 0x00, 0x0000,
	},
	CRC32(0xa54dbe31),
	"<inc,dec> ix",
}

AllINCIX - <inc,dec> ix (1536 cycles)

View Source
var AllINCIY = Case{
	0xff,
	Status{
		0xfd, 0x23, 0x00, 0x00, 0x9402, 0x637a, 0x3182,
		0xc65a, 0xb2e9, 0xabb4, 0x16, 0xf2, 0x6d05,
	},
	Status{
		0x00, 0x08, 0x00, 0x00, 0x0000, 0xf821, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0xd7, 0x00, 0x0000,
	},
	CRC32(0x505d51a3),
	"<inc,dec> iy",
}

AllINCIY - <inc,dec> iy (1536 cycles)

View Source
var AllINCL = Case{
	0xff,
	Status{
		0x2c, 0x00, 0x00, 0x00, 0x8031, 0xa520, 0x4356,
		0xb409, 0xf4c1, 0xdfa2, 0xd1, 0x3c, 0x3ea2,
	},
	Status{
		0x01, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x00ff, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0xd7, 0x00, 0x0000,
	},
	CRC32(0xa0a1b49f),
	"<inc,dec> l",
}

AllINCL - <inc,dec> l (3072 cycles)

View Source
var AllINCM = Case{
	0xff,
	Status{
		0x34, 0x00, 0x00, 0x00, 0xb856, 0x0c7c, 0xe53e,
		Msbt, 0x877e, 0xda58, 0x15, 0x5c, 0x1f37,
	},
	Status{
		0x01, 0x00, 0x00, 0x00, 0x00ff, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0xd7, 0x00, 0x0000,
	},
	CRC32(0x28295ece),
	"<inc,dec> (hl)",
}

AllINCM - <inc,dec> (hl) (3072 cycles)

View Source
var AllINCSP = Case{
	0xff,
	Status{
		0x33, 0x00, 0x00, 0x00, 0x346f, 0xd482, 0xd169,
		0xdeb6, 0xa494, 0xf476, 0x53, 0x02, 0x855b,
	},
	Status{
		0x08, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0xf821,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0xd7, 0x00, 0x0000,
	},
	CRC32(0x5dacd527),
	"<inc,dec> sp",
}

AllINCSP - <inc,dec> sp (1536 cycles)

View Source
var AllINCX = Case{
	0xff,
	Status{
		0xdd, 0x34, 0x01, 0x00, 0xfa6e, Msbt - 1, Msbt - 1,
		0x2c28, 0x8894, 0x5057, 0x16, 0x33, 0x286f,
	},
	Status{
		0x20, 0x01, 0x00, 0x00, 0x00ff, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0xd7, 0x00, 0x0000,
	},
	CRC32(0x0b95a8ea),
	"<inc,dec> (<ix,iy>+1)",
}

AllINCX - <inc,dec> (<ix,iy>+1) (6144 cycles)

View Source
var AllINCXH = Case{
	0xff,
	Status{
		0xdd, 0x24, 0x00, 0x00, 0xb838, 0x316c, 0xc6d4,
		0x3e01, 0x8358, 0x15b4, 0x81, 0xde, 0x4259,
	},
	Status{
		0x00, 0x01, 0x00, 0x00, 0x0000, 0xff00, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0xd7, 0x00, 0x0000,
	},
	CRC32(0x6f463662),
	"<inc,dec> ixh",
}

AllINCXH - <inc,dec> ixh (3072 cycles)

View Source
var AllINCXL = Case{
	0xff,
	Status{
		0xdd, 0x2c, 0x00, 0x00, 0x4d14, 0x7460, 0x76d4,
		0x06e7, 0x32a2, 0x213c, 0xd6, 0xd7, 0x99a5,
	},
	Status{
		0x00, 0x01, 0x00, 0x00, 0x0000, 0x00ff, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0xd7, 0x00, 0x0000,
	},
	CRC32(0x027bef2c),
	"<inc,dec> ixl",
}

AllINCXL - <inc,dec> ixl (3072 cycles)

View Source
var AllINCYH = Case{
	0xff,
	Status{
		0xdd, 0x24, 0x00, 0x00, 0x2836, 0x9f6f, 0x9116,
		0x61b9, 0x82cb, 0xe219, 0x92, 0x73, 0xa98c,
	},
	Status{
		0x00, 0x01, 0x00, 0x00, 0xff00, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0xd7, 0x00, 0x0000,
	},
	CRC32(0x2d966cf3),
	"<inc,dec> iyh",
}

AllINCYH - <inc,dec> iyh (3072 cycles)

View Source
var AllINCYL = Case{
	0xff,
	Status{
		0xdd, 0x2c, 0x00, 0x00, 0xd7c6, 0x62d5, 0xa09e,
		0x7039, 0x3e7e, 0x9f12, 0x90, 0xd9, 0x220f,
	},
	Status{
		0x00, 0x01, 0x00, 0x00, 0x00ff, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0xd7, 0x00, 0x0000,
	},
	CRC32(0x36c11e75),
	"<inc,dec> iyl",
}

AllINCYL - <inc,dec> iyl (3072 cycles)

View Source
var AllLD161 = Case{
	0xff,
	Status{
		0xed, 0x4b, MsbtLo, MsbtHi, 0xf9a8, 0xf559, 0x93a4,
		0xf5ed, 0x6f96, 0xd968, 0x86, 0xe6, 0x4bd8,
	},
	Status{
		0x00, 0x10, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0xffff, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	CRC32(0x4d45a9ac),
	"ld <bc,de>,(nnnn)",
}

AllLD161 - ld <bc,de>,(nnnn) (32 cycles)

View Source
var AllLD162 = Case{
	0xff,
	Status{
		0x2a, MsbtLo, MsbtHi, 0x00, 0x9863, 0x7830, 0x2077,
		0xb1fe, 0xb9fa, 0xabb8, 0x04, 0x06, 0x6015,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0xffff, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	CRC32(0x5f972487),
	"ld hl,(nnnn)",
}

AllLD162 - ld hl,(nnnn) (16 cycles)

View Source
var AllLD163 = Case{
	0xff,
	Status{
		0xed, 0x7b, MsbtLo, MsbtHi, 0x8dfc, 0x57d7, 0x2161,
		0xca18, 0xc185, 0x27da, 0x83, 0x1e, 0xf460,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0xffff, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	CRC32(0x7acea11b),
	"ld sp,(nnnn)",
}

AllLD163 - ld sp,(nnnn) (16 cycles)

View Source
var AllLD164 = Case{
	0xff,
	Status{
		0xdd, 0x2a, MsbtLo, MsbtHi, 0xded7, 0xa6fa, 0xf780,
		0x244c, 0x87de, 0xbcc2, 0x16, 0x63, 0x4c96,
	},
	Status{
		0x20, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0xffff, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	CRC32(0x858bf16d),
	"ld <ix,iy>,(nnnn)",
}

AllLD164 - ld <ix,iy>,(nnnn) (32 cycles)

View Source
var AllLD165 = Case{
	0xff,
	Status{
		0xed, 0x43, MsbtLo, MsbtHi, 0x1f98, 0x844d, 0xe8ac,
		0xc9ed, 0xc95d, 0x8f61, 0x80, 0x3f, 0xc7bf,
	},
	Status{
		0x00, 0x10, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0xffff, 0xffff, 0x00, 0x00, 0x0000,
	},
	CRC32(0x641e8715),
	"ld (nnnn),<bc,de>",
}

AllLD165 - ld (nnnn),<bc,de> (64 cycles)

View Source
var AllLD166 = Case{
	0xff,
	Status{
		0x22, MsbtLo, MsbtHi, 0x00, 0xd003, 0x7772, 0x7f53,
		0x3f72, 0x64ea, 0xe180, 0x10, 0x2d, 0x35e9,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0xffff, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	CRC32(0xa3608b47),
	"ld (nnnn),hl",
}

AllLD166 - ld (nnnn),hl (16 cycles)

View Source
var AllLD167 = Case{
	0xff,
	Status{
		0xed, 0x73, MsbtLo, MsbtHi, 0xc0dc, 0xd1d6, 0xed5a,
		0xf356, 0xafda, 0x6ca7, 0x44, 0x9f, 0x3f0a,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0xffff,
	},
	CRC32(0x16585fd7),
	"ld (nnnn),sp",
}

AllLD167 - ld (nnnn),sp (16 cycles)

View Source
var AllLD168 = Case{
	0xff,
	Status{
		0xdd, 0x22, MsbtLo, MsbtHi, 0x6cc3, 0x0d91, 0x6900,
		0x8ef8, 0xe3d6, 0xc3f7, 0xc6, 0xd9, 0xc2df,
	},
	Status{
		0x20, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0xffff, 0xffff,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	CRC32(0xba102a6b),
	"ld (nnnn),<ix,iy>",
}

AllLD168 - ld (nnnn),<ix,iy> (64 cycles)

View Source
var AllLD16IM = Case{
	0xff,
	Status{
		0x01, 0x00, 0x00, 0x00, 0x5c1c, 0x2d46, 0x8eb9,
		0x6078, 0x74b1, 0xb30e, 0x46, 0xd1, 0x30cc,
	},
	Status{
		0x30, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0xff, 0xff, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	CRC32(0xde391969),
	"ld <bc,de,hl,sp>,nnnn",
}

AllLD16IM - ld <bc,de,hl,sp>,nnnn (64 cycles)

View Source
var AllLD16IX = Case{
	0xff,
	Status{
		0xdd, 0x21, 0x00, 0x00, 0x87e8, 0x2006, 0xbd12,
		0xb69b, 0x7253, 0xa1e5, 0x51, 0x13, 0xf1bd,
	},
	Status{
		0x20, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0xff, 0xff, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	CRC32(0x227dd525),
	"ld <ix,iy>,nnnn",
}

AllLD16IX - ld <ix,iy>,nnnn (32 cycles)

View Source
var AllLD8BD = Case{
	0xff,
	Status{
		0x0a, 0x00, 0x00, 0x00, 0xb3a8, 0x1d2a, 0x7f8e,
		0x42ac, Msbt, Msbt, 0xc6, 0xb1, 0xef8e,
	},
	Status{
		0x10, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x00ff, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0xd7, 0xff, 0x0000,
	},
	CRC32(0xb0818935),
	"ld a,<(bc),(de)>",
}

AllLD8BD - ld a,<(bc),(de)> (44 cycles)

View Source
var AllLD8IM = Case{
	0xff,
	Status{
		0x06, 0x00, 0x00, 0x00, 0xc407, 0xf49d, 0xd13d,
		0x0339, 0xde89, 0x7455, 0x53, 0xc0, 0x5509,
	},
	Status{
		0x38, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0xff, 0x0000,
	},
	CRC32(0xf1dab556),
	"ld <b,c,d,e,h,l,(hl),a>,nn",
}

AllLD8IM - ld <b,c,d,e,h,l,(hl),a>,nn (64 cycles)

View Source
var AllLD8IMX = Case{
	0xff,
	Status{
		0xdd, 0x36, 0x01, 0x00, 0x1b45, Msbt - 1, Msbt - 1,
		0xd5c1, 0x61c7, 0xbdc4, 0xc0, 0x85, 0xcd16,
	},
	Status{
		0x20, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0xff, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0xff, 0x0000,
	},
	CRC32(0x26db477e),
	"ld (<ix,iy>+1),nn",
}

AllLD8IMX - ld (<ix,iy>+1),nn (32 cycles)

View Source
var AllLD8IX1 = Case{
	0xff,
	Status{
		0xdd, 0x46, 0x01, 0x00, 0xd016, Msbt - 1, Msbt - 1,
		0x4260, 0x7f39, 0x0404, 0x97, 0x4a, 0xd085,
	},
	Status{
		0x20, 0x18, 0x00, 0x00, 0x0000, 0x0001, 0x0001,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0xffff, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	CRC32(0xcc1106a8),
	"ld <b,c,d,e>,(<ix,iy>+1)",
}

AllLD8IX1 - ld <b,c,d,e>,(<ix,iy>+1) (512 cycles)

View Source
var AllLD8IX2 = Case{
	0xff,
	Status{
		0xdd, 0x66, 0x01, 0x00, 0x84e0, Msbt - 1, Msbt - 1,
		0x9c52, 0xa799, 0x49b6, 0x93, 0x00, 0xeead,
	},
	Status{
		0x20, 0x08, 0x00, 0x00, 0x0000, 0x0001, 0x0001,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0xffff, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	CRC32(0xfa2a4d03),
	"ld <h,l>,(<ix,iy>+1)",
}

AllLD8IX2 - ld <h,l>,(<ix,iy>+1) (256 cycles)

View Source
var AllLD8IX3 = Case{
	0xff,
	Status{
		0xdd, 0x7e, 0x01, 0x00, 0xd8b6, Msbt - 1, Msbt - 1,
		0xc612, 0xdf07, 0x9cd0, 0x43, 0xa6, 0xa0e5,
	},
	Status{
		0x20, 0x00, 0x00, 0x00, 0x0000, 0x0001, 0x0001,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0xffff, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	CRC32(0xa5e9ac64),
	"ld a,(<ix,iy>+1)",
}

AllLD8IX3 - ld a,(<ix,iy>+1) (128 cycles)

View Source
var AllLD8IXY = Case{
	0xff,
	Status{
		0xdd, 0x26, 0x00, 0x00, 0x3c53, 0x4640, 0xe179,
		0x7711, 0xc107, 0x1afa, 0x81, 0xad, 0x5d9b,
	},
	Status{
		0x20, 0x08, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0xff, 0x0000,
	},
	CRC32(0x24e8828b),
	"ld <ixh,ixl,iyh,iyl>,nn",
}

AllLD8IXY - ld <ixh,ixl,iyh,iyl>,nn (32 cycles)

View Source
var AllLD8RR = Case{
	0xff,
	Status{
		0x40, 0x00, 0x00, 0x00, 0x72a4, 0xa024, 0x61ac,
		Msbt, 0x82c7, 0x718f, 0x97, 0x8f, 0xef8e,
	},
	Status{
		0x3f, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x00ff, 0x0000, 0x0000,
		0x0000, 0xffff, 0xffff, 0xd7, 0xff, 0x0000,
	},
	CRC32(0x744b0118),
	"ld <bcdehla>,<bcdehla>",
}

AllLD8RR - ld <b,c,d,e,h,l,a>,<b,c,d,e,h,l,a> (3456 cycles)

View Source
var AllLD8RRX = Case{
	0xff,
	Status{
		0xdd, 0x40, 0x00, 0x00, 0xbcc5, Msbt, Msbt,
		Msbt, 0x2fc2, 0x98c0, 0x83, 0x1f, 0x3bcd,
	},
	Status{
		0x20, 0x3f, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x00ff, 0x0000, 0x0000,
		0x0000, 0xffff, 0xffff, 0xd7, 0xff, 0x0000,
	},
	CRC32(0x478ba36b),
	"ld <bcdexya>,<bcdexya>",
}

AllLD8RRX - ld <b,c,d,e,ixy,a>,<b,c,d,e,ixy,a> (6912 cycles)

View Source
var AllLDA = Case{
	0xff,
	Status{
		0x32, MsbtLo, MsbtHi, 0x00, 0xfd68, 0xf4ec, 0x44a0,
		0xb543, 0x0653, 0xcdba, 0xd2, 0x4f, 0x1fd8,
	},
	Status{
		0x08, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x00ff, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0xd7, 0xff, 0x0000,
	},
	CRC32(0xc9262de5),
	"ld a,(nnnn) / ld (nnnn),a",
}

AllLDA - ld a,(nnnn) / ld (nnnn),a (44 cycles)

View Source
var AllLDD1 = Case{
	0xff,
	Status{
		0xed, 0xa8, 0x00, 0x00, 0x9852, 0x68fa, 0x66a1,
		Msbt + 3, Msbt + 1, 0x0001, 0xc1, 0x68, 0x20b7,
	},
	Status{
		0x00, 0x10, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0xffff, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0xd7, 0x00, 0x0000,
	},
	CRC32(0x94f42769),
	"ldd<r> (1)",
}

AllLDD1 - ldd<r> (1) (44 cycles)

View Source
var AllLDD2 = Case{
	0xff,
	Status{
		0xed, 0xa8, 0x00, 0x00, 0xf12e, 0xeb2a, 0xd5ba,
		Msbt + 3, Msbt + 1, 0x0002, 0x47, 0xff, 0xfbe4,
	},
	Status{
		0x00, 0x10, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0xffff, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0xd7, 0x00, 0x0000,
	},
	CRC32(0x39dd3de1),
	"ldd<r> (2)",
}

AllLDD2 - ldd<r> (2) (44 cycles)

View Source
var AllLDI1 = Case{
	0xff,
	Status{
		0xed, 0xa0, 0x00, 0x00, 0xfe30, 0x03cd, 0x6058,
		Msbt + 2, Msbt, 0x0001, 0x04, 0x60, 0x2688,
	},
	Status{
		0x00, 0x10, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0xffff, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0xd7, 0x00, 0x0000,
	},
	CRC32(0xf782b0d1),
	"ldi<r> (1)",
}

AllLDI1 - ldi<r> (1) (44 cycles)

View Source
var AllLDI2 = Case{
	0xff,
	Status{
		0xed, 0xa0, 0x00, 0x00, 0x4ace, 0xc26e, 0xb188,
		Msbt + 2, Msbt, 0x0002, 0x14, 0x2d, 0xa39f,
	},
	Status{
		0x00, 0x10, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0xffff, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0xd7, 0x00, 0x0000,
	},
	CRC32(0xe9ead0ae),
	"ldi<r> (2)",
}

AllLDI2 - ldi<r> (2) (44 cycles)

View Source
var AllNEGOP = Case{
	0xff,
	Status{
		0xed, 0x44, 0x00, 0x00, 0x38a2, 0x5f6b, 0xd934,
		0x57e4, 0xd2d6, 0x4642, 0x43, 0x5a, 0x09cc,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0xd7, 0xff, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	CRC32(0xd638dd6a),
	"neg",
}

AllNEGOP - neg (16,384 cycles)

View Source
var AllRLDOP = Case{
	0xff,
	Status{
		0xed, 0x67, 0x00, 0x00, 0x91cb, 0xc48b, 0xfa62,
		Msbt, 0xe720, 0xb479, 0x40, 0x06, 0x8ae2,
	},
	Status{
		0x00, 0x08, 0x00, 0x00, 0x00ff, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0xd7, 0xff, 0x0000,
	},
	CRC32(0xff823e77),
	"<rrd,rld>",
}

AllRLDOP - <rld,rrd> (7168 cycles)

View Source
var AllROT8080 = Case{
	0xff,
	Status{
		0x07, 0x00, 0x00, 0x00, 0xcb92, 0x6d43, 0x0a90,
		0xc284, 0x0c53, 0xf50e, 0x91, 0xeb, 0x40fc,
	},
	Status{
		0x18, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0xff, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0xd7, 0x00, 0x0000,
	},
	CRC32(0x9ba3807c),
	"<rlca,rrca,rla,rra>",
}

AllROT8080 - <rlca,rrca,rla,rra> (6144 cycles)

View Source
var AllROTXY = Case{
	0xff,
	Status{
		0xdd, 0xcb, 0x01, 0x06, 0xddaf, Msbt - 1, Msbt - 1,
		0xff3c, 0xdbf6, 0x94f4, 0x82, 0x80, 0x61d9,
	},
	Status{
		0x20, 0x00, 0x00, 0x38, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x80, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x00ff, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x57, 0x00, 0x0000,
	},
	CRC32(0x710034cb),
	"shf/rot (<ix,iy>+1)",
}

AllROTXY - shift/rotate (<ix,iy>+1) (416 cycles)

View Source
var AllROTZ80 = Case{
	0xff,
	Status{
		0xcb, 0x00, 0x00, 0x00, 0xcceb, 0x5d4a, 0xe007,
		Msbt, 0x1395, 0x30ee, 0x43, 0x78, 0x3dad,
	},
	Status{
		0x00, 0x3f, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x80, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x00ff, 0x0000, 0x0000,
		0x0000, 0xffff, 0xffff, 0x57, 0xff, 0x0000,
	},
	CRC32(0xa4255833),
	"shf/rot <b,c,d,e,h,l,(hl),a>",
}

AllROTZ80 - shift/rotate <b,c,d,e,h,l,(hl),a> (6784 cycles)

View Source
var AllSRZ80 = Case{
	0xff,
	Status{
		0xcb, 0x80, 0x00, 0x00, 0x2cd5, 0x97ab, 0x39ff,
		Msbt, 0xd14b, 0x6ab2, 0x53, 0x27, 0xb538,
	},
	Status{
		0x00, 0x7f, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x00ff, 0x0000, 0x0000,
		0x0000, 0xffff, 0xffff, 0xd7, 0xff, 0x0000,
	},
	CRC32(0x8b57f008),
	"<set,res> n,<bcdehl(hl)a>",
}

AllSRZ80 - <set,res> n,<b,c,d,e,h,l,(hl),a> (7936 cycles)

View Source
var AllSRZX = Case{
	0xff,
	Status{
		0xdd, 0xcb, 0x01, 0x86, 0xfb44, Msbt - 1, Msbt - 1,
		0xba09, 0x68be, 0x32d8, 0x10, 0x5e, 0xa867,
	},
	Status{
		0x20, 0x00, 0x00, 0x78, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x00ff, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0xd7, 0x00, 0x0000,
	},
	CRC32(0xcc63f98a),
	"<set,res> n,(<ix,iy>+1)",
}

AllSRZX - <set,res> n,(<ix,iy>+1) (1792 cycles)

View Source
var AllST8IX1 = Case{
	0xff,
	Status{
		0xdd, 0x70, 0x01, 0x00, 0x270d, Msbt - 1, Msbt - 1,
		0xb73a, 0x887b, 0x99ee, 0x86, 0x70, 0xca07,
	},
	Status{
		0x20, 0x03, 0x00, 0x00, 0x0000, 0x0001, 0x0001,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0xffff, 0xffff, 0x00, 0x00, 0x0000,
	},
	CRC32(0x04626abf),
	"ld (<ix,iy>+1),<b,c,d,e>",
}

AllST8IX1 - ld (<ix,iy>+1),<b,c,d,e> (1024 cycles)

View Source
var AllST8IX2 = Case{
	0xff,
	Status{
		0xdd, 0x74, 0x01, 0x00, 0xb664, Msbt - 1, Msbt - 1,
		0xe8ac, 0xb5f5, 0xaafe, 0x12, 0x10, 0x9566,
	},
	Status{
		0x20, 0x01, 0x00, 0x00, 0x0000, 0x0001, 0x0001,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0xffff, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	CRC32(0x6a1a8831),
	"ld (<ix,iy>+1),<h,l>",
}

AllST8IX2 - ld (<ix,iy>+1),<h,l> (256 cycles)

View Source
var AllST8IX3 = Case{
	0xff,
	Status{
		0xdd, 0x77, 0x01, 0x00, 0x67af, Msbt - 1, Msbt - 1,
		0x4f13, 0x0644, 0xbcd7, 0x50, 0xac, 0x5faf,
	},
	Status{
		0x20, 0x00, 0x00, 0x00, 0x0000, 0x0001, 0x0001,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0xff, 0x0000,
	},
	CRC32(0xccbe5a96),
	"ld (<ix,iy>+1),a",
}

AllST8IX3 - ld (<ix,iy>+1),a (64 cycles)

View Source
var AllSTABD = Case{
	0xff,
	Status{
		0x02, 0x00, 0x00, 0x00, 0x0c3b, 0xb592, 0x6cff,
		0x959e, Msbt, Msbt + 1, 0xc1, 0x21, 0xbde7,
	},
	Status{
		0x18, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0xffff, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0xff, 0x0000,
	},
	CRC32(0x7a4c114f),
	"ld (<bc,de>),a",
}

AllSTABD - ld (<bc,de>),a (96 cycles)

View Source
var DocADC16 = Case{
	0xc7,
	Status{
		0xed, 0x42, 0x00, 0x00, 0x832c, 0x4f88, 0xf22b,
		0xb339, 0x7e1f, 0x1563, 0xd3, 0x89, 0x465e,
	},
	Status{
		0x00, 0x38, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0xf821, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0xffff, 0xffff, 0xffff, 0xd7, 0x00, 0xffff,
	},
	CRC32(0xf8b4eaa9),
	"<adc,sbc> hl,<bc,de,hl,sp>",
}

DocADC16 - <adc,sbc> hl,<bc,de,hl,sp> (38,912 cycles)

View Source
var DocADD16 = Case{
	0xc7,
	Status{
		0x09, 0x00, 0x00, 0x00, 0xc4a5, 0xc4c7, 0xd226,
		0xa050, 0x58ea, 0x8566, 0xc6, 0xde, 0x9bc9,
	},
	Status{
		0x30, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0xf821, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0xffff, 0xffff, 0xffff, 0xd7, 0x00, 0xffff,
	},
	CRC32(0x89fdb635),
	"add hl,<bc,de,hl,sp>",
}

DocADD16 - add hl,<bc,de,hl,sp> (19,456 cycles)

View Source
var DocADD16X = Case{
	0xc7,
	Status{
		0xdd, 0x09, 0x00, 0x00, 0xddac, 0xc294, 0x635b,
		0x33d3, 0x6a76, 0xfa20, 0x94, 0x68, 0x36f5,
	},
	Status{
		0x00, 0x30, 0x00, 0x00, 0x0000, 0x0000, 0xf821,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0xffff,
		0x0000, 0xffff, 0xffff, 0xd7, 0x00, 0xffff,
	},
	CRC32(0xc133790b),
	"add ix,<bc,de,ix,sp>",
}

DocADD16X - add ix,<bc,de,ix,sp> (19,456 cycles)

View Source
var DocADD16Y = Case{
	0xc7,
	Status{
		0xfd, 0x09, 0x00, 0x00, 0xc7c2, 0xf407, 0x51c1,
		0x3e96, 0x0bf4, 0x510f, 0x92, 0x1e, 0x71ea,
	},
	Status{
		0x00, 0x30, 0x00, 0x00, 0x0000, 0xf821, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0xffff, 0x0000,
		0x0000, 0xffff, 0xffff, 0xd7, 0x00, 0xffff,
	},
	CRC32(0xe8817b9e),
	"add iy,<bc,de,iy,sp>",
}

DocADD16Y - add iy,<bc,de,iy,sp> (19,456 cycles)

View Source
var DocALU8I = Case{
	0xd7,
	Status{
		0xc6, 0x00, 0x00, 0x00, 0x9140, 0x7e3c, 0x7a67,
		0xdf6d, 0x5b61, 0x0b29, 0x10, 0x66, 0x85b2,
	},
	Status{
		0x38, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0xff, 0x0000,
	},
	Status{
		0x00, 0xff, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0xd7, 0x00, 0x0000,
	},
	CRC32(0x48799360),
	"aluop a,nn",
}

DocALU8I - aluop a,nn (28,672 cycles)

View Source
var DocALU8R = Case{
	0xd7,
	Status{
		0x80, 0x00, 0x00, 0x00, 0xc53e, 0x573a, 0x4c4d,
		Msbt, 0xe309, 0xa666, 0xd0, 0x3b, 0xadbb,
	},
	Status{
		0x3f, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0xff, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x00ff, 0x0000, 0x0000,
		0x0000, 0xffff, 0xffff, 0xd7, 0x00, 0x0000,
	},
	CRC32(0xfe43b016),
	"aluop a,<b,c,d,e,h,l,(hl),a>",
}

DocALU8R - aluop a,<b,c,d,e,h,l,(hl),a> (753,664 cycles)

View Source
var DocALU8RX = Case{
	0xd7,
	Status{
		0xdd, 0x84, 0x00, 0x00, 0xd6f7, 0xc76e, 0xaccf,
		0x2847, 0x22dd, 0xc035, 0xc5, 0x38, 0x234b,
	},
	Status{
		0x20, 0x39, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0xff, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x00ff, 0x0000, 0x0000,
		0x0000, 0xffff, 0xffff, 0xd7, 0x00, 0x0000,
	},
	CRC32(0xa4026d5a),
	"aluop a,<ixh,ixl,iyh,iyl>",
}

DocALU8RX - aluop a,<ixh,ixl,iyh,iyl> (376,832 cycles)

View Source
var DocALU8X = Case{
	0xd7,
	Status{
		0xdd, 0x86, 0x01, 0x00, 0x90b7, Msbt - 1, Msbt - 1,
		0x32fd, 0x406e, 0xc1dc, 0x45, 0x6e, 0xe5fa,
	},
	Status{
		0x20, 0x38, 0x00, 0x00, 0x0000, 0x0001, 0x0001,
		0x0000, 0x0000, 0x0000, 0x00, 0xff, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x00ff, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0xd7, 0x00, 0x0000,
	},
	CRC32(0xe849676e),
	"aluop a,(<ix,iy>+1)",
}

DocALU8X - aluop a,(<ix,iy>+1) (229,376 cycles)

View Source
var DocBITX = Case{
	0x53,
	Status{
		0xdd, 0xcb, 0x01, 0x46, 0x2075, Msbt - 1, Msbt - 1,
		0x3cfc, 0xa79a, 0x3d74, 0x51, 0x27, 0xca14,
	},
	Status{
		0x20, 0x00, 0x00, 0x38, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x53, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x00ff, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	CRC32(0xa8ee0867),
	"bit n,(<ix,iy>+1)",
}

DocBITX - bit n,(<ix,iy>+1) (2048 cycles)

View Source
var DocBITZ80 = Case{
	0x53,
	Status{
		0xcb, 0x40, 0x00, 0x00, 0x3ef1, 0x9dfc, 0x7acc,
		Msbt, 0xbe61, 0x7a86, 0x50, 0x24, 0x1998,
	},
	Status{
		0x00, 0x3f, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x53, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x00ff, 0x0000, 0x0000,
		0x0000, 0xffff, 0xffff, 0x00, 0xff, 0x0000,
	},
	CRC32(0x7b55e6c8),
	"bit n,<b,c,d,e,h,l,(hl),a>",
}

DocBITZ80 - bit n,<b,c,d,e,h,l,(hl),a> (49,152 cycles)

View Source
var DocCPD1 = Case{
	0xd7,
	Status{
		0xed, 0xa9, 0x00, 0x00, 0xc7b6, 0x72b4, 0x18f6,
		Msbt + 17, 0x8dbd, 0x0001, 0xc0, 0x30, 0x94a3,
	},
	Status{
		0x00, 0x10, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x000a, 0x00, 0xff, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0xd7, 0x00, 0x0000,
	},
	CRC32(0xa87e6cfa),
	"cpd<r>",
}

DocCPD1 - cpd<r> (1) (6144 cycles)

View Source
var DocCPI1 = Case{
	0xd7,
	Status{
		0xed, 0xa1, 0x00, 0x00, 0x4d48, 0xaf4a, 0x906b,
		Msbt, 0x4e71, 0x0001, 0x93, 0x6a, 0x907c,
	},
	Status{
		0x00, 0x10, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x000a, 0x00, 0xff, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0xd7, 0x00, 0x0000,
	},
	CRC32(0x06deb356),
	"cpi<r>",
}

DocCPI1 - cpi<r> (1) (6144 cycles)

DocCases has all test cases in zexdoc.asm

View Source
var DocDAAOP = Case{
	0xd7,
	Status{
		0x27, 0x00, 0x00, 0x00, 0x2141, 0x09fa, 0x1d60,
		0xa559, 0x8d5b, 0x9079, 0x04, 0x8e, 0x299d,
	},
	Status{
		0x18, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0xd7, 0xff, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	CRC32(0x9b4ba675),
	"<daa,cpl,scf,ccf>",
}

DocDAAOP - <daa,cpl,scf,ccf> (65,536 cycles)

View Source
var DocINCA = Case{
	0xd7,
	Status{
		0x3c, 0x00, 0x00, 0x00, 0x4adf, 0xd5d8, 0xe598,
		0x8a2b, 0xa7b0, 0x431b, 0x44, 0x5a, 0xd030,
	},
	Status{
		0x01, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0xff, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0xd7, 0x00, 0x0000,
	},
	CRC32(0xd18815a4),
	"<inc,dec> a",
}

DocINCA - <inc,dec> a (3072 cycles)

View Source
var DocINCB = Case{
	0xd7,
	Status{
		0x04, 0x00, 0x00, 0x00, 0xd623, 0x432d, 0x7a61,
		0x8180, 0x5a86, 0x1e85, 0x86, 0x58, 0x9bbb,
	},
	Status{
		0x01, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0xff00, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0xd7, 0x00, 0x0000,
	},
	CRC32(0x5f682264),
	"<inc,dec> b",
}

DocINCB - <inc,dec> b (3072 cycles)

View Source
var DocINCBC = Case{
	0xd7,
	Status{
		0x03, 0x00, 0x00, 0x00, 0xcd97, 0x44ab, 0x8dc9,
		0xe3e3, 0x11cc, 0xe8a4, 0x02, 0x49, 0x2a4d,
	},
	Status{
		0x08, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0xf821, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0xd7, 0x00, 0x0000,
	},
	CRC32(0xd2ae3bec),
	"<inc,dec> bc",
}

DocINCBC - <inc,dec> bc (1536 cycles)

View Source
var DocINCC = Case{
	0xd7,
	Status{
		0x0c, 0x00, 0x00, 0x00, 0xd789, 0x0935, 0x055b,
		0x9f85, 0x8b27, 0xd208, 0x95, 0x05, 0x0660,
	},
	Status{
		0x01, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x00ff, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0xd7, 0x00, 0x0000,
	},
	CRC32(0xc284554c),
	"<inc,dec> c",
}

DocINCC - <inc,dec> c (3072 cycles)

View Source
var DocINCD = Case{
	0xd7,
	Status{
		0x14, 0x00, 0x00, 0x00, 0xa0ea, 0x5fba, 0x65fb,
		0x981c, 0x38cc, 0xdebc, 0x43, 0x5c, 0x03bd,
	},
	Status{
		0x01, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0xff00, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0xd7, 0x00, 0x0000,
	},
	CRC32(0x4523de10),
	"<inc,dec> d",
}

DocINCD - <inc,dec> d (3072 cycles)

View Source
var DocINCDE = Case{
	0xd7,
	Status{
		0x13, 0x00, 0x00, 0x00, 0x342e, 0x131d, 0x28c9,
		0x0aca, 0x9967, 0x3a2e, 0x92, 0xf6, 0x9d54,
	},
	Status{
		0x08, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0xf821, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0xd7, 0x00, 0x0000,
	},
	CRC32(0xaec6d42c),
	"<inc,dec> de",
}

DocINCDE - <inc,dec> de (1536 cycles)

View Source
var DocINCE = Case{
	0xd7,
	Status{
		0x1c, 0x00, 0x00, 0x00, 0x602f, 0x4c0d, 0x2402,
		0xe2f5, 0xa0f4, 0xa10a, 0x13, 0x32, 0x5925,
	},
	Status{
		0x01, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x00ff, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0xd7, 0x00, 0x0000,
	},
	CRC32(0xe175afcc),
	"<inc,dec> e",
}

DocINCE - <inc,dec> e (3072 cycles)

View Source
var DocINCH = Case{
	0xd7,
	Status{
		0x24, 0x00, 0x00, 0x00, 0x1506, 0xf2eb, 0xe8dd,
		0x262b, 0x11a6, 0xbc1a, 0x17, 0x06, 0x2818,
	},
	Status{
		0x01, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0xff00, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0xd7, 0x00, 0x0000,
	},
	CRC32(0x1ced847d),
	"<inc,dec> h",
}

DocINCH - <inc,dec> h (3072 cycles)

View Source
var DocINCHL = Case{
	0xd7,
	Status{
		0x23, 0x00, 0x00, 0x00, 0xc3f4, 0x07a5, 0x1b6d,
		0x4f04, 0xe2c2, 0x822a, 0x57, 0xe0, 0xc3e1,
	},
	Status{
		0x08, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0xf821, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0xd7, 0x00, 0x0000,
	},
	CRC32(0xfc0d6d4a),
	"<inc,dec> hl",
}

DocINCHL - <inc,dec> hl (1536 cycles)

View Source
var DocINCIX = Case{
	0xd7,
	Status{
		0xdd, 0x23, 0x00, 0x00, 0xbc3c, 0x0d9b, 0xe081,
		0xadfd, 0x9a7f, 0x96e5, 0x13, 0x85, 0x0be2,
	},
	Status{
		0x00, 0x08, 0x00, 0x00, 0x0000, 0x0000, 0xf821,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0xd7, 0x00, 0x0000,
	},
	CRC32(0xa54dbe31),
	"<inc,dec> ix",
}

DocINCIX - <inc,dec> ix (1536 cycles)

View Source
var DocINCIY = Case{
	0xd7,
	Status{
		0xfd, 0x23, 0x00, 0x00, 0x9402, 0x637a, 0x3182,
		0xc65a, 0xb2e9, 0xabb4, 0x16, 0xf2, 0x6d05,
	},
	Status{
		0x00, 0x08, 0x00, 0x00, 0x0000, 0xf821, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0xd7, 0x00, 0x0000,
	},
	CRC32(0x505d51a3),
	"<inc,dec> iy",
}

DocINCIY - <inc,dec> iy (1536 cycles)

View Source
var DocINCL = Case{
	0xd7,
	Status{
		0x2c, 0x00, 0x00, 0x00, 0x8031, 0xa520, 0x4356,
		0xb409, 0xf4c1, 0xdfa2, 0xd1, 0x3c, 0x3ea2,
	},
	Status{
		0x01, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x00ff, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0xd7, 0x00, 0x0000,
	},
	CRC32(0x56cd06f3),
	"<inc,dec> l",
}

DocINCL - <inc,dec> l (3072 cycles)

View Source
var DocINCM = Case{
	0xd7,
	Status{
		0x34, 0x00, 0x00, 0x00, 0xb856, 0x0c7c, 0xe53e,
		Msbt, 0x877e, 0xda58, 0x15, 0x5c, 0x1f37,
	},
	Status{
		0x01, 0x00, 0x00, 0x00, 0x00ff, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0xd7, 0x00, 0x0000,
	},
	CRC32(0xb83adcef),
	"<inc,dec> (hl)",
}

DocINCM - <inc,dec> (hl) (3072 cycles)

View Source
var DocINCSP = Case{
	0xd7,
	Status{
		0x33, 0x00, 0x00, 0x00, 0x346f, 0xd482, 0xd169,
		0xdeb6, 0xa494, 0xf476, 0x53, 0x02, 0x855b,
	},
	Status{
		0x08, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0xf821,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0xd7, 0x00, 0x0000,
	},
	CRC32(0x5dacd527),
	"<inc,dec> sp",
}

DocINCSP - <inc,dec> sp (1536 cycles)

View Source
var DocINCX = Case{
	0xd7,
	Status{
		0xdd, 0x34, 0x01, 0x00, 0xfa6e, Msbt - 1, Msbt - 1,
		0x2c28, 0x8894, 0x5057, 0x16, 0x33, 0x286f,
	},
	Status{
		0x20, 0x01, 0x00, 0x00, 0x00ff, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0xd7, 0x00, 0x0000,
	},
	CRC32(0x20581470),
	"<inc,dec> (<ix,iy>+1)",
}

DocINCX - <inc,dec> (<ix,iy>+1) (6144 cycles)

View Source
var DocINCXH = Case{
	0xd7,
	Status{
		0xdd, 0x24, 0x00, 0x00, 0xb838, 0x316c, 0xc6d4,
		0x3e01, 0x8358, 0x15b4, 0x81, 0xde, 0x4259,
	},
	Status{
		0x00, 0x01, 0x00, 0x00, 0x0000, 0xff00, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0xd7, 0x00, 0x0000,
	},
	CRC32(0x6f463662),
	"<inc,dec> ixh",
}

DocINCXH - <inc,dec> ixh (3072 cycles)

View Source
var DocINCXL = Case{
	0xd7,
	Status{
		0xdd, 0x2c, 0x00, 0x00, 0x4d14, 0x7460, 0x76d4,
		0x06e7, 0x32a2, 0x213c, 0xd6, 0xd7, 0x99a5,
	},
	Status{
		0x00, 0x01, 0x00, 0x00, 0x0000, 0x00ff, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0xd7, 0x00, 0x0000,
	},
	CRC32(0x027bef2c),
	"<inc,dec> ixl",
}

DocINCXL - <inc,dec> ixl (3072 cycles)

View Source
var DocINCYH = Case{
	0xd7,
	Status{
		0xdd, 0x24, 0x00, 0x00, 0x2836, 0x9f6f, 0x9116,
		0x61b9, 0x82cb, 0xe219, 0x92, 0x73, 0xa98c,
	},
	Status{
		0x00, 0x01, 0x00, 0x00, 0xff00, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0xd7, 0x00, 0x0000,
	},
	CRC32(0x2d966cf3),
	"<inc,dec> iyh",
}

DocINCYH - <inc,dec> iyh (3072 cycles)

View Source
var DocINCYL = Case{
	0xd7,
	Status{
		0xdd, 0x2c, 0x00, 0x00, 0xd7c6, 0x62d5, 0xa09e,
		0x7039, 0x3e7e, 0x9f12, 0x90, 0xd9, 0x220f,
	},
	Status{
		0x00, 0x01, 0x00, 0x00, 0x00ff, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0xd7, 0x00, 0x0000,
	},
	CRC32(0xfbcbba95),
	"<inc,dec> iyl",
}

DocINCYL - <inc,dec> iyl (3072 cycles)

View Source
var DocLD161 = Case{
	0xd7,
	Status{
		0xed, 0x4b, MsbtLo, MsbtHi, 0xf9a8, 0xf559, 0x93a4,
		0xf5ed, 0x6f96, 0xd968, 0x86, 0xe6, 0x4bd8,
	},
	Status{
		0x00, 0x10, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0xffff, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	CRC32(0x4d45a9ac),
	"ld <bc,de>,(nnnn)",
}

DocLD161 - ld <bc,de>,(nnnn) (32 cycles)

View Source
var DocLD162 = Case{
	0xd7,
	Status{
		0x2a, MsbtLo, MsbtHi, 0x00, 0x9863, 0x7830, 0x2077,
		0xb1fe, 0xb9fa, 0xabb8, 0x04, 0x06, 0x6015,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0xffff, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	CRC32(0x5f972487),
	"ld hl,(nnnn)",
}

DocLD162 - ld hl,(nnnn) (16 cycles)

View Source
var DocLD163 = Case{
	0xd7,
	Status{
		0xed, 0x7b, MsbtLo, MsbtHi, 0x8dfc, 0x57d7, 0x2161,
		0xca18, 0xc185, 0x27da, 0x83, 0x1e, 0xf460,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0xffff, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	CRC32(0x7acea11b),
	"ld sp,(nnnn)",
}

DocLD163 - ld sp,(nnnn) (16 cycles)

View Source
var DocLD164 = Case{
	0xd7,
	Status{
		0xdd, 0x2a, MsbtLo, MsbtHi, 0xded7, 0xa6fa, 0xf780,
		0x244c, 0x87de, 0xbcc2, 0x16, 0x63, 0x4c96,
	},
	Status{
		0x20, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0xffff, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	CRC32(0x858bf16d),
	"ld <ix,iy>,(nnnn)",
}

DocLD164 - ld <ix,iy>,(nnnn) (32 cycles)

View Source
var DocLD165 = Case{
	0xd7,
	Status{
		0xed, 0x43, MsbtLo, MsbtHi, 0x1f98, 0x844d, 0xe8ac,
		0xc9ed, 0xc95d, 0x8f61, 0x80, 0x3f, 0xc7bf,
	},
	Status{
		0x00, 0x10, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0xffff, 0xffff, 0x00, 0x00, 0x0000,
	},
	CRC32(0x641e8715),
	"ld (nnnn),<bc,de>",
}

DocLD165 - ld (nnnn),<bc,de> (64 cycles)

View Source
var DocLD166 = Case{
	0xd7,
	Status{
		0x22, MsbtLo, MsbtHi, 0x00, 0xd003, 0x7772, 0x7f53,
		0x3f72, 0x64ea, 0xe180, 0x10, 0x2d, 0x35e9,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0xffff, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	CRC32(0xa3608b47),
	"ld (nnnn),hl",
}

DocLD166 - ld (nnnn),hl (16 cycles)

View Source
var DocLD167 = Case{
	0xd7,
	Status{
		0xed, 0x73, MsbtLo, MsbtHi, 0xc0dc, 0xd1d6, 0xed5a,
		0xf356, 0xafda, 0x6ca7, 0x44, 0x9f, 0x3f0a,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0xffff,
	},
	CRC32(0x16585fd7),
	"ld (nnnn),sp",
}

DocLD167 - ld (nnnn),sp (16 cycles)

View Source
var DocLD168 = Case{
	0xd7,
	Status{
		0xdd, 0x22, MsbtLo, MsbtHi, 0x6cc3, 0x0d91, 0x6900,
		0x8ef8, 0xe3d6, 0xc3f7, 0xc6, 0xd9, 0xc2df,
	},
	Status{
		0x20, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0xffff, 0xffff,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	CRC32(0xba102a6b),
	"ld (nnnn),<ix,iy>",
}

DocLD168 - ld (nnnn),<ix,iy> (64 cycles)

View Source
var DocLD16IM = Case{
	0xd7,
	Status{
		0x01, 0x00, 0x00, 0x00, 0x5c1c, 0x2d46, 0x8eb9,
		0x6078, 0x74b1, 0xb30e, 0x46, 0xd1, 0x30cc,
	},
	Status{
		0x30, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0xff, 0xff, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	CRC32(0xde391969),
	"ld <bc,de,hl,sp>,nnnn",
}

DocLD16IM - ld <bc,de,hl,sp>,nnnn (64 cycles)

View Source
var DocLD16IX = Case{
	0xd7,
	Status{
		0xdd, 0x21, 0x00, 0x00, 0x87e8, 0x2006, 0xbd12,
		0xb69b, 0x7253, 0xa1e5, 0x51, 0x13, 0xf1bd,
	},
	Status{
		0x20, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0xff, 0xff, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	CRC32(0x227dd525),
	"ld <ix,iy>,nnnn",
}

DocLD16IX - ld <ix,iy>,nnnn (32 cycles)

View Source
var DocLD8BD = Case{
	0xd7,
	Status{
		0x0a, 0x00, 0x00, 0x00, 0xb3a8, 0x1d2a, 0x7f8e,
		0x42ac, Msbt, Msbt, 0xc6, 0xb1, 0xef8e,
	},
	Status{
		0x10, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x00ff, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0xd7, 0xff, 0x0000,
	},
	CRC32(0xb0818935),
	"ld a,<(bc),(de)>",
}

DocLD8BD - ld a,<(bc),(de)> (44 cycles)

View Source
var DocLD8IM = Case{
	0xd7,
	Status{
		0x06, 0x00, 0x00, 0x00, 0xc407, 0xf49d, 0xd13d,
		0x0339, 0xde89, 0x7455, 0x53, 0xc0, 0x5509,
	},
	Status{
		0x38, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0xff, 0x0000,
	},
	CRC32(0xf1dab556),
	"ld <b,c,d,e,h,l,(hl),a>,nn",
}

DocLD8IM - ld <b,c,d,e,h,l,(hl),a>,nn (64 cycles)

View Source
var DocLD8IMX = Case{
	0xd7,
	Status{
		0xdd, 0x36, 0x01, 0x00, 0x1b45, Msbt - 1, Msbt - 1,
		0xd5c1, 0x61c7, 0xbdc4, 0xc0, 0x85, 0xcd16,
	},
	Status{
		0x20, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0xff, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0xff, 0x0000,
	},
	CRC32(0x26db477e),
	"ld (<ix,iy>+1),nn",
}

DocLD8IMX - ld (<ix,iy>+1),nn (32 cycles)

View Source
var DocLD8IX1 = Case{
	0xd7,
	Status{
		0xdd, 0x46, 0x01, 0x00, 0xd016, Msbt - 1, Msbt - 1,
		0x4260, 0x7f39, 0x0404, 0x97, 0x4a, 0xd085,
	},
	Status{
		0x20, 0x18, 0x00, 0x00, 0x0000, 0x0001, 0x0001,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0xffff, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	CRC32(0xcc1106a8),
	"ld <b,c,d,e>,(<ix,iy>+1)",
}

DocLD8IX1 - ld <b,c,d,e>,(<ix,iy>+1) (512 cycles)

View Source
var DocLD8IX2 = Case{
	0xd7,
	Status{
		0xdd, 0x66, 0x01, 0x00, 0x84e0, Msbt - 1, Msbt - 1,
		0x9c52, 0xa799, 0x49b6, 0x93, 0x00, 0xeead,
	},
	Status{
		0x20, 0x08, 0x00, 0x00, 0x0000, 0x0001, 0x0001,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0xffff, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	CRC32(0xfa2a4d03),
	"ld <h,l>,(<ix,iy>+1)",
}

DocLD8IX2 - ld <h,l>,(<ix,iy>+1) (256 cycles)

View Source
var DocLD8IX3 = Case{
	0xd7,
	Status{
		0xdd, 0x7e, 0x01, 0x00, 0xd8b6, Msbt - 1, Msbt - 1,
		0xc612, 0xdf07, 0x9cd0, 0x43, 0xa6, 0xa0e5,
	},
	Status{
		0x20, 0x00, 0x00, 0x00, 0x0000, 0x0001, 0x0001,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0xffff, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	CRC32(0xa5e9ac64),
	"ld a,(<ix,iy>+1)",
}

DocLD8IX3 - ld a,(<ix,iy>+1) (128 cycles)

View Source
var DocLD8IXY = Case{
	0xd7,
	Status{
		0xdd, 0x26, 0x00, 0x00, 0x3c53, 0x4640, 0xe179,
		0x7711, 0xc107, 0x1afa, 0x81, 0xad, 0x5d9b,
	},
	Status{
		0x20, 0x08, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0xff, 0x0000,
	},
	CRC32(0x24e8828b),
	"ld <ixh,ixl,iyh,iyl>,nn",
}

DocLD8IXY - ld <ixh,ixl,iyh,iyl>,nn (32 cycles)

View Source
var DocLD8RR = Case{
	0xd7,
	Status{
		0x40, 0x00, 0x00, 0x00, 0x72a4, 0xa024, 0x61ac,
		Msbt, 0x82c7, 0x718f, 0x97, 0x8f, 0xef8e,
	},
	Status{
		0x3f, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x00ff, 0x0000, 0x0000,
		0x0000, 0xffff, 0xffff, 0xd7, 0xff, 0x0000,
	},
	CRC32(0x744b0118),
	"ld <bcdehla>,<bcdehla>",
}

DocLD8RR - ld <b,c,d,e,h,l,a>,<b,c,d,e,h,l,a> (3456 cycles)

View Source
var DocLD8RRX = Case{
	0xd7,
	Status{
		0xdd, 0x40, 0x00, 0x00, 0xbcc5, Msbt, Msbt,
		Msbt, 0x2fc2, 0x98c0, 0x83, 0x1f, 0x3bcd,
	},
	Status{
		0x20, 0x3f, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x00ff, 0x0000, 0x0000,
		0x0000, 0xffff, 0xffff, 0xd7, 0xff, 0x0000,
	},
	CRC32(0x478ba36b),
	"ld <bcdexya>,<bcdexya>",
}

DocLD8RRX - ld <b,c,d,e,ixy,a>,<b,c,d,e,ixy,a> (6912 cycles)

View Source
var DocLDA = Case{
	0xd7,
	Status{
		0x32, MsbtLo, MsbtHi, 0x00, 0xfd68, 0xf4ec, 0x44a0,
		0xb543, 0x0653, 0xcdba, 0xd2, 0x4f, 0x1fd8,
	},
	Status{
		0x08, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x00ff, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0xd7, 0xff, 0x0000,
	},
	CRC32(0xc9262de5),
	"ld a,(nnnn) / ld (nnnn),a",
}

DocLDA - ld a,(nnnn) / ld (nnnn),a (44 cycles)

View Source
var DocLDD1 = Case{
	0xd7,
	Status{
		0xed, 0xa8, 0x00, 0x00, 0x9852, 0x68fa, 0x66a1,
		Msbt + 3, Msbt + 1, 0x0001, 0xc1, 0x68, 0x20b7,
	},
	Status{
		0x00, 0x10, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0xffff, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0xd7, 0x00, 0x0000,
	},
	CRC32(0x94f42769),
	"ldd<r> (1)",
}

DocLDD1 - ldd<r> (1) (44 cycles)

View Source
var DocLDD2 = Case{
	0xd7,
	Status{
		0xed, 0xa8, 0x00, 0x00, 0xf12e, 0xeb2a, 0xd5ba,
		Msbt + 3, Msbt + 1, 0x0002, 0x47, 0xff, 0xfbe4,
	},
	Status{
		0x00, 0x10, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0xffff, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0xd7, 0x00, 0x0000,
	},
	CRC32(0x5a907ed4),
	"ldd<r> (2)",
}

DocLDD2 - ldd<r> (2) (44 cycles)

View Source
var DocLDI1 = Case{
	0xd7,
	Status{
		0xed, 0xa0, 0x00, 0x00, 0xfe30, 0x03cd, 0x6058,
		Msbt + 2, Msbt, 0x0001, 0x04, 0x60, 0x2688,
	},
	Status{
		0x00, 0x10, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0xffff, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0xd7, 0x00, 0x0000,
	},
	CRC32(0x9abdf6b5),
	"ldi<r> (1)",
}

DocLDI1 - ldi<r> (1) (44 cycles)

View Source
var DocLDI2 = Case{
	0xd7,
	Status{
		0xed, 0xa0, 0x00, 0x00, 0x4ace, 0xc26e, 0xb188,
		Msbt + 2, Msbt, 0x0002, 0x14, 0x2d, 0xa39f,
	},
	Status{
		0x00, 0x10, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0xffff, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0xd7, 0x00, 0x0000,
	},
	CRC32(0xeb59891b),
	"ldi<r> (2)",
}

DocLDI2 - ldi<r> (2) (44 cycles)

View Source
var DocNEGOP = Case{
	0xd7,
	Status{
		0xed, 0x44, 0x00, 0x00, 0x38a2, 0x5f6b, 0xd934,
		0x57e4, 0xd2d6, 0x4642, 0x43, 0x5a, 0x09cc,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0xd7, 0xff, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	CRC32(0x6a3c3bbd),
	"neg",
}

DocNEGOP - neg (16,384 cycles)

View Source
var DocRLDOP = Case{
	0xd7,
	Status{
		0xed, 0x67, 0x00, 0x00, 0x91cb, 0xc48b, 0xfa62,
		Msbt, 0xe720, 0xb479, 0x40, 0x06, 0x8ae2,
	},
	Status{
		0x00, 0x08, 0x00, 0x00, 0x00ff, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0xd7, 0xff, 0x0000,
	},
	CRC32(0x955ba326),
	"<rrd,rld>",
}

DocRLDOP - <rld,rrd> (7168 cycles)

View Source
var DocROT8080 = Case{
	0xd7,
	Status{
		0x07, 0x00, 0x00, 0x00, 0xcb92, 0x6d43, 0x0a90,
		0xc284, 0x0c53, 0xf50e, 0x91, 0xeb, 0x40fc,
	},
	Status{
		0x18, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0xff, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0xd7, 0x00, 0x0000,
	},
	CRC32(0x251330ae),
	"<rlca,rrca,rla,rra>",
}

DocROT8080 - <rlca,rrca,rla,rra> (6144 cycles)

View Source
var DocROTXY = Case{
	0xd7,
	Status{
		0xdd, 0xcb, 0x01, 0x06, 0xddaf, Msbt - 1, Msbt - 1,
		0xff3c, 0xdbf6, 0x94f4, 0x82, 0x80, 0x61d9,
	},
	Status{
		0x20, 0x00, 0x00, 0x38, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x80, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x00ff, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x57, 0x00, 0x0000,
	},
	CRC32(0x713acd81),
	"shf/rot (<ix,iy>+1)",
}

DocROTXY - shift/rotate (<ix,iy>+1) (416 cycles)

View Source
var DocROTZ80 = Case{
	0xd7,
	Status{
		0xcb, 0x00, 0x00, 0x00, 0xcceb, 0x5d4a, 0xe007,
		Msbt, 0x1395, 0x30ee, 0x43, 0x78, 0x3dad,
	},
	Status{
		0x00, 0x3f, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x80, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x00ff, 0x0000, 0x0000,
		0x0000, 0xffff, 0xffff, 0x57, 0xff, 0x0000,
	},
	CRC32(0xeb604d58),
	"shf/rot <b,c,d,e,h,l,(hl),a>",
}

DocROTZ80 - shift/rotate <b,c,d,e,h,l,(hl),a> (6784 cycles)

View Source
var DocSRZ80 = Case{
	0xd7,
	Status{
		0xcb, 0x80, 0x00, 0x00, 0x2cd5, 0x97ab, 0x39ff,
		Msbt, 0xd14b, 0x6ab2, 0x53, 0x27, 0xb538,
	},
	Status{
		0x00, 0x7f, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x00ff, 0x0000, 0x0000,
		0x0000, 0xffff, 0xffff, 0xd7, 0xff, 0x0000,
	},
	CRC32(0x8b57f008),
	"<set,res> n,<bcdehl(hl)a>",
}

DocSRZ80 - <set,res> n,<b,c,d,e,h,l,(hl),a> (7936 cycles)

View Source
var DocSRZX = Case{
	0xd7,
	Status{
		0xdd, 0xcb, 0x01, 0x86, 0xfb44, Msbt - 1, Msbt - 1,
		0xba09, 0x68be, 0x32d8, 0x10, 0x5e, 0xa867,
	},
	Status{
		0x20, 0x00, 0x00, 0x78, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x00ff, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0xd7, 0x00, 0x0000,
	},
	CRC32(0xcc63f98a),
	"<set,res> n,(<ix,iy>+1)",
}

DocSRZX - <set,res> n,(<ix,iy>+1) (1792 cycles)

View Source
var DocST8IX1 = Case{
	0xd7,
	Status{
		0xdd, 0x70, 0x01, 0x00, 0x270d, Msbt - 1, Msbt - 1,
		0xb73a, 0x887b, 0x99ee, 0x86, 0x70, 0xca07,
	},
	Status{
		0x20, 0x03, 0x00, 0x00, 0x0000, 0x0001, 0x0001,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0xffff, 0xffff, 0x00, 0x00, 0x0000,
	},
	CRC32(0x04626abf),
	"ld (<ix,iy>+1),<b,c,d,e>",
}

DocST8IX1 - ld (<ix,iy>+1),<b,c,d,e> (1024 cycles)

View Source
var DocST8IX2 = Case{
	0xd7,
	Status{
		0xdd, 0x74, 0x01, 0x00, 0xb664, Msbt - 1, Msbt - 1,
		0xe8ac, 0xb5f5, 0xaafe, 0x12, 0x10, 0x9566,
	},
	Status{
		0x20, 0x01, 0x00, 0x00, 0x0000, 0x0001, 0x0001,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0xffff, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	CRC32(0x6a1a8831),
	"ld (<ix,iy>+1),<h,l>",
}

DocST8IX2 - ld (<ix,iy>+1),<h,l> (256 cycles)

View Source
var DocST8IX3 = Case{
	0xd7,
	Status{
		0xdd, 0x77, 0x01, 0x00, 0x67af, Msbt - 1, Msbt - 1,
		0x4f13, 0x0644, 0xbcd7, 0x50, 0xac, 0x5faf,
	},
	Status{
		0x20, 0x00, 0x00, 0x00, 0x0000, 0x0001, 0x0001,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0xff, 0x0000,
	},
	CRC32(0xccbe5a96),
	"ld (<ix,iy>+1),a",
}

DocST8IX3 - ld (<ix,iy>+1),a (64 cycles)

View Source
var DocSTABD = Case{
	0xd7,
	Status{
		0x02, 0x00, 0x00, 0x00, 0x0c3b, 0xb592, 0x6cff,
		0x959e, Msbt, Msbt + 1, 0xc1, 0x21, 0xbde7,
	},
	Status{
		0x18, 0x00, 0x00, 0x00, 0x0000, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0x00, 0x0000,
	},
	Status{
		0x00, 0x00, 0x00, 0x00, 0xffff, 0x0000, 0x0000,
		0x0000, 0x0000, 0x0000, 0x00, 0xff, 0x0000,
	},
	CRC32(0x7a4c114f),
	"ld (<bc,de>),a",
}

DocSTABD - ld (<bc,de>),a (96 cycles)

Functions

This section is empty.

Types

type CRC32

type CRC32 uint32

CRC32 has inverted CRC32 (IEEE) value.

type Case

type Case struct {
	FlagMask uint8
	BaseCase Status
	IncVec   Status
	ShiftVec Status
	Expect   CRC32
	Desc     string
}

Case defines a test case.

func (Case) Iter

func (c Case) Iter() Iter

Iter creates new states iterator.

func (Case) Maxes

func (c Case) Maxes() (shiftMax, countMax uint64)

Maxes returns max valuies of shifter and counter.

type Iter

type Iter struct {
	// contains filtered or unexported fields
}

Iter is states iterator/generator.

func (Iter) Status

func (it Iter) Status(shift, count uint64) Status

Status generate before test stauts for a case.

type Status

type Status struct {
	Inst0 uint8
	Inst1 uint8
	Inst2 uint8
	Inst3 uint8

	MemOP uint16
	IY    uint16
	IX    uint16
	HL    uint16
	DE    uint16
	BC    uint16

	Flags uint8
	Accum uint8

	SP uint16
}

Status is Z80 machine status for test.

func (Status) Bytes

func (s Status) Bytes() []byte

Bytes returns []byte representation of status.

func (Status) OnesCount

func (s Status) OnesCount() int

OnesCount returns count of 1 bits in Status.

func (Status) String

func (s Status) String() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL