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

dougg3

68000
I've been working on an Apple Sound Chip tester app that gathers a bunch of info about how the different ASC variants in 68k Macs work, mainly in order to help improve the accuracy of emulation. I've tested my program on a bunch of different Macs, but I don't have access to anything equipped with the discrete EASC chip before it got shrunk down and combined into bigger ASICs.

The app simply runs some tests with the registers, FIFOs, and interrupts. It makes a few blip sounds out of the speaker, takes a few seconds, and then displays a window with info about the ASC. Is there anyone here who has a 700/900/950 and would be willing to run the program and tell me exactly what it prints out? A screenshot or a picture with your camera of the window contents would be great.

It would also be interesting to see what it displays if you run it on a PowerBook 140 or 170.

The app (and source code) is here: https://github.com/dougg3/ASCTester

The easiest thing to do is just download the ASCTester.bin file, which is encoded in MacBinary.

Thanks!
 
To expand what Doug said, a PowerBook 140, 145, 145b, 160, 165, 165c, 170, 180, or 180c would all fit the bill here.

We'd also be interested in results on a PowerBook 5xx (without the PPC upgrade) and a Quadra/LC 630.
 
Awesome, thank you! That verifies that PrimeTime II behaves the same as PrimeTime and IOSB.

A few more machines that I don't expect to show anything unexpected but I'm going to ask anyway: a IIvx / IIvi, and a Mac TV.
 
I don’t have time until this weekend. But if no one else gets it done before me, I can do it for a PowerBook 500, PowerBook Duo, Q700, and Q950.
 
I have Quadra 700 have one too, but unsure if the quad doubler will affect you test. If it does I can remove it.
 

Attachments

  • 20260112_235331.jpg
    20260112_235331.jpg
    554.5 KB · Views: 24
Thanks Callan! Interesting that the 950 and the 700 are slightly different, but that may well be the quad doubler. If it's not a big hassle to try without it I'd love to see that, but if not that's OK too.
 
Thank you all for responding! This is very exciting! And thanks Callan for testing so many machines! I'll add these results to the README later today.

I had guessed that the discrete EASC would be revision $B0 and I was right!

I'm also surprised about the difference between the 700 and the 950 when it comes to the last "FIFO IRQ" line. The "1 0 0" at the end on the Q700 (as opposed to "0 0 0") means that the ASC fired a "FIFO empty" IRQ, but the Q950 didn't. I would have expected them to be exactly the same. When you re-test the 700, can you please re-run it a few times to see if the result changes at all between invocations?

I'm not sure exactly how long I'm waiting for the "FIFO empty" IRQ to happen. Maybe I'm not waiting long enough for the 950 to fire it or something. I should probably use the Ticks global to wait for a known amount of time instead of loop iterations.
 
Thank you all for responding! This is very exciting! And thanks Callan for testing so many machines! I'll add these results to the README later today.

I had guessed that the discrete EASC would be revision $B0 and I was right!

I'm also surprised about the difference between the 700 and the 950 when it comes to the last "FIFO IRQ" line. The "1 0 0" at the end on the Q700 (as opposed to "0 0 0") means that the ASC fired a "FIFO empty" IRQ, but the Q950 didn't. I would have expected them to be exactly the same. When you re-test the 700, can you please re-run it a few times to see if the result changes at all between invocations?

I'm not sure exactly how long I'm waiting for the "FIFO empty" IRQ to happen. Maybe I'm not waiting long enough for the 950 to fire it or something. I should probably use the Ticks global to wait for a known amount of time instead of loop iterations.
If you make those updates, it's probably a good idea to emit a version tracking number at the start of the output, so it's obvious from screenshots which version of ASCTester is being run ;)
 
I re-ran the test on both the 700 (with and without the quad doubler) and the 950 multiple times and they come up the same. I also tried using the same boot image for both machines to make sure that wasn't causing an issue. Another thing I've noticed is the app runs fine on the 700, but it causes the 950 to lock up. The mouse locks up when your app beeps the first time. After the second beep it shows the console data, but you have to reset to use the machine again. Tested with and without extensions loaded and the result was the same.
 
I re-ran the test on both the 700 (with and without the quad doubler) and the 950 multiple times and they come up the same. I also tried using the same boot image for both machines to make sure that wasn't causing an issue.

Thank you so much for all your testing! At some point in the near future I will update the tester app to gather a few more details about the behavior that you are seeing on the 700 and 950. I'm finding it odd that the Quadra 700 still fires an interrupt even without configuring register $F29, but the 950 requires configuring register $F29. I would have expected them to be the same. I should print out what $F29 contains initially. Maybe the 700 leaves it enabled at all times or something.

Another thing I've noticed is the app runs fine on the 700, but it causes the 950 to lock up. The mouse locks up when your app beeps the first time. After the second beep it shows the console data, but you have to reset to use the machine again. Tested with and without extensions loaded and the result was the same.

This is really strange. When the mouse freezes at first, it's because I have interrupts completely disabled during the initial tests. I probably shouldn't be doing that. Maybe leaving it like that for an extended period of time makes the 950 mad. I'll make some further tweaks in the next couple days and if you don't mind trying it again when they are ready, that would be awesome! Thanks again for your help!

Edit: When I simulate them all in MAME, there actually is a difference, at least in System 7.1. The 700 and 900 sometimes do this thing where they start spamming writes to reg $F29 in the background forever after I click Wild Eep in the sound control panel enough times. The 950 doesn't. Maybe that's a factor as to why I didn't have to write to $F29 on the 700. We'll see.
 
Last edited:
Back
Top