home *** CD-ROM | disk | FTP | other *** search
/ C++ Games Programming / CPPGAMES.ISO / fgl / fglight / expas.arj / TEMP / 09-02.PAS < prev    next >
Pascal/Delphi Source File  |  1995-01-20  |  1KB  |  70 lines

  1. program main;
  2. {$IFDEF DPMI}
  3. uses fgmain, fgmisc, fgpcx, fgvb, WinAPI;
  4. {$ELSE}
  5. {$M 16384,0,16384}
  6. uses fgmain, fgmisc, fgpcx, fgvb;
  7. {$ENDIF}
  8.  
  9. var
  10.   handle   : integer;
  11.   old_mode : integer;
  12.   status   : integer;
  13.   buffer   : pointer;
  14.  
  15. begin
  16.   fg_initpm;
  17.   if (fg_testmode(19,1) = 0) then
  18.   begin
  19.     write('This program requires a 320 ');
  20.     writeln('x 200 MCGA graphics mode.');
  21.     exit;
  22.   end;
  23.   old_mode := fg_getmode;
  24.   fg_setmode(19);
  25.   fg_vbinit;
  26.  
  27. {$IFDEF DPMI}
  28.   buffer := GlobalAllocPtr(gmem_Fixed,Longint(64000));
  29.   if (buffer = NIL) then
  30.   begin
  31.     fg_setmode(old_mode);
  32.     fg_reset;
  33.     writeln('Could not create the virtual buffer.');
  34.     exit;
  35.   end;
  36.   handle := fg_vbdefine(buffer,320,200);
  37. {$ELSE}
  38.   handle := fg_vballoc(320,200);
  39.   if (handle < 0) then
  40.   begin
  41.     fg_setmode(old_mode);
  42.     fg_reset;
  43.     writeln('Could not create the virtual buffer.');
  44.     exit;
  45.   end;
  46. {$ENDIF}
  47.   status := fg_vbopen(handle);
  48.  
  49.   status := fg_loadpcx('CORAL.PCX'+chr(0),0);
  50.   if (status = 0) then
  51.   begin
  52.     fg_vbpaste(0,319,0,199,0,199);
  53.     fg_waitkey;
  54.   end;
  55.  
  56.   fg_vbclose;
  57. {$IFDEF dpmi}
  58.   GlobalFreePtr(buffer);
  59. {$ELSE}
  60.   fg_vbfree(handle);
  61. {$ENDIF}
  62.   fg_setmode(old_mode);
  63.   fg_reset;
  64.  
  65.   if (status = 1) then
  66.     writeln('CORAL.PCX not found.')
  67.   else if (status = 2) then
  68.     writeln('CORAL.PCX is not a PCX file.');
  69. end.
  70.