Previous 199869 Revisions Next

r36460 Tuesday 17th March, 2015 at 20:34:00 UTC by hap
messing around
[src/emu/cpu/hmcs40]hmcs40.c hmcs40op.inc

trunk/src/emu/cpu/hmcs40/hmcs40.c
r244971r244972
570570      m_i = BITSWAP8(m_op,7,6,5,4,0,1,2,3) & 0xf; // reversed bit-order for immediate param
571571      increment_pc();
572572
573      // handle opcode
574      switch (m_op)
575      {
573576/*
574577
575578op_ayy();  -
r244971r244972
585588op_blem(); - 267 024
586589op_lay();  - 118
587590
591
588592*/
589593
590      // handle opcode
591      switch (m_op)
592      {
593594         case 0x118:
594595            op_lay(); // probably lay
595596            break;
597         
598         case 0x046:
599            op_daa();
600            break;
601         case 0x045:
602            op_das();
603            break;
604
605
596606         case 0x267:
597            op_blem(); break; // bnem or blem
607            op_blem(); // bnem or blem
608            break;
609
598610         case 0x124:
599611            op_alem(); // alem or anem
600612            break;
601613         case 0x324:
602            op_anem(); break; // "
614            op_anem(); // "
615            break;
616
603617         case 0x024:
604618            //op_nega();
605619            //op_am();
606620            op_illegal();
607621            break;
608         case 0x234:
609            // sm?
610#if 0
611            m_a = ram_r() - m_a;
612            m_s = ~m_a >> 4 & 1;
613            m_a &= 0xf;
614#else
615            op_am();
616#endif
622
623         case 0x04b:
624            op_illegal();
625            //op_rec();
617626            break;
618627         case 0x04c:
619            op_illegal();
620            //m_c ^= 1;
621            //op_lat();
628            op_rec();
622629            break;
623630
631         case 0x030:
632            op_amc();
633            break;
634         case 0x034:
635            //op_illegal();
636            op_amc(); // mirror?
637            break;
624638
639         case 0x230:
640            op_smc();
641            break;
642         case 0x234:
643            //op_illegal();
644            op_smc(); // mirror?
645            break;
625646
626647
648
649
650
651
652
627653         /* 0x000 */
628654         
629655         case 0x000: case 0x001: case 0x002: case 0x003:
r244971r244972
637663/* ok */      op_lmiiy(); break;
638664         case 0x020: case 0x021: case 0x022: case 0x023:
639665            op_lbm(); break;
640         case 0x030:
641            op_amc(); break;
642666         case 0x03c:
643667            op_lta(); break;
644668         
645669         case 0x040:
646670/* ok */      op_lxa(); break;
647         case 0x04b:
648            op_rec(); break;
649671         case 0x04f:
650672            op_sec(); break;
651673         case 0x050:
r244971r244972
751773/* ok */      op_rotr(); break;
752774         case 0x225:
753775/* ok */      op_rotl(); break;
754         case 0x230:
755            op_smc(); break;
756776         case 0x23c:
757777            op_lat(); break;
758778         
trunk/src/emu/cpu/hmcs40/hmcs40op.inc
r244971r244972
662662   if (o & 0x100)
663663   {
664664      // B3 B2 B1 B0 A0 A1 A2 A3
665      m_a = BITSWAP8((UINT8)o,7,6,5,4,0,1,2,3) & 0xf;
665      m_a = BITSWAP8(o,7,6,5,4,0,1,2,3) & 0xf;
666666      m_b = o >> 4 & 0xf;
667667   }
668668   if (o & 0x200)
669669   {
670670      // R20 R21 R22 R23 R30 R31 R32 R33
671      o = BITSWAP8((UINT8)o,0,1,2,3,4,5,6,7);
671      o = BITSWAP8(o,0,1,2,3,4,5,6,7);
672672      write_r(2, o & 0xf);
673673      write_r(3, o >> 4 & 0xf);
674674   }


Previous 199869 Revisions Next


© 1997-2024 The MAME Team