34 lines
896 B
Plaintext
34 lines
896 B
Plaintext
|
PROGRAM DEMO_PROG;
|
|||
|
|
|||
|
VAR
|
|||
|
I : INTEGER; (* TO BE ACCESSED BY THE OVERLAYS *)
|
|||
|
CH: CHAR;
|
|||
|
|
|||
|
EXTERNAL [1] PROCEDURE OVL1; (* COULD HAVE HAD PARAMETERS *)
|
|||
|
|
|||
|
EXTERNAL [2] PROCEDURE OVL2; (* ALSO COULD HAVE HAD PARAMETERS *)
|
|||
|
|
|||
|
(* EITHER COULD ALSO HAVE BEEN A FUNCTION IF DESIRED *)
|
|||
|
|
|||
|
BEGIN
|
|||
|
REPEAT
|
|||
|
WRITE('Enter character, A/B/Q: ');
|
|||
|
READ(CH);
|
|||
|
CASE CH OF
|
|||
|
'A','a' : BEGIN
|
|||
|
I := 1; (* TO DEMONSTRATE ACCESS OF GLOBALS *)
|
|||
|
OVL1 (* FROM AN OVERLAY *)
|
|||
|
END;
|
|||
|
|
|||
|
'B','b' : BEGIN
|
|||
|
I := 2;
|
|||
|
OVL2
|
|||
|
END
|
|||
|
ELSE
|
|||
|
IF NOT(CH IN ['Q','q'])THEN
|
|||
|
WRITELN('Enter only A or B')
|
|||
|
END (* CASE *)
|
|||
|
UNTIL CH IN ['Q','q'];
|
|||
|
WRITELN('End of program')
|
|||
|
END.
|
|||
|
|