home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD2.mdf / c / newemacs / scrnsav.c < prev    next >
Text File  |  1979-12-31  |  902b  |  45 lines

  1. /* This module contains routines to 
  2.    1. save the current contents of the screen and the current cursor
  3.       position before invoking em and
  4.    2. restore the saved screen and cursor position after leaving em.
  5. */
  6.  
  7. static char saved_screen[4000];
  8. static int savedrow,savedcol;
  9. int _rax,_rbx,_rcx,_rdx,_rsi,_rdi,_rds,_res;
  10. unsigned screen_seg;
  11.  
  12. save_screen_and_cursor()
  13.     {
  14.     int mode;
  15.     mode = get_mode();
  16.     find_cursor();
  17.     if ( mode == 7)
  18.         screen_seg = 0xb000;
  19.     else
  20.         screen_seg = 0xb800;
  21.     _lmove(4000,0,screen_seg,saved_screen,_showds() );
  22.     }
  23.  
  24. restore_screen_and_cursor()
  25.     {
  26.     _lmove(4000,saved_screen,_showds(),0,screen_seg);
  27.     scr_rowcol(savedrow,savedcol);
  28.     }
  29.  
  30. void find_cursor()
  31.     {
  32.     _rax = 0x0300;
  33.     _rbx = 0;
  34.     _doint(0x10);
  35.     savedrow= _rdx>>8;
  36.     savedcol = _rdx & 0x00ff;
  37.     }
  38.  
  39. int get_mode()
  40.     {
  41.     _rax = 0x0f00;
  42.     _doint( 0x10);
  43.     return (_rax & 0x00ff);
  44.     }
  45.