931 lines
19 KiB
C
931 lines
19 KiB
C
/* z80_cb.c: Z80 CBxx opcodes
|
|
Copyright (c) 1999-2003 Philip Kendall
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation; either version 2 of the License, or
|
|
(at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License along
|
|
with this program; if not, write to the Free Software Foundation, Inc.,
|
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
|
|
Author contact information:
|
|
|
|
E-mail: philip-fuse@shadowmagic.org.uk
|
|
|
|
*/
|
|
|
|
/* NB: this file is autogenerated by 'z80.pl' from 'opcodes_cb.dat',
|
|
and included in 'z80_ops.c' */
|
|
|
|
case 0x00: /* RLC B */
|
|
RLC(B);
|
|
break;
|
|
case 0x01: /* RLC C */
|
|
RLC(C);
|
|
break;
|
|
case 0x02: /* RLC D */
|
|
RLC(D);
|
|
break;
|
|
case 0x03: /* RLC E */
|
|
RLC(E);
|
|
break;
|
|
case 0x04: /* RLC H */
|
|
RLC(H);
|
|
break;
|
|
case 0x05: /* RLC L */
|
|
RLC(L);
|
|
break;
|
|
case 0x06: /* RLC (HL) */
|
|
{
|
|
uint8 bytetemp = Z80_RB_MACRO(HL);
|
|
contend_read_no_mreq( HL, 1 );
|
|
RLC(bytetemp);
|
|
Z80_WB_MACRO(HL,bytetemp);
|
|
}
|
|
break;
|
|
case 0x07: /* RLC A */
|
|
RLC(A);
|
|
break;
|
|
case 0x08: /* RRC B */
|
|
RRC(B);
|
|
break;
|
|
case 0x09: /* RRC C */
|
|
RRC(C);
|
|
break;
|
|
case 0x0a: /* RRC D */
|
|
RRC(D);
|
|
break;
|
|
case 0x0b: /* RRC E */
|
|
RRC(E);
|
|
break;
|
|
case 0x0c: /* RRC H */
|
|
RRC(H);
|
|
break;
|
|
case 0x0d: /* RRC L */
|
|
RRC(L);
|
|
break;
|
|
case 0x0e: /* RRC (HL) */
|
|
{
|
|
uint8 bytetemp = Z80_RB_MACRO(HL);
|
|
contend_read_no_mreq( HL, 1 );
|
|
RRC(bytetemp);
|
|
Z80_WB_MACRO(HL,bytetemp);
|
|
}
|
|
break;
|
|
case 0x0f: /* RRC A */
|
|
RRC(A);
|
|
break;
|
|
case 0x10: /* RL B */
|
|
RL(B);
|
|
break;
|
|
case 0x11: /* RL C */
|
|
RL(C);
|
|
break;
|
|
case 0x12: /* RL D */
|
|
RL(D);
|
|
break;
|
|
case 0x13: /* RL E */
|
|
RL(E);
|
|
break;
|
|
case 0x14: /* RL H */
|
|
RL(H);
|
|
break;
|
|
case 0x15: /* RL L */
|
|
RL(L);
|
|
break;
|
|
case 0x16: /* RL (HL) */
|
|
{
|
|
uint8 bytetemp = Z80_RB_MACRO(HL);
|
|
contend_read_no_mreq( HL, 1 );
|
|
RL(bytetemp);
|
|
Z80_WB_MACRO(HL,bytetemp);
|
|
}
|
|
break;
|
|
case 0x17: /* RL A */
|
|
RL(A);
|
|
break;
|
|
case 0x18: /* RR B */
|
|
RR(B);
|
|
break;
|
|
case 0x19: /* RR C */
|
|
RR(C);
|
|
break;
|
|
case 0x1a: /* RR D */
|
|
RR(D);
|
|
break;
|
|
case 0x1b: /* RR E */
|
|
RR(E);
|
|
break;
|
|
case 0x1c: /* RR H */
|
|
RR(H);
|
|
break;
|
|
case 0x1d: /* RR L */
|
|
RR(L);
|
|
break;
|
|
case 0x1e: /* RR (HL) */
|
|
{
|
|
uint8 bytetemp = Z80_RB_MACRO(HL);
|
|
contend_read_no_mreq( HL, 1 );
|
|
RR(bytetemp);
|
|
Z80_WB_MACRO(HL,bytetemp);
|
|
}
|
|
break;
|
|
case 0x1f: /* RR A */
|
|
RR(A);
|
|
break;
|
|
case 0x20: /* SLA B */
|
|
SLA(B);
|
|
break;
|
|
case 0x21: /* SLA C */
|
|
SLA(C);
|
|
break;
|
|
case 0x22: /* SLA D */
|
|
SLA(D);
|
|
break;
|
|
case 0x23: /* SLA E */
|
|
SLA(E);
|
|
break;
|
|
case 0x24: /* SLA H */
|
|
SLA(H);
|
|
break;
|
|
case 0x25: /* SLA L */
|
|
SLA(L);
|
|
break;
|
|
case 0x26: /* SLA (HL) */
|
|
{
|
|
uint8 bytetemp = Z80_RB_MACRO(HL);
|
|
contend_read_no_mreq( HL, 1 );
|
|
SLA(bytetemp);
|
|
Z80_WB_MACRO(HL,bytetemp);
|
|
}
|
|
break;
|
|
case 0x27: /* SLA A */
|
|
SLA(A);
|
|
break;
|
|
case 0x28: /* SRA B */
|
|
SRA(B);
|
|
break;
|
|
case 0x29: /* SRA C */
|
|
SRA(C);
|
|
break;
|
|
case 0x2a: /* SRA D */
|
|
SRA(D);
|
|
break;
|
|
case 0x2b: /* SRA E */
|
|
SRA(E);
|
|
break;
|
|
case 0x2c: /* SRA H */
|
|
SRA(H);
|
|
break;
|
|
case 0x2d: /* SRA L */
|
|
SRA(L);
|
|
break;
|
|
case 0x2e: /* SRA (HL) */
|
|
{
|
|
uint8 bytetemp = Z80_RB_MACRO(HL);
|
|
contend_read_no_mreq( HL, 1 );
|
|
SRA(bytetemp);
|
|
Z80_WB_MACRO(HL,bytetemp);
|
|
}
|
|
break;
|
|
case 0x2f: /* SRA A */
|
|
SRA(A);
|
|
break;
|
|
case 0x30: /* SLL B */
|
|
SLL(B);
|
|
break;
|
|
case 0x31: /* SLL C */
|
|
SLL(C);
|
|
break;
|
|
case 0x32: /* SLL D */
|
|
SLL(D);
|
|
break;
|
|
case 0x33: /* SLL E */
|
|
SLL(E);
|
|
break;
|
|
case 0x34: /* SLL H */
|
|
SLL(H);
|
|
break;
|
|
case 0x35: /* SLL L */
|
|
SLL(L);
|
|
break;
|
|
case 0x36: /* SLL (HL) */
|
|
{
|
|
uint8 bytetemp = Z80_RB_MACRO(HL);
|
|
contend_read_no_mreq( HL, 1 );
|
|
SLL(bytetemp);
|
|
Z80_WB_MACRO(HL,bytetemp);
|
|
}
|
|
break;
|
|
case 0x37: /* SLL A */
|
|
SLL(A);
|
|
break;
|
|
case 0x38: /* SRL B */
|
|
SRL(B);
|
|
break;
|
|
case 0x39: /* SRL C */
|
|
SRL(C);
|
|
break;
|
|
case 0x3a: /* SRL D */
|
|
SRL(D);
|
|
break;
|
|
case 0x3b: /* SRL E */
|
|
SRL(E);
|
|
break;
|
|
case 0x3c: /* SRL H */
|
|
SRL(H);
|
|
break;
|
|
case 0x3d: /* SRL L */
|
|
SRL(L);
|
|
break;
|
|
case 0x3e: /* SRL (HL) */
|
|
{
|
|
uint8 bytetemp = Z80_RB_MACRO(HL);
|
|
contend_read_no_mreq( HL, 1 );
|
|
SRL(bytetemp);
|
|
Z80_WB_MACRO(HL,bytetemp);
|
|
}
|
|
break;
|
|
case 0x3f: /* SRL A */
|
|
SRL(A);
|
|
break;
|
|
case 0x40: /* BIT 0,B */
|
|
BIT( 0, B );
|
|
break;
|
|
case 0x41: /* BIT 0,C */
|
|
BIT( 0, C );
|
|
break;
|
|
case 0x42: /* BIT 0,D */
|
|
BIT( 0, D );
|
|
break;
|
|
case 0x43: /* BIT 0,E */
|
|
BIT( 0, E );
|
|
break;
|
|
case 0x44: /* BIT 0,H */
|
|
BIT( 0, H );
|
|
break;
|
|
case 0x45: /* BIT 0,L */
|
|
BIT( 0, L );
|
|
break;
|
|
case 0x46: /* BIT 0,(HL) */
|
|
{
|
|
uint8 bytetemp = Z80_RB_MACRO( HL );
|
|
contend_read_no_mreq( HL, 1 );
|
|
BIT( 0, bytetemp );
|
|
}
|
|
break;
|
|
case 0x47: /* BIT 0,A */
|
|
BIT( 0, A );
|
|
break;
|
|
case 0x48: /* BIT 1,B */
|
|
BIT( 1, B );
|
|
break;
|
|
case 0x49: /* BIT 1,C */
|
|
BIT( 1, C );
|
|
break;
|
|
case 0x4a: /* BIT 1,D */
|
|
BIT( 1, D );
|
|
break;
|
|
case 0x4b: /* BIT 1,E */
|
|
BIT( 1, E );
|
|
break;
|
|
case 0x4c: /* BIT 1,H */
|
|
BIT( 1, H );
|
|
break;
|
|
case 0x4d: /* BIT 1,L */
|
|
BIT( 1, L );
|
|
break;
|
|
case 0x4e: /* BIT 1,(HL) */
|
|
{
|
|
uint8 bytetemp = Z80_RB_MACRO( HL );
|
|
contend_read_no_mreq( HL, 1 );
|
|
BIT( 1, bytetemp );
|
|
}
|
|
break;
|
|
case 0x4f: /* BIT 1,A */
|
|
BIT( 1, A );
|
|
break;
|
|
case 0x50: /* BIT 2,B */
|
|
BIT( 2, B );
|
|
break;
|
|
case 0x51: /* BIT 2,C */
|
|
BIT( 2, C );
|
|
break;
|
|
case 0x52: /* BIT 2,D */
|
|
BIT( 2, D );
|
|
break;
|
|
case 0x53: /* BIT 2,E */
|
|
BIT( 2, E );
|
|
break;
|
|
case 0x54: /* BIT 2,H */
|
|
BIT( 2, H );
|
|
break;
|
|
case 0x55: /* BIT 2,L */
|
|
BIT( 2, L );
|
|
break;
|
|
case 0x56: /* BIT 2,(HL) */
|
|
{
|
|
uint8 bytetemp = Z80_RB_MACRO( HL );
|
|
contend_read_no_mreq( HL, 1 );
|
|
BIT( 2, bytetemp );
|
|
}
|
|
break;
|
|
case 0x57: /* BIT 2,A */
|
|
BIT( 2, A );
|
|
break;
|
|
case 0x58: /* BIT 3,B */
|
|
BIT( 3, B );
|
|
break;
|
|
case 0x59: /* BIT 3,C */
|
|
BIT( 3, C );
|
|
break;
|
|
case 0x5a: /* BIT 3,D */
|
|
BIT( 3, D );
|
|
break;
|
|
case 0x5b: /* BIT 3,E */
|
|
BIT( 3, E );
|
|
break;
|
|
case 0x5c: /* BIT 3,H */
|
|
BIT( 3, H );
|
|
break;
|
|
case 0x5d: /* BIT 3,L */
|
|
BIT( 3, L );
|
|
break;
|
|
case 0x5e: /* BIT 3,(HL) */
|
|
{
|
|
uint8 bytetemp = Z80_RB_MACRO( HL );
|
|
contend_read_no_mreq( HL, 1 );
|
|
BIT( 3, bytetemp );
|
|
}
|
|
break;
|
|
case 0x5f: /* BIT 3,A */
|
|
BIT( 3, A );
|
|
break;
|
|
case 0x60: /* BIT 4,B */
|
|
BIT( 4, B );
|
|
break;
|
|
case 0x61: /* BIT 4,C */
|
|
BIT( 4, C );
|
|
break;
|
|
case 0x62: /* BIT 4,D */
|
|
BIT( 4, D );
|
|
break;
|
|
case 0x63: /* BIT 4,E */
|
|
BIT( 4, E );
|
|
break;
|
|
case 0x64: /* BIT 4,H */
|
|
BIT( 4, H );
|
|
break;
|
|
case 0x65: /* BIT 4,L */
|
|
BIT( 4, L );
|
|
break;
|
|
case 0x66: /* BIT 4,(HL) */
|
|
{
|
|
uint8 bytetemp = Z80_RB_MACRO( HL );
|
|
contend_read_no_mreq( HL, 1 );
|
|
BIT( 4, bytetemp );
|
|
}
|
|
break;
|
|
case 0x67: /* BIT 4,A */
|
|
BIT( 4, A );
|
|
break;
|
|
case 0x68: /* BIT 5,B */
|
|
BIT( 5, B );
|
|
break;
|
|
case 0x69: /* BIT 5,C */
|
|
BIT( 5, C );
|
|
break;
|
|
case 0x6a: /* BIT 5,D */
|
|
BIT( 5, D );
|
|
break;
|
|
case 0x6b: /* BIT 5,E */
|
|
BIT( 5, E );
|
|
break;
|
|
case 0x6c: /* BIT 5,H */
|
|
BIT( 5, H );
|
|
break;
|
|
case 0x6d: /* BIT 5,L */
|
|
BIT( 5, L );
|
|
break;
|
|
case 0x6e: /* BIT 5,(HL) */
|
|
{
|
|
uint8 bytetemp = Z80_RB_MACRO( HL );
|
|
contend_read_no_mreq( HL, 1 );
|
|
BIT( 5, bytetemp );
|
|
}
|
|
break;
|
|
case 0x6f: /* BIT 5,A */
|
|
BIT( 5, A );
|
|
break;
|
|
case 0x70: /* BIT 6,B */
|
|
BIT( 6, B );
|
|
break;
|
|
case 0x71: /* BIT 6,C */
|
|
BIT( 6, C );
|
|
break;
|
|
case 0x72: /* BIT 6,D */
|
|
BIT( 6, D );
|
|
break;
|
|
case 0x73: /* BIT 6,E */
|
|
BIT( 6, E );
|
|
break;
|
|
case 0x74: /* BIT 6,H */
|
|
BIT( 6, H );
|
|
break;
|
|
case 0x75: /* BIT 6,L */
|
|
BIT( 6, L );
|
|
break;
|
|
case 0x76: /* BIT 6,(HL) */
|
|
{
|
|
uint8 bytetemp = Z80_RB_MACRO( HL );
|
|
contend_read_no_mreq( HL, 1 );
|
|
BIT( 6, bytetemp );
|
|
}
|
|
break;
|
|
case 0x77: /* BIT 6,A */
|
|
BIT( 6, A );
|
|
break;
|
|
case 0x78: /* BIT 7,B */
|
|
BIT( 7, B );
|
|
break;
|
|
case 0x79: /* BIT 7,C */
|
|
BIT( 7, C );
|
|
break;
|
|
case 0x7a: /* BIT 7,D */
|
|
BIT( 7, D );
|
|
break;
|
|
case 0x7b: /* BIT 7,E */
|
|
BIT( 7, E );
|
|
break;
|
|
case 0x7c: /* BIT 7,H */
|
|
BIT( 7, H );
|
|
break;
|
|
case 0x7d: /* BIT 7,L */
|
|
BIT( 7, L );
|
|
break;
|
|
case 0x7e: /* BIT 7,(HL) */
|
|
{
|
|
uint8 bytetemp = Z80_RB_MACRO( HL );
|
|
contend_read_no_mreq( HL, 1 );
|
|
BIT( 7, bytetemp );
|
|
}
|
|
break;
|
|
case 0x7f: /* BIT 7,A */
|
|
BIT( 7, A );
|
|
break;
|
|
case 0x80: /* RES 0,B */
|
|
B &= 0xfe;
|
|
break;
|
|
case 0x81: /* RES 0,C */
|
|
C &= 0xfe;
|
|
break;
|
|
case 0x82: /* RES 0,D */
|
|
D &= 0xfe;
|
|
break;
|
|
case 0x83: /* RES 0,E */
|
|
E &= 0xfe;
|
|
break;
|
|
case 0x84: /* RES 0,H */
|
|
H &= 0xfe;
|
|
break;
|
|
case 0x85: /* RES 0,L */
|
|
L &= 0xfe;
|
|
break;
|
|
case 0x86: /* RES 0,(HL) */
|
|
{
|
|
uint8 bytetemp = Z80_RB_MACRO( HL );
|
|
contend_read_no_mreq( HL, 1 );
|
|
Z80_WB_MACRO( HL, bytetemp & 0xfe );
|
|
}
|
|
break;
|
|
case 0x87: /* RES 0,A */
|
|
A &= 0xfe;
|
|
break;
|
|
case 0x88: /* RES 1,B */
|
|
B &= 0xfd;
|
|
break;
|
|
case 0x89: /* RES 1,C */
|
|
C &= 0xfd;
|
|
break;
|
|
case 0x8a: /* RES 1,D */
|
|
D &= 0xfd;
|
|
break;
|
|
case 0x8b: /* RES 1,E */
|
|
E &= 0xfd;
|
|
break;
|
|
case 0x8c: /* RES 1,H */
|
|
H &= 0xfd;
|
|
break;
|
|
case 0x8d: /* RES 1,L */
|
|
L &= 0xfd;
|
|
break;
|
|
case 0x8e: /* RES 1,(HL) */
|
|
{
|
|
uint8 bytetemp = Z80_RB_MACRO( HL );
|
|
contend_read_no_mreq( HL, 1 );
|
|
Z80_WB_MACRO( HL, bytetemp & 0xfd );
|
|
}
|
|
break;
|
|
case 0x8f: /* RES 1,A */
|
|
A &= 0xfd;
|
|
break;
|
|
case 0x90: /* RES 2,B */
|
|
B &= 0xfb;
|
|
break;
|
|
case 0x91: /* RES 2,C */
|
|
C &= 0xfb;
|
|
break;
|
|
case 0x92: /* RES 2,D */
|
|
D &= 0xfb;
|
|
break;
|
|
case 0x93: /* RES 2,E */
|
|
E &= 0xfb;
|
|
break;
|
|
case 0x94: /* RES 2,H */
|
|
H &= 0xfb;
|
|
break;
|
|
case 0x95: /* RES 2,L */
|
|
L &= 0xfb;
|
|
break;
|
|
case 0x96: /* RES 2,(HL) */
|
|
{
|
|
uint8 bytetemp = Z80_RB_MACRO( HL );
|
|
contend_read_no_mreq( HL, 1 );
|
|
Z80_WB_MACRO( HL, bytetemp & 0xfb );
|
|
}
|
|
break;
|
|
case 0x97: /* RES 2,A */
|
|
A &= 0xfb;
|
|
break;
|
|
case 0x98: /* RES 3,B */
|
|
B &= 0xf7;
|
|
break;
|
|
case 0x99: /* RES 3,C */
|
|
C &= 0xf7;
|
|
break;
|
|
case 0x9a: /* RES 3,D */
|
|
D &= 0xf7;
|
|
break;
|
|
case 0x9b: /* RES 3,E */
|
|
E &= 0xf7;
|
|
break;
|
|
case 0x9c: /* RES 3,H */
|
|
H &= 0xf7;
|
|
break;
|
|
case 0x9d: /* RES 3,L */
|
|
L &= 0xf7;
|
|
break;
|
|
case 0x9e: /* RES 3,(HL) */
|
|
{
|
|
uint8 bytetemp = Z80_RB_MACRO( HL );
|
|
contend_read_no_mreq( HL, 1 );
|
|
Z80_WB_MACRO( HL, bytetemp & 0xf7 );
|
|
}
|
|
break;
|
|
case 0x9f: /* RES 3,A */
|
|
A &= 0xf7;
|
|
break;
|
|
case 0xa0: /* RES 4,B */
|
|
B &= 0xef;
|
|
break;
|
|
case 0xa1: /* RES 4,C */
|
|
C &= 0xef;
|
|
break;
|
|
case 0xa2: /* RES 4,D */
|
|
D &= 0xef;
|
|
break;
|
|
case 0xa3: /* RES 4,E */
|
|
E &= 0xef;
|
|
break;
|
|
case 0xa4: /* RES 4,H */
|
|
H &= 0xef;
|
|
break;
|
|
case 0xa5: /* RES 4,L */
|
|
L &= 0xef;
|
|
break;
|
|
case 0xa6: /* RES 4,(HL) */
|
|
{
|
|
uint8 bytetemp = Z80_RB_MACRO( HL );
|
|
contend_read_no_mreq( HL, 1 );
|
|
Z80_WB_MACRO( HL, bytetemp & 0xef );
|
|
}
|
|
break;
|
|
case 0xa7: /* RES 4,A */
|
|
A &= 0xef;
|
|
break;
|
|
case 0xa8: /* RES 5,B */
|
|
B &= 0xdf;
|
|
break;
|
|
case 0xa9: /* RES 5,C */
|
|
C &= 0xdf;
|
|
break;
|
|
case 0xaa: /* RES 5,D */
|
|
D &= 0xdf;
|
|
break;
|
|
case 0xab: /* RES 5,E */
|
|
E &= 0xdf;
|
|
break;
|
|
case 0xac: /* RES 5,H */
|
|
H &= 0xdf;
|
|
break;
|
|
case 0xad: /* RES 5,L */
|
|
L &= 0xdf;
|
|
break;
|
|
case 0xae: /* RES 5,(HL) */
|
|
{
|
|
uint8 bytetemp = Z80_RB_MACRO( HL );
|
|
contend_read_no_mreq( HL, 1 );
|
|
Z80_WB_MACRO( HL, bytetemp & 0xdf );
|
|
}
|
|
break;
|
|
case 0xaf: /* RES 5,A */
|
|
A &= 0xdf;
|
|
break;
|
|
case 0xb0: /* RES 6,B */
|
|
B &= 0xbf;
|
|
break;
|
|
case 0xb1: /* RES 6,C */
|
|
C &= 0xbf;
|
|
break;
|
|
case 0xb2: /* RES 6,D */
|
|
D &= 0xbf;
|
|
break;
|
|
case 0xb3: /* RES 6,E */
|
|
E &= 0xbf;
|
|
break;
|
|
case 0xb4: /* RES 6,H */
|
|
H &= 0xbf;
|
|
break;
|
|
case 0xb5: /* RES 6,L */
|
|
L &= 0xbf;
|
|
break;
|
|
case 0xb6: /* RES 6,(HL) */
|
|
{
|
|
uint8 bytetemp = Z80_RB_MACRO( HL );
|
|
contend_read_no_mreq( HL, 1 );
|
|
Z80_WB_MACRO( HL, bytetemp & 0xbf );
|
|
}
|
|
break;
|
|
case 0xb7: /* RES 6,A */
|
|
A &= 0xbf;
|
|
break;
|
|
case 0xb8: /* RES 7,B */
|
|
B &= 0x7f;
|
|
break;
|
|
case 0xb9: /* RES 7,C */
|
|
C &= 0x7f;
|
|
break;
|
|
case 0xba: /* RES 7,D */
|
|
D &= 0x7f;
|
|
break;
|
|
case 0xbb: /* RES 7,E */
|
|
E &= 0x7f;
|
|
break;
|
|
case 0xbc: /* RES 7,H */
|
|
H &= 0x7f;
|
|
break;
|
|
case 0xbd: /* RES 7,L */
|
|
L &= 0x7f;
|
|
break;
|
|
case 0xbe: /* RES 7,(HL) */
|
|
{
|
|
uint8 bytetemp = Z80_RB_MACRO( HL );
|
|
contend_read_no_mreq( HL, 1 );
|
|
Z80_WB_MACRO( HL, bytetemp & 0x7f );
|
|
}
|
|
break;
|
|
case 0xbf: /* RES 7,A */
|
|
A &= 0x7f;
|
|
break;
|
|
case 0xc0: /* SET 0,B */
|
|
B |= 0x01;
|
|
break;
|
|
case 0xc1: /* SET 0,C */
|
|
C |= 0x01;
|
|
break;
|
|
case 0xc2: /* SET 0,D */
|
|
D |= 0x01;
|
|
break;
|
|
case 0xc3: /* SET 0,E */
|
|
E |= 0x01;
|
|
break;
|
|
case 0xc4: /* SET 0,H */
|
|
H |= 0x01;
|
|
break;
|
|
case 0xc5: /* SET 0,L */
|
|
L |= 0x01;
|
|
break;
|
|
case 0xc6: /* SET 0,(HL) */
|
|
{
|
|
uint8 bytetemp = Z80_RB_MACRO( HL );
|
|
contend_read_no_mreq( HL, 1 );
|
|
Z80_WB_MACRO( HL, bytetemp | 0x01 );
|
|
}
|
|
break;
|
|
case 0xc7: /* SET 0,A */
|
|
A |= 0x01;
|
|
break;
|
|
case 0xc8: /* SET 1,B */
|
|
B |= 0x02;
|
|
break;
|
|
case 0xc9: /* SET 1,C */
|
|
C |= 0x02;
|
|
break;
|
|
case 0xca: /* SET 1,D */
|
|
D |= 0x02;
|
|
break;
|
|
case 0xcb: /* SET 1,E */
|
|
E |= 0x02;
|
|
break;
|
|
case 0xcc: /* SET 1,H */
|
|
H |= 0x02;
|
|
break;
|
|
case 0xcd: /* SET 1,L */
|
|
L |= 0x02;
|
|
break;
|
|
case 0xce: /* SET 1,(HL) */
|
|
{
|
|
uint8 bytetemp = Z80_RB_MACRO( HL );
|
|
contend_read_no_mreq( HL, 1 );
|
|
Z80_WB_MACRO( HL, bytetemp | 0x02 );
|
|
}
|
|
break;
|
|
case 0xcf: /* SET 1,A */
|
|
A |= 0x02;
|
|
break;
|
|
case 0xd0: /* SET 2,B */
|
|
B |= 0x04;
|
|
break;
|
|
case 0xd1: /* SET 2,C */
|
|
C |= 0x04;
|
|
break;
|
|
case 0xd2: /* SET 2,D */
|
|
D |= 0x04;
|
|
break;
|
|
case 0xd3: /* SET 2,E */
|
|
E |= 0x04;
|
|
break;
|
|
case 0xd4: /* SET 2,H */
|
|
H |= 0x04;
|
|
break;
|
|
case 0xd5: /* SET 2,L */
|
|
L |= 0x04;
|
|
break;
|
|
case 0xd6: /* SET 2,(HL) */
|
|
{
|
|
uint8 bytetemp = Z80_RB_MACRO( HL );
|
|
contend_read_no_mreq( HL, 1 );
|
|
Z80_WB_MACRO( HL, bytetemp | 0x04 );
|
|
}
|
|
break;
|
|
case 0xd7: /* SET 2,A */
|
|
A |= 0x04;
|
|
break;
|
|
case 0xd8: /* SET 3,B */
|
|
B |= 0x08;
|
|
break;
|
|
case 0xd9: /* SET 3,C */
|
|
C |= 0x08;
|
|
break;
|
|
case 0xda: /* SET 3,D */
|
|
D |= 0x08;
|
|
break;
|
|
case 0xdb: /* SET 3,E */
|
|
E |= 0x08;
|
|
break;
|
|
case 0xdc: /* SET 3,H */
|
|
H |= 0x08;
|
|
break;
|
|
case 0xdd: /* SET 3,L */
|
|
L |= 0x08;
|
|
break;
|
|
case 0xde: /* SET 3,(HL) */
|
|
{
|
|
uint8 bytetemp = Z80_RB_MACRO( HL );
|
|
contend_read_no_mreq( HL, 1 );
|
|
Z80_WB_MACRO( HL, bytetemp | 0x08 );
|
|
}
|
|
break;
|
|
case 0xdf: /* SET 3,A */
|
|
A |= 0x08;
|
|
break;
|
|
case 0xe0: /* SET 4,B */
|
|
B |= 0x10;
|
|
break;
|
|
case 0xe1: /* SET 4,C */
|
|
C |= 0x10;
|
|
break;
|
|
case 0xe2: /* SET 4,D */
|
|
D |= 0x10;
|
|
break;
|
|
case 0xe3: /* SET 4,E */
|
|
E |= 0x10;
|
|
break;
|
|
case 0xe4: /* SET 4,H */
|
|
H |= 0x10;
|
|
break;
|
|
case 0xe5: /* SET 4,L */
|
|
L |= 0x10;
|
|
break;
|
|
case 0xe6: /* SET 4,(HL) */
|
|
{
|
|
uint8 bytetemp = Z80_RB_MACRO( HL );
|
|
contend_read_no_mreq( HL, 1 );
|
|
Z80_WB_MACRO( HL, bytetemp | 0x10 );
|
|
}
|
|
break;
|
|
case 0xe7: /* SET 4,A */
|
|
A |= 0x10;
|
|
break;
|
|
case 0xe8: /* SET 5,B */
|
|
B |= 0x20;
|
|
break;
|
|
case 0xe9: /* SET 5,C */
|
|
C |= 0x20;
|
|
break;
|
|
case 0xea: /* SET 5,D */
|
|
D |= 0x20;
|
|
break;
|
|
case 0xeb: /* SET 5,E */
|
|
E |= 0x20;
|
|
break;
|
|
case 0xec: /* SET 5,H */
|
|
H |= 0x20;
|
|
break;
|
|
case 0xed: /* SET 5,L */
|
|
L |= 0x20;
|
|
break;
|
|
case 0xee: /* SET 5,(HL) */
|
|
{
|
|
uint8 bytetemp = Z80_RB_MACRO( HL );
|
|
contend_read_no_mreq( HL, 1 );
|
|
Z80_WB_MACRO( HL, bytetemp | 0x20 );
|
|
}
|
|
break;
|
|
case 0xef: /* SET 5,A */
|
|
A |= 0x20;
|
|
break;
|
|
case 0xf0: /* SET 6,B */
|
|
B |= 0x40;
|
|
break;
|
|
case 0xf1: /* SET 6,C */
|
|
C |= 0x40;
|
|
break;
|
|
case 0xf2: /* SET 6,D */
|
|
D |= 0x40;
|
|
break;
|
|
case 0xf3: /* SET 6,E */
|
|
E |= 0x40;
|
|
break;
|
|
case 0xf4: /* SET 6,H */
|
|
H |= 0x40;
|
|
break;
|
|
case 0xf5: /* SET 6,L */
|
|
L |= 0x40;
|
|
break;
|
|
case 0xf6: /* SET 6,(HL) */
|
|
{
|
|
uint8 bytetemp = Z80_RB_MACRO( HL );
|
|
contend_read_no_mreq( HL, 1 );
|
|
Z80_WB_MACRO( HL, bytetemp | 0x40 );
|
|
}
|
|
break;
|
|
case 0xf7: /* SET 6,A */
|
|
A |= 0x40;
|
|
break;
|
|
case 0xf8: /* SET 7,B */
|
|
B |= 0x80;
|
|
break;
|
|
case 0xf9: /* SET 7,C */
|
|
C |= 0x80;
|
|
break;
|
|
case 0xfa: /* SET 7,D */
|
|
D |= 0x80;
|
|
break;
|
|
case 0xfb: /* SET 7,E */
|
|
E |= 0x80;
|
|
break;
|
|
case 0xfc: /* SET 7,H */
|
|
H |= 0x80;
|
|
break;
|
|
case 0xfd: /* SET 7,L */
|
|
L |= 0x80;
|
|
break;
|
|
case 0xfe: /* SET 7,(HL) */
|
|
{
|
|
uint8 bytetemp = Z80_RB_MACRO( HL );
|
|
contend_read_no_mreq( HL, 1 );
|
|
Z80_WB_MACRO( HL, bytetemp | 0x80 );
|
|
}
|
|
break;
|
|
case 0xff: /* SET 7,A */
|
|
A |= 0x80;
|
|
break;
|