home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1990 / 07 / einsteig / mcopy.c < prev    next >
C/C++ Source or Header  |  1990-06-05  |  1KB  |  55 lines

  1. /**********************************************************
  2.  *--- (c) 1990 by toolbox & U.Schmitz --------------------*
  3.  *  MCOPY.C   Programm demonstriert die Anwendung der     *
  4.  *  mcopy Routine. Nach lesen der Bildschirmadresse über  *
  5.  *  die Funktion vm_init wird der obere Bildschirmbereich *
  6.  *  in die untere Hälfte kopiert.                         *
  7.  *  Zu beachten ist dabei, daß maximal 64 KByte-Blöcke    *
  8.  *  kopiert werden können.                                *
  9.  **********************************************************/
  10.  
  11. #include<stdio.h>
  12. #include<graph.h>
  13. #include<conio.h>
  14. #include<dos.h>
  15.  
  16. extern void w_mcopy(unsigned int, unsigned int, unsigned
  17.           int, unsigned int, unsigned int);
  18.  
  19. unsigned int v_ram;
  20.  
  21. /*--------------------------------------------------------*/
  22.  
  23. int vm_modus (void)
  24. {
  25.  union REGS regs;
  26.  regs.h.ah = 0x0F;
  27.  int86(0x10, ®s, ®s);
  28.  return(regs.h.al);
  29. }
  30.  
  31. /*--------------------------------------------------------*/
  32.  
  33. void vm_init(void)
  34. {
  35.  if (vm_modus() == 7)
  36.     {
  37.      v_ram = 0xb000;
  38.     }
  39.     else
  40.     {
  41.      v_ram = 0xb800;
  42.     }
  43. }
  44. /*--------------------------------------------------------*/
  45.  
  46. main()
  47. {
  48.  vm_init();
  49.  printf("Bildschirmspeicher beginnt bei %X \n",v_ram);
  50.  getch();
  51. /* -->Segement,Offset,Anzahl Bytes,Zielsegment,Zieloffset */
  52.  w_mcopy(v_ram,0,960,v_ram,1920);
  53.  getch();
  54. }
  55.