Welcome to jBASE's new documentation site! Many answers to your questions can be found by searching the Knowledgebase or viewing the jBASE Documentation. We also have a Google Group for peer discussion about jBASE. If you are unable to find the information you are looking for, jBASE Support will be glad to assist in resolving your technical problems. Enjoy and please provide comments and feedback .

How can we help you?



The statement transfers program execution to an external SUBROUTINE. It usually takes the form:

CALL subroutine_name(argument, argument…. )


CALL @subroutine_name(argument, argument ...)

Where subroutine_name is the subroutine to be called. It can either be quoted or unquoted.

The variant of this statement assumes that subroutine.name is a variable that contains the name of the subroutine to call.

The CALL statement may optionally pass a number of parameters to the target subroutine. These parameters can consist of any valid expression or variable name. If a variable name is used then the called program may return a value to the variable by changing the value of the equivalent variable in its own parameter list.


  • When using an expression to pass a parameter to the subroutine, built-in functions of jBASE BASIC (such as COUNT), cannot be used within the expression.
  • An unlimited number of parameters can be passed to an external subroutine. The number of parameters in the CALL statement must match exactly the number expected in the SUBROUTINE statement declaring the external subroutine.
  • It is not required that the calling program and the external subroutine be compiled with the same PRECISION. However, any changes to precision in a subroutine will not persist when control returns to the calling program.
  • Variables passed, as parameters to the subroutine may not reside in any COMMON areas declared in the program.
  • If it is desired to pass a DIMensioned array as an argument use the MAT keyword as: 
CALL subroutine.name(arg1, MAT myarray, arg3, ...)

An example of use can be as follows:

calling subroutine Hello: 

CALL Hello("World")

defining subroutine Hello:

SUBROUTINE Hello(Message)
    PRINT "HELLO": Message

Go back to jBASE BASIC.

Was this article helpful?