namespace; include rt; // extern and cfunc with f32 and the sized integers extern f32 sqrtf(f32); extern f64 hypot(f64, f64); extern i32 abs(i32); extern u8 toupper(u8); extern long labs(long); fn put_f(x) { asm { x @ #1220 } return 0; } fn sp() { rt.put_c(32); return 0; } extern void qsort(word *base, long n, long size, void *cmp); i32 cmpi(int* a, int* b) { return *a - *b; } f32 half(f32 v) { return v / 2; } fn main() { f32 r = sqrtf(2.0); put_f(r); sp(); rt.put_n(r == sqrtf(2.0)); sp(); put_f(hypot(3.0, 4.0)); sp(); rt.put_n(abs(0 - 77)); sp(); rt.put_n(toupper(97)); sp(); i32 big = 0 - 5; rt.put_n(abs(big)); sp(); int v[4]; v[0] = 4; v[1] = 1; v[2] = 3; v[3] = 2; qsort(v, 4, 8, cfunc(cmpi)); rt.put_n(v[0]); rt.put_n(v[1]); rt.put_n(v[2]); rt.put_n(v[3]); sp(); put_f(half(5.0)); rt.put_c(10); return 0; }