From 542d0fa5c3dcebfcd93f504693b0137ef2edbbdc Mon Sep 17 00:00:00 2001 From: Roberto Zandona Date: Thu, 1 Jan 2009 20:29:31 +0000 Subject: [PATCH] cb2001: added new opcodes --- src/mame/drivers/cb2001.c | 61 ++++++++++++++++++++++++--------------- 1 file changed, 37 insertions(+), 24 deletions(-) diff --git a/src/mame/drivers/cb2001.c b/src/mame/drivers/cb2001.c index d649ac53037..5048e70692f 100644 --- a/src/mame/drivers/cb2001.c +++ b/src/mame/drivers/cb2001.c @@ -3,7 +3,7 @@ Cherry Bonus 2001 (c)2000/2001 Dyna -Produttore Dyna +Produttore Dyna N.revisione CPU @@ -46,37 +46,37 @@ In test mode (c) is 2000 const UINT8 cb2001_decryption_table[256] = { 0xe8,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx, xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx, /* 00 */ -// pppp +// pppp xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx, 0x32,xxxx,xxxx,xxxx,0x3a,xxxx,xxxx,xxxx, /* 10 */ -// ???? ???? - xxxx,0x8e,xxxx,xxxx,xxxx,0x49,xxxx,xxxx, xxxx,xxxx,xxxx,0x75,xxxx,xxxx,xxxx,xxxx, /* 20 */ -// !!!! ???? pppp - xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,0xbe,xxxx, xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,0xb0,xxxx, /* 30 */ -// pppp ???? +// pppp pppp + xxxx,0x8e,xxxx,xxxx,xxxx,0x49,0xbf,xxxx, xxxx,xxxx,xxxx,0x75,xxxx,xxxx,xxxx,xxxx, /* 20 */ +// !!!! ???? ???? pppp + xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,0xbe,xxxx, xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,0xbf,xxxx, /* 30 */ +// pppp ???? xxxx,0xea,xxxx,xxxx,xxxx,0xb0,xxxx,xxxx, xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx, /* 40 */ -// !!!! gggg +// !!!! gggg xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx, xxxx,xxxx,xxxx,xxxx,0x78,xxxx,xxxx,xxxx, /* 50 */ -// ???? ???? +// ???? ???? xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx, xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,0xba,xxxx, /* 60 */ -// gggg +// gggg 0xc3,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx, xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx, /* 70 */ -// pppp ???? +// pppp ???? xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,0x34, xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx, /* 80 */ -// ???? +// ???? xxxx,xxxx,0xe9,xxxx,xxxx,xxxx,xxxx,xxxx, xxxx,xxxx,xxxx,xxxx,0xb9,xxxx,xxxx,xxxx, /* 90 */ -// ???? pppp +// ???? pppp xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,0xb8, xxxx,xxxx,0xfa,xxxx,xxxx,xxxx,xxxx,xxxx, /* A0 */ -// !!!! ???? +// !!!! ???? xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx, xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx, /* B0 */ -// +// xxxx,xxxx,0xee,xxxx,xxxx,0xe2,xxxx,xxxx, xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx, /* C0 */ -// ???? pppp +// ???? pppp xxxx,xxxx,0x46,xxxx,xxxx,xxxx,xxxx,xxxx, 0x88,xxxx,xxxx,xxxx,xxxx,0xfa,0xc7,xxxx, /* D0 */ -// ???? ???? ???? !!!! +// pppp pppp ???? !!!! 0xb0,xxxx,xxxx,0xc6,xxxx,xxxx,xxxx,xxxx, xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx, /* E0 */ -// ???? !!!! +// ???? !!!! xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx, xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx,xxxx, /* F0 */ -// +// }; /* robiza notes: @@ -102,20 +102,33 @@ c2 -> ee (out dw,al) probably: -00 -> e8 (call) + 2b -> conditional jmp for sure (75) -36 -> be -41 -> ea (jmp_far) -70 -> c3 (ret) +36 -> be 9c -> it's a counter (like mov cw,#value) -> not sure the register (cw,bw,....) -> b9 (cw) c5 -> 75 (loop?) +very probably: +00 -> e8 (call) +41 -> ea (jmp_far) +70 -> c3 (ret) + checked against gussun and quizf1 (start up code): 21 -> 8e a7 -> b8 de -> c7 e3 -> c6 +opcodes: 36,9c,00,18,d8,d2,c5,70 probably: +e1af1 36 62 06 mov ix,0662 + 9c 04 00 mov cw,0004 + 00 94 17 call e328e + +e328e 18 c0 xor al,al + d8 04 mov byte ptr [ix],al + d2 inc ix + c5 fb dbnz e3290 + 70 ret */ @@ -142,7 +155,7 @@ INPUT_PORTS_END static INTERRUPT_GEN( vblank_irq ) { -// cpu_set_input_line_and_vector(device,0,HOLD_LINE,0x08/4); +// cpu_set_input_line_and_vector(device,0,HOLD_LINE,0x08/4); } static const nec_config cb2001_config = { cb2001_decryption_table, };