Re: [hatari-devel] Problem with Hatari 1.6.2 and EmuTOS 192K ROMs |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/hatari-devel Archives
]
- To: hatari-devel@xxxxxxxxxxxxxxxxxxx
- Subject: Re: [hatari-devel] Problem with Hatari 1.6.2 and EmuTOS 192K ROMs
- From: Vincent Rivière <vincent.riviere@xxxxxxxxxxx>
- Date: Fri, 12 Oct 2012 21:33:21 +0200
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:message-id:date:from:user-agent:mime-version:to:subject :references:in-reply-to:content-type:content-transfer-encoding; bh=ItbBbK4IyvF1kqGvYczOWpMtjamQuJUUju4mjTE3hk0=; b=d0MfJwrjqQw8hhmPBXlnOSdJKYzY7I8+HNmYGEQs4a6bVfeGCPK1g6a1oVGsa3CjyO gzwebXn3qgVibU+J+SMrF9mFtDRtT6JEuWGfKht7TU5sMGrzw51x2kp46n5XjsFLU8Hz mu8dbkge5A6YSnqChRCWYyvSBnjnTGbb67/JLr1dGNkpWzIMzra8QyeA+G2PHQBYvE6n bJEedcOFocoqEIXL0c0qLl1bNbvnogbJggu0/UQbyTW2VLLKfmfHYu/Tgx0ulOetvlgu GKL7yDnjruy8hQB24+8nfOQ1CbJ8JPfa+5SYjQDDoT5a6RDrbyAmjrcg0EI7inCU56st jU2g==
On 12/10/2012 20:56, Roger Burrows wrote:
Some kprintf's in the EmuTOS code makes me suspect that it's crashing on a call
to Gettime(), but I haven't tried to narrow it down further via EmuTOS.
Indeed, I had similar clue.
I ran the official Hatari 1.6.2 Windows binary with some debugger.
I crashes with an Access Violation exception due to a NULL pointer.
My magic wand indicates that it crashes just after the call to
IKBD_AddKeyToKeyboardBufferWithDelay(0xFC, 32000) inside src/ikbd.c,
function IKBD_Cmd_ReadClock().
The only pointer used there is SystemTime, which comes from
localtime(&nTimeTicks). This would suggest that localtime() returned NULL. I
let Hatari developers to investigate how this could be possible (bad
nTimeOffset?).
By chance, I noticed that the EDI register value was 0x00FC4968, which is an
address inside the EmuTOS ROM. It is the return address of ikbdws(), called
by gettime(). This confirms both Roger's findings and mine.
Not that this crash does not occur with my non-standard Hatari build on
Cygwin (which uses NewLib as libc, instead of MinGW). So probably different
localtime() implementation.
Good luck.
--
Vincent Rivière