home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1987 / 07 / filter / scr.h < prev   
Encoding:
C/C++ Source or Header  |  1987-06-10  |  3.5 KB  |  100 lines

  1. /**********************************/
  2. /*          scr.h                 */
  3. /**********************************/
  4. /*     Screendefinitionen         */
  5. /*   und Routinen für Atari ST    */
  6. /* für andere Systeme eventuell   */
  7. /*        anpassen                */
  8. /* Hinweise: -->                  */
  9. /**********************************/
  10.  
  11. #define LEFT    0x0001
  12. #define RIGHT   0x0002
  13. #define CENTER  0x0004
  14. #define REV     0x0008
  15.  
  16. /*              Binärmodus                                          */ 
  17. #define BR      "br"   /* Datei im Binärmodus zum Lesen öffnen      */
  18. #define BW      "bw"   /* Datei im Binärmodus zum Schreiben öffnen  */
  19.   /* -->        Unter UNIX ist Zeilentrenner nur LF. Auf den meisten*
  20.   *             PC's jedoch CR+LF. Deshalb unterschlagen die meisten*
  21.   *             C-Compiler das CR unter PC Umgebung, im normalen    *
  22.   *             Modus. Fürs Filtern ist das nicht so gut.           *
  23.   *             zur Not: ohne Binärmodus arbeiten !                 */
  24.    
  25. #define print(c)  gemdos(0x2,c)   /*     Ausgabe auf Screen         */
  26.   /* -->          putchar(c); fflush(stdout)                        */
  27. #define putesc(c) print(0x1b),print(c) /* ESC + char auf Screen     */
  28. #define cls()     putesc('E')
  29.   /* -->          Bildschirm löschen                                */
  30. #define pos(x,y)  putesc('Y'),print((y)+32),print((x)+32)
  31.   /* -->          Spalte,Zeile positionieren                        */
  32. #define rev_on()  putesc('p')  /* reverse video ein                 */
  33.   /* -->          zur Not als blank definieren                      */
  34. #define rev_off() putesc('q')  /* reverse video  aus                */
  35.   /* -->          zur Not als blank definieren                      */
  36. #define crs_on()  putesc('e')  /* cursor ein                        */
  37.   /* -->          zur Not als blank definieren                      */
  38. #define crs_off() putesc('f')  /* cursor aus                        */
  39. #define clrright() putesc('K') /* ab akt. Pos. Zeile rechts löschen */
  40.   /* -->          zur Not als blank definieren                      *
  41.    * oder:        ab Cursorspaltenposition blanks schreiben, dann   *
  42.    *              clrright() aber als richtige Fkt. implementieren  */
  43.           
  44. extern long gemdos(); /* ST gemdos liefert longs                    */
  45.   /* -->          wohl weglassen                                    */
  46.   
  47. print_i(n)               /* put integer auf Screen                  */
  48. register int n;
  49. {
  50. register int i;
  51.      if (n<0) {
  52.           print('-');
  53.           n = -n;
  54.      }
  55.      if ((i=n/10) != 0)
  56.           print_i(i);
  57.      print(n%10 + '0');
  58. }
  59.  
  60. char get_hidden() /* Zeichen ohne Echo von Tastatur                 */
  61.   /* -->          entsprechende Funktion oder c = getchar()         */
  62. {
  63. int c;
  64.   c = (int)gemdos(0x8);
  65.   return(c);   
  66. }     
  67.  
  68. put_s(s) /* String auf Konsole ausgeben                             */
  69. register char *s;
  70. {
  71.      gemdos(0x9,s);
  72.   /* -->      ersetzen durch puts(s) oder printf("%s",s) kein CR LF */
  73. }
  74.  
  75. int put_fs(zeile,attrib,string)  /*     put formatted string        */
  76. int zeile;
  77. register int attrib;
  78. char *string;
  79. {
  80. int spalte,len;
  81.  
  82.   if ((len = strlen(string)) > 80) return(0);
  83.  
  84.   if (attrib & LEFT)
  85.     spalte = 0; 
  86.   else if(attrib & RIGHT)
  87.     spalte = 79 - len;
  88.   else if(attrib & CENTER)
  89.     spalte = (80 - len)/2;
  90.   else return(0);
  91.  
  92.   if (attrib & REV) rev_on();
  93.   pos(spalte,zeile);
  94.   put_s(string);
  95.   if (attrib & REV) rev_off;
  96.  
  97.   return (len);
  98. }
  99. /*  Ende von scr.h  */
  100.