Previous 15994 Revisions Next

r15516 Friday 29th June, 2012 at 20:25:12 UTC by Wilbert Pol
Fixed some bugs in upd7810 core. Credited in MAME (nw)
[src/emu/cpu/upd7810]7810ops.c

src/emu/cpu/upd7810/7810ops.c
r15515r15516
68066806
68076807   RDOPARG( imm );
68086808   tmp = V + imm + (PSW & CY);
6809   ZHC_SUB( tmp, V, (PSW & CY) );
6809   ZHC_ADD( tmp, V, (PSW & CY) );
68106810   V = tmp;
68116811}
68126812
r15515r15516
68176817
68186818   RDOPARG( imm );
68196819   tmp = A + imm + (PSW & CY);
6820   ZHC_SUB( tmp, A, (PSW & CY) );
6820   ZHC_ADD( tmp, A, (PSW & CY) );
68216821   A = tmp;
68226822}
68236823
r15515r15516
68286828
68296829   RDOPARG( imm );
68306830   tmp = B + imm + (PSW & CY);
6831   ZHC_SUB( tmp, B, (PSW & CY) );
6831   ZHC_ADD( tmp, B, (PSW & CY) );
68326832   B = tmp;
68336833}
68346834
r15515r15516
68396839
68406840   RDOPARG( imm );
68416841   tmp = C + imm + (PSW & CY);
6842   ZHC_SUB( tmp, C, (PSW & CY) );
6842   ZHC_ADD( tmp, C, (PSW & CY) );
68436843   C = tmp;
68446844}
68456845
r15515r15516
68506850
68516851   RDOPARG( imm );
68526852   tmp = D + imm + (PSW & CY);
6853   ZHC_SUB( tmp, D, (PSW & CY) );
6853   ZHC_ADD( tmp, D, (PSW & CY) );
68546854   D = tmp;
68556855}
68566856
r15515r15516
68616861
68626862   RDOPARG( imm );
68636863   tmp = E + imm + (PSW & CY);
6864   ZHC_SUB( tmp, E, (PSW & CY) );
6864   ZHC_ADD( tmp, E, (PSW & CY) );
68656865   E = tmp;
68666866}
68676867
r15515r15516
68726872
68736873   RDOPARG( imm );
68746874   tmp = H + imm + (PSW & CY);
6875   ZHC_SUB( tmp, H, (PSW & CY) );
6875   ZHC_ADD( tmp, H, (PSW & CY) );
68766876   H = tmp;
68776877}
68786878
r15515r15516
68836883
68846884   RDOPARG( imm );
68856885   tmp = L + imm + (PSW & CY);
6886   ZHC_SUB( tmp, L, (PSW & CY) );
6886   ZHC_ADD( tmp, L, (PSW & CY) );
68876887   L = tmp;
68886888}
68896889
r15515r15516
88228822/* 61: 0110 0001 */
88238823static void DAA(upd7810_state *cpustate)
88248824{
8825   UINT8 l = A & 0x0f, h = A >> 4, tmp, adj = 0x00;
8825   UINT8 l = A & 0x0f, h = A >> 4, tmp, adj = 0x00, old_cy = PSW & CY;
8826
88268827   if (0 == (PSW & HC))
88278828   {
88288829      if (l < 10)
r15515r15516
88488849   }
88498850   tmp = A + adj;
88508851   ZHC_ADD( tmp, A, PSW & CY );
8852   PSW |= old_cy;
88518853   A = tmp;
88528854}
88538855

Previous 15994 Revisions Next


© 1998-2018 The MESS Team