1 // license:BSD-3-Clause 2 // copyright-holders:Wilbert Pol 3 #define RLC_8BIT(x) \ 4 { \ 5 uint8_t f; \ 6 (x)=(uint8_t)(((x)<<1)|((x)>>7)); \ 7 if( (x)&1 ) \ 8 f=FLAG_C; \ 9 else \ 10 f=0; \ 11 if( (x)==0 ) \ 12 f|=FLAG_Z; \ 13 m_F=f; \ 14 } 15 16 #define RL_8BIT(x) \ 17 { \ 18 uint8_t r; \ 19 r=((x)&0x80)?FLAG_C:0; \ 20 (x)=(uint8_t)(((x)<<1)|((m_F&FLAG_C)?1:0)); \ 21 if( (x)==0 ) \ 22 r|=FLAG_Z; \ 23 m_F=r; \ 24 } 25 26 #define RRC_8BIT(x) \ 27 { \ 28 uint8_t f; \ 29 (x)=(uint8_t)(((x)>>1)|((x)<<7)); \ 30 if( (x)&0x80 ) \ 31 f=FLAG_C; \ 32 else \ 33 f=0; \ 34 if( (x)==0 ) \ 35 f|=FLAG_Z; \ 36 m_F=f; \ 37 } 38 39 #define RR_8BIT(x) \ 40 { \ 41 uint8_t r; \ 42 r=((x)&1)?FLAG_C:0; \ 43 (x)=(uint8_t)(((x)>>1)|((m_F&FLAG_C)?0x80:0)); \ 44 if( (x)==0 ) \ 45 r|=FLAG_Z; \ 46 m_F=r; \ 47 } 48 49 #define SLA_8BIT(x) \ 50 { \ 51 uint8_t f; \ 52 if( (x)&0x80 ) \ 53 f=FLAG_C; \ 54 else \ 55 f=0; \ 56 (x)<<=1; \ 57 if( (x)==0 ) \ 58 f|=FLAG_Z; \ 59 m_F=f; \ 60 } 61 62 #define SRA_8BIT(x) \ 63 { \ 64 uint8_t f; \ 65 if( (x)&1 ) \ 66 f=FLAG_C; \ 67 else \ 68 f=0; \ 69 (x)=(uint8_t)(((char)(x))>>1); \ 70 if( (x)==0 ) \ 71 f|=FLAG_Z; \ 72 m_F=f; \ 73 } 74 75 #define SWAP_8BIT(x) \ 76 (x)=(uint8_t)(((x)>>4)|((x)<<4)); \ 77 if( (x)==0 ) \ 78 m_F=FLAG_Z; \ 79 else \ 80 m_F=0; 81 82 83 #define SRL_8BIT(x) \ 84 { \ 85 uint8_t f; \ 86 if( (x)&1 ) \ 87 f=FLAG_C; \ 88 else \ 89 f=0; \ 90 (x)>>=1; \ 91 if( (x)==0 ) \ 92 f|=FLAG_Z; \ 93 m_F=f; \ 94 } 95 96 #define BIT_8BIT(n,x) \ 97 if( (x)&(1<<(n)) ) \ 98 m_F=(uint8_t)(FLAG_H|(m_F&FLAG_C)); \ 99 else \ 100 m_F=(uint8_t)(FLAG_Z|FLAG_H|(m_F&FLAG_C)); 101 102 #define RES_8BIT(n,x) (x)&=~(1<<(n)); 103 104 #define SET_8BIT(n,x) (x)|=(1<<(n)); 105 106 /**********************************************************/ 107 108 case 0x00: 109 /* RLC B */ 110 111 RLC_8BIT (m_B) 112 break; 113 case 0x01: 114 /* RLC C */ 115 116 RLC_8BIT (m_C) 117 break; 118 case 0x02: 119 /* RLC D */ 120 121 RLC_8BIT (m_D) 122 break; 123 case 0x03: 124 /* RLC E */ 125 126 RLC_8BIT (m_E) 127 break; 128 case 0x04: 129 /* RLC H */ 130 131 RLC_8BIT (m_H) 132 break; 133 case 0x05: 134 /* RLC L */ 135 136 RLC_8BIT (m_L) 137 break; 138 case 0x06: 139 /* RLC (HL) */ 140 { 141 uint16_t addr = ( m_H << 8 ) | m_L; 142 143 x = mem_read_byte( addr ); 144 RLC_8BIT (x) 145 mem_write_byte( addr, x ); 146 } 147 break; 148 case 0x07: 149 /* RLC A */ 150 151 RLC_8BIT (m_A) 152 break; 153 case 0x08: 154 /* RRC B */ 155 156 RRC_8BIT (m_B) 157 break; 158 case 0x09: 159 /* RRC C */ 160 161 RRC_8BIT (m_C) 162 break; 163 case 0x0A: 164 /* RRC D */ 165 166 RRC_8BIT (m_D) 167 break; 168 case 0x0B: 169 /* RRC E */ 170 171 RRC_8BIT (m_E) 172 break; 173 case 0x0C: 174 /* RRC H */ 175 176 RRC_8BIT (m_H) 177 break; 178 case 0x0D: 179 /* RRC L */ 180 181 RRC_8BIT (m_L) 182 break; 183 case 0x0E: 184 /* RRC (HL) */ 185 { 186 uint16_t addr = ( m_H << 8 ) | m_L; 187 188 x = mem_read_byte( addr); 189 RRC_8BIT (x) 190 mem_write_byte( addr, x); 191 } 192 break; 193 case 0x0F: 194 /* RRC A */ 195 196 RRC_8BIT (m_A) 197 break; 198 case 0x10: 199 /* RL B */ 200 201 RL_8BIT (m_B) 202 break; 203 case 0x11: 204 /* RL C */ 205 206 RL_8BIT (m_C) 207 break; 208 case 0x12: 209 /* RL D */ 210 211 RL_8BIT (m_D) 212 break; 213 case 0x13: 214 /* RL E */ 215 216 RL_8BIT (m_E) 217 break; 218 case 0x14: 219 /* RL H */ 220 221 RL_8BIT (m_H) 222 break; 223 case 0x15: 224 /* RL L */ 225 226 RL_8BIT (m_L) 227 break; 228 case 0x16: 229 /* RL (HL) */ 230 { 231 uint16_t addr = ( m_H << 8 ) | m_L; 232 233 x = mem_read_byte( addr); 234 RL_8BIT (x) 235 mem_write_byte( addr, x); 236 } 237 break; 238 case 0x17: 239 /* RL A */ 240 241 RL_8BIT (m_A) 242 break; 243 case 0x18: 244 /* RR B */ 245 246 RR_8BIT (m_B) 247 break; 248 case 0x19: 249 /* RR C */ 250 251 RR_8BIT (m_C) 252 break; 253 case 0x1A: 254 /* RR D */ 255 256 RR_8BIT (m_D) 257 break; 258 case 0x1B: 259 /* RR E */ 260 261 RR_8BIT (m_E) 262 break; 263 case 0x1C: 264 /* RR H */ 265 266 RR_8BIT (m_H) 267 break; 268 case 0x1D: 269 /* RR L */ 270 271 RR_8BIT (m_L) 272 break; 273 case 0x1E: 274 /* RR (HL) */ 275 { 276 uint16_t addr = ( m_H << 8 ) | m_L; 277 278 x = mem_read_byte( addr); 279 RR_8BIT (x) 280 mem_write_byte( addr, x); 281 } 282 break; 283 case 0x1F: 284 /* RR A */ 285 286 RR_8BIT (m_A) 287 break; 288 case 0x20: 289 /* SLA B */ 290 291 SLA_8BIT (m_B) 292 break; 293 case 0x21: 294 /* SLA C */ 295 296 SLA_8BIT (m_C) 297 break; 298 case 0x22: 299 /* SLA D */ 300 301 SLA_8BIT (m_D) 302 break; 303 case 0x23: 304 /* SLA E */ 305 306 SLA_8BIT (m_E) 307 break; 308 case 0x24: 309 /* SLA H */ 310 311 SLA_8BIT (m_H) 312 break; 313 case 0x25: 314 /* SLA L */ 315 316 SLA_8BIT (m_L) 317 break; 318 case 0x26: 319 /* SLA (HL) */ 320 { 321 uint16_t addr = ( m_H << 8 ) | m_L; 322 323 x = mem_read_byte( addr); 324 SLA_8BIT (x) 325 mem_write_byte( addr, x); 326 } 327 break; 328 case 0x27: 329 /* SLA A */ 330 331 SLA_8BIT (m_A) 332 break; 333 case 0x28: 334 /* SRA B */ 335 336 SRA_8BIT (m_B) 337 break; 338 case 0x29: 339 /* SRA C */ 340 341 SRA_8BIT (m_C) 342 break; 343 case 0x2A: 344 /* SRA D */ 345 346 SRA_8BIT (m_D) 347 break; 348 case 0x2B: 349 /* SRA E */ 350 351 SRA_8BIT (m_E) 352 break; 353 case 0x2C: 354 /* SRA H */ 355 356 SRA_8BIT (m_H) 357 break; 358 case 0x2D: 359 /* SRA L */ 360 361 SRA_8BIT (m_L) 362 break; 363 case 0x2E: 364 /* SRA (HL) */ 365 { 366 uint16_t addr = ( m_H << 8 ) | m_L; 367 368 x = mem_read_byte( addr); 369 SRA_8BIT (x) 370 mem_write_byte( addr, x); 371 } 372 break; 373 case 0x2F: 374 /* SRA A */ 375 376 SRA_8BIT (m_A) 377 break; 378 case 0x30: 379 /* SWAP B */ 380 381 SWAP_8BIT (m_B) 382 break; 383 case 0x31: 384 /* SWAP C */ 385 386 SWAP_8BIT (m_C) 387 break; 388 case 0x32: 389 /* SWAP D */ 390 391 SWAP_8BIT (m_D) 392 break; 393 case 0x33: 394 /* SWAP E */ 395 396 SWAP_8BIT (m_E) 397 break; 398 case 0x34: 399 /* SWAP H */ 400 401 SWAP_8BIT (m_H) 402 break; 403 case 0x35: 404 /* SWAP L */ 405 406 SWAP_8BIT (m_L) 407 break; 408 case 0x36: 409 /* SWAP (HL) */ 410 { 411 uint16_t addr = ( m_H << 8 ) | m_L; 412 413 x = mem_read_byte( addr); 414 SWAP_8BIT (x) 415 mem_write_byte( addr, x); 416 } 417 break; 418 case 0x37: 419 /* SWAP A */ 420 421 SWAP_8BIT (m_A) 422 break; 423 case 0x38: 424 /* SRL B */ 425 426 SRL_8BIT (m_B) 427 break; 428 case 0x39: 429 /* SRL C */ 430 431 SRL_8BIT (m_C) 432 break; 433 case 0x3A: 434 /* SRL D */ 435 436 SRL_8BIT (m_D) 437 break; 438 case 0x3B: 439 /* SRL E */ 440 441 SRL_8BIT (m_E) 442 break; 443 case 0x3C: 444 /* SRL H */ 445 446 SRL_8BIT (m_H) 447 break; 448 case 0x3D: 449 /* SRL L */ 450 451 SRL_8BIT (m_L) 452 break; 453 case 0x3E: 454 /* SRL (HL) */ 455 { 456 uint16_t addr = ( m_H << 8 ) | m_L; 457 458 x = mem_read_byte( addr); 459 SRL_8BIT (x) 460 mem_write_byte( addr, x); 461 } 462 break; 463 case 0x3F: 464 /* SRL A */ 465 466 SRL_8BIT (m_A) 467 break; 468 case 0x40: 469 /* BIT 0,B */ 470 471 BIT_8BIT (0, m_B) 472 break; 473 case 0x41: 474 /* BIT 0,C */ 475 476 BIT_8BIT (0, m_C) 477 break; 478 case 0x42: 479 /* BIT 0,D */ 480 481 BIT_8BIT (0, m_D) 482 break; 483 case 0x43: 484 /* BIT 0,E */ 485 486 BIT_8BIT (0, m_E) 487 break; 488 case 0x44: 489 /* BIT 0,H */ 490 491 BIT_8BIT (0, m_H) 492 break; 493 case 0x45: 494 /* BIT 0,L */ 495 496 BIT_8BIT (0, m_L) 497 break; 498 case 0x46: 499 /* BIT 0,(HL) */ 500 { 501 uint16_t addr = ( m_H << 8 ) | m_L; 502 503 x = mem_read_byte( addr); 504 BIT_8BIT (0, x) 505 } 506 break; 507 case 0x47: 508 /* BIT 0,A */ 509 510 BIT_8BIT (0, m_A) 511 break; 512 case 0x48: 513 /* BIT 1,B */ 514 515 BIT_8BIT (1, m_B) 516 break; 517 case 0x49: 518 /* BIT 1,C */ 519 520 BIT_8BIT (1, m_C) 521 break; 522 case 0x4A: 523 /* BIT 1,D */ 524 525 BIT_8BIT (1, m_D) 526 break; 527 case 0x4B: 528 /* BIT 1,E */ 529 530 BIT_8BIT (1, m_E) 531 break; 532 case 0x4C: 533 /* BIT 1,H */ 534 535 BIT_8BIT (1, m_H) 536 break; 537 case 0x4D: 538 /* BIT 1,L */ 539 540 BIT_8BIT (1, m_L) 541 break; 542 case 0x4E: 543 /* BIT 1,(HL) */ 544 { 545 uint16_t addr = ( m_H << 8 ) | m_L; 546 547 x = mem_read_byte( addr); 548 BIT_8BIT (1, x) 549 } 550 break; 551 case 0x4F: 552 /* BIT 1,A */ 553 554 BIT_8BIT (1, m_A) 555 break; 556 case 0x50: 557 /* BIT 2,B */ 558 559 BIT_8BIT (2, m_B) 560 break; 561 case 0x51: 562 /* BIT 2,C */ 563 564 BIT_8BIT (2, m_C) 565 break; 566 case 0x52: 567 /* BIT 2,D */ 568 569 BIT_8BIT (2, m_D) 570 break; 571 case 0x53: 572 /* BIT 2,E */ 573 574 BIT_8BIT (2, m_E) 575 break; 576 case 0x54: 577 /* BIT 2,H */ 578 579 BIT_8BIT (2, m_H) 580 break; 581 case 0x55: 582 /* BIT 2,L */ 583 584 BIT_8BIT (2, m_L) 585 break; 586 case 0x56: 587 /* BIT 2,(HL) */ 588 { 589 uint16_t addr = ( m_H << 8 ) | m_L; 590 591 x = mem_read_byte( addr); 592 BIT_8BIT (2, x) 593 } 594 break; 595 case 0x57: 596 /* BIT 2,A */ 597 598 BIT_8BIT (2, m_A) 599 break; 600 case 0x58: 601 /* BIT 3,B */ 602 603 BIT_8BIT (3, m_B) 604 break; 605 case 0x59: 606 /* BIT 3,C */ 607 608 BIT_8BIT (3, m_C) 609 break; 610 case 0x5A: 611 /* BIT 3,D */ 612 613 BIT_8BIT (3, m_D) 614 break; 615 case 0x5B: 616 /* BIT 3,E */ 617 618 BIT_8BIT (3, m_E) 619 break; 620 case 0x5C: 621 /* BIT 3,H */ 622 623 BIT_8BIT (3, m_H) 624 break; 625 case 0x5D: 626 /* BIT 3,L */ 627 628 BIT_8BIT (3, m_L) 629 break; 630 case 0x5E: 631 /* BIT 3,(HL) */ 632 { 633 uint16_t addr = ( m_H << 8 ) | m_L; 634 635 x = mem_read_byte( addr); 636 BIT_8BIT (3, x) 637 } 638 break; 639 case 0x5F: 640 /* BIT 3,A */ 641 642 BIT_8BIT (3, m_A) 643 break; 644 case 0x60: 645 /* BIT 4,B */ 646 647 BIT_8BIT (4, m_B) 648 break; 649 case 0x61: 650 /* BIT 4,C */ 651 652 BIT_8BIT (4, m_C) 653 break; 654 case 0x62: 655 /* BIT 4,D */ 656 657 BIT_8BIT (4, m_D) 658 break; 659 case 0x63: 660 /* BIT 4,E */ 661 662 BIT_8BIT (4, m_E) 663 break; 664 case 0x64: 665 /* BIT 4,H */ 666 667 BIT_8BIT (4, m_H) 668 break; 669 case 0x65: 670 /* BIT 4,L */ 671 672 BIT_8BIT (4, m_L) 673 break; 674 case 0x66: 675 /* BIT 4,(HL) */ 676 { 677 uint16_t addr = ( m_H << 8 ) | m_L; 678 679 x = mem_read_byte( addr); 680 BIT_8BIT (4, x) 681 } 682 break; 683 case 0x67: 684 /* BIT 4,A */ 685 686 BIT_8BIT (4, m_A) 687 break; 688 case 0x68: 689 /* BIT 5,B */ 690 691 BIT_8BIT (5, m_B) 692 break; 693 case 0x69: 694 /* BIT 5,C */ 695 696 BIT_8BIT (5, m_C) 697 break; 698 case 0x6A: 699 /* BIT 5,D */ 700 701 BIT_8BIT (5, m_D) 702 break; 703 case 0x6B: 704 /* BIT 5,E */ 705 706 BIT_8BIT (5, m_E) 707 break; 708 case 0x6C: 709 /* BIT 5,H */ 710 711 BIT_8BIT (5, m_H) 712 break; 713 case 0x6D: 714 /* BIT 5,L */ 715 716 BIT_8BIT (5, m_L) 717 break; 718 case 0x6E: 719 /* BIT 5,(HL) */ 720 { 721 uint16_t addr = ( m_H << 8 ) | m_L; 722 723 x = mem_read_byte( addr); 724 BIT_8BIT (5, x) 725 } 726 break; 727 case 0x6F: 728 /* BIT 5,A */ 729 730 BIT_8BIT (5, m_A) 731 break; 732 case 0x70: 733 /* BIT 6,B */ 734 735 BIT_8BIT (6, m_B) 736 break; 737 case 0x71: 738 /* BIT 6,C */ 739 740 BIT_8BIT (6, m_C) 741 break; 742 case 0x72: 743 /* BIT 6,D */ 744 745 BIT_8BIT (6, m_D) 746 break; 747 case 0x73: 748 /* BIT 6,E */ 749 750 BIT_8BIT (6, m_E) 751 break; 752 case 0x74: 753 /* BIT 6,H */ 754 755 BIT_8BIT (6, m_H) 756 break; 757 case 0x75: 758 /* BIT 6,L */ 759 760 BIT_8BIT (6, m_L) 761 break; 762 case 0x76: 763 /* BIT 6,(HL) */ 764 { 765 uint16_t addr = ( m_H << 8 ) | m_L; 766 767 x = mem_read_byte( addr); 768 BIT_8BIT (6, x) 769 } 770 break; 771 case 0x77: 772 /* BIT 6,A */ 773 774 BIT_8BIT (6, m_A) 775 break; 776 case 0x78: 777 /* BIT 7,B */ 778 779 BIT_8BIT (7, m_B) 780 break; 781 case 0x79: 782 /* BIT 7,C */ 783 784 BIT_8BIT (7, m_C) 785 break; 786 case 0x7A: 787 /* BIT 7,D */ 788 789 BIT_8BIT (7, m_D) 790 break; 791 case 0x7B: 792 /* BIT 7,E */ 793 794 BIT_8BIT (7, m_E) 795 break; 796 case 0x7C: 797 /* BIT 7,H */ 798 799 BIT_8BIT (7, m_H) 800 break; 801 case 0x7D: 802 /* BIT 7,L */ 803 804 BIT_8BIT (7, m_L) 805 break; 806 case 0x7E: 807 /* BIT 7,(HL) */ 808 { 809 uint16_t addr = ( m_H << 8 ) | m_L; 810 811 x = mem_read_byte( addr); 812 BIT_8BIT (7, x) 813 } 814 break; 815 case 0x7F: 816 /* BIT 7,A */ 817 818 BIT_8BIT (7, m_A) 819 break; 820 case 0x80: 821 /* RES 0,B */ 822 823 RES_8BIT (0, m_B) 824 break; 825 case 0x81: 826 /* RES 0,C */ 827 828 RES_8BIT (0, m_C) 829 break; 830 case 0x82: 831 /* RES 0,D */ 832 833 RES_8BIT (0, m_D) 834 break; 835 case 0x83: 836 /* RES 0,E */ 837 838 RES_8BIT (0, m_E) 839 break; 840 case 0x84: 841 /* RES 0,H */ 842 843 RES_8BIT (0, m_H) 844 break; 845 case 0x85: 846 /* RES 0,L */ 847 848 RES_8BIT (0, m_L) 849 break; 850 case 0x86: 851 /* RES 0,(HL) */ 852 { 853 uint16_t addr = ( m_H << 8 ) | m_L; 854 855 x = mem_read_byte( addr); 856 RES_8BIT (0, x) 857 mem_write_byte( addr, x); 858 } 859 break; 860 case 0x87: 861 /* RES 0,A */ 862 863 RES_8BIT (0, m_A) 864 break; 865 case 0x88: 866 /* RES 1,B */ 867 868 RES_8BIT (1, m_B) 869 break; 870 case 0x89: 871 /* RES 1,C */ 872 873 RES_8BIT (1, m_C) 874 break; 875 case 0x8A: 876 /* RES 1,D */ 877 878 RES_8BIT (1, m_D) 879 break; 880 case 0x8B: 881 /* RES 1,E */ 882 883 RES_8BIT (1, m_E) 884 break; 885 case 0x8C: 886 /* RES 1,H */ 887 888 RES_8BIT (1, m_H) 889 break; 890 case 0x8D: 891 /* RES 1,L */ 892 893 RES_8BIT (1, m_L) 894 break; 895 case 0x8E: 896 /* RES 1,(HL) */ 897 { 898 uint16_t addr = ( m_H << 8 ) | m_L; 899 900 x = mem_read_byte( addr); 901 RES_8BIT (1, x) 902 mem_write_byte( addr, x); 903 } 904 break; 905 case 0x8F: 906 /* RES 1,A */ 907 908 RES_8BIT (1, m_A) 909 break; 910 case 0x90: 911 /* RES 2,B */ 912 913 RES_8BIT (2, m_B) 914 break; 915 case 0x91: 916 /* RES 2,C */ 917 918 RES_8BIT (2, m_C) 919 break; 920 case 0x92: 921 /* RES 2,D */ 922 923 RES_8BIT (2, m_D) 924 break; 925 case 0x93: 926 /* RES 2,E */ 927 928 RES_8BIT (2, m_E) 929 break; 930 case 0x94: 931 /* RES 2,H */ 932 933 RES_8BIT (2, m_H) 934 break; 935 case 0x95: 936 /* RES 2,L */ 937 938 RES_8BIT (2, m_L) 939 break; 940 case 0x96: 941 /* RES 2,(HL) */ 942 { 943 uint16_t addr = ( m_H << 8 ) | m_L; 944 945 x = mem_read_byte( addr); 946 RES_8BIT (2, x) 947 mem_write_byte( addr, x); 948 } 949 break; 950 case 0x97: 951 /* RES 2,A */ 952 953 RES_8BIT (2, m_A) 954 break; 955 case 0x98: 956 /* RES 3,B */ 957 958 RES_8BIT (3, m_B) 959 break; 960 case 0x99: 961 /* RES 3,C */ 962 963 RES_8BIT (3, m_C) 964 break; 965 case 0x9A: 966 /* RES 3,D */ 967 968 RES_8BIT (3, m_D) 969 break; 970 case 0x9B: 971 /* RES 3,E */ 972 973 RES_8BIT (3, m_E) 974 break; 975 case 0x9C: 976 /* RES 3,H */ 977 978 RES_8BIT (3, m_H) 979 break; 980 case 0x9D: 981 /* RES 3,L */ 982 983 RES_8BIT (3, m_L) 984 break; 985 case 0x9E: 986 /* RES 3,(HL) */ 987 { 988 uint16_t addr = ( m_H << 8 ) | m_L; 989 990 x = mem_read_byte( addr); 991 RES_8BIT (3, x) 992 mem_write_byte( addr, x); 993 } 994 break; 995 case 0x9F: 996 /* RES 3,A */ 997 998 RES_8BIT (3, m_A) 999 break; 1000 case 0xA0: 1001 /* RES 4,B */ 1002 1003 RES_8BIT (4, m_B) 1004 break; 1005 case 0xA1: 1006 /* RES 4,C */ 1007 1008 RES_8BIT (4, m_C) 1009 break; 1010 case 0xA2: 1011 /* RES 4,D */ 1012 1013 RES_8BIT (4, m_D) 1014 break; 1015 case 0xA3: 1016 /* RES 4,E */ 1017 1018 RES_8BIT (4, m_E) 1019 break; 1020 case 0xA4: 1021 /* RES 4,H */ 1022 1023 RES_8BIT (4, m_H) 1024 break; 1025 case 0xA5: 1026 /* RES 4,L */ 1027 1028 RES_8BIT (4, m_L) 1029 break; 1030 case 0xA6: 1031 /* RES 4,(HL) */ 1032 { 1033 uint16_t addr = ( m_H << 8 ) | m_L; 1034 1035 x = mem_read_byte( addr); 1036 RES_8BIT (4, x) 1037 mem_write_byte( addr, x); 1038 } 1039 break; 1040 case 0xA7: 1041 /* RES 4,A */ 1042 1043 RES_8BIT (4, m_A) 1044 break; 1045 case 0xA8: 1046 /* RES 5,B */ 1047 1048 RES_8BIT (5, m_B) 1049 break; 1050 case 0xA9: 1051 /* RES 5,C */ 1052 1053 RES_8BIT (5, m_C) 1054 break; 1055 case 0xAA: 1056 /* RES 5,D */ 1057 1058 RES_8BIT (5, m_D) 1059 break; 1060 case 0xAB: 1061 /* RES 5,E */ 1062 1063 RES_8BIT (5, m_E) 1064 break; 1065 case 0xAC: 1066 /* RES 5,H */ 1067 1068 RES_8BIT (5, m_H) 1069 break; 1070 case 0xAD: 1071 /* RES 5,L */ 1072 1073 RES_8BIT (5, m_L) 1074 break; 1075 case 0xAE: 1076 /* RES 5,(HL) */ 1077 { 1078 uint16_t addr = ( m_H << 8 ) | m_L; 1079 1080 x = mem_read_byte( addr); 1081 RES_8BIT (5, x) 1082 mem_write_byte( addr, x); 1083 } 1084 break; 1085 case 0xAF: 1086 /* RES 5,A */ 1087 1088 RES_8BIT (5, m_A) 1089 break; 1090 case 0xB0: 1091 /* RES 6,B */ 1092 1093 RES_8BIT (6, m_B) 1094 break; 1095 case 0xB1: 1096 /* RES 6,C */ 1097 1098 RES_8BIT (6, m_C) 1099 break; 1100 case 0xB2: 1101 /* RES 6,D */ 1102 1103 RES_8BIT (6, m_D) 1104 break; 1105 case 0xB3: 1106 /* RES 6,E */ 1107 1108 RES_8BIT (6, m_E) 1109 break; 1110 case 0xB4: 1111 /* RES 6,H */ 1112 1113 RES_8BIT (6, m_H) 1114 break; 1115 case 0xB5: 1116 /* RES 6,L */ 1117 1118 RES_8BIT (6, m_L) 1119 break; 1120 case 0xB6: 1121 /* RES 6,(HL) */ 1122 { 1123 uint16_t addr = ( m_H << 8 ) | m_L; 1124 1125 x = mem_read_byte( addr); 1126 RES_8BIT (6, x) 1127 mem_write_byte( addr, x); 1128 } 1129 break; 1130 case 0xB7: 1131 /* RES 6,A */ 1132 1133 RES_8BIT (6, m_A) 1134 break; 1135 case 0xB8: 1136 /* RES 7,B */ 1137 1138 RES_8BIT (7, m_B) 1139 break; 1140 case 0xB9: 1141 /* RES 7,C */ 1142 1143 RES_8BIT (7, m_C) 1144 break; 1145 case 0xBA: 1146 /* RES 7,D */ 1147 1148 RES_8BIT (7, m_D) 1149 break; 1150 case 0xBB: 1151 /* RES 7,E */ 1152 1153 RES_8BIT (7, m_E) 1154 break; 1155 case 0xBC: 1156 /* RES 7,H */ 1157 1158 RES_8BIT (7, m_H) 1159 break; 1160 case 0xBD: 1161 /* RES 7,L */ 1162 1163 RES_8BIT (7, m_L) 1164 break; 1165 case 0xBE: 1166 /* RES 7,(HL) */ 1167 { 1168 uint16_t addr = ( m_H << 8 ) | m_L; 1169 1170 x = mem_read_byte( addr); 1171 RES_8BIT (7, x) 1172 mem_write_byte( addr, x); 1173 } 1174 break; 1175 case 0xBF: 1176 /* RES 7,A */ 1177 1178 RES_8BIT (7, m_A) 1179 break; 1180 case 0xC0: 1181 /* SET 0,B */ 1182 1183 SET_8BIT (0, m_B) 1184 break; 1185 case 0xC1: 1186 /* SET 0,C */ 1187 1188 SET_8BIT (0, m_C) 1189 break; 1190 case 0xC2: 1191 /* SET 0,D */ 1192 1193 SET_8BIT (0, m_D) 1194 break; 1195 case 0xC3: 1196 /* SET 0,E */ 1197 1198 SET_8BIT (0, m_E) 1199 break; 1200 case 0xC4: 1201 /* SET 0,H */ 1202 1203 SET_8BIT (0, m_H) 1204 break; 1205 case 0xC5: 1206 /* SET 0,L */ 1207 1208 SET_8BIT (0, m_L) 1209 break; 1210 case 0xC6: 1211 /* SET 0,(HL) */ 1212 { 1213 uint16_t addr = ( m_H << 8 ) | m_L; 1214 1215 x = mem_read_byte( addr); 1216 SET_8BIT (0, x) 1217 mem_write_byte( addr, x); 1218 } 1219 break; 1220 case 0xC7: 1221 /* SET 0,A */ 1222 1223 SET_8BIT (0, m_A) 1224 break; 1225 case 0xC8: 1226 /* SET 1,B */ 1227 1228 SET_8BIT (1, m_B) 1229 break; 1230 case 0xC9: 1231 /* SET 1,C */ 1232 1233 SET_8BIT (1, m_C) 1234 break; 1235 case 0xCA: 1236 /* SET 1,D */ 1237 1238 SET_8BIT (1, m_D) 1239 break; 1240 case 0xCB: 1241 /* SET 1,E */ 1242 1243 SET_8BIT (1, m_E) 1244 break; 1245 case 0xCC: 1246 /* SET 1,H */ 1247 1248 SET_8BIT (1, m_H) 1249 break; 1250 case 0xCD: 1251 /* SET 1,L */ 1252 1253 SET_8BIT (1, m_L) 1254 break; 1255 case 0xCE: 1256 /* SET 1,(HL) */ 1257 { 1258 uint16_t addr = ( m_H << 8 ) | m_L; 1259 1260 x = mem_read_byte( addr); 1261 SET_8BIT (1, x) 1262 mem_write_byte( addr, x); 1263 } 1264 break; 1265 case 0xCF: 1266 /* SET 1,A */ 1267 1268 SET_8BIT (1, m_A) 1269 break; 1270 case 0xD0: 1271 /* SET 2,B */ 1272 1273 SET_8BIT (2, m_B) 1274 break; 1275 case 0xD1: 1276 /* SET 2,C */ 1277 1278 SET_8BIT (2, m_C) 1279 break; 1280 case 0xD2: 1281 /* SET 2,D */ 1282 1283 SET_8BIT (2, m_D) 1284 break; 1285 case 0xD3: 1286 /* SET 2,E */ 1287 1288 SET_8BIT (2, m_E) 1289 break; 1290 case 0xD4: 1291 /* SET 2,H */ 1292 1293 SET_8BIT (2, m_H) 1294 break; 1295 case 0xD5: 1296 /* SET 2,L */ 1297 1298 SET_8BIT (2, m_L) 1299 break; 1300 case 0xD6: 1301 /* SET 2,(HL) */ 1302 { 1303 uint16_t addr = ( m_H << 8 ) | m_L; 1304 1305 x = mem_read_byte( addr); 1306 SET_8BIT (2, x) 1307 mem_write_byte( addr, x); 1308 } 1309 break; 1310 case 0xD7: 1311 /* SET 2,A */ 1312 1313 SET_8BIT (2, m_A) 1314 break; 1315 case 0xD8: 1316 /* SET 3,B */ 1317 1318 SET_8BIT (3, m_B) 1319 break; 1320 case 0xD9: 1321 /* SET 3,C */ 1322 1323 SET_8BIT (3, m_C) 1324 break; 1325 case 0xDA: 1326 /* SET 3,D */ 1327 1328 SET_8BIT (3, m_D) 1329 break; 1330 case 0xDB: 1331 /* SET 3,E */ 1332 1333 SET_8BIT (3, m_E) 1334 break; 1335 case 0xDC: 1336 /* SET 3,H */ 1337 1338 SET_8BIT (3, m_H) 1339 break; 1340 case 0xDD: 1341 /* SET 3,L */ 1342 1343 SET_8BIT (3, m_L) 1344 break; 1345 case 0xDE: 1346 /* SET 3,(HL) */ 1347 { 1348 uint16_t addr = ( m_H << 8 ) | m_L; 1349 1350 x = mem_read_byte( addr); 1351 SET_8BIT (3, x) 1352 mem_write_byte( addr, x); 1353 } 1354 break; 1355 case 0xDF: 1356 /* SET 3,A */ 1357 1358 SET_8BIT (3, m_A) 1359 break; 1360 case 0xE0: 1361 /* SET 4,B */ 1362 1363 SET_8BIT (4, m_B) 1364 break; 1365 case 0xE1: 1366 /* SET 4,C */ 1367 1368 SET_8BIT (4, m_C) 1369 break; 1370 case 0xE2: 1371 /* SET 4,D */ 1372 1373 SET_8BIT (4, m_D) 1374 break; 1375 case 0xE3: 1376 /* SET 4,E */ 1377 1378 SET_8BIT (4, m_E) 1379 break; 1380 case 0xE4: 1381 /* SET 4,H */ 1382 1383 SET_8BIT (4, m_H) 1384 break; 1385 case 0xE5: 1386 /* SET 4,L */ 1387 1388 SET_8BIT (4, m_L) 1389 break; 1390 case 0xE6: 1391 /* SET 4,(HL) */ 1392 { 1393 uint16_t addr = ( m_H << 8 ) | m_L; 1394 1395 x = mem_read_byte( addr); 1396 SET_8BIT (4, x) 1397 mem_write_byte( addr, x); 1398 } 1399 break; 1400 case 0xE7: 1401 /* SET 4,A */ 1402 1403 SET_8BIT (4, m_A) 1404 break; 1405 case 0xE8: 1406 /* SET 5,B */ 1407 1408 SET_8BIT (5, m_B) 1409 break; 1410 case 0xE9: 1411 /* SET 5,C */ 1412 1413 SET_8BIT (5, m_C) 1414 break; 1415 case 0xEA: 1416 /* SET 5,D */ 1417 1418 SET_8BIT (5, m_D) 1419 break; 1420 case 0xEB: 1421 /* SET 5,E */ 1422 1423 SET_8BIT (5, m_E) 1424 break; 1425 case 0xEC: 1426 /* SET 5,H */ 1427 1428 SET_8BIT (5, m_H) 1429 break; 1430 case 0xED: 1431 /* SET 5,L */ 1432 1433 SET_8BIT (5, m_L) 1434 break; 1435 case 0xEE: 1436 /* SET 5,(HL) */ 1437 { 1438 uint16_t addr = ( m_H << 8 ) | m_L; 1439 1440 x = mem_read_byte( addr); 1441 SET_8BIT (5, x) 1442 mem_write_byte( addr, x); 1443 } 1444 break; 1445 case 0xEF: 1446 /* SET 5,A */ 1447 1448 SET_8BIT (5, m_A) 1449 break; 1450 case 0xF0: 1451 /* SET 6,B */ 1452 1453 SET_8BIT (6, m_B) 1454 break; 1455 case 0xF1: 1456 /* SET 6,C */ 1457 1458 SET_8BIT (6, m_C) 1459 break; 1460 case 0xF2: 1461 /* SET 6,D */ 1462 1463 SET_8BIT (6, m_D) 1464 break; 1465 case 0xF3: 1466 /* SET 6,E */ 1467 1468 SET_8BIT (6, m_E) 1469 break; 1470 case 0xF4: 1471 /* SET 6,H */ 1472 1473 SET_8BIT (6, m_H) 1474 break; 1475 case 0xF5: 1476 /* SET 6,L */ 1477 1478 SET_8BIT (6, m_L) 1479 break; 1480 case 0xF6: 1481 /* SET 6,(HL) */ 1482 { 1483 uint16_t addr = ( m_H << 8 ) | m_L; 1484 1485 x = mem_read_byte( addr); 1486 SET_8BIT (6, x) 1487 mem_write_byte( addr, x); 1488 } 1489 break; 1490 case 0xF7: 1491 /* SET 6,A */ 1492 1493 SET_8BIT (6, m_A) 1494 break; 1495 case 0xF8: 1496 /* SET 7,B */ 1497 1498 SET_8BIT (7, m_B) 1499 break; 1500 case 0xF9: 1501 /* SET 7,C */ 1502 1503 SET_8BIT (7, m_C) 1504 break; 1505 case 0xFA: 1506 /* SET 7,D */ 1507 1508 SET_8BIT (7, m_D) 1509 break; 1510 case 0xFB: 1511 /* SET 7,E */ 1512 1513 SET_8BIT (7, m_E) 1514 break; 1515 case 0xFC: 1516 /* SET 7,H */ 1517 1518 SET_8BIT (7, m_H) 1519 break; 1520 case 0xFD: 1521 /* SET 7,L */ 1522 1523 SET_8BIT (7, m_L) 1524 break; 1525 case 0xFE: 1526 /* SET 7,(HL) */ 1527 { 1528 uint16_t addr = ( m_H << 8 ) | m_L; 1529 1530 x = mem_read_byte( addr); 1531 SET_8BIT (7, x) 1532 mem_write_byte( addr, x); 1533 } 1534 break; 1535 case 0xFF: 1536 /* SET 7,A */ 1537 1538 SET_8BIT (7, m_A) 1539 break; 1540