I was finishing up on some changes today and, somehow, I got this message while make-ing the file.
Error[118] C:\ARCHIVE\MIOS\X0XSEQ\MAIN.ASM 666 : Overwriting previous address contents (7BFE)
Error[118] C:\ARCHIVE\MIOS\X0XSEQ\MAIN.ASM 666 : Overwriting previous address contents (7BFF)
From these lines in main.asm:
;; ---[ensure that BSL location won't be overwritten]---
org 0x7bfe
dw 0x0000
It’s the “dw 0x0000” thats causing the error. At one point today I had a bunch of files that were in the wrong workspace (I’m using MPLAB) that I cleaned up. I don’t know if this could be related, I doubt it is. Since I don’t really know where to start troubleshooting this I’ve been working on the following warnings instead: Warning[203] C:\ARCHIVE\MIOS\X0XSEQ\MIDI_EVNT.INC 81 : Found opcode in column 1. (call) Warning[202] C:\ARCHIVE\MIOS\X0XSEQ\MIDI_EVNT.INC 84 : Argument out of range. Least significant bits used. From these lines that I’ve added to midi_evnt.inc:
call MIOS_DOUT_PinSet1 ; Single level of accent shared by all instruments
CheckCH movf MIDI_EVNT1, 0 ; Move note value to W to use ANDL*
xorlw CH_NOTE ; value for CH (Note#20)
EDIT: I got it, as I suspected they were stupid mistakes on my part. The “Found opcode in column 1” message meant exactly what it said. The CALL instruction needs to be in the second column. The “Argument out of range” message was caused by the fact that I was using xorlw with a file register as an argument. I should use xorwf instead. Properly formed this is what the code should look like:
CheckCH movf MIDI_EVNT1, 0 ; Move note value to W to use ANDL*
xorwf CH_NOTE, 0, 0 ; value for CH (Note#20)
bnz CheckRS
movf CH_PIN, 0, 0 ; if the result was 0 play CH
call MIOS_DOUT_PinSet1 ; play CH, pin cleared elsewhere
goto MIDI_EVNT_Send_Ax