Those are my next two goals, sound and ethernet. Sound is hard because Mac II uses the custom "Apple Sound Chip" which is completely undocumented. Ethernet is hard too - I'll probably start both simultaneously and see which is easiest to complete.adespoton wrote:Once you get it running every version of A/UX, do you have any further goals, such as accurate sound/network emulation, Mac OS support for every OS version the Mac II supported, Rudimentary MIDI support, etc?
I know sound and MIDI would be hard, as it depends on timings which would likely slow emulation down too much. But thought I'd ask
But for the moment, I'm trying to get A/UX 3.0.1 booting. I've tracked down at least one bug to this highly complex series of events:
The SCSI driver sends a READ(6) request for 0 sectors, because it actually wants to request 256 (0x100) bytes, but the sector-length field in the SCSI command is 1 byte, so it gets truncated to 0x00. It dispatches a request that big because breada() queues up 16 16-sector readahead requests, and I don't know why yet... One possible problem is that the emulated SCSI disk responds to commands instantaneously, the very moment it DMAs the final byte of the SCSI command, which probably never occurs in the real world.
This explains why heavy disk traffic causes freezes - if the buffer cache queues up a huge 256-sector read request, 0 bytes will be returned, and A/UX will wait forever for the rest of the data. Trying to reverse-engineer the logic now, since it's apparently unlike any other published system-v source :/