IT MAY NOT BE WORTH THE EFFORT ,tried this on a 12f683

90 words

Code:
#CONFIG
    __config _INTRC_OSC_NOCLKOUT & _WDT_OFF & _MCLRE_ON & _CP_OFF
#ENDCONFIG
DEFINE OSC 8 'LETS PBP KNOW WE WILL BE RUNNING AT 8MHZ

'PIN DEFENITIONS
'
'GP3 
'GP4 USED FOR TRIGGER INPUT
'GP5 USED FOR LED
'SET UP THE  REGISTERS
OSCCON = %01110001  '8MHZ INTERNAL CLOCK USED
CMCON0 = %00000111 'CIN PINS ARE I/O, COUT PIN IS I/O
TRISIO = %00111011 ' GP2  OUTPUT THE REST ARE INPUTS 
ANSEL = 0 'NO ANALOG PORTS - ALL DIGITAL
WPU = %00010000 'GP4 WEAK PULL UP ENABLED.
    
    DEFINE DEBUG_REG GPIO
    DEFINE DEBUG_BIT 2
    DEFINE DEBUG_BAUD 9600
    DEFINE DEBUG_MODE 0
'    LATB.7=1
'PBP software serial out 8N1
delay var word ' set baud rate delay
txbyte var byte ' byte to send
bcount var byte ' counter
serpin var gpio.2
delay = 100 ' set serial delay here   9600
main:
txbyte = "H"
GOSUB serialout
txbyte = "E"
GOSUB serialout
txbyte = "L"
GOSUB serialout
txbyte = "L"
GOSUB serialout
txbyte = "O"
GOSUB serialout
txbyte = $20 ' space
GOSUB serialout
goto main
 
serialout:
Debug  txbyte 
RETURN
98 words for arts version

Code:
#CONFIG
    __config _INTRC_OSC_NOCLKOUT & _WDT_OFF & _MCLRE_ON & _CP_OFF
#ENDCONFIG
DEFINE OSC 8 'LETS PBP KNOW WE WILL BE RUNNING AT 8MHZ

'PIN DEFENITIONS
'
'GP3 
'GP4 USED FOR TRIGGER INPUT
'GP5 USED FOR LED
'SET UP THE  REGISTERS
OSCCON = %01110001  '8MHZ INTERNAL CLOCK USED
CMCON0 = %00000111 'CIN PINS ARE I/O, COUT PIN IS I/O
TRISIO = %00111011 ' GP2  OUTPUT THE REST ARE INPUTS 
ANSEL = 0 'NO ANALOG PORTS - ALL DIGITAL
WPU = %00010000 'GP4 WEAK PULL UP ENABLED.
    
'PBP software serial out 8N1
delay var word ' set baud rate delay
txbyte var byte ' byte to send
bcount var byte ' counter
serpin var gpio.2
delay = 100 ' set serial delay here   9600
main:
txbyte = "H"
GOSUB serialout
txbyte = "E"
GOSUB serialout
txbyte = "L"
GOSUB serialout
txbyte = "L"
GOSUB serialout
txbyte = "O"
GOSUB serialout
txbyte = $20 ' space
GOSUB serialout
goto main
 
serialout:

' start bit
serpin = 0  ' tx clear
PAUSEUS delay ' start bit delay
' send byte
FOR bcount = 0 TO 7
serpin=txbyte.0
txbyte = txbyte >> 1
PAUSEUS delay ' data bit delay
 
NEXT  
serpin= 1
PAUSEUS delay ' stop bit delay
RETURN