mirror of
https://github.com/holub/mame
synced 2025-04-26 10:13:37 +03:00
![]() The keyboard should communicate at 1,200 Baud, but due to bugs in the SCC it's set to 9,600 Baud. The sun4c machines program the Baud rate generator dividers for the serial ports with 00:0e and the dividers for the keyboard/mouse ports with 00:7e. Therefore the ratio of Baud rates should be (0x7e + 2) / (0x0e + 2) = 128 / 16 = 8. However both the RS232 ports and the keyboard/mouse ports run at 9,600 Baud, when the keyboard/mouse ports should run at 1,200 Baud (which is 1/8 of 9,600 which matches the ratio of the divider values). I've artificially limited the rate the keyboard can transmit at to be no faster than it could at 1,200 Baud using a timer. I can remove this hack once we get correct SCC divider behaviour. I attempted to hook up the SCC interrupts to level 12 as specified in the SPARCstation-1 Programmer's Model in the table on Page 19. No interrupts seem to be generated, so either I've screwed this up somehow, the Sun isn't enabling interrupts, or there's another bug in the SCC emulation. Sorry if I've screwed it up - I won't be offended if someone replaces it wholesale. The keyboard receives the reset commands from the Sun and sends back the self test pass response, but the SCC seems to get a buffer overrun error. So it appears that the received data isn't being read out. I haven't been able to work out why. |
||
---|---|---|
.. | ||
build | ||
font | ||
resources | ||
src | ||
target | ||
extlib.lua | ||
genie.lua | ||
toolchain.lua |