| Click here to select a new forum. |
| Would someone with a Quadra 700/900/950 be willing to test a program for me? |
Posted by: dougg3 on 2026-01-11 21:20:26 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! |
Posted by: Arbee on 2026-01-12 19:26:12 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. |
Posted by: NJRoadfan on 2026-01-12 19:47:04 I'll have to dig out the Powerbook 180c and run this.... when I have time. |
Posted by: MacJunky on 2026-01-12 20:01:21
and a Quadra/LC 630. Performa 631CD:
|
Posted by: dougg3 on 2026-01-12 20:26:47
Performa 631CD:
Thanks! I added these expected results to the README.
Edit: Another useful one to check would be a PowerBook Duo, if someone gets to it before me. |
Posted by: Arbee on 2026-01-12 20:49:43 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. |
Posted by: jmacz on 2026-01-12 21:05:03 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. |
Posted by: Callan on 2026-01-13 08:41:01 Quadra 950 and a powerbook 520c. |
Posted by: Callan on 2026-01-13 08:42:09 I have Quadra 700 have one too, but unsure if the quad doubler will affect you test. If it does I can remove it. |
Posted by: Arbee on 2026-01-13 09:02:04 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. |
Posted by: Callan on 2026-01-13 09:04:53 Will do |
Posted by: dougg3 on 2026-01-13 11:56:46 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. |
Posted by: adespoton on 2026-01-13 14:10:08
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 π |
Posted by: dougg3 on 2026-01-13 16:00:41
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 π
That's an excellent idea! I'll definitely do that going forward. |
Posted by: Callan on 2026-01-13 19:51:29 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. |
Posted by: dougg3 on 2026-01-13 21:37:36
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. |
Posted by: cgp on 2026-01-14 07:50:56 Here's what my Q700 reports under 7.6.1: |
Posted by: dougg3 on 2026-01-14 18:39:28 I just posted an update to the software. Now it prints IRQ counts, checks the $F29 register in more detail, and also doesn't leave IRQs disabled for very long, in the hopes that we can gather more info about the 700/950 and maybe prevent it from locking up the 950 too.
Another thing I've noticed is the app runs fine on the 700, but it causes the 950 to lock up.
Would you be willing to re-test with the latest software I just pushed? I found at least one bug, and I have an idea of what might have caused one of the differences with the 700 (but I'm still puzzled about another, so hopefully the new test will answer my questions).
Here's what my Q700 reports under 7.6.1:
Thanks! That matches Callan's results, so there's definitely something different about the 700. If you would be willing to re-test with the new version as well, that would be awesome too! |
Posted by: Callan on 2026-01-14 22:22:06 For sure. Here you go...
Q700 with version 2.
Ran it multiple times. Only number that seemed to change was the 3rd bracketed number. |
Posted by: Callan on 2026-01-14 22:23:55 This is the q950. Again multiple times and the 3rd bracket changed occasionally. Good news is it's not locking up anymore. |
| 1 > |