%import textio %import floats %import syslib %option enable_floats ; TODO remove this option, only import floats is requires %zeropage basicsafe ; Note: this program is compatible with C64 and CX16. ; TODO fix abs() and the other builtin funcs main { sub start() { byte bb word ww bb = 0 bb = sgn(bb) txt.print_b(bb) txt.chrout('\n') bb = 127 bb = sgn(bb) txt.print_b(bb) txt.chrout('\n') bb = -1 bb = sgn(bb) txt.print_b(bb) txt.chrout('\n') bb = -127 bb = sgn(bb) txt.print_b(bb) txt.chrout('\n') bb = -128 bb = sgn(bb) txt.print_b(bb) txt.chrout('\n') txt.chrout('\n') ww = 0 ww = sgn(ww) txt.print_w(ww) txt.chrout('\n') ww = 32767 ww = sgn(ww) txt.print_w(ww) txt.chrout('\n') ww = -1 ww = sgn(ww) txt.print_w(ww) txt.chrout('\n') ww = -32767 ww = sgn(ww) txt.print_w(ww) txt.chrout('\n') ww = -32768 ww = sgn(ww) txt.print_w(ww) txt.chrout('\n') main22.testX() } } main22 { sub start() { ubyte char uword ssss float fl ;char = 1+(lsb(ssss) * 2) ;fl = 2.0*(abs(fl) + 1.0) char = abs(char) char = lsb(ssss) char++ char = msb(ssss) char++ char = c64.CHRIN() txt.print_ub(char) txt.chrout('\n') char = chrin() txt.print_ub(char) txt.chrout('\n') void getstr() ssss = getstr() txt.print_uwhex(ssss, true) txt.chrout('\n') ; fl = getfloat() ; ; floats.print_f(fl) ; txt.chrout('\n') testX() ;char=strlen(ssss) } sub chrin() -> ubyte { return 99 } sub getstr() -> str { @($d020)++ return "foo" } ; sub getfloat() -> float { ; return 4.56789 ; } sub mcp(uword from, uword dest, ubyte length) { txt.print_uw(from) txt.print_uw(dest) txt.print_ub(length) } asmsub testX() { %asm {{ stx _saveX lda #13 jsr txt.chrout lda _saveX jsr txt.print_ub lda #13 jsr txt.chrout ldx _saveX rts _saveX .byte 0 }} } }