tada ... and its even upgradeable (check the comments)
;-- Constant Specified ----
; c0-3 = matWorldVeiwProjection
; c4-7 = matWorldVeiw
; c8 = vecEyePosition
; c9 = offset (self defined)
; c10 = refraction index (self defined)
;
; Vertex Components
; v0 = Position
;
; Temp Registers
; r0 = Temp
; r3 = Eye Vector
; r4 = Reflection Dot
; r5 = Eye Dot Normal //only used for fresnel
; r7 = WorldSpace Normal
; r9 = WorldSpace Normal Refraction
;--------------------------
vs.1.1
dcl_position v0
def c9,(1,0,0,0)
def c10,(1.55,1.55,1.55,0)
; trasform vertex position
; & get world space vertex position
dp4 oPos.x, v0, c0
dp4 oPos.y, v0, c1
dp4 oPos.z, v0, c2
dp4 oPos.w, v0, c3
dp4 r0.x, v0, c4
dp4 r0.y, v0, c5
dp4 r0.z, v0, c6
dp4 r0.w, v0, c7
; transform normal to worldspace
dp3 r7.x, v1, c4
dp3 r7.y, v1, c5
dp3 r7.z, v1, c6
; normalise again after the transform
; else they will be off
dp3 r9.w, r7, r7
rsq r9.w, r7L.w
mul r9, r7, 7.w
; grab the eye vector
sub r0, r0, c8
dp3 r3.w, r0, r0
rsq r3.w, r3.w
mul r3, r0, r3.w
; calculate the reflection
dp3 r4, r3, r7 ;for fresnel exchange with this -> dp3 r5, r3, r7
add r4, r4, r4 ;for fresnel exchange with this -> add r4, r5, r5
mad oT0.xyz,r7, -r4, r3 ;export vector
mov oT0.w, c9.x ;export normal length
; for fresnel unrem this
;mov oD0.w, -r5 ;export to diffuse
; this section adds a refraction
; set refraction normal
;mul r9.xyz, r7, c10
; calculate the refraction
;dp3 r4, r3, r9
;add r4, r4, r4
;mad oT1.xyz,r9, -r4, r3 ;export vector
;mov oT1.w, c9.x ;export normal length
that was fun

... now howto use that in DBpro i'll leave that upto you but you should be able to see it in action using RenderMonkey, i really can't be arsed to make you a project for it though ... would have to download it again.
i think MS should add syntax highlighting into notepad hehee
Within the Epic battle of the fates the Shadow and the Angel will meet. With it will harbinger the very fight of good vs evil!