Hi,
I am a bit confused about the
9264: 11fc 0040 fc00 moveb #64,fffffc00 <CC6_ENABLE_D+0x7ffffc00>
vs.
925a: 11fc 0003 fc00 moveb #3,fffffc00 <CC6_ENABLE_D+0x7ffffc00>
difference here as well - it appears gcc evaluates
acia.key_ctrl = ACIA_RESET |
(atari_switches & ATARI_SWITCH_IKBD) ? ACIA_RHTID : 0;
so (atari_switches & ATARI_SWITCH_IKBD) is always true?
ACIA_RESET is always true.
Indeed, using
acia.key_ctrl = ACIA_RESET |
((atari_switches & ATARI_SWITCH_IKBD) ? ACIA_RHTID : 0);
I get either #3 or #67 as constants which seems much more sensible. Did C
operator precedences change recently? The code in question has been
unchanged since before 2.2, so why has it ever worked before?
It definitely has never worked as intended.
Thanks - I can confirm that putting the brackets where they should have
been all this time does actually make this work on my Falcon.
Lesson learned - never believe code is correct only because it's been
unchanged since the dark ages.
Michael
--
To unsubscribe from this list: send the line "unsubscribe linux-m68k" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html