10
20
30
40 MODE 7
50 T%=TOP
60 LOMEM=TOP+&100
70 DIM proc$(3), mod$(3)
80 currmod$=" "
90 FOR I%=1 TO 3
100 READ proc$(I%)
110 READ mod$(I%)
120 NEXT
130 PROCcall("printa")
140 PROCcall("printb")
150 PROCcall("printc")
160 END
170
180 DEFPROCcall(P$)
190 I%=0
200 REPEAT
210 I%=I%+1
220 UNTIL I%=3 OR proc$(I%)=P$
230 IF proc$(I%)<>P%:PRINT "Bad PROC":END
240 IF mod$(I%)<>currmod$:PROCoverlay(mod$(I%))
250 IF P$="printa":PROCprinta:ENDPROC
260 IF P$="printb":PROCprintb:ENDPROC
270 IF P$="printc":PROCprintc:ENDPROC
280 ENDPROC
290
300 DEFPROCoverlay(M$)
310 currmod$=M$
320 OSCLI"LOAD "+M$+" "+STR$~(T%-2)
330 ENDPROC
340
350 DATA "printa","MODULEA"
360 DATA "printb","MODULEB"
370 DATA "printc","MODULEC"