billr@houxj.UUCP (09/18/87)
I don't have complete detail here but a good friend has been stuck on a midi bug for days and i'm hoping someone can help. Using a roland mpu401 to control a casio CZ1, he is writing a patch editor etc. in 8086 assembly (yeah i know...) on an AT&T 6300. Everything works ok so far but this: bear with me here in case i munge terminology (or spelling) When sending a system exclusive message to UPLOAD patch information, he sends the appropriate byte string (i think he said 7 of 'em) the casio should then sends a few bytes back to say go ahead... He sends a bunch of bytes (256?) up to the casio and the it should send 1 ack byte back (hex F7). the problem is this.. He send those first 7 bytes and the casio sends back , right away, those go ahead bytes followed by the F7. Giving no chance to upload the patch info bytes. The odd part is that he wrote a basic program to do this section and it works just fine but his assembly code does not. It might just be a code bug but i doubt it he's a competent assem programmer and has go over the stuff many many time and even tried a rewrite of that section but it behaves incorrectly also. Most likely some timing problem but casio was of no help. Any ideas, resources ect. he is stuck at this point. thanks bill romanowski AT&T Bell Labs Holmdel, NJ
johnt@mmintl.UUCP (John Tangney) (09/21/87)
In article <242@houxj.UUCP> billr@houxj.UUCP (UNIX Group) writes: >I don't have complete detail here but a good >friend has been stuck on a midi bug for days >and i'm hoping someone can help. > [details deleted] >The odd part is that he wrote a basic >program to do this section and it works >just fine but his assembly code does not. > Hmmm.. I haven't written any midi software, but experience tells me that this sort of bug is often a timing problem. Basic runs slower than the equivalent stuff in assembler, so any delays which are *required* by the midi device will be built into the basic code. He might try inserting busy waits into the code as an experiment, then if the code now works, start eliminating the waits until the pertinent one is found. Otherwise, try reading up in any of the midi device documentation (long shot, knowing synth manufacturers) or even calling the manufacturer for any timing-related info which you ought to have been told about. Just a suggestion.... johnt