home *** CD-ROM | disk | FTP | other *** search
/ C!T ROM 2 / ctrom_ii_b.zip / ctrom_ii_b / PROGRAM / PASCAL / PASTUT34 / OVRDEMO.PAS < prev    next >
Pascal/Delphi Source File  |  1993-01-14  |  3KB  |  69 lines

  1.  
  2. { Turbo Overlays }
  3. { Copyright (c) 1985, 1989 by Borland International, Inc. }
  4.  
  5. {~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
  6. { Program to illustrate the use of Overlays, whereby code is contained }
  7. { in a number of units on disk and is called into overlay section of   }
  8. { memory when required. Useful when memory is otherwise fully used.    }
  9. { Some modifications made to the original Borland program to give      }
  10. { screen indication of the overlay in use.                             }
  11. {                                                                      }
  12. { OVRDEMO.PAS  -> .EXE      R Shaw      15.4.90                        }
  13. {______________________________________________________________________}
  14.  
  15. {$F+,O+}
  16. program OvrDemo;
  17. (*
  18.   This is a simple example of how to use the new overlay system. For
  19.   more complete documentation, refer to the overlay chapter in the
  20.   Turbo Pascal manual. Here's a quick checklist:
  21.  
  22.     1.  Turn "far calls" on {$F+} (to be safe, in all overlaid units and
  23.         the main program).
  24.     2.  Turn "Overlays allowed" on {$O+}
  25.     3.  Use Overlay unit in main program.
  26.     4.  Issue separate {$O} directives for each overlaid unit.
  27.     5.  Make sure to call OvrInit and pass the name of the .OVR file.
  28.     6.  Test OvrResult after OvrInit calls (optional).
  29.     7.  Compile to disk (cannot run in memory).
  30.  
  31.   Here the overlay error returns for quick reference:
  32.  
  33.     const
  34.       ovrOk          =  0;   { Success }
  35.       ovrError       = -1;   { Overlay manager error }
  36.       ovrNotFound    = -2;   { Overlay file not found }
  37.       ovrNoMemory    = -3;   { Not enough memory for overlay buffer }
  38.       ovrIOError     = -4;   { Overlay file I/O error }
  39.       ovrNoEMSDriver = -5;   { EMS driver not installed }
  40.       ovrNoEMSMemory = -6;   { Not enough EMS memory }
  41. *)
  42.  
  43. uses
  44.   Overlay, Crt, OvrDemo1, OvrDemo2;
  45.  
  46. {$O OvrDemo1}                  { overlay 'em }
  47. {$O OvrDemo2}
  48.  
  49. begin
  50.   TextAttr := White;
  51.   ClrScr;
  52.   OvrInit('OVRDEMO.OVR');          { init overlay system, reserve heap space }
  53.   if OvrResult <> 0 then
  54.   begin
  55.     Writeln('Overlay error: ', OvrResult);
  56.     Halt(1);
  57.   end;
  58.   repeat
  59.     Write1;
  60.     Writeln('A ten second delay introduced to allow messages to be read');
  61.     Writeln('Press any key to stop on completion of the next overlay');
  62.     Delay(10000);
  63.     Write2;
  64.     Writeln('Another ten second delay created from main program');
  65.     Writeln('Press any key to stop on completion of this second overlay');
  66.     Delay(10000);
  67.   until KeyPressed;
  68. end.
  69.