I have an odd problem with a program on a 4K ROM 16C73. Any suggestions are appreciated. Right up front I'll confess my sin of being a C programmer (CCS's compiler on the PIC's) and not an assembler guy. Having said that, I have a function "Display" that gets called twelve times in my program. The function displays the string which starts in external EEPROM memory location to an LCD starting at a particular row and column. The first ten times, the function is called from within the first 2K and works fine and complies as shown in the first code example. The last two times that it is called, the function is called from the second half of the 4K code space. These two function calls compile differently from the first ten. The problem is that the second code example doesn't work well. TWO QUESTIONS: 1. Is this is due to some difference in how the PIC handles the first 2K and the second 2K ??? 2. What is the purpose of the BCF and BSF commands surrounding the function call in the second code example and why could this cause a problem ??? CODE EXAMPLE 1 .................... Display(ST_NO_SHOTS_HEARD,2,1); <- the C to be compiled 051C: MOVLW 0B <- the constant ST_NO_SHOTS_HEARD is decimal 11 051D: MOVWF 6D 051E: MOVLW 02 <- save the first parameter, I assume 051F: MOVWF 6E 0520: MOVLW 01 <- save the second parameter, I assume 0521: MOVWF 6F 0522: CALL 38E <- and call the function CODE EXAMPLE #2 .................... Display(ST_NO_SHOTS_HEARD,2,1); <- the C to be compiled 0942: MOVLW 0B 0943: MOVWF 6D 0944: MOVLW 02 0945: MOVWF 6E 0946: MOVLW 01 0947: MOVWF 6F 0948: BCF 0A,3 <- the call has BCF/BSF surrounding it. why? 0949: CALL 38E 094A: BSF 0A,3