home *** CD-ROM | disk | FTP | other *** search
/ Stars of Shareware: Programmierung / SOURCE.mdf / programm / msdos / pascal / rehack / memory / memory.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  1993-06-29  |  1.1 KB  |  45 lines

  1. #include "..\MEMORY\MEMORY.HPP"
  2.  
  3. // ------------------------------------------------------------------
  4. // File:        MEMORY.CPP
  5. // Path:        ...\REHACK\MEMORY\MEMORY.CPP
  6. // Version:        0.01
  7. // Author:        Pat Reilly
  8. // CIS Id:        71333,2764
  9. // Created On:    6/28/93
  10. // Modified On:
  11. // Description:    VMemManager class for REHACK. See MEMORY.TXT for
  12. //                more details.
  13. // Tabs:        4
  14. // ------------------------------------------------------------------
  15.  
  16. MemType VMemManager::allocScheme[5] =
  17.     { MemConv, MemEMS, MemXMS, MemDisk, MemUnknown };
  18.  
  19. MemoryObject *VMemManager::allocate(word sz)
  20. {
  21.     MemoryObject* mem;
  22.     int n;
  23.  
  24.     if( sz == 0 )    return 0;
  25.  
  26.     for( n = 0; allocScheme[n] != MemUnknown && n < 4; n++ )
  27.         {
  28.         if( allocScheme[n] == MemConv )
  29.             mem = new ConvMemory(sz);
  30.         else if( allocScheme[n] == MemEMS )
  31.             mem = new EmsMemory(sz);
  32.         else if( allocScheme[n] == MemXMS )
  33.             mem = new XmsMemory(sz);
  34.         else if( allocScheme[n] == MemDisk )
  35.             mem = new DiskMemory(sz);
  36.         else
  37.             mem = 0;
  38.  
  39.         if( mem != 0 && mem->memSize() == sz )
  40.             return mem;
  41.         delete mem;
  42.         }
  43.     return 0;
  44. }
  45.