Yes, I had posted it before. But it was for a different chip, and I can't find it now.
It's not too difficult, so I re-wrote it for the 12F615 and tested it on a LAB-X4.

The idea is to use the internal 0.6V reference (ADC channel 5).
The reference stays the same as VDD changes, so with VDD as the ADC's Vref, the value read changes too. You can use that change to calculate actual VDD without needing an external Analog Pin.

Code:
DEFINE ADC_BITS 10

LCD       VAR GPIO.1              ; serial pin for LCD
LCDbaud   CON 396                 ; serial baud rate

ADval     VAR WORD
VDD       VAR WORD

ANSEL  = 0                        ; All Pins are Digital
ADCON0.7 = 1                      ; Right Justify A/D result
HIGH LCD : PAUSE 2                ; Initialize serial data level

SEROUT2 LCD,LCDbaud,[$FE,1] : PAUSE 3 ; Clear LCD

GOSUB GetVDD

SEROUT2 LCD,LCDbaud,["A/D=",DEC ADval,"  ", _
                     "VDD= ",DEC VDD/10,".",DEC1 VDD]
STOP
;------------------------------------------------------------------
Vref_AD   CON 117           ; A/D reading for 0.6V Vref @ 5V VDD

GetVDD:
    VRCON.4 = 1                   ; Enable 0.6V Fixed reference
    PAUSE 10                      ; allow reference to stabilize
    ADCIN 5, ADval                ; read the 0.6V reference
    VDD = (Vref_AD * 50) / ADval  ; convert to volts
    VRCON.4 = 0                   ; turn off fixed reference
RETURN
The VDD result has 1 decimal place, so 5.0V will be 50.

HTH,