diff --git a/compiler/res/prog8lib/c64flt.p8 b/compiler/res/prog8lib/c64flt.p8 index 3f5b169b5..c0127f811 100644 --- a/compiler/res/prog8lib/c64flt.p8 +++ b/compiler/res/prog8lib/c64flt.p8 @@ -540,7 +540,8 @@ pop_2_floats_f2_in_fac1 .proc ldy #>fmath_float2 jmp c64flt.MOVFM .pend - + + fmath_float1 .byte 0,0,0,0,0 ; storage for a mflpt5 value fmath_float2 .byte 0,0,0,0,0 ; storage for a mflpt5 value @@ -555,7 +556,25 @@ push_fac1_as_result .proc jmp push_float .pend - +pow_f .proc + ; -- push f1 ** f2 on stack + lda #fmath_float2 + jsr pop_float + lda #fmath_float1 + jsr pop_float + stx c64.SCRATCH_ZPREGX + lda #fmath_float1 + jsr c64flt.CONUPK ; fac2 = float1 + lda #fmath_float2 + jsr c64flt.FPWR + ldx c64.SCRATCH_ZPREGX + jmp push_fac1_as_result + .pend + div_f .proc ; -- push f1/f2 on stack jsr pop_2_floats_f2_in_fac1 diff --git a/examples/test.p8 b/examples/test.p8 index adde1f9ad..91422a88c 100644 --- a/examples/test.p8 +++ b/examples/test.p8 @@ -13,52 +13,51 @@ float fl=2.3 float fl2=20 - ub = ub ** 7 - c64scr.print_ub(ub) - c64.CHROUT('\n') - uw = uw ** 5 - c64scr.print_uw(uw) - c64.CHROUT('\n') +; ub = ub ** 7 +; c64scr.print_ub(ub) +; c64.CHROUT('\n') +; uw = uw ** 5 +; c64scr.print_uw(uw) +; c64.CHROUT('\n') fl = fl ** 20.0 c64flt.print_f(fl) c64.CHROUT('\n') - ub=3 ; @todo no instruction? - ub **=7 ; @todo no instruction? - c64scr.print_ub(ub) - c64.CHROUT('\n') - uw = 9 ; @todo no instruction? - uw **=5 ; @todo no instruction? - c64scr.print_uw(uw) - c64.CHROUT('\n') - fl = 2 ; @todo no instruction? +; ub=3 ; @todo no instruction? +; ub **=7 ; @todo no instruction? +; c64scr.print_ub(ub) +; c64.CHROUT('\n') +; uw = 9 ; @todo no instruction? +; uw **=5 ; @todo no instruction? +; c64scr.print_uw(uw) +; c64.CHROUT('\n') + fl = 2.3 ; @todo no instruction? fl **=20.0 ; @todo no instruction? c64flt.print_f(fl) c64.CHROUT('\n') - ub=3 - ub **= 7 - - c64scr.print_ub(ub) - c64.CHROUT('\n') - uw = 9 - uw **= 5 - c64scr.print_uw(uw) - c64.CHROUT('\n') +; ub=3 +; ub **= 7 +; c64scr.print_ub(ub) +; c64.CHROUT('\n') +; uw = 9 +; uw **= 5 +; c64scr.print_uw(uw) +; c64.CHROUT('\n') fl = 2.3 fl **= 20.0 c64flt.print_f(fl) c64.CHROUT('\n') - ub=3 - ub **= ub2 - c64scr.print_ub(ub) - c64.CHROUT('\n') - uw = 9 - uw **= uw2 - c64scr.print_uw(uw) - c64.CHROUT('\n') +; ub=3 +; ub **= ub2 +; c64scr.print_ub(ub) +; c64.CHROUT('\n') +; uw = 9 +; uw **= uw2 +; c64scr.print_uw(uw) +; c64.CHROUT('\n') fl = 2.3 fl **= fl2 c64flt.print_f(fl)