which is much more obvious, and made a more minor change the parameters were passed in using braces instead of parenthesis, so the equivalent definition would be and called in the same way, . A more important change to CAL's functions was the ability to call subroutines from the definitions using , as in . This left the issue of assigning the resulting calculated value back to the function, which was addressed with the introduction of the statement at the end of the part, where Z is the final value to be returned. Other changes CAL included the mathematical functions of JOSS but added a number of new ones including , , , and . It added a new operator as well, , which returned the remainder of a division of its two operands. Direct mode CAL added a small number of direct mode commands and associated statements. , when encountered in a program, printed a message "PAUSED AT STEP 1.1" and then returned to direct mode. This was similar to the command in BASIC. This allowed the user to type in values and the continue execution with . While in direct mode, the user could by a single line at a time to trace the execution of the program. Improvements in CAL 1969 One minor change in the 1969 version was the elimination of the command for variable assignment. This had been optional in direct mode in JOSS but was required in program statements, and the 1967 version of CAL had followed this rule. The 1969 version made it optional in both cases. Footnotes References Citations Bibliography JOSS programming language family Tymshare software