Hi Aerostar!
Thank you, Thank you, Thank you! I do not know how to save your hex code to a file? Second the statement "@ device PIC16f628a,HS_OSC,BOD_ON,MCLR_ON,PWRT_ON" does not allow me to compile the program, had to change it to a config. I am using Micro Code Studio Plus 5.0.0.5 PBPX 3.1.0.4 and MPLAB IDE V8.92. I did try 4 different 16F628A's and end up with the same results. I do have pin 4 of the 16F628A tied to +5v through a 4.7k resistor as i understand this to be the MCLR for the 16F628A. I believe our code is identical except for the config statement as I added the config to your code so it would compile. Not sure what else to change, maybe if you have time you can compile my version and see if it will work? I did order some more STV5730's which should be here any day now.

Code:
'****************************************************************
'*  Name    : STV-SYNCHS RELEASE                          *
'*  Author  : BOB LEGGETT                                       *
'*  Notice  : Copyright (c) 2009                                *
'*          : All Rights Reserved                               *
'*  Date    : around 2009 or so rehashed now '17         *
'*  Version : 1.0                                               *
'*  Notes   :   VIDEO IDENT                                *
'*          :                                                   *
'****************************************************************



'   WORKS USES SYNC FOR SWITCHING BETWEEN MIXED AND FULL TEXT MODE
'   GOING FROM VID IN TO TEXT AND BACK TO VID IN

' @ device PIC16f628a,HS_OSC,BOD_ON,MCLR_ON,PWRT_ON 
#CONFIG
    __config _HS_OSC & _WDT_ON & _MCLRE_ON & _LVP_OFF & _CP_OFF
#ENDCONFIG
   
        
    define  OSC 20
    
     
'TV CHIP CONNECTIONS
 

 
'---------------------------------------------------------------
   '16f628a  ED definitions
 
 TVSDA     		VAR PORTB.4    '0     OUTPUT  pin 11 stv was b.1
 CS0     		VAR PORTB.6    '0     OUTPUT pin 13 stv was b.0
 TVSCL     		VAR PORTB.5    '0     OUTPUT  pin 12 stv was b.5
 SYNCH0         VAR PORTB.7    '1     INPUT    to pin 7 stvchip was b.2
 'HEARTBEAT      VAR PORTB.6          OUTPUT 0  led was b.6
'--------------------------------------------------------------- 

'16f628a 
      
'	TVSDA     		VAR PORTB.1    '0    OUTPUT  pin 11 stv
' 	CS0     		VAR PORTB.0    '0    OUTPUT pin 13 stv
'	TVSCL     		VAR PORTB.5    '0    OUTPUT  pin 12 stv
'   SYNCH0          VAR PORTB.2    '1    INPUT    to pin 7 stvchip
'   HEARTBEAT       VAR PORTB.6    '     OUTPUT 0  led
'---------------------------------------------------------------

    ZOOMREG         CON %0000000011001100       ' 12 ZOOM REGISTER
    COLREG          CON %0000000011001101       ' 13 COLOUR REGISTER
    CONREG          CON %0000000011001110       ' 14 CONTROL REGISTER
    POSREG          CON %0000000011001111       ' 15 POSITION REGISTER 
    MODEREG         CON %0000000011010000       ' 16 MODE REGISTER

    
      
	ICOUNT  		VAR BYTE
	BITCOUNTER 	VAR BYTE
	WDATA   		VAR WORD
	CHARCOUNTER	VAR BYTE '  
	LINECOUNTER	VAR BYTE '


     STVCHAR VAR BYTE
    ASCCHAR VAR BYTE
    CHARS VAR BYTE
    CHARS2 VAR BYTE
    TEMP    VAR BYTE 
    TEMP1   VAR BYTE
     COUNTER VAR BYTE
     PULSES VAR BYTE
    CURRENTMODE0 VAR BYTE

'----------------------------------------------------------------     
'    TOPLEFT          CON 0
'    TOPMIDDLE       CON 5
'    TOPRIGHT        CON 10
'    BOTLEFT         CON 2560    '10*256
'    BOTMIDDLE       CON 2565 '(10*256)+ 5
'    BOTRIGHT        CON 2570 '(10*256)+ 10
'---------------------------------------------------------------- 

    DATA @0,"NTSC ",$FF,"NO SYNCHS RECEIVED",$FF   



'---------------------------------------------------------------- 
'628
'  TRISB=%10011100
  TRISB = %10001111
  CMCON=7
'----------------------------------------------------------------     


    PAUSE 500
    
'    HIGH HEARTBEAT
    
    
	GOSUB Init
	
    PAUSE 500
	GOSUB Init
    
    CURRENTMODE0=255         ' FORCES TRYSYNCHS TO SET MODE FIRST TIME

	
Demo:

CHARCOUNTER = 0
	LINECOUNTER = 0
'    CURRENTMODE0 = 0     '0 = MIXED 1 = TEXT
    gosub CLS
    GOSUB TRYSYNCHS      '==================================


    TEMP = 0
  
     

LOOPER:
    GOSUB HEADER   ' LINE 3 RIGHT HAND SIDE TEST.
    IF CURRENTMODE0=1 THEN
    GOSUB NOVIDEO   ' DISPLAYS NO VIDEO IF NO INCOMING SYNCHS
    ENDIF

    
    GOSUB TRYSYNCHS       '===========================
    

'    PAUSE 500            'I/2 SECOND DELAY
'    TOGGLE HEARTBEAT      ' LED
    GOTO LOOPER          'DO IT FOREVER
  

DISPLAYCHAR:   

    WDATA = %0001011100000000 + STVCHAR
    GOSUB SEND 
     RETURN
SETLINE:    
	WDATA = LINECOUNTER*256 + CHARCOUNTER
    GOSUB Send              'position cursor   
    RETURN



WasteTime:        ' WORKS WITH LESS NOPS



    pauseus 20    ' was 20 nops

	RETURN

StartCommunication:
	TVSCL = 1 'HIGH TVSCL 
    GOSUB WasteTime

    CS0 = 0 'LOW CS0

    GOSUB WasteTime
	TVSCL = 0 'LOW TVSCL
    GOSUB WasteTime
	RETURN

StopCommunication:
	TVSCL = 1 'HIGH TVSCL
    GOSUB WasteTime
    CS0 = 1 'HIGH CS0

    GOSUB WasteTime
	RETURN

SendOne:
	TVSDA = 1 'HIGH TVSDA
    GOSUB WasteTime
	TVSCL = 0 'LOW  TVSCL
    GOSUB WasteTime
	TVSCL = 1 'HIGH TVSCL
    GOSUB WasteTime
	RETURN

SendZero:
	TVSDA = 0 'LOW TVSDA
    GOSUB WasteTime
	TVSCL = 0 ' LOW TVSCL
    GOSUB WasteTime
	TVSCL = 1 'HIGH TVSCL
    GOSUB WasteTime
	TVSDA = 1 'HIGH TVSDA
    GOSUB WasteTime
	RETURN

OutByte:
	FOR BITCOUNTER = 1 TO 16
	 IF WDATA.15 = 1 THEN
	  GOSUB SendOne
	 ELSE
	  GOSUB SendZero
	 ENDIF
	 WDATA = WDATA << 1
	NEXT BITCOUNTER
	RETURN

Send:
	GOSUB StartCommunication
	GOSUB OutByte
	GOSUB StopCommunication
	RETURN

'-------------------------------------------------------------  

Init:     '    PAUSE 50 added - seems to improve reliability of init

	TVSCL = 1 'HIGH TVSCL
    TVSDA = 1 'HIGH TVSDA
    CS0 = 1 'HIGH CS0
 
	WDATA = $3000  '%110000 00000000
    GOSUB Send ' Init STV5730
    PAUSE 50
	WDATA = $3000
    GOSUB Send
    PAUSE 50
	WDATA = $00DB  '%00000000 11011011
    GOSUB Send
    PAUSE 50
	WDATA = $1000  '%00010000 00000000
    GOSUB Send
    PAUSE 50
'-------------------------------------------------------------  
	WDATA = %0000000011001100
    GOSUB Send ' Init registers (point to register 12)
    PAUSE 50
'-------------------------------------------------------------      
	WDATA = %0001000000000000   'NORMAL
'  WDATA = %0001000011110000   '4 PIXELS HORIZ AND VERT
    GOSUB Send ' Zoom    ADDRESS 12
    PAUSE 50
'-------------------------------------------------------------      
	WDATA = %0001001000000000

'    	WDATA = %0001001000000100
         GOSUB Send ' Color    ADDRESS 13
         PAUSE 50
'--------------------------------------------------------
            
 
     WDATA=  %0001101011010100    'BIT 8 = 0 FOR NTSC

 
     
            'CHANGE BIT 0 TO 1 FOR TEXT ONLY
    GOSUB Send ' Control    ADDRESS 14
'-------------------------------------------------------------    
	WDATA = %0001011111001111
    GOSUB Send ' Position    ADDRESS 15
'------------------------------------------------------------- 

   
	WDATA = %0001000000101110 '$183E BIT 11 CHANGED TO 0  M4 = 0
       GOSUB Send ' Mode    ADDRESS 16  %0001100000111110

'------------------------------------------------------------- 
 
	WDATA = $00C0   '%00000000 11000000
    GOSUB Send ' Set row attributes
     
	FOR ICOUNT = 0 TO 10
	 WDATA = $10C4 '%00010000 11000100
  	' WDATA =%0001000010000111
     GOSUB Send
	NEXT ICOUNT
	RETURN
 
CLS: 
    'character=$0B       'SPACE
     TEMP1=0   ' LINECOUNTER
     TEMP =0    'CHARCOUNTER
loop2:
    
	WDATA = 0  ' LINECOUNTER*256 + CHARCOUNTER   ADDRESS
    GOSUB Send
    

LOOP3:    '                :CHARACTERS        
	WDATA = %0001011100001011  '     1011 0BH SPACECHARACTER
    GOSUB Send
	TEMP = TEMP + 1
	IF TEMP >= 28 THEN
    TEMP = 0
    TEMP1=TEMP1 + 1
	ENDIF
	IF TEMP1 >= 11 THEN SCREENBLANK
 	
    GOTO LOOP3
    
SCREENBLANK:
	RETURN

GETSTVCHAR:                  'CONVERT ASCII TO STV
        STVCHAR =$7F   ' FORCES CLOCK PICTURE IF ERROR         
       LOOKDOWN ASCCHAR,["0123456789- ABCDEFGHIJKLMNOPQRSTUVWXYZ:./'abcdefghijklmnopqrstuvwxyz"],STVCHAR
               RETURN 

HEADER:
    LINECOUNTER=2       'SET START POSITION
    CHARCOUNTER=23      'SET CURSOR POSITION
    GOSUB SETLINE
    FOR CHARS2=0 TO 4
    READ CHARS2, ASCCHAR
    gosub GETSTVCHAR    'CONVERT ASCII TO STV
    GOSUB DISPLAYCHAR
    NEXT
    RETURN
    
NOVIDEO:
    LINECOUNTER=5       'SET START POSITION
    CHARCOUNTER=4       'SET CURSOR POSITION
    GOSUB SETLINE
    FOR CHARS2=6 TO 23      ' FROM EEPROM DATA
    READ CHARS2, ASCCHAR
    gosub GETSTVCHAR    'CONVERT ASCII TO STV
    GOSUB DISPLAYCHAR
    NEXT
    RETURN
    
TRYSYNCHS:
    
    PULSES=0

    COUNT SYNCH0,4,PULSES   '3MS SHOULD COUNT TO 2 OR 3
    IF PULSES > 0 THEN MIXED0
FULL0:

    IF CURRENTMODE0=1 THEN RETURN

    WDATA=  %0000000011001110       'CONTROL REGISTER
    GOSUB SEND
    WDATA=  %0001101011010101   'NTSC

    
    
'        WDATA=  %0001101011010101   'NTSC     BIT 8 = 0
            'CHANGE BIT 0 TO 1 FOR TEXT ONLY       OTIGINAL
            
 '     WDATA=  %0001101111010100
            'CHANGE BIT 0 TO 1 FOR TEXT ONLY        
    GOSUB SEND

STAYHERE02:
  
    CURRENTMODE0=1
        GOSUB CLS
GOBACK0:
    RETURN


MIXED0:
    IF CURRENTMODE0=0 THEN RETURN
    WDATA=  %0000000011001110       'CONTROL REGISTER
    GOSUB SEND
    WDATA=  %0001100111010100    'ntsc
    
    
    
'    WDATA=  %0001101011010100     'NTSC   BIT 8 = 0
    GOSUB SEND

STAYHERE01:

    CURRENTMODE0=0
    GOSUB CLS
    RETURN
Many thanks, Ed

P.S. If you wish to e-mail me files my e-mail is [email protected]