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

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