%import textio %import floats %import test_stack %zeropage basicsafe main { %option force_output sub start() { uword b1 b1 = 'a' b1 = b1=='z' ; TODO fix code generation! txt.print("should print 0: ") txt.print_ub(b1) txt.nl() b1 = 'a' b1 = b1!='z' ; TODO fix code generation! txt.print("should print 1: ") txt.print_ub(b1) txt.nl() ; str text = "???????????" ; void txt.input_chars(text) ; txt.print("\ninput=") ; txt.print(text) ; txt.nl() ; b1 = text[0]=='z' ; txt.print_ub(b1) ; txt.nl() ; ; if text[0]=='z' { ; txt.print("z!\n") ; } ; ; test(text[0]=='z') ; float fl ; test_stack.test() ; ; fl = addfloat3(addfloat2(addfloat1(1.234))) ; floats.print_f(fl) ; txt.nl() ; ; fl = 1.234 |> addfloat1 |> addfloat2 |> addfloat3 ; floats.print_f(fl) ; txt.nl() ; 1.234 |> addfloat1 ; |> addfloat2 |> addfloat3 |> floats.print_f ; txt.nl() ; ; txt.print_uw(times_two(add_one(sin8u(add_one(assemblything(9+3)))))) ; txt.nl() ; ; 9+3 |> assemblything ; |> add_one ; |> sin8u ; |> add_one ; |> times_two ; |> txt.print_uw ; txt.nl() ; ; uword @shared uw= 9+3 |> assemblything ; |> add_one ; |> sin8u ; |> add_one ; |> times_two ; txt.print_uw(uw) ; txt.nl() ; test_stack.test() } sub test(ubyte what) { txt.print("test: what=") txt.print_ub(what) txt.nl() } sub func() -> ubyte { txt.print("func!\n") return 99 } sub addfloat1(float fl) -> float { return fl+1.11 } sub addfloat2(float fl) -> float { return fl+2.22 } sub addfloat3(float fl) -> float { return fl+3.33 } sub add_one(ubyte input) -> ubyte { return input+1 } sub times_two(ubyte input) -> uword { return input*$0002 } asmsub assemblything(ubyte input @A) clobbers(X,Y) -> ubyte @A { %asm {{ ldx #64 asl a rts }} } } ;main { ; sub start() { ; %asm {{ ; lda #float5_111 ; jsr floats.MOVFM ; lda #float5_122 ; jsr floats.FADD ; jsr floats.FOUT ; sta $7e ; sty $7f ; ldy #64 ;_loop ; lda ($7e),y ; beq _done ; jsr c64.CHROUT ; iny ; bne _loop ;_done ; rts ; ;float5_111 .byte $81, $64e, $14, $7a, $e1 ; float 1.11 ;float5_122 .byte $81, $1c, $28, $f5, $c2 ; float 1.22 ; ; }} ; } ; ;}