Previous 199869 Revisions Next

r17634 Tuesday 4th September, 2012 at 15:09:39 UTC by Angelo Salese
Improved SPC700 cycle opcode timings [Angelo Salese, byuu]
[src/emu/cpu/g65816]g65816.c
[src/emu/cpu/spc700]spc700.c
[src/mess/drivers]snes.c

trunk/src/emu/cpu/spc700/spc700.c
r17633r17634
663663         DST     = OPER_8_IMM(cpustate);                                 \
664664         if(!(SRC & BIT))                                    \
665665         {                                                \
666            CLK(1);                                          \
666            CLK(2);                                          \
667667            BRANCH(cpustate, DST);                                    \
668668         }
669669
r17633r17634
674674         DST     = OPER_8_IMM(cpustate);                                 \
675675         if(SRC & BIT)                                       \
676676         {                                                \
677            CLK(1);                                          \
677            CLK(2);                                          \
678678            BRANCH(cpustate, DST);                                    \
679679         }
680680
r17633r17634
684684         DST     = OPER_8_IMM(cpustate);                                 \
685685         if(COND)                                          \
686686         {                                                \
687            CLK(1);                                          \
687            CLK(2);                                          \
688688            BRANCH(cpustate, DST);                                    \
689689         }
690690
r17633r17634
719719         DST     = EA_IMM(cpustate);                                    \
720720         if(SRC != REG_A)                                    \
721721         {                                                \
722            CLK(1);                                          \
722            CLK(2);                                          \
723723            BRANCH(cpustate, read_8_IMM(DST));                           \
724724         }
725725
r17633r17634
812812         DST    = EA_IMM(cpustate);                                    \
813813         if(REG_Y != 0)                                       \
814814         {                                                \
815            CLK(1);                                          \
815            CLK(2);                                          \
816816            BRANCH(cpustate, read_8_IMM(DST));                           \
817817         }
818818
r17633r17634
826826         DST = EA_IMM(cpustate);                                       \
827827         if(SRC != 0)                                       \
828828         {                                                \
829            CLK(1);                                          \
829            CLK(2);                                          \
830830            BRANCH(cpustate, read_8_IMM(DST));                           \
831831         }
832832
r17633r17634
13691369         case 0x01: OP_TCALL ( 8, 0            ); break; /* TCALL 0       */
13701370         case 0x02: OP_SET   ( 4, BIT_0        ); break; /* SET 0         */
13711371         case 0x03: OP_BBS   ( 5, BIT_0        ); break; /* BBS 0         */
1372
13721373         case 0x04: OP_OR    ( 3, DP           ); break; /* ORA dp        */
13731374         case 0x05: OP_OR    ( 4, ABS          ); break; /* ORA abs       */
13741375         case 0x06: OP_OR    ( 3, XI           ); break; /* ORA xi        */
13751376         case 0x07: OP_OR    ( 6, DXI          ); break; /* ORA dxi       */
1377
13761378         case 0x08: OP_OR    ( 2, IMM          ); break; /* ORA imm       */
13771379         case 0x09: OP_ORM   ( 6, DP , DP      ); break; /* ORM dp dp     */
13781380         case 0x0a: OP_OR1   ( 5               ); break; /* OR1 bit       */
13791381         case 0x0b: OP_ASLM  ( 4, DP           ); break; /* ASL dp        */
1380         case 0x0c: OP_ASLM  ( 4, ABS          ); break; /* ASL abs       */
1382
1383         case 0x0c: OP_ASLM  ( 5, ABS          ); break; /* ASL abs       */
13811384         case 0x0d: OP_PHP   ( 4               ); break; /* PHP           */
13821385         case 0x0e: OP_TSET1 ( 6, ABS          ); break; /* TSET1 abs     */
13831386         case 0x0f: OP_BRK   ( 8               ); break; /* BRK           */
1387
13841388         case 0x10: OP_BCC   ( 2, COND_PL()    ); break; /* BPL           */
13851389         case 0x11: OP_TCALL ( 8, 1            ); break; /* TCALL 1       */
13861390         case 0x12: OP_CLR   ( 4, BIT_0        ); break; /* CLR 0         */
13871391         case 0x13: OP_BBC   ( 5, BIT_0        ); break; /* BBC 0         */
1392
13881393         case 0x14: OP_OR    ( 4, DPX          ); break; /* ORA dpx       */
13891394         case 0x15: OP_OR    ( 5, ABX          ); break; /* ORA abx       */
13901395         case 0x16: OP_OR    ( 5, ABY          ); break; /* ORA aby       */
13911396         case 0x17: OP_OR    ( 6, DIY          ); break; /* ORA diy       */
1392         case 0x18: OP_ORM   ( 6, IMM, DP      ); break; /* ORM dp, imm   */
1393         case 0x19: OP_ORM   ( 6, YI, XI       ); break; /* ORM xi, yi    */
1397
1398         case 0x18: OP_ORM   ( 5, IMM, DP      ); break; /* ORM dp, imm   */
1399         case 0x19: OP_ORM   ( 5, YI, XI       ); break; /* ORM xi, yi    */
13941400         case 0x1a: OP_DECW  ( 6               ); break; /* DECW di       */
13951401         case 0x1b: OP_ASLM  ( 5, DPX          ); break; /* ASL dpx       */
1402
13961403         case 0x1c: OP_ASL   ( 2               ); break; /* ASL a         */
13971404         case 0x1d: OP_DECR  ( 2, REG_X        ); break; /* DEC x         */
13981405         case 0x1e: OP_CMPR  ( 4, REG_X, ABS   ); break; /* CMP x, abs    */
13991406         case 0x1f: OP_JMP   ( 6, AXI          ); break; /* JMP axi       */
1407
14001408         case 0x20: OP_CLRP  ( 2               ); break; /* CLRP          */
14011409         case 0x21: OP_TCALL ( 8, 2            ); break; /* TCALL 2       */
14021410         case 0x22: OP_SET   ( 4, BIT_1        ); break; /* SET 1         */
14031411         case 0x23: OP_BBS   ( 5, BIT_1        ); break; /* BBS 1         */
1412
14041413         case 0x24: OP_AND   ( 3, DP           ); break; /* AND dp        */
14051414         case 0x25: OP_AND   ( 4, ABS          ); break; /* AND abs       */
14061415         case 0x26: OP_AND   ( 3, XI           ); break; /* AND xi        */
14071416         case 0x27: OP_AND   ( 6, DXI          ); break; /* AND dxi       */
1417
14081418         case 0x28: OP_AND   ( 2, IMM          ); break; /* AND imm       */
14091419         case 0x29: OP_ANDM  ( 6, DP , DP      ); break; /* AND dp, dp    */
14101420         case 0x2a: OP_ORN1  ( 5               ); break; /* OR1 !bit      */
14111421         case 0x2b: OP_ROLM  ( 4, DP           ); break; /* ROL dp        */
1422
14121423         case 0x2c: OP_ROLM  ( 5, ABS          ); break; /* ROL abs       */
14131424         case 0x2d: OP_PUSH  ( 4, REG_A        ); break; /* PUSH a        */
14141425         case 0x2e: OP_CBNE  ( 5, DP           ); break; /* CBNE dp       */
14151426         case 0x2f: OP_BRA   ( 4               ); break; /* BRA           */
1427
14161428         case 0x30: OP_BCC   ( 2, COND_MI()    ); break; /* BMI           */
14171429         case 0x31: OP_TCALL ( 8, 3            ); break; /* TCALL 3       */
14181430         case 0x32: OP_CLR   ( 4, BIT_1        ); break; /* CLR 1         */
14191431         case 0x33: OP_BBC   ( 5, BIT_1        ); break; /* BBC 1         */
1432
14201433         case 0x34: OP_AND   ( 4, DPX          ); break; /* AND dpx       */
14211434         case 0x35: OP_AND   ( 5, ABX          ); break; /* AND abx       */
14221435         case 0x36: OP_AND   ( 5, ABY          ); break; /* AND aby       */
14231436         case 0x37: OP_AND   ( 6, DIY          ); break; /* AND diy       */
1437
14241438         case 0x38: OP_ANDM  ( 5, IMM, DP      ); break; /* AND dp, imm   */
14251439         case 0x39: OP_ANDM  ( 5, YI , XI      ); break; /* AND xi, yi    */
14261440         case 0x3a: OP_INCW  ( 6               ); break; /* INCW di       */
14271441         case 0x3b: OP_ROLM  ( 5, DPX          ); break; /* ROL dpx       */
1442
14281443         case 0x3c: OP_ROL   ( 2               ); break; /* ROL acc       */
14291444         case 0x3d: OP_INCR  ( 2, REG_X        ); break; /* INC x         */
14301445         case 0x3e: OP_CMPR  ( 3, REG_X, DP    ); break; /* CMP x, dp     */
14311446         case 0x3f: OP_CALL  ( 8               ); break; /* CALL abs      */
1447
14321448         case 0x40: OP_SETP  ( 2               ); break; /* RTI           */
14331449         case 0x41: OP_TCALL ( 8, 4            ); break; /* TCALL 4       */
14341450         case 0x42: OP_SET   ( 4, BIT_2        ); break; /* SET 2         */
14351451         case 0x43: OP_BBS   ( 5, BIT_2        ); break; /* BBS 2         */
1452
14361453         case 0x44: OP_EOR   ( 3, DP           ); break; /* EOR dp        */
14371454         case 0x45: OP_EOR   ( 4, ABS          ); break; /* EOR abs       */
14381455         case 0x46: OP_EOR   ( 3, XI           ); break; /* EOR xi        */
14391456         case 0x47: OP_EOR   ( 6, DXI          ); break; /* EOR dxi       */
1457
14401458         case 0x48: OP_EOR   ( 2, IMM          ); break; /* EOR imm       */
14411459         case 0x49: OP_EORM  ( 6, DP, DP       ); break; /* EOR dp, dp    */
1442         case 0x4a: OP_AND1  ( 5               ); break; /* AND1 bit      */
1460         case 0x4a: OP_AND1  ( 4               ); break; /* AND1 bit      */
14431461         case 0x4b: OP_LSRM  ( 4, DP           ); break; /* LSR dp        */
1462
14441463         case 0x4c: OP_LSRM  ( 5, ABS          ); break; /* LSR abs       */
14451464         case 0x4d: OP_PUSH  ( 4, REG_X        ); break; /* PUSH x        */
14461465         case 0x4e: OP_TCLR1 ( 6, ABS          ); break; /* TCLR1 abs     */
14471466         case 0x4f: OP_PCALL ( 6               ); break; /* PCALL         */
1467
14481468         case 0x50: OP_BCC   ( 2, COND_VC()    ); break; /* BVC           */
14491469         case 0x51: OP_TCALL ( 8, 5            ); break; /* TCALL 5       */
14501470         case 0x52: OP_CLR   ( 4, BIT_2        ); break; /* CLR 2         */
14511471         case 0x53: OP_BBC   ( 5, BIT_2        ); break; /* BBC 2         */
1472
14521473         case 0x54: OP_EOR   ( 4, DPX          ); break; /* EOR dpx       */
14531474         case 0x55: OP_EOR   ( 5, ABX          ); break; /* EOR abx       */
14541475         case 0x56: OP_EOR   ( 5, ABY          ); break; /* EOR aby       */
14551476         case 0x57: OP_EOR   ( 6, DIY          ); break; /* EOR diy       */
1477
14561478         case 0x58: OP_EORM  ( 5, IMM, DP      ); break; /* EOR dp, imm   */
14571479         case 0x59: OP_EORM  ( 5, YI , XI      ); break; /* EOR xi, yi    */
14581480         case 0x5a: OP_CMPW  ( 4, DP           ); break; /* CMPW dp       */
14591481         case 0x5b: OP_LSRM  ( 5, DPX          ); break; /* LSR dpx       */
1482
14601483         case 0x5c: OP_LSR   ( 2               ); break; /* LSR           */
14611484         case 0x5d: OP_MOVRR ( 2, REG_A, REG_X ); break; /* MOV X, A      */
14621485         case 0x5e: OP_CMPR  ( 4, REG_Y, ABS   ); break; /* CMP Y, abs    */
14631486         case 0x5f: OP_JMP   ( 3, ABS          ); break; /* JMP abs       */
1487
14641488         case 0x60: OP_CLRC  ( 2               ); break; /* CLRC          */
14651489         case 0x61: OP_TCALL ( 8, 6            ); break; /* TCALL 6       */
14661490         case 0x62: OP_SET   ( 4, BIT_3        ); break; /* SET 3         */
14671491         case 0x63: OP_BBS   ( 5, BIT_3        ); break; /* BBS 3         */
1492
14681493         case 0x64: OP_CMPR  ( 3, REG_A, DP    ); break; /* CMP A, dp     */
14691494         case 0x65: OP_CMPR  ( 4, REG_A, ABS   ); break; /* CMP A, abs    */
14701495         case 0x66: OP_CMPR  ( 3, REG_A, XI    ); break; /* CMP A, xi     */
14711496         case 0x67: OP_CMPR  ( 6, REG_A, DXI   ); break; /* CMP A, dxi    */
1497
14721498         case 0x68: OP_CMPR  ( 2, REG_A, IMM   ); break; /* CMP A, imm    */
14731499         case 0x69: OP_CMPM  ( 6, DP, DP       ); break; /* CMP dp, dp    */
14741500         case 0x6a: OP_ANDN1 ( 4               ); break; /* AND1 !bit     */
14751501         case 0x6b: OP_RORM  ( 4, DP           ); break; /* ROR dp        */
1502
14761503         case 0x6c: OP_RORM  ( 5, ABS          ); break; /* ROR abs       */
14771504         case 0x6d: OP_PUSH  ( 4, REG_Y        ); break; /* PUSH Y        */
14781505         case 0x6e: OP_DBNZM ( 5               ); break; /* DBNZ dp       */
14791506         case 0x6f: OP_RET   ( 5               ); break; /* RET           */
1507
14801508         case 0x70: OP_BCC   ( 2, COND_VS()    ); break; /* BVS           */
14811509         case 0x71: OP_TCALL ( 8, 7            ); break; /* TCALL 7       */
14821510         case 0x72: OP_CLR   ( 4, BIT_3        ); break; /* CLR 3         */
r17633r17634
14851513         case 0x75: OP_CMPR  ( 5, REG_A, ABX   ); break; /* CMP A, abx    */
14861514         case 0x76: OP_CMPR  ( 5, REG_A, ABY   ); break; /* CMP A, aby    */
14871515         case 0x77: OP_CMPR  ( 6, REG_A, DIY   ); break; /* CMP A, diy    */
1516
14881517         case 0x78: OP_CMPM  ( 5, IMM, DP      ); break; /* CMP dp, imm   */
14891518         case 0x79: OP_CMPM  ( 5, YI, XI       ); break; /* CMP xi, yi    */
14901519         case 0x7a: OP_ADDW  ( 5               ); break; /* ADDW di       */
14911520         case 0x7b: OP_RORM  ( 5, DPX          ); break; /* ROR dpx       */
1521
14921522         case 0x7c: OP_ROR   ( 2               ); break; /* ROR A         */
14931523         case 0x7d: OP_MOVRR ( 2, REG_X, REG_A ); break; /* MOV A, X      */
14941524         case 0x7e: OP_CMPR  ( 3, REG_Y, DP    ); break; /* CMP Y, dp     */
14951525         case 0x7f: OP_RETI  ( 6               ); break; /* RETI          */
1526
14961527         case 0x80: OP_SETC  ( 2               ); break; /* SETC          */
14971528         case 0x81: OP_TCALL ( 8, 8            ); break; /* TCALL 8       */
14981529         case 0x82: OP_SET   ( 4, BIT_4        ); break; /* SET 4         */
14991530         case 0x83: OP_BBS   ( 5, BIT_4        ); break; /* BBS 4         */
1531
15001532         case 0x84: OP_ADC   ( 3, DP           ); break; /* ADC dp        */
15011533         case 0x85: OP_ADC   ( 4, ABS          ); break; /* ADC abs       */
15021534         case 0x86: OP_ADC   ( 3, XI           ); break; /* ADC xi        */
15031535         case 0x87: OP_ADC   ( 6, DXI          ); break; /* ADC dxi       */
1536
15041537         case 0x88: OP_ADC   ( 2, IMM          ); break; /* ADC imm       */
15051538         case 0x89: OP_ADCM  ( 6, DP, DP       ); break; /* ADC dp, dp    */
1506         case 0x8a: OP_EOR1  ( 4               ); break; /* EOR1 bit      */
1539         case 0x8a: OP_EOR1  ( 5               ); break; /* EOR1 bit      */
15071540         case 0x8b: OP_DECM  ( 4, DP           ); break; /* DEC dp        */
1541
15081542         case 0x8c: OP_DECM  ( 5, ABS          ); break; /* DEC abs       */
15091543         case 0x8d: OP_MOVMR ( 2, IMM, REG_Y   ); break; /* MOV Y, imm    */
15101544         case 0x8e: OP_PLP   ( 4               ); break; /* POP PSW       */
15111545         case 0x8f: OP_MOVMM ( 5, IMM, DP      ); break; /* MOV dp, imm   */
1546
15121547         case 0x90: OP_BCC   ( 2, COND_CC()    ); break; /* BCC           */
15131548         case 0x91: OP_TCALL ( 8, 9            ); break; /* TCALL 9       */
15141549         case 0x92: OP_CLR   ( 4, BIT_4        ); break; /* CLR 4         */
15151550         case 0x93: OP_BBC   ( 5, BIT_4        ); break; /* BBC 4         */
1551
15161552         case 0x94: OP_ADC   ( 4, DPX          ); break; /* ADC dpx       */
15171553         case 0x95: OP_ADC   ( 5, ABX          ); break; /* ADC abx       */
15181554         case 0x96: OP_ADC   ( 5, ABY          ); break; /* ADC aby       */
15191555         case 0x97: OP_ADC   ( 6, DIY          ); break; /* ADC diy       */
1556
15201557         case 0x98: OP_ADCM  ( 5, IMM, DP      ); break; /* ADC dp, imm   */
15211558         case 0x99: OP_ADCM  ( 5, YI, XI       ); break; /* ADC xi, yi    */
15221559         case 0x9a: OP_SUBW  ( 5               ); break; /* SUBW dp       */
15231560         case 0x9b: OP_DECM  ( 5, DPX          ); break; /* DEC dpx       */
1561
15241562         case 0x9c: OP_DECR  ( 2, REG_A        ); break; /* DEC A         */
15251563         case 0x9d: OP_MOVSX ( 2               ); break; /* MOV X, SP     */
15261564         case 0x9e: OP_DIV   (12               ); break; /* DIV YA, X     */
15271565         case 0x9f: OP_XCN   ( 5               ); break; /* XCN A         */
1566
15281567         case 0xa0: OP_EI    ( 3               ); break; /* EI            */
15291568         case 0xa1: OP_TCALL ( 8, 10           ); break; /* TCALL 10      */
15301569         case 0xa2: OP_SET   ( 4, BIT_5        ); break; /* SET 5         */
15311570         case 0xa3: OP_BBS   ( 5, BIT_5        ); break; /* BBS 5         */
1571
15321572         case 0xa4: OP_SBC   ( 3, DP           ); break; /* SBC dp        */
15331573         case 0xa5: OP_SBC   ( 4, ABS          ); break; /* SBC abs       */
15341574         case 0xa6: OP_SBC   ( 3, XI           ); break; /* SBC xi        */
15351575         case 0xa7: OP_SBC   ( 6, DXI          ); break; /* SBC dxi       */
1576
15361577         case 0xa8: OP_SBC   ( 2, IMM          ); break; /* SBC imm       */
15371578         case 0xa9: OP_SBCM  ( 6, DP, DP       ); break; /* SBC dp, dp    */
15381579         case 0xaa: OP_MOV1C ( 4               ); break; /* MOV1 bit->C   */
15391580         case 0xab: OP_INCM  ( 4, DP           ); break; /* INC dp        */
1581
15401582         case 0xac: OP_INCM  ( 5, ABS          ); break; /* INC abs       */
15411583         case 0xad: OP_CMPR  ( 2, REG_Y, IMM   ); break; /* CMP Y, imm    */
15421584         case 0xae: OP_PULL  ( 4, REG_A        ); break; /* POP A         */
15431585         case 0xaf: OP_MOVRM ( 4, REG_A, XII   ); break; /* MOV xii, A    */
1586
15441587         case 0xb0: OP_BCC   ( 2, COND_CS()    ); break; /* BCS           */
15451588         case 0xb1: OP_TCALL ( 8, 11           ); break; /* TCALL 11      */
15461589         case 0xb2: OP_CLR   ( 4, BIT_5        ); break; /* CLR 5         */
15471590         case 0xb3: OP_BBC   ( 5, BIT_5        ); break; /* BBC 5         */
1591
15481592         case 0xb4: OP_SBC   ( 4, DPX          ); break; /* SBC dpx       */
15491593         case 0xb5: OP_SBC   ( 5, ABX          ); break; /* SBC abx       */
15501594         case 0xb6: OP_SBC   ( 5, ABY          ); break; /* SBC aby       */
15511595         case 0xb7: OP_SBC   ( 6, DIY          ); break; /* SBC diy       */
1596
15521597         case 0xb8: OP_SBCM  ( 5, IMM, DP      ); break; /* SBC dp, imm   */
15531598         case 0xb9: OP_SBCM  ( 5, YI, XI       ); break; /* SBC xi, yi    */
15541599         case 0xba: OP_MOVWMR( 5               ); break; /* MOVW YA, dp   */
15551600         case 0xbb: OP_INCM  ( 5, DPX          ); break; /* INC dpx       */
1601
15561602         case 0xbc: OP_INCR  ( 2, REG_A        ); break; /* INC A         */
15571603         case 0xbd: OP_MOVXS ( 2               ); break; /* MOV SP, X     */
15581604         case 0xbe: OP_DAS   ( 3               ); break; /* DAS A         */
15591605         case 0xbf: OP_MOVMR ( 4, XII, REG_A   ); break; /* MOV A, xii    */
1606
15601607         case 0xc0: OP_DI    ( 3               ); break; /* DI            */
15611608         case 0xc1: OP_TCALL ( 8, 12           ); break; /* TCALL 12      */
15621609         case 0xc2: OP_SET   ( 4, BIT_6        ); break; /* SET 6         */
r17633r17634
15651612         case 0xc5: OP_MOVRM ( 5, REG_A, ABS   ); break; /* MOV abs, A    */
15661613         case 0xc6: OP_MOVRM ( 4, REG_A, XI    ); break; /* MOV xi, A     */
15671614         case 0xc7: OP_MOVRM ( 7, REG_A, DXI   ); break; /* MOV dxi, A    */
1615
15681616         case 0xc8: OP_CMPR  ( 2, REG_X, IMM   ); break; /* CMP X, imm    */
15691617         case 0xc9: OP_MOVRM ( 5, REG_X, ABS   ); break; /* MOV abs, X    */
15701618         case 0xca: OP_MOV1M ( 6               ); break; /* MOV1 C->bit   */
15711619         case 0xcb: OP_MOVRM ( 4, REG_Y, DP    ); break; /* MOV dp, Y     */
1620
15721621         case 0xcc: OP_MOVRM ( 5, REG_Y, ABS   ); break; /* MOV abs, Y    */
15731622         case 0xcd: OP_MOVMR ( 2, IMM, REG_X   ); break; /* MOV X, imm    */
15741623         case 0xce: OP_PULL  ( 4, REG_X        ); break; /* POP X         */
15751624         case 0xcf: OP_MUL   ( 9               ); break; /* MUL YA        */
1625
15761626         case 0xd0: OP_BCC   ( 2, COND_NE()    ); break; /* BNE           */
15771627         case 0xd1: OP_TCALL ( 8, 13           ); break; /* TCALL 13      */
15781628         case 0xd2: OP_CLR   ( 4, BIT_6        ); break; /* CLR 6         */
15791629         case 0xd3: OP_BBC   ( 5, BIT_6        ); break; /* BBC 6         */
1630
15801631         case 0xd4: OP_MOVRM ( 5, REG_A, DPX   ); break; /* MOV dpx, A    */
15811632         case 0xd5: OP_MOVRM ( 6, REG_A, ABX   ); break; /* MOV abx, A    */
15821633         case 0xd6: OP_MOVRM ( 6, REG_A, ABY   ); break; /* MOV aby, A    */
15831634         case 0xd7: OP_MOVRM ( 7, REG_A, DIY   ); break; /* MOV diy, A    */
1635
15841636         case 0xd8: OP_MOVRM ( 4, REG_X, DP    ); break; /* MOV dp, X     */
15851637         case 0xd9: OP_MOVRM ( 5, REG_X, DPY   ); break; /* MOV dpy, X    */
15861638         case 0xda: OP_MOVWRM( 5               ); break; /* MOVW dp, YA   */
15871639         case 0xdb: OP_MOVRM ( 5, REG_Y, DPX   ); break; /* MOV dpx, Y    */
1640
15881641         case 0xdc: OP_DECR  ( 2, REG_Y        ); break; /* DEC Y         */
15891642         case 0xdd: OP_MOVRR ( 2, REG_Y, REG_A ); break; /* MOV A, Y      */
15901643         case 0xde: OP_CBNE  ( 6, DPX          ); break; /* CBNE dpx      */
15911644         case 0xdf: OP_DAA   ( 3               ); break; /* DAA           */
1645
15921646         case 0xe0: OP_CLRV  ( 2               ); break; /* CLRV          */
15931647         case 0xe1: OP_TCALL ( 8, 14           ); break; /* TCALL 14      */
15941648         case 0xe2: OP_SET   ( 4, BIT_7        ); break; /* SET 7         */
15951649         case 0xe3: OP_BBS   ( 5, BIT_7        ); break; /* BBS 7         */
1650
15961651         case 0xe4: OP_MOVMR ( 3, DP, REG_A    ); break; /* MOV A, dp     */
15971652         case 0xe5: OP_MOVMR ( 4, ABS, REG_A   ); break; /* MOV A, abs    */
15981653         case 0xe6: OP_MOVMR ( 3, XI, REG_A    ); break; /* MOV A, xi     */
15991654         case 0xe7: OP_MOVMR ( 6, DXI, REG_A   ); break; /* MOV A, dxi    */
1655
16001656         case 0xe8: OP_MOVMR ( 2, IMM, REG_A   ); break; /* CMP A, imm    */
16011657         case 0xe9: OP_MOVMR ( 4, ABS, REG_X   ); break; /* MOV X, abs    */
16021658         case 0xea: OP_NOT1  ( 5               ); break; /* NOT1          */
16031659         case 0xeb: OP_MOVMR ( 3, DP, REG_Y    ); break; /* MOV Y, dp     */
1660
16041661         case 0xec: OP_MOVMR ( 4, ABS, REG_Y   ); break; /* MOV Y, abs    */
16051662         case 0xed: OP_NOTC  ( 3               ); break; /* NOTC          */
16061663         case 0xee: OP_PULL  ( 4, REG_Y        ); break; /* POP Y         */
1607         case 0xef: OP_SLEEP ( 3               ); break; /* SLEEP         */
1664         case 0xef: OP_SLEEP ( 1               ); break; /* SLEEP         */
1665
16081666         case 0xf0: OP_BCC   ( 2, COND_EQ()    ); break; /* BEQ           */
16091667         case 0xf1: OP_TCALL ( 8, 15           ); break; /* TCALL1 5      */
16101668         case 0xf2: OP_CLR   ( 4, BIT_7        ); break; /* CLR 7         */
16111669         case 0xf3: OP_BBC   ( 5, BIT_7        ); break; /* BBC 7         */
1670
16121671         case 0xf4: OP_MOVMR ( 4, DPX, REG_A   ); break; /* MOV A, dpx    */
16131672         case 0xf5: OP_MOVMR ( 5, ABX, REG_A   ); break; /* MOV A, abx    */
16141673         case 0xf6: OP_MOVMR ( 5, ABY, REG_A   ); break; /* MOV A, aby    */
16151674         case 0xf7: OP_MOVMR ( 6, DIY, REG_A   ); break; /* MOV A, diy    */
1675
16161676         case 0xf8: OP_MOVMR ( 3, DP, REG_X    ); break; /* MOV X, dp     */
16171677         case 0xf9: OP_MOVMR ( 4, DPY, REG_X   ); break; /* MOV X, dpy    */
16181678         case 0xfa: OP_MOVMM ( 5, DP, DP       ); break; /* MOV dp, dp    */
r17633r17634
16201680         case 0xfc: OP_INCR  ( 2, REG_Y        ); break; /* INC Y         */
16211681         case 0xfd: OP_MOVRR ( 2, REG_A, REG_Y ); break; /* MOV Y, A      */
16221682         case 0xfe: OP_DBNZR ( 4               ); break; /* DBNZ Y        */
1623         case 0xff: OP_STOP  ( 3               ); break; /* STOP          */
1683         case 0xff: OP_STOP  ( 1               ); break; /* STOP          */
16241684      }
16251685   }
16261686}
trunk/src/emu/cpu/g65816/g65816.c
r17633r17634
536536      return 0;
537537
538538   if(addr & 0x408000) {
539      if(addr & 0x800000) return (cpustate->fastROM & 1) ? 6 : 8;
539      if(addr & 0x800000)
540         return (cpustate->fastROM & 1) ? 6 : 8;
541
540542      return 8;
541543   }
542544   if((addr + 0x6000) & 0x4000) return 8;
trunk/src/mess/drivers/snes.c
r17633r17634
718718   MCFG_VIDEO_START(snes)
719719
720720   MCFG_SCREEN_ADD("screen", RASTER)
721   MCFG_SCREEN_RAW_PARAMS(DOTCLK_NTSC, SNES_HTOTAL, 0, SNES_SCR_WIDTH, SNES_VTOTAL_NTSC, 0, SNES_SCR_HEIGHT_NTSC)
721   MCFG_SCREEN_RAW_PARAMS(DOTCLK_NTSC * 2, SNES_HTOTAL * 2, 0, SNES_SCR_WIDTH * 2, SNES_VTOTAL_NTSC, 0, SNES_SCR_HEIGHT_NTSC)
722722   MCFG_SCREEN_UPDATE_DRIVER( snes_state, snes_screen_update )
723723
724724   /* sound hardware */

Previous 199869 Revisions Next


© 1997-2024 The MAME Team