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

  1. program main;
  2. {$IFDEF DPMI}
  3. uses fgmain, fgbitmap, fgmisc, fgvb, WinAPI;
  4. {$ELSE}
  5. uses fgmain, fgbitmap, fgmisc, fgvb;
  6. {$ENDIF}
  7.  
  8. const
  9.   arrow : array [1..35] of byte = (
  10.     $00,$00,$00,$F0,$00,
  11.     $00,$00,$00,$FF,$00,
  12.     $FF,$FF,$FF,$FF,$F0,
  13.     $FF,$FF,$FF,$FF,$FF,
  14.     $FF,$FF,$FF,$FF,$F0,
  15.     $00,$00,$00,$FF,$00,
  16.     $00,$00,$00,$F0,$00);
  17.  
  18. var
  19.   handle   : integer;
  20.   old_mode : integer;
  21.   status   : integer;
  22.   arrow256 : array [1..70] of byte;
  23.   buffer   : pointer;
  24.  
  25. begin
  26.   fg_initpm;
  27.   if (fg_testmode(13,1) = 0) then
  28.   begin
  29.     write('This program requires a 320 ');
  30.     writeln('x 200 EGA graphics mode.');
  31.     exit;
  32.   end;
  33.  
  34.   old_mode := fg_getmode;
  35.   fg_setmode(13);
  36.   fg_unpack(arrow,arrow256,35);
  37.  
  38.   fg_vbinit;
  39. {$IFDEF DPMI}
  40.   buffer := GlobalAllocPtr(gmem_Fixed,Longint(70));
  41. {$ELSE}
  42.   GetMem(buffer,70);
  43. {$ENDIF}
  44.   handle := fg_vbdefine(buffer,10,7);
  45.   status := fg_vbopen(handle);
  46.   fg_setcolor(9);
  47.   fg_fillpage;
  48.   fg_move(0,6);
  49.   fg_drwimage(arrow256,10,7);
  50.  
  51.   fg_vbpaste(0,9,0,6,156,101);
  52.   fg_waitkey;
  53.  
  54. {$IFDEF DPMI}
  55.   GlobalFreePtr(buffer);
  56. {$ELSE}
  57.   FreeMem(buffer,70);
  58. {$ENDIF}
  59.   fg_vbclose;
  60.   fg_setmode(old_mode);
  61.   fg_reset;
  62. end.
  63.