home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1990 / 04 / grdlagen / cpptsr.c < prev    next >
Text File  |  1990-01-11  |  3KB  |  86 lines

  1. /**********************************************************/
  2. /*                       CPPTSR.C                         */
  3. /*          (C) U.Killermann & toolbox 1990               */
  4. /**********************************************************/
  5.  
  6. /* disp_tsr.c - demonstriert die Anwendung des tsr und
  7.    disp packages von Zortech
  8. */
  9.  
  10. #include <stdio.h>
  11. #include <stdlib.h>
  12. #include <bios.h>
  13. #include <disp.h>     // TSR wird aktiviert durch gleich-
  14. #include <dos.h>      // zeitiges drücken von CTRL+LSHIFT+Q
  15. #include <time.h>     // Fingerprint des TSR
  16. #include <tsr.h>      // Puffer für gelöschten
  17.                       // Bildschirmberreich
  18. unsigned TSR_HOTSHIFT = CTRL+LSHIFT;
  19. char TSR_HOTSCAN = SCAN_Q;
  20. char tsr_fprint[20]="Message_V0.1";
  21. unsigned buff[11*31*2];
  22.  
  23. union REGS regs;
  24. unsigned int cur_pg, cur_s, cur_p;
  25.  
  26. int i;
  27.                                    // POPUP mit Debuginfo
  28. main()                             // falls bereits resident
  29. {                                  // entfernen !
  30.                                    // Sonst Fehlermeldung
  31.         int i;
  32.         i=tsr_install(POPONLY | TSR_DEBUG);
  33.         if (i==1)
  34.                 tsr_uninstall();
  35.         else
  36.                 printf("Error Installing TSR !: %d \n",i);
  37. }
  38.  
  39. void popmain(void)             // kontrolliert das Geschehen
  40. /* Die Routine speichert die aktuelle Cusorposition, öffnet
  41.     ein Fenster, schreibt "Hallo Welt !" in das Fenster,
  42.     schließt das Fenster und restauriert den Cursor.
  43. */
  44. {
  45.                save_cursor();
  46.                disp_open();
  47.                disp_peekbox(buff,5,10,15,40);
  48.                disp_box(0,DISP_NORMAL,5,10,15,40);
  49.                disp_fillbox(DISP_NORMAL*256+' ',6,11,14,39);
  50.                disp_move(6,12);
  51.                disp_puts("Hallo Welt ! \n");
  52.                msleep(2000);
  53.                disp_pokebox(buff,5,10,15,40);
  54.                disp_close();
  55.                restore_cursor();
  56. }
  57.  
  58. save_cursor()
  59. /* speichert die aktuelle Cursorposition
  60.    in cur_pg, cur_p, cur_s */
  61. {
  62.      regs.x.ax=15*256;
  63.      int86(0x10,®s,®s);
  64.      cur_pg = regs.x.bx;
  65.      regs.x.ax=3*256;
  66.      int86(0x10,®s,®s);
  67.      cur_p = regs.x.dx;
  68.      cur_s = regs.x.cx;
  69.      regs.x.dx=(24*256)+80;
  70.      regs.x.ax=2*256;
  71.      regs.x.bx=cur_pg;
  72.      int86(0x10,®s,®s);
  73. }
  74.  
  75. restore_cursor()
  76. /* restauriert die Cursorposition aus cur_pg,cur_p, cur_s */
  77. {
  78.      regs.x.ax=256;
  79.      regs.x.bx=cur_pg;
  80.      regs.x.cx=cur_s;
  81.      int86(0x10,®s,®s);
  82.      regs.x.dx=cur_p;
  83.      regs.x.ax=2*256;
  84.      int86(0x10,®s,®s);
  85. }
  86.