Schachcomputer.info Community

Schachcomputer.info Community (https://www.schachcomputer.info/forum/index.php)
-   Mess Emu & andere Emulationen / Mess Emu and other Emulations (https://www.schachcomputer.info/forum/forumdisplay.php?f=53)
-   -   MessEmu: Mess Emulator für diverse Schachcomputer ist fertig! (https://www.schachcomputer.info/forum/showthread.php?t=1448)

fhub 24.11.2023 10:51

AW: Mess Emulator für diverse Schachcomputer ist fertig!
 
Hi,

ich habe jetzt nochmal ein CB-Emu_Update mit den beiden EXE-Dateien MessChess/MessExtra auf meiner Webseite hochgeladen,
weil mit dem neuen CXG Enterprise S jetzt plötzlich der Saitek Companion II nicht mehr funktioniert hat (Crash beim Start).
Jetzt klappt wieder alles.

Grüße,
Franz

berger 24.11.2023 11:17

Re: AW: Mess Emulator für diverse Schachcomputer ist fertig!
 
Zitieren:

Zitat von fhub (Beitrag 121561)
Jetzt klappt wieder alles.

Franz... you always manage to get everything working in CB-Emu, one way or another. This is good for keeping the mind active... so more challenges are coming soon. :D

Best,
Berger

hap 25.11.2023 14:21

Re: Mess Emulator für diverse Schachcomputer ist fertig!
 
CXG Super Enterprise ist emuliert, danke an Sean fur ROM dump.
Kein LCD (210, nicht 210C).

Sean was able to dump the HD6301Y0 internal ROM.
Chess engine is by Kaare Danielsen.

https://i.imgur.com/eQ4D12F.png

fhub 25.11.2023 18:29

AW: Re: Mess Emulator für diverse Schachcomputer ist fertig!
 
Zitieren:

Zitat von hap (Beitrag 121588)
CXG Super Enterprise ist emuliert, danke an Sean fur ROM dump.

Thanks - unfortunately I'm not able to modify this driver so that it works in MAME 0.220. :(

I've removed the nvram support and tried to use the method with m_nmitimer+m_standbytimer (as you've done it in the older version of the companion2 driver before adding nvram support)), but it doesn't work.
I guess the main problem of my changes is the main_map and the rom definition, because I don't know the correct addresses.

I've tried it in this way (which is certainly wrong):
void senterp_state::main_map(address_map &map)
{
map(0x0000, 0x0014).m(m_maincpu, FUNC(hd6301y0_cpu_device::m6801_io));
map(0x4000, 0x47ff).mirror(0x3800).ram(); // internal
map(0xc000, 0xffff).rom(); // internal
}

ROM_START( senterp )
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD("1985_210_newcrest_hd6301y0a14p", 0xc000, 0x4000, CRC(871719c8) SHA1(8c0f5bef2573b9cbebe87be3a899fec6308603be) )
ROM_END

It would be nice if you could correct this code.
And I'm also not sure if the old code for the nmi and standby timer (in companion2) can be used unchanged for the senterprise!?
Or could I just completely remove this code when I don't need nvram?

Rgeards,
Franz

hap 25.11.2023 18:36

Re: Mess Emulator für diverse Schachcomputer ist fertig!
 
Companion II and Enterprise "S" use the MCU standby pin.
Super Enterprise uses an internal standby bit (Leonardo/Renaisance, Super Nova do it this way too). I doubt it can be done with a timer.

map(0x0000, 0x0014).m(m_maincpu, FUNC(hd6301y0_cpu_device::m6801_io));
That's the range for V1, try 0x21.

Also: hd6301y_io, not m6801_io

Mychess 25.11.2023 18:36

Re: AW: Re: Mess Emulator für diverse Schachcomputer ist fertig!
 
Zitieren:

Zitat von fhub (Beitrag 121599)
I've tried it in this way (which is certainly wrong):
void senterp_state::main_map(address_map &map)
{
map(0x0000, 0x0014).m(m_maincpu, FUNC(hd6301y0_cpu_device::m6801_io));
map(0x4000, 0x47ff).mirror(0x3800).ram(); // internal
map(0xc000, 0xffff).rom(); // internal
}

Hello Fhub,

Ram from 0x4000 to 0x47ff : 2 k RAM.
The HD6301Y has only 256 bytes, so from 0x4000 to 0x40ff.

Cordially.

hap 25.11.2023 18:39

Re: Mess Emulator für diverse Schachcomputer ist fertig!
 
Ah right, you forgot the internal RAM too.
range is 0x40-0x13f.

The one at 0x4000 is a 2KB external RAM chip.

fhub 25.11.2023 18:55

AW: Mess Emulator für diverse Schachcomputer ist fertig!
 
Now it works - many thanks! :)

Just to be sure - is this code (from the companion2 driver) still correct for the senterprise?
Code:

TIMER_CALLBACK_MEMBER(senterp_state::set_pin)
{
        m_maincpu->set_input_line(param, ASSERT_LINE);
}

INPUT_CHANGED_MEMBER(senterp_state::power_off)
{
        if (newval && m_power)
        {
                m_power = false;

                // when power switch is set to MEMORY, it triggers an NMI after a short delay
                attotime delay = attotime::zero;
                m_nmitimer->adjust(delay, INPUT_LINE_NMI);

                // afterwards, MCU STBY pin is asserted after a short delay
                delay += attotime::from_msec(10);
                m_standbytimer->adjust(delay, INPUT_LINE_RESET);
        }
}


hap 25.11.2023 19:29

Re: Mess Emulator für diverse Schachcomputer ist fertig!
 
As I said, it sets standby mode internally with an MCU register.
I don't know if it will work with a timer like that.

*edit* plus (also applies to Companion II and others), there's also a standby bit in the MCU that's checked at boot and it may do a cold boot and not restart from where you exited.

fhub 25.11.2023 19:31

AW: Mess Emulator für diverse Schachcomputer ist fertig!
 
So you want to say that this timer code isn't necessary at all?


Alle Zeitangaben in WEZ +2. Es ist jetzt 15:08 Uhr.

Powered by vBulletin (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
©Schachcomputer.info