Would someone with a Quadra 700/900/950 be willing to test a program for me?

This second one is moving the mouse around the entire time that the test is running.

Thank you @jmacz! This confirms exactly what I expected to see, and shows MAME is acting just like hardware with the 950. No worries about re-testing that anymore @Callan! Thanks!

Quadra AVs don't have an ASC or EASC so that's expected.

I should probably add a check to only run these tests if the AddrMapFlags contain both VIA2 and ASC, to prevent crashes on incompatible hardware.

So...looking through these results in general, and making a few educated guesses, it seems like:
  • Original ASC interrupts on FIFO full and FIFO half empty, no repeats. Clears register $804 on read.
  • No other variants clear $804 on read, as far as I can tell.
  • EASC interrupts on FIFO half empty, only if $F09 or $F29 is 0 for the respective channel. Doesn't repeatedly fire.
    • The Q700 looks like it repeats (same with Q950 when mouse is moving) but it's due to special code in the OS and/or ROM.
  • Version $Ex interrupts on FIFO half empty, and repeats forever
  • Versions $BB and $BC have varying behavior on different machines. They both interrupt on FIFO half empty if $F29 is 0. On some machines the IRQ floods forever, on some machines it doesn't.
  • Variants with the $F29 register will fire an IRQ immediately if $F29 changes to 0 and the condition is active. (I'm assuming EASC does the same thing with $F09 for channel A)
 
I just uploaded version 3 with a few new tests and improvements. I definitely won't ask everyone to re-test everything because I don't expect we'll learn much on most models.

@Callan, @cgp, or @jmacz, would you be so kind as to re-test the Quadra 700 with the latest version? It should say something at the bottom about how it temporarily disabled the ASC VBL task, and the results should now be similar to the 950 without mouse movement. It works that way in MAME now anyway. Thank you!
 
Thank you @jmacz! This confirms my suspicions, and the Quadra 700's hardware is now being tested "properly". My VBL disable hack works on hardware, woohoo! I really appreciate your fast test on that!
 
I'd love to see results from a II, IIx, IIcx, or SE/30 too, just to get data on the original ASC + discrete VIA2 combination. (Those 4 machines are identical for this testing, so I only need one of them).
 
se/30 test. It has a bmow rom in it. Not sure if that will skewe the result. If so I can get you one with an original rom lmk.
 

Attachments

  • 20260119_224300.jpg
    20260119_224300.jpg
    1.3 MB · Views: 7
se/30 test. It has a bmow rom in it. Not sure if that will skewe the result. If so I can get you one with an original rom lmk.

Thanks! That result is interesting. I'm not sure how to explain the 2 "other" IRQs at the bottom. Maybe bits in FIFO A were set instead and they fired not quite at the same time. (That test is only looking at the FIFO B IRQ bits). I'll have to think about how to decipher that further. Might have to get my SE/30 or IIx into working order.

I don't think the ROM will skew the results at all.

My Q700 is the same as @jmacz except for the Stereo FIFO Tests ending (1108 1108) not (1103 1103) - different system sound config??

Perfect, thanks. Those numbers are for informational purposes only and will vary a bit even on different runs of the same machine. It's the number of audio samples that were written to the chip before it said it was full. Makes sense, it should always be more than 1024 because I think that's approximately the size of the FIFO, and the FIFO is emptying itself as I'm filling it.
 
Thanks again Callan! Wrenches are good, it makes sure we understand what's actually happening. That actually does line up with what I'm seeing in MAME where I got IIci perfect when spamming the Sound control panel, but SE/30 and friends are two IRQs short. Like Doug I don't have an explanation for why that's happening yet though.
 
Back
Top