JAL manual - language - subprograms

previous up next


A procedure declaration declares a name for an argument list and a sequence of statements. The mechanism for passing arguments is described under the procedure call.

   procedure zero( byte out x ) is begin
      x = 0
   end procedure


A function declaration declares a name for an argument list, a sequence of statements and a return type.

When the execution of a function reaches the end of the statements the returned value is undefined.

   function reverse( byte in x ) return byte is
      byte y
      for 8 loop
         asm rrf x, f
         asm rlf y, f
      end loop
      return y
   end function


A pseudo-variable can be used like any other variable, but is implemented by a get and/or put routine. One of the two routines can be omitted, which makes the variable read-only or write-only. Alternatively a variable and a put or get routine can be declared, in which case the plain variable will be used for the missing routine.

A put procedure must have one byte in parameter, a get function must have no parameters.

   procedure hd44780'put( byte in x ) is ...

   hd44780 = "H"
   hd44780 = "e"
   hd44780 = "l"
   hd44780 = "l"
   hd44780 = "o"

   procedure async'put( byte in x ) is ...
   function async'get return byte is ..

   forever loop
      byte c = async
      if ( c >= "a" ) & ( c <= "z" ) then
         c = c + "A" - "a"
      end if
      async = c
   end loop

previous up next