Thanks for the tips. I've been pouring over data sheets, web pages, and PBP manual for days getting myself up to speed as best I can. I came across some code that I don't understand because of the assembly mixed in with the PBP. Why use PBP PAUSEUS 60 to pause for 60 microseconds and then @ nop to delay for 1 microsecond? (4 MHZ OSC) Is it because of the minimum resolution at 4 MHZ with PBP (guessing)? I know why the DS1821 need the timing, just not why the assembly is mixed in with the PBP. If I'm running at 20 MHZ and the resolution is higher (.2 uSec if memory serves) then would the assembly not be needed?
TIA

Code:
write0:
        Low DQ
        Pauseus 60              ' Low for > 60us for 0
        DQ_DIR = 1         ' Release data pin (set to input for high)
        Return

' Write a 1 bit to the DS1820
write1:
        Low DQ                  ' Low for < 15us for 1
@       nop                     ' Delay 1us at 4MHz
        DQ_DIR = 1        ' Release data pin (set to input for high)
        Pauseus 60             ' Use up rest of time slot
        Return