and ENDPROC which takes one of two forms:
ENDPROC
or –optionally–
ENDPROC =result1[,...,resultN]
Anything that follows the keyword DEFPROC is the procedure itself, however there can be multiple exit points for each procedure designated by separate ENDPROC statements.
Parameters in brackets, denote that the syntax is optional and def1 to defN (also in brackets) are optional default values for each parameter. Procedures are called with the keyword PROC (and BANK PROC in the case of a banked procedure). This, like ENDPROC takes two forms:
[BANK n] PROC name ([parameter1[,...[,parameterN]]])
which calls the procedure named name with optional parameters 1 through N –or–
[BANK n] PROC name ([parameter1[,...[,parameterN]]]) TO variable1[,...,variableN]
which is the same as above but assigns the values returned by the procedure to the optional variables 1 through N.
Note that if there's a default value for a parameter, we can omit it when calling the procedure with PROC.
Notes
If you're using the NextBASIC's memory bank management facilities to extend the size of your programs, the following apply:
- Any GO TO, PROC or GO SUB within a banked section will go to a line or label in the same bank.
- Any RETURN will always return to the calling bank.
Consider the example below:
10 CLS
20 PROC Pdemo(11): PROC
HelloWorld("Hello
World!",1)
30 PROC HelloWorld("Hello
Stop!",):; 2nd parameter
omitted
40 GO TO 160
50 DEFPROC Pdemo(x)
60 PRINT x; " raised to the
2nd power is:"; x*x
70 ENDPROC
80 DEFPROC HelloWorld(z$,
n=0)
90 LOCAL a$,l
ZX Spectrum Next User Manual, 3rd Edition (ISBN 978-1-5272-5496-1), written and illustrated by Phoebus R. Dokos. Copyright © 2020-2024 Phoebus Dokos / SpecNext Ltd. Licensed under CC BY-NC-SA 4.0. This is a transcription and can contain errors; check any doubt against the printed page.