I dropped the PBP LanC read/write in to some of my generic PBP camera code
because I was able to read/ write with 1 pin like I do with the assembly code
I could just drop the PBP version in the 16f676 and the camera is up and running
thanks
Code:
'****************************************************************
'*  Name    : pbp_sony_n.BAS                                    *
'*  Author  : R Slaton  AKA Grounded /Ratsnest                  *
'*  Notice  : Copyright (c) 2009 peek-a-boo wild life systems   *
'*          : All Rights Reserved                               *
'*  Date    : 9/23/2009                                         *
'*  Version : 1.0                                               *
'*  Notes   : SONY LanC NIGHTTIME ONLY WITH IR LED ARRAY        *
'*          :DIP 1 ON 60SEC. MOVIE /30 SEC DEFAULT              *
'*          :DIP 2 ON 60 AFTER MOVIE DELAY /30 DEFAULT
'*          :PIR TRIPS HIGH/15SEC.TEST MOVIE @ CONTROLLER BOOTUP
'*     :THANKS TO l_gaminde ON THE BIT BANGING READ WRITE PART
'****************************************************************
   pic16F676
@ __config _XT_OSC & _WDT_ON & _MCLRE_OFF & _CP_OFF

  
'DEFINE OSC 4               'EXTERNAL CLOCK SPEED 4MH.
DEFINE ADC_BITS 10          'ADC 10 BIT #
DEFINE ADC_CLOCK 3          'ADC SAMPLE CLOCK 
DEFINE ADC_SAMPLEUS 50	    'SAMPLE EVERY 50 US.				
Pause 5000                  'DELAY TO LET STABILIZE AFTER POWER UP & MODE 
CMCON = 7                   'COMPARATOR OFF
VRCON = 0                   'VOLTAGE REF. DISABLE	
TRISA = %00001101           'MAKE A.2 & A.3 INPUTS
TRISC = %00000110		    'MAKE .C.0,C.1 PORTC INPUTS
ANSEL = %00000001           'PORTA.0 A/D IN,RST DIGITAL
ADCON0.7 = 1                'RIGHT JUSTIFY FOR 10 BIT 
OPTION_REG=%01000000        'RAISING EDGE/WEAK PULL UP  
WPUA = %00000000            'NO WEAK PULLUPS  

SYMBOL ADC  =PORTA.0         'ADCIN
SYMBOL LDR  =PORTA.1         'PHOTO CELL POWER
SYMBOL PIR  =PORTA.2         'PIR TRIPS HIGH
SYMBOL MODE =PORTA.3         'MODE BUTTON
'SYMBOL XT   =PORTA.4        'XT_OSC
'SYMBOL XT  =PORTA.5         'XT_OSC

SYMBOL LED =PORTC.0          'LED & DIP SWITCH 
SYMBOL DIPB =PORTC.1         'DIP SWITCH 2
SYMBOL DIPA  =PORTC.2        'DIP SWITCH 1
SYMBOL RL   =PORTC.3         'REMOTE LIGHT
SYMBOL LANC =PORTC.4         'READ /WRITE LANC
SYMBOL NA =PORTC.5           'FOR SERVO OPTION
ADC=0:LDR=0:PIR=0:MODE=0:LED=0:DIPA=0:DIPB=0:LED=0:RL=0:LANC=0:NA=0
  LED=1 :PAUSE 5000 :LED=0
 GOTO TESTMOVIE
'****************************SET UP VARIBLES***************************

DT VAR BYTE  :DT =30          'AFTER MOVIE DELAY VAR. /30 SEC. DEFAULT
DAY VAR BYTE :DAY=0           'DIP SWITCH 1 VAR FOR DAY ONLY OR DAY/NIGHT
ML VAR BYTE :ML=0             'DIP SWITCH 2 VAR FOR VARIBLE MOVIE LENGTH
RCL VAR BYTE :RCL=0           'RECORD LED VAR 
NIGHT VAR WORD:NIGHT=0        'LDR/ADCIN VAR FOR LIGHT SENSOR
command_bit var   bit 
syncbit     var   byte
syncbyte    var   word
counter     var   byte
value       var   byte
Bits        var   byte
Time        var   byte

'***********************DAY/ NIGHT PHOTO CELL CAL MODE*******************
IF MODE=0 Then GoTo  CAL  'IF MODE BUTTON PUSHED THEN GOTO LRD CAL MODE
GoTo testmovie                  'SKIP CAL MODE  GO CHECK DIP SWITCHES
CAL:
LDR=1:Pause 250           'TURN LDR/ADCIN POWER ON

LED=1:Pause 250:LED=0:Pause 250
LED=1:Pause 250:LED=0:Pause 1000  ' FLASH YOUR IN CAL MODE
TEST:
NIGHT=0
LED=0
ADCIN 0,NIGHT          'CHECK AN# READ AN0 & STORE IN NIGHT VAR
 
 IF NIGHT=>550  Then LED=1   'IF LED IS ON THEN NIGHT MOVIE
 Pause 250                   ' IF OFF DAYTIME
 
 IF MODE =0 Then GoTo testmovie    'LEAVE CAL MODE 
 
 GoTo TEST                   'LOOP AND CHECK FOR LIGHT AGAIN
'*********************************SET UP SUBS****************
     Sync_byte:        'Sync_byte looks for the inter_frame gap  
   syncbyte = 0                        
   while syncbyte < 700
   pulsin portc.4, 1, syncbyte
   wend
   Return

      Sync_bit:    'Sync_Bit looks for the start_bit of each frame 
   syncbit = 0                         
   while syncbit < 9
   pulsin portc.4, 0, syncbit
   wend
      Return
   
      Command_byte:    'tell camera that a command is to follow normal commands
      gosub sync_byte
   pauseus 55           'pause for camera's start bit to finish 55= MID OF BIT
   input portc.4          'first byte to send (LSB 1ST)Hex 18 %0001,1000
   pauseus 312    '000
   low portc.4
   pauseus 208    '11
   input portc.4
   pauseus 312    '000
   input portc.4                       'Stop bits set high
         Return

     Record_SS:
      gosub Command_byte
      gosub Sync_bit                     
   low portc.4               'USED TO STOP AND Start Recording
   pauseus 208   '11          ' 33 (LSB 1ST) %0011,0011
   input portc.4
   pauseus 208    '00
   low portc.4
   pauseus 208    '11
   input portc.4
   pauseus 208    '00
   input portc.4                       'Stop bits set high
      counter = counter + 1
      if counter = 5 then Return
      goto Record_SS
       
    Power_off:
      gosub Command_byte   
      gosub sync_bit
   input portc.4             'Power off command #5E (LSB 1ST) %0101,1110
   pauseus 104    '0      
   low portc.4
   pauseus 416    '1111
   input portc.4
   pauseus 104    '0
   low portc.4
   pauseus 104    '1
   input portc.4
   pauseus 104    '0
   input portc.4                       'Stop bits set high
      counter = counter + 1
      if counter = 5 then Return              
      goto Power_off             
'*********************************TESTMOVIE*******
TESTMOVIE:
COUNTER=0
GOSUB RECORD_SS
PAUSE 15000          '15 SEC. TEST MOVIE
COUNTER=0
GOSUB RECORD_SS
PAUSE 3000
COUNTER=0
GOSUB Power_off
'*********************************DIP CHECK****************
CKD:
night=0                     'CLEAR NIGHT VAR
led=0                       'MAKE SURE LED IS OFF
Pause 20

LED=1 :Pause 250          'TURN DIP SWITCH POWER ON
IF DIPA=0 Then ML=30
IF DIPA=1 Then ML=60
'***********************SET DELAY**************************  
IF DIPB=0 Then dt=30 
IF DIPB=1 Then dt=60      
Pause 300
LED=0                      'TURN DIP SWITCH POWER OFF

'****************************** PIR WARM UP & WALKTEST *************
Sleep 50                        '50 SEC. PIR WARM UP
LED=1:Pause 350:LED=0:Pause 500   'FLASH LED FOR START OF WALKTEST
LED=1:Pause 350:LED=0:Pause 500
LED=1:Pause 350:LED=0:pause 500 

A VAR WORD
For A= 0 TO 30000         '20 SEC. WALKTEST TIME RESETS WITH pir TRIP
Pause 1
IF PIR=1 Then               'IF PIR TRIPS THEN TURN ON LED
LED=1
Pause 1000
LED=0
Pause 500
A=0
EndIF
Next A
LED=1 :Pause 500 :LED=0 :Pause 300    'FLASH LED END OF WALKTEST
LED=1 :Pause 500 :LED=0 :Pause 300 

SLEEP 20 :led=1 :Pause 500 : led=0   '20 SEC TO GET OUT OF THE WAY

'************************ GOTO SLEEP & WAIT FIR INTERUPT **********
MAIN:

NIGHT =0                     'CLEAR NIGHT VAR TO 0
ON INTERRUPT GoTo MOVIE      'ON PIR TRIP WAKE UP 
INTCON=$90                   'ENABLE .2 INTERUPT

Sleep 900                   '15 MIN SLEEP
 
 
GoTo MAIN                    'GO BACK TO SLEEP AND WAIT ON INTERUPT
Disable 

'*************************************MAKE MOVIE *************************** 
 MOVIE:
 INTCON=0                       'DISABLE ALL INTERUPTS
 pause 200
  IF PIR =0 then  sleep 60 :goto delay 'DID THE PIR CAUSE THE INTERUPPT
 
  LDR=1                         'POWER UP LIGHT SENSOR
 Pause 20 
 ADCIN 0,NIGHT                 'READ AN1 & STORE IN NIGHT VAR
  PAUSE 250
 IF NIGHT=<550 Then  SLEEP 120 :GOTO DELAY   ' IT'S DAY 

 Pause 25
 LDR=0  
 
 Wakeup:             ' WAKE CAM UP FROM POWER SAVING SLEEP MODE
   low portc.4     '
   pause 500
   input portc.4
                    
pause 3000                  'CAM BOOT UP TIME
RL=1                        'TURN IR LED ARRAY ON
counter=0
gosub record_ss 
 
 SLEEP ML                   'MOVIE LENGHT SET WITH DIP1 30/60
 counter=0
gosub record_ss
pause 5000                     'GOTO STANDBY
counter=0
gosub power_off                'PUT CAM TO SLEEP
'******************************BETWEEN MOVIE DELAY *******************
DELAY:
INTCON=0                       'DISABLE ALL INTERUPTS
LDR=0                           'MAKE SURE LDR/ADCIN POWER OFF
RL=0                            'MAKE SURE REMOTE LIGHT IS OFF
Sleep DT                        'DELAY SET WITH DIP2 30/60

    INTCON.1=0                 'RESET A.2 INTERUPT FLAG
    Disable
    GoTo MAIN              'GO BACK TO SLEEP AND WAIT FOR NEXT INTERUPT
Enable