Reply 300 of 548, by OPLx
黄禄轩 wrote on 2020-06-10, 10:32:although i didn't build any pull up res to the data bus, it shouldn't cause the problem. i tried to use debug.exe to figure out […]
NewRisingSun wrote on 2020-06-10, 10:05:In what kind of computer? If the computer has no pull-up resistors on the ISA bus, the documented "port 388 returns 06" check will not work correctly.
although i didn't build any pull up res to the data bus, it shouldn't cause the problem. i tried to use debug.exe to figure out what's wrong, and the result shows that the hardware is correct.
================
debug:
-o388 4
-o389 e0
-i388
06
-o388 2
-o389 ff
-o388 4
-o389 21
-i388
C6
-
Hello, I noticed that your DEBUG sequence writes e0h to address 4 rather than 60h and 80h separately. Also, there is no sequence at the end for resetting the timers and the IRQ. This last part is what is used to determine whether an OPL2 or OPL3 is present.
Could you try this DEBUG sequence?
=====
-0388 4
-0389 60
-0388 4
-0389 80
-i388
[result]
-o388 2
-o389 ff
-o388 4
-o389 21
-i388
[result]
-0388 4
-0389 60
-0388 4
-0389 80
-i388
[result]
=====
For the OPL2, the result sequence should be: 06, C6, and 06.
For the OPL3, the result sequence should be: 00, C0, and 00.
My guess is that your hardware may be returning some value that when ANDed with 06h returns 00h. If this is the case, @NewRisingSun's suggestion might resolve the problem.