!Trace frames on; Include "longs.h"; [ Main: local long a, local long b, local long c; #ifdef TARGET_GLULX; @setiosys 2 0; ! select Glk I/O system ! Open a text-buffer window, and select it as the current output stream. glk($002F, glk($0023, 0, 0, 0, 3, 0)); #endif; a = L_One; a = LongAdd(LongAdd(a, LongAdd(a, a)), LongAdd(LongAdd(a, a), a)); print "(1+(1+1)))+((1+1)+1) = ", (PrintLong) a, "^"; c = LongSignedDiv(MakeLong(0,0,0,120), MakeLong(0,0,0,10)); print "120 / 10: ", (PrintLong) c, " (", (DumpLong) c, ")^"; print "50000 + 50000 = "; PrintLong(LongAdd(MakeLong(0,0,50,000), MakeLong(0,0,50,000)), 1); print "^"; c = LongSignedMul(MakeLong(0,0,1,000), MakeLong(0,0,5,000)); print "1000 * 5000 = "; PrintLong(c, 1); print "^"; print "And the square root is "; PrintLong(LongSqrt(c), 1); print "^"; a = MakeLong(0,0, -12,346); b = MakeLong(0,0, 2,468); print "-12346 * 2468 = "; PrintLong(LongSignedMul(a, b), 1); print "^"; print "-12346 / 2468 = "; PrintLong(LongSignedDiv(a, b)); print "^"; print "-12346 % 2468 = "; PrintLong(LongSignedMod(a, b)); print "^"; ];