Hi all
I realized the core to make a control pedal for my keyboards.
At every pression of the buttons, a midi message based on the bankstick contents is generated
All is organized in patches where anyone defines a command set
Maybe the concept is a bit obscure, but this isn’t important to explain my problem’s details (if someone plays keyboards may find useful this project; if someone is interested I can explain better the working mode of the logic)
Now I finally explain the problem:
I need to read from the bankstick a 40 character string that must be visualized as patch title on the lcd display.
Here’s an extract from the file banckstick_content.inc related to strings load:
db "Europe The Final Countdown "
db "Sonata Arctica Full Moon "
Here there is my problem : Countdown become Countdownn and Moon become Moonn (the other words remain correct). It seems the problem is the “o” and “n” letters followed by a space.
I’m sure that strings in the bankstick are correct.
Using the message sysex “F0 00 00 7E 40 00 03 00 F7 F0 00 00 7E 40 00 01 40 00 40 00 F7” I obtain the bankstick content and re-converting it with the syx2asm.pl I can verify that there are no double letters.
At this point the problem must be in the reading procedure
Here there’s the code which do the reading:
movff addrhi_patchname_current, MIOS_PARAMETER2
movff addrlow_patchname_current, MIOS_PARAMETER1
movlw 0x80
call MIOS_LCD_CursorSet
movlw 0x14
movwf TMP1
LOOPNAME1
call MIOS_BANKSTICK_Read
call MIOS_LCD_PrintChar
decfsz TMP1
rgoto LOOPNAME1
movlw 0xc0
call MIOS_LCD_CursorSet
movlw 0x14
movwf TMP1
LOOPNAME2
call MIOS_BANKSTICK_Read
call MIOS_LCD_PrintChar
decfsz TMP1
rgoto LOOPNAME2
I also tried using the function “MIOS_BANKSTICK_ReadPage” instead of “MIOS_BANKSTICK_Read” to be able to make a unique reading but I can’t get it working (I’m not expert with pics and assembly).
Do you have some suggestion?
P.S. When I wrote about the sysex message I haven’t reported the message as I use it.
If I send this message I get in reply:
F0 00 00 7E 40 00 0F 00 F7
F0 00 00 7E 40 00 02 40 00 00 00 52 65 76 F7
F0 00 00 7E 40 31 0E 0A 62 F7
And the application running on the pic hangs
Changing the antepenultimate byte from 40 to 3F I can read 74601 bytes form the bankstick (an entire 24lc512 eprom)