10 REM ----------------------------------------------
   20 REM MAIN
   30 REM ----------------------------------------------
   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"