~ubuntu-branches/ubuntu/raring/mame/raring-proposed

« back to all changes in this revision

Viewing changes to mess/src/emu/cpu/sc61860/sctable.c

  • Committer: Package Import Robot
  • Author(s): Jordi Mallach, Jordi Mallach, Emmanuel Kasper
  • Date: 2011-12-19 22:56:27 UTC
  • mfrom: (0.1.2)
  • Revision ID: package-import@ubuntu.com-20111219225627-ub5oga1oys4ogqzm
Tags: 0.144-1
[ Jordi Mallach ]
* Fix syntax errors in DEP5 copyright file (lintian).
* Use a versioned copyright Format specification field.
* Update Vcs-* URLs.
* Move transitional packages to the new metapackages section, and make
  them priority extra.
* Remove references to GNU/Linux and MESS sources from copyright.
* Add build variables for s390x.
* Use .xz tarballs as it cuts 4MB for the upstream sources.
* Add nplayers.ini as a patch. Update copyright file to add CC-BY-SA-3.0.

[ Emmanuel Kasper ]
* New upstream release. Closes: #651538.
* Add Free Desktop compliant png icons of various sizes taken from
  the hydroxygen iconset
* Mess is now built from a new source package, to avoid possible source
  incompatibilities between mame and the mess overlay.
* Mame-tools are not built from the mame source package anymore, but
  from the mess source package

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
 
2
 
static void sc61860_instruction(sc61860_state *cpustate)
3
 
{
4
 
        int oper=READ_OP(cpustate);
5
 
        if ((oper&0xc0)==0x80) {
6
 
                sc61860_load_imm_p(cpustate, oper&0x3f);cpustate->icount-=2;
7
 
        } else if ((oper&0xe0)==0xe0) {
8
 
                sc61860_call(cpustate, READ_OP(cpustate)|((oper&0x1f)<<8));cpustate->icount-=7;
9
 
        } else {
10
 
                switch(oper) {
11
 
                case 0: sc61860_load_imm(cpustate, I, READ_OP(cpustate));cpustate->icount-=4;break;
12
 
                case 1: sc61860_load_imm(cpustate, J, READ_OP(cpustate));cpustate->icount-=4;break;
13
 
                case 2: sc61860_load_imm(cpustate, A, READ_OP(cpustate));cpustate->icount-=4;break;
14
 
                case 3: sc61860_load_imm(cpustate, B, READ_OP(cpustate));cpustate->icount-=4;break;
15
 
                case 4: sc61860_inc_load_dp(cpustate, XL);cpustate->icount-=6;break;
16
 
                case 5: sc61860_dec_load_dp(cpustate, XL);cpustate->icount-=6;break;
17
 
                case 6: sc61860_inc_load_dp(cpustate, YL);cpustate->icount-=6;break;
18
 
                case 7: sc61860_dec_load_dp(cpustate, YL);cpustate->icount-=6;break;
19
 
                case 8: sc61860_copy(cpustate, READ_RAM(cpustate, I));break;
20
 
                case 9: sc61860_exchange(cpustate, READ_RAM(cpustate, I));break;
21
 
                case 10: sc61860_copy(cpustate, READ_RAM(cpustate, J));break;
22
 
                case 11: sc61860_exchange(cpustate, READ_RAM(cpustate, J));break;
23
 
                case 12: sc61860_add_bcd_a(cpustate);cpustate->icount-=7;break;
24
 
                case 13: sc61860_sub_bcd_a(cpustate);cpustate->icount-=7;break;
25
 
                case 14: sc61860_add_bcd(cpustate);cpustate->icount-=7;break;
26
 
                case 15: sc61860_sub_bcd(cpustate);cpustate->icount-=7;break;
27
 
                case 16: sc61860_load_dp(cpustate);cpustate->icount-=8;break;
28
 
                case 17: sc61860_load_dl(cpustate);cpustate->icount-=5;break;
29
 
                case 18: sc61860_load_imm_p(cpustate, READ_OP(cpustate));cpustate->icount-=4;break;
30
 
                case 19: sc61860_load_imm_q(cpustate, READ_OP(cpustate));cpustate->icount-=4;break;
31
 
                case 20: sc61860_add_word(cpustate);cpustate->icount-=5;break;
32
 
                case 21: sc61860_sub_word(cpustate);cpustate->icount-=5;break;
33
 
                case 24: sc61860_copy_ext(cpustate, READ_RAM(cpustate, I));break;
34
 
                case 25: sc61860_exchange_ext(cpustate, READ_RAM(cpustate, I));break;
35
 
                case 26: sc61860_copy_ext(cpustate, READ_RAM(cpustate, J));break;
36
 
                case 27: sc61860_exchange_ext(cpustate, READ_RAM(cpustate, J));break;
37
 
                case 28: sc61860_shift_right_nibble(cpustate);cpustate->icount-=5;break;
38
 
                case 29: sc61860_shift_left_nibble(cpustate);cpustate->icount-=5;break;
39
 
                case 30: sc61860_fill(cpustate);cpustate->icount-=5;break;
40
 
                case 31: sc61860_fill_ext(cpustate);cpustate->icount-=4;break;
41
 
                case 32: sc61860_store_p(cpustate);cpustate->icount-=2;break;
42
 
                case 33: sc61860_store_q(cpustate);cpustate->icount-=2;break;
43
 
                case 34: sc61860_store_r(cpustate);cpustate->icount-=2;break;
44
 
                case 36: sc61860_inc_load_dp_load(cpustate);cpustate->icount-=7;break;
45
 
                case 37: sc61860_dec_load_dp_load(cpustate);cpustate->icount-=7;break;
46
 
                case 38: sc61860_inc_load_dp_store(cpustate);cpustate->icount-=7;break;
47
 
                case 39: sc61860_dec_load_dp_store(cpustate);cpustate->icount-=7;break;
48
 
                case 40: sc61860_jump_rel_plus(cpustate, !cpustate->zero);cpustate->icount-=4;break;
49
 
                case 41: sc61860_jump_rel_minus(cpustate, !cpustate->zero);cpustate->icount-=4;break;
50
 
                case 42: sc61860_jump_rel_plus(cpustate, !cpustate->carry);cpustate->icount-=4;break;
51
 
                case 43: sc61860_jump_rel_minus(cpustate, !cpustate->carry);cpustate->icount-=4;break;
52
 
                case 44: sc61860_jump_rel_plus(cpustate, TRUE);cpustate->icount-=4;break;
53
 
                case 45: sc61860_jump_rel_minus(cpustate, TRUE);cpustate->icount-=4;break;
54
 
                case 47: sc61860_loop(cpustate);cpustate->icount-=7;break;
55
 
                case 48: sc61860_load_imm_p(cpustate, READ_RAM(cpustate, A));cpustate->icount-=2;break;
56
 
                case 49: sc61860_load_imm_q(cpustate, READ_RAM(cpustate, A));cpustate->icount-=2;break;
57
 
                case 50: sc61860_load_r(cpustate);cpustate->icount-=2;break;
58
 
                case 52: sc61860_push(cpustate);cpustate->icount-=3;break;
59
 
                case 53: sc61860_copy_int(cpustate, READ_RAM(cpustate, I));break;
60
 
                case 55: sc61860_return(cpustate);cpustate->icount-=4;break;
61
 
                case 56: sc61860_jump_rel_plus(cpustate, cpustate->zero);cpustate->icount-=4;break;
62
 
                case 57: sc61860_jump_rel_minus(cpustate, cpustate->zero);cpustate->icount-=4;break;
63
 
                case 58: sc61860_jump_rel_plus(cpustate, cpustate->carry);cpustate->icount-=4;break;
64
 
                case 59: sc61860_jump_rel_minus(cpustate, cpustate->carry);cpustate->icount-=4;break;
65
 
                case 64: sc61860_inc(cpustate, I);cpustate->icount-=4;break;
66
 
                case 65: sc61860_dec(cpustate, I);cpustate->icount-=4;break;
67
 
                case 66: sc61860_inc(cpustate, A);cpustate->icount-=4;break;
68
 
                case 67: sc61860_dec(cpustate, A);cpustate->icount-=4;break;
69
 
                case 68: sc61860_add(cpustate, cpustate->p, READ_RAM(cpustate, A));cpustate->icount-=3;break;
70
 
                case 69: sc61860_sub(cpustate, cpustate->p, READ_RAM(cpustate, A));cpustate->icount-=3;break;
71
 
                case 70: sc61860_and(cpustate, cpustate->p, READ_RAM(cpustate, A));cpustate->icount-=3;break;
72
 
                case 71: sc61860_or(cpustate, cpustate->p, READ_RAM(cpustate, A));cpustate->icount-=3;break;
73
 
                case 72: sc61860_inc(cpustate, K);cpustate->icount-=4;break;
74
 
                case 73: sc61860_dec(cpustate, K);cpustate->icount-=4;break;
75
 
                case 74: sc61860_inc(cpustate, V);cpustate->icount-=4;break;
76
 
                case 75: sc61860_dec(cpustate, V);cpustate->icount-=4;break;
77
 
                case 76: sc61860_in_a(cpustate);cpustate->icount-=2;break;
78
 
                case 77: /*nopw*/;cpustate->icount-=2;break;
79
 
                case 78: sc61860_wait(cpustate);cpustate->icount-=6;break;
80
 
                case 79: sc61860_wait_x(cpustate, FALSE);cpustate->icount-=1;break;
81
 
                case 80: sc61860_inc_p(cpustate);cpustate->icount-=2;break;
82
 
                case 81: sc61860_dec_p(cpustate);cpustate->icount-=2;break;
83
 
                case 82: sc61860_store_ext(cpustate, A);cpustate->icount-=2;break;
84
 
                case 83: sc61860_store_ext(cpustate, cpustate->p);cpustate->icount-=2;break;
85
 
                case 84: sc61860_load_imm(cpustate, cpustate->p, READ_OP(cpustate));cpustate->icount-=3/*?*/;break; // undocumented
86
 
                case 85: sc61860_load_ext(cpustate, cpustate->p);cpustate->icount-=3;break;
87
 
                case 86: sc61860_load_imm(cpustate, cpustate->p, READ_OP(cpustate));cpustate->icount-=3/*?*/;break; // undocumented
88
 
                case 87: sc61860_load_ext(cpustate, A);cpustate->icount-=3;break;
89
 
                case 88: sc61860_swap(cpustate);cpustate->icount-=2;break;
90
 
                case 89: sc61860_load(cpustate);cpustate->icount-=2;break;
91
 
                case 90: sc61860_rotate_left(cpustate);cpustate->icount-=2;break;
92
 
                case 91: sc61860_pop(cpustate);cpustate->icount-=2;break;
93
 
                case 93: sc61860_out_a(cpustate);cpustate->icount-=3;break;
94
 
                case 95: sc61860_out_f(cpustate);cpustate->icount-=3;break;
95
 
                case 96: sc61860_and(cpustate, cpustate->p, READ_OP(cpustate));cpustate->icount-=4;break;
96
 
                case 97: sc61860_or(cpustate, cpustate->p, READ_OP(cpustate));cpustate->icount-=4;break;
97
 
                case 98: sc61860_test(cpustate, cpustate->p, READ_OP(cpustate));cpustate->icount-=4;break;
98
 
                case 99: sc61860_cmp(cpustate, cpustate->p, READ_OP(cpustate));cpustate->icount-=4;break;
99
 
                case 100: sc61860_and(cpustate, A, READ_OP(cpustate));cpustate->icount-=4;break;
100
 
                case 101: sc61860_or(cpustate, A, READ_OP(cpustate));cpustate->icount-=4;break;
101
 
                case 102: sc61860_test(cpustate, A, READ_OP(cpustate));cpustate->icount-=4;break;
102
 
                case 103: sc61860_cmp(cpustate, A, READ_OP(cpustate));cpustate->icount-=4;break;
103
 
                case 105: sc61860_execute_table_call(cpustate);cpustate->icount-=3;break;
104
 
                case 107: sc61860_test_special(cpustate);cpustate->icount-=4;break;
105
 
                case 111: sc61860_wait_x(cpustate, TRUE);cpustate->icount-=1;break;
106
 
                case 112: sc61860_add(cpustate, cpustate->p, READ_OP(cpustate));cpustate->icount-=4;break;
107
 
                case 113: sc61860_sub(cpustate, cpustate->p, READ_OP(cpustate));cpustate->icount-=4;break;
108
 
                case 116: sc61860_add(cpustate, A, READ_OP(cpustate));cpustate->icount-=4;break;
109
 
                case 117: sc61860_sub(cpustate, A, READ_OP(cpustate));cpustate->icount-=4;break;
110
 
                case 120: sc61860_call(cpustate, READ_OP_ARG_WORD(cpustate));cpustate->icount-=8;break;
111
 
                case 121: sc61860_jump(cpustate, 1);cpustate->icount-=6;break;
112
 
                case 122: sc61860_prepare_table_call(cpustate);cpustate->icount-=9;break;
113
 
                case 124: sc61860_jump(cpustate, !cpustate->zero);cpustate->icount-=6;break;
114
 
                case 125: sc61860_jump(cpustate, !cpustate->carry);cpustate->icount-=6;break;
115
 
                case 126: sc61860_jump(cpustate, cpustate->zero);cpustate->icount-=6;break;
116
 
                case 127: sc61860_jump(cpustate, cpustate->carry);cpustate->icount-=6;break;
117
 
                case 192: sc61860_inc(cpustate, J);cpustate->icount-=4;break;
118
 
                case 193: sc61860_dec(cpustate, J);cpustate->icount-=4;break;
119
 
                case 194: sc61860_inc(cpustate, B);cpustate->icount-=4;break;
120
 
                case 195: sc61860_dec(cpustate, B);cpustate->icount-=4;break;
121
 
                case 196: sc61860_add_carry(cpustate);cpustate->icount-=3;break;
122
 
                case 197: sc61860_sub_carry(cpustate);cpustate->icount-=3;break;
123
 
                case 199: sc61860_cmp(cpustate, cpustate->p, READ_RAM(cpustate, A));cpustate->icount-=3;break;
124
 
                case 200: sc61860_inc(cpustate, L);cpustate->icount-=4;break;
125
 
                case 201: sc61860_dec(cpustate, L);cpustate->icount-=4;break;
126
 
                case 202: sc61860_inc(cpustate, W);cpustate->icount-=4;break;
127
 
                case 203: sc61860_dec(cpustate, W);cpustate->icount-=4;break;
128
 
                case 204: sc61860_in_b(cpustate);cpustate->icount-=2;break;
129
 
                case 206: /*nopt*/;cpustate->icount-=3;break;
130
 
                case 208: sc61860_set_carry(cpustate);cpustate->icount-=2;break;
131
 
                case 209: sc61860_reset_carry(cpustate);cpustate->icount-=4;break;
132
 
                case 210: sc61860_rotate_right(cpustate);cpustate->icount-=2;break;
133
 
                case 212: sc61860_and_ext(cpustate);cpustate->icount-=6;break;
134
 
                case 213: sc61860_or_ext(cpustate);cpustate->icount-=6;break;
135
 
                case 214: sc61860_test_ext(cpustate);cpustate->icount-=6;break;
136
 
                case 216: sc61860_leave(cpustate);cpustate->icount-=2;break;
137
 
                case 218: sc61860_exam(cpustate, A, B);cpustate->icount-=3;break;
138
 
                case 219: sc61860_exam(cpustate, A, cpustate->p);cpustate->icount-=3;break;
139
 
                case 221: sc61860_out_b(cpustate);cpustate->icount-=2;break;
140
 
                case 223: sc61860_out_c(cpustate);cpustate->icount-=2;break;
141
 
                default: logerror("sc61860 illegal opcode at %.4x %.2x\n",cpustate->pc-1, oper);
142
 
                }
143
 
        }
144
 
}