The "ISO" value from get_current_exp seems to be an APEX96 offset from some fixed base SV96 value.
On A540, the base value seems to be equivalent to SV96 (real) 600
On elph180, it appears to be 795.
The offset value appears to be referred to as "DeltaGain" in the A540 firmware, from the eventproc ImgGainTool.GetGain
The way I found this was
half press to to get Bv
use Tv + Av - Bv = Sv to get the what the Sv value would be using the Bv from half press and the live view (current) Tv and Av.
Note the above is only valid if the the camera was able achieve "correct" exposure in half press. If it's pointed somewhere so dark the shutter hits the 1 sec auto exposure limit, the calculated Sv will be wrong.
The following chdkptp snippet is what I used on elph130. The call_func_ptr values are the ImgGain.c and ImgPixel functions from get_current_exp. The ImgPixel one was always 0 in my testing.
!bv,sv,tv,av,dg,ug=con:execwait[[
p=require'propcase' press'shoot_half' repeat sleep(10) until get_shooting() return get_prop(p.BV),get_prop(p.SV),get_current_tv96(),get_current_av96(),call_func_ptr(0xFF916908),call_func_ptr(0xFF916E0C)
]]
esv=tv + av - bv
printf("tv=%d (%s) av=%d (%0.2f) bv=%d dg=%d esv=%d (%d) esv-dg=%d sv=%d (%d) ug=%d\n",
tv,exp.tv96_to_shutter_str(tv),
av,exp.av96_to_f(av),
bv,
dg,
esv,exp.sv96_to_iso(esv),esv-dg,
sv,exp.sv96_to_iso(sv),ug)
Making this usable will probably require a sig finder friendly way of finding the base value.