' Ethiopian multiplication PROGRAM "ethmult" VERSION "0.0000" DECLARE FUNCTION Entry() INTERNAL FUNCTION Double(@a&&) INTERNAL FUNCTION Halve(@a&&) INTERNAL FUNCTION IsEven(a&&) FUNCTION Entry() x&& = 17 y&& = 34 tot&& = 0 DO WHILE x&& >= 1 PRINT FORMAT$("#########", x&&); PRINT " "; IFF IsEven(x&&) THEN tot&& = tot&& + y&& PRINT FORMAT$("#########", y&&); END IF PRINT Halve(@x&&) Double(@y&&) LOOP PRINT "= "; PRINT FORMAT$("#########", tot&&); PRINT END FUNCTION FUNCTION Double(a&&) a&& = 2 * a&& END FUNCTION FUNCTION Halve(a&&) a&& = a&& / 2 END FUNCTION FUNCTION IsEven(a&&) RETURN a&& MOD 2 = 0 END FUNCTION END PROGRAM