title: Signal parameter in a subprogram is not supported error
body: <p>My code is about a ping pang game using VHDL and maxplus2. I can't get it complied. </p>
  
  <pre><code>library ieee;
  use ieee.std_logic_1164.all;
  -- use ieee.std_logic_unsigned.all;
  -- use ieee.std_logic_arith.all;
  
  entity center is 
      port ( 
          clk:    in  std_logic;
          ca:     in  std_logic;
          cb:     in  std_logic;
          enable: in  std_logic;
          a:      in  std_logic;
          b:      in  std_logic;
          ball:   out std_logic_vector(16 downto 0);
          sa:     out std_ulogic;
          sb:     out std_ulogic;
          over:   inout std_ulogic
      );
  end center;
  
  architecture behavior of center is
      signal direction : integer range 0 to 2; 
      signal num : integer range -1 to 17;  
  begin
      process (enable,ca,cb,a,b,clk)
      begin        
          if enable = '0' then   
              over &lt;= '0';
              sa &lt;= '0';
              sb &lt;= '0';
          elsif enable = '1' and rising_edge(clk) then
              if direction = 2 then
                  if ca = '1' then
                      direction &lt;= 0;       
                      num &lt;= 1;
                  elsif cb = '1' then 
                      direction &lt;= 1;
                      num &lt;= 16;
                  else
                      direction &lt;= 2;
                      num &lt;= 8;
                  end if;
              elsif direction = 0 and num &gt; 0 then
                  if b = '1' then
                      if num &lt; 2 then
                          num &lt;= num - 1;
                          direction &lt;= 1;
                      else
                          direction &lt;= 2;
                          sa &lt;= '1' after 10 ns;
                          sb &lt;= '0' after 10 ns;
                          over &lt;= not over after 10 ns;
                      end if;
                  end if;        
              elsif direction = 1 and num &lt;= 16 then
                  if a = '1' then
                      if num &gt;= 14 then
                          num &lt;= num + 1;
                          direction &lt;= 2;
                      else
                          direction &lt;= 2;
                          sa &lt;= '0' after 10 ns;
                          sb &lt;= '1' after 10 ns;
                          over &lt;= not over after 10 ns;
                      end if;
                  end if;
              elsif direction = 0 and num = -1 then
                  num &lt;= 8;
                  direction &lt;= 2;
                  sa &lt;= '0' after 10 ns;
                  sb &lt;= '1' after 10 ns;
                  over &lt;= not over after 10 ns;
              elsif direction = 0 and num = -1 then
                  num &lt;= 8;
                  direction &lt;= 2;
                  sa &lt;= '0' after 10 ns;
                  sb &lt;= '1' after 10 ns;
                  over &lt;= not over after 10 ns;
              end if;
          end if;
      end process;
  end architecture behavior;
  </code></pre>
  
  <p>But I get a error: </p>
  
  <blockquote>
    <p>signal parameter in a subprogram is not supported</p>
  </blockquote>
  
  <p>I am confused, I don't know why I get this error.</p>