home *** CD-ROM | disk | FTP | other *** search
- /**********************************/
- /* scr.h */
- /**********************************/
- /* Screendefinitionen */
- /* und Routinen für Atari ST */
- /* für andere Systeme eventuell */
- /* anpassen */
- /* Hinweise: --> */
- /**********************************/
-
- #define LEFT 0x0001
- #define RIGHT 0x0002
- #define CENTER 0x0004
- #define REV 0x0008
-
- /* Binärmodus */
- #define BR "br" /* Datei im Binärmodus zum Lesen öffnen */
- #define BW "bw" /* Datei im Binärmodus zum Schreiben öffnen */
- /* --> Unter UNIX ist Zeilentrenner nur LF. Auf den meisten*
- * PC's jedoch CR+LF. Deshalb unterschlagen die meisten*
- * C-Compiler das CR unter PC Umgebung, im normalen *
- * Modus. Fürs Filtern ist das nicht so gut. *
- * zur Not: ohne Binärmodus arbeiten ! */
-
- #define print(c) gemdos(0x2,c) /* Ausgabe auf Screen */
- /* --> putchar(c); fflush(stdout) */
- #define putesc(c) print(0x1b),print(c) /* ESC + char auf Screen */
- #define cls() putesc('E')
- /* --> Bildschirm löschen */
- #define pos(x,y) putesc('Y'),print((y)+32),print((x)+32)
- /* --> Spalte,Zeile positionieren */
- #define rev_on() putesc('p') /* reverse video ein */
- /* --> zur Not als blank definieren */
- #define rev_off() putesc('q') /* reverse video aus */
- /* --> zur Not als blank definieren */
- #define crs_on() putesc('e') /* cursor ein */
- /* --> zur Not als blank definieren */
- #define crs_off() putesc('f') /* cursor aus */
- #define clrright() putesc('K') /* ab akt. Pos. Zeile rechts löschen */
- /* --> zur Not als blank definieren *
- * oder: ab Cursorspaltenposition blanks schreiben, dann *
- * clrright() aber als richtige Fkt. implementieren */
-
- extern long gemdos(); /* ST gemdos liefert longs */
- /* --> wohl weglassen */
-
- print_i(n) /* put integer auf Screen */
- register int n;
- {
- register int i;
- if (n<0) {
- print('-');
- n = -n;
- }
- if ((i=n/10) != 0)
- print_i(i);
- print(n%10 + '0');
- }
-
- char get_hidden() /* Zeichen ohne Echo von Tastatur */
- /* --> entsprechende Funktion oder c = getchar() */
- {
- int c;
- c = (int)gemdos(0x8);
- return(c);
- }
-
- put_s(s) /* String auf Konsole ausgeben */
- register char *s;
- {
- gemdos(0x9,s);
- /* --> ersetzen durch puts(s) oder printf("%s",s) kein CR LF */
- }
-
- int put_fs(zeile,attrib,string) /* put formatted string */
- int zeile;
- register int attrib;
- char *string;
- {
- int spalte,len;
-
- if ((len = strlen(string)) > 80) return(0);
-
- if (attrib & LEFT)
- spalte = 0;
- else if(attrib & RIGHT)
- spalte = 79 - len;
- else if(attrib & CENTER)
- spalte = (80 - len)/2;
- else return(0);
-
- if (attrib & REV) rev_on();
- pos(spalte,zeile);
- put_s(string);
- if (attrib & REV) rev_off;
-
- return (len);
- }
- /* Ende von scr.h */
-