Ozzuneoj wrote on 2025-03-29, 04:48:Just curious, I know there is probably a big difference between these cards (especially being PCI vs ISA) but have you tried the […]
Show full quote
shoyoninja wrote on 2025-03-28, 16:54:
Some possible paths forward:
I found another linux code for the 9407 on ISA cards, the code seems to have a fully working firmware and wavetable loader, it should be possible to make a loader from it. And then a Hardware jumper from the Maestro MIDI OUT to the 9707 Midi In.
Or: Adapt the code from SBEMU to catch 9707 ports access and route them through maestro. This should in theory allow firmware and bank loaders that already exist to work fine... Had a look at SBEMU code but it seems above what I can do now. Basicly I would need to catch MPU+0, MPU+1, MPU+2, MPU+3 and route it through MAESTRO IDMA. No hardware mod would be neeeded, but it would be a TSR.
Just curious, I know there is probably a big difference between these cards (especially being PCI vs ISA) but have you tried the DOS initializer and firmware in this post?
Re: Dream 97PNP2 - Interesting SAM9707 prototype\sample ISA MIDI card from 2001!
Mainly the 94DINIT.EXE (36kB version) and 97PNP2.BIN firmware. It probably won't work, but it'd be interesting if it did.
I did not, I honestly have no hopes the loader will work, its not just a slot difference (if that was the only issue it probably would work). These chips, 9407 and 9707 are designed to interface on ISA bus, and you interface them on 330h and 331h (for "normal" commands), and 332h 333h for 16 bit memory transfers. 330h is the base port.
On the ISIS on 330h you have the Maestro MPU, in fact the only thing you can talk to is the Maestro, there is no direct connection to the SAM. To even reach the 9707 you need to issue a command to Maestro, to set its GPIO to the command you want the SAM to see, the Maestro is working as the ISA slot for the SAM9707.
These commands to control the GPIO interface need to be implemented using the Maestro 2EM registers (that have nothing to do with the MPU port), so it would be really, really strange that any loader designed for the normal ISA operation can deal with it.
An example, the command 3F sets the 9707 on UART mode.
Normally on the ISA card, to set it you just have to write 0x3F to the port 330h+1 (base +1 is control).
On the Isis you write first 0x1 (that's the equivalent of 330h+1 through the ISA slot, this translation is done outside the chip on ISA implementations) to the port Maestro Base + 0x44 (Maestro GPIO Address), setting the GPIO address to the SAM9707 control register, then you write 0x3F to the port Maestro Base + 0x46 (Maestro GPIO Data).
In short you need one extra write operation to accomplish it.
But I will try it just for the sake of it... This firmware though, I can certainly load it using my initializer and and see what happens 😀. Though there is a chance it will fail due to differences on the microcode each these initializers load prior to the firmware.