John, thank you so much for pointing me in the right direction!

I'm using a 16F877 at 20MHz, so the UART RX is pin 26, aka RC7. I'm using a 75176 also. I have no experience using the UART at all. Regarding your use of PULSIN, can I just do something like this?

loop:
PULSIN portC.7,1,pulse_word 'if portC.7 is set up at the UART input,
'will PULSIN work? Is 1 the correct polarity?
IF pulse_word<40 then loop '40 = 80uS with a 20MHz osc

WHILE RCIF = 0
HSERIN [dmx_val] 'throw away first value at it is the start code

channel_loop:
HSERIN [dmx_val] 'get channel 1 value
count0 = count0 + 1
if count0 = target_channel then exit
goto channel_loop

Since you've already done this, have you found any issues with UART overflow and needed to toggle that CREN bit? Also, I've read elsewhere that the data is in 8N2 value-- does that require any additional code to handle? I'm also wondering if having the UART enabled causes issues with then using PULSIN on the UART RX pin, PortC.7, and is the PULSIN polarity a 1 or a 0 for the break signal following the 75176?

Thanks so much for your help so far!

--Alan