; Functions: routines that give back a value

BYTE FUNC Max(BYTE a, b)
  IF a>b THEN
    RETURN(a)
  FI
RETURN(b)

CARD FUNC Square(CARD n)
RETURN(n*n)

BYTE FUNC IsEven(CARD n)
  IF n MOD 2=0 THEN
    RETURN(1)
  FI
RETURN(0)

PROC Main()
  CARD i, sum

  Print("The bigger of 7 and 12: ")
  PrintBE(Max(7, 12))

  Print("12 squared: ")
  PrintCE(Square(12))

  sum=0
  FOR i=1 TO 10
  DO
    sum==+Square(i)
  OD
  Print("Squares of 1 to 10 added: ")
  PrintCE(sum)

  FOR i=1 TO 4
  DO
    PrintC(i)
    IF IsEven(i)=1 THEN
      PrintE(" is even")
    ELSE
      PrintE(" is odd")
    FI
  OD
RETURN
