LIB.HLP wurde bersetzt am 20.Mrz 1993.

(c) 1990 Borland International, Inc.Index der verfgbaren Schlsselwrter:

     EA..F       EB..F       EC..F      ED..F

     EE..F       EF..F       EG..F      EH..F

     EI..F       EJ..F       EK..F      EL..F

     EM..F       EN..F       EO..F      EP..F

     EQ..F       ER..F       ES..F      ET..F

     EU..F       EV..F       EW..F      EX..F

     EY..F       EZ..F

     ESonstigesFDie Objektstruktur:
===================

OBJECT ist in AES.H wie folgt definiert:

typedef struct
{
        int             ob_next;   /* das nchste Objekt            */
        int             ob_head;   /* erstes Kind                   */
        int             ob_tail;   /* letztes Kind                  */
        unsigned int    ob_type;   /* EObjektartF                     */
        unsigned int    ob_flags;  /* EManipulationsflagsF            */
        unsigned int    ob_state;  /* EObjektstatusF                  */
        EOBSPECF          ob_spec;   /* mehr unter EObjektartF          */
        int             ob_x;      /* x-Koordinate des Objekts      */
        int             ob_y;      /* y-Koordinate des Objekts      */
        int             ob_width;  /* Breite des Objekts            */
        int             ob_height; /* Hhe des Objekts              */
} OBJECT;Die Tedinfostruktur:
====================

Die TEDINFO-Struktur ist wie die Objektstruktur eine C-Datenstruktur,
die benutzt wird, um ein Textobjekt nher zu beschreiben.

Hier die C-Deklaration in AES.H:

typedef struct
{
    char    *te_ptext;         /* Zeiger auf einen String          */
    char    *te_ptmplt;        /* Zeiger auf die Stringmaske       */
    char    *te_pvalid;        /* Zeiger auf den Gltigkeitsstring */
    int     te_font;           /* Zeichensatz                      */
    int     te_junk1;
    int     te_just;           /* Justierung des Texts             */
    int     te_color;          /* Farbe                            */
    int     te_junk2;
    int     te_thickness;      /* Rahmenbreite                     */
    int     te_txtlen;         /* Maximale Lnge des Textes        */
    int     te_tmplen;         /* Lnge der Stringmaske            */
} TEDINFO;

Querverweis: EOBJECTFDie Bitblkstruktur:
===================

Die BITBLK-Struktur ist wie die Objektstruktur eine C-Datenstruktur,
die benutzt wird, um ein Bildobjekt nher zu beschreiben.

Hier die C-Deklaration in AES.H:

typedef struct
{
        int     *bi_pdata;         /* Zeiger auf die Grafikdaten    */
        int     bi_wb;             /* Breite des Bildes in Bytes    */
        int     bi_hl;             /* Hhe in Linien                */
        int     bi_x;              /* x-Position                    */
        int     bi_y;              /* y-Position                    */
        int     bi_color;          /* Vordergrundfarbe              */
} BITBLK;

Querverweis: EOBJECTFDie Iconblkstruktur:
====================

Die ICONBLK-Struktur ist wie die Objektstruktur eine C-Datenstruktur,
die benutzt wird, um ein Icon nher zu beschreiben.

Hier die C-Deklaration in AES.H:

typedef struct
{
        int     *ib_pmask;         /* Zeiger auf die Maske          */
        int     *ib_pdata;         /* Zeiger auf das Icon-Bild      */
        char    *ib_ptext;         /* Zeiger auf einen String       */
        int     ib_char;           /* In den unteren 8 Bit das dar- */
                                   /* zustellende Zeichen, in den   */
                                   /* oberen 8 Bit die Farbe des    */
                                   /* gesetzten (obere 4 Bit) und   */
                                   /* des gelschten (untere 8 Bit) */
                                   /* Bits des Bitmuster IB_PDATA   */
        int     ib_xchar;          /* x-Koordinate des Buchstabens  */
        int     ib_ychar;          /* y-Koordinate des Buchstabens  */
        int     ib_xicon;          /* x-Koordinate des Icons        */
        int     ib_yicon;          /* y-Koordinate des Icons        */
        int     ib_wicon;          /* Breite des Icons              */
        int     ib_hicon;          /* Hhe des Icons                */
        int     ib_xtext;          /* x-Koordinate des Textes       */
        int     ib_ytext;          /* y-Koordinate des Textes       */
        int     ib_wtext;          /* Breite des Textes             */
        int     ib_htext;          /* Hhe des Textes               */
} ICONBLK;

Querverweis: EOBJECTFDie Userblockstruktur:
======================

Die USERBLK-Struktur ist eine C-Datenstruktur, die benutzerdefinierte
Objekte nher kennzeichnet.

C-Deklaration in AES.H:

typedef struct
{
        int EcdeclF (*ub_code)(EPARMBLKF *parmblock);
                                   /* Zeiger auf eine Funktion */
        long ub_parm;              /* optionaler Parameter     */
} USERBLK;

Dabei wird die Funktion ub_code bei jedem Eobjc_drawF und Eobjc_changeF
Aufruf fr das entsprechende Objekt aufgerufen. Dabei wird ein Zeiger
auf eine EPARMBLKF-struktur bergeben.

Querverweis: EOBJECTFDie Paramblkstruktur:
=====================

Ein Zeiger auf eine PARMBLK-Struktur wird bei einem
benutzerdefinierten Objekten bei jedem Eobjc_drawF und
Eobjc_changeF Aufruf als Parameter bergeben.

C-Deklaration in AES.H:

typedef struct
{
        EOBJECTF  *pb_tree;          /* Zeiger auf den Objektbaum     */
        int     pb_obj;            /* Nummer des Objekts            */
        int     pb_prevstate;      /* vorheriger Objektstatus       */
        int     pb_currstate;      /* neuer Objektstatus            */
        int     pb_x, pb_y, pb_w, pb_h;      /* Objektkoordinaten   */
        int     pb_xc, pb_yc, pb_wc, pb_hc;  /* Clipping-Koordinate */
        long    pb_parm;           /* der optionale Parameter aus der*/
} PARMBLK;                         /* EUSERBLKF-struktur               */

Die Clipping-Koordinaten sind die, bei einem Eobjc_drawF und
Eobjc_changeF Aufruf als Parameter bergebenen Koordinaten.Die Struktur MFORM legt das Aussehen des Mauszeigers fest.

typedef struct mfstr
{
    int  mf_xhot;
    int  mf_yhot;
    int  mf_nplanes;
    int  mf_fg;
    int  mf_bg;
    int  mf_mask[16];
    int  mf_data[16];
} MFORM;

Querverweis    Egraf_mouseFDer Memory Form Definition Block ist eine Datenstruktur, die vom
VDI fr die Rasteroperationen benutzt wird, um die Ziel- und
Quellspeicherbereiche zu beschreiben.

C-Deklaration in VDI.H:

typedef struct mfdb
{
        void *fd_addr;               /* Zeiger auf den Beginn des*/
                                     /* Speicherbereichs, z. B.  */
                                     /* Bildspeicherbasisadresse */
        int  fd_w;                   /* Blockbreite in Pixeln    */
        int  fd_h;                   /* Hhe des Blocks in Pixeln*/
        int  fd_wdwidth;             /* Blockbreite in Integern  */
        int  fd_stand;               /* 0 = gerteabhngiges Format
                                        1 = Standardformat       */
        int  fd_nplanes;             /* Anzahl der Farbebenen    */
        int  fd_r1, fd_r2, fd_r3;    /* reserviert               */
} MFDB;

Querverweis: Evro_cpyfmF, Evrt_cpyfmF, Evr_trnfmFName            Gemparameterblockpointer

Deklaration:    extern  GEMPARBLK _GemParBlk;
Deklaration in  aes.h

Beschreibung:   Zeigt auf den Gemparameterblock der Applikation. ber
                diese Struktur werden dem GEM die Parameter bergeben.
                Sie mssen also nicht, die Arrays selbst definieren.
                Der Gemparameterblock hat folgende Struktur:

typedef struct
{
    int    contrl[15];
    int    global[80];
    int    intin[128];
    int    intout[45];
    int    ptsout[128];
    void   *addrin[128];
    void   *addrout[6];
    int    ptsin[128];
} GEMPARBLK;MOBLK ist in aes.h wie folgt definiert:

typedef struct
{
        int             m_out;
        int             m_x;
        int             m_y;
        int             m_w;
        int             m_h;
} MOBLK;ORECT ist in aes.h wie folgt definiert:

typedef struct orect
{
        struct  orect   *o_link;
        int     o_x;
        int     o_y;
        int     o_w;
        int     o_h;
} ORECT;GRECT ist in aes.h wie folgt definiert:

typedef struct
{
        int     g_x;    /* x, obere linke Ecke des Rechtecks */
        int     g_y;    /* y, obere linke Ecke des Rechtecks */
        int     g_w;    /* Breite des Rechtecks              */
        int     g_h;    /* Hhe des Rechtecks                */
} GRECT;bfobspec ist in aes.h wie folgt definiert:

typedef struct
{
    unsigned character   :    8;
    signed   framesize   :    8;
    unsigned framecol    :    4;
    unsigned textcol     :    4;
    unsigned textmode    :    1;
    unsigned fillpattern :    3;
    unsigned interiorcol :    4;
} bfobspec;

Querverweis: EOBSPECFDa ob_spec je nach Typ des Objekts verschiede Bedeutungen und Datentypen
haben kann, erhielt es den TYP OBSPEC.

OBSPEC ist in aes.h wie folgt definiert:

typedef EunionF obspecptr
{
    long     index;                 /* fr das RSC-C-output */
    union obspecptr *indirect;      /* Zeiger uaf ob_spec   */
    EbfobspecF obspec;                /* Bitfield             */
    ETEDINFOF  *tedinfo;              /* Zeiger auf TEDINFO   */
    EICONBLKF  *iconblk;              /* Zeiger auf ICONBLK   */
    EBITBLKF   *bitblk;               /* Zeiger auf BITBLK    */
    EUSERBLKF  *userblk;              /* Zeiger auf USERBLK   */
    char     *free_string;          /* zeiger auf String    */
} OBSPEC;

Wollen Sie zum Beispiel auf ob_spec als zeiger auf eine TEDINFO-struktur
zugreifen, so muten Sie bisher ob_spec zum gewnschten Typ casten:

(ETEDINFOF *) objectAdr[index].Eob_specF->Ete_ptextF;
    |        |        |
casting      |        |
             |        |
Baumaddresse mit      |
Ersrc_gaddrF ermittelt  |
                      |
index vom RCS---------+       

Dies ist nun nicht mehr notwendig. Schreiben Sie nun einfach:

objectAdr[index].ob_spec.tedinfo->te_ptext;

Querverweis: EOBJECTFRSHDR ist in aes.h wie folgt definiert:

typedef struct rshdr
{
        unsigned     rsh_vrsn;
        unsigned     rsh_object;
        unsigned     rsh_tedinfo;
        unsigned     rsh_iconblk;    /* list of ICONBLKS */
        unsigned     rsh_bitblk;
        unsigned     rsh_frstr;
        unsigned     rsh_string;
        unsigned     rsh_imdata;     /* image data */
        unsigned     rsh_frimg;
        unsigned     rsh_trindex;
        unsigned     rsh_nobs;       /* counts of various structs */
        unsigned     rsh_ntree;
        unsigned     rsh_nted;
        unsigned     rsh_nib;
        unsigned     rsh_nbb;
        unsigned     rsh_nstring;
        unsigned     rsh_nimages;
        unsigned     rsh_rssize;     /* total bytes in resource */
} RSHDR;

Mit dieser Structur wird der Header eines Resourcefiles beschrieben.ffblk ist in ext.h wie folgt definiert:

struct ffblk
{
    char ff_reserved[21];               /* Reserved by TOS */
    char ff_attrib;                     /* Attribute found */
    int  ff_ftime;                      /* File time */
    int  ff_fdate;                      /* File date */
    long ff_fsize;                      /* File size */
    char ff_name[13];                   /* File name found */
};

Querverweis: EfindfirstF, EfindnextFdate ist in ext.h wie folgt definiert:

struct date
{
    int    da_year;                     /* Current year */
    char   da_day;                      /* Day of the month */
    char   da_mon;                      /* Month ( 1 = Jan ) */
};

Querverweis: EgetdateF, EsetdateFtime ist in ext.h wie folgt definiert:

struct time
{
    unsigned char   ti_min;             /* Minutes */
    unsigned char   ti_hour;            /* Hours */
    unsigned char   ti_hund;            /* Hundredths of seconds */
    unsigned char   ti_sec;             /* Seconds */
};

Querverweis: EgettimeF, EsettimeFdfree ist in ext.h wie folgt definiert:

struct dfree
{
        unsigned df_avail;
        unsigned df_total;
        unsigned df_bsec;
        unsigned df_sclus;
};

Querverweis: EgetdfreeFftime ist in ext.h wie folgt definiert:

struct ftime
{
    unsigned ft_tsec:   5;
    unsigned ft_min:    6;
    unsigned ft_hour:   5;
    unsigned ft_year:   7;
    unsigned ft_month:  4;
    unsigned ft_day:    5;
};

Querverweis: EgetftimeF, EsetftimeFstat ist in ext.h wie folgt definiert:

struct stat
{
    int    st_dev;           /* Laufwerk, das die Datei enthlt    */
    int    st_ino;
    int    st_mode;          /* Bit-Maske mit EDateiattributenF      */
    int    st_nlink;         /* immer 1                            */
    int    st_uid;
    int    st_gid;
    int    st_rdev;          /* wie st_dev                         */
    size_t st_size;          /* Dateigre in Bytes                */
    long   st_atime;         /* Zeit der letzten Dateinderung     */
    long   st_mtime;         /* wie st_atime                       */
    long   st_ctime;         /* wie st_atime                       */
};

Querverweis: EstatF, EfstatFexception ist in math.h wie folgt definiert:

struct exception
{
    mexcep      type;   /* Fehlerart ist in math.h definiert.       */
    char        *name;  /* name ist ein Zeiger auf einen nulltermi- */
                        /* nierten String der den Namen der fehler- */
                        /* auslsenden Funktion enthlt.            */
    double      arg1;   /* arg1 und arg2 enthalten die Werte der    */
                        /* Argumente, die der Funktion bergeben    */
    double      arg2;   /* wurden.                                  */
    double      retval; /* retval enhlt das fehlerhafte Ergebnis.  */
};

Querverweis   EsetmatherrFsize_t ist in mehreren Headerfiles wie folgt definiert:

typedef unsigned long   size_t;clock_t ist in time.h wie folgt definiert:

typedef long   clock_t;

Querverweis: EclockFCLK_TCK ist in time.h wie folgt definiert:

E#defineF CLK_TCK 200

Achtung auf anderen Systemen kann diese Konstante auch eine 
Fliekommazahl sein.

Querverweis: EclockFfpos_t ist in stdio.h wie folgt definiert:

typedef unsigned long   fpos_t;

Querverweis: EfgetposF, EfsetposFptrdiff_t ist in stddef.h wie folgt definiert:

typedef long   ptrdiff_t;

prtdiff ist der Typ einer Differenz zweier Pointer.time_t ist in time.h wie folgt definiert:

typedef long  time_t;

Querverweis: EctimeF, EgmtimeF, ElocaltimeF, EtimeF, EmktimeF, EdifftimeFdiv_t ist in stdlib.h wie folgt definiert:

typedef struct
{
    int    quot; /* Quotient */
    int    rem;  /* Rest */
} div_t;

Querverweis: Eldiv_tFLINE ist in tos.h wie folgt definiert:

typedef struct
{
    unsigned char   maxlen;
    unsigned char   actuallen;
    char            buffer[255];
} LINE;

Querverweis: ECconrsFDTA ist in tos.h wie folgt definiert:

typedef struct
{
    char            d_reserved[21];
    unsigned char   d_attrib;
    unsigned int    d_time;
    unsigned int    d_date;
    unsigned long   d_length;
    char            d_fname[14];
} DTA;

Querverweis    EFsetdtaF   EFgetdtaFDISKINFO ist in tos.h wie folgt definiert:

typedef struct
{
    unsigned long   b_free;
    unsigned long   b_total;
    unsigned long   b_secsiz;
    unsigned long   b_clsiz;
} DISKINFO;

Querverweis    EDfreeFIOREC ist in tos.h wie folgt definiert:

typedef struct
{
        void    *ibuf;          /* Zeiger auf den Buffer   */
        int     ibufsiz;        /* Gre des Buffers       */
        int     ibufhd;         /* nchste Schreibposition */
        int     ibuftl;         /* nchste Leseposition    */
        int     ibuflow;        /* Marke fr Xon           */
        int     ibufhi;         /* Marke fr Xoff          */
} IOREC;

Querverweis    EIorecFKBDVBASE ist in tos.h wie folgt definiert:

typedef struct
{
    void  (*kb_midivec)();   /* MIDI Interrupt-Vektor */
    void  (*kb_vkbderr)();   /* Tastatur Fehler-Vektor */
    void  (*kb_vmiderr)();   /* MIDI Fehler-Vektor */
    void  (*kb_statvec)();   /* Tastatur-Status */
    void  (*kb_mousevec)();  /* Tastatur-Maus-Status */
    void  (*kb_clockvec)();  /* Tastatur-Zeitgeber */
    void  (*kb_joyvec)();    /* Tastatur-Joystick-Status */
    void  (*kb_midisys)();   /* System-Midi-Vektor */
    void  (*kb_kbdsys)();    /* Tastatur-Vektor */
} KBDVBASE ;

Querverweis    EKbdvbaseFName            Basepagepointer

Deklaration:    extern BASPAG *_BasPag;
Deklaration in  tos.h

Beschreibung:   Zeigt auf die Basepage der Applikation. Die Basepage
                hat folgende Struktur:

typedef struct baspag
{
        void    *p_lowtpa;          /* Start der TPA              */
        void    *p_hitpa;           /* Ende der TPA               */
        void    *p_tbase;           /* Start des Textsegments     */
        long    p_tlen;             /* Lnge des Textsegments     */
        void    *p_dbase;           /* Start des Datasegments     */
        long    p_dlen;             /* Lnge des Datasegments     */
        void    *p_bbase;           /* Start des BSS              */
        long    p_blen;             /* Lnge des BSS              */
        DTA     *p_dta;             /* Start der EDTAF              */
        struct baspag *p_parent;    /* Start des aufrufenden Prg. */
        long    p_resrvd0;          /* reserviert                 */
        char    *p_env;             /* Start des Environments     */
        char    p_stdfh[6];         /* Standardhandles            */
        char    p_resrvd1;          /* reserviert                 */
        char    p_curdrv;           /* aktuelles Laufwerk         */
        long    p_resrvd2[18];      /* reserviert                 */
        char    p_cmdlin[128];      /* Kommandozeile              */
} BASPAG;

Querverweis: EPexecFBPB ist in tos.h wie folgt definiert:

typedef struct
{
        int   recsiz;       /* Bytes pro Sektor      */
        int   clsiz;        /* Sektoren pro Cluster  */
        int   clsizb;       /* Bytes pro Cluster     */
        int   rdlen;        /* Verzeichnislnge      */
        int   fsiz;         /* Lnge der FAT         */
        int   fatrec;       /* Start der 2. FAT      */
        int   datrec;       /* 1. freier Sektor      */
        int   numcl;        /* Gesamtzahl an Cluster */
        int   bflags;       /* Flags                 */
} BPB ;

Querverweis: EGetbpbFDOSTIME ist in tos.h wie folgt definiert;

typedef struct
{
        unsigned int     time;
        unsigned int     date;
} DOSTIME;

               Die Struktur der beiden Integer-Werte gliedert sich wie
               folgt:

Bit            time
0-4            Sekunden in Zweierschritten (0-29)
5-10           Minuten (0-59)
11-15          Stunden (0-23)

Bit            date
0-4            Tag im Monat (1-31)
5-8            Monat (1-12)
9-15           Jahr (0-119, 0=1980)

Querverweis: EFdatimeFCOMMAND ist in tos.h wie folgt definiert:

typedef struct
{
        unsigned char   length;
        char            command_tail[128];
} COMMAND;

Querverweis: EPexecFtypedef struct
{
        char    topmode;
        char    buttons;
        char    x_scale;
        char    y_scale;
        int     x_max;
        int     y_max;
        int     x_start;
        int     y_start;
} MOUSE;

Querverweis: EInitmouseFKEYTAB ist in tos.h wie folgt definiert:

typedef struct
{
        char *unshift;
        char *shift;
        char *capslock;
} KEYTAB;

Querverweis: EKeytblFMD ist in tos.h wie folgt definiert:

typedef struct __md
{
        struct __md *m_link;
        void        *m_start;
        long        m_length;
        BASPAG      *m_own;
} MD;

Querverweis: EGetmpbF, EMPBFMPB ist int tos.h wie folgt definiert:

typedef struct          /* used by Getmpb */
{
        EMDF *mp_mfl;
        EMDF *mp_mal;
        EMDF *mp_rover;
} MPB;

Querverweis: EGetmpbFMAPTAB ist in tos.h wie folgt definiert:

typedef struct
{
        int   (*bconstat) ();    /* Zeiger auf EBconstatF */
        long  (*bconin) ();      /* Zeiger auf EBconinF   */
        int   (*bcostat) ();     /* Zeiger auf EBcostatF  */
        void  (*bconout) ();     /* Zeiger auf EBconoutF  */
        long  (*rsconf) ();      /* Zeiger auf ERsconfF   */
        EIORECF *iorec;
} MAPTAB;

Querverweis: EBconmapF, EBCONMAPFBCONMAP ist in tos.h wie folgt definiert:
        
typedef struct
{
        EMAPTABF *maptab;     /* Liste der seriellen Schnittstellen */
        int    maptabsize;  /* Anzahl der Schnittstellentreiber   */ 
} BCONMAP;

Querverweis: EBconmapFSYSHDR ist in tos.h wie folgt definiert:

typedef struct _syshdr         
{
    unsigned   os_entry;   /* $00 BRA to reset handler             */     
    unsigned   os_version; /* $02 TOS version number               */
    void       *os_start;  /* $04 -> reset handler                 */ 
    struct _syshdr *os_base;   /* $08 -> baseof OS                     */     
    void       *os_membot; /* $0c -> end BIOS/GEMDOS/VDI ram usage */     
    void       *os_rsv1;   /* $10 << unused,reserved >>            */     
    long       *os_magic;  /* $14 -> GEM memoryusage parm. block   */     
    long       os_gendat;  /* $18 Date of system build($MMDDYYYY)  */     
    int        os_palmode; /* $1c OS configuration bits            */     
    int        os_gendatg; /* $1e DOS-format date of systembuild   */
/* 
    The next three fields are only available in TOS versions 1.2 and
    greater 
*/     
    void      *_root;     /* $20 -> base of OS pool               */     
    long      *kbshift;   /* $24 -> keyboard shift state variable */ 
    BASPAG    **_run;     /* $28 -> GEMDOS PID of current process */     
    void      *p_rsv2;    /* $2c << unused, reserved >>           */ 
} SYSHDR;

Ab Adresse 0x4F2L liegt ein Zeiger auf eine solche Struktur.PBDEF ist in tos.h wie folgt definiert:

typedef struct
{
        void    *pb_scrptr;
        int     pb_offset;
        int     pb_width;
        int     pb_height;
        int     pb_left;
        int     pb_right;
        int     pb_screz;
        int     pb_prrez;
        void    *pb_colptr;
        int     pb_prtype;
        int     pb_prport;
        void    *pb_mask;
} PBDEF;

Querverweis    EPrtblkFtm ist in time.h wie folgt definiert:

struct    tm
{
      int    tm_sec;     /* Sekunden                            */
      int    tm_min;     /* Minuten                             */
      int    tm_hour;    /* Stunden (0..23)                     */
      int    tm_mday;    /* Tag im Monat (1..31)                */
      int    tm_mon;     /* Monat (0..11)                       */
      int    tm_year;    /* Jahr                                */
      int    tm_wday;    /* Wochentag (0..6) -> (So..Sa)        */
      int    tm_yday;    /* Tag im Jahr (0..365)                */
      int    tm_isdst;   /* ungleich Null entspricht Sommerzeit */
};

Querverweis: EctimeFtypedef void (*sigfunc_t)( int );

 SIG_SYS  =>   (sigfunc_t)0L
 SIG_DFL  =>   (sigfunc_t)-1L
 SIG_IGN  =>   (sigfunc_t)-2L
 SIG_ERR  =>   (sigfunc_t)-3L

Querverweis: EraiseF, EsignalFDie FILE-Struktur in stdio.h beinhaltet die zur internen
Dateiverwaltung notwendigen Daten.Die Struktur ldiv_t ist in STDLIB.H definiert:

typedef struct
{
    long   quot; /* Quotient */
    long   rem;  /* Rest */
} ldiv_t;

Querverweis: Ediv_tFDie Strukturen fsm_int, fsm_fpoint_t, fsm_data_fpoint_t und
fsm_component_t sind in VDI.H definiert:

typedef struct
{
    int    value;
    int    remainder;

}   fsm_int;

typedef struct
{
    fsm_int    x;
    fsm_int    y;

}   fsm_fpoint_t;

typedef struct
{
    fsm_fpoint_t     pt;
    fsm_fpoint_t     cpt;
    fsm_int          sharp;

}   fsm_data_fpoint_t;

typedef struct fsm_component_t
{
    int                       resevered1;
    struct fsm_component_t    *nextComponent;
    unsigned char             numPoints;
    unsigned char             numCurves;
    unsigned char             numContours;
    unsigned char             reserved2[13];
    fsm_data_fpoint_f         *points;
    unsigned char             *startPts;

}   fsm_component_t;Die Bibliotheken im berblick
----------------------------------------------------------------------

Der Programm-Code dieser Bibliotheksroutinen ist in den folgenden sieben
Bibliotheks-Dateien gespeichert:

 PCFLTLIB.LIB EGleitkomma-BefehleF
  EPC881LIB.LIBF
 PCSTDLIB.LIB EStandard-FunktionenF
 PCEXTLIB.LIB EPure-C-SpezialfunktionenF
 PCTOSLIB.LIB EGEMDOSF, EBIOSF und EXBIOSF
 PCGEMLIB.LIB EGEMF-Funktionen bestehend aus EVDIF und EAESF
 PCBGILIB.LIB EBGIF-Routinen

Querverweis:   EParameterbergabeF  EStartupFPC881LIB.LIB
----------------------------------------------------------------------

Die Bibliothek PC881LIB.LIB sollten Sie statt PCFLTLIB.LIB in Ihrer
Projektdatei angeben, wenn Sie zum bersetzen Ihrer Programme in
den ECompileroptionenF den Schalter -8  bersetzen.
Dies macht jedoch nur Sinn, wenn Sie auf Ihrem Rechner eine FPU vom
Typ MC68881 oder MC68882 installiert haben und fr diese Code er-
zeugen wollen. Beachten Sie, da dies nicht fr die Coprozessor-Karte
SFP004 von Atari gilt, da diese nicht ber den Line-F-Emulator
angesteuert wird.TOS - Das Betriebssystem
----------------------------------------------------------------------

Das Atari-Betriebssystem ist in verschiedene Bereiche aufgeteilt. Zum
einen gibt es die grafische Benutzeroberflche EGEMF, mit EAESF und EVDIF,
zum andern aber auch die reinen Betriebssystemfunktionen.
Diese Betriebssystemfunktionen sind wiederum in drei Bereiche aufge-
gliedert:

  EGEMDOSF
  EXBIOSF
  EBIOSF

EGEMDOSF ist der Kern des Betriebssystems. Es werden unter anderem
Funktionen zur Ein-/Ausgabe, Datei- und Speicherverwaltung bereitge-
stellt.
Im Grunde genommen gibt es fr einen Pure-C-Programmierer jedoch kaum
Grnde, auf diese Funktionen zurckzugreifen, da man nahezu alle
Funktionen auch unter Pure C zur Verfgung hat.
Im EBIOSF (basic input output system) und EXBIOSF (extended basic input
output system) sind die hardware-abhngigen Funktionen enthalten.
Whrend die EBIOSF-Funktionen in erster Linie die zeichenweise Ausgabe
untersttzen, sind im EXBIOSF vor allem die Funktionen fr die speziellen
Gerte am Atari ST vom Diskettenlaufwerk bis hin zur MIDI-Schnittstelle
zusammengefat.pcstart.o ist der Standard Startup Code. Es werden folgende Schritte
ausgefhrt:

1. Initialisierung der globalen Variablen E_appF, E_BasPagF und E_PgmSizeF.
2. Freigeben des berflssigen Speichers.
3. Testen, ob eine Coprozessorerweiterung installiert ist.
4. Initialisierung des EenvpF-arrays, des EargvF-arrays und von EargcF.
5. Aufruf von EmainF.
6. Deinitialisierung.
7. Programmende.

pcxstart.o ist eine Erweiterung des Standard Startup Codes.
Zustzlich zu den oben genannten Schritten wird die Parameterliste
nach Eintrgen, die mit den Zeichen < oder > beginnen durchsucht.
Bei einem Programm, das mit einem Parameter der Form <DATEINAME
aufgerufen wird, wird der Standardeingabekanal stdin zur Datei
DATEINAME umgeleitet. Wenn ein Parameter der Form >DATEINAME
erscheint, wird der Standardausgabekanal stdout zur Datei DATEINAME
umgeleitet.Name            Applikationflag

Deklaration:    extern int _app;
Deklaration in  aes.h

Beschreibung:   Diese Variable wird auf 0 gesetzt, wenn die
                Applikation als Deskaccessory gestartet wurde. Ein
                Wert ungleich 0 signalisiert, da die Applikation als
                Programm gestartet wurde.Name            Programsize

Deklaration:    extern long _PgmSize;
Deklaration in  tos.h

Beschreibung:   Diese Variable enthlt die Gre der Applikation im
                Speicher. Sie bentigen diesen Wert, wenn Sie z.B Ihr
                Programm resident im Speicher halten wollen. Rufen
                Sie dazu EPtermresF mit diesem Wert auf.Borland Graphics Interface

Die rund 70 Funktionen des Grafikpakets lassen sich in sieben
Kategorien unterteilen:

       EKontrolleF (Laden von Grafiktreibern und Zeichenstzen,
                  Aktivierung)

       EZeichnen und FlchenfllungF

       EZugriffe auf den Bildspeicher und ZeichenfensterF

       Egrafische TextausgabeF

       EFarbmanipulation und Farb-PalettenF

       EFehlerbehandlungFKontrollfunktionen

Das Grafikpaket stellt die folgenden Funktionen zur
Initialisierung sowie der Aktivierung von Grafiktreibern und
Zeichenstzen zur Verfgung:

EregisterbgidriverF       registriert einen als .O-Datei
                        eingebundenen Grafiktreiber
EregisterbgifontF         registriert einen als .O-Datei
                        eingebundenen Vektor-Zeichensatz
EinstalluserdriverF       erlaubt die Installation von Grafiktreibern,
                        die nicht direkt von Borland erstellt wurden
EinstalluserfontF         erlaubt die Installation von Vektor-
                        Zeichenstzen, die nicht direkt von Borland
                        erstellt wurden
EsetgraphbufsizeF         setzt die Gre des internen Grafikpuffers

E_graphgetmemF            wird von allen Routinen des Grafikpakets benutzt,
                        die Speicherplatz auf dem Heap belegen, und kann
                        durch eine eigene Routine ersetzt werden
E_graphfreememF           wird von allen Routinen des Grafikpakets benutzt,
                        die Speicherplatz auf dem Heap freigeben,
                        und kann durch eine eigene Routine ersetzt werden

EdetectgraphF             prft die Hardware des Computers und legt fest,
                        welcher Grafiktreiber geladen bzw. welcher
                        Grafikmodus gesetzt werden soll
EgetmoderangeF            ermittelt, welche Grafikmodi fr einen gegebenen
                        Treiber verwendet werden knnen
EgetmaxmodeF              ermittelt die Kennziffer des hchsten Grafikmodus
                        fr Grafiktreiber, die nicht direkt von Borland
                        erstellt wurden
EgetmaxxF                 liefert  die  maximal mgliche X-Koordinate
                        des Bildschirms
EgetmaxyF                 liefert  die  maximal mgliche Y-Koordinate
                        des Bildschirms
EgetdrivernameF           liefert den Namen eines Grafiktreibers als
                        String zurck
EgetmodenameF             liefert den Namen eines Grafikmodus als String
                        zurck

EinitgraphF               prft ber einen Aufruf von detectgraph,
                        welcher Grafiktreiber geladen werden soll
                        bzw. verifiziert eine Vorgabe ber getmoderange,
                        ldt den Grafiktreiber, schaltet in den
                        Grafikmodus um und initialisiert das Grafikpaket
                        via graphdefaults
EgraphdefaultsF           setzt alle Parameter des Grafikpakets wieder auf
                        ihre Standardvorgaben zurck
EgraphresultF             liefert  den  Fehlerstatus  der letzten
                        Grafikoperation zurck
EsetgraphmodeF            setzt einen Grafikmodus
EgetgraphmodeF            ermittelt den momentan gesetzten Grafikmodus
ErestorecrtmodeF          schaltet von Grafik auf Text um
EclosegraphF              gibt die fr Treiber, Zeichenstze und Puffer
                        belegten Bereiche auf dem Heap wieder frei und
                        schaltet danach via restorecrtmode wieder in den
                        Textmodus umZeichnen und Flchenfllung

Das Grafikpaket definiert die folgenden Funktionen zum Zeichnen
grafischer Objekte und zur Ausfllung von Flchen:

EarcF                     zeichnet ein Kreisbogenstck
EcircleF                  zeichnet einen Kreis
EdrawpolyF                zeichnet den Umri eines Polygons
EellipseF                 zeichnet ein elliptisches Kreisbogenstck
EgetarccoordsF            liefert die Koordinaten des letzten Aufrufs
                        von arc oder ellipse zurck und ermglicht so
                        die Fortsetzung eines Kreisbogens mit anderen
                        geometrischen Elementen
EgetaspectratioF          liefert einen Korrekturfaktor fr das physikalische
                        Hhen-/Seitenverhltnis des Bildschirms, wird
                        fr Kreise automatisch benutzt
EsetaspectratioF          erlaubt das direkte Setzen eines Korrekturfaktors
EgetlinesettingsF         liefert die momentane Linienart, das verwendete
                        Muster und die Dicke
ElineF                    zeichnet eine Linie zwischen zwei angegebenen
                        Punkten
ElinetoF                  zeichnet eine Linie von der momentanen Position
                        des Grafik-Cursors zu einem angegebenen Punkt
ElinerelF                 zeichnet eine Linie relativ zur momentanen
                        Position des Grafik-Cursors
EmovetoF                  setzt den Grafik-Cursor auf einen angegebenen Punkt
EmoverelF                 bewegt den Grafik-Cursor relativ zu seiner
                        momentanen Position
ErectangleF               zeichnet ein Rechteck
EsetlinestyleF           legt die Linienart, das Muster und die Dicke fest
EsetwritemodeF            legt fest, ob Linien den vorigen Inhalt des
                        Bildspeichers direkt berschreiben, oder ob eine
                        XOR-Funktion zum Linienzeichnen verwendet wird
EbarF                     zeichnet einen ausgefllten Balken
Ebar3dF                   zeichnet einen ausgefllten, dreidimensionalen
                        Balken
EfillellipseF             zeichnet einen ausgefllten elliptischen Kreis
EfillpolyF                zeichnet ein ausgeflltes Polygon
EfloodfillF              fllt eine umschlossene Flche
EgetfillpatternF          liefert ein benutzerdefiniertes Muster zur
                        Flchenfllung zurck
EgetfillsettingsF         liefert die momentanen Parameter fr
                        Flchenfllungen zurck
EpiesliceF                zeichnet ein ausgeflltes Kuchenstck
EsectorF                  zeichnet ein ausgeflltes elliptisches Kuchenstck
EsetfillpatternF          erlaubt beliebige Definitionen von Fll-Mustern
EsetfillstyleF            legt die Parameter fr Flchenfllungen fest

Alle Funktionen des Grafikpakets, die Linien zeichnen, verwenden die
durch setlinestyle vorgegebenen Parameter; alle Funktionen, die Flchen
ausfllen, benutzen die durch setfillstyle und setfillpattern
vorgegebenen Werte.Zugriffe auf den Bildspeicher und Zeichenfenster

Die folgenden Funktionen des Grafikpakets ermglichen die direkte
Manipulation des Grafik-Bildspeichers:

EcleardeviceF             lscht den gesamten Grafikbildschirm unabhngig
                        von einem eventuell gesetzten Zeichenfenster
EsetactivepageF           legt bei Video-Adaptern mit mehreren Bildspeicher-
                        Seiten fest, welche Seite durch folgende Aufrufe
                        von Grafikfunktionen bearbeitet wird, und
                        ermglicht so Grafik-Operationen im Hintergrund
EsetvisualpageF           whlt bei Video-Adaptern mit mehreren Bildspeicher-
                        Seiten eine Speicherseite zur Anzeige auf dem
                        Bildschirm aus
EclearviewportF           lscht den Inhalt des momentan gesetzten
                        Zeichenfensters und lt den restlichen
                        Grafikbildschirm unverndert
EgetviewsettingsF         liefert die absoluten Koordinaten des momentan
                        gesetzten Zeichenfensters zurck
EsetviewportF             definiert einen rechteckigen Bereich des
                        Grafikbildschirms als Zeichenfenster
EgetimageF                kopiert den Inhalt eines rechteckigen
                        Bildausschnitts in eine C-Puffervariable
EimagesizeF               berechnet den Platzbedarf fr die Speicherung
                        von Bildausschnitten mit getimage
EputimageF                schreibt einen zuvor mit getimage gespeicherten
                        Bildausschnitt in den Grafik-Bildspeicher zurck,
                        wobei Verknpfungen mit dem momentanen Inhalt
                        des entsprechenden Bereichs mglich sind
EgetpixelF                liefert die Farbe eines Bildpunktes an den
                        angegebenen Koordinaten
EputpixelF                zeichnet einen einzelnen Bildpunkt an den
                        angegebenen Koordinaten in der angegebenen Farbe
EgetxF                    liefert die  X-Koordinate des Grafik-Cursors
EgetyF                    liefert die  Y-Koordinate des Grafik-CursorsFunktionen zur Ausgabe von Text

Das Grafikpaket definiert die folgenden Funktionen zur Textausgabe:

EgettextsettingsF         liefert die momentan gesetzten Parameter zurck
                        (Textart, Schreibrichtung, Vergrerungsfaktor
                        und Justierung)
EouttextF                 gibt einen String ab der momentanen Position
                        des Grafik-Cursors aus und verwendet dabei die
                        durch settextstyle gesetzten Parameter
EouttextxyF               gibt einen String ab dem angegebenen Punkt aus
EsettextjustifyF          setzt linksbndige, rechtsbndige oder zentrierte
                        Formatierung fr folgende Ausgaben mit outtext
                        und outtextxy
EsettextstyleF            ldt einen Zeichensatz auf den Heap bzw.
                        aktiviert einen mit registerbgifont registrierten
                        Zeichensatz, legt die Schreibrichtung und den
                        Vergrerungsfaktor fest
EsetusercharsizeF         erlaubt die Skalierung von Textausgaben mit
                        voneinander unabhngigen Werten fr Hhe und Breite
EtextheightF              liefert den vertikalen Platzbedarf eines
                        Textstrings in Pixeln zurck
EtextwidthF               liefert den horizontalen Platzbedarf eines
                        Textstrings zurck
Wenn die Clip-Funktion aktiviert ist (d.h. der fnfte Parameter von
setviewport einen Wert != 0 hat), dann schneiden outtext und outtextxy
Ausgaben an den Grenzen des Zeichenfensters ab. Bei nicht aktivierter
Clip-Funktion werden Ausgaben mit dem Standard-Zeichensatz vollstndig
unterdrckt, wenn sie die Grenzen des Zeichenfensters berschreiten;
Ausgaben mit Vektor-Zeichenstzen enden an den Grenzen des Bildschirms.Bildschirmfarben

Das Grafikpaket definiert die folgenden Funktionen zur Festlegung von
Bildschirmfarben:

EgetbkcolorF              liefert die momentan gesetzte Hintergrundfarbe
                        zurck
EgetcolorF                liefert die momentan gesetzte Zeichenfarbe zurck
EgetmaxcolorF             liefert die hchste Farbnummer fr den
                        momentan geladenen Grafiktreiber und den gesetzten
                        Modus
EgetpaletteF              liefert die Eintrge der momentan gesetzten
                        Farb-Palette
EgetdefaultpaletteF       liefert einen Zeiger auf die Standard-
                        Farbpalette  fr   den  momentan  gesetzten
                        Grafikmodus zurck
EgetpalettesizeF          liefert die Gre der momentan gesetzten
                        Farb-Palette  zurck (d.h.  die Anzahl der
                        Eintrge)
EsetallpaletteF           setzt smtliche Eintrge einer Farb-Palette neu
EsetbkcolorF              setzt die Hintergrundfarbe
EsetcolorF                setzt die Zeichenfarbe
EsetpaletteF              setzt einzelne Eintrge einer Farb-Palette
EsetrgbpaletteF           setzt einzelne Eintrge der Farb-Palette fr
                        den Grafik-Adapter 8514 von IBMFehlerbehandlung

Das Grafikpaket definiert einen eigenen Statuscode, der durch
Flchenfllungen, Diskettenoperationen, die Prfung von Grafiktreibern,
Zeichenstzen und erlaubten Grafikmodi gesetzt wird. Die Funktion
graphresult liefert den momentanen Status zurck (und setzt den intern
gespeicherten Wert dabei automatisch auf 0), die Funktion grapherrormsg
liefert den zu einem Statuscode gehrigen Text in Form eines Strings
zurck. Prfungen und die Ausgabe (englischer) Fehlermeldungen gestalten
sich deshalb recht einfach:

#include <graphics.h>
#include <stdio.h>
main()
{
    int graphdriver = DETECT, graphmode;
    initgraph(&graphdriver, &graphmode, "");
    if (graphdriver < 0)    /* Fehler! */
    { 
      puts(grapherrormsg(graphresult()));  /* Ausgabe der Meldung */
      exit(1);
    }
  /*   ..... */
}Name         arc - zeichnet einen Kreisbogen.

Definition   void arc(int x, int y, int stangle, int endangle,
                      int radius);

Prototyp in  graphics.h

Beschreibung arc  zeichnet   einen  Kreisbogen  in  der  momentan
             gesetzten Zeichenfarbe  mit dem  Mittelpunkt  (x,y),
             wobei  stangle   den  Startpunkt  und  endangle  den
             Endpunkt des  mit radius gezogenen Bogens festlegen.
             Die Angabe  beider Winkel  erfolgt  in  Grad,  wobei
             entgegen dem  Uhrzeigersinn gezhlt  wird (0  Grad =
             horizontal  rechts  des  Mittelpunktes,  90  Grad  =
             senkrecht ber dem Mittelpunkt usw).
Ergebnis     arc hat kein direktes Ergebnis.

Beispiel     #include <graphics.h>
             #include <ext.h>

             main()
             {
               int graphdriver = DETECT,   /* automatische */
                    graphmode;              /* Erkennung */
                struct arccoordstype arcinfo;
                int xasp,yasp;
                int centerx,centery,rsize;
                long ylong;

                initgraph(&graphdriver,&graphmode,"");

                centerx = getmaxx() / 2;  /* Mittelpunkte */
                centery = getmaxy() / 2;
                rsize = centery - 10;     /* Kreisradien */

                /* Ein Kreisbogenstck mit
                   eingezeichneter Sehne */
                arc(centerx, centery, 0, 90, rsize);
                getarccoords(&arcinfo);
                line(arcinfo.xstart, arcinfo.ystart,
                     arcinfo.xend, arcinfo.yend);

                /* Ein Kreis und eine Ellipse */
                circle(centerx, centery, 100);
                ellipse(centerx, centery, 0, 360, 100, 50);

                /* Ein Kreis aus drei verschiedenfarbigen
                   Kuchenstcken */
                setcolor(WHITE);
                setfillstyle(SOLID_FILL, LIGHTRED);
                pieslice(100, 100, 0, 135, 49);
                setfillstyle(SOLID_FILL, LIGHTBLUE);
                pieslice(100, 100, 135, 225, 49);
                setfillstyle(SOLID_FILL, WHITE);
                pieslice(100, 100, 225, 360, 49);

                getaspectratio(&xasp, &yasp);
                /* Ein Quadrat mit der Breite centerx
                   (halbe Breite des Bildschirms) */
                ylong = (long)centerx * (long)xasp / (long)yasp;
                rectangle(centerx / 2, centery - (int)ylong/2,
                          centerx + centerx / 2, centery +
                          (int)ylong/2);
                getch();
                closegraph();
             }
Portabilitt Diese Funktion ist lauffhig auf allen Systemen, die
             BGI untersttzen.
Gruppe       EZeichnen und FlchenfllungF
Querverweis  EcircleF, EellipseF, EfillellipseF,  EpiesliceF, EsectorF,
             EgetarccoordsF, EgetaspectratioF, EsetaspectratioFName         bar - zeichnet einen ausgefllten Balken.

Definition   void bar(int left, int top, int right, int bottom);

Prototyp in  graphics.h

Beschreibung bar zeichnet  ein geflltes  Rechteck, dessen  obere
             linke Ecke  durch die  Koordinaten (left,  top)  und
             dessen untere  rechte  Ecke  durch  die  Koordinaten
             (right, bottom)  festgelegt ist.  Verwendet wird die
             momentan  gesetzte  Zeichenfarbe,  sowie  das  durch
             EsetfillstyleF    bzw.   EsetfillpatternF    definierte
             Fllmuster. Einen  Umri zeichnet  EbarF nicht  - dazu
             konnen Sie Ebar3dF mit depth = 0 verwenden.
Ergebnis     bar  hat   kein  direktes   Funktionsergebnis.   Ein
             eventuell   aufgetretener    Fehler   kann   mittels
             EgraphresultF erfragt werden.
Beispiel     #include <graphics.h>
             #include <ext.h>

             main()
             {  
                int graphdriver = DETECT, /* automatische */
                               graphmode;  /* Erkennung */
                int i, width = 20;  /* Breite */

                initgraph(&graphdriver,&graphmode,"");

                 /* Eine absteigende Treppe */
                 for (i = 1; i < 10; i++)
                   bar(i*width,i*10,(i+1)*(width+1), 200);
                getch(); clearviewport();
                setfillstyle(LTSLASH_FILL,LIGHTRED);
                bar3d(10,10,60,60,12,1);  /* mit "Deckel" */
                bar3d(10,80,180,130,40,1);
                getch();
                closegraph();
             }
Portabilitt Auf allen  Systemen die  BGI untersttzen, ist diese
             Funktion lauffhig.
Gruppe       EZeichnen und FlchenfllungF
Querverweis  ErectangleF, EsetcolorF, EsetfillstyleF, Ebar3dFName         bar     3-dimensional     -     zeichnet     einen
             dreidimensionalen, ausgefllten Balken.

Definition   void bar3d(int left, int top, int right, int bottom,
                        int depth, int topflag);

Prototyp in  graphics.h

Beschreibung Balken,  die   mit  bar3d  gezeichnet  wurden,  sind
             dreidimensional und  bestehen aus  einem gefllten
             Rechteck, dessen  Ecken durch  die  Koordinatenpaare
             (left, top)  und (right,  bottom) festgelegt werden.
             bar3d zeichnet  zuerst die  Umrilinien in der durch
             EsetcolorF gesetzten  Farbe und  der mit  EsetlinestyleF
             festgelegten Linienart,  danach fllt  die  Funktion
             die umschlossene  Flche (wie  EbarF) mit dem momentan
             gltigen Fll-muster aus.
             ber den  Parameter depth  lt sich die rumliche
             Tiefe (in  Pixel) bestimmen,  die typischerweise bei
             rund 25% der Breite liegt:
             bar3d(left, top, right, bottom, (right-left) / 4,
             1);
             Der Parameter  topflag legt  fest,  ob  bar3d  einen
             oberen Abschlu  des  Balkens  zeichnet  (topflag=1)
             oder nicht  (topflag=0) -  im letzteren  Fall lassen
             sich mehrere Balken bereinanderstapeln.
Ergebnis     bar3d  hat   kein  direktes  Funktionsergebnis.  Ein
             eventuell   aufgetretener    Fehler   kann   mittels
             EgraphresultF erfragt werden.
Beispiel     siehe bar
Portabilitt Diese Funktion ist kompatibel zu allen Systemen, die
             BGI untersttzen.
Gruppe       EZeichnen und FlchenfllungF
Querverweis  ErectangleF, EsetcolorF, EsetfillstyleF, EbarFName         circle - zeichnet einen Kreis.
Definition   void circle(int x, int y, int radius);

Prototyp in  graphics.h

Beschreibung circle  zeichnet   einen  Kreis   in  der   momentan
             gesetzten  Zeichenfarbe   mit   dem   durch   radius
             gegebenen   Radius   um   den   Mittelpunkt   (x,y),
             entspricht also  EarcF mit  stangle = 0 und endangle =
             360.
Ergebnis     circle hat kein Ergebnis.
Beispiel     siehe EarcF
Portabilitt Diese Funktion ist lauffhig auf allen Systemen, die
             BGI untersttzen.
Gruppe       EZeichnen und FlchenfllungF
Querverweis  EcircleF, EellipseF,   EfillellipseF,  EpiesliceF,  EsectorF,
             EgetarccoordsFName         clear device - lscht den Grafikbildschirm.
Definition   void cleardevice(void);

Prototyp in  graphics.h

Beschreibung cleardevice lscht den gesamten Grafikbildschirm.
             Danach wird  der Grafik-Cursor auf den (relativen)
             Ursprung (0,0),  d.h. in  die linke  obere Ecke  des
             Bildschirms gesetzt.
Ergebnis     cleardevice liefert keinen Wert zurck.
Portabilitt Diese Funktion ist kompatibel zu allen Systemen, die
             BGI untersttzen.
Gruppe       EZugriffe auf den Bildschirmspeicher und ZeichenfensterF
Querverweis  EsetviewportF, EclearviewportFName         clear viewport  - lscht  den Inhalt  des momentan
             gesetzten Zeichenfensters.

Definition   void clearviewport(void);

Prototyp in  graphics.h

Beschreibung clearviewport  lscht   den  Inhalt   des   momentan
             gesetzten Zeichenfensters.
             Hinweis:  Das   Zeichenfenster  selbst   (gesetzte
             Grenzen und Clip-Funktion) bleibt unverndert.
Ergebnis     clearviewport liefern keinen Wert zurck.
Portabilitt Die Funktion  ist lauffhig  auf allen Systemen, die
             BGI unterstzten.
Gruppe       EZugriffe auf den Bildschirmspeicher und ZeichenfensterF
Querverweis  EsetviewportF, EcleardeviceFName         close graphics - beendet die Grafikausgabe.

Definition   void closegraph(void);

Prototyp in  graphics.h

Beschreibung closegraph  beendet die Ausgabe von Graphik mittels
             des BGI.
Portabilitt Auf allen  Systemen, die BGI untersttzen, ist diese
             Funktion lauffhig.
Gruppe       EKontrolleF
Querverweis  EinitgraphFName         detect graphics  adapter -  prft die Hardware des
             Computers  und   bestimmt,   welcher   Grafiktreiber
             geladen und welcher Grafikmodus gesetzt werden soll.

Definition   void detectgraph(int *graphdriver, int *graphmode);

Prototyp in  graphics.h

Beschreibung Nachdem es  unter TOS  nur einen Grafiktreiber gibt,
             bleibt  der   Wert  fr   den  Grafiktreiber   immer
             konstant.  Der   Grafikmodus,  der  von  detectgraph
             gesetzt    werden     soll,    hngt     von     der
             Hardwareausstattung   ab.   Bei   einem   Monochrom-
             Bildschirm   wird   die   hohe   Bildschirmauflsung
             untersttzt,  bei  einem  Farbmonitor  gibt  es  die
             Auswahl zwischen  der niedrigen  und  der  mittleren
             Bildschirmauflsung.
Portabilitt Diese Funktion ist kompatibel zu allen Systemen, die
             BGI untersttzen.
Gruppe       EKontrolleF
Querverweis  EinitgraphFName         draw polygon - zeichnet einen Polygonzug.

Definition   void drawpoly(int numpoints, int *polypoints);

Prototyp in  graphics.h

Beschreibung drawpoly zeichnet  einen  Polygonzug  mit  numpoints
             Eckpunkten in der momentan gesetzten Linienart und -
             farbe. Der  als polypoints bergebene Zeiger mu auf
             eine Folge  von Koordinatenpaaren  zeigen (ein Array
             mit numpoints * 2 Elementen, siehe Beispiel).
             Hinweis:   drawpoly   beginnt   mit   dem   ersten
             angegebenen Punkt  und zieht von dort aus eine Linie
             zum zweiten,  von da  zum dritten  usw. Zum Zeichnen
             einer  geschlossenen  Figur  mit  n  Eckpunkten  mu
             polypoints n+1 Koordinatenpaare enthalten, wobei das
             letzte Paar dieselben Werte wie das erste Paar hat.
Ergebnis     drawpoly liefern keinen Wert zurck.
Beispiel     #include <graphics.h>
             #include <ext.h>

             main()
             {
                int graphdriver = DETECT,    /* automatische */
                                 graphmode;  /* Erkennung */

                /* Dreieck (1. = letzter Eckpunkt) */
                int triangle[] = { 50, 100, 100, 100, 150, 150,
                                   50, 100 };

                initgraph(&graphdriver,&graphmode,"");

                drawpoly(4,triangle);   /* zeichnet ein Dreieck */
                getch(); clearviewport();

                setfillstyle(SOLID_FILL, LIGHTGREEN);
                fillpoly(3,triangle);  /* 4. Punkt unntig */

                getch();
                closegraph();
             }
Portabilitt Die Funktion  ist lauffhig  auf allen Systemen, die
             BGI unterstzten.
Gruppe       EZeichnen und FlchenfllungF
Querverweis  EgetfillsettingsF,       EfillpolyF,       EsetfillstyleF,
             EsetfillpatternFName         ellipse    -     zeichnet    einen    elliptischen
             Kreisausschnitt.

Definition   void  ellipse(int   x,  int   y,  int  stangle,
                           int endangle, int xradius, int yradius);

Prototyp in  graphics.h

Beschreibung ellipse zeichnet  einen elliptischen  Kreisbogen  in
             der momentan  gesetzten  Zeichenfarbe  um  den  Mit-
             telpunkt (x,y)  mit den  Radien xradius (horizontal)
             und yradius  (vertikal). stangle  und endangle legen
             in derselben  Weise wie  bei EarcF  den Anfangs-  bzw.
             Endpunkt des Kreisbogens fest.
Ergebnis     ellipse hat kein Ergebnis.
Beispiel     siehe EarcF
Portabilitt Diese Funktion ist lauffhig auf allen Systemen, die
             BGI untersttzen.
Gruppe       EZeichnen und FlchenfllungF
Querverweis  EarcF,   EcircleF,    EfillellipseF,   EpiesliceF,   EsectorF,
             EgetarccoordsFName         fill  ellipse   -  zeichnet   einen   ausgefllten
             elliptischen Kreis.

Definition   void fillellipse(int  x, int  y,  int  xradius,
                              int yradius);

Prototyp in  graphics.h

Beschreibung fillellipse zeichnet einen elliptischen Vollkreis in
             der momentan gesetzten Zeichenfarbe (wie ellipse mit
             stangle =  0 und endangle = 360), danach fllt diese
             Funktion  den   entstandenen  Kreis  mit  dem  durch
             EsetfillpatternF bzw. EsetfillstyleF festgelegten Muster
             und der dort angegebenen Farbe aus.
Ergebnis     fillellipse hat kein direktes Ergebnis. Wenn whrend
             der Ausfhrung ein Fehler auftritt, liefert der
             nchste Aufruf von EgraphresultF den Wert grNoScanMem
Beispiel     siehe EarcF
Portabilitt Diese Funktion ist lauffhig auf allen Systemen, die
             BGI untersttzen.
Gruppe       EZeichnen und FlchenfllungF
Querverweis  EarcF, EcircleF, EellipseF, EpiesliceF, EsectorF, EgetarccoordsFName         fill polygon - zeichnet ein ausgeflltes Polygon.

Definition   void fillpoly(int numpoints, int *polypoints);

Prototyp in  graphics.h

Beschreibung fillpoly  erwartet  als  Pa4rameter  die  Anzhal  an
             Koordinatenpaaren in  numpoints und  die Koordinaten
             selbst im Feld polypoints, das 2* numpoints Elemente
             hat. Zunchst  wird der  durch die  Koordinatenpaare
             festgelegt Polygonzug  gezeichnet, danach  wird  die
             Flchem   mit    dem   durch    EsetfillstyleF    bzw.
             EsetfillpatternF gesetzten Muster gefllt.
Ergebnis     fillpoly liefern  keinen Wert  zurck. Wenn  whrend
             des Ausfllens  ein  Fehler  auftritt,  liefert  der
             nchste  Aufruf   von   EgraphresultF   das   Ergebnis
             grNoScanMem.
Beispiel     #include <graphics.h>
             #include <ext.h>

             main()
             {
                int graphdriver = DETECT,    /* automatische */
                                 graphmode;  /* Erkennung */

                /* Dreieck (1. = letzter Eckpunkt) */
                int triangle[] = { 50, 100, 100, 100, 150, 150,
                                   50, 100 };

                initgraph(&graphdriver,&graphmode,"");

                drawpoly(4,triangle);   /* zeichnet ein Dreieck */
                getch(); clearviewport();

                setfillstyle(SOLID_FILL, LIGHTGREEN);
                fillpoly(3,triangle);  /* 4. Punkt unntig */

                getch();
                closegraph();
             }
Portabilitt Auf allen  Systemen, die BGI untersttzen, ist diese
             Funktion lauffhig.
Gruppe       EZeichnen und FlchenfllungF
Querverweis  EgetfillsettingsF,      EdrawpolyF,      EsetfillstyleF,
             EsetfillpatternFName         flood fill - fllt einen umschlossenen Bereich mit
             dem momentan gesetzten Fll-Muster.

Definition   void floodfill(int x, int y, int border);

Prototyp in  graphics.h

Beschreibung floodfill arbeitet  im Gegensatz  zu  EfillpolyF  bit-
             orientiert:   ausgehend    von   dem   durch   (x,y)
             angegebenen  Punkt   wird  der  Bildschirm  in  alle
             Richtungen geflutet,  wobei  das  Erreichen  eines
             Pixels mit  der Farbe  border die  Operation in  der
             jeweiligen Richtung abbricht.
             Wenn sich  der Punkt  (x,y) innerhalb einer Flche
             befindet,  die   mit   Linien   der   Farbe   border
             umschlossen  ist,   fllt  floodfill  diese  Flche.
             Befindet sich  (x,y) auerhalb  dieser Flche,  dann
             wird der  restliche Bildschirm  (bzw. das  restliche
             Zeichenfenster)  gefllt,  die  umschlossene  Flche
             bleibt frei.
Ergebnis     floodfill liefert  keinen Wert  zurck. Wenn whrend
             des Flchenfllens  ein Fehler auftritt, liefert ein
             nachfolgender Aufruf  von EgraphresultF  das  Ergebnis
             grNoFloodMem.
Beispiel     #include <graphics.h>
             #include <ext.h>

             main()
             {  int graphdriver = DETECT,     /* automatische */
                                  graphmode;  /* Erkennung */
                initgraph(&graphdriver,&graphmode,"");

                setcolor(RED);  /* ein rotes Dreieck */
                moveto(10,10); lineto(100,10);
                lineto(50,100); lineto(10,10);
                getch();

                floodfill(30,30,RED);  /* fllt das Dreieck */
                getch();

                floodfill(100,100,RED); /* fllt den restlichen */
                getch();                /* Bildschirm */

                closegraph();
             }
Portabilitt Diese Funktion ist lauffhig auf allen Systemen, die
             BGI untersttzen.
Gruppe       EZeichnen und FlchenfllungF
Querverweis  EfillpolyF, EgraphresultFName         get arc  coordinates -  ermittelt die  Koordinaten
             des letzten Aufrufs von EarcF.

Definition   void getarccoords(struct arccoordstype *arccoords);

Prototyp in  graphics.h

Beschreibung getarccoords liefert  die Daten  des letzten Aufrufs
             von EarcF  in einer  Struktur des  Typs  arccoordstype
             zurck, die  in graphics.h  folgendermaen definiert
             ist:

             struct arccoordstype
                    { int x,y;              /* Mittelpunkt */
                      int xstart, ystart,   /* Startpunkt */
                          xend, yend;       /* Endpunkt */
                    };
             Ntzlich ist  getarccoords beispielweise  dann, wenn
             ein Kreisbogen  mit einer  Linie oder  einem anderen
             geometrischen Element fortgesetzt werden soll.
Ergebnis     getarccords hat kein Ergebnis.
Beispiel     siehe EarcF
Portabilitt Diese Funktion ist kompatibel zu allen Systemen, die
             BGI untersttzen.
Gruppe       EZeichnen und FlchenfllungF
Querverweis  EarcF, EcircleF, EellipseF, EfillellipseF, EpiesliceF, EsectorFName         get aspect  ratio -  ermittelt  das  physikalische
             Hhen-/ Seitenverhltnis des Bildschirms.

Definition   void getaspectratio(int *xasp, int *yasp);

Prototyp in  graphics.h

Beschreibung Der Faktor von aspectratio ist immer 1, da man unter
             TOS  nur   das  Seitenverhltnis,   nicht  aber  das
             Hhenverhltnis explizit einstellen kann.
Ergebnis     getaspectratio hat kein Ergebnis.
Portabilitt Auf allen  Systemen,  die  BGI  untersttzen,  ist
             diese Funktion lauffhig.
Gruppe       EZeichnen und FlchenfllungF
Querverweis  EsetaspectratioFName         get  background   color  -  liefert  die  momentan
             gesetzte Hintergrundfarbe im Grafikmodus zurck.

Definition   int getbkcolor(void);

Prototyp in  graphics.h

Beschreibung getbkcolor liefert  den Inhalt  des ersten  Eintrags
             der momentan gesetzten Farbpalette. Fr das Ergebnis
             von getbkcolor  sind  die  folgenden  Konstanten  in
             graphics.h als enum definiert:

             Wert  Name      Wert  Name
             --------------------------------------------------------
             0     BLACK      8    DARKGRAY
             1     BLUE       9    LIGHTBLUE
             2     GREEN     10    LIGHTGREEN
             3     CYAN      11    LIGHTCYAN
             4     RED       12    LIGHTRED
             5     MAGENTA   13    LIGHTMAGENTA
             6     BROWN     14    YELLOW
             7     LIGHTGRAY 15    WHITE
             --------------------------------------------------------
Ergebnis     getbkcolor liefert  einen Wert  zwischen  0  und  15
             zurck.
Beispiel     #include <graphics.h>
             #include <ext.h>
             main()
             {  int graphdriver = DETECT, /* automatische */
                graphmode;                /* Erkennung */
                int color;
                initgraph(&graphdriver,&graphmode,"");

                /* Linien mit gleichbleibender Farbe und
                   wechselndem Hintergrund */
                while (!kbhit())
                 { color = getbkcolor();
                   if (++color > getmaxcolor())  color = 0;
                   setbkcolor(color);
                   lineto(rand() % (getmaxx() + 1),
                      rand() % (getmaxy() + 1));
                   delay(100);
                  }

                getch();
                closegraph();
             }
Portabilitt Diese Funktion ist zu allen Systemen kompatibel, die
             BGI untersttzen.
Gruppe       EFarbmanipulation und Farb-PalettenF
Querverweis  EgetpaletteF, EinitgraphF, EsetbkcolorFName         get color  - liefert die momentan gesetzte Grafik-
             Zeichenfarbe zurck.

Definition   int getcolor(void);

Prototyp in  graphics.h

Beschreibung getcolor liefert  die Nummer  des  Eintrags  in  der
             Farbpalette, der  momentan als  Zeichenfarbe benutzt
             wird. Der  Wert  0  als  Funktionsergebnis  bedeutet
             also, da  die  Grafikroutinen  den  ersten  Eintrag
             verwenden -  welche Farbe  dies letztlich ist, hngt
             vom Wert dieses Eintrags ab.
             Ein Beispiel: In der mittlere Auflsung (STMEDIUM)
             enthlt die Farb-Palette die vier Eintrge BLACK(0),
             BLUE(1), GREEN(2)  und CYAN(3).  Wenn  getcolor  den
             Wert 1  zurckliefert, wird  BLUE  als  Zeichenfarbe
             benutzt.
             Solange nicht  mit setcolor  ein anderer Paletten-
             Eintrag als Zeichenfarbe gesetzt wird, verwenden die
             Grafikroutinen den  hchsten Eintrag:  getcolor  hat
             direkt nach  dem  Start  der  Grafik  im  Modus  der
             mittleren Auflsung  das Ergebnis  3.  Abhngig  vom
             verwendeten Grafikmodus  sind Ergebnisse  im Bereich
             von 0..15 mglich.
Ergebnis     getcolor liefert  die Nummer  des Paletten-Eintrags,
             der momentan als Zeichenfarbe gesetzt ist.
Beispiel     #include <graphics.h>
             #include <stdlib.h>
             #include <ext.h>
             main()
             {  int graphdriver = DETECT, /* automatische */
                graphmode;                /* Erkennung */
                int color;

                initgraph(&graphdriver,&graphmode,"");

                /* Linien mit wechselnder Farbe und
                   gleichbleibendem Hintergrund */
                while (!kbhit())
                 { color = getcolor();
                   if (++color > getmaxcolor())   color = 0;
                   setcolor(color);
                   lineto(random(getmaxx()) + 1),
                          random(getmaxy() + 1));
                  }
                getch();
                closegraph();
             }
Portabilitt Auf allen  Systemen, die BGI untersttzen, ist diese
             Funktion lauffhig.
Gruppe       EFarbmanipulation und Farb-PalettenF
Querverweis  EgetbkcolorF, EgetpaletteF, EgetmaxcolorF, EsetcolorFName         get default palette - liefert einen Zeiger auf die
             Standard-Farbpalette  fr   den  momentan  gesetzten
             Grafikmodus zurck.

Definition   void *getdefaultpalette(void);

Prototyp in  graphics.h

Beschreibung getdefaultpalette liefert einen Zeiger auf die Farb-
             Palette zurck,  die  bei  der  Initialisierung  des
             Treibers (via  EinitgraphF bzw.  EsetgraphmodeF) gesetzt
             war.
             colornum hat einen zulssigen Bereich von 0..512 und
             legt die  Nummer des Farb-Eintrags fest, dessen Wert
             sich  aus   den  Komponenten  red,  green  und  blue
             zusammensetzt.
Ergebnis     getdefaultpalette liefert kein direktes Ergebnis.
Beispiel     #include <graphics.h>
             #include <ext.h>
             main()
             {  int graphdriver = DETECT, /* automatische */
                graphmode;                /* Erkennung */
                struct palettetype palette;
                int x,y;

                initgraph(&graphdriver, &graphmode, "");

                getpalette(&palette);
                for (x = 0; x <10; x++)  /* 10 Balken
                                            nebeneinander */
                  { setfillstyle(x, (x % 4) + 1);
                    bar(x * 60, 20, (x+1) * 60, 200);
                  }

                while (!kbhit())
                 { setpalette(rand() % palette.size, rand() %
                 64);
                   delay(300);  /* bunter Farbwechsel */
                 }

                /* Farb-Palette zurck aufs Original */
                setallpalette(getdefaultpalette());

                getch();
                closegraph();
             }
Portabilitt Diese Funktion ist zu allen Systemen kompatibel, die
             BGI untersttzen.
Gruppe       EFarbmanipulation und Farb-PalettenF
Querverweis  EgetbkcolorF,   EgetcolorF,    EgetpaletteF,   EsetpaletteF,
             EsetallpaletteFName         get  driver   name  -   liefert  den   Namen   des
             Grafiktreibers.

Definition   char *getdrivername(void);

Prototyp in  graphics.h

Beschreibung getdrivername kann  nur nach der Initialisierung des
             Grafikpakets mit  initgraph  verwendet  werden.  Die
             Funktion liefert  den Namen  des Grafiktreibers, der
             durch EinitgraphF aktiviert wurde.
Ergebnis     getdrivername liefert  einen Zeiger auf einen String
             zurck.
Gruppe       EKontrolleF
Portabilitt Diese Funktion ist zu allen Systemen kompatibel, die
             BGI untersttzen.Name         get fill  pattern  -  ermittelt  das  zuletzt  mit
             EsetfillpatternF      gesetzte      Bitmuster      fr
             Flchenfllungen.

Definition   void getfillpattern(char *pattern);

Prototyp in  graphics.h

Beschreibung getfillpattern ermittelt  das festgelegte Muster und
             die Zeichenfarbe  fr die  Aufrufe von  EfillellipseF,
             EfillpolyF,  EfloodfillF,   EbarF,   Ebar3dF,   EsectorF   und
             EpiesliceF.
             pattern ist ein Zeiger auf eine Folge von 8 Bytes,
             bei dem  jedes Bit  fr ein Pixel in der durch color
             festgelegten  Farbe  steht.  Jedes  Byte  legt  acht
             nebeneinanderliegende Punkte  einer  Bildschirmzeile
             fest,  die   Bytes   selbst   sind   untereinander
             angeordnet. Ein  Schachbrettmuster mit der Graustufe
             0.5 ist beispielsweise folgendermaen definiert:
               char gray50[8] =
                 { 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55
                 };
Ergebnis     getfillpattern hat kein direktes Ergebnis.
Beispiel     siehe getfillsettings
Portabilitt Auf allen  Systemen, die BGI untersttzen, ist diese
             Funktion lauffhig.
Gruppe       EZeichnen und FlchenfllungF
Querverweis  EgetfillsettingsF, EsetfillpatternFName         get  fill   settings  -  liefert  Daten  ber  das
             momentan   gesetzte    Fllmuster   und    die   fr
             Flchenfllungen verwendete Farbe.

Definition   void getfillsettings(struct fillsettingstype *fillinfo);

Prototyp in  graphics.h

Beschreibung getfillsettings ermittelt die ber setfillstyle bzw.
             EsetfillpatternF gesetzten  Parameter und  liefert sie
             in der als fillinfo bergebenen Struktur zurck. Der
             Datentypen  fillsetttingstype   ist  in   graphics.h
             folgendermaen definiert:
             struct fillsettingstype
              { int pattern;     /* Nummer des momentan gesetzten
                                    Musters */
                int color;       /* Farbe (0..15) */
              };
             Fr  pattern   sind  in   graphics.h  die  folgenden
             Bitmuster definiert:

             Name               Wert  Beschreibung
             --------------------------------------------------------
             EMPTY_FILL         0     Fllen mit der Hintergrundfarbe
             SOLID_FILL         1     Fllen mit der Farbe color
             LINE_FILL          2     ----------
             LTSLASH_FILL       3     //////////
             SLASH_FILL         4     //////////  mit dicken Linien
             BKSLASH_FILL       5     \\\\\  mit dicken Linien
             LTBKSLASH_FILL     6     \\\\\
             HATCH_FILL         7     leicht schraffiert
             XHATCH_FILL        8     stark schraffiert, berkreuzend
             INTERLEAVE_FILL    9     abwechselnde Linien
             WIDEDOT_FILL      10     Punkte, weit auseinander
             CLOSEDOT_FILL     11     Punkte, dicht nebeneinander
             USER_FILL         12     benutzerdefiniert
             --------------------------------------------------------
Ergebnis     getfillsettings hat kein direktes Ergebnis.
Beispiel     #include <graphics.h>
             #include <ext.h>
             main()
             {  int graphdriver = DETECT; /* automatische */
                int graphmode;              /* Erkennung */
                struct fillsettingstype save;
                char savepattern[8];
                char checkboard[] = { 0x0F, 0xF0, 0x0F, 0xF0,
                                      0x0F, 0xF0, 0x0F, 0xF0 };

                initgraph(&graphdriver, &graphmode, "");

                /* momentan gesetztes Muster ermitteln */
                getfillsettings(&save);
                                      /* Muster speichern */
                if (save.pattern == USER_FILL)
                                      /* benutzerdefiniert? */
                  getfillpattern(savepattern);
                                      /* -ja, Bitmuster lesen */
                setfillstyle(SLASH_FILL, BLUE);
                                      /* /////, blau */
                bar (0,0,100,100);    /* Balken zeichnen */

                setfillpattern(checkboard, YELLOW);
                                      /* eigenes Muster */
                bar (100,100,200,200);
                                      /* noch ein Balken */

                /* und das alte Muster wieder setzen */
                if (save.pattern == USER_FILL)
                  setfillpattern(savepattern, save.color);
                 else
                  setfillstyle(save.pattern, save.color);

                getch();
                closegraph();
             }
Portabilitt Diese Funktion ist lauffhig auf allen Systemen, die
             BGI untersttzen.
Gruppe       EZeichnen und FlchenfllungF
Querverweis  EarcF,    EfillpolyF,     EfloodfillF,     EgetfillpatternF,
             EsetfillstyleFName         get  graphics   mode  -   Liefert  den  Modus  der
             Grafikauflsung.

Definition   int getgraphmode(void);

Prototyp in  graphics.h

Beschreibung Bei  Monochrommonitoren   wird   grundstzlich   ein
             konstantes Ergebnis  2 zurckgegeben,  da es hierfr
             nur  einen  Auflsungsmodus  gibt  (hohe  Auflsung,
             STHIGH 640x400).
             Bei Farbmonitoren  liefert getgraphmode ein Ergebnis
             im Teilbereich  zwischen  0..1  zurck,  0  fr  die
             niedrige  Auflsung   (STLOW  300x200),  1  fr  die
             Mittlere (STMEDIUM 640x200).
Ergebnis     getgraphmode liefert die Nummer des momentan
             gesetzten Grafikmodus zurck.
Beispiel       currentmode = getgraphmode();  /* momentaner Modus
                                                 (int) */
               restorecrtmode();  /* Textmodus setzen */
               ...
               setgraphmode(currentmode);  /* zurck zur Grafik */
Portabilitt Auf allen  Systemen die  BGI untersttzen, ist diese
             Funktion lauffhig.
Gruppe       EKontrolleF
Querverweis  EinitgraphF, EsetgraphmodeFName         get   image    -   kopiert    einen   rechteckigen
             Bildausschnitt in einen Puffer.

Definition   void getimage(int  left, int  top,  int  right,
                           int bottom, void *bitmap);

Prototyp in  graphics.h

Beschreibung getimage kopiert  einen rechteckigen Bildausschnitt,
             dessen linke obere Ecke durch (left, top) und dessen
             rechte untere  Ecke durch (right, bottom) festgelegt
             ist, in  den durch bitmap spezifizierten Buffer. Die
             ersten beiden  16-Bit-Worte von  bitmap sind fr die
             Breite   und    Hhe   des   kopierten   Ausschnitts
             reserviert:
             breite = right - left + 1;
             hoehe = bottom - top + 1;
             bitmap  mu   also  vier  Bytes  mehr  Speicherplatz
             bieten, als fr die eigentlichen Bilddaten gebraucht
             wird.

Ergebnis     getimage hat kein direktes Funktionsergebnis.

Beispiel     #include <stdlib.h>
             #include <graphics.h>
             #include <ext.h>

             main()
             {  int graphdriver = DETECT, /* automatische */
                graphmode;                /* Erkennung */
                int maxx, x;
                unsigned long picsize;    /* Bildgre */
                void * picptr;       /* Zeiger fr den
                                        Bildausschnitt */

                initgraph(&graphdriver, &graphmode, "");
                maxx = getmaxx() / 4;    /* 1/4 des Schirms */

                for (x= 0; x<100; x++)  /* ein paar bunte Linien */
                 { setcolor(rand() % (getmaxcolor() + 1));
                   lineto(rand() % maxx, rand() % getmaxy());
                 }
                getch();
                           /* Bild "einfangen" */
                picsize = imagesize(0,0,maxx,getmaxy());
                                           /* Gre */
                picptr = malloc(picsize);  /* Speicherplatz */
                getimage(0,0,maxx,getmaxy(),picptr); /* Kopie */

                for (x = 1; x < 4; x++)  /* und drei Kopien davon */
                  putimage (x * maxx, 0, picptr, COPY_PUT);
                getch();
                closegraph();
             }

Portabilitt Diese Funktion ist kompatibel zu allen Systemen, die
             BGI untersttzen.

Gruppe       EZugriffe auf den Bildschirmspeicher und ZeichenfensterF

Querverweis  EimagesizeF, EputimageFName         get  line  settings  -  ermittelt  die  durch  den
             letzten Aufruf von EsetlinestyleF gesetzten Parameter.

Definition   void getlinesettings(struct linesettingstype
                                         *lineinfo);

Prototyp in  graphics.h

Beschreibung getlinesettings  ermittelt   die  momentan  gesetzte
             Linienart,  das   verwendete   Muster,   sowie   die
             Liniendicke und  speichert die Ergebnisse in der als
             lineinfo    bergebenen     Variablen.    Der    Typ
             linesettingstype ist  in  graphics.h  folgendermaen
             definiert:
             struct linesettingstype
              { int linestyle;       /* durchgezogen, gepunktet... */
                unsigned upattern;   /* "user pattern" */
                int thickness;       /* Dicke - 1 oder 3 Pixel */
              };
             Fr die  Linienart (linestyle)  definiert graphics.h
             mehrere Konstanten:

             Name    Wert  Beschreibung
             --------------------------------------------------------
             SOLID_LINE    0     durchgezogen
             DOTTED_LINE   1     gepunktet
             CENTER_LINE   2     Punkt Strich Punkt Strich...
             DASHED_LINE   3     gestrichelt
             USERBIT_LINE  4     benutzerdefiniert
             --------------------------------------------------------
             Fr die  Dicke einer Linie (thickness) sind nur zwei
             Werte mglich, die ebenfalls in graphics.h definiert
             sind:

             Name    Wert  Beschreibung
             --------------------------------------------------------
             NORM_WIDTH    1normale Dicke (1 Pixel)
             THICK_WIDTH   3dicke Dicke (3 Pixel)
             --------------------------------------------------------
Ergebnis     getlinesettings hat kein direktes Ergebnis.
Beispiel     struct linesettingstype save;
             int lkind, lpattern, lthickness;
             ...
             getlinesettings(&save);
             lkind      = save.linestyle;   /* Linienart (1..12) */
             lpattern   = save.pattern;     /* Bitmuster */
             lthickness = save.thickness;   /* Dicke (1 oder 3) */
             ...
Portabilitt Auf allen  Systemen die  BGI untersttzen, ist diese
             Funktion lauffhig.
Gruppe       EZeichnen und FlchenfllungF
Querverweis  EsetlinestyleF, EsetwritemodeFName         get   maximum   color   -   liefert   die   Anzahl
             verwendbarer Farben zurck.

Definition   int getmaxcolor(void);

Prototyp in  graphics.h

Beschreibung getmaxcolor liefert  die Anzahl  der Farben,  die im
             momentan  gesetzten   Grafikmodus  verwendet  werden
             knnen.
Ergebnis     Der zurckgelieferte  Wert entspricht  der Gre der
             Farb-Palette minus 1.
Portabilitt Auf allen  Systemen die  BGI untersttzen, ist diese
             Funktion lauffhig.
Gruppe       EFarbmanipulation und Farb-PalettenF
Querverweis  EgetbkcolorF, EgetcolorF, EgetpaletteFName         get maximum  graphics mode  - liefert  die  Anzahl
             verfgbarer Grafikmodi.

Definition   int getmaxmode(void);

Prototyp in  graphics.h

Beschreibung getmaxmode ermittelt  den maximal mglichen Wert fr
             graphmode (der normalerweise fr den Grafikmodus mit
             der hchsten Auflsung steht).
Ergebnis     Zurckgeliefert wird  ein Integer-Wert grer gleich
             0.
Portabilitt Diese Funktion ist kompatibel zu allen Systemen, die
             BGI untersttzen.
Gruppe       EKontrolleFName         get maximum  x coordinate  - liefert  die  maximal
             mgliche X-Koordinate des Bildschirms.

Definition   int getmaxx(void);

Prototyp in  graphics.h

Beschreibung getmaxx liefert  die maximal  mgliche  X-Koordinate
             des Bildschirms  zurck, d.h.  die X-Koordinate  des
             rechten Bildschirmrandes.  Das  Ergebnis  hngt  vom
             verwendeten Grafikmodus ab.
             Ergebnis ist  vom momentan verwendeten Grafikmodus
             abhngig.
             getmaxx  und   EgetmaxyF  ermglichen,  ein  Grafik-
             Programm unabhngig  von der Auflsung zu schreiben.
             Diese  beiden   Funktionen   sollten   grundstzlich
             anstelle von Konstanten verwendet werden.
Ergebnis     getmaxx   liefert  fr  die  momentan  definierten
             Grafiktreiber Ergebnisse im Bereich von 319..1023.
Portabilitt Diese Funktion ist lauffhig auf allen Systemen, die
             BGI untersttzen.
Gruppe       EKontrolleF
Querverweis  EgetviewsettingsF, EgetmaxyFName         get maximum  y [coordinate]  - liefert die maximal
             mgliche Y-Koordinate des Bildschirms.

Definition   int getmaxy(void);

Prototyp in  graphics.h

Beschreibung getmaxy liefert  die maximal  mgliche  Y-Koordinate
             des Bildschirms  zurck, d.h.  die Y-Koordinate  des
             unteren  Bildschirmrandes.   Das  Ergebnis  ist  vom
             momentan verwendeten Grafikmodus abhngig.
             EgetmaxxF und  getmaxy ermglichen  es, ein  Grafik-
             Programm unabhngig  von der Auflsung zu schreiben.
             Diese  beiden   Funktionen   sollten   grundstzlich
             anstelle von Konstanten verwendet werden.
Ergebnis     Mgliche Ergebnisse  von getmaxy  liegen im  Bereich
             von 199..767.
Portabilitt Diese Funktion ist lauffhig auf allen Systemen, die
             BGI untersttzen.
Gruppe       EKontrolleF
Querverweis  EgetviewsettingsF, EgetmaxxFName         get mode name - liefert den Namen eines Grafikmodi
             als String zurck.

Definition   char *getmodename(int mode_number);

Prototyp in  graphics.h

Beschreibung getmodename erwartet  die Nummer  eines  Grafikmodus
             als Parameter und liefert einen Zeiger auf den Namen
             dieses Modus zurck.
Portabilitt Diese Funktion ist kompatibel zu allen Systemen, die
             BGI untersttzen.
Gruppe       EKontrolleF
Querverweis  EgetgraphmodeF, EgetmaxmodeF, EgetmoderangeF, EgetdrivernameF,
             EinitgraphFName         get  mode   range  -   ermittelt   die   mglichen
             Grafikmodi fr einen Grafiktreiber.

Definition   void getmoderange(int graphdriver, int *lomode,
                                   int *himode);

Prototyp in  graphics.h

Beschreibung getmoderange    liefert    den    niedrigstmglichen
             Grafikmodus  fr  graphdriver  in  *lomode  und  den
             hchstmglichen  Modus   in  *himode   zurck.  Wenn
             graphdriver  einen   Wert  auerhalb  des  erlaubten
             Bereichs (siehe  EinitgraphF) enthlt,  werden *lomode
             und *himode auf -1 gesetzt.
             Hinweis: getmoderange  kann auch  dann  aufgerufen
             werden, wenn kein Grafikmodus gesetzt ist.
Ergebnis     getmoderange hat kein direktes Funktionsergebnis.
Portabilitt Diese Funktion ist kompatibel zu allen Systemen, die
             BGI untersttzen.
Gruppe       EKontrolleF
Querverweis  EgetgraphmodeF, EgetmaxmodeF, EinitgraphFName         get  palette  -  liefert  Informationen  ber  die
             momentan gesetzte Farb-Palette.

Definition   void getpalette(struct palettetype *palette);

Prototyp in  graphics.h

Beschreibung getpalette  liefert   die  Eintrge   der   momentan
             gesetzten Farb-Palette  und die  Gesamtgre  dieser
             Palette in  der als  palette  bergebenen  Variablen
             zurck. Der  Datentyp palettetype  ist in graphics.h
             folgendermaen definiert:
             #define MAXCOLORS 15
             struct palettetype
              { unsigned char size;     /* Anzahl der Eintrge */
                signed char colors[MAXCOLORS+1];  /* Paletten-
                                                     Eintrge */
              };
             Das Mitglied size enthlt die Anzahl der tatschlich
             benutzten Eintrge  des Arrays colors, sein Wert ist
             vom aktiven  Grafikmodus. Die  Elemente  von  colors
             (0..size-1) enthalten  die in  der  aktiven  Palette
             gespeicherten Bitmuster.
             Die folgenden  Konstanten sind  in graphics.h  fr
             Farb-Bitmuster definiert:

                   STLOW              STMEDIUM
             Name         Wert    Name        Wert
             --------------------------------------------------
             BLACK          0     BLACK         0
             BLUE           1     BLUE          1
             GREEN          2     GREEN         2
             CYAN           3     CYAN          3
             RED            4
             MAGENTA        5
             BROWN          6
             LIGHTGRAY      7
             DARKGRAY       8
             LIGHTBLUE      9
             LIGHTGREEN    10
             LIGHTCYAN     11
             LIGHTRED      12
             LIGHTMAGENTA  13
             YELLOW        14
             WHITE         15
             --------------------------------------------------------
Ergebnis     getpalette hat kein direktes Ergebnis.
Beispiel     #include <graphics.h>
             #include <ext.h>
             main()
             {  int graphdriver = DETECT, /* automatische */
                graphmode;                /* Erkennung */
                struct palettetype palette;
                int x,y;

                initgraph(&graphdriver, &graphmode, "");

                getpalette(&palette);
                for (x = 0; x <10; x++)  /* 10 Balken
                                            nebeneinander */
                  { setfillstyle(x, (x % 4) + 1);
                    bar(x * 60, 20, (x+1) * 60, 200);
                  }

                while (!kbhit())
                 { setpalette(rand() % palette.size, rand() %
                   64);
                   delay(300);  /* bunter Farbwechsel */
                 }

                /* Farb-Palette zurck aufs Original */
                setallpalette(getdefaultpalette());

                getch();
                closegraph();
             }
Portabilitt Auf allen  Systemen die  BGI untersttzen, ist diese
             Funktion lauffhig.
Gruppe       EFarbmanipulation und Farb-PalettenF
Querverweis  EgetbkcolorF,       EgetcolorF,       EgetdefaultpaletteF,
             EsetallpaletteF, EsetpaletteF, EsetrgbpaletteFName         get palette  size - liefert die Gre der momentan
             gesetzten Farb-Palette  zurck (d.h.  die Anzahl der
             Eintrge).

Definition   int getpalettesize(void);

Prototyp in  graphics.h

Beschreibung Mit getpalettesize  lt  sich  ermitteln,  wieviele
             Eintrge  die  Farb-Palette  im  momentan  gesetzten
             Grafikmodus enthlt.
Ergebnis     getpalettesize liefert  die Anzahl  der Eintrge als
             Integer zurck.
Portabilitt Diese Funktion ist lauffhig auf allen Systemen, die
             BGI untersttzen.
Gruppe       EFarbmanipulation und Farb-PalettenF
Querverweis  EsetpaletteFName         get pixel - liefert die Farbe eines Pixels zurck.

Definition   unsigned getpixel(int x, int y);

Prototyp in  graphics.h

Beschreibung getpixel liefert  die Farbe des Pixels auf dem durch
             (x,y) angegebenen Punkt zurck.
             Das von getpixel gelieferte Ergebnis steht fr die
             Nummer des  Paletteneintrags -  welche Farbe  diesem
             Eintrag zugeordnet  ist, wird  durch  das  Bitmuster
             festgelegt, das  in diesem  Eintrag der Farb-Palette
             gespeichert ist.
Ergebnis     getpixel  liefert   einen  Wert  im  Bereich  von  0
             (Hintergrund)..MAXCOLORS.
Beispiel     #include <graphics.h>
             #include <ext.h>
             #define NUMSTARS 1000
             main()
             {  int graphdriver = DETECT, /* automatische */
                graphmode;                /* Erkennung */
                int x,px,py,pc;

                initgraph(&graphdriver, &graphmode, "");

                srand(1);   /* Viele bunte Sterne */
                for (x= 0; x < NUMSTARS; x++)
                  { px = rand() % getmaxx(); py = rand() %
                    getmaxy();
                    pc = 1 + rand() % getmaxcolor();
                    putpixel(px, py, pc);
                  }
                while (!kbhit())  /* Farbwechsel der Sterne */
                 { srand(1);  /* Wieder denselben Startwert */
                   for (x = 0; x < NUMSTARS; x++)
                    { px = rand() % getmaxx(); py = rand() %
                      getmaxy();
                      pc = rand() % getmaxcolor();  /* Dummy! */
                      pc = getpixel(px,py);  /* Farbe ermitteln */
                      putpixel(px,py, 1 + (++pc % getmaxcolor()));
                    }
                 }

                getch();
                closegraph();
             }
Portabilitt Diese Funktion ist kompatibel zu allen Systemen, die
             BGI untersttzen.
Gruppe       EZugriffe auf den Bildschirmspeicher und ZeichenfensterF
Querverweis  EputpixelFName         get text settings - liefert Informationen ber die
             Parameter fr  folgende  Ausgaben  mit  EouttextF  und
             EouttextxyF.

Definition   void gettextsettings(struct textsettingstype
                                         *texttypeinfo);

Prototyp in  graphics.h

Beschreibung gettextsettings ermittelt  die mit  EsettextstyleF und
             EsettextjustifyF gesetzten  Parameter und  liefert sie
             in der als *textinfo bergebenen Variablen zurck.
             Der Strukturtyp textsettingstype und die mglichen
             Werte  seiner   Komponenten   sind   in   graphics.h
             folgendermaen definiert:
             struct textsettingstype
              { int font;        /* Nummer des aktiven
                                    Zeichensatzes */
                int direction;   /* horizontal oder vertikal */
                int charsize;    /* Vergrerungsfaktor */
                int horiz;       /* Justierung horizontal */
                int vert;        /* Justierung vertikal */
              };
             Die Komponenten  horiz und vert geben an, in welcher
             Weise Textausgaben  relativ zur  momentanen Position
             des Grafik-Cursors  (bzw. des zusammen mit EouttextxyF
             angegebenen Punktes) justiert werden:

             Name        Wert  Beschreibung
             --------------------------------------------------------
             LEFT_TEXT     0   linksbndig (horiz)
             CENTER_TEXT   1   mittenzentriert (horiz und vert)
             RIGHT_TEXT    2   rechtsbndig (horiz)
             BOTTOM_TEXT   0   Cursorposition = Grundlinie (vert)
             TOP_TEXT      2   CP = oberer Abschlu (vert)
             --------------------------------------------------------
             Hinweis:  Die   Formatierungsmglichkeiten  sind  im
             Abschnitt EsettextjustifyF ausfhrlich beschrieben.
             Es  stehen   fnf  verschiedene   Zeichenstze   zur
             Verfgung,  fr   die   graphics.h   die   folgenden
             Konstanten definiert:

             Name          Wert  Beschreibung
             --------------------------------------------------------
             DEFAULT_FONT    0   8 * 16 Bit pixelweise (Standard)
             TRIPLEX_FONT    1   Vektor-Zeichensatz Triplex
             SMALL_FONT      2   kleiner Vektor-Zeichensatz
             SANSSERIF_FONT  3   Vektor-Zeichensatz Sans serif
             GOTHIC_FONT     4   Vektor-Zeichensatz Gothic
             --------------------------------------------------------
             Der pixelweise definierte Zeichensatz (DEFAULT_FONT)
             ist Teil  des Grafikpakets  und immer verfgbar. Die
             anderen  Zeichenstze   sind  in  separaten  Dateien
             (*.CHR) gespeichert  und  knnen  entweder  als  .O-
             Dateien   eingebunden    und   via   EregisterbgifontF
             registriert oder  durch  EsettextstyleF  bei  Bedarf
             nachgeladen werden.
             Der Wert  von direction gibt an, ob Textausgaben von
             links nach  rechts (d.h.  horizontal) oder von unten
             nach oben  (d.h. in  vertikaler Richtung)  erfolgen.
             Mgliche Werte fr direction sind:

             Name        Wert  Beschreibung
             --------------------------------------------------------
             HORIZ_DIR     0   von links nach rechts (Standard)
             VERT_DIR      1   Ausgabe von unten nach oben
             --------------------------------------------------------
             charsize legt  den Vergrerungsfaktor  (0..10)  fr
             Textausgaben  fest.   Eine   Kltzchenvergrerung
             (d.h. Faktor 1: 1 Pixel pro Punkt, Faktor 2: 4 Pixel
             pro Punkt  usw.)  ergibt  sich  dabei  nur  fr  den
             Standard-Zeichensatz.
             Der Vergrerungsfaktor 0, fr den in graphics.h
             die Konstante USER_CHAR_SIZE definiert ist, wird auf
             spezielle Weise  behandelt:  EouttextF  und  EouttextxyF
             verwenden hier  entweder den  durch  EsetusercharsizeF
             vorgegebenen    Vergrerungsfaktor     oder     den
             Standardwert  1,   wenn  EsetusercharsizeF  zu  diesem
             Zeitpunkt noch nicht aufgerufen wurde.
Ergebnis     gettextsettings hat kein direktes Ergebnis.
Beispiel     #include <graphics.h>
             #include <ext.h>
             main()
             {
                int graphdriver = DETECT, /* automatische */
                graphmode;                /* Erkennung */
                int x,y;
                char msg[20];

                initgraph(&graphdriver, &graphmode, "");

                for (x = 1, y = 10; x < 10; x+= 2)
                 { sprintf(msg, "Faktor %d", x);
                   settextstyle(GOTHIC_FONT, HORIZ_DIR, x);
                   outtextxy(0,y, msg);
                   y += textheight(msg);
                 }
                getch();
                closegraph();
             }
Portabilitt Diese Funktion ist lauffhig auf allen Systemen, die
             BGI untersttzen.
Gruppe       Egrafische TextausgabeF
Querverweis  EregisterbgifontF, EsettextjustifyF, EsettextstyleF,
             EsetusercharsizeF, EtextheightF, EouttextF, EouttextxyFName         get viewport settings - liefert Informationen ber
             das momentan gesetzte Zeichenfenster.

Definition   void getviewsettings(struct viewporttype *viewport);

Prototyp in  graphics.h

Beschreibung getviewsettings liefert  die  Grenzen  des  momentan
             gesetzten Zeichenfensters  und das  Flag der Clip-
             Funktion in  der als  viewport bergebenen Variablen
             zurck.  Der   Strukturtyp   viewporttype   ist   in
             graphics.h folgendermaen definiert:
             struct viewporttype
              { int left, top,        /* obere linke und     */
                    right, bottom;    /* untere rechte Ecke  */
                int clipflag;         /* Clip-Funktion an/aus */
              };
Ergebnis     getviewsettings hat kein direktes Ergebnis.
Beispiel     siehe EsetviewportF
Portabilitt Diese Funktion ist lauffhig auf allen Systemen, die
             BGI untersttzen.
Gruppe       EZugriffe auf den Bildschirmspeicher und ZeichenfensterF
Querverweis  EclearviewportF, EsetviewportFName         get x  coordinate -  liefert die  X-Koordinate des
             Grafik-Cursors.

Definition   int getx(void);

Prototyp in  graphics.h

Beschreibung getx  liefert   die  X-Koordinate   der   momentanen
             Position des Grafik-Cursors.
Ergebnis     Die von getx zurckgelieferte Koordinate ist relativ
             zum Ursprung  des momentanen  Zeichenfensters - nach
             einer Befehlsfolge wie
             setviewport(20, 10, 60, 20, 0);  /* linke Ecke:
                                                 (20,10) */
             clearviewport();        /* lscht das Fenster, setzt
                                        den Cursor in die obere
                                        linke Ecke */
             liefert getx also das Ergebnis 0.
Beispiel     #include <graphics.h>
             #include <ext.h>

             main()
             {  int graphdriver = DETECT, /* automatische */
                graphmode;                /* Erkennung */
                int xsave,ysave;

                initgraph(&graphdriver, &graphmode, "");
                moveto(40,40); outtext("Ein ");
                xsave = getx(); ysave = gety();  /* Position
                                                    speichern */

                moveto(100,100); lineto(200,100);
                outtext("Hier sind wir jetzt.");
                getch();
                moveto(xsave, ysave);  /* alte Position wieder
                                          setzen */
                outtext("Text.");

                getch();
                closegraph();
             }
Portabilitt Auf allen  Systemen die  BGI untersttzen, ist diese
             Funktion lauffhig.
Gruppe       EZugriffe auf den Bildschirmspeicher und ZeichenfensterF
Querverweis  EgetviewsettingsF, EgetyF, EinitgraphF, EmovetoFName         get y  [coordinate] - liefert die Y-Koordinate des
             Grafik-Cursors.

Definition   int gety(void);

Prototyp in  graphics.h

Beschreibung gety  liefert   die  Y-Koordinate   der   momentanen
             Position des Grafik-Cursors.
Ergebnis     Die von gety zurckgelieferte Koordinate ist relativ
             zum Ursprung  des momentanen  Zeichenfensters - nach
             einer Befehlsfolge wie
             setviewport(20, 10, 60, 20, 0);  /* linke Ecke:
                                                 (20,10) */
             clearviewport();        /* lscht das Fenster, setzt
                                        den Cursor in die obere
                                        linke Ecke */
             liefert gety den Wert 0.
Beispiel     siehe getx
Portabilitt Diese Funktion ist lauffhig auf allen Systemen, die
             BGI untersttzen.
Gruppe       EZugriffe auf den Bildschirmspeicher und ZeichenfensterF
Querverweis  EgetviewsettingsF, EgetxF, EinitgraphF, EmovetoFName         graphics defaults  - setzt smtliche Parameter des
             Grafikpakets auf die Standardvorgaben zurck.

Definition   void graphdefaults(void);

Prototyp in  graphics.h

Beschreibung graphdefaults setzt die Standardvorgaben fr
             -  das Zeichenfenster (auf den gesamten Bildschirm);
             -  den Grafik-Cursor (Punkt (0,0));
             -  den  Hintergrund   (schwarz),  die   Zeichenfarbe
                (MAXCOLOR) und die Farb-Palette;
             -  Flchenfllungen (SOLID_FILL, MAXCOLOR);
             -  und Textausgaben  (DEFAULT_FONT,  HORIZ_DIR,  1),
                wobei der Wert 1 den Standard-Vergrerungsfaktor
                darstellt.
             Der Inhalt des Bildschirms bleibt unverndert.
Ergebnis     graphdefaults hat kein direktes Funktionsergebnis.
Portabilitt Diese Funktion ist kompatibel zu allen Systemen, die
             BGI untersttzen.
Gruppe       EKontrolleF
Querverweis  EinitgraphF, EgetgraphmodeFName         graphics error  message -  liefert den  Text einer
             Fehlermeldung des Grafikpakets.

Definition   char *grapherrormsg(int errorcode);

Prototyp in  graphics.h

Beschreibung grapherrormsg  liefert   einen  Zeiger   auf   einen
             statischen String  zurck, der  den Text  zu dem als
             errorcode  bergebenen   Fehlerstatus  enthlt,  und
             erspart so  dem Programmierer die Definition eigener
             Fehlermeldungen.
Ergebnis     grapherrormsg  liefert   einen  Zeiger   auf   einen
             statischen String  mit dem  Text  der  dazugehrigen
             Meldung.
Beispiel     #include <graphics.h>
             #include <ext.h>

             main()
             {
                int graphdriver = DETECT, /* automatische */
                graphmode;                /* Erkennung */
                int errcode;
                initgraph(&graphdriver,
                          &graphmode, "###"); /* Suchweg ungltig */

                errcode = graphresult();
                if (errcode)
                  { restorecrtmode();
                    printf("Grafikfehler: %s\n", grapherrormsg(errcode));
                    exit(1);
                  }

                /* Fr diese Demonstration nur der
                   Vollstndigkeit halber */
                getch();
                closegraph();
             }
Portabilitt Auf allen  Systemen die  BGI untersttzen, ist diese
             Funktion lauffhig.
Gruppe       EFehlerbehandlungF
Querverweis  EinitgraphF, EgraphresultFName         graphics free  memory - vom Grafikpaket verwendete
             Routine  zur   Freigabe   von   dynamisch   belegtem
             Speicherplatz.

Definition   void _graphfreemem(void *ptr, unsigned size);

Prototyp in  graphics.h

Beschreibung _graphfreemem gibt  ber den  Aufruf von  free einen
             dynamisch belegten  Bereich von  size  Bytes  wieder
             frei, auf den der als ptr bergebene Zeiger zeigt.
             Die   Routine    des   Grafikpakets   rufen   free
             ausschlielich ber  diese Funktion  auf,  die  sich
             durch eine  eigene Version  ersetzen lat, damit hat
             der Programmierer  die Kontrolle ber die dynamische
             Speicherverwaltung der Grafik.
             Hinweis: Die  Deklaration von Ersatzroutinen fr
             _graphfreemem mu  exakt in  der unter  Definition
             gezeigten Form geschehen.
Ergebnis     _graphfreemem hat kein direktes Funktionsergebnis.
Beispiel     #include <graphics.h>
             #include <ext.h>
             #include <stdio.h>

             main()
             {  int graphdriver = DETECT, /* automatische */
                graphmode;                /* Erkennung */
                initgraph(&graphdriver, &graphmode, "");
                settextstyle(GOTHIC_FONT, HORIZ_DIR, 4);
                outtextxy(100, 100, "Textausgabe");
                getch();
                closegraph();
             }
             void *_graphgetmem(unsigned size)
             {
               printf("Aufruf _graphgetmem: %d Bytes\n", size);
               getch();
               return(malloc(size));
             }

             void _graphfreemem(void *ptr, unsigned size)
             {
               printf("Aufruf _graphfreemem: %d Bytes\n", size);
               getch();
               free(ptr);
             }
Portabilitt Diese Funktion ist lauffhig auf allen Systemen, die
             BGI untersttzen.
Gruppe       EKontrolleF
Querverweis  EsetgraphbufsizeF, E_graphgetmemFName         graphics get  memory -  vom Grafikpaket verwendete
             Routine zur dynamischen Belegung von Speicherplatz.

Definition   void *_graphgetmem(unsigned size);

Prototyp in  graphics.h

Beschreibung _graphgetmem belegt  ber den Aufruf von malloc size
             Bytes auf  dem Heap  und liefert  einen  Zeiger  auf
             diesen Bereich zurck.
             Die  Routine   des   Grafikpakets   rufen   malloc
             ausschlielich ber  diese beide  Funktion auf,  die
             sich durch  eine eigene Version ersetzen lt, damit
             hat  der   Programmierer  die   Kontrolle  ber  die
             dynamische Speicherverwaltung der Grafik.
             Hinweis: Die  Deklaration von Ersatzroutinen fr
             _graphgetmem mu  exakt in  der  unter  Definition
             gezeigten Form geschehen.
Ergebnis     _graphgetmem liefert  einen untypisierten Zeiger auf
             die  Startadresse   des   belegten   Speicherplatzes
             zurck.
Beispiel     siehe E_graphfreememF
Portabilitt Auf allen  Systemen die  BGI untersttzen, ist diese
             Funktion lauffhig.
Gruppe       EKontrolleF
Querverweis  EsetgraphbufsizeF, E_graphfreememFName         graphics result  - liefert  den  Fehlerstatus  der
             letzten Grafikoperation zurck.

Definition   int graphresult(void);

Prototyp in  graphics.h

Beschreibung Das Grafikpaket  hat  einen  Status,  der  bei  I/O-
             Operationen (d.h.  Laden von Grafiktreibern und Zei-
             chenstzen)  sowie  durch  Flchenfllungen  gesetzt
             wird. Dieser  Status kann  mit graphresult abgefragt
             werden:  der   Wert  0   steht   fr   fehlerfreie
             Ausfhrung, Werte kleiner 0 zeigen einen Fehler an.
             Der  Statuscode   wird  durch  Zeichenbefehle  wie
             ElinetoF nicht beeinflut:
              /* Status durch Aufruf von settextstyle gesetzt */
              settextstyle(GOTHIC_FONT, HORIZ_DIR, 1);
              setviewport(0,0,getmaxx(),getmaxy(),0);  /*
              unverndert */
              lineto(100,100);      /* unverndert */
              floodfill(10,10,RED);  /* Status wird neu gesetzt */
             Der Aufruf  von  graphresult  setzt  den  Statuscode
             automatisch auf  0  zurck.  Mehrere  Prfungen  des
             Statuscodes  mssen   deshalb  ber  eine  temporre
             Variable geschehen:
             int errcode;

             main()
             { int errcode;
               ...

               errcode = graphresult();  /* Lesen und
                                            Zwischenspeichern */
               if (errcode)
                 {
                   printf("Fehler %s\n", grapherrormsg(errcode));
                   exit(1);
                 }
               ...

             Die  folgenden   Fehlercodes  und   Meldungen   sind
             definiert:

             Name       Wert Text/Beschreibung
             --------------------------------------------------------
             grOk               0 No error - fehlerfreie Ausfhrung
             grNoInitGraph     -1 (BGI) graphics not installed (use
                                  initgraph) - Grafiktreiber nicht
                                  initialisiert - initgraph mu zuerst
                                  aufgerufen werden
             grNotDetected     -2 Graphics hardware not detected -
                                  kein grafikfhiger Adapter vorhanden/
                                  gewnschter Modus wird nicht untersttzt
             grNoLoadMem       -5 Not enough memory to load driver - nicht
                                  genug Speicherplatz fr den
                                  Grafiktreiber
             grNoScanMem       -6 Out of memory in scan fill - nicht genug
                                  Speicherplatz (bar, fillpoly)
             grNoFloodMem      -7 Out of memory in flood fill - nicht
                                  genug Speicherplatz (floodfill)
             grFontNotFound    -8 Font file not found -
                                  Zeichensatzdatei nicht gefunden
             grNoFontMem       -9 Not enough memory to load font - nicht
                                  genug Speicherplatz fr den Zeichensatz
             grError          -11 Generic Error - nicht nher
                                  klassifizierbarer Fehler
             grIOerror        -12 Graphics I/O error - Ein-/Ausgabefehler
                                  beim Laden von Dateien
             grInvalidFont    -13 Invalid font file - keine
                                  Zeichensatz-Datei (falsche Version,
                                  Datei zerstrt...)
             grInvalidFontNum -14 Invalid font file number -
                                  Kennziffer fr Zeichensatz nicht
                                  definiert
             --------------------------------------------------------
Ergebnis     graphresult liefert  den momentanen  Statuscode  des
             Grafikpakets (mgliche Werte von -0 bis -14).
Beispiel     siehe EgrapherrormsgF
Portabilitt Diese Funktion ist lauffhig auf allen Systemen, die
             BGI untersttzen.
Gruppe       EKontrolleF
Querverweis  EinitgraphF, EgrapherrormsgFName         image   size   -   berechnet   die   Gre   einer
             Puffervariablen    zur     Speicherung    grafischer
             Bildausschnitte.

Definition   unsigned long imagesize(int left, int top, int right,
                                int bottom);

Prototyp in  graphics.h

Beschreibung imagesize berechnet  die Anzahl  von Bytes,  die zur
             Speicherung  eines   Bildausschnitts  mit   EgetimageF
             bentigt  werden   (und  bercksichtigt   die   vier
             Extrabytes fr die Hhe und Breite des Rechtecks):
              pixelzahl = breite * hoehe;
              bytezahl = (pixelzahl * bits_pixel) / 8;
             bits_pixel steht  hier fr  die Anzahl von Bits, die
             zur Speicherung eines einzelnen Punktes erforderlich
             sind.
Beispiel     siehe EgetimageF
Portabilitt Diese Funktion ist kompatibel zu allen Systemen, die
             BGI untersttzen.
Gruppe       EZugriffe auf den Bildschirmspeicher und ZeichenfensterF
Querverweis  EgetpixelF, EgetimageFName         initialize   graphics    -    initialisiert    das
             Grafikpaket und setzt einen Grafikmodus.

Definition   void  initgraph(int  *graphdriver,  int  *graphmode,
                             char *pathtodriver);

Prototyp in  graphics.h

Beschreibung initgraph   initialisiert    das   Grafikpaket   via
             EgraphdefaultsF und  schaltet in  den Grafikmodus  mit
             der hchstmglichen Auflsung. Graphdriver  gibt  an
             Welcher  Treiber verwendet wird.  Graphmode die Auf-
             lsung.  Pathtodriver gibt den Pfad an unter dem die 
             Treiber und Fontdateien gesucht werden.
Ergebnis     initgraph hat kein direktes Funktionsergebnis
Portabilitt Diese Funktion ist lauffhig auf allen Systemen, die
             BGI untersttzen.
Gruppe       EKontrolleF
Querverweis  EdetectgraphFName         install  unser   driver  -  zur  Installation  von
             Grafiktreibern,  die   nicht  direkt   von   Borland
             angeboten werden.

Definition   int   installuserdriver(char *name, int (*detect)(void));

Prototype in graphics.h

Beschreibung Die Funktion installuserdriver installiert einen
             neuen BGI-Treiber. Der Dateiname des Treibers mu
             im Parameter name stehen (die Angabe der Endung
             .BGI ist nicht notwendig). detect ist ein Zeiger
             auf eine parameterlose Funktion, die einen Grafik-
             modus (vom Typ int) fr den Treiber zurckgibt oder
             einen Fehlercode (z.B. grError ).
             Falls es keine Funktion zur Feststellung von Grafik-
             hardware gibt, kann fr detect auch 0 bergeben
             werden.
             installuserdriver liefert als Ergebnis den Fehler-
             code grError, falls keine weiteren Treiber mehr
             installiert werden knnen, oder eine Kennummer fr
             den Treiber.

Beispiel     #include <stdio.h>
             #include <stdlib.h>
             #include <graphics.h>

             int  DetectWhatEver( void )
             {
                 /* recommended graphics mode: */
                 return( 2 );
             }
 
             int  main( void )
             {
                 int  driver, mode;

                 driver = installuserdriver( "WHATEVER", DetectWhatEver );
                 if ( driver == grError )
                      exit( 1 );
                 driver = DETECT;
                 initgraph( &driver, &mode, "" );
                 outtextxy( 50, 50, "This is the WHATEVER driver!" );
                 getchar( );
                 closegraph( );
                 return( 0 );
             }

Portabilitt Diese Funktion ist lauffhig auf allen Systemen, die
             BGI untersttzen.

Gruppe       EKontrolleF

Querverweis  EinstalluserfontFName         install user  font -  zur Installation von Vektor-
             Zeichenstzen,  die   nicht   direkt   von   Borland
             angeboten werden.

Definition   int installuserfont(char *name);

Prototyp in  graphics.h

Beschreibung Mit installuserfont  kann das Grafikpaket um Vektor-
             Zeichenstze erweitert  werden, die  sich  nach  der
             Installation wie  die  Standard-Zeichenstze  ber
             EsettextstyleF aktivieren lassen.
             Die Funktion erwartet als Parameter name den Namen
             des Zeichensatzes,  der auch  unter diesem Namen als
             *.CHR-Datei charakterisiert ist.
             installuserfont  prft  die  als  name  angegebene
             Datei (wobei  die Endung  .CHR automatisch angehngt
             wird) und  liefert einen  Integer als  Ergebnis, der
             von   EsettextstyleF   als   Kennziffer   fr   diesen
             Zeichensatz verwendet werden kann.
             Mit   installuserfont    knnen   maximal    zwanzig
             zustzliche   Zeichenstze    in   einem    Programm
             installiert werden.
Ergebnis     installuserfont liefert einen Integer zurck, der im
             weiteren  Programmverlauf  als  Kennziffer  fr  den
             entsprechenden Zeichensatz  interpretiert wird. Wenn
             die  Zeichensatz-Tabelle   des  Grafikpakets  keinen
             weiteren Eintrag  mehr aufnehmen  kann, liefert  die
             Funktion das Ergebnis grError (d.h. den Wert -11).
Portabilitt Diese Funktion ist lauffhig auf allen Systemen, die
             BGI untersttzen.
Gruppe       EKontrolleF
Querverweis  EinstalluserdriverFName         line - zeichnet eine Linie.

Definition   void line(int x0, int y0, int x1, int y1);

Prototyp in  graphics.h

Beschreibung line  verwendet   die  mit   EsetlinestyleF   gesetzte
             Linienart,  -dicke   und  -farbe   sowie   den   mit
             EsetwritemodeF festgelegten  Schreibmodus (Copy oder
             XOR).
             line zeichnet  eine Linie  vom Punkt  (x0,y0)  zum
             Punkt  (x1,y1),  ohne  den  Grafik-Cursor  dabei  zu
             bewegen.
Ergebnis     line hat kein direktes Ergebnis.
Portabilitt Auf allen  Systemen die  BGI untersttzen, ist diese
             Funktion lauffhig.
Gruppe       EZeichnen und FlchenfllungF
Querverweis  ElinerelF, ElinetoF, EsetlinestyleF, EsetwritemodeFName         line relative  - zeichnet  eine Linie  relativ zur
             momentanen Position des Grafik-Cursors.

Definition   void linerel(int dx, int dy);

Prototyp in  graphics.h

Beschreibung linerel  verwendet  die  mit  EsetlinestyleF  gesetzte
             Linienart,  -dicke   und  -farbe   sowie   den   mit
             EsetwritemodeF festgelegten  Schreibmodus (Copy oder
             XOR).
             linerel interpretiert  die als  dx, dy bergebenen
             Werte  als   relative  Entfernung   zur   momentanen
             Position  des   Grafik-Cursors.  Die  durch  linerel
             ausgefhrte Operation ist mit den folgenden Befehlen
             identisch:
             xZiel = getx() + dx;  /* momentane X-Position plus
                                      dx */
             yZiel = gety() + dy;  /* momentane Y-Position plus
                                      dy */
             lineto(xZiel, yZiel);
             Wie bei  lineto bleibt  der Grafik-Cursor danach auf
             dem Endpunkt der Linie stehen.
Ergebnis     linerel hat kein direktes Ergebnis.
Portabilitt Diese Funktion ist kompatibel zu allen Systemen, die
             BGI untersttzen.
Gruppe       EZeichnen und FlchenfllungF
Querverweis  ElineF, ElinetoF, EsetlinestyleF, EsetwritemodeF,
             ElinerelFName         line to  - zeichnet  eine Linie von der momentanen
             Position des Grafik-Cursors zum angegebenen Punkt.

Definition   void lineto(int x, int y);

Prototyp in  graphics.h

Beschreibung lineto  verwendet   die  mit  EsetlinestyleF  gesetzte
             Linienart,  -dicke   und  -farbe   sowie   den   mit
             EsetwritemodeF festgelegten  Schreibmodus (Copy oder
             XOR).
             lineto zeichnet  eine  Linie  von  der  momentanen
             Position des  Grafik-Cursors zum  Punkt  (x,y).  Der
             Grafik-Cursor bleibt  danach  auf  dem  Punkt  (x,y)
             stehen.
Ergebnis     lineto hat kein direktes Ergebnis.
Portabilitt Diese Funktion ist lauffhig auf allen Systemen, die
             BGI untersttzen.
Gruppe       EZeichnen und FlchenfllungF
Querverweis  ElineF, ElinerelF, EsetlinestyleF, EsetwritemodeFName         move relative  - bewegt  den Grafik-Cursor relativ
             zu seiner momentanen Position.

Definition   void moverel(int dx, int dy);

Prototyp in  graphics.h

Beschreibung moverel interpretiert  die als  dx,  dy  bergebenen
             Werte als  relativen Abstand zur momentanen Position
             und entspricht den folgenden Befehlen:
              xZiel = getx() + dx;   /* momentane X-Position plus
                                        dx */
              yZiel = gety() + dy;   /* momentane Y-Position plus
                                        dy */
              moveto(xZiel, yZiel);
             moverel  arbeitet   relativ   zu   einem   eventuell
             gesetzten Zeichenfenster.
Ergebnis     moverel liefert keinen Wert zurck.
Portabilitt Diese Funktion ist lauffhig auf allen Systemen, die
             BGI untersttzen.
Gruppe       EZeichnen und FlchenfllungF
Querverweis  ElineF, EmovetoFName         move  to  -  setzt  den  Grafik-Cursor  auf  einen
             bestimmten Punkt.

Definition   void moveto(int x, int y);

Prototyp in  graphics.h

Beschreibung moveto setzt den Grafik-Cursor auf den Punkt (x,y).
             moveto arbeitet relativ zu einem eventuell gesetzten
             Zeichenfenster.
Ergebnis     moveto hat kein direktes Ergebnis.
Portabilitt Auf allen  Systemen die  BGI untersttzen, ist diese
             Funktion lauffhig.
Gruppe       EZeichnen und FlchenfllungF
Querverweis  ElineF, EmoverelFName         out text  - gibt  Text ab  der momentanen Position
             des Grafik-Cursors aus.

Definition   void outtext(char *textstring);

Prototyp in  graphics.h

Beschreibung outtext gibt  den als  textstring bergebenen String
             ab der  momentanen Position  des Grafik-Cursors aus.
             Ein automatischer  Umbruch wie  im Textmodus  findet
             nicht  statt:   Ausgaben,  die  ber  den  Rand  des
             Bildschirms    bzw.     des    momentan    gesetzten
             Zeichenfensters   hinausgehen    wrden,   schneidet
             outtext einfach ab.
             outtext benutzt  die Schriftart  und Formatierung,
             die durch EsettextstyleF (Schriftart, Rotation, Gre)
             und    EsettextjustifyF    (linksbndig,    zentriert,
             rechtsbndig) vorgegeben ist. Damit das Programm bei
             einem  Wechsel   der  Schriftart  und  -gre  nicht
             modifiziert  werden   mu,  sollte  der  Platzbedarf
             auszugebender  Strings   immer  ber  EtextwidthF  und
             EtextheightF berechnet werden.
             Solange  nicht   mit  Rotation   gearbeitet  wird,
             verndert  outtext  die  X-  und  Y-Komponenten  des
             Grafik-Cursors  abhngig   von  der   Justierung  in
             folgender Weise:
             -  alle  Kombinationen   mit   LEFT_TEXT   fr   die
                horizontale Formatierung:
              GCX += textwidth(textstring);
              GCY += 0;    /* unverndert */
Ergebnis     outtext liefert einen Wert zurck.
Beispiel     #include <graphics.h>
             #include <ext.h>

             main()
             {  int graphdriver = DETECT, /* automatische */
                graphmode;                /* Erkennung */

                initgraph(&graphdriver, &graphmode, "");

                /* Markiert die Startposition des Cursors */
                settextjustify(CENTER_TEXT, TOP_TEXT);
                moveto(200,100); outtext("Start");
                moveto(200,100); lineto(200,50);

                /* Die "Experimentierzeile" */
                settextjustify(LEFT_TEXT, BOTTOM_TEXT);

                outtext("Eine Textzeile");

                /* Markiert die Endposition des Cursors */
                settextjustify(CENTER_TEXT, TOP_TEXT);
                lineto(400,100); outtext("Ende");

                getch();
                closegraph();
             }
Portabilitt Auf allen  Systemen die  BGI untersttzen, ist diese
             Funktion lauffhig.
Gruppe       Egrafische TextausgabeF
Querverweis  EgettextsettingsF,     EsettextjustifyF,     EtextheightF,
             EouttextxyFName         out text  at x/y  - grafische Textausgabe ab einem
             bestimmten Punkt.

Definition   void outtextxy(int x, int y, char *textstring);

Prototyp in  graphics.h

Beschreibung outtextxy gibt den als textstring bergebenen String
             ab der  Position (x,y) aus. Die Position des Grafik-
             Cursors wird dabei nicht verndert.
Ergebnis     outtextxy hat kein direktes Ergebnis.
Beispiel     siehe EouttextF
Portabilitt Diese Funktion ist lauffhig auf allen Systemen, die
             BGI untersttzen.
Gruppe       Egrafische TextausgabeF
Querverweis  EgettextsettingsF, EsettextjustifyF, EtextheightF, EouttextFName         pie   slice    -   zeichnet    ein    ausgeflltes
             Kuchenstck.

Definition   void pieslice(int x, int y, int stangle, int endangle,
                           int radius);

Prototyp in  graphics.h

Beschreibung pieslice  zeichnet   ein  Kreisbogenstck   in   der
             momentan gesetzten  Zeichenfarbe, dessen Mittelpunkt
             durch  (x,y)   angegeben  ist;   stangle  legt   den
             Startpunkt  des  mit  radius  gezogenen  Kreisbogens
             fest,  endangle   sein  Ende.   Die  Endpunkte   des
             Kreisbogens   werden    mit   dem   Kreismittelpunkt
             verbunden, danach  fllt  pieslice  das  entstandene
             Kuchenstck  mit  dem  durch  EsetfillpatternF  bzw.
             EsetfillstyleF festgelegten  Muster (und  in der  dort
             angegebenen Farbe).
Ergebnis     pieslice hat  kein direktes  Ergebnis. Wenn  whrend
             der Ausfhrung  ein  Fehler  auftritt,  liefert  der
             nchste Aufruf von EgraphresultF den Wert grNoScanMem.
Beispiel     siehe EarcF
Portabilitt Diese Funktion ist lauffhig auf allen Systemen, die
             BGI untersttzen.
Gruppe       EZeichnen und FlchenfllungF
Querverweis  EarcF, EcircleF,  EellipseF,  EfillellipseF,  EgetarccoordsF,
             EsectorFName         put image  -  kopiert  den  Inhalt  eines  Puffers
             bitweise in einen rechteckigen Bildausschnitt, wobei
             logische  Verknpfungen   mit  dem   Inhalt   dieses
             Ausschnitts mglich sind.

Definition   void putimage(int x, int y, void *bitmap, int op);

Prototyp in  graphics.h

Beschreibung putimage   kopiert    einen   zuvor   mit   EgetimageF
             gespeicherten Bildausschnitt,  wobei (left,top)  die
             obere linke  Ecke des  Zielbereichs festlegt.  Fr
             den Parameter  op sind  die folgenden  Konstanten in
             graphics.h definiert:

             Name    Wert  Beschreibung
             --------------------------------------------------------
             COPY_PUT  0   Kopie (berschreiben des Zielbereichs)
             XOR_PUT   1   XOR-Operation mit dem Zielbereich
             OR_PUT    2   OR-Operation
             AND_PUT   3   AND-Operation
             NOT_PUT   4   NOT-Operation und berschreiben
             --------------------------------------------------------
Ergebnis     putimage hat kein direktes Funktionsergebnis.
Beispiel     siehe EgetimageF
Portabilitt Auf allen  Systemen die  BGI untersttzen, ist diese
             Funktion lauffhig.
Gruppe       EZugriffe auf den Bildschirmspeicher und ZeichenfensterF
Querverweis  EgetimageF, EimagesizeFName         put  pixel   -  zeichnet   einen  Punkt   auf  den
             angegebenen Koordinaten.

Definition   void putpixel(int x, int y, int pixelcolor);

Prototyp in  graphics.h

Beschreibung putpixel zeichnet  einen Punkt  mit der  Farbe color
             auf dem Punkt (x,y).
Ergebnis     putpixel hat kein Funktionsergebnis.
Beispiel     siehe EgetpixelF
Portabilitt Diese Funktion ist kompatibel zu allen Systemen, die
             BGI untersttzen.
Gruppe       EZugriffe auf den Bildschirmspeicher und ZeichenfensterF
Querverweis  EgetpixelFName         rectangle - zeichnet ein Rechteck.

Definition   void rectangle(int  left, int  top, int  right,
                            int bottom);

Prototyp in  graphics.h

Beschreibung rectangle zeichnet  ein Rechteck, dessen obere linke
             Ecke durch (left, top) und dessen untere rechte Ecke
             durch (right,  bottom)  festgelegt  ist,  wobei  die
             durch EsetlinestyleF gesetzten Parameter (Linienart, -
             dicke und -farbe) verwendet werden.
             Fr  die   Eckpunkte  des   Rechtecks  gelten  die
             folgenden Beziehungen:
              0 <= left <= right <= getmaxx();
              0 <= top <= bottom <= getmaxy();
             Etwas weniger  technisch: Alle  vier  Eckpunkte  des
             sich  ergebenden   Rechtecks  mssen  innerhalb  der
             Bildschirmgrenzen liegen, wobei sich die obere linke
             Ecke  tatschlich   links  oberhalb   der  unteren
             rechten Ecke  befinden mu  -  einen  Austausch  von
             Wertepaaren   (d.h.    ein   Umdrehen   der   Zei-
             chenrichtung) fhrt rectangle nicht aus.
Ergebnis     rectangle liefert keinen Wert zurck.
Beispiel     #include <graphics.h>
             #include <ext.h>

             main()
             {  int graphdriver = DETECT, /* automatische */
                graphmode;                /* Erkennung */
                int x, centerx, centery;

                initgraph(&graphdriver, &graphmode, "");
                centerx = getmaxx() / 2; centery = getmaxy() / 2;

                for (x = 10; x < centery; x += 20)
                  rectangle(centerx-x, centery-x, centerx+x,
                  centery+x);
                getch();
                closegraph();
             }
Portabilitt Diese Funktion ist lauffhig auf allen Systemen, die
             BGI untersttzen.
Gruppe       EZeichnen und FlchenfllungF
Querverweis  EbarFName         register BGI  driver - Registrierung eines als .O-
             Datei eingebundenen Grafiktreibers.

Definition   int  registerbgidriver( void (*driver)( void ));

Prototype in graphics.h

Beschreibung Die Funktion registerbgidriver meldet einen Treiber
             als resident im Speicher vorhanden an. Dazu wird die
             Startadresse des Treibers im Parameter driver ber-
             geben. Als Resultat erhlt man die Kennummer des
             Treibers oder im Fehlerfall einen negativen Wert.

             Man kann einen Treiber einfach per EfreadF in einen
             zuvor allozierten Speicherblock laden oder mittels
             des Programms EBGIOBJF in eine Objektdatei kon-
             vertieren und diese dann in der Projektdatei ange-
             ben, um sie in sein eigenes Programm einzubinden.

Beispiel     #include <stdio.h>
             #include <stdlib.h>
             #include <graphics.h>

             extern void VdiDriver( void );

             int  main( void )
             {
                 int  mode, driver;

                 if ( registerbgidriver( VdiDriver ) < 0 )
                     exit( 1 );
                 driver = VDI;
                 mode = VDIMODE;
                 initgraph( &driver, &mode, "" );
                 outtextxy( 100, 100, "This driver is registered!" );
                 getchar( );
                 closegraph( );
                 return( 0 );
             }

Portabilitt Diese Funktion ist lauffhig auf allen Systemen, die
             BGI untersttzen.

Gruppe       EKontrolleFName         register BGI  font -  Registrierung eines  als .O-
             Datei eingebundenen Grafik-Zeichensatzes.

Definition   int registerbgifont(void (*font)(void));

Prototyp in  graphics.h

Beschreibung registerbgifont erwartet  die Adresse  eines als .O-
             Datei direkt  in das  Programm eingebundenen Grafik-
             Zeichensatzes und  trgt diesen  Zeichensatz in eine
             interne Tabelle  fr  EsettextstyleF  ein.  Auf  diese
             Weise registrierte  Zeichenstze werden nicht mehr
             als .CHR-Dateien  auf der  Diskette gesucht  und auf
             den Heap geladen, sondern direkt verwendet.
             Hinweis: Da  die  Zeichenstze  nur  indirekt  von
             anderen Routinen  angesprochen werden,  erfllt  der
             Aufruf  der   Registrierfunktion  einen   weiteren
             Zweck: er  teilt  dem Linker von Pure C mit, da die
             entsprechende   .O-Datei   mit   in   das   Programm
             aufgenommen werden mu.
Ergebnis     registerbgifont    liefert     die    Nummer     des
             registrierten    Grafik-Zeichensatzes.    Negative
             Funktionsergebnisse entsprechen  den Statuscodes des
             Grafikpakets und zeigen einen Fehler an.
Portabilitt Diese Funktion ist lauffhig auf allen Systemen, die
             BGI untersttzen.
Gruppe       EKontrolleF
Querverweis  EinitgraphF,      EgetgraphmodeF,       EgettextsettingsF,
             EregisterbgifontFName         restore CRT mode - lscht den Bildschirm.

Definition   void restorecrtmode(void);

Prototyp in  graphics.h

Beschreibung Auf   dem    Atari   wird    diese   Funktion    zum
             Bildschirmlschen benutzt.
             Unter  MS-DOS   hat  restorecrtmode  die  Aufgabe,
             zwischen Grafik- und Textmodus umzuschalten.
Ergebnis     restorecrtmode liefert keinen Wert zurck.
Portabilitt Diese Funktion ist kompatibel zu allen Systemen, die
             BGI untersttzen.
Gruppe       EKontrolleF
Querverweis  EinitgraphF, EsetgraphmodeFName         sector -  zeichnet ein  ausgeflltes  elliptisches
             Kuchenstck

Definition   void sector(int x, int y, int stangle, int endangle,
                             int xradius, int yradius);

Prototyp in  graphics.h

Beschreibung sector erfllt  dieselbe Funktion  wie pieslice  fr
             Ellipsen - der einzige Unterschied liegt hier darin,
             da (wie bei EellipseF) mit separaten Radien in X- und
             Y-Richtung gearbeitet wird.
Ergebnis     sector hat  kein direktes Ergebnis. Wenn whrend der
             Ausfhrung ein  Fehler auftritt, liefert der nchste
             Aufruf von EgraphresultF den Wert grNoScanMem.
Beispiel     siehe arc
Portabilitt Diese Funktion ist lauffhig auf allen Systemen, die
             BGI untersttzen..
Gruppe       EZeichnen und FlchenfllungF
Querverweis  EarcF,  EcircleF,  EellipseF,  EfillellipseF,  EgetarccoordsF,
             EpiesliceFName         set active  page -  legt fest, auf welcher Grafik-
             speicherseite folgende Zeichenbefehle arbeiten.

Definition   void setactivepage(int pagenum);

Prototyp in  graphics.h

Beschreibung setactivepage ist fr das Atari BGI nicht notwendig,
             da es nur eine Grafikspeicherseite gibt.
Portabiltt  Diese Funktion  ist nur  verfgbar, um kompatibel zu
             anderen BGI-Treibern zu bleiben.
Gruppe       EZugriffe auf den Bildschirmspeicher und ZeichenfensterF
Querverweis  EsetvisualpageFName         set all  palette -  setzt smtliche Eintrge einer
             Farb-Palette.

Definition   void setallpalette(struct palettetype *palette);

Prototyp in  graphics.h

Beschreibung setallpalette setzt  mit der als palette bergebenen
             Struktur  smtliche   Eintrge  einer  Farb-Palette,
             wobei size  hier festlegt, wieviele Eintrge (ab dem
             ersten, also  der Farbe  0) gesetzt werden sollen.
             Jedes  Element   des  Arrays  colors  ersetzt  einen
             Eintrag der  Farb-Palette und  kann einen Wert von -
             1..63 haben.  Der Farbwert  1  bedeutet,  da  der
             korrespondierende    Eintrag     der     Farbpalette
             unverndert bleiben soll.
Ergebnis     setallpalette hat kein direktes Ergebnis.
Beispiel     siehe EgetpaletteF
Portabilitt Diese Funktion ist lauffhig auf allen Systemen, die
             BGI untersttzen.
Gruppe       EFarbmanipulation und Farb-PalettenF
Querverweis  EgetbkcolorF, EgetcolorF, EgetdefaultpaletteF, EgetpaletteF,
             EsetpaletteFName         set aspect  ratio -  verndert den Korrekturfaktor
             fr das Hhen-/Seitenverhltnis des Bildschirms.

Definition   void setaspectratio(int xasp, int yasp);

Prototyp in  graphics.h

Beschreibung Die Funktion setaspectratio ist nicht notwendig. Der
             Faktor ist  immer  1,  da  man  unter  TOS  nur  das
             Seitenverhltnis,  nicht  aber  das  Hhenverhltnis
             explizit einstellen kann.
Portabiltt  Diese Funktion  ist nur  verfgbar, um kompatibel zu
             anderen BGI-Treibern zu bleiben.
Gruppe       EZeichnen und FlchenfllungF
Querverweis  EgetaspectratioFName         set background  color - setzt die Hintergrundfarbe
             des Bildschirms.

Definition   void setbkcolor(int color);

Prototyp in  graphics.h

Beschreibung setbkcolor setzt den Inhalt des ersten Eintrages der
             Farbpalette auf  den Wert  color. Dieser Eintrag ist
             fr  die  Hintergrundfarbe  des  Bildschirmspeichers
             verantwortlich. Die  Konstanten sind  in  graphics.h
             folgendermaen definiert:

             Wert  Name      Wert  Name
             --------------------------------------------------------
             0     BLACK      8    DARKGRAY
             1     BLUE       9    LIGHTBLUE
             2     GREEN     10    LIGHTGREEN
             3     CYAN      11    LIGHTCYAN
             4     RED       12    LIGHTRED
             5     MAGENTA   13    LIGHTMAGENTA
             6     BROWN     14    YELLOW
             7     LIGHTGRAY 15    WHITE
             --------------------------------------------------
             Hinweis: Im  Gegensatz zur  Funktion setcolor, die
             die Zeichenfarbe nachfolgender Operationen festlegt,
             hat setbkcolor eine unmittelbare Wirkung.
Ergebnis:    setbkcolor hat kein Funktionsergebnis.
Beispiel     siehe EsetcolorF
Portabilitt Auf allen  Systemen die  BGI untersttzen, ist diese
             Funktion lauffhig.
Gruppe       EFarbmanipulation und Farb-PalettenF
Querverweis  EgetpaletteF, EinitgraphF, EsetcolorFName         set  color   -  setzt   die  Farbe  fr  folgenden
             Zeichenaktionen.

Definition   void setcolor(int color);

Prototyp in  graphics.h

Beschreibung setcolor   legt   fest,   welcher   Paletten-Eintrag
             zuknftig als Zeichenfarbe verwendet werden soll.
Ergebnis     setcolor liefert  die Nummer  des Paletten-Eintrags,
             der momentan  als Zeichenfarbe gesetzt ist. setcolor
             hat kein Funktionsergebnis.
Beispiel     #include <graphics.h>
             #include <stdlib.h>
             #include <ext.h>
             main()
             {
                int graphdriver = DETECT, /* automatische */
                graphmode;                /* Erkennung */
                int color;

                initgraph(&graphdriver,&graphmode,"");

                /* Linien mit wechselnder Farbe und
                   gleichbleibendem Hintergrund */
                while (!kbhit())
                 { color = getcolor();
                   if (++color > getmaxcolor())   color = 0;
                   setcolor(color);
                   lineto(random(getmaxx()) + 1),
                          random(getmaxy()) + 1));
                  }
                getch();
                closegraph();
             }

Portabilitt Diese Funktion ist kompatibel zu allen Systemen, die
             BGI untersttzen.
Gruppe       EFarbmanipulation und Farb-PalettenF
Querverweis  EgetbkcolorF, EgetpaletteF, EgetmaxcolorF, EsetbkcolorFName         set fill pattern - ermglicht die freie Definition
             von Mustern fr Flchenfllungen.

Definition   void setfillpattern(char *pattern, int color);

Prototyp in  graphics.h

Beschreibung setfillpattern definiert  das ausgewhlte Muster und
             die Zeichenfarbe  fr die  Aufrufe von  EfillellipseF,
             EfillpolyF,  EfloodfillF,   EbarF,   Ebar3dF,   EsectorF   und
             EpiesliceF.
             pattern ist ein Zeiger auf eine Folge von 8 Bytes,
             bei dem  jedes Bit  fr ein Pixel in der durch color
             festgelegten Farbe steht.
Ergebnis     setfillpattern hat kein Ergebnis.
Beispiel     siehe EsetfillstyleF
Portabilitt Auf allen  Systemen, die BGI untersttzen, ist diese
             Funktion lauffhig.
Gruppe       EZeichnen und FlchenfllungF
Querverweis  EgetfillsettingsF, EsetfillstyleFName         set fill  style -  setzt ein vordefiniertes Muster
             zur Flchenfllung.

Definition   void setfillstyle(int pattern, int color);

Prototyp in  graphics.h

Beschreibung setfillstyle erwartet einen dieser Werte als pattern
             und setzt das entsprechende Bitmuster.
             Hinweis:  Um  ein  benutzerdefiniertes  Fllmuster
             (USER_FILL, Wert  12) zu  setzen, mu EsetfillpatternF
             verwendet werden.
Ergebnis     setfillstyle hat  kein direktes Ergebnis. Ein Aufruf
             von  setfillstyle   mit  einem   Wert  fr   pattern
             auerhalb  des   Bereichs  0..11   wird  als  Fehler
             gewertet: das  momentan gesetzte  Fll-Muster bleibt
             in  diesen  Fllen  unverndert,  ein  nachfolgender
             Aufruf von EgraphresultF liefert den Wert -grError.
Beispiel     #include <graphics.h>
             #include <ext.h>
             main()
             {  int graphdriver = DETECT; /* automatische */
                int graphmode;              /* Erkennung */
                struct fillsettingstype save;
                char savepattern[8];
                char checkboard[] = { 0x0F, 0xF0, 0x0F, 0xF0,
                                      0x0F, 0xF0, 0x0F, 0xF0 };

                initgraph(&graphdriver, &graphmode, "");

                /* momentan gesetztes Muster ermitteln */
                getfillsettings(&save);       /* Muster
                                                 speichern */
                if (save.pattern == USER_FILL)
                                     /* benutzerdefiniert? */
                  getfillpattern(savepattern);  /* -> ja,
                                           Bitmuster lesen */

                setfillstyle(SLASH_FILL, BLUE);  /* /////, blau */
                bar (0,0,100,100);               /* Balken
                                                    zeichnen */

                setfillpattern(checkboard, YELLOW); /* eigenes
                                                       Muster */
                bar (100,100,200,200);    /* noch ein Balken */

                /* und das alte Muster wieder setzen */
                if (save.pattern == USER_FILL)
                  setfillpattern(savepattern, save.color);
                 else
                  setfillstyle(save.pattern, save.color);

                getch();
                closegraph();
             }
Portabilitt Diese Funktion ist lauffhig auf allen Systemen, die
             BGI untersttzen.
Gruppe       EZeichnen und FlchenfllungF
Querverweis  EarcF,    EfillpolyF,     EfloodfillF,     EgetfillpatternF,
             EgetfillsettingsFName         set graphics  buffer size  - legt  die  Gre  des
             Puffers fr Flchenfllungen und Polygone fest.

Definition   unsigned setgraphbufsize(unsigned bufsize);

Prototyp in  graphics.h

Beschreibung Fr   Flchenfllungen   und   Polygone   wird   von
             setgraphbufsize die  Gre eines Puffers festgelegt.
             Diese Funktion ist unter TOS nicht notwendig, da der
             Speicherplatz intern verwaltet wir.
Portabiltt  Diese Funktion  ist nur  verfgbar, um kompatibel zu
             MS-DOS zu sein.
Gruppe       EKontrolleFName         set graphics  mode - schaltet in einen Grafikmodus
             um und lscht den Bildschirm.

Definition   void setgraphmode(int mode);

Prototyp in  graphics.h

Beschreibung setgraphmode  schaltet   immer   in   den   hchsten
             Grafikmodus.     Bei     Monochrommonitoren     wird
             grundstzlich STHIGH  zurckgegeben, da  es  hierfr
             nur  einen  Auflsungsmodus  gibt  (hohe  Auflsung,
             STHIGH 640x400).
             Bei Farbmonitoren  schaltet  setgraphmode  in  den
             mittleren Grafikmodus  STMEDIUM (640x200),  da  dies
             bei Farbmonitoren die hchste Auflsung ist.
             Ist  der   Grafikmodus  eingeschaltet   wird   der
             Bilschirm gelscht.
Ergebnis     setgraphmode  liefert   die  Nummer   des   momentan
             gesetzten Grafikmodus zurck.
Portabilitt Diese Funktion  ist kompatibel  zu allen Systemen,
             die BGI untersttzen.
Gruppe       EKontrolleF  EinitgraphF  EgetgraphmodeFName         set line  style -  setzt die  Linienart und -dicke
             fr folgende Zeichenaktionen.

Definition   void setlinestyle(int linestyle, unsigned upattern,
                               int thickness);

Prototyp in  graphics.h

Beschreibung setlinestyle  setzt   die  Linienart   fr  folgende
             Zeichenoperationen  mit   ElineF,  ElinetoF,  ErectangleF,
             EdrawpolyF, EarcF,  EcircleF, EellipseF,  EpiesliceF usw.  Der
             Parameter upattern  hat hier  nur dann eine Wirkung,
             wenn linestyle den Wert USERBIT_LINE hat - in diesem
             Fall legen  die einzelnen  Bits das  Punktmuster der
             Linie fest,  wobei das  hchstwertige Bit  (15)  dem
             jeweils  zuerst   gezeichneten  Punkt   einer  Linie
             entspricht:  0xFFFF   fr   upattern   ergibt   eine
             durchgezogene Linie,  0x3333 eine gestrichelte Linie
             usw.
             Hinweis:  Auch  wenn  setlinestyle  den  Wert  von
             pattern fr linestyle != USERBIT_LINE ignoriert, mu
             dieser Parameter immer angegeben werden.
Ergebnis     setlinestyle hat kein direktes Ergebnis. Aufrufe von
             setlinestyle mit  einem Wert fr linestyle auerhalb
             des Bereichs  0..4 werden  als Fehler  gewertet:  in
             diesen Fllen bleibt die momentan gesetzte Linienart
             unverndert,   ein    nachfolgender    Aufruf    von
             EgraphresultF liefert das Ergebnis -11.
Beispiel       struct linesettingstype save;
               int lkind, lpattern, lthickness;
               ...
               getlinesettings(&save);
               lkind      = save.linestyle;   /* Linienart
                                                 (1..12) */
               lpattern   = save.pattern;     /* Bitmuster */
               lthickness = save.thickness;   /* Dicke (1 oder 3) */
               ...
Portabilitt Diese Funktion ist lauffhig auf allen Systemen, die
             BGI untersttzen.
Gruppe       EZeichnen und FlchenfllungF
Querverweis  EgetlinesettingsF, EsetwritemodeFName         set palette  - ndert  einen Eintrag  der momentan
             gesetzten Farb-Palette.

Definition   void setpalette(int colornum, int actual_color);

Prototyp in  graphics.h

Beschreibung setpalette  setzt   einen  einzelnen   (durch  index
             bezeichneten) Eintrag  der Farb-Palette  auf das  in
             actual_color enthaltene Bitmuster.
Ergebnis     setpalette  hat   kein   direktes   Ergebnis.   Wenn
             setpalette  mit   ungltigen  Parametern  aufgerufen
             wird,  bleibt   die  momentan  gesetzte  Farbpalette
             unverndert; eine  folgender Aufruf  von EgraphresultF
             liefert in diesem Fall den Wert grError.
Beispiel     #include <graphics.h>
             #include <ext.h>
             main()
             {  int graphdriver = DETECT, /* automatische */
                graphmode;                /* Erkennung */
                struct palettetype palette;
                int x,y;

                initgraph(&graphdriver, &graphmode, "");

                getpalette(&palette);
                for (x = 0; x <10; x++)  /* 10 Balken
                                            nebeneinander */
                  { setfillstyle(x, (x % 4) + 1);
                    bar(x * 60, 20, (x+1) * 60, 200);
                  }

                while (!kbhit())
                 { setpalette(rand() % palette.size, rand() %
                   64);
                   delay(300);  /* bunter Farbwechsel */
                 }

                /* Farb-Palette zurck aufs Original */
                setallpalette(getdefaultpalette());

                getch();
                closegraph();
             }
Portabilitt Auf allen  Systemen die  BGI untersttzen, ist diese
             Funktion lauffhig.
Gruppe       EFarbmanipulation und Farb-PalettenF
Querverweis  EgetbkcolorF, EgetcolorF, EgetdefaultpaletteF, EgetpaletteF,
             EsetallpaletteFName         set  RGB   palette  -  ndert  einen  Eintrag  der
             momentan gesetzten  Farbpalette fr  den IBM-Adapter
             8450.

Definition   void setpalette(int colornum, int red,
                             int green, int blue);

Prototyp in  graphics.h

Portabiltt  Diese Funktion  ist nur  verfgbar, um kompatibel zu
             MS-DOS zu sein.
Ergebnis     setpalette hat kein Ergebnis
Gruppe       EFarbmanipulation und Farb-PalettenFName         set text  justification - legt die Ausrichtung von
             Textausgaben durch outtext und outtextxy fest.

Definition   void settextjustify(int horiz, int vert);

Prototyp in  graphics.h

Beschreibung Die   durch   settextjustify   gesetzten   Parameter
             bestimmen, in  welchem Verhltnis  Textausgaben  mit
             EouttextF  zur   Position  des   Grafik-Cursors   bzw.
             Textausgaben  mit   EouttextxyF  zu   den  angegebenen
             Koordinaten stehen. Eine Befehlsfolge wie
              settextjustify(CENTER_TEXT, CENTER_TEXT);
              outtextxy(100,100, "ABC");
             schreibt die  Zeichen ABC so auf den Bildschirm, da
             der Punkt  (100,100) im  Zentrum des  Buchstabens  B
             liegt.
             Fr   die   Ausrichtung   von   Texten   definiert
             graphics.h die folgenden Konstanten:

             Name        Wert  Beschreibung
             --------------------------------------------------------
             LEFT_TEXT     0   linksbndig (horiz)
             CENTER_TEXT   1   mittelzentiert (horiz und vert)
             RIGHT_TEXT    2   rechtsbndig (horiz)
             BOTTOM_TEXT   0   Cursorposition = Grundlinie (vert)
             TOP_TEXT      2   Cursorposotion = oberer Abschlu
                               (vert)
             --------------------------------------------------------
Ergebnis     settextjustify liefert keinen Wert zurck.
Beispiel     siehe EouttextF
Portabilitt Diese Funktion ist kompatibel zu allen Systemen, die
             BGI untersttzen.
Gruppe       Egrafische TextausgabeF
Querverweis  EgettextsettingsF, EouttextF, EouttextxyFName         set  text   style  -  legt  den  Zeichensatz,  die
             Schreibrichtung und die Gre folgender Textausgaben
             fest.

Definition   void  settextstyle(int   font,  int  direction,  int
             charsize);

Prototyp in  graphics.h

Beschreibung settextstyle setzt  einen  Zeichensatz  (font),  die
             Schreibrichtung      (direction)       und       den
             Vergrerungsfaktor         (charsize).          Die
             Strukturkomponente  font   gibt  Auskunft  ber  den
             Zeichensatz, der zur Textausgabe verwendet wird.
Ergebnis     Wenn eine Zeichensatz-Datei durch settextstyle nicht
             fehlerfrei  geladen   werden  konnte,   liefert  ein
             nachfolgender  Aufruf   von  graphresult  eines  der
             folgenden Ergebnisse:definiert:

             Name               Wert  Beschreibung
             --------------------------------------------------------
             grFontNotFound      -8   Zeichensatz-Datei nicht
                                      gefunden
             grfNoFontMem        -9   nicht genug Speicherplatz zum
                                      Laden der Datei
             grError             -11  unspezifischer Fehler
             grIOError           -12  I/O-Fehler
             grInvalidFont       -13  keine Zeichensatz-Datei
             grInvalidFontMem    -14  Wert von font auerhalb des
                                      Bereichs 0..4
             --------------------------------------------------------
Beispiel     #include <graphics.h>
             #include <ext.h>
             main()
             {
                int graphdriver = DETECT, /* automatische */
                graphmode;                /* Erkennung */
                int x,y;
                char msg[20];

                initgraph(&graphdriver, &graphmode, "");

                for (x = 1, y = 10; x < 10; x+= 2)
                 { sprintf(msg, "Faktor %d", x);
                   settextstyle(GOTHIC_FONT, HORIZ_DIR, x);
                   outtextxy(0,y, msg);
                   y += textheight(msg);
                 }
                getch();
                closegraph();
             }
Portabilitt Auf allen  Systemen die  BGI untersttzen, ist diese
             Funktion lauffhig.
Gruppe       Egrafische TextausgabeF
Querverweis  EgettextsettingsF,  EregisterbgifontF,   EsettextjustifyF,
             EsetusercharsizeF, EtextheightF, EouttextF, EouttextxyFName         set  user   character  size   -  legt  voneinander
             unabhngige Vergrerungsfaktoren  fr die X- und Y-
             Richtung der Grafik-zeichenstze fest.

Definition   void setusercharsize(int multx, int divx,
                                  int multy, int divy);

Prototyp in  graphics.h

Beschreibung setusercharsize erlaubt im Gegensatz zu EsettextstyleF
             voneinander unabhngige  Vergrerungsfaktoren in X-
             und  Y-Richtung:  die  Breite  eines  Zeichens  wird
             zuerst mit multx multipliziert und danach durch divx
             dividiert. Dasselbe gilt fr die Zeichenhhe und die
             Parameter multy bzw. divy.
             Im folgenden  Beispiel wird der Text ABC mit einer
             Breite von 8 und einer Hhe von 6.5 ausgegeben:
              settextstyle(GOTHIC_FONT, HORIZ_DIR, 0);
              setusercharsize(8,1,13,2);
              outtextxy(100,100,"ABC");
             Hinweis:  Wie   im  Abschnitt  ber  EgettextsettingsF
             erlutert,  haben   mit   setusercharsize   gesetzte
             Vergrerungsfaktoren nur  dann eine  Wirkung,  wenn
             zuvor  EsettextstyleF  mit  charsize  =  0  aufgerufen
             wurde. Die  Standardvorgabe fr  setusercharsize ist
             (4,1,4,1).
Ergebnis     setusercharsize liefert keinen Wert zurck.
Beispiel     #include <graphics.h>

             main()
             {  int graphdriver = DETECT, /* automatische */
                graphmode;                /* Erkennung */

                char title[] = "Text in einem Rechteck";

                initgraph(&graphdriver, &graphmode, "");
                settextstyle(GOTHIC_FONT, HORIZ_DIR,
                             USER_CHAR_SIZE);

                settextjustify(CENTER_TEXT, CENTER_TEXT);
                                               /*  zentriert */
                setusercharsize(1,1,1,1);  /* fr die Berechnung */

                rectangle(0,0,200,100); /* 200 Pixel breit, 100
                                           hoch */
                setusercharsize(200, textwidth(title),
                                100, textheight(title));
                outtextxy(100,50,title); /* Ausgabe in der Mitte */

                getch();
                closegraph();
             }
Portabiltt  Diese Funktion ist lauffhig auf allen Systemen, die
             BGI untersttzen.
Gruppe       Egrafische TextausgabeF
Querverweis  EgettextsettingsF, EouttextF, EtextheightFName         set viewport - setzt ein Grafik-Zeichenfenster.

Definition   void setviewport(int  left, int  top, int right,
                              int bottom, int clipflag);
Prototyp in  graphics.h

Beschreibung setviewport legt mit (left,top) die obere linke Ecke
             und mit (right, bottom) die untere rechte Ecke eines
             neuen  Zeichenfensters   fest   und   arbeitet   mit
             absoluten Koordinaten. Der Aufruf
              setviewport(0,0,100,100,1);
             setzt ein  Zeichenfenster von 100 Pixeln Breite, das
             sich in  der  oberen  linken  Ecke  des  Bildschirms
             befindet -  unabhngig davon,  ob zuvor  ein anderes
             Zeichenfenster gesetzt war oder nicht.
             setviewport setzt  den Grafik-Cursor auf den Punkt
             (0,0)   innerhalb    des   neuen    Fensters.    Der
             Fensterinhalt  wird  durch  diese  Funktion  nicht
             verndert.
             Der   Parameter    clipflag    legt    fest,    ob
             Zeichenaktionen am  Rand des  Fensters abgeschnitten
             werden sollen  (clipflag = 1) oder nicht (clipflag =
             0). Eine Befehlsfolge wie
              setviewport(0,0,100,100,1); /* Clip-Funktion aktiv */
              lineto(200,200);
             zeichnet eine  Linie vom (absoluten) Punkt (0,0) zum
             Punkt   (100,100)   -   der   restliche   Teil   der
             Zeichenaktion  (d.h.   die  Fortsetzung   zum  Punkt
             (200,200)) wird unterdrckt.
             Hinweis: Der  Grafik-Cursor selbst  ist von  einem
             Clipping nie betroffen, nur Zeichenaktionen werden
             gegebenenfalls  unterdrckt.   Im  zuvor   gezeigten
             Beispiel befindet  sich der  Grafik-Cursor nach  dem
             Aufruf von ElinetoF auf dem absoluten Punkt (200,200).
             EinitgraphF    und     EsetgraphmodeF    setzen    das
             Zeichenfenster   auf    den   gesamten   Bildschirm,
             entsprechen also  einem Aufruf  von  setviewport mit
             den folgenden Parametern:
              setviewport(0, 0, getmaxx(), getmaxy(), 0);
Ergebnis     setviewport hat  kein direktes  Ergebnis. Der Aufruf
             von setviewport  mit Werten,  die  die  Grenzen  des
             Bildschirms   berschreiten,   lt   das   momentan
             gesetzte     Zeichenfenster     unverndert.     Ein
             nachfolgender  Aufruf  von  EgraphresultF  liefert  in
             diesem Fall das Ergebnis grError.
Beispiel     #include <graphics.h>
             #include <ext.h>

             #define CLIPON 1

             main()
             {  int graphdriver = DETECT, /* automatische */
                graphmode;                /* Erkennung */
                int x, x1,y1,x2,y2;

                initgraph(&graphdriver, &graphmode, "");

                while (!kbhit())  /* ein bunter Sternenhimmel */
                 putpixel(rand() % getmaxx(), rand() % getmaxy(),
                          1 + rand() % getmaxcolor());

                getch();
                x1 = getmaxx() - 90; y1 = getmaxy() - 90;
                setcolor(RED);
                do { x2 = x1 + 80; y2 = y1 + 80;
                     setviewport(x1,y1,x2,y2,CLIPON);
                     clearviewport();
                     rectangle(40,20,80,75);
                     x1 -= getmaxy() / 10;
                     y1 -= getmaxx() / 20;
                   } while ((x1 >= 0) && (y1 >= 0));

                getch();
                closegraph();
             }
Portabilitt Diese Funktion ist kompatibel zu allen Systemen, die
             BGI untersttzen.
Gruppe       EZugriffe auf den Bildschirmspeicher und ZeichenfensterF
Querverweis  EclearviewportF, EgetviewsettingsFName         set visual  page - whlt eine von mehreren Grafik-
             Speicherseiten zur Anzeige aus.

Definition   void setvisualpage(int pagenum);

Prototyp in  graphics.h

Beschreibung Das Atari BGI untersttzt nur eine Grafikseite.
Ergebnis     setvisualpage hat kein Ergebnis
Portabiltt  Diese Funktion  ist nur  verfgbar, um kompatibel zu
             MS-DOS zu bleiben.
Gruppe       EZugriffe auf den Bildschirmspeicher und ZeichenfensterF
Querverweis  EsetactivepageFName         set  write   mode  -  legt  den  Schreibmodus  fr
             Zeichenoptionen fest.

Definition   void setwritemode(int mode);

Prototyp in  graphics.h

Beschreibung setwritemode legt  fest,  ob  Zeichenaktionen  mit
             ElineF, ElinerelF,  ElinetoF, ErectangleF  und EdrawpolyF  den
             vorherigen  Bildschirminhalt   direkt  berschreiben
             (Copy) oder  ob dazu  eine XOR-Operation verwendet
             wird. (Im  zweiten Fall  lt sich  die  gezeichnete
             Linie durch  einen weiteren  Zeichenbefehl im selben
             Modus ohne  Zestrung des  Hintergrundes wieder  vom
             Bildschirm   entfernen).    Die   beiden   mglichen
             Parameter von  setwritemode sind  in graphics.h  als
             Konstanten definiert:

             Name    Wert  Beschreibung
             --------------------------------------------------------
             COPY_PUT  0   berschreiben durch direkte Kopie
             XOR_PUT   1   XOR-Operation mit dem vorherigen Inhalt
             --------------------------------------------------------
Ergebnis     setwritemode hat kein direktes Ergebnis.
Beispiel     struct linesettingstype save;
             int lkind, lpattern, lthickness;
             ...
             getlinesettings(&save);
             lkind      = save.linestyle;   /* Linie (1..12) */
             lpattern   = save.pattern;     /* Bitmuster */
             lthickness = save.thickness;   /* Dicke (1 oder 3) */
             ...
Portabilitt Diese Funktion ist lauffhig auf allen Systemen, die
             BGI untersttzen.
Gruppe       EZeichnen und FlchenfllungF
Querverweis  EgetlinesettingsF, EsetlinestyleFName         text height  - liefert  den vertikalen Platzbedarf
             eines Strings in Pixeln zurck.

Definition   int textheight(char *textstring);

Prototyp in  graphics.h

Beschreibung textheight  berechnet   aus   dem   als   textstring
             bergebenen String,  sowie  dem  momentan  gesetzten
             Zeichensatz   und    dem   Vergrerungsfaktor   den
             vertikalen Platzbedarf einer Textzeile.
             Achtung: Anders  als  fr  die  Vektorzeichenstze
             gibt  es   fr  den   Standardzeichensatz  nur  zwei
             verschiedene Texthhen. Wird der Vergrerungsfaktor
             auf 0  oder 1 gesetzt, so wird der Text mit 10 Pixel
             Hhe     ausgegeben,      fr      alle      anderen
             Vergrerungsfaktoren mit 32 Pixel.
             Hinweis:  Im   Gegensatz  zur  Funktion  EtextwidthF
             spielt es bei textheight keine Rolle, welcher String
             zur Berechnung bergeben wird.
             Der Platzbedarf  von Strings  sollte grundstzlich
             ber  textheight  und  EtextwidthF  ermittelt  werden.
             Nicht nur,  da das Zentrieren von Titeln, Einpassen
             von Beschriftungen  usw. auf  diese Weise wesentlich
             einfacher geht  - Programme,  die  diese  Funktionen
             anstelle von  Konstanten  verwenden,  erfordern  bei
             einem Wechsel der Schriftart oder des Grafiktreibers
             erheblich weniger Modifikationen (wenn berhaupt).
Ergebnis     textheight liefert  das Ergebnis  der Berechnung  in
             Pixeln zurck.
Beispiel     #include <graphics.h>

             main()
             {
                int graphdriver = DETECT, /* automatische */
                graphmode;                /* Erkennung */
                int x, ypos;

                initgraph(&graphdriver, &graphmode, "");

                settextjustify(CENTER_TEXT, BOTTOM_TEXT);

                for (ypos = 0, x = DEFAULT_FONT; x <=
                     GOTHIC_FONT; x++)
                 {  settextstyle(x, HORIZ_DIR, 8);
                    ypos += textheight("T") + 5;
                    outtextxy(getmaxx() / 2,ypos, "Pure C");
                 }

                getch();
                closegraph();
             }
Portabilitt Auf allen  Systemen die  BGI untersttzen, ist diese
             Funktion lauffhig.
Gruppe       Egrafische TextausgabeF
Querverweis  EgettextsettingsF, EouttextF, EsetusercharsizeF,
             EtextwidthFName         text width  - liefert  die Breite eines Strings in
             Pixeln zurck.

Definition   int textwidth(char *textstring);

Prototyp in  graphics.h

Beschreibung textwidth   berechnet   aus   dem   als   textstring
             bergebenen  String  sowie  dem  momentan  gesetzten
             Zeichensatz   und    dem   Vergrerungsfaktor   den
             horizontalen Platzbedarf einer Textzeile.
             Achtung: Im  Gegensatz zu  den Vektorzeichenstzen
             kann auf  dem Atari der Standardzeichensatz nicht in
             der Breite  gestreckt werden.  Fr einen  5  Zeichen
             langen String  wird also  immer das  Ergebnis 5*8=40
             geliefert.
             Hinweis:  Im  Gegensatz  zur  Funktion  EtextheightF
             spielt es  hier sehr  wohl eine Rolle, aus wievielen
             (und  bei   proportionalen  Zeichenstzen:  welchen)
             Zeichen sich  der Text  zusammensetzt, der textwidth
             zur Berechnung bergeben wird.
             Der Platzbedarf  von Strings  sollte grundstzlich
             ber  EtextheightF  und  textwidth  ermittelt  werden.
             Nicht nur,  da das Zentrieren von Titeln, Einpassen
             von Beschriftungen  usw. auf  diese Weise wesentlich
             einfacher geht  - Programme,  die  diese  Funktionen
             anstelle von  Konstanten  verwenden,  erfordern  bei
             einem Wechsel der Schriftart oder des Grafiktreibers
             erheblich weniger Modifikationen (wenn berhaupt).
Ergebnis     textwidth liefert  das Ergebnis  ihrer Berechnung in
             Pixeln zurck.
Beispiel     siehe EtextheightF
Portabilitt Diese Funktion ist kompatibel zu allen Systemen, die
             BGI untersttzen.
Gruppe       Egrafische TextausgabeF
Querverweis  EgettextsettingsF,      EouttextF,      EsetusercharsizeF,
             EtextheightFBGIOBJ - Konvertierung von Zeichenstzen

Die Standardzeichenstze  existieren als separate Dateien (.CHR),
die bei  Bedarf auf  den Heap  des Programms  geladen werden. Der
Vorteil  dieses   Konzepts  liegt   darin,  da   immer  nur  der
Zeichensatz  Platz  im  Speicher  belegt,  der  auch  tatschlich
gebraucht wird. Die Nachteile: Sowohl die Aktivierung des Grafik-
pakets als  auch der  Wechsel des  Zeichensatzes  machen  Disket-
tenzugriffe (nebst der dazugehrigen Fehlerprfung) notwendig und
setzen die entsprechenden Dateien voraus.
Mit BGIOBJ  lassen sich Zeichenstze in .O-Dateien  konvertieren,
die direkt in das Programm aufgenommen werden knnen. Ein eventu-
eller Nachteil  liegt hier  natrlich darin,  da sich der Umfang
des Programms entsprechend erhht.
Die Aufnahme  eines Zeichensatzes  in ein  Programm besteht  aus
drei Schritten:
1.  Konvertierung mit  BGIOBJ in  eine .O-Datei. BGIOBJ gibt dem
    Zeichensatz dabei einen Funktionsnamen.
2.  Registrierung   des   Zeichensatzes   im   Programm   ber
    registerbgifont. An dieser Stelle wird der von BGIOBJ verge-
    bene Funktionsname verwendet:

    if (registerbgifont(gothic_font) != GOTHIC_FONT)
    {
       printf("Zeichensatz konnte nicht registriert werden!\n");
       exit(1);
    }

TRIPLEX_FONT ist eine (in  graphics.h  definierte) Konstante  und
hat nichts mit dem Funktionsnamen triplex_font zu tun.

Hinweis:   Wie    im   Abschnitt    ber   registerbgifont    des
Bibliotheksverzeichnisses beschrieben,  erhalten das  Grafikpaket
und der  Linker erst durch diese Registrierung die Information,
da der entsprechende Zeichensatz nicht geladen werden mu.


Der Aufruf von BGIOBJ

geschieht von der Kommandoebene aus durch die Eingabe von bgiobj
Wenn berhaupt  keine  Parameter  angegeben  sind,  erhalten  Sie
daraufhin den folgenden Text:

BGIOBJ 1.0          (c) 1990 by Borland International, Inc.

Usage: BGIOBJ <source> <destination> <public name>


Beispiel:
 BGIOBJ.TTP GOTH
 erzeugt GOTH.O mit dem globalen Nemen gothic_font
 BGIOBJ.TTP EURO
 erzeugt EURO.O mit dem globalen Nemen euro_font

Wenn nur  der Name  eines Zeichensatzes angegeben wird, verwendet
BGIOBJ die folgenden Standardvorgaben:

Quelldatei Zieldatei   globaler Name
-----------------------------------------------------------------
TRIP.CHR   TRIP.O      triplex_font
LITT.CHR   LITT.O      small_font
SANS.CHR   SANS.O      sansserif_font
GOTH.CHR   GOTH.O      gothic_font
-----------------------------------------------------------------

Mit BGIOBJ erzeugte .O-Dateien knnen
- entweder ber eine .PRJ-Datei in ein Programm aufgenommen


Weitergehende Mglichkeiten von BGIOBJ

Dieser  Abschnitt   erlutert  die   restlichen   Kommandozeilen-
Parameter  von   BGIOBJ  im  Detail  und  ist  fr  erfahrene  C-
Programmierer gedacht  - fr normale Problemstellungen sind die
Standardvorgaben  des   Programms  in   praktisch  allen   Fllen
ausreichend.
Wie zu  Anfang dieses  Anhangs beschrieben,  hat der  Aufruf  von
BGIOBJ die folgende Syntax:

Syntax:   BGIOBJ  <Quelldatei>   <Zieldatei[.O]  <globaler Name>

Alle Parameter  auer Quelldatei  sind optional.  Die Reihenfolge
der   Parameter   ist   zwingend   vorgeschrieben   -   um   also
beispielsweise   einen   globalen   Namen   festzulegen,   mssen
Quelldatei und Zieldatei angegeben werde.;

Parameter  Beschreibung
-----------------------------------------------------------------
Quelldatei Name der zu konvertierenden Datei. Solange mit den
           ausgelieferten Zeichenstzen gearbeitet wird, fgt
           BGIOBJ das Suffix .CHR automatisch an, wenn der
           angegebene Name keinen Punkt enthlt.
Zieldatei  Name der zu erzeugenden Datei. Die Standardvorgabe ist
           Quelldatei.O. Das Suffix .O wird automatisch
           angehngt, wenn der angegebene Name keinen Punkt
           enthlt.

globaler   Der hier angegebene Funktionsname wird bei Aufruf
Name       von registerbgifont verwendet.
-----------------------------------------------------------------

Wenn Sie  eigene globale Namen fr Zeichenstze verwenden wollen,
mssen Sie Ihrem Programm entsprechende Prototypen hinzufgen:

              void globaler_Name(void);

Solange  mit   den   Standardvorgaben   von   BGIOBJ   und   den
Standardzeichenstzen gearbeitet  wird,  sind  eigene  Prototypen
nicht notwendig  - die  entsprechenden Deklarationen sind bereits
in graphics.h enthalten.GEM (Graphics Environment Manager)
----------------------------------------------------------------------

Im Gegensatz zu einem konventionellen EBetriebssystemF, dessen Haupt-
augenmerk meist auf der Dateiorganisation, einem Multitaskingsystem
und der Ansteuerung von Peripheriegerten liegt, ist GEM in erster
Linie zur konsistenten und portablen Programmierung von grafischen
Ausgabesystemen entwickelt worden. Darberhinaus soll GEM den Dialog
zwischen Programm und Anwender erleichtern.
Die EBetriebssystemumgebungF von GEM besteht aus zwei Teilen, einem
mehr auf die Grafik spezialisiertem und einem berwiegend im Hinblick
auf eine leicht anzuwendende Benutzerschnittstelle orientierten Ab-
schnitt:

 EAESF  (Application Environment Services)
 EVDIF  (Virtual Device Interface)

EAESF bernimmt dabei die Organisation der Benutzerumgebung, wohingegen
EVDIF fr eine einheitliche grafische Gestaltung der Benutzeroberflche
sorgt. Whrend EAESF auf EVDIF-Funktionen basiert, wird im EVDIF keine
EAESF-Funktion verwendet. Man kann EAESF als das bergeordnete System be-
trachten. Zusammen mit den Funktionen eines konventionellen Betriebs-
sytems erfllt GEM damit alle Anforderungen an ein anwendergerechetes
EBetriebssystemF.Das AES-System (Application Environment Services)
----------------------------------------------------------------------

besteht aus einem vereinfachten Multi-Tasking-Kernel (das ist jener
Teil eines Betriebssystems, der sich darum kmmert, da scheinbar
mehrere Aufgaben gleichzeitig erledigt werden), einem Bildschirm-
manager und elf Funktionsbibliotheken fr folgende Aufgabenbereiche:

 EApplikationFsverwaltung (appl_...)
 EEreignisverwaltungF     (evnt_...)
 EMensF                  (menu_...)
 EObjekteF                (objc_...)
 EFormulareF              (form_...)
 EGrafikfunktionenF       (graf_...)
 EZwischenspeicherF       (scrp_...)
 EDateiauswahlF           (fsel_...)
 EFensterFverwaltung      (wind_...)
 EResourceForganisation   (rsrc_...)
 EShellF-Kommunikation    (shel_...)

Um AES-Funktionen in einem Programm verwenden zu knnen, mssen die
EPrototypenF in der Deklarationsdatei AES.H mittels #include-Anweisung
verfgbar sein.Die Ereignisfunktionen auf einen Blick
----------------------------------------------------------------------

Eevnt_buttonF Auf Maustastendruck warten.
Eevnt_dclickF Doppelklickintervall ermitteln oder ndern.
Eevnt_keybdF  Auf Tastendruck warten.
Eevnt_mesagF  Auf Mitteilung warten.
Eevnt_mouseF  Auf Mausbewegungen in ein Rechteck hinein (oder auch
            heraus) warten.
Eevnt_multiF  Auf mehrere Ereignisse wie Maustastendruck,
            Mausbewegungen usw. gleichzeitig warten.
Eevnt_timerF  Eine bestimmte Zeitspanne lang warten.


Ereignisse im Multi-Tasking-Betrieb

Alle Benutzereingaben werden unter EGEMF als Ereignisse aufgefat.
Folgende Ereignisse knnen nun auftreten:

                Tastatureingaben
                Mausbewegungen
                Maustastendruck
                Zeitgeber Timeout
                Mitteilungen

Alle diese Ereignisse haben eine Gemeinsamkeit: Sie werden auerhalb
des betrachteten Programms erzeugt. Sie knnen deshalb nur durch
spezielle Vorkehrungen abgefangen werden.
Um Benutzeraktionen in einem Programm entgegenzunehmen, gibt es zwei
grundstzliche Strategien: Polling und Interruptsteuerung. Polling be-
deutet, da der Anwender von Zeit zu Zeit selbst nachfragen mu, ob
gerade ein bestimmtes Ereignis eingetreten ist. Mehrere Eingabegerte
gleichzeitig per Polling abzufragen, ohne da Benutzerereignisse ver-
loren gehen, ist eine sehr aufwendige Angelegenheit, die die meisten
Anwenderprogramme um ein Vielfaches komplizierter machen wrde. EGEMF
bietet deshalb in Form von Eevnt_multiF eine Funktion an, die im Stande
ist, mehrere Benutzerereignisse gleichzeitig abzufangen und zu verwal-
ten. Die interne Organisation dieser Funktion beruht natrlich auf
einem Interuptmechanismus, so da Ereignisse nicht verloren gehen
knnen.
Die Funktion Eevnt_multiF kann ganz spezifisch je nach den Anforderungen
des Anwenderprogramms auf bestimmte Ereignisse angesetzt werden. Wh-
rend der Zeit, in der Eevnt_multiF auf Ereignisse wartet, knnen andere
EGEMF-Programme im Hintergrund abgearbeitet werden. Die Ereignisverwal-
tung ist demnach sehr eng mit dem Multi-Tasking-Kernel verknpft.
Das Multi-Tasking-Schema ist jedoch sehr einfach ausgelegt. Es knnen
lediglich bis zu fnf Tasks (sprich Aufgaben) gleichzeitig ablaufen:
Drei Accessory-Programme, eine Applikation und der Bildschirmmanager.
Die einzelnen Tasks werden der Reihe nach mit Hilfe eines Dispatchers
abgearbeitet. Ein Dispatcher ist ein Programm im EBetriebssystemF, das
vergleichbar ist mit einem Dirigenten in einem Orchester. Seine Auf-
gabe ist es den Mitspielern im richtigen Moment den Einsatz zu geben.
Jeder AES-Proze luft nun dauernd durch die Schleife des Dispatchers.
Wenn die EApplikationF noch auf ein Ereignis wartet, wird sie in die
Reihe der noch nicht fertigen Prozesse gelegt. Tritt das Ereignis ein,
dann kommt der Proze in die Warteschlange der fertigen Prozesse und
mu dort solange auf die Weiterverarbeitung warten, bis die bereits
wartenden Prozesse vor ihm abgearbeitet wurden. Schlielich wird das
Programm abgearbeitet und nach einem Aufruf einer evnt-Funktion wieder
in die Reihe der noch nicht fertigen Prozesse eingereiht. Falls das
Programm jedoch auf kein Ereignis warten mu, kann es sich direkt an
der Schlange der fertigen Prozesse anstellen.
Die Umschaltung von einer Task auf die andere kann nur whrend des
Aufrufs von AES-Funktionen erfolgen. Ein Programm, das ber weite
Strecken lediglich EVDIF-Fumktionen oder EBetriebssystemF-Funktionen
verwendet, luft demnach Gefahr, andere Applikationen vllig abzu-
hngen.
Dem Bildschirmmanager kommt als eigenstndige Task eine sehr wichtige
Aufgabe zu: Er verwaltet alle Mausbewegungen im Zusammenhang mit
selektierbaren Bildschirmbereichen, wie zum Beispiel den EMensF. Wird
zum Beispiel ein Menpunkt ausgewhlt, dann sendet der Bildschirmmana-
ger eine Mitteilung ber dieses Ereignis an das Anwenderprogramm.
Alle Ereignisse, die von Eevnt_multiF auf einmal abgefangen werden
knnen, lassen sich auch einzeln ermitteln. Eevnt_keybdF nimmt alle
Tastatur-Eingaben entgegen. Eevnt_buttonF ist fr die Maustasten zu-
stndig. Die Geschwindigkeit bei Doppelklicks kann mit Eevnt_dclickF
anwendungsspezifisch eingestellt werden. Mit Eevnt_mouseF werden die
Bewegungen der Maus berwacht. Mitteilungen werden ber die Funktion
Eevnt_mesagF analysiert. Die Funktion Eevnt_timerF legt eine Time-
out-Periode fest. Whrend die letztgenannten Einzelfunktionen nur in
Spezialsituationen zum Einsatz kommen, stellt Eevnt_multiF das Kern-
stck eines jeden EGEMF-Programms dar. Nach den Initialisierungen
von Bildschirm, EMensF und EResourceF-Set bewegt man sich normalerweise
in einer Endlosschleife, die nur bei schweren Fehlern oder der Option
Quit verlassen wird.Name           Event Keyboard - wartet auf ein Tastaturereignis.

Definition     int evnt_keybd( void );

Prototyp in    aes.h

Beschreibung   evnt_keybd wartet auf ein Tastaturereignis.
Ergebnis       Die Funktion liefert als Funktionswert den Scancode
               der gedrckten Taste bzw. die Tastenkombination.

Gruppe         EEreignisverwaltungF
Querverweis    Eevnt_multiFName           Event Button - wartet auf einen Mausknopfereignis.

Definition     int evnt_button( int ev_bclicks, int ev_bmask,
                                int ev_bstate, int *ev_bmx,
                                int *ev_bmy, int *ev_bbutton,
                                int *ev_bkstate );

Prototyp in    aes.h

Beschreibung   Die Funktion wartet auf einen Button-Event, d.h. bis
               die in ev_bmask spezifizierten Mausknpfe ev_bclicks
               mal in den in ev_bstate angegeben Zustand versetzt
               werden.
ev_bclicks     die Anzahl der ntigen Clicks
ev_bmask       einen Bitvektor, der die zu betrachtenden Knpfe mit
               einer 1 maskiert. Dabei ist der "linkeste" Knopf das
               niederwertigste Bit.
ev_bstate      einen Bitvektor wie ev_bmask, der fr jeden Knopf
               festlegt welchen Status er ereichen mu:
               1 = gedrckt, 0 = nicht gedrckt
ev_bmx,ev_bmy  die x bzw. y Koordinate der Maus zum Zeitpunkt des
               Auftretens des Ereignisses
ev_bbutton     der Zustand der Mausknpfe beim Auftreten des
               Ereignisses
ev_bkstate     den Zustand der Sondertasten der Tastatur beim
               Auftreten des Ereignisses
               0x001   rechte Shifttaste
               0x002   linke Shifttaste
               0x004   Controltaste
               0x008   Alternatetaste
               Bei gedrckter Taste wird das entsprechende Bit gesetzt
Ergebnis       Die Funktion liefert die Anzahl der tatschlich
               vorgenommenen Mausklicks.
Gruppe         EEreignisverwaltungF
Querverweis    Eevnt_multiFName           Event Doubleclick - ermittelt oder legt den Zeitraum
               zwischen den beiden Klicks eines Doppelklicks fest.

Definition     int evnt_dclick( int ev_dnew, int ev_dgetset );

Prototyp in    aes.h

Beschreibung   Mit evnt_dclick kann man die Zeit ermitteln
               (ev_tgetset = 0) oder auf den Wert ev_dnew stellen
               (ev_dgetset <> 0), die zwischen zwei aufeinander-
               folgenden Klicks mit der Maustaste vergehen darf, soda
               das AES diese zwei Klicks als einen DoppelKlick
               interpretiert. Die Werte fr den Parameter ev_dnew
               liegen zwischen 0 und 4, wobei 4 fr die krzeste
               Zeitspanne steht.
Ergebnis       Die Funktion liefert die tatschliche
               Doppelklickgeschwindigkeit.
Gruppe         EEreignisverwaltungFName           Event Message - wartet auf eine Mitteilung des AES.

Definition     int evnt_mesag( int *ev_mgpbuff );

Prototyp in    aes.h

Beschreibung   Diese Funktion wartet auf das Eintreten eines
               Mesassage-Events, d. h. bis eine andere Applikation
               oder der Screenmanager der Applikation etwas mitteilen.
               Eev_mgpbuffF zeigt dabei auf einen 16 Byte groen
               Buffer.
Ergebnis       Als Ergwebnis wir immer 1 zurckgegeben.
Gruppe         EEreignisverwaltungFDie Standardmessages des Screenmanagers sind wie folgt aufgebaut:

ev_mgpbuff[0]  Art der Message
ev_mgpbuff[1]  Identifikator der Applikation, die die Nachricht
               abgeschickt hat
ev_mgpbuff[2]  Anzahl der Bytes die ber die Standardlnge von 16
               Bytes hinausgeht, die dann mit Eappl_readF gelesen werden
               mssen

Arten der Standardmessages:

MN_SELECTED    ein Meneintrag wurde ausgewhlt
                ev_mgpbuff[3]  Objektnummer des Titeleintrags
                ev_mgpbuff[4]  Objektnummer des Eintrags
WM_REDRAW      ein Fensterbereich mu neu gezeichnet werden
                ev_mgpbuff[3]  Handle des neuzuzeichnenden Fensters
                ev_mgpbuff[4]  x-Koordinate des Bereichs
                ev_mgpbuff[5]  y-Koordinate des Bereichs
                ev_mgpbuff[6]  Breite des Bereichs
                ev_mgpbuff[7]  Hhe des Bereichs
WM_TOPPED      ein Fenster soll zum oben liegenden Fenster werden
                ev_mgpbuff[3]  Handle des nach oben zu holenden
                               Fensters
WM_CLOSED      das oberste Fenster soll geschlossen werden
                ev_mgpbuff[3]  Handle des zu schlieenden Fensters
WM_FULLED      der Fullsizeknopf des obersten Fensters wurde
               angeklickt
                ev_mgpbuff[3]  Handle des Fensters, das auf volle
                               Gre gebracht werden soll
WM_ARROWED     ein Pfeil oder Rollbalken wurde angeclickt
                ev_mgpbuff[3]  Handle des Fensters
                ev_mgpbuff[4]  einer der folgenden Werte:
                               WA_UPPAGE  Seite nach oben
                               WA_DNPAGE  Seite nach unten
                               WA_UPLINE  Zeile nach oben
                               WA_DNLINE  Zeile nach unten
                               WA_LFPAGE  Seite nach links
                               WA_RTPAGE  Seite nach rechts
                               WA_LFLINE  Spalte nach links
                               WA_RTLINE  Spalte nach rechts
WM_HSLID       der horizontale Rollbalken wurde verschoben
                ev_mgpbuff[3]  Handle des Fensters
                ev_mgpbuff[4]  die neue Sliderposition
                               (0 ganz links bis 1000 ganz rechts)
WM_VSLID       der vertikale Rollbalken wurde verschoben
                ev_mgpbuff[3]  Handle des Fensters
                ev_mgpbuff[4]  die neue Sliderposition
                               (0 ganz oben bis 1000 ganz unten)
WM_SIZED       die Fenstergre wurde verndert
                ev_mgpbuff[3]  Handle des Fensters
                ev_mgpbuff[4]  neue x-Koordinate (unverndert)
                ev_mgpbuff[5]  neue y_Koordinate (unverndert)
                ev_mgpbuff[6]  neue Fensterbreite
                ev_mgpbuff[7]  neue Fensterhhe
WM_MOVED       das ganze Fenster wurde verschoben
                ev_mgpbuff[3]  Handle des Fensters
                ev_mgpbuff[4]  neue x-Koordinate
                ev_mgpbuff[5]  neue y_Koordinate
                ev_mgpbuff[6]  neue Fensterbreite (unverndert)
                ev_mgpbuff[7]  neue Fensterhhe (unverndert)
WM_NEWTOP      das Fenster wurde nach oben gebracht
                ev_mgpbuff[3]  Handle des Fensters
AC_OPEN        ein Accessory wurde aktiviert
                ev_mgpbuff[4]  Identifikator des Accessories
AC_CLOSE       wird an ein Accessory geschickt, wenn die aktuelle
               Applikation beendet wird und der Bildschirm gelscht
               wird und der Windowmanager neu initialisiert wird
                ev_mgpbuff[4]  Identifikator des Accessories

Querverweis:    Eevnt_multiF Eevnt_mesagFName           Event Mouse - wartet darauf, da der Mauszeiger in
               einen Bereich hinein- oder hinausgeschoben wird.

Definition     int evnt_mouse( int ev_moflags, int ev_mox, int ev_moy,
                               int ev_mowidth, int ev_moheight,
                               int *ev_momx, int *ev_momy,
                               int *ev_mobutton, int *ev_mokstate );

Beschreibung   Die Funktion wartet darauf bis der Mauszeiger aus oder
               in ein angegebenes Rechteck bewegt wird.
ev_moflags     bei 1 wird ein Event erzeugt, wenn der Mauszeiger das
               Rechteck verlt, bei 0 wird der Event erzeugt, wenn
               der Mauszeiger das Rechteck betritt.
ev_mox,ev_moy  x und y Koordinate des zu berwachenden Rechtecks
ev_mowidth     Breite des zu berwachenden Rechtecks
ev_moheight    Hhe des zu berwachenden Rechtecks
ev_momx,ev_momy die x und y Koordinate des Mauszeigers beim Betreten
                bzw. Verlassen des Rechtecks
ev_mobutton    der Zustand der Mausknpfe beim Eintreten des Events
               (Format siehe Eevnt_buttonF)
ev_mokstate    den Zustand der Sondertasten der Tastatur beim
               Auftreten des Events (Format siehe Eevnt_buttonF)
Ergebnis       Als Ergebnis wird immer eine 1 zurckgeliefert.
Gruppe         EEreignisverwaltungFName           Event Multi - wartet auf ein beliebiges Ereignis.

Definition     int evnt_multi( int ev_mflags, int ev_mbclicks,
                               int ev_mbmask, int ev_mbstate,
                               int ev_mm1flags, int ev_mm1x,
                               int ev_mm1y, int ev_mm1width,
                               int ev_mm1height, int ev_mm2flags,
                               int ev_mm2x, int ev_mm2y,
                               int ev_mm2width, int ev_mm2height,
                               int *ev_mmgpbuff, int ev_mtlocount,
                               int ev_mthicount, int *ev_mmox,
                               int *ev_mmoy, int *ev_mmbutton,
                               int *ev_mmokstate, int *ev_mkreturn,
                               int *ev_mbreturn );

Prototyp in    aes.h

Beschreibung   Die evnt_multi Funktion wartet auf eine Reihe
               verschiedener Events.
ev_mflags      auf welche Events soll gewartet werden
                Keyboardevent   Bit 0 gesetzt   MU_KEYBD
                Buttonevent     Bit 1 gesetzt   MU_BUTTON
                Mouseevent 1    Bit 2 gesetzt   MU_M1
                Mouseevent 2    Bit 3 gesetzt   MU_M2
                Messageevent    Bit 4 gesetzt   MU_MESAG
                Timerevent      Bit 5 gesetzt   MU_TIMER
ev_mbclicks    Anzahl der Klicks, siehe ev_bclicks in Eevnt_buttonF
ev_mbmask      welche Mausknpfe sollen betrachtet werden
               (Format siehe ev_bmask in Eevnt_buttonF)
ev_mbstate     welchen Zustand mssen die Mausknpfe einnehmen
               (Format, siehe ev_bstate in Eevnt_buttonF)
ev_mm1flags    soll der Event beim Betreten (0) oder Verlassen (1) des
               ersten Rechtecks ausgelst werden, siehe ev_moflags in
               Eevnt_mouseF
ev_mm1x,ev_mm1y x und y Koordinate des ersten Rechtecks, siehe ev_mox,
                ev_moy in Eevnt_mouseF
ev_mm1width    die Breite des ersten Rechtecks, siehe ev_mowidth in
               Eevnt_mouseF
ev_mm1height   die Hhe des ersten Rechtecks, siehe ev_moheight in
               Eevnt_mouseF
ev_mm2flags,
ev_mm2x,
ev_mm2y,
ev_mm2width,
ev_mm2height   sind die Parameter fr das zweite Mouseevent Rechteck
ev_mmgpbuff    ein 16 Byte Messagebuffer, siehe Eevnt_mesagF und
               Eev_mgpbuffF
ev_mtlocount   low-Word fr den Timercounter, siehe Eevnt_timerF
ev_mthicount   high-Word fr den Timercounter, siehe Eevnt_timerF
ev_mmox,ev_mmoy die x und y Koordinate des Mauszeigers beim Auftreten
                des Events, siehe Eevnt_mouseF
ev_mmobutton   Zustand der Mausknpfe beim Auftreten des Events
               (Format siehe Eevnt_buttonF)
ev_mmokstate   den Zustand der Sondertasten der Tastatur beim
               Auftreten des Events (Format, siehe Eevnt_buttonF)
ev_mkreturn    der Scancode der gedrckten Taste
ev_mbreturn    Anzahl der Klicks mit der Maustaste

Ergebnis       Als Ergebnis liefert die Funktion die Nummer des oder
               der aufgetretenen Events im oben angegeben Format.
Gruppe         EEreignisverwaltungF
Querverweis    Eevnt_keybdF   Eevnt_buttonF   Eevnt_mouseF   Eevnt_mesagF
               Eevnt_timerF   Eevnt_dclickFName           Event Timer - wartet einen Zeitabschnitt ab.

Definition     int evnt_timer( int ev_tlocount, int ev_thicount );

Prototyp in    aes.h

Beschreibung   Die Funktion wartet bis die Zeit, die durch ev_tlocount
               und ev_thicount in Millisekunden vorgegeben wird,
               verstrichen ist.
Ergebnis       Als Ergebnis wird immer eine 1 zurckgeliefert.
Gruppe         EEreignisverwaltungFDie Fensterfunktionen auf einen Blick:
----------------------------------------------------------------------

Ewind_calcF   Fensterdimensionen berechnen.
Ewind_closeF  Fenster schlieen.
Ewind_createF Fenster erzeugen.
Ewind_deleteF Fenster lschen.
Ewind_findF   Fensterhandle anhand einer Positionsangabe ermitteln.
Ewind_getF    Eigenschaften eines Fensters ermitteln.
Ewind_newF    Alle Fenster lschen.
Ewind_openF   Fenster ffnen.
Ewind_setF    Eigenschaften eines Fensters verndern.
Ewind_updateF Bildschirmoperationen sperren oder freigeben.


Fenster als Benutzerumgebung

Aus der Sicht des Anwenders ist die Integration von Fenstern die wohl
herausragendste Eigenschaft des EGEMF-Betriebssystems. Die Maus ist
dabei die ideale Ergnzung fr den Umgang mit Fenstern. Ein Fenster
besteht aus einer Reihe von bestimmten Einheiten, die entsprechend den
Anforderungen der EApplikationF gesetzt werden knnen.

Im Mittelpunkt eines Fensters steht immer die Arbeitsflche, auf der
ein bestimmtes Objekt, wie zum Beispiel ein Text oder eine Grafik,
ganz oder in Ausschnitten dargestellt wird. Die Titelleiste gibt dem
Fenster einen Namen, dient aber gleichzeitig auch zum Verschieben des
Fensters auf dem Bildschirm. Mit der Schliebox (links oben) kann das
Fenster geschlossen werden. Klickt man die Full-Box (rechts oben) an,
wird das eventuell verkleinerte Fenster auf seine volle Gre ge-
bracht. Die Informationszeile ist fr kurze Mitteilungen an den Be-
nutzer gedacht. Mit den Pfeilen (auf und ab, links und rechts) erhlt
ein Programm die Mitteilung, da der Inhalt des Fensters in die ent-
sprechende Richtung verschoben werden soll. Die horizontalen und ver-
tikalen Schieber ermglichen die absolute Positionierung der Arbeits-
flche eines Fensters. Mit der Greneinstellungsbox (rechts unten)
knnen Sie ein Fenster zumeist stufenlos vergrern bzw. verkleinern.
Um ein Fenster anzulegen, mu es zuerst mit der Funktion Ewind_createF
erzeugt werden. Beim Anlegen wird das Fenster im Speicher initiali-
siert. Es wird gleichzeitig festgelegt, aus welchen Bestandteilen sich
das Fenster zusammensetzen soll und welche maximale Gre das Fenster
einnehmen darf. Man kann zwar die Gre eines Fenster beim ffnen mit
Ewind_openF in beliebigen Schritten kleiner einstellen als beim Anlegen
mit Ewind_createF, aber EGEMF mu fr seine Speicherbereichsverwaltung
genau wissen, wie gro das Fenster maximal werden kann. Geffnete Fen-
ster knnen mit Ewind_closeF wieder geschlossen werden. Sie sind damit
jedoch noch nicht aus dem Speicher entfernt worden und knnen mit
Ewind_openF erneut aktiviert werden. Soll ein geschlossenes Fenster auch
aus dem Speicher entfernt werden, so geschieht dies mit der Funktion
Ewind_deleteF. Mit Hilfe der Funktion Ewind_getF lassen sich aktuelle
Einstellungen eines Fensters jederzeit abfragen. So erhlt man Infor-
mationen ber die Position, die Gre, die verwendeten Fensterbestand-
teile, usw. Besonders wichtig ist meist die Stellung der horizontalen
und vertikalen Schieber. In umgekehrter Weise, kann man einzelne
Parameter eines Fensters mit Hilfe der Funktion Ewind_setF auch direkt
vom Programm aus festlegen. Die meisten Vernderungen in den Fenstern
werden jedoch automatisch vom Bildschirmmanager berwacht. Wenn der
Anwender bestimmte Schlsselbereiche anklickt, sendet der Bildschirm-
manager sofort eine Mitteilung an das Programm, das mit Hilfe der
EEreignisverwaltungF sofort die richtigen Aktionen in die Wege leiten
kann. Im Endeffekt liegt die gesamte Verantwortung fr die Verwaltung
der Fenster beim Anwenderprogramm.
Wenn man den Fensterinhalt verndern will, sollte man zuvor mit der
Funktion Ewind_updateF alle anderen Bildschirmoperationen verbieten.
Ansonsten knnte es passieren, da eine andere EApplikationF zur selben
Zeit wie Sie den Bildschirm restaurieren will, und es entsteht Bild-
schirmsalat. Man darf aber nicht vergessen, den Bildschirm anschlie-
end erneut mit der Funktion Ewind_updateF fr weitere Bildschirm-
operationen wieder frei zugeben, da ansonsten auch alle EMensF und
Accessories ausgeschaltet blieben.Name           Window create - meldet ein neues Fenster an.

Definition     int wind_create( int wi_crkind, int wi_crwx,
                                int wi_crwy, int wi_crww,
                                int wi_crwh );

Prototyp in    aes.h

Beschreibung   Die Funktion versucht beim AES ein neues Fenster
               anzumelden und legt dabei gleichzeitig sein Aussehen
               und die maximale Gre fest.
wi_crwx, wi_crwy, wi_crww, wi_crwh legen die maximale
               Ausdehnung des Fensters fest.
               wi_crkind beschreibt das Fensters als Bitvektor:
  NAME         0x0001   Titelzeile
  CLOSER       0x0002   Schliebox
  FULLER       0x0004   Volle-Gre-Box
  MOVER        0x0008   Fenster kann bewegt werden
  INFO         0x0010   Infozeile
  SIZER        0x0020   Grenverstellungsbox
  UPARROW      0x0040   Pfeil nach oben
  DNARROW      0x0080   Pfeil nach unten
  VSLIDE       0x0100   vertikaler Slider
  LFARROW      0x0200   Pfeil nach links
  RTARROW      0x0400   Pfeil nach rechts
  HSLIDE       0x0800   horizontaler Slider
Ergebnis       Die Funktion liefert ein nicht negatives Handle, falls
               das AES noch ein freies Windowhandle zur Verfgung hat.
               Ein Rckgabewert kleiner Null signalisiert einen Fehler
               oder keine weiteren Handles mehr.
Gruppe         EFensterF
Querverweis    Ewind_deleteFName           Open Window - ffnet ein Fenster.

Definition     int wind_open( int wi_ohandle, int wi_owx, int wi_owy,
                              int wi_oww, int wi_owh );

Prototyp in    aes.h

Beschreibung   Die Funktion stellt ein Fenster mit dem Handle
               wi_ohandle aus dem Ewind_createF-Aufruf an den
               Koordinaten wi_owx und wi_owy mit den Maen wi_oww
               und wi_owh dar.
Ergebnis       Ein Fehler ist nur dann aufgetreten, wenn als Ergebnis
               0 zurckgeliefert wird.
Gruppe         EFensterF
Querverweis    Ewind_createF   Ewind_closeFName           New Window - schliet alle Fenster.
               (erst ab TOS Version 1.4 verfgbar)

Definition     void wind_new(void);

Prototyp in    aes.h

Beschreibung   Die Funktion schliet und lscht alle Fenster und
               bergibt die Mauskontrolle wieder an das System.
Ergebnis       Diese Funktion liefert kein Ergebnis
Gruppe         EFensterF
Querverweis    Ewind_createF   Ewind_closeFName           Close Window - schliet ein Fenster.

Definition     int wind_close( int wi_clhandle );

Prototyp in    aes.h

Beschreibung   Die Funktion schliet das vorher mit Ewind_openF
               geffnete Fenster mit dem Handle wi_clhandle wieder,
               gibt aber das Windowhandle nicht frei. Das Fenster
               kann also jederzeit wieder erffnet werden.
Ergebnis       Ein Fehler ist nur dann aufgeteten, wenn als Ergebnis
               0 zurckgegeben wird.
Gruppe         EFensterF
Querverweis    Ewind_openFName           Delete Window - lscht ein Fenster.

Definition     int wind_delete( int wi_dhandle );

Prototyp in    aes.h

Beschreibung   Die Funktion lscht das Fenster mit dem Handle
               wi_dhandle wieder vollstndig und gibt das Windowhandle
               wieder frei. Die Funktion ist also das Gegenstck zu
               Ewind_createF.
Ergebnis       Ein Fehler ist nur dann aufgeteten, wenn als Ergebnis
               0 zurckgegeben wird.
Gruppe         EFensterF
Querverweis    Ewind_createF  Ewind_closeFName           Get Window - ermittelt die Parameter eines Fensters.

Definition     int wind_get( int wi_ghandle, int wi_gfield, ... );

Prototyp in    aes.h

Beschreibung   Die Funktion liefert je nach Wert des Parameters
               wi_gfield verschiedene Informationen ber das Fenster
               mit dem Handle wi_ghandle. Dabei sind die zustzlichen
               Parameter wi_gw1, wi_gw2, wi_gw3 und wi_gw4 alles
               Zeiger auf Integerwerte,also
               int *wi_gw1, *wi_gw2, *wi_gw3, *wi_gw4;
wi_gfield:
WF_WORKXYWH    berechnet die Koordinaten des Arbeitsbereichs des
               Fensters und schreibt sie in die weiteren Parameter
               wi_gw1, wi_gw2, wi_gw3 und wi_gw4.
WF_CURRXYWH    berechnet die Gesamtgre des Fenster und schreibt sie
               in die weiteren Parameter wi_gw1, wi_gw2, wi_gw3 und
               wi_gw4.
WF_PREVXYWH    berechnet die Gesamtgre des vorherigen Fensters und
               schreibt sie in die weiteren Paramter wi_gw1, wi_gw2,
               wi_gw3 und wi_gw4.
WF_FULLXYWH    berechnet die maximale Gesamtgre des Fensters und
               schreibt sie in die weiteren Parameter wi_gw1, wi_gw2,
               wi_gw3 und wi_gw4.
WF_HSLIDE      berechnet die Position des horizontalen Sliders und
               schreibt sie in den weiteren Parameter wi_gw1 (1 ganz
               links, bis 1000 ganz rechts).
WF_VSLIDE      berechnet die Position des vertikalen Sliders und
               schreibt sie in den weiteren Parameter wi_gw1 (1 ganz
               oben, bis 1000 ganz unten).
WF_TOP         liefert das Handle des obersten Fensters und schreibt
               es in den weiteren Parameter wi_gw1.
WF_FIRSTXYWH   berechnet die Koordinaten des ersten Rechtecks in der
               Rechtecksliste und schreibt sie in die weiteren
               Parameter wi_gw1, wi_gw2, wi_gw3 und wi_gw4.
WF_NEXTXYWH    berechnet die Koordinaten des nchsten Rechtecks in der
               Rechtecksliste und schreibt sie in die weiteren
               Parameter wi_gw1, wi_gw2, wi_gw3 und wi_gw4.
WF_RESVD       reserviert.
WF_HSLSIZE     berechnet die Gre des horizontalen Sliders relativ
               zur Gesamtbreite und schreibt sie in den zustzlichen
               Parameter wi_gw1 (-1 kleinste Gre, 1 klein bis 1000
               Gesamtbreite).
WF_VSLSIZE     berechnet die Hhe des vertikalen Sliders relativ zur
               Gesamthhe und schreibt sie in den zustzlichen
               Parameter wi_gw1 (-1 kleinste Hhe, 1 klein bis 1000
               Gesamthhe).
WF_SCREEN      liefert die Adresse und Lnge des internen Buffers, in
               dem das AES den Hintergrund von Dropdownmens und
               Alertboxen zwischenspeichert und schreibt sie in die
               weiteren Parameter wi_gw1 Highword der Adresse,
               wi_gw2 Lowword der Adresse, wi_gw3 Highword der Lnge
               und wi_gw4 Lowword der Lnge.
Ergebnis       Ein Fehler ist nur dann aufgetreten, wenn als Ergebnis
               0 zurckgegeben wird.
Gruppe         EFensterFName           Set Window - verndert einzelne Parameter eines
               Fensters.

Definition     int wind_set( int wi_shandle, int wi_sfield, ... );

Prototyp in    aes.h

Beschreibung   Die Funktion verndert das Fenster mit dem Handle
               wi_shandle, je nach Wert des Parameters wi_sfield.
               Dabei sind die zustzlichen Parameter wi_sw1, wi_sw2,
               wi_sw3 und wi_sw4 alles Integerwerte, also:
               int wi_sw1, wi_sw2, wi_sw3, wi_sw4;
wi_sfield
WF_KIND        legt wi_sw1 als neue Fensterkomponenten fest, Format
               wie bei Ewind_createF.
WF_NAME        schreibt den String, auf den wi_sw1 und wi_sw2 zeigt,
               in die Titelzeile.
WF_INFO        schreibt den String, auf den wi_sw1 und wi_sw2 zeigt,
               in die Infozeile.
WF_CURRXYWH    setzt die Fenstergre aus wi_sw1, wi_sw2, wi_sw3 und
               wi_sw4 fest.
WF_HSLIDE      setzt den horizontalen Slider auf die neue Position
               wi_sw1 (1 ganz links bis 1000 ganz rechts).
WF_VSLIDE      setzt den vertikalen Slider auf die neue Position
               wi_sw1 (1 ganz oben bis 1000 ganz unten).
WF_TOP         das Fenster mit dem Handle wi_shandle wird zum neuen
               oberen Fenster.
WF_NEWDESK     legt den Objektbaum, auf den wi_sw1 und wi_sw2 zeigt,
               mit dem Startobjekt wi_sw3 als neues Desktop fest.
WF_HSLSIZE     setzt die Gre des horizontalen Sliders relativ zur
               Gesamtbreite auf den Wert wi_sw1 (-1 kleinste Gre, 1
               klein bis 1000 Gesamtbreite).
WF_VSLSIZE     setzt die Hhe des vertikalen Sliders relativ zur
               Gesamthhe auf den Wert  wi_sw1 (-1 kleinste Hhe, 1
               klein bis 1000 Gesamthhe).
WF_COLOR       verndert die Farbe eines Fensterelements. Dazu wird
               in wi_sw1 Nummer des Elements angegeben:
               
               Element     Objekttyp  Beschreibung
               ----------------------------------------------------
               W_BOX       IBOX        Wurzelobjekt des Fensters
               W_TITLE     BOX         Elternobjekt der Schlie-
                                       und Zoombox, sowie des Names
               W_CLOSER    BOXCHAR     Schliebox
               W_NAME      BOXTEXT     Move-Balken
               W_FULLER    BOXCHAR     Zoombox
               W_INFO      BOXTEXT     Infozeile
               W_DATA      IBOX        Elternobjekt der restlichen
                                       Elemente
               W_WORK      IBOX        Arbeitsflche
               W_SIZER     BOXCHAR     Size-Box
               W_VBAR      BOX         Elternobjekt der vertikalen
                                       Sliderelemente
               W_UPARROW   BOXCHAR     Pfeil nach oben
               W_DNARROW   BOXCHAR     Pfeil nach unten
               W_VSLIDE    BOX         Hintergrund des vert. Sliders
               W_VELEV     BOX         Vertikaler Slider
               W_HBAR      BOX         Elternobjekt der vertikalen
                                       Sliderelemente
               W_LFARROW   BOXCHAR     Pfeil nach links
               W_RTARROW   BOXCHAR     Pfeil nach rechts
               W_HSLIDE    BOX         Hintergrund des horiz. Sliders
               W_HELEV     BOX         Horizontaler Slider

               Im Parameter wi_sw2 wird die Farbe fr den Objekttyp
               des Fensterelements bergeben, falls das Fenster ge-
               toppt ist, in wi_sw3 falls es nicht aktiv ist. Ein
               Wert von -1 behlt die aktuelle Farbeinstellung
               bei (ab Atari TT verfgbar).
WF_DCOLOR      setzt die Standard-Farben fr die Fensterelemente.
               Der Parameter wi_shandle wird ignoriert (ab Atari TT
               verfgbar).

Hinweis zum Pure-C-Compiler:

Anstelle die Zeigerwerte, die bergeben werden mssen (z. B. bei
WF_NEWDESK), in zwei Integerwerte aufzuspalten, kann man gleich den
gesamten Zeiger als Parameter bergeben und dafr den zweiten
Integerparameter weglassen. Im obigen Beispiel lautet der Aufruf also:

        wind_set(wi_shandle,WF_NEWDESK,desk_tree,wi_sw3);

        OBJECT *desk_tree;
        int    wi_shandle, wi_sw3;

Ergebnis       Ein Fehler ist nur dann aufgetreten, wenn als Ergebnis
               0 zurckgegeben wird.
Gruppe         EFensterF
Querverweis    Ewind_createF   EOBJECTFName           Find Window - sucht ein Fenster zu einem bestimmten
               Punkt.

Definition     int wind_find( int wi_fmx, int wi_fmy );

Prototyp in    aes.h

Beschreibung   Die Funktion berechnet das Windowhandle des Fensters
               das sich unter den Koordinaten wi_fmx, wi_fmy befindet.

Ergebnis       Die Funktion liefert das Windowhandle. Ein Rckgabewert
               von Null signalisiert, da sich kein Benutzerfenster an
               den angegebenen Koordinaten befindet, sondern nur das
               Desktopfenster, welches das Handle Null hat.
Gruppe         EFensterF
Querverweis    Ewind_getFName           Update Window - bestimmt das Neuzeichnen eines Fensters.

Definition     int wind_update( int wi_ubegend );

Prototyp in    aes.h

Beschreibung   Die Funktion signalisiert dem AES, da die
               Benutzerapplikation gerade den Bildschirm neu aufbaut.
               Das AES schrnkt daraufhin seine eigenen grafischen
               "Ttigkeiten", wie z. B. das Herunterklappen von
               Dropdownmens, ein.
wi_ubegend     BEG_UPDATE  ein Fenster wird nach dem dem Aufruf
                           aufgebaut.
               END_UPDATE  Fensteraufbau ist abgeschlossen.
               BEG_MCTRL   das Anwenderprogramm mchte die alleinige
                           Kontrolle ber die Maus haben.
               END_MCTRL   das AES kann die Kontrolle wieder haben.
Ergebnis       Ein Fehler ist nur dann aufgetreten, wenn als Ergebnis
               0 zurckgegeben wird.
Gruppe         EFensterFName           Window Calculation - berechnet die Grenzen oder den
               gesamten Platzbedarf eines Fensters.

Definition     int wind_calc( int wi_ctype, int wi_ckind, int wi_cinx,
                              int wi_ciny, int wi_cinw, int wi_cinh,
                              int *coutx, int *couty, int *coutw,
                              int *couth );

Prototyp in    aes.h

Beschreibung   Die Funktion berechnet fr ein Fenster die Gre des
               Randbereichs aus den Koordinaten des Arbeitsbereichs
               oder aus den Koordinaten des Arbeitsbereichs die
               Koordinaten des Randbereichs.
wi_ctype       WC_BORDER  berechnet die Koordinaten des Randbereichs
               aus den Koordinaten des Arbeitsbereichs in den
               Parametern wi_cinx, wi_ciny, wi_cinw und wi_cinh.
               WC_WORK  berechnet die Koordinaten des Arbeitsbereichs
               aus den Koordinaten des Randbereichs in den Parametern
               wi_cinx, wi_ciny, wi_cinw und wi_cinh.
wi_crkind      ein Integerparameter der alle Komponenten des Fenster
               beeinhaltet, Format wie in Ewind_createF
coutx, couty   die berechneten x und y Koordinaten
coutw, couth   die berechnete Ausdehnung
Ergebnis       Ein Fehler ist nur dann aufgetreten, wenn als Ergebnis
               0 zurckgegeben wird.
Gruppe         EFensterF
Querverweis    Ewind_createFDie Objektfunktionen auf einen Blick
----------------------------------------------------------------------

Eobjc_addF    Objekt im Objektbaum einfgen.
Eobjc_changeF Status eine Objekts ndern.
Eobjc_deleteF Objekt aus dem Objektbaum entfernen.
Eobjc_drawF   Objekt (mit Unterobjekten) darstellen.
Eobjc_editF   Texte eines Objekts verndern.
Eobjc_findF   Objektindex ber Position ermitteln.
Eobjc_offsetF Bildschirmkoordinaten eines Objekts ermitteln.
Eobjc_orderF  Reihenfolge im Objektbaum umstellen.


Die Basis des AES-Systems: Objekte

Objekte sind die Basiselemente des EAESF-Systems. Sie sind nichts an-
deres als Datenstrukturen namens EOBJECTF, mit deren Hilfe Grafikele-
mente, wie Alarmboxen, EFensterF, EMensF und Symbole beschrieben werden.
Alle Objekte werden in einem einheitlichen Objektbaum zusammengefat.
Mit der Datenstruktur EOBJECTF hat man ein sehr flexibles Werkzeug zur
Verfgung, das gegenber einem Binrbaum den Vorteil hat, da man auf
die einzelnen Objekte sowohl ber eine vertikale Hierarchie als auch
ber eine horizontale Anordnung zugreifen kann. Mit EOBJECTF findet man
nmlich die hufig bentigten Elemente auf gleicher Hierarchiestufe
sehr leicht.
Die Programmierung eines Objektbaums kann zwar im Grunde mit Hilfe der
Definition eines Objektbaums durchgefhrt werden, doch schon bei klei-
neren Aufgaben erweist sich dieses Unterfangen aufgrund der enormen
Datenflle als ziemlich aussichtslos. Aus diesem Grunde gibt es
EResourceF Construction Sets. Dies sind EGEMF-Programme, mit deren
Hilfe man die Objekte grafisch definieren kann. Die einzelnen Objekte
eines Programms werden dann in einer EResourceFdatei gespeichert, aus
der sie bequem geladen werden knnen.
Die wichtigste Funktion in der Objektbibliothek ist sicherlich
Eobjc_drawF, die fr das Zeichnen eines Objekts bzw. eines Objektbaumes
verantwortlich ist. Sehr ntzlich ist auch Eobjc_changeF, da mit ihr
gleichzeitig der Objektstatus gendert und das betreffende Objekt
seinem neuen Status entsprechend neu gezeichnet werden kann. Wichtig
ist auch noch die Funktion Eobjc_findF, mit deren Hilfe man, ausgehend
von den Koordinaten einer Position, das darunter liegende Objekt er-
mitteln kann.Name           Object add - fgt ein Objekt im Objektbaum ein.

Definition     int objc_add( OBJECT *ob_atree, int ob_aparent,
                             int ob_achild );

Prototyp in    aes.h

Beschreibung   Die Funktion fgt im Objektbaum ob_atree das Objekt mit
               der Nummer ob_achild hierarchisch als Kind von
               ob_aparent ein.
Ergebnis       Ein Fehler ist nur dann aufgetreten, wenn als Ergebnis
               0 zurckgegeben wird.
Gruppe         EObjekteF
Querverweis    EOBJECTF   Eobjc_deleteFName           Object delete - lscht ein Objekt aus dem Objektbaum.

Definition     int objc_delete( OBJECT *ob_dltree, int ob_dlobject );

Prototyp in    aes.h

Beschreibung   Die Funktion lscht das Objekt mit der Nummer
               ob_dlobject aus dem Objektbaum ob_dltree.
Ergebnis       Ein Fehler ist nur dann aufgetreten, wenn als Ergebnis
               0 zurckgegeben wird.
Gruppe         EObjekteF
Querverweis    EOBJECTF   Eobjc_addFName           Object draw - zeicnet ein Objekt.

Definition     int objc_draw( OBJECT *ob_drtree, int ob_drstart,
                              int ob_drdepth, int ob_drxclip,
                              int ob_dryclip, int ob_drwclip,
                              int ob_drhclip );

Prototyp in    aes.h

Beschreibung   Die Funktion stellt Objektbume oder Teile von
               Objektbumen auf dem Bildschirm dar. Dabei ist
               ob_drtree der entsprechende Objektbaum und ob_drstart
               das Objekt, bei dem mit dem Zeichnen begonnen werden
               soll (also gleich Null, falls der ganze Baum gezeichnet
               werden soll).
ob_drdepth     gibt an, wieviele Stufen des Baumes ab dem Startobjekt
               gezeichnet werden sollen. Zustzlich kann man noch ein
               Rechteck (ob_drxclip, ob_dryclip, ob_drwclip,
               ob_drhclip) angeben, auerhalb dessen keine
               Zeichenoperationen stattfinden. Dies ist immer dann
               sinnvoll, wenn z. B. nach dem Schlieen eines Fensters
               nur ein Teil des Objektbaumes vom Fenster bedeckt war
               und nun neugezeichnet werden soll.
Ergebnis       Ein Fehler ist nur dann aufgetreten, wenn als Ergebnis
               0 zurckgegeben wird.
Gruppe         EObjekteF
Querverweis    EOBJECTFName           Objekt find - ermittelt, welches Objekt sich an der
               angegebenen Bildschirmposition befindet.

Definition     int objc_find( OBJECT *ob_ftree, int ob_fstartob,
                              int ob_fdepth, int ob_fmx, int ob_fmy );

Prototyp in    aes.h

Beschreibung   Die Funktion sucht in dem Objektbaum ob_ftree ab dem
               Objekt ob_fstartob bis in eine Verschachtelungstiefe
               von ob_fdepth nach der Objektnummer des Objekts, das
               unterhalb der Koordinaten ob_fmx, ob_fmy liegt.
Ergebnis       Als Ergebnis wird die Nummer des entsprechenden Objekts
               oder -1 fr "nicht gefunden" wird zurckgegeben.
Gruppe         EObjekteF
Querverweis    EOBJECTFName           Object Offset - berechnet die Position eines Objekts
               auf dem Bildschirm.

Definition     int objc_offset( OBJECT *ob_oftree, int ob_ofobject,
                                int *ob_ofxoff, int *ob_ofyoff );

Prototyp in    aes.h

Beschreibung   Die Funktion berechnet zu dem Objekt mit der Nummer
               ob_ofobject im Objektbaum ob_oftree die absoluten
               Bildschirmkoordinaten und schreibt diese in die
               Rckgabeparameter ob_ofxoff und ob_ofyoff.
Ergebnis       Ein Rckgabewert von Null signalisiert einen Fehler.
Gruppe         EObjekteF
Querverweis    EOBJECTF  Eform_centerFName           Object Order - ordnet ein Kind innerhalb des
               Objektbaumes neu an.

Definition     int objc_order( OBJECT *ob_ortree, int ob_orobject,
                               int ob_ornewpos );

Prototyp in    aes.h

Beschreibung   Die Funktion verschiebt das Objekt mit der Nummer
               ob_orobjekt im Objektbaum ob_ortree.
ob_ornewpos    0  bringt das Objekt auf die unterste Hierarchiestufe
               1  bringt das Objekt eine Stufe ber die unterste
                  Hierarchiestufe
               2  bringt das Objekt zwei Stufen ber die unterste
                  Hierarchiestufe
                          :
                          :
               -1 bringt das Objekt ganz nach oben
Ergebnis       Ein Fehler ist nur dann aufgetreten, wenn als Ergebnis
               0 zurckgegeben wird.
Gruppe         EObjekteF
Querverweis    EOBJECTFName           Object edit - editiert einen Text in einem Objekt.

Definition     int objc_edit( OBJECT *ob_edtree, int ob_edobject,
                              int ob_edchar, int *ob_edidx,
                              int ob_edkind );

Prototyp in    aes.h

Beschreibung   Die Funktion ermglicht es in Objekttypen G_FTEXT und
               G_FBOXTEXT Text einzufgen. Dabei ist ob_edtree der
               entsprechende Objektbaum, ob_edobjekt das zu
               editierende Objekt, ob_edchar das einzufgende
               Zeichen und ob_edidx die Position des Textcursors.
ob_edkind      ED_START  Reserviert.
               ED_INIT   Berechnet aus te_ptext und te_ptmptl einen
                         formatierten String und schaltet den
                         Grafikcursor ein.
               ED_CHAR   Eigentliches Einfgen, wie oben beschrieben.
               ED_END    Cursor wieder ausschalten.
Ergebnis       Ein Fehler ist nur dann aufgetreten, wenn als Ergebnis
               0 zurckgegeben wird.
Gruppe         EObjekteF
Querverweis    EOBJECTF   ETEDINFOFName           Object change - verndert die Darstellung eines Objekts
               innerhalb der angegebenen Grenzen.

Definition     int objc_change( OBJECT *ob_ctree, int ob_cobject,
                                int ob_cresvd, int ob_cxclip,
                                int ob_cyclip, int ob_cwclip,
                                int ob_chclip, int ob_cnewstate,
                                int ob_credraw );

Prototyp in    aes.h

Beschreibung   Die Funktion setzt den Objektstatus des Objekts mit der
               Nummer ob_cobject im Objektbaum ob_ctree auf den Wert
               ob_cnewstate. Ist ob_credraw gleich Eins, so wird das
               Objekt innerhalb des Begrenzungsrechtecks mit den
               Koordinaten ob_cxclip, ob_cyclip, ob_cwclip, ob_chclip
               neu gezeichnet. Der Parameter ob_cresvd hat keine
               Bedeutung, mu aber Null sein.
Ergebnis       Ein Fehler ist nur dann aufgetreten, wenn als Ergebnis
               0 zurckgegeben wird.
Gruppe         EObjekteF
Querverweis    EOBJECTF   Eob_stateFDie Datenstruktur der Objekte: EOBJECTF
----------------------------------------------------------------------

Die Datenstruktur des Objektbaums ist zwar kein Baum im Sinne eines
Binrbaums, besitzt jedoch innerhalb eines Zeigers die logischen Ver-
kettungen eines Baums, mit Vorgngern und Nachfolgern. Die Spezifika-
tion von Vorgngern und Nachfolgern wird durch Indizes auf ein Array
vorgenommen. Die Baumstruktur der einzelnen Objekte kann man sich am
leichtesten an Hand eines einfachen Beispiels veranschaulichen:
Ein Men setzt sich zunchst aus der Menleiste zusammen. Diese ent-
hlt wiederum mehrere Titeltexte. Die Titeltexte sind also direkt in
der Menleiste enthalten, sie sind beide Nachfolger des Objekts 'Men-
leiste', bewegen sich also auf der selben hierarchischen Ebene.
Das Objekt Menleiste verweist mit ob_head auf den ersten Mentitel
und mit ob_tail auf den letzten Mentitel. Im ersten Mentitel dient
der Zeiger ob_next zur Adressierung des nchsten Mentitels.
Die Verkettung weist also folgende Struktur auf:

      Menleiste:
   +---------+---------+--------+
   | Eob_headF | Eob_tailF | ...    |
   |    o    |    o    |        |
   +----|----+----|----+--------+
        |         +-------------------------+
        V                                   V
   +---------+---------+--------+       +---------+---------+--------+
   | ...     | Eob_nextF | ...    |  ...  | ...     | ...     | ...    |
   |         |    o    |        |       |         |         |        |
   +---------+----|----+--------+       +---------+---------+--------+
      1.Mentitel |                         n-ter Mentitel
                  +-----> 2.Mentitel


Welche Aktionen mit einem Objekt durchgefhrt werden drfen, wird in
ob_flags festgelegt. Der Zustand eines Objekts wird im Eintrag
Eob_stateF festgehalten. Der Eintrag ob_type legt den Objekttyp fest.
Manche Objekte bentigen zur exakten Festlegung eine zustzliche Da-
tenstruktur, wie TEDINFO oder BITBLK. In ob_spec wird dann ein Zeiger
auf diese zustzliche Struktur abgelegt. Zusammenfassend nochmals der
Gesamtaufbau der Datenstruktur fr Objekte EOBJECTF:

         +-------------+
         |  Eob_nextF    |   Index fr das nchste Objekt
         +-------------+
         |  Eob_headF    |   Index des ersten Kindes
         +-------------+
         |  Eob_tailF    |   Index des letzten Kindes
         +-------------+
         |  Eob_typeF    |   EObjektartF
         +-------------+
         |  Eob_flagsF   |   EManipulationsflagsF
         +-------------+
         |  Eob_stateF   |   EObjektstatusF
         +-------------+
         |  Eob_specF    |   EOBSPECF
         +-------------+
         |  Eob_xF       |   relative x-Koordiante zum Eltern-Objekt
         +-------------+
         |  Eob_yF       |   relative y-Koordinate zum Eltern-Objekt
         +-------------+
         |  Eob_widthF   |   Breite des Objekts
         +-------------+
         |  Eob_heightF  |   Hhe des Objekts
         +-------------+

Die Datenstruktur EOBJECTF ist in der Datei AES.H definiert. Die ent-
sprechenden Zusatzstrukturen, wie ETEDINFOF, EICONBLKF, EBITBLKF, EPARMBLKF,
EUSERBLKF und EICONBLKF, befinden sich ebenfalls in AES.H.Objektarten
----------------------------------------------------------------------

Folgende Objektarten stehen zur Auswahl:

20  G_BOX        Rechteckiger Kasten.
21  G_TEXT       Grafiktext, ob_spec zeigt auf TEDINFO-Struktur.
22  G_BOXTEXT    rechteckiger Kasten mit Grafiktext, ob_spec zeigt
                 auf TEDINFO-Struktur.
23  G_IMAGE      Bild, ob_spec zeigt auf BITBLK-Struktur.
24  G_USERDEF    Benutzerdefinierte Funktion zum Zeichnen eines
                 eigenen Objekts. ob_spec verweist auf eine USERBLK
                 Struktur.
25  G_IBOX       Transparentes Rechteck.
26  G_BUTTON     Text mit Rahmen fr Optionsauswahl.
27  G_BOXCHAR    Rechteck, mit einem Zeichen.
28  G_STRING     Zeichenkette, ob_spec zeigt auf den String.
29  G_FTEXT      Formatierter Grafiktext, ob_spec zeigt auf
                 TEDINFO-Struktur
30  G_FBOXTEXT   Rechteck mit formatiertem Grafiktext, ob_spec zeigt
                 auf TEDINFO-Struktur.
31  G_ICON       Icon-Symbol, ob_spec zeigt auf die ICONBLK-Struktur.
32  G_TITLE      Titel eines Drop-Down-Mens, ob_spec zeigt auf
                 den String.

Diese Objekte sind in der Datei AES.H als Konstanten definiert. Die
Datenstrukturen, wie EOBJECTF, ETEDINFOF, EICONBLKF, EBITBLKF, EPARMBLKF,
EUSERBLKF und EICONBLKF, befinden sich ebenfalls in AES.H.Objektstati
----------------------------------------------------------------------

Vom Objektstatus hngt es ab, wie ein Objekt spter auf dem Bildschirm
dargestellt wird.
Ein Objektstatus kann von folgendem Typ sein:

0  NORMAL      Normale Darstellung.
1  SELECTED    Inverse Darstellung, dh. das Objekt ist selektiert.
2  CROSSED     Falls die EObjektartF BOX ist, wird das Objekt mit
               durchgestrichen gezeichnet.
4  CHECKED     Am linken Objektrand befindet sich ein Hkchen.
8  DISABLED    Das Objekt wird grau dargestellt und ist nicht mehr
               selektierbar.
16 OUTLINED    Das Objekt bekommt einen Rahmen.
32 SHADOWED    Ein Schatten wird unter das Objekt gezeichnet.

Sie finden diese Konstanten in der Datei AES.H definiert.Objektflags
----------------------------------------------------------------------

Die Manipulationsflags eines Objektes bestimmen seine Eigenschaften.
Folgende Mglichkeiten stehen zu Auswahl:

0   NONE          Keine Eigenschaften.
1   SELECTABLE    Das Objekt ist selektierbar.
2   DEFAULT       Wenn der Benutzer die 'Return'- oder 'Enter'-Taste
                  drckt, wird dieses Objekt automatisch selektiert.
                  Diese Flag ist pro Baum nur einmal zugelassen.
4   EXIT          Beim Anklicken eines solchen Objektes wird der
                  Dialog beendet (siehe auch Eform_doF).
8   EDITABLE      Dieses Objekt kann vom Benutzer mittels der Tastatur
                  editiert werden.
16  RBUTTON       Haben im selben Objektbaum mehrere Objekte die
                  eigenschaft RBUTTON, so kann immer nur eines dieser
                  Objekte selektiert sein. Diese Objekte sollten alle
                  Kinder eines Elternobjekts mit der EObjektartF G_IBOX
                  sein. Wird ein anderes Objekt dieser Gruppe ausge-
                  whlt, wird das zuvor selektierte automatisch de-
                  selektiert.
32  LASTOB        Hierbei handelt es sich um das letzte Objekt inner-
                  halb eines Objektbaumes.
64  TOUCHEXIT     Der Dialog (siehe auch Eform_doF) wird beendet, sobald
                  sich der Mauszeiger ber diesem Objekt befindet, und
                  der linke Mausknopf gedrckt wird.
128 HIDETREE      Alle Kinder dieses Objektes werden von Eobjc_drawF und
                  Eobjc_findF nicht mehr bemerkt, sobald dieses Flag ge-
                  setzt ist.
256 INDIRECT      ob_spec zeigt nun auf einen weiteren Zeiger, der
                  dann auf den eigentlichen Wert von ob_spec zeigt
                  (siehe auch EOBJECTF). Auf diese Weise lassen sich
                  die Standarddatenstrukturen wie TEDINFO etc. auf
                  einfache Art erweitern.

Sie finden diese Konstanten in der Datei AES.H definiert.Die Resourcefunktionen auf einen Blick
----------------------------------------------------------------------

Ersrc_freeF   Resourcespeicher freigeben.
Ersrc_gaddrF  Adresse einer Datenstruktur ermitteln.
Ersrc_loadF   Resourcedatei laden.
Ersrc_obfixF  Zeichenkoordinaten eines Objekts in Pixelkoordinaten
            umwandeln.
Ersrc_saddrF  Adresse fr eine Datenstruktur zuordnen.


Resourcen - Grundlage der flexiblen Programmierung

ber Resourcedateien kann man nahezu alle Daten fr die Programmierung
einer Benutzeroberflche, wie zum Beispiel Mentexte und Formularber-
schriften, auerhalb eines C-Programms bequem mit einem EResourceF-
Editor verwalten. Die Daten werden lediglich beim Programmstart mit
Ersrc_loadF geladen. Anschlieend kann man mit Ersrc_gaddrF auf die
einzelnen EObjekteF, EMensF oder EFormulareF direkt zugreifen. Mit Hilfe
von Ersrc_obfixF kann man die Koordinaten eines Objekts auf die gerte-
spezifische Umgebung umrechnen.Name           Recource load - ldt eine Recourcedatei in den Speicher.

Definition     int rsrc_load( const char *re_lpfname );

Prototyp in    aes.h

Beschreibung   Die Funktion ldt ein Resourcefile mit dem Filenamen
               re_lpfname in den Speicher und initialisiert einige
               interne Zeiger.
Ergebnis       Ein Fehler ist nur dann aufgetreten, wenn als Ergebnis
               0 zurckgegeben wird.
Gruppe         EResourceF
Querverweis    Ersrc_freeFName           Resource free - gibt den Speicher eines Recourcesets
               wieder frei.

Definition     int rsrc_free( void );

Prototyp in    aes.h

Beschreibung   Die Funktion gibt den durch ein Resourcefile belegten
               Speicherplatz wieder frei.
Ergebnis       Ein Fehler ist nur dann aufgetreten, wenn als Ergebnis
               0 zurckgegeben wird.
Gruppe         EResourceF
Querverweis    Ersrc_loadFName           Resource get Address - ermittelt die Adresse eines
               Objekts in einem Resourceset.

Definition     int rsrc_gaddr( int re_gtype, int re_gindex,
                               void *gaddr );

Prototyp in    aes.h

Beschreibung   Die Funktion ermittelt die Anfangsadressen
               verschiedener Objektstrukturen von im Speicher
               geladenen Resourcefiles.
re_gindex      fr re_gtype ungleich Null die Objektnummer
gaddr          fr Werte von re_gtype zwischen 0 und 6 erhlt man die
               Adresse des Zeigers, fr alle anderen Werte erhlt man
               den Zeiger direkt
re_gtype       die Anfangsadresse welcher Struktur soll berechnet
               werden
                0       Objektbaum
                1       OBJECT
                2       TEDINFO
                3       ICONBLK
                4       BITBLK
                5       String
                6       imagedate
                7       ob_spec
                8       te_ptext
                9       te_ptmplt
                10      te_pvalid
                11      ib_pmask
                12      ib_pdata
                13      ib_ptext
                14      ib_pdate
                15      ad_frstr
                16      ad_frimg
Ergebnis       Ein Fehler ist nur dann aufgetreten, wenn als Ergebnis
               0 zurckgegeben wird.
Gruppe         EResourceF
Querverweis    Ersrc_loadF   EOBJECTF   ETEDINFOF-struktur   EBITBLKF-struktur
               EICONBLKF-strukturName           Resource store Address - speichert die Adresse eines
               Objwekts.

Definition     int rsrc_saddr( int re_stype, int re_sindex,
                               void *saddr );

Prototyp in    aes.h

Beschreibung   Die Funktion speichert die Anfangsadresse saddr einer
               Datenstruktur im Speicher.
re_stype       die Anfangsadresse welcher Struktur soll gespeichert
               werden, fr die Typencodierung: siehe Ersrc_gaddrF
re_sindex      fr re_stype ungleich Null die Objektnummer

Ergebnis       Ein Fehler ist nur dann aufgetreten, wenn als Ergebnis
               0 zurckgegeben wird.
Gruppe         EResourceF
Querverweis    Ersrc_gaddrF   EOBJECTFName           Resource Object fix - wandelt Zeichensatz- in Pixel-
               Koordinaten um.

Definition     int rsrc_obfix( OBJECT *re_otree, int re_oobject );

Prototyp in    aes.h

Beschreibung   Die Funktion konvertiert die Gre und die Position des
               Objekts mit der Nummer re_oobject im Objektbaum
               re_otree von Zeichendarstellung in Pixeldarstellung.
Ergebnis       Als Ergebnis wird immer der Wert 1 zurckgegeben.
Gruppe         EResourceFDie Formularfunktionen auf einen Blick
----------------------------------------------------------------------

Eform_alertF  Alarmbox darstellen.
Eform_buttonF Auswerten eines Mausklicks ber einem Formular.
Eform_centerF Koordinaten fr eine zentrierte Objektausgabe berechnen.
Eform_dialF   Bildschirmspeicher reservieren und freigeben.
Eform_doF     Eingaben in einem Formular aufnehmen.
Eform_errorF  EBetriebssystemFfehlermeldung ausgeben.
Eform_keybdF  Auswerten einer Tastatureingabe.

Mit den Formularfunktionen kann man bestimmte, hufig bentigte Ele-
mente fr die Benutzerfhrung sehr schnell aktivieren. Insbesondere
fr Fehlermeldungen und Ja/Nein-Entscheidungen eignen sich die beiden
Funktionen Eform_errorF und Eform_alertF hervorragend. Daneben sind in
dieser Funktionsreihe einige Funktionen zur Manipulation und Darstel-
lung von Objekten integriert: Eform_centerF, Eform_dialF und  Eform_doF.
Die beiden Funktionen Eform_buttonF und Eform_keybdF sind nicht offiziell
dokumentiert, funktionieren aber in der angegebenen Weise.Name           Form do Dialog - fhrt den dialog mit dem Anwender
               durch.

Definition     int form_do( OBJECT *fo_dotree, int fo_dostartob );

Prototyp in    aes.h

Beschreibung   Die Funktion bernimmt die Behandlung von
               Benutzeraktionen in einem Formular.
fo_dotree      Zeiger auf den Objektbaum der Dialogbox
fo_dostartob   Nummer des Editobjekts, wo sich zu Dialogbeginn der
               Textcursor befinden soll (0 falls der Objektbaum kein
               Editobjekt enthlt)
Ergebnis       Als Ergebnis wird der Index des Objekts zurckgegeben,
               mit dessen Hilfe der Dialog beendet wurde. Bei einem
               Doppelklick wird zustzlich das 15. Bit gesetzt.
Gruppe         EFormulareF
Querverweis    EOBJECTF   Eob_typeF   Eob_flagsFName           Form alert box - zeichnet eine Auswahlbox.

Definition     int form_alert( int fo_adefbttn,
                               const char *fo_astring );

Prototyp in    aes.h

Beschreibung   Die Funktion stellt eine Alarmbox auf dem Bildschirm
               dar und gibt die Nummer des Buttons zurck, mit dem die
               Alarmbox verlassen wurde. Der Bildschirmhintergrund
               wird dabei vom AES gesichert.
fo_adefbttn    Nummer des Defaultbuttons der darzustellenden Alarmbox
                0  kein Defaultbutton
                1  erster Button
                2  zweiter Button
                3  dritter Button
fo_astring     Zeiger auf den String, der das Aussehen der Alarmbox
               bestimmt. Format: "[n][lines][buttons]" wobei
n              die Nummer des einzublendenden Icons ist
                0  kein Icon
                1  Ausrufezeichen
                2  Fragezeichen
                3  Stopschild
lines          hchstens fnf Textzeilen mit maximal 40 Zeichen, die
               durch das Zeichen '|' getrennt werden
buttons        Texte fr hchstens drei Buttons, die durch das Zeichen
               '|' getrennt werden.
Ergebnis       Als Ergebnis wird die Nummer der ausgewhlten Option
               zurckgeliefert.
Gruppe         EFormulareFName           Form Dialog Space- reserviert oder gibt Speicherplatz
               frei fr ein Dialogobjekt.

Definition     int form_dial( int fo_diflag, int fo_dilittlx,
                              int fo_dilittly, int fo_dilittlw,
                              int fo_dilittlh, int fo_dibigx,
                              int fo_dibigy, int fo_dibigw,
                              int fo_dibigh );

Prototyp in    aes.h

Beschreibung   Die Funktion form_dial bernimmt mehrere verschiedene
               Aufgaben, um eine Dialogbox darzustellen, in
               Abhngigkeit vom Parameter fo_diflag.
fo_diflag      FMD_START   reserviert Bildschirmspeicher fr die
                           Dialogbox
               FMD_GROW    zeichnet eine sich ffnende Box von den
                           Anfangskoordinaten zu den Endkoordinaten
                           (Egraf_growboxF)
               FMD_SHRINK  zeichnet eine sich schlieende Box von den
                           Anfangskoordinaten zu den Endkoordinaten
                           (Egraf_shrinkboxF)
               FMD_FINISH  gibt den Bildschirmspeicher wieder frei und
                           verursacht eine WM_REDRAW Message
                           (siehe auch unter: Eevnt_mesagF)
fo_dilittlx,   x und y Koordinate, Breite und Hhe des kleinsten,
fo_dilittly,   sich ausdehnenden bzw. schlieenden Rechtecks.
fo_dilittlw,
fo_dilittlh
fo_dibigx,     x und y Koordinate, Breite und Hhe des grten, sich
fo_dibigy,     ausdehnenden bzw. schlieenden Rechtecks.
fo_dibigw,
fo_dibigh
Ergebnis       Ein Fehler ist nur dann aufgetreten, wenn als Ergebnis
               0 zurckgegeben wird.
Gruppe         EFormulareF
Querverweis    Eevnt_mesagF   Egraf_growboxF   Egraf_shrinkboxFName           Form Error - stellt eine Fehlerbox fr TOS-Fehler dar.

Definition     int  form_error( int fo_enum );

Prototyp in    aes.h

Beschreibung   Gibt eine Fehlerbox auf dem Bildschirm aus, die die
               bergebene MS-DOS Fehlernummer fo_enum im Klartext
               beinhaltet. Man mu also erst die GEMDOS Fehlernummer
               in die entsprechende MS-DOS Fehlernummer umrechnen.
Ergebnis       Als Ergebnis wird die Nummer (1-3) der ausgewhlten
               Option zurckgegeben. Bei der jetzigen GEM-Version
               steht jedoch nur eine Option zur Verfgung.
Gruppe         EFormulareFName           Form centered Object - zentriert ein Objekt auf dem
               Bildschirm.

Definition     int  form_center( OBJECT *fo_ctree, int *fo_cx,
                                  int *fo_cy, int *fo_cw, int *fo_ch );

Prototyp in    aes.h

Beschreibung   Die Funktion plaziert ein beliebiges Objekt, auf das
               fo_ctree zeigt, in der Bildschirmmitte und schreibt die
               errechneten Koordinaten in fo_cx, fo_cy, fo_cw, fo_ch.
Ergebnis       Als Ergebnis wird immer eine 1 zurckgegeben.
Gruppe         EFormulareF
Querverweis    EOBJECTF  Eobjc_offsetFName           Form Keyboard - Nimmt Tastatureingaben in ein Formular
               vor.

Definition     int form_keybd( OBJECT *fo_ktree, int fo_kobject,
                               int fo_kobnext, int fo_kchar,
                               int *fo_knxtobject, int *fo_knxtchar );

Prototyp in    aes.h

Beschreibung   Die Funktion bernimmt Eingaben von der Tastatur in ein
               Formular auf das fo_ktree zeigt. Dabei ist fo_kchar das
               einzutragende Zeichen, fo_kobject das aktuelle
               Editobjekt und fo_obnext, das nchste Editobjekt. In
               fo_knxtobject steht das neue Editobjekt und in
               fo_knxtchar entweder Null, d. h. die Funktion konnte
               mit fo_kchar etwas anfangen oder den Orginalwert, d. h.
               es handlet sich um einen Buchstaben, den man mit
               Eobjc_editF einfgen mu.
Ergebnis       Der Rckgabewert der Funktion ist Null, falls ein
               Exitobjekt gewhlt wurde, sonst ist er positiv.
Gruppe         EFormulareF
Querverweis    EOBJECTF   Eobjc_editF   Eform_buttonFName           Form Button - Nimmt Maustasteneingaben in ein Formular
               vor.

Definition     int form_button( OBJECT *fo_btree, int fo_bobject,
                                int fo_bclicks, int *fo_bnxtobj );

Prototyp in    aes.h

Beschreibung   Die Funktion behandelt Mausknopfevents, die in einem
               Formular, auf das fo_btree zeigt, auftreten und
               bernimmt alle Ttigkeiten die aus diesem Event
               resultieren (z. B. Invertierung von Buttons, die
               selektiert wurden). Dabei ist fo_bobject das aktuelle
               Editobjekt und fo_bclicks die Anzahl der Mausklicks. In
               fo_bnxtobj erhlt man das neue Editobjekt.
Ergebnis       Der Rckgabewert der Funktion ist Null, falls ein
               Exitobjekt selektiert wurde, sonst ist er positiv.
Gruppe         EFormulareF
Querverweis    EOBJECTF   Eevnt_multiF   Eform_keybdFDie Menfunktionen im berblick
----------------------------------------------------------------------

Emenu_barF        Menleiste darstellen oder entfernen.
Emenu_icheckF     Hkchen bei Menoptionen setzen oder lschen.
Emenu_ienableF    Menoptionen setzen oder lschen.
Emenu_registerF   Menoptionen einfgen.
Emenu_textF       Text von Meneintrgen ndern.
Emenu_tnormalF    Mentitel invertieren.

Die wichtigste Funktion unter den Menfunktionen ist zweifellos die
Funktion Emenu_barF. Damit wird ein kompletter Menbaum dargestellt,
dessen Adresse man sich vorzugsweise aus einer EResourceFdatei holt.
Um einzelne Menfunktionen whrend des Programmablaufs flexibel ein-
und auszuschalten, verwendet man die Funktion Emenu_ienableF. Schalter
lassen sich sehr gut mit Emenu_icheckF verwalten. Mit Emenu_registerF
kann man zustzliche Menoptionen whrend des Programmlaufs bequem
einfgen. Wenn das Men nicht mehr gebraucht wird kann es mit
Emenu_barF wieder vollstndig entfernt werden.Name           Menu Bar - zeigt oder lscht eine Menleiste.

Definition     int menu_bar( OBJECT *me_btree, int me_bshow );

Prototyp in    aes.h

Beschreibung   Die Funktion lscht (me_bshow = 0) oder stellt
               (me_bshow = 1) die Menleiste des Objektbaumes dar,
               auf den me_btree zeigt.
Ergebnis       Ein Fehler ist nur dann aufgetreten, wenn als Ergebnis
               0 zurckgegeben wird.
Gruppe         EMensF
Querverweis    EOBJECTFName           Menu Text normal - stellt einen Mentitel invers
               oder normal dar.

Definition     int menu_tnormal( OBJECT *me_ntree, int me_ntitle,
                                 int me_nnormal );

Prototyp in    aes.h

Beschreibung   Die Funktion stellt den Titel mit der Objektnummer
               me_ntitle im Menbaum me_ntree entweder normal
               (me_nnormal = 1) oder invers (me_nnormal = 0) dar.
Ergebnis       Ein Fehler ist nur dann aufgetreten, wenn als Ergebnis
               0 zurckgegeben wird.
Gruppe         EMensFName           Menu indicate Check - schreibt oder lscht ein
               Hckchen in der Menleiste.

Definition     int menu_icheck( OBJECT *me_ctree, int me_citem,
                                int me_ccheck );

Prototyp in    aes.h

Beschreibung   Falls me_ccheck gleich Null ist, so wird das Hckchen
               vor dem Meneintrag me_citem im Objektbaum me_ctree
               entfernt, falls me_ccheck gleich Eins ist, so wird das
               Hckchen vor den Eintrag gesetzt.
Ergebnis       Bei einem Rckgabewert von Null ist ein Fehler
               aufgetreten.
Gruppe         EMensF
Querverweis    EOBJECTF   Eob_stateFName           Menu indicate enable - aktiviert oder desaktiviert
               einen Menpunkt.

Definition     int menu_ienable( OBJECT *me_etree, int me_eitem,
                                 int me_eenable );

Prototyp in    aes.h

Beschreibung   Die Funktion setzt den Objektstatus des Meneintrags
               me_eitem im Objektbaum me_etree auf DISABLED bzw.
               NORMAL, falls me_eenable gleich Null bzw. Eins ist.
Ergebnis       Ein Fehler ist nur dann aufgetreten, wenn als Ergebnis
               0 zurckgegeben wird.
Gruppe         EMensF
Querverweis    EOBJECTF   Eob_stateFName           Menu Register - fgt ein Accessory im
               Accessorymen ein.

Definition     int menu_register( int me_rapid,
                                  const char *me_rpstring );

Prototyp in    aes.h

Beschreibung   Die Funktion hat zwei Aufgaben. Zum einen placiert sie
               den String me_rpstring in der Desk-Accessory-Liste.
               Zum anderen gibt sie die Nummer des Meneintrags
               (0 - 5) zurck.
Ergebnis       Ein Rckgabewert von -1 signalisiert einen Fehler.
               me_rapid ist der Accessoryidentifikator.
Gruppe         EMensFName           Menu Text - ersetzt den Text eines Meneintrags.

Definition     int menu_text( OBJECT *me_ttree, int me_titem,
                              const char *me_ttext );

Prototyp in    aes.h

Beschreibung   Die Funktion ndert den Text des Meneintrages me_titem
               im Objektbaum me_ttree in den Text, auf den me_ttext
               zeigt.
Ergebnis       Ein Fehler ist nur dann aufgetreten, wenn als Ergebnis
               0 zurckgegeben wird.
Gruppe         EMensF
Querverweis    EOBJECTFDie Grafik-Funktionen auf einen Blick
----------------------------------------------------------------------

Egraf_dragboxF   Verschieben eines Rechtecks
Egraf_growboxF   Animation eines sich vergrernden Rechtecks.
Egraf_handleF    Kennung der Bildschirm-Arbeitsstation ermitteln.
Egraf_mkstateF   Status der Maustasten ermitteln.
Egraf_mouseF     Mausdarstellung verndern.
Egraf_mboxF      Rechteckverschiebung darstellen.
Egraf_rubboxF    Rechteckhlle (Gummiband) darstellen.
Egraf_shrinkboxF Animation eines sich verkleinernden Rechtecks.
Egraf_slideboxF  Vertikale oder horizontale Verschiebung eines Rechtecks.
Egraf_watchboxF  Objektstatus an Position des Mauszeigers koppeln.

In dieser Funktionsgruppe befinden sich einige Funktionen zur allge-
meinen Programmierung unter EAESF, wie Egraf_handleF und Egraf_mouseF, in
erster Linie aber Funktionen, die vor allem zur grafischen Animation
verwendet werden, wie Egraf_shrinkboxF und Egraf_growboxF, die jedoch
beide aus urheberrechtlichen Grnden in neueren EGEMF-Implementationen
nicht mehr vorhanden sein werden. Bisher sind jedoch noch alle Atari-
STs mit diesen Funktionen ausgeliefert worden.Name           Graphics Rubberbox - zeichnet eine 'Rubberbox'
               (Gummirechteck) auf den Bildschirm.

Definition     int graf_rubbox( int gr_rx, int gr_ry,
                                int gr_minwidth, int gr_minheight,
                                int *gr_rlastwidth,
                                int *gr_rlastheight );
               oder

               int graf_rubberbox(...

Prototyp in    aes.h

Beschreibung   Die Funktion stellt ein Gummiband in Form eines
               Rechtecks auf dem Bildschirm dar, dessen obere linke
               Ecke festbleibt und dessen untere rechte Ecke solange
               bewegt werden kann, wie die linke Maustaste gedrckt
               wird.
gr_rx, gr_ry   Koordinaten der linken, oberen Ecke
gr_minwidth    kleinste Breite des Gummibandes
gr_minheight   kleinste Hhe des Gummibandes
gr_rlastwidth  Breite des Gummibandes bei Loslassen des  Mausknopfs
gr_rlastheight Hhe des Gummibandes bei Loslassen des Mausknopfs
Ergebnis       Ein Fehler ist nur dann aufgetreten, wenn als Ergebnis
               0 zurckgegeben wird.
Gruppe         EGrafikfunktionenFName           Graphics drag Box - verschiebt ein Rechteck mit
               der Maus.

Definition     int graf_dragbox( int gr_dwidth, int gr_dheight,
                                 int gr_dstartx, int gr_dstarty,
                                 int gr_dboundx, int gr_dboundy,
                                 int gr_dboundw, int gr_dboundh,
                                 int *gr_dfinishx, int *gr_dfinishy );

Prototyp in    aes.h

Beschreibung   Die Funktion ermglicht das Verschieben eines kleineren
               Rechtecks innerhalb eines greren Begrenzungsrechtecks.
gr_dwidth      Breite des zu verschiebenden Rechtecks
gr_dheight     Hhe des zu verschiebenden Rechtecks
gr_dstartx     x-Anfangskoordinate des zu verschiebenden Rechtecks
gr_dstarty     y-Anfangskoordinate des zu verschiebenden Rechtecks
gr_dboundx     x-Koordinate des Begrenzungsrechtecks
gr_dboundy     y-Koordinate des Begrenzungsrechtecks
gr_dboundw     Breite des Begrenzungsrechtecks
gr_dboundh     Breite des Begrenzungsrechtecks
gr_dfinishx    x-Koordinate des zu verschiebenden Rechtecks
               beim Loslassen des Mausknopfs
gr_dfinishy    y-Koordinate des zu verschiebenden Rechtecks
               beim Loslassen des Mausknopfs
Ergebnis       Ein Fehler ist nur dann aufgetreten, wenn als Ergebnis
               0 zurckgegeben wird.
Gruppe         EGrafikfunktionenFName           Graphics move Box - verschiebt ein Rechteck mit
               der Maus.

Definition     int graf_mbox( int gr_mwidth, int gr_mheight,
                              int gr_msourcex, int gr_msourcey,
                              int gr_mdestx, int gr_mdesty );

               oder

               int graf_movebox(...

Prototyp in    aes.h

Beschreibung   Die Funktion zeichnet ein Rechteck mit den Maen
               gr_mwidth und gr_mheight, das sich von den
               Ausgangskoordinaten gr_msourcex und gr_msourcey zu den
               Koordinaten gr_mdestx und gr_mdesty bewegt.
Ergebnis       Ein Fehler ist nur dann aufgetreten, wenn als Ergebnis
               0 zurckgegeben wird.
Gruppe         EGrafikfunktionenFName           Graphics grow Box - zeichnet ein sich vergrerndes
               Rechteck.

Definition     int graf_growbox( int gr_gstx, int gr_gsty,
                                 int gr_gstwidth, int gr_gstheight,
                                 int gr_gfinx, int gr_gfiny,
                                 int gr_gfinwidth, int gr_gfinheight);

Prototyp in    aes.h

Beschreibung   Die Funktion zeichnet ein sich ausdehnendes Rechteck
               der Anfangsgre gr_gstwidth und gr_gstheight mit den
               Anfangskoordinaten gr_gstx und gr_gsty bis zur Endgre
               gr_gfinwidth und gr_gfinheight mit den Endkoordinaten
               gr_gfinx und gr_gfiny.
Ergebnis       Ein Fehler ist nur dann aufgetreten, wenn als Ergebnis
               0 zurckgegeben wird.
Gruppe         EGrafikfunktionenF
Querverweis    Eform_dialF   Egraf_shrinkboxFName           Graphics shrink Box - zeichnet ein sich verkleinerndes
               Rechteck.

Definition     int graf_shrinkbox(int gr_sfinx, int gr_sfiny,
                                  int gr_sfinwidth, int gr_sfinheight,
                                  int gr_sstx, int gr_ssty,
                                  int gr_sstwidth, int gr_sstheight);

Prototyp in    aes.h

Beschreibung   Die Funktion zeichnet ein sich zusammenziehendes
               Rechteck der Anfangsgre gr_sstwidth und gr_sstheight
               mit den Anfangskoordinaten gr_sstx und gr_ssty bis zur
               Endgre gr_sfinwidth und gr_sfinheight mit den
               Endkoordinaten gr_sfinx und gr_sfiny.
Ergebnis       Ein Fehler ist nur dann aufgetreten, wenn als Ergebnis
               0 zurckgegeben wird.
Gruppe         EGrafikfunktionenF
Querverweis    Eform_dialF   Egraf_growboxFName           Graphics watch Box - selektiert ein Objekt und
               berwacht die Mausbewegungen bezglich dieses Objekts.

Definition     int graf_watchbox( OBJECT *gr_wptree, int gr_wobject,
                                  int gr_winstate, int gr_woutstate );

Prototyp in    aes.h

Beschreibung   Die Funktion setzt den Objektstatus des Objekts
               gr_wobject im Objektbaum gr_wptree in Abhngigkeit der
               Position des Mauszeigers innerhalb oder auerhalb eines
               Rechtecks. Die Funktion wird beim Loslassen des
               Mausknopfs verlassen. Dabei ist gr_winstate der
               Objektstatus, falls sich der Mauszeiger innerhalb des
               Rechtecks befindet, und gr_woutstate der Objektstatus,
               falls sich der Mauszeiger auerhalb des Rechtecks
               befindet.
Ergebnis       Der Rckgabewert der Funktion ist entweder gleich Eins
               fr "Mauszeiger innerhalb des Objekts" oder gleich Null
               fr "Mauszeiger auerhalb des Objekts".
Gruppe         EGrafikfunktionenF
Querverweis    EOBJECTFName           Graphics slide Box - ermittelt die Position der
               Schieberegler.

Definition     int graf_slidebox( OBJECT *gr_slptree, int gr_slparent,
                                  int gr_slobject, int gr_slvh );

Prototyp in    aes.h

Beschreibung   Die Funktion ermglicht es einen "Slider" recht einfach
               zu realisieren. Solange die linke Maustaste gedrckt
               wird, kann das Objekt mit der Nummer gr_slobjekt
               innerhalb des Mutterobjekts gr_slparent im Objektbaum
               gr_slptree horizontal (gr_slvh = 0) oder vertikal
               (gr_slvh = 1) verschoben werden.
Ergebnis       Die Funktion liefert die relative Position zwischen 0
               (ganz links bzw. ganz oben) und 1000 (ganz rechts bzw.
               ganz unten) des "Sliders" als Funktionswert.
Gruppe         EGrafikfunktionenF
Querverweis    EOBJECTFName           Graphics handle - ermittelt den VDI-Handle der
               Arbeitsstation.

Definition     int graf_handle( int *gr_hwchar, int *gr_hhchar,
                                int *gr_hwbox, int *gr_hhbox );

Prototyp in    aes.h

Beschreibung   Die Funktion ermittelt die Kennung (EhandleF) der
               VDI-Workstation, auf die die Ausgaben des AES gehen.
               Zustzlich bekommt man noch Information ber die Gre
               des Zeichensatzes. Dabei sind gr_hwchar und gr_hhchar
               die Breite und Hhe des Zeichensatzes in
               Bildschirmpunkten und gr_hwbox und gr_hhbox die Breite
               und Hhe eines Rechtecks, das jedes einzelne Zeichen
               vollstndig umgibt.
Ergebnis       Als Ergebnis erhlt man den VDI-Handle.
Gruppe         EGrafikfunktionenF
Querverweis    Ev_opnvwkFName           Graphics Mouse - verndert die Darstellung des
               Mauszeigers.

Definition     int graf_mouse( int gr_monumber, EMFORMF *gr_mofaddr );

Prototyp in    aes.h

Beschreibung   Die Funktion whlt die neue Form gr_monumber fr den
               Mauszeiger aus.
gr_monumber    ARROW                   0
               TEXT_CRSR               1
               HOURGLASS,BUSYBEE       2
               POINT_HAND              3
               FLAT_HAND               4
               THIN_CROSS              5
               THICK_CROSS             6
               OUTLN_CROSS             7
               USER_DEF                255  eigene Mausform
               M_OFF                   256  Mauszeiger abschalten
               M_ON                    257  Mauszeiger anschalten
               Falls gr_monumber gleich USER_DEF, dann ist der
               Parameter ein Zeiger auf die Struktur EMFORMF, die das
               Aussehen des Mauszeigers festlegt.
Ergebnis       Ein Fehler ist nur dann aufgetreten, wenn als Ergebnis
               0 zurckgegeben wird.
Gruppe         EGrafikfunktionenFName           Graphics Mouse and Keyboard Status - ermittelt
               den Status von Maus und Tastatur.

Definition     int graf_mkstate( int *gr_mkmx, int *gr_mkmy,
                                 int *gr_mkmstate, int *gr_mkkstate );

Prototyp in    aes.h

Beschreibung   Die Funktion ermittelt die aktuelle Mausposition und
               den Zustand der  Maustasten und der Sondertasten der
               Tastatur.
               gr_mkmx,
               gr_mkmy        Position des Mauszeigers
               gr_mkkstate    Sondertasten der Tastatur (Eevnt_buttonF)
               gr_mkmstate    Zustand der Mausknpfe (Eevnt_buttonF)
Ergebnis       Als Ergebis wird immer eine 1 zurckgegeben.
Gruppe         EGrafikfunktionenFDie Applikationsfunktionen auf einen Blick
----------------------------------------------------------------------

Eappl_exitF    AES-Anwenderprogramm abmelden und Kennung freigeben.
Eappl_findF    AES-Kennung einer anderen AES-Applikation ermitteln.
Eappl_initF    AES-Anwendung anmelden.
Eappl_readF    AES-Mitteilungen lesen.
Eappl_tplayF   Ereignisse abspielen.
Eappl_trecordF Ereignisse aufzeichnen.
Eappl_writeF   AES-Mitteilungen schreiben.

Jede Applikation unter EGEMF hat ein Anfang und ein Ende: Mit Eappl_initF
meldet man sie ordnungsgem unter EGEMF an. Am Ende eines Programms
verlt man das EAESF-System mit Eappl_exitF. Um mit anderen Applika-
tionen kommunizieren zu knnen, mu man zuerst mit Eappl_findF deren
Kennung ermitteln. Anschlieend kann man mit Eappl_writeF Mitteilungen
an andere Programme weitergeben. Mit Eappl_readF kann man dann lngere
Mitteilungen empfangen, fr krzere (bis zu 16 Bytes) empfiehlt sich
jedoch der Gebrauch der Funktion Eevnt_mesagF. Insbesondere fr De-
monstrationen und die Implementation von Makro-Recordern eignen sich
die Funktionen Eappl_trecordF und Eappl_tplayF. Damit lassen sich EGEMF-
Ereignisse aufzeichnen und wieder abspielen.Name           Application Initialization - meldet die Applikation
               unter AES an.

Definition     int appl_init( void );

Prototyp in    aes.h

Beschreibung   Der Aufruf von appl_init meldet das Programm beim AES
               an, initialisiert die internen Parameterbergabefelder
               und gibt eine nichtnegative Zahl als
               Applikationsidentifikation zurck.
Ergebnis       Eine Zahl kleiner Null signalisiert einen Fehler.
Gruppe         EApplikationF
Querverweis    Eappl_findF   Eappl_exitFName           Application find - ermittelt die Applikationsnummer
               einer AES-Anwendung.

Definition     int appl_find( const char *ap_fpname );

Prototyp in    aes.h

Beschreibung   Diese Funktion ermittelt die Applikationsidentifikation
               einer anderen, parallel laufenden Applikation. Dabei
               zeigt ap_fpname auf den Namen der Applikation deren
               Identifikator gefunden werden soll.
               Wichtig: Der Name mu unbedingt acht Zeichen lang sein,
               ist er krzer, so mu er mit Leerzeichen aufgefllt
               werden.
Ergebnis       Ein Rckgabewert kleiner Null kennzeichnet einen
               aufgetretenen Fehler.
Gruppe         EApplikationFName           Application read - empfngt eine Mitteilung einer
               anderen Applikation.

Definition     int appl_read( int ap_rid, int ap_rlength,
                              void *ap_rpbuff );

Prototyp in    aes.h

Beschreibung   Mit dieser Funktion ist es mglich nach einem
               Message-Event  ap_rlength Bytes aus dem Buffer
               ap_rpbuff zu lesen. ap_rid ist dabei die
               Applikationsidentifikation der Applikation, die die
               Nachricht gesendet hat.
Ergebnis       Wird eine Null zurckgegeben, so ist ein Fehler
               aufgetreten, sonst wird eine positive Zahl als
               Ergebnis zurckgegeben.
Gruppe         EApplikationF
Querverweis    Eappl_initF   Eappl_writeF   Eevnt_mesagFName           Application write - sendet eine Mitteilung an eine
               ander Applikation.

Definition     int appl_write( int ap_wid, int ap_wlength,
                               void *ap_wpbuff );

Prototyp in    aes.h

Beschreibung   Mit appl_write ist es mglich einer parallel laufenden
               Applikation, deren Applikationsidentifikator ap_wid
               ist, ap_wlength Bytes aus dem Buffer ap_wpbuff als
               Nachricht zu schicken.
Ergebnis       Wird eine Null zurckgegeben, so ist ein Fehler
               aufgetreten, sonst wird eine positive Zahl als
               Ergebnis zurckgegeben.
Gruppe         EApplikationF
Querverweis    Eappl_initF   Eappl_readF   Eappl_findFName           Application exit - meldet eine Applikation vom AES ab.

Definition     int appl_exit( void );

Prototyp in    aes.h

Beschreibung   Meldet eine Applikation beim AES wieder ab und gibt
               deren Applikationsidentifikator wieder frei.
Ergebnis       Ein Fehler ist nur dann aufgetreten, wenn als Ergebnis
               0 zurckgegeben wird.
Gruppe         EApplikationF
Querverweis    Eappl_initFName           Application play - spielt aufgezeichnete AES-
               Ereignise ab.

Definition     int appl_tplay( void *ap_tpmem, int ap_tpnum,
                               int ap_tpscale );

Prototyp in    aes.h

Beschreibung   Die Funktion appl_tplay erlaubt es eine Reihe von
               aufgezeichneten Benutzeraktionen (Events) wieder
               abzuspielen. ap_tpmem zeigt dabei auf den
               Aufzeichnungsbuffer, ap_tpnum ist die Anzahl der
               abzuspielenden Events und ap_tpscale gibt die
               Wiederholungsgeschwindigkeit an ( 50 entspricht z. B.
               halber Geschwindigkeit)
Ergebnis       Als Ergebnis wird immer der Wert 1 zurckgegeben.
Gruppe         EApplikationF
Querverweis    Eappl_trecordFName           Application record - nimmt AES-Ereignisse auf.

Definition     int appl_trecord( void *ap_trmem, int ap_trcount );

Prototyp in    aes.h

Beschreibung   Die Funktion ermglicht es, eine Anzahl von ap_trcount
               an Benutzeraktionen (Events) in dem Buffer, auf den
               ap_trmem zeigt, aufzuzeichnen.
Ergebnis       Als Ergebnis wird die Anzahl der tatschlich
               aufgezeichneten Ereignisse zurckgeliefert.
Gruppe         EApplikationF
Querverweis    Eappl_tplayFClipboardfunktionen

Unter EGEMF gibt es die Mglichkeit, Informationen in einem Zwischen-
speicher, dem Clipboard, abzulegen. Das Clipboard ist als Datei reali-
siert. Man kann Daten hineinschreiben und wieder auslesen.

Die Clipboardfunktionen auf einen Blick:

Escrp_readF   Aus dem Clipboard lesen.
Escrp_writeF  Ins Clipboard schreiben.Name           Scrap read - liest das Clipboard ein.

Definition     int scrp_read( char *sc_rpscrap );

Prototyp in    aes.h

Beschreibung   Die Funktion ermittelt den aktuellen Pfadnamen fr die
               Zwischenablage und schreibt ihn in sc_rpscrap.
Ergebnis       Ein Fehler ist nur dann aufgetreten, wenn als Ergebnis
               0 zurckgegeben wird.
Gruppe         EZwischenspeicherF
Querverweis    Escrp_writeFName           Scrap write - schreibt in ein Clipboard.

Definition     int scrp_write( char *sc_wpscrap );

Prototyp in    aes.h

Beschreibung   Die Funktion setzt den Pfadnamen fr die Zwischenablage
               auf den neuen Namen sc_wpscrap.
Ergebnis       Ein Fehler ist nur dann aufgetreten, wenn als Ergebnis
               0 zurckgegeben wird.
Gruppe         EZwischenspeicherF
Querverweis    Escrp_readFShellfunktionen

Fr den Aufruf anderer Applikationen und der Kommunikation mit diesen
Programmen sind die Shellfunktionen zustndig. Sie stellen auch
weitere EBetriebssystemFinformationen zur Verfgung.

Die Shellfunktionen auf einen Blick:

Eshel_envrnF  Environment-Variable abfragen.
Eshel_findF   Datei suchen.
Eshel_getF    Environment-Puffer lesen.
Eshel_putF    Environment-Puffer schreiben.
Eshel_readF   Kommandozeilenparameter lesen.
Eshel_writeF  Applikation starten.Name           Shell read - liest die Kommandozeilen-Parameter
               der Applikation.

Definition     int shel_read( char *sh_rpcmd, char *sh_rptail );

Prototyp in    aes.h

Beschreibung   Die Funktion kann fr eine Applikation den Pfadnamen
               und Kommandozeile bestimmen, wenn diese Applikation mit
               Eshel_writeF gestartet wurde. Nach Beendigung der
               Funktion beinhaltet sh_rptail den Pfadnamen und
               sh_rpcmd die Kommandozeile.
Ergebnis       Ein Fehler ist nur dann aufgetreten, wenn als Ergebnis
               0 zurckgegeben wird.
Gruppe         EShellF
Querverweis    Eshel_writeFName           Shell write - startet eine Andere Applikation.

Definition     int shel_write( int sh_wdoex, int sh_wisgr,
                               int sh_wiscr, char *sh_wpcmd,
                               char *sh_wptail );

Prototyp in    aes.h

Beschreibung   Mit der Funktion shel_write kann man aus einer
               Applikation eine nachfolgende Applikation starten.
sh_wdoex       0  kein weiteres Programm laden und starten
               1  ein neues Programm laden und starten
sh_wisgr       0  es handelt sich um kein Grafikprogramm
               1  es handelt sich um ein Grafikprogramm
sh_wiscr       wird ignoriert
sh_wpcmd       Pfadname des zu startenden Programms
sh_wptail      Kommandozeile fr das zu startende Programm
Ergebnis       Ein Fehler ist nur dann aufgetreten, wenn als Ergebnis
               0 zurckgegeben wird.
Gruppe         EShellFName           Shell find - sucht Dateien.

Definition     int shel_find( char *sh_fpbuff );

Prototyp in    aes.h

Beschreibung   Mit der Funktion shel_find kann man eine Datei mit dem
               Namen sh_fpbuff im Inhaltsverzeichnis suchen. Die Datei
               wird dabei im Wurzelverzeichnis, im aktuellen Directory
               und unter Bercksichtigung aller Suchpfade, die in der
               Environmentvariable 'PATH=' angegeben sind, gesucht.
               Nach der Bearbeitung der Funktion findet man den ganzen
               Zugriffspfad in sh_fpbuff.
Ergebnis       Ein Rckgabewert von Null signalisiert 'Datei nicht
               gefunden'.
Gruppe         EShellF
Querverweis    Eshel_envrnFName           Shell environment - ermittelt den Wert von
               Environmentvariablen.

Definition     int shel_envrn( char **sh_epvalue, char *sh_eparm );

Prototyp in    aes.h

Beschreibung   Die Funktion ermglicht es den Wert von verschiedenen
               Environmentvariablen zu ermitteln. Dazu bergibt man
               den Namen der Variable in sh_eparm und erhlt einen
               Zeiger auf den Wert der Variablen in sh_epvalue.
Ergebnis       Die Funktion liefert als Ergebnis immer 1.
Gruppe         EShellFName           Shell put - schreibt in den GEM-Environment-Puffer.

Definition     int shel_put( char *sh_paddr, int sh_plen );

Prototyp in    aes.h

Beschreibung   Die Funktion schreibt in den Environment-Puffer des
               AES. Dabei werden sh_plen Zeichen aus dem
               Speicherbereich, auf den sh_paddr zeigt, in den
               Environment-Puffer kopiert.
Ergebnis       Ein Rckgabewert von Null signalisiert einen Fehler.
Gruppe         EShellF
Querverweis    Eshel_getF   Eshel_envrnF   Eshel_findFName           Shell get - liest den GEM-Environment-Puffer.

Definition     int shel_get( char *sh_gaddr, int sh_glen );

Prototyp in    aes.h

Beschreibung   Die Funktion liest aus dem Environment-Puffer des AES
               sh_glen Zeichen und kopiert sie in den Speicherbereich
               auf den sh_gaddr zeigt.
Ergebnis       Ein Rckgabewert von Null signalisiert einen Fehler.
Gruppe         EShellF
Querverweis    Eshel_putFDateiauswahl

Zur Auswahl eines Dateinamens mit Hilfe einer Dialogbox dienen die
Funkitonen:

Efsel_inputF    Dateinamen auswhlen.
Efsel_exinputF  Dateinamen auswhlen. 
              (erst ab TOS Version 1.4 verfgbar)Name           File Selection Input - selektiert Dateinamen.

Definition     int fsel_input( char *fs_iinpath, char *fs_iinsel,
                               int *fs_iexbutton );

Prototyp in    aes.h

Beschreibung   Die Funktion stellt eine Dateiauswahlbox mit dem
               Pfadnamen, auf den fs_iinpath zeigt, auf dem Bildschirm
               dar und erlaubt es dem Benutzer, ein File auszuwhlen.
               Der eventuell vernderte Pfadname steht dann in dem
               Buffer, auf den fs_iinpath zeigt. Der ausgewhlte
               Filename steht in fs_iinsel, und fs_iexbutton enthlt
               die Nummer des Knopfes, mit dem die Fileselektorbox
               verlassen wurde (0 = CANCEL, 1 = OK).
Ergebnis       Ein Fehler ist nur dann aufgetreten, wenn als Ergebnis
               0 zurckgegeben wird.
Gruppe         EDateiauswahlF
Querverweis    Efsel_exinputFName           File Selection Input - selektiert Dateinamen.
               (erst ab TOS Version 1.4 verfgbar)

Definition     int fsel_exinput( char *fs_einpath, char *fs_einsel,
                               int *fs_eexbutton, char *elabel );

Prototyp in    aes.h

Beschreibung   Die Funktion stellt eine Dateiauswahlbox mit dem
               Pfadnamen, auf den fs_einpath zeigt, auf dem Bildschirm
               dar und erlaubt es dem Benutzer, ein File auszuwhlen.
               Der eventuell vernderte Pfadname steht dann in dem
               Buffer, auf den fs_einpath zeigt. Der ausgewhlte
               Filename steht in fs_einsel, und fs_eexbutton enthlt
               die Nummer des Knopfes, mit dem die Fileselektorbox
               verlassen wurde (0 = CANCEL, 1 = OK).
               Mit elabel kann zustzlich ein Titel bergeben werden,
               der als berschrift in der Dateiauswahlbox angezeigt
               wird.
Ergebnis       Ein Fehler ist nur dann aufgetreten, wenn als Ergebnis
               0 zurckgegeben wird.
Gruppe         EDateiauswahlF
Querverweis    Efsel_inputFDas VDI
----------------------------------------------------------------------

Die VDI-Funktionen lassen sich in folgende Gruppen gliedern:

               EKontrollfunktionenF
               EAusgabefunktionenF
               EAttributfunktionenF
               ERasterfunktionenF
               EEingabefunktionenF
               EAuskunftsfunktionenF
               EEscapefunktionenF

Whrend das EAESF-System in erster Linie die Basis fr eine bedie-
nungsfreundliche Benutzeroberflche sein soll, sind die VDI-Funktionen
als standardisiertes Grafiksystem zu verstehen.
Leider ist das VDI-System auerhalb der EGEMF-Welt nur wenig verbrei-
tet und hat aus diesem Grund nur wenig Chancen einmal ein echter Stan-
dard zu werden. Dem Programmierer stellt sich VDI als eine sehr um-
fangreiche Grafikbibliothek dar, deren Ausgabeformat ber mehrere Com-
putersysteme hinweg portabel ist.
Fr ein systemunabhngiges Grafiksystem ist ein von der jeweiligen
Hardware unabhngiges Koordinatensystem ntig. In VDI sind dies die
Normalkoordinaten. Der Ursprung dieses Koordinatensystems liegt in der
linken unteren Ecke, der Wertebereich reicht von 0 bis 32767, schpft
demnach die 16 Bit eines Maschinenwortes voll aus. Daneben gibt es
jedoch noch ein zweites Koordinatensystem, die Rasterkoordinaten, mit
deren Hilfe groflchige Kopieroperationen und Verschiebungen ohne Ge-
schwindigkeitsverlust durchgefhrt werden knnen. Unter EGEMF kann man
also wahlweise zwei verschiedene Koordinatensysteme verwenden.

Die zum Arbeiten mit den VDI-Funktionen ntigen Konstanten, Daten-
strukturen und Funktionsprototypen finden Sie in der Datei VDI.H.

Einige der VDI-Funktionen bentigen jedoch die VDI-erweiterung EGDOSF.Das GDOS
----------------------------------------------------------------------

Einige Funktionen des VDI knnen erst nach der Installation des GDOS
aus dem AUTO-Ordner heraus richtig benutzt werden. Grundstzlich
ermglicht das GDOS beliebige Gertetreiber und Zeichenstze, die
im ASSIGN.SYS File aufgefhrt werden mssen, zu laden und zu benutzen.
Es ist dabei vllig unabhngig vom verwendeten Gert. Gertespezifisch
sind nur die nachzuladenden Treiber, die die VDI Funktionen auf dem
entsprechenden Gert realisieren. Bei genauer Kenntnis des
Treiberformats ist es so mglich beliebige, und auch exotische
Ausgabegerte als VDI Ausgabegert zu betreiben.
Mit residentem GDOS erhht sich die Zahl der Verfgung stehenden
VDI-Funktionen, whrend alle anderen Funktionen voll funktionsfhig
bleiben bzw. einen erweiterten Ausgabeumfang erhalten. Umgekehrt ist
das aber nicht so, Funktionen, die GDOS bentigen, fhren ohne
residentes GDOS zum Absturz des Rechners.

Die neueste Version des GDOS ist das EFSMGDOSF, das zustzlich
frei scalierbare Zeichenstze zur Verfgung stellt.

Die Funktionen Evq_gdosF und Evq_vgdosF prfen, ob GDOS installiert
ist. Einige Funktionen sollten nicht ohne GDOS benutzt werden:

Ev_opnwkF, Ev_clswkF, Evst_load_fontsF, Evst_unload_fontsF,
Evst_fontF, Ev_clear_disp_listF, Ev_bit_imageF, Evqp_filmsF,
Evqp_stateF, Evsp_stateF, Evsp_saveF, Evsp_messageF, Evqp_errorF,
Ev_meta_extentsF, Ev_write_metaF, Evm_filenameF,  Evm_coordsF,
Evm_pagesizeFDas FSMGDOS
----------------------------------------------------------------------

Die neueste Version des EGDOSF ist das FSMGDOS, das zustzlich
frei scalierbare Zeichenstze zur Verfgung stellt. FSM steht
fr Font Scale Manager.

Die Funktion Evq_vgdosF prft, ob FSMGDOS installiert ist.
Einige Funktionen knnen ohne FSMGDOS nicht benutzt werden
(zustzlich zu den unter EGDOSF aufgefhrten Funktionen):


Evqt_f_extentF, Ev_ftextF, Ev_killoutlineF, Ev_getoutlineF,
Evst_scratchF, Evst_errorF, Evqt_advanceF, Evst_arbptF,
Evqt_devinfoF, Ev_flushcacheF, Evqt_cachesizeF,
Evqt_get_tablesF, Ev_loadcacheF, Ev_savecacheF,
Evst_setsizeF, Evst_skewFDas VDI-Handle
----------------------------------------------------------------------

dient zur Spezifikation des Zieles der VDI-Funktionen. Hat man mehrere
Gerte, wie Drucker und Bildschirm, als Arbeitsstation (Ev_opnwkF,
Ev_opnvwkF) geffnet, wird jeder Arbeitsstation ein handle zugeteilt,
durch das das VDI erkennt, welches Gert angesprochen werden soll.
Jede VDI-Funktion braucht also grundstzlich einen Parameter handle
zur Zielangabe und die EAttributfunktionenF setzen die Attribute
grundstzlich nur fr das durch das handle spezifizierte Gert, d. h.
Attribute knnen fr alle Gerte verschieden eingestellt werden.Das pxyarray
----------------------------------------------------------------------

wird im VDI benutzt um verschiedene grafische Objekte
anhand von mehreren Koordinatenpaaren (x,y) darzustellen. Beispiele
fr die Anwendung des pxyarrays sind die Darstellung von Rechtecken.

       pxyarray[0]         x-Koordinate des oberen linken Eckpunktes
       pxyarray[1]         y-Koordinate des oberen linken Eckpunktes
       pxyarray[2]         x-Koordinate des unteren rechten Eckpunktes
       pxyarray[3]         y-Koordinate des unteren rechten Eckpunktes
oder allgemein von n Punktepaaren
       pxyarray[0]         x-Koordinate des ersten Punktepaares
       pxyarray[1]         y-Koordinate des ersten Punktepaares
       pxyarray[2]         x-Koordinate des zweiten Punktepaares
       pxyarray[3]         y-Koordinate des zweiten Punktepaares
           :
       pxyarray[2*n - 2]   x-Koordinate des n-ten Punktepaares
       pxyarray[2*n - 1]   y-Koordinate des n-ten PunktepaaresKontrollfunktionen im berblick
----------------------------------------------------------------------

Alle VDI-Applikationen mssen sich beim System ordentlich anmelden,
damit die vorhandenen Resourcen einwandfrei bereitgestellt werden
knnen.

Ev_bez_onF          Bezier-Spline-Erzeugung an.
Ev_bez_offF         Bezier-Spline-Erzeugung aus.
Ev_clrwkF           Reinitialisierung einer Arbeitsstation.
Ev_clswkF           Physikalische Arbeitstation (Drucker etc.) abmelden.
Ev_clsvwkF          Virtuelle Arbeitstation (Bildschirm) abmelden.
Ev_flushcacheF      EFSMF-Cache lschen.
Ev_getoutlineF      Outline eines Zeichens berechnen.
Ev_killoutlineF     Speicher zur Outline-Generierung freigeben.
Ev_loadcacheF       FSM-Cache laden.
Ev_opnwkF           Physikalische Arbeitstation (Drucker etc.) anmelden.
Ev_opnvwkF          Virtuelle Arbeitstation (Bildschirm) anmelden.
Ev_set_app_buffF    Speicher fr Bezier-Spline-Erzeugung reservieren.
Ev_savecacheF       FSM-Cache speichern.
Ev_updwkF           Befehle im Puffer eines Ein-/Ausgabegerts sofort
                  ausfhren.
Evs_clipF           Arbeitsbereich auf einen Teil des Bildschirms be-
                  schrnken.
Evst_load_fontsF    Zustzliche Zeichenstze laden.
Evst_unload_fontsF  Speicherplatz, den zustzliche Zeichenstze belegt
                  haben, freigeben.Ausgabefunktionen im berblick
----------------------------------------------------------------------

Ev_alpha_textF   Ausgabe von Text im Textmodus
Ev_bezF          Bezier-Spline zeichnen.
Ev_bez_fillF     Bezier-Spline zeichnen und fllen.
Ev_plineF        Linienzug zeichnen.
Ev_pmarkerF      Markierung zeichnen.
Ev_gtextF        Text grafisch ausgeben.
Ev_ftextF        Text mittels EFSMF-Font ausgeben.
Ev_fillareaF     Angegebene Flche ausfllen.
Ev_cellarrayF    Farbauswahltabelle darstellen.
Ev_contourfillF  Flche bis zu bestimmten Begrenzungen ausfllen.
Evr_recflF       Rechteck ausfllen.
Ev_arcF          Kreisbogen zeichnen.
Ev_barF          Ausgeflltes Rechteck zeichnen.
Ev_circleF       Ausgefllten Kreis zeichnen.
Ev_ellipseF      Ausgefllte Ellipse zeichnen.
Ev_ellarcF       Ellipsenbogen zeichnen.
Ev_ellpieF       Ausgeflltes Ellipsensegment zeichnen.
Ev_justifiedF    Ausgerichteten Text ausgeben.
Ev_piesliceF     Ausgeflltes Kreissegment zeichnen.
Ev_rboxF         Abgerundetes Rechteck zeichnen.
Ev_rfboxF        Ausgeflltes, abgerundetes Rechteck zeichnen.

Mit den Ausgabefunktionen knnen grafische Elemente wie Kreise und
Linien, aber auch Texte auf den angemeldeten Arbeitsstationen ausge-
geben werden.Attributfunktionen im berblick
----------------------------------------------------------------------

Diese Gruppe von Funktionen dient dem Einstellen von Farbe, Typ, Stil
und Hhe der EAusgabefunktionenF.

 bergeordnete Attribute:

Evs_colorF       Farbintensitt einer Farbe festlegen.
Evswr_modeF      Schreibmodus(Replace, Transparent, ...) auswhlen.

 Linienattribute:

Evsl_colorF      Linienfarbe auswhlen.
Evsl_endsF       Linienenden definieren (Abrundung, Pfeile, ...).
Evsl_typeF       Liniendarstellung einstellen.
Evsl_udstyF      Eigene Liniendarstellung definieren.
Evsl_widthF      Linienbreite definieren.
Ev_bez_qualF     Qualitt der Bezier-Spline-Erzeugung setzen.

 Markierungsattribute:

Evsm_colorF      Markierungsfarbe festlegen.
Evsm_heightF     Markierungsgre festlegen.
Evsm_typeF       Markierungstyp auswhlen.

 Textattribute:

Evst_alignmentF  Horizontale und vertikale Ausrichtung eines Texts
               bestimmen.
Evst_arbptF      Setzen der Zeichenzellenhhe in Punkten.
Evst_colorF      Farbe fr Textausgaben festlegen.
Evst_effectsF    Texteffekte auswhlen (kursiv, ...).
Evst_errorF      Setzen der EFSMGDOSF Fehlerbehandlung.
Evst_fontF       Zeichensatz auswhlen.
Evst_heightF     Textgre festlegen.
Evst_pointF      Gre der Zeichenzelle festlegen.
Evst_rotationF   Drehung der Textausgabe.
Evst_scratchF    Bestimmen der Gre des Scratch-Buffers.
Evst_setsizeF    Setzen der Zeichenzellenbreiten in Punkten.
Evst_skewF       Setzen des Neigungsgrades fr Kursivschrift.

 Flltypattribute:

Evsf_colorF      Fllfarbe auswhlen.
Evsf_interiorF   Auswahl des Flltyps (Muster, schraffiert, ...).
Evsf_perimeterF  Rahmen zeichnen oder nicht.
Evsf_styleF      Fllmuster auswhlen.
Evsf_udpatF      Eigenes Fllmuster definieren.Rasterfunktionen
----------------------------------------------------------------------

Die Rasterfunktionen erlauben es logische Operationen auf rechtwink-
ligen Blcken auszufhren. Dazu gehrt auch das Kopieren von Speicher-
bereichen in den Bildschirm hinein oder ebenso heraus.

Ev_get_pixelF Pixelstatus ermitteln (gesetzt oder gelscht).
Evr_trnfmF    Raster in gertespezifische Formate transformieren.
Evro_cpyfmF   Bildschirmbereich pixelweise kopieren (opaque).
Evrt_cpyfmF   Bildschirmbereich pixelweise kopieren (transparent).Eingabefunktionen im berblick
----------------------------------------------------------------------

Ev_hide_cF          Grafikcursor abschalten.
Ev_show_cF          Grafikcursor darstellen.
Evex_butvF          Serviceroutine fr Maustasteninterrupt verlegen.
Evex_curvF          Mauszeiger selbst zeichnen.
Evex_motvF          Serviceroutine fr Mausbewegungsinterrupt verlegen.
Evex_timvF          Serviceroutine des Timerinterrupts verlegen.
Evq_key_sF          Tastaturstatus abfragen.
Evq_mouseF          Position des Grafikcursors ermitteln.
Evrq_choiceF        Tastendruck abwarten (REQUEST).
Evrq_locatorF       Position des Grafikcursor ermitteln (REQUEST).
Evrq_stringF        String von Tastatur einlesen (REQUEST).
Evrq_valuatorF      berwachung von Eingabegerten (REQUEST).
Evsc_formF          Grafikcursor definieren.
Evsin_modeF         Umschalten zwischen REQUEST- und SAMPLE-Modus.
Evsm_choiceF        Ermittelt die zuletzt gedrckte Taste (SAMPLE).
Evsm_locatorF       Position des Grafikcursor ermitteln (SAMPLE).
Evsm_stringF        String von Tastatur einlesen (SAMPLE).
Evsm_valuatorF      Ermittlung des Status von Eingabegerten (SAMPLE).

Die Eingabefunktionen dienen der Interaktion zwischen EBetriebssystemF
und Anwenderprogramm. Sie lassen sich in zwei verschiedenen Modi be-
treiben:

 REQUEST-Modus:     Es wird nach Aufruf einer der Funktionen solange
                     gewartet, bis das entsprechende Ereignis ein-
                     tritt.
 SAMPLE-Modus:      Es wird lediglich der Status des Gertes ber-
                     prft, danach kehrt die Funktion sofort wieder
                     zurck.Auskunftsfunktionen im berblick
----------------------------------------------------------------------

Evq_cellarrayF      Abfrage der Belegung einer Farbauswahltabelle.
Evq_colorF          Farbintensitten ermitteln.
Evq_extndF          Zustzliche Informationen ber die Konfiguration
                  einer Arbeitsstation ermitteln.
Evq_gdosF           Ermitteln, ob EGDOSF geladen ist.
Evq_vgdosF          Ermitteln, welche GDOS-Version geladen ist,
                  bespielsweise EFSMGDOSF.
Evq_scanF           Druckerparameter ermitteln.
Evqf_attributesF    Fllattribute ermitteln.
Evqin_modeF         Eingabemodus eines Eingabegerts abfragen.
Evql_attributesF    Linienattribute ermitteln.
Evqm_attributesF    Markierungsattribute ermitteln.
Evqt_advanceF       Position fr nchstes EFSMF-Zeichen ermitteln.
Evqt_attributesF    Textattribute ermitteln.
Evqt_cachesizeF     Ermitteln der Gre des EFSMF-Caches.
Evqt_devinfoF       Status des Ausgabegerts erfragen.
Evqt_extentF        Dimensionen eines Textrechtecks berechnen.
Evqt_f_extentF      Dimensionen eines Textrechtecks fr EFSMF-Fonts
                  berechnen.
Evqt_fontinfoF      Informationen ber einen Zeichensatz ermitteln.
Evqt_get_tablesF    Adresse der Zeichentransformationstabellen
                  erfragen.
Evqt_nameF          Namen und Index eines Zeichensatzes ermitteln.
Evqt_widthF         Dimensionen einer Zeichenzelle berechnen.

Mittels der Auskunftsfunktionen ist es mgliche weitere Informationen
ber Einstellungen einzelner Gerte zu holen.Escapefunktionen im berblick
----------------------------------------------------------------------

Mit den Escapefunktionen wird es einem Anwenderprogramm ermglicht auf
spezielle Eigenschaften einer Arbeitsstation zuzugreifen.

 Textfunktionen:

Evs_curaddressF     Textcursor in Reihe und Spalte positionieren.
Ev_curdownF         Textcursor eine Zeile nach unten bewegen.
Ev_currightF        Textcursor eine Spalte nach rechts bewegen.
Ev_curleftF         Textcursor eine Spalte nach links bewegen.
Ev_curhomeF         Textcursor in die linke obere Ecke bewegen.
Ev_curtextF         Text ab Textcursorposition ausgeben.
Ev_curupF           Textcursor eine Zeile nach oben bewegen.
Ev_eeolF            Bildschirm ab Textcursor bis Zeilenende lschen.
Ev_eeosF            Bildschirm ab Textcursor bis Bildschirmende lschen.
Ev_enter_curF       Textmodus einschalten.
Ev_exit_curF        Textmodus verlassen.
Ev_rvonF            Inverse Darstellung einschalten.
Ev_rvoffF           Inverse Darstellung abschalten.
Evq_chcellsF        Zeilen und Spalten des Textbildschirms ermitteln.
Evq_curaddressF     Zeile und Spalte des Textcursors ermitteln.

 Grafikspezialfunktionen:

Ev_bit_imageF       Bildinformationen auf Drucker ausgeben.
Ev_clear_disp_listF Druckpuffer lschen.
Ev_dspcurF          Grafikcursor versetzen.
Ev_form_advF        Seitenvorschub auf Drucker durchfhren.
Ev_hardcopyF        Hardcopy auf Drucker ausgeben.
Ev_output_windowF   Bildschirmbereich auf Drucker ausgeben.
Ev_rmcurF           Letzten Grafikcursor lschen.
Evq_tabstatusF      Verfgbarkeit eines Grafiktabletts,
                  Maus, usw. abfragen.
Evs_paletteF        Auswahl der Farbpalette.

 Polaroid-Camera:

Evqp_errorF         Fehlercodes des Polaroid-Treibers abfragen.
Evqp_filmsF         Verfgbare Filmtypen ermitteln.
Evqp_stateF         Status des Polaroid-Treibers ermitteln.
Evsp_messageF       Fehlermeldungen des Polaroid-Treibers unterdrcken
                  oder zulassen.
Evsc_exposeF        Preview-Mglichkeit fr Kamera ein-/ausschalten.
Evsp_filmF          Filmtyp und Belichtungszeit festlegen.
Evsp_saveF          Einstellung des Polaroid-Treibers sichern.
Evsp_stateF         Polaroid-Treiber neu einstellen. 

 Grafiktablett:

Evt_alignmentF      Koordinatensystem des Grafiktabletts ausrichten.
Evq_tdimensionsF    Ausmae des Grafiktabletts in 1/10-Zoll.
Evt_resolutionF     Auflsung des Grafiktabletts einstellen.
Evt_axisF           Auflsung des Grafiktabletts einstellen.
Evt_originF         Koordinatenursprung fr Grafiktablett setzen.

 Metafiles:

Ev_meta_extentsF    Dimensionen eines Metafiles berechnen.
Ev_write_metaF      Grafik-Pimitive in Metafile ablegen.
Evm_filenameF       Metafile umbenennen.
Evm_coordsF         Neues Koordinatensystem fr Metafile
Evm_pagesizeF       Physikalische Seitengre fr Metafile

 Spezialfunktionen:

Evs_muteF           Ein-/Ausschalten der Tonerzeugung.
Ev_escape2000F      Spezialfunktion fr ATARI-Page-Printer.
Ev_fontinitF        Eigenen Systemzeichensatz auswhlen.
Ev_offsetF          Abstand zum linken Bildschirmrand festlegen.
Ev_soundF           Ton generieren.Name           Open Workstation

Definition     void  v_opnwk( int *work_in, int *EhandleF,
                              int *work_out);

Beschreibung   Die Funktion ldt einen Gertetreiber. Dazu mu sich
               jedoch das EGDOSF im Speicher befinden und der
               Gertetreiber mu im ASSIGN.SYS File aufgezhlt sein.
               Falls alles geklappt hat, erhlt man in EhandleF eine
               positive Gertekennung und Null im Fehlerfall.

        work_in         Zeiger auf ein Integerfeld mit den genaueren
                        Spezifikationen des zu ladenden Gertetreibers
        work_in[0]      Nummer des Gertetreibers wie im ASSIGN.SYS
                        angegeben
        work_in[1]      Linientyp
        work_in[2]      Polylinefarbe
        work_in[3]      Markertyp
        work_in[4]      Markerfarbe
        work_in[5]      Textstil
        work_in[6]      Textfarbe
        work_in[7]      Fllmustertyp
        work_in[8]      Fllmusternummer
        work_in[9]      Fllmusterfarbe
        work_in[10]     welche Koordinaten sollen benutzt werden:
                                0  NDC Koordinaten
                                2  RC Koordinaten
        work_out        Zeiger auf ein Integerfeld, das genauere
                        Informationen ber den geladenen Gertetreiber
                        enthlt
        work_out[0]     Anzahl der maximal ansprechbaren
                        Rastereinheiten in der Horizontalen
        work_out[1]     Anzahl der maximal ansprechbaren
                        Rastereinheiten in der Vertikalen
        work_out[2]     Skalierungsflag:
                                0  Gert kann exakt skalieren
                                1  Gert kann nicht exakt skalieren
        work_out[3]     Breite einer Rastereinheit in Mikrometern
        work_out[4]     Hhe einer Rastereinheit in Mikrometern
        work_out[5]     Anzahl der Zeichensatzhhen oder Null, falls
                        die Hhe kontinuierlich verndert werden kann
        work_out[6]     Anzahl der Linientypen
        work_out[7]     Anzahl der Linienstrken oder Null, falls die
                        Strichstrke kontinuierlich verndert werden
                        kann
        work_out[8]     Anzahl der Markertypen
        work_out[9]     Anzahl der Markergren oder Null, falls die
                        Gre kontinuierlich verndert werden kann
        work_out[10]    Anzahl der Zeichenstze
        work_out[11]    Anzahl der Fllmuster
        work_out[12]    Anzahl der Schraffurarten
        work_out[13]    Anzahl der gleichzeitig darstellbaren Farben
        work_out[14]    Anzahl der verfgbaren Grafikgrundfunktionen
                        (GENERAL DRAWING PRIMITIV, GDP)
        work_out[15]    Liste der auf dem Gert verfgbaren GDP's.
            :           Sind es weniger als zehn wird die Liste
            :           durch -1 beendet. Das EVDIF untersttzt
            :           folgende GDP's:
            :
            :                   1   BAR
            :                   2   ARC
            :                   3   PIESLICE
            :                   4   CIRCLE
            :                   5   ELLIPSE
            :                   6   ELLIPTICAL ARC
            :                   7   ELLIPTICAL PIE
            :                   8   ROUNDED RECTANGLE
            :                   9   FILLED ROUNDED RECTANGLE
            :                   10  JUSTIFIED GRAPHICS TEXT
        work_out[24]
        work_out[25]    Liste aller Attribute der GDP's:
            :
            :                   0  Linie
            :                   1  Marker
            :                   2  Text
            :                   3  Fllbereich
            :                   4  kein Attribut
        work_out[34]
        work_out[35]    das Gert ist farbtchtig (1) oder nicht (0)
        work_out[36]    das Gert kann Text rotieren (1) oder
                        nicht (0)
        work_out[37]    das Gert kann eine Flloperation
                        ausfhren (1) oder nicht (0)
        work_out[38]    das Gert untersttzt CELL ARRAY (1) oder
                        nicht (0)
        work_out[39]    Anzahl der verfgbaren Farben
        work_out[40]    LOCATOR Gert:  1  nur die Tastatur
                                        2  Tastatur und andere Gerte
        work_out[41]    VALUATOR Gert: 1  nur die Tastatur
                                        2  anderes Gert
        work_out[42]    Auswahtasten:   1  Funktionstasten auf der
                                           Tastatur
                                        2  zustzliches Tastenfeld
        work_out[43]    Zeicheneingabe: 1  Tastatur
        work_out[44]    Gertetyp:      0  reines Ausgabegert
                                        1  reines Eingabegert
                                        2  Ein/Ausgabegert
                                        3  reserviert
                                        4  Metafile Ausgabe
        work_out[45]    kleinste Buchstabenbreite
        work_out[46]    kleinste Buchstabenhhe
        work_out[47]    grte Buchstabenbreite
        work_out[48]    grte Buchstabenhhe
        work_out[49]    kleinste darstellbare Linienstrke
        work_out[50]    immer Null
        work_out[51]    grte Linienstrke
        work_out[52]    immer Null
        work_out[53]    kleinste darstellbare Markerbreite
        work_out[54]    kleinste darstellbare Markerhhe
        work_out[55]    grte Markerbreite
        work_out[56]    grte Markerhhe

Querverweis    EGDOSF, Ev_clswkFName           Close Workstation - Die Kontrollfunktion v_clswk
               schliet ein mit Ev_opnwkF geffnetes Gert

Definition     void    v_clswk( int EhandleF );

Beschreibung   Die Funktion schliet ein vorher mit Ev_opnwkF
               geffnetes Gert mit dem Handle EhandleF. Vor
               Aufruf dieser Funktion sollten alle mit Ev_opnvwkF
               geffneten virtuellen Arbeitsgerte mittels Ev_clsvwkF
               geschlossen werden.

Ergebnis       Die Funktion liefert kein direktes Funktionsergebnis
Gruppe         EKontrollfunktionenF
Querverweis    EGDOSF, Ev_opnwkF, Ev_opnvwkF, Ev_clsvwkFName           Open virtual Screen Workstation - ffnet eine
               Bildschirmarbeitsstation

Definition     void v_opnvwk ( int *work_in, int *EhandleF,
                               int *work_out );

Beschreibung   Die Funktion ffnet eine Bildschirmarbeitsstation.
               Die Belegung der Parameter ist identisch mit der
               Parameterbelegung in Ev_opnwkF.

Ergebnis       Die Funktion liefert kein direktes Funktionsergebnis
Gruppe         EKontrollfunktionenF
Querverweis    Ev_opnwkF, Ev_clsvwkF, Egraf_handleFName           Close virtual Screen Workstation - schliet eine
               Bildschirmarbeitsstation

Definition     void    v_clsvwk( int EhandleF );

Beschreibung   Die Funktion schliet eine vorher mit Ev_opnvwkF
               geffnete Bildschirmarbeitstation mit dem VDI-Handle
               EhandleF.

Ergebnis       Die Funktion liefert kein direktes Funktionsergebnis
Gruppe         EKontrollfunktionenF
Querverweis    Ev_opnvwkF, Ev_clswkFName           Clear Workstation - lscht das Arbeitsgert

Definition     void    v_clrwk( int EhandleF );

Beschreibung   Die Funktion setzt das Arbeitsgert EhandleF in den
               Leerzustand, d. h. der Bildschirm wird gelscht, auf
               dem Drucker oder Plotter wird ein Seitenvorschub erzeugt
               und der Datenpuffer wird gelscht.
Ergebnis       Die Funktion liefert kein direktes Funktionsergebnis
Gruppe         EKontrollfunktionenF
Querverweis    Ev_form_advFName           Update Workstation - gepufferte Ausgabekommandos
               ausfhren

Definition     void    v_updwk( int EhandleF );

Beschreibung   Die Funktion veranlat das Ausgabegert EhandleF, alle
               gepufferten Ausgabekommandos auszufhren. Diese
               Funktion ist jedoch nur fr alle Gerte auer dem
               Bildschirm sinnvoll, da auf dem Bildschirm alle
               Ausgaben sofort ausgefhrt werden.
Ergebnis       Die Funktion liefert kein direktes Funktionsergebnis
Gruppe         EKontrollfunktionenF
Querverweis    Ev_opnwkFName           Load Fonts - Zeichenstze laden

Definition     int     vst_load_fonts( int EhandleF, int select );

Beschreibung   Die Funktion ldt eine Reihe weiterer Zeichenstze fr
               das Ausgabegert EhandleF, die im ASSIGN.SYS File
               angegeben sind.
               Sie ist allerdings nur dann sinnvoll, wenn vorher das
               EGDOSF installiert worden ist.
               select ist immer Null.
Ergebnis       Als Ergebnis erhlt man die Anzahl der geladenen
               Zeichenstze.
Gruppe         EKontrollfunktionenF
Querverweis    EGDOSF, Evst_unload_fontsF, Evst_fontF, Evqt_nameFName           Unload Fonts - lscht geladene Zeichenstze

Definition     void    vst_unload_fonts( int EhandleF, int select );

Beschreibung   Die Funktion gibt den Speicherbereich, der durch
               zustzlich geladene Zeichenstze fr das Gert EhandleF
               belegt wird, wieder frei. Da man zustzliche
               Zeichenstze nur mit EGDOSF im Speicher geladen werden
               knnen, ist auch diese Funktion nur mit EGDOSF sinnvoll.
               select  ist immer Null.
Ergebnis       Die Funktion hat kein direktes Funktionsergebnis.
Gruppe         EKontrollfunktionenF
Querverweis    EGDOSF, Evst_load_fontsFName           Set clipping Rectangle - setzt Begrenzungsrechteck.

Definition     void vs_clip ( int EhandleF, int clip_flag,
                              int *EpxyarrayF );

Beschreibung   Die Funktion begrenzt alle grafischen Ausgaben auf dem
               Gert EhandleF auf das in EpxyarrayF angegebene
               Rechteck, falls clip_flag gleich Eins ist.
               Ist clip_flag gleich Null, so wird das Clipping wieder
               ausgeschaltet.
Ergebnis       Die Funktion hat kein direktes Funktionsergebnis.
Gruppe         EKontrollfunktionenFName           Polyline - Linienzug zeichnen

Definition     void v_pline( int EhandleF, int count, int *EpxyarrayF );

Beschreibung   Die Funktion zeichnet einen Linienzug zwischen count
               Punkten in EpxyarrayF auf dem Ausgabegert EhandleF unter
               Bercksichtigung aller Linienattribute.
Ergebnis       Die Funktion liefert kein direktes Funktionsergebnis.
Gruppe         EAusgabefunktionenF
Querverweis    Evs_colorF   Evswr_modeF   Evsl_typeF   Evsl_widthF
               Evsl_colorF  Evsl_endsF    Evsl_udstyF  EpxyarrayFName           Polymarker - makiert Punkte.

Definition     void v_pmarker ( int EhandleF, int count,
                                int *EpxyarrayF );

Beschreibung   Die Funktion markiert count Punkte, die in EpxyarrayF
               angegeben sind, auf dem Ausgabegert EhandleF unter
               Bercksichtigung der aktuellen Polymarkerattribute.
Ergebnis       Die Funktion liefert kein direktes Funktionsergebnis.
Gruppe         EAusgabefunktionenF
Querverweis    Evs_colorF   Evswr_modeF   Evsm_typeF   Evsm_heightF
               Evsm_colorF  EpxyarrayFName           Text - gibt eine Text aus.

Definition     void  v_gtext( int EhandleF, int x, int y, char *string );

Beschreibung   Die Funktion gibt den string an den Koordinaten x und y
               auf dem durch EhandleF spezifizierten Arbeitsgert
               aus. Die ETextattributeF werden dabei bercksichtigt.

Ergebnis       Die Funktion liefert kein direktes Funktionsergebnis.

Gruppe         EAusgabefunktionenF

Querverweis    Evswr_modeF    Evs_colorF    Evst_alignmentF
               Evst_heightF   Evst_pointF   Evst_rotationF
               Evst_fontF     Evst_colorF   Evst_effectsF
               Ev_ftextFName           Text - gibt eine Text mittels FSM-Font aus.

Definition     void  v_ftext( int EhandleF, int x, int y, char *string );

Beschreibung   Die Funktion gibt den string an den Koordinaten x und y
               auf dem durch EhandleF spezifizierten Arbeitsgert
               aus.

Ergebnis       Die Funktion liefert kein direktes Funktionsergebnis.

Gruppe         EAusgabefunktionenF
Querverweis    Ev_gtextF      EFSMGDOSFName           Filled Area - fllt eine Flche.

Definition     void v_fillarea ( int EhandleF, int count,
                                 int *EpxyarrayF );

Beschreibung   Die Funktion fllt die Flche, die durch den
               Polygonzug, der durch count und EpxyarrayF festgelegt
               wird, eingerahmt wird, auf dem Gert EhandleF unter
               Beachtung aller Fllattribute.
Ergebnis       Die Funktion hat kein direktes Funktionsergebnis.
Gruppe         EAusgabefunktionenF
Querverweis    Evswr_modeF   Evs_colorF   Evsf_interiorF   Evsf_styleF
               Evsf_colorF   Evsf_udpatF  Evsf_perimeterF  EpxyarrayFName           Cell Array - Farbaufbau des Bildschirms in Koordinaten.

Definition     void v_cellarray( int EhandleF, int *EpxyarrayF,
                                 int row_length,int el_used,
                                 int num_rows,  int wrt_mode,
                                 int *colarray );

Beschreibung   Die Funktion ermglicht es, den Farbaufbau des
               Bildschirms nicht von den gezeichneten Objekten
               abhngig zu machen, sondern von den Koordinaten des
               Bildschirms. Dazu wird das Ausgabegert EhandleF in
               eine Anzahl von Zellen unterteilt, wobei jeder Zelle
               eine Farbe zugeordnet wird. Erfolgt nun eine Ausgabe
               in der entsprechenden Zelle, so erfolgt diese in der,
               der Zelle zugeordneten Farbe. Die Funktion ist nicht
               auf allen Ausgabegerten verfgbar.
EpxyarrayF       Koordinaten des Begrenzungsrechtecks
colarray       Farbindexarray, enthlt zeilenweise die
               Farbinformation fr das ganze Rechteck
row_length     Anzahl der Spalten
num_row        Anzahl der Zeilen
el_used        Anzahl der benutzten Eintrge im
               Farbindexarray colarray
wrt_mode       Schreibmodus, wie in Evswr_modeF, jedoch
               nur fr das angegebene Rechteck
Ergebnis       Die Funktion liefert kein direktes Funktionsergebnis.
Gruppe         EAusgabefunktionenF
Querverweis    Evswr_modeF   EpxyarrayFName           Countour fill - fllt eine Flche.

Definition     void v_contourfill ( int EhandleF, int x, int y,
                                    int index );

Beschreibung   Die Funktion fllt die Flche, innerhalb derer der
               Punkt x,y liegt, und die von Punkten der Farbe index
               umgeben ist, auf dem Gert EhandleF unter Beachtung
               der aktuellen Fllattribute.
Ergebnis       Die Funktion liefert kein direktes Funktionsergebnis.
Gruppe         EAusgabefunktionenF
Querverweis    Evswr_modeF   Evs_colorF   Evsf_interiorF   Evsf_styleF
               Evsf_colorF   Evsf_udpatF  Evsf_perimeterFName           Fill Rectangle - fllt eine Rechtecksflche.

Definition     void vr_recfl( int EhandleF, int *EpxyarrayF );

Beschreibung   Die Funktion fllt eine Rechtecksflche, die durch
               EpxyarrayF festgelegt wird, auf dem Gert EhandleF unter
               Beachtung der aktuellen Fllattribute aus.
Gruppe         EAusgabefunktionenF
Querverweis    Ev_fillareaF   Evswr_modeF   Evs_colorF   Evsf_interiorF
               Evsf_styleF    Evsf_colorF   Evsf_udpatF  Evsf_perimeterF
               EpxyarrayFName           Bar - zeichnet ein ausgeflltes Rechteck.

Definition     void v_bar( int EhandleF, int *EpxyarrayF );

Beschreibung   Die Funktion zeichnet auf dem Ausgabegert EhandleF ein
               ausgeflltes Rechteck, dessen Ausmae durch EpxyarrayF
               festgelegt werden, unter Bercksichtigung der
               Fllattribute.
Gruppe         EAusgabefunktionenF
Querverweis    Evswr_modeF   Evs_colorF   Evsf_interiorF   Evsf_styleF
               Evsf_colorF   Evsf_udpatF  Evsf_perimeterF  EpxyarrayFName           Arc - zeichnet einen Kreisbogen.

Definition     void v_arc( int EhandleF, int x, int y, int radius,
                           int begang, int endang );

Beschreibung   Die Funktion zeichnet auf dem Ausgabegert EhandleF einen
               Kreisbogen mit den Mittelpunktskoordinaten x, y, dem
               Radius radius von dem Startffnungswinkel begang bis zu
               dem Winkel endang unter Beachtung der Linienattribute.
               Die Winkel werden dabei in 1/10 Grad Schritten
               angegeben.
Gruppe         EAusgabefunktionenF
Querverweis    Evs_colorF   Evswr_modeF   Evsl_typeF   Evsl_widthF
               Evsl_colorF  Evsl_endsF    Evsl_udstyFName           Pie - zeichnet ein "Tortenstck".

Definition     void v_pieslice ( int EhandleF, int x, int y,
                                 int radius, int begang, int endang );

Beschreibung   Die Funktion zeichnet auf dem Ausgabegert EhandleF ein
               "Tortenstck" mit den Mittelpunktskoordinaten x, y, dem
               Radius radius von dem Startffnungswinkel begang bis zu
               dem Winkel endang unter Beachtung der Fllattribute.
               Die Winkel werden dabei in 1/10 Grad Schritten
               angegeben.
Gruppe         EAusgabefunktionenF
Querverweis    Evswr_modeF   Evs_colorF   Evsf_interiorF   Evsf_styleF
               Evsf_colorF   Evsf_udpatF  Evsf_perimeterFName           Circle - zeichnet eine Kreisflche.

Definition     void v_circle( int EhandleF, int x, int y, int radius );

Beschreibung   Die Funktion zeichnet auf dem Gert mit der
               Gertekennung EhandleF mit den Mittelpunktskoordinaten
               x, y und dem Radius radius eine Kreisflche unter
               Beachtung der aktuellen Fllattribute.
Gruppe         EAusgabefunktionenF
Querverweis    Evswr_modeF   Evs_colorF   Evsf_interiorF   Evsf_styleF
               Evsf_colorF  Evsf_udpatF   Evsf_perimeterFName           Ellipse - zeichnet eine Ellipsenflche.

Definition     void v_ellipse( int EhandleF, int x, int y, int xradius,
                               int yradius  );

Beschreibung   Auf dem Ausgabegert mit der Kennung EhandleF wird unter
               Beachtung der aktuellen Fllattribute mit den
               Mittelpunktskoordinaten x, y und den Radien xradius in
               x-Richtung und yradius in y-Richtung eine
               Ellipsenflche gezeichnet.
Gruppe         EAusgabefunktionenF
Querverweis    Evswr_modeF   Evs_colorF   Evsf_interiorF   Evsf_styleF
               Evsf_colorF   Evsf_udpatF  Evsf_perimeterFName           Elliptical Arc - zeichnet einen Ellipsenbogen.

Definition     void v_ellarc( int EhandleF, int x, int y, int xradius,
                              int yradius, int begang, int endang );

Beschreibung   Die Funktion zeichnet auf dem Ausgabegert mit der
               Kennung EhandleF einen Ellipsenbogen mit den
               Mittelpunktskoordinaten x, y und den Radien xradius in
               x-Richtung und yradius in y-Richtung. Der Bogen wird
               dabei bei dem Winkel begang begonnen und endet mit dem
               Winkel endang.
               Beide Winkel werden in 1/10 Grad Schritten angegeben.
               Die aktuellen Linienattribute werden dabei beachtet.
Gruppe         EAusgabefunktionenF
Querverweis    Evs_colorF   Evswr_modeF   Evsl_typeF   Evsl_widthF
               Evsl_colorF  Evsl_endsF    Evsl_udstyFName           Elliptical Pie - zeichnet eine Ellipsenbogenflche.

Definition     void v_ellpie( int EhandleF, int x, int y, int xradius,
                              int yradius, int begang, int endang );

Beschreibung   Die Funktion zeichnet auf dem Ausgabegert mit der
               Kennung EhandleF eine Ellipsenbogenflche mit den
               Mittelpunktskoordinaten x, y und den Radien xradius in
               x-Richtung und yradius in y-Richtung. Das Flchenstck
               beginnt dabei bei dem Winkel begang und endet mit dem
               Winkel endang. Beide Winkel werden in 1/10 Grad
               Schritten angegeben.
               Die aktuellen Fllattribute werden bercksichtigt.
Gruppe         EAusgabefunktionenF
Querverweis    Evswr_modeF   Evs_colorF   Evsf_interiorF   Evsf_styleF
                Evsf_colorF  Evsf_udpatF  Evsf_perimeterFName           Rounded Rectangle - zeichnet ein Rechteck mit
               abgerundeten Ecken

Definition     void v_rbox ( int EhandleF, int *EpxyarrayF );

Beschreibung   Die Funktion zeichnet auf dem Gert mit der Kennung
               EhandleF ein Rechteck mit abgerundeten Ecken, dessen
               Lage durch die Koordinaten im EpxyarrayF festgelegt
               wird. Es werden dabei die aktuellen Linienattribute
               beachtet.
Gruppe         EAusgabefunktionenF
Querverweis    Evs_colorF   Evswr_modeF   Evsl_typeF   Evsl_widthF
               Evsl_colorF  Evsl_endsF    Evsl_udstyF  EpxyarrayFName           Filled rounded Rectangle - zeichnet eine
               Rechtecksflche mit gerundeten Ecken.

Definition     void v_rfbox ( int EhandleF, int *EpxyarrayF );

Beschreibung   Wie Ev_rboxF, nur mit dem Unterschied, da eine
               ausgefllte Rechtecksflche mit abgerundeten Ecken
               unter Beachtung der Fllattribute gezeichnet wird.
Gruppe         EAusgabefunktionenF
Querverweis    Evswr_modeF   Evs_colorF   Evsf_interiorF   Evsf_styleF
               Evsf_colorF   Evsf_udpatF  Evsf_perimeterF  Ev_rboxF
               EpxyarrayFName           Justified Graphics Text - Positionierter Graphiktext.

Definition     void v_justified( int EhandleF,int x, int y,
                                 char *string, int length,
                                 int word_space, int char_space );

Beschreibung   Die Funktion gibt den Text auf den string zeigt auf dem
               Gert mit der Kennung EhandleF an der Position x, y aus.+
               Dabei besteht die Mglichkeit den Text auf die Lnge+
               length (in Pixeln) durch Dehnung der Wortzwischenrume
               (word_space ungleich Null) oder derZeichenzwischenrume
               (char_space ungleich Null) zu formatieren.
Gruppe         EAusgabefunktionenF
Querverweis    Evswr_modeF     Evs_colorF    Evst_alignmentF
               Evst_heightF    Evst_pointF   Evst_rotationF
               Evst_fontF      Evst_colorF   Evst_effectsFName           Set writing Mode - bestimmt den Schreibmodus fast aller
               Grafikfunktionen.

Definition     int vswr_mode( int EhandleF, int mode );

Beschreibung   Diese Funktion bestimmt, wie der Bildschirmhintergrund
               mit dem neuen zu zeichnenden Objekten verknpft wird.
               Der Gltigkeitsbereich des gewhlten Schreibmodus
               beschrnkt sich dabei auf das Gert mit der Kennung
               EhandleF und den Bereich auerhalb eines eventuell mit
               der Funktion Ev_cellarrayF gewhlten Rechtecks.
mode           MD_REPLACE      1  Replace
               MD_TRANS        2  Transparent
               MD_XOR          3  Xor
               MD_ERASE        4  Reverse Transparent
Ergebnis       Die Funktion liefert den tatschlich eingestellten
               Schreibmodus.
Gruppe         EAttributfunktionenF
Querverweis    Ev_plineF        Ev_pmarkerF   Ev_gtextF   Ev_fillareaF
               Ev_contourfillF  Evr_recflF    Ev_barF     Ev_arcF,
               Ev_piesliceF     Ev_circleF    Ev_ellarcF  Ev_ellpieF
               Ev_ellipseF      Ev_rboxF      Ev_rfboxF   Ev_justifiedFName           Set Color Representation - legt die Farbintensitt fest.

Definition     void vs_color( int EhandleF, int index, int *rgb_in );

Beschreibung   Die Funktion setzt fr das Ausgabegert mit der Kennung
               EhandleF die Farbanteile der einzelnen Grundfarben fr
               die Farbe mit der Nummer index auf die Werte, die in
               dem Feld rgb_in stehen.
rgb_in[0]      Rotanteil in Promille
rgb_in[1]      Grnanteil in Promille
rgb_in[2]      Blaunanteil in Promille
Gruppe         EAttributfunktionenF
Querverweis    Ev_plineF      Ev_pmarkerF      Ev_gtextF   Ev_fillareaF
               Ev_cellarrayF  Ev_contourfillF  Evr_recflF  Ev_barF
               Ev_arcF        Ev_piesliceF     Ev_circleF  Ev_ellarcF
               Ev_ellpieF     Ev_ellipseF      Ev_rboxF    Ev_rfboxF
               Ev_justifiedF  Evq_colorF
Name           Set Polyline Type - setzt den Linientyp.

Definition     int vsl_type( int EhandleF, int style );

Beschreibung   Die Funktion whlt fr das Ausgabegert mit der Kennung
               EhandleF das Aussehen aller Linienausgaben.
style          1     (durchgezogen)
               2     (langer Strich)
               3     (punktiert)
               4     (Strich, Punkt)
               5     (Strich)
               6     (Strich, Punkt, Punkt)
               7     (frei definierbar, Evsl_udstyF)
               ab 8  eventuell weitere Linientypen auf verschiedenen
                     Ausgabegerten.

Ergebnis       Die Funktion liefert den tatschlich eingestellten
               Linientyp.
Gruppe         EAttributfunktionenF
Querverweis    Ev_plineF   Ev_arcF   Ev_ellarcF   Ev_rboxF   Evsl_udstyFName           Set User defined Line Style Pattern - setzt den frei
               definierten Linientyp.

Definition     void vsl_udsty( int EhandleF, int pattern );

Beschreibung   Die Funktion setzt den Linientyp mit der Indexnummer 7
               fr das Gert EhandleF auf den Wert pattern. Das
               hchstwertige Bit ist dabei der erste Punkt des
               Linienmusters.
Gruppe         EAttributfunktionenF
Querverweis    Evsl_typeFName           Set Polyline Width - setzt die Linienbreite.

Definition     int vsl_width( int EhandleF, int width );

Beschreibung   Die Funktion setzt fr das Ausgabegert mit der Kennung
               EhandleF die Strichstrke auf den Wert width.
Ergebnis       Die Funktion liefert die tatschlich eingestellte
               Strichstrke.
Gruppe         EAttributfunktionenF
Querverweis    Ev_plineF   Ev_arcF   Ev_ellarcF   Ev_rboxFName           Set Polyline Color Index - setzt die Linienfarbe.

Definition     int vsl_color( int EhandleF, int color_index );

Beschreibung   Die Funktion whlt fr das Ausgabegert mit der Kennung
               EhandleF die Farbe mit der Nummer color_index als
               Linienfarbe aus.
Ergebnis       Die Funktion liefert die tatschlich gesetzte
               Linienfarbe
Gruppe         EAttributfunktionenF
Querverweis    Ev_plineF   Ev_arcF   Ev_ellarcF   Ev_rboxFName           Set Polyline End Styles - setzt die Linienendeform.

Definition     void vsl_ends ( int EhandleF, int beg_style,
                               int end_style );

Beschreibung   Die Funktion legt fr das Gert mit der Kennung EhandleF
               das Aussehen sowohl des Linienanfangs als auch des
               Linienendes fest.

beg_style      Aussehen am Anfangspunkts
                0  eckig
                1  Pfeil
                2  abgerundet
end_style      wie beg_style, nur fr das Linienende
Gruppe         EAttributfunktionenF
Querverweis    Ev_plineF   Ev_arcF   Ev_ellarcF   Ev_rboxFName           Set Polymarker Type - bestimmt die Art der
               Markierungspunkte

Definition     int vsm_type ( int EhandleF, int symbol );

Beschreibung   Die Funktion whlt den Markertyp symbol fr das
               Ausgabegert EhandleF aus und gibt den ausgewhlten
               Typ zurck.

symbol         1  Punkt (nur eine feste Gre)
               2  Plus
               3  Stern
               4  Quadrat
               5  Andreaskreuz
               6  Raute
               eventuell weitere Marker auf anderen Gerten
Ergebnis       Die Funktion liefert den Code der tatschlich
               ausgewhlten Markiwerung.
Gruppe         EAttributfunktionenF
Querverweis    Ev_pmarkerF   Evsm_heightFName           Set Polymarker Height - bestimmt die Hhe von
               Markierungspunkten.

Definition     int vsm_height( int EhandleF, int height );

Beschreibung   Die Funktion setzt fr das Ausgabegert mit der Kennung
               EhandleF die Gre des Markers auf den Wert height.
Ergebnis       Die Funktion liefert die tatschlich gewhlte Gre.
Gruppe         EAttributfunktionenF
Querverweis    Ev_pmarkerFName           Set Polymarker Color Index - bestimmt die Farbe von
               Markierungspunkten.

Definition     int vsm_color ( int EhandleF, int color_index );

Beschreibung   Die Funktion setzt die Polymarkerfarbe fr das
               Ausgabegert EhandleF auf den Farbwert color_index.
Ergebnis       Die Funktion liefert den tatschlich gewhlten
               Farbindex.
Gruppe         EAttributfunktionenF
Querverweis    Ev_pmarkerFName           Set Character Height, absolute Mode - bestimmt die
               Zeichengre von Textausgaben.

Definition     void vst_height ( int EhandleF, int height,
                                 int *char_width, int *char_height,
                                 int *cell_width, int *cell_height );

Beschreibung   Mit der Funktion wird die absolute Zeichengre von
               Textausgaben auf dem Gert mit der Kennung EhandleF
               festgelegt.
height         gewnschte Zeichenhhe
char_width     gewhlte Zeichenbreite
char_height    gewhlte Zeichenhhe
cell_width     Zeichenzellenbreite
cell_height    Zeichenzellenhhe
Gruppe         EAttributfunktionenF
Querverweis    Ev_gtextF   Ev_justifiedF  Evst_pointFName           Set Character Height, Points Mode - bestimmt die
               Zeichenhhe von Textausgaben.

Definition     int vst_point ( int EhandleF, int point, int *char_width,
                               int *char_height, int *cell_width,
                               int *cell_height );

Beschreibung   Die Funktion setzt die Zeichenzellengre, d. h. den
               Abstand zweier Basislinien, fr das Gert mit der
               Kennung EhandleF auf den Wert point, der in 1/72"
               Schritten angegeben wird.
point          gewnschte Zellenhhe
char_width     gewhlte Zeichenbreite
char_height    gewhlte Zeichenhhe
cell_width     Zeichenzellenbreite
cell_height    Zeichenzellenhhe
Ergebnis       Die Funktion liefert die gewhlte Zeichenzellenhhe
               in 1/72" Schritten.
Gruppe         EAttributfunktionenF
Querverweis    Ev_gtextF   Ev_justifiedF   Evst_heightFName           Set Character Baseline Vector - Bestimmt den Winkel der
               Textausgaben.

Definition     int vst_rotation( int EhandleF, int angle );

Beschreibung   Die Funktion legt fr das Ausgabegert EhandleF den
               Winkel fest, unter dem alle Textausgaben erscheinen.
               Die vorhandenen Treiber untersttzen allerdings nur
               Winkel in 90 Grad Schritten, obwohl man den Winkel in
               1/10 Grad Schritten angeben mu.
Ergebnis       Die Funktion liefert den tatschlich gewhlten Winkel.
Gruppe         EAttributfunktionenF
Querverweis    Ev_gtextF   Ev_justifiedFName           Set Text Face - bestimmt einen Zeichensatz.

Definition     int vst_font( int EhandleF, int font );

Beschreibung   Die Funktion whlt fr das Ausgabegert EhandleF einen
               Zeichensatz aus. Dabei ist font die Nummer des Zeichensatzes,
               die mit Evqt_nameF errmittelt werden kann. Die Funktion ist
               also nur zusammen mit dem EGDOSF in vollen  Umfang einsatz-
               fhig. Falls font gleich Eins ist, wird der Systemzeichensatz
               ausgewhlt.
Ergebnis       Die Funktion liefert die Nummer des tatschlich
               gewhlten Zeichensatzes.

Beispiel       numSets =  Evst_load_fontsF( handle, 0 ); /* fonts laden     */
               id = Evqt_nameF(handle, 2, name );        /* 2. Zeichensatz  */
               vst_font( handle, id );                 /* auswhlen       */
               Ev_gtextF( handle, 100, 100, name );      /* benutzen        */
               
Gruppe         EAttributfunktionenF
Querverweis    EGDOSF Evst_load_fontsF Ev_gtextF Ev_justifiedFName           Set Graphic Text Color Index - bestimmt die Farbe der
               Textausgaben.

Definition     int vst_color ( int EhandleF, int color_index );

Beschreibung   Die Funktion setzt die Farbe unter der Textausgaben
               erfolgen fr das Gert mit der Kennung EhandleF auf den
               Wert color_index.
Ergebnis       Die Funktion liefert die tatschlich eingestellte Farbe.
Gruppe         EAttributfunktionenF
Querverweis    Ev_gtextF   Ev_justifiedFName           Set Graphic Text Special Effects - legt Spezialeffekte
               fr Textausgaben fest.

Definition     int vst_effects ( int EhandleF, int effect );

Beschreibung   Die Funktion legt die Textgestalt fr das Ausgabegert
               mit der Kennung EhandleF fest.
effect         Bitvektor, der die Textgestalt festlegt. Um einen
               Effekt zu selektieren, mu das entsprechende Bit
               gesetzt werden. Dadurch sind beliebige Kombinationen
               mglich.
Bit            0      1      2        3               4     5
Effekt         fett   hell   kursiv   unterstrichen   hohl  schattiert
Ergebnis       Die Funkltion liefert das Bitmuster der tatschlich
               eingestellten Effekte.
Gruppe         EAttributfunktionenF
Querverweis    Ev_gtextF   Ev_justifiedFName           Set Graphic Text Alignment - bestimmt die Ausrichtung
               fr Textausgaben.

Definition     void vst_alignment ( int EhandleF, int hor_in,
                                    int vert_in, int *hor_out,
                                    int *vert_out );

Beschreibung   Mit dieser Funktion wird die Ausrichtung von Grafiktext
               in den Textausgabefunktionen fr das Gert mit der
               Kennung EhandleF festgelegt.
hor_in      0  Linksbndig (das ist auch der Default-Wert)
            1  Zentriert
            2  Rechtsbndig
vert_in     0  Basislinie (das ist auch der Default-Wert)
            1  Kleinbuchstabenhhe
            2  Zeichenoberkante
            3  Zellenunterkante
            4  Zeichenunterkante
            5  Zeichenzellenoberkante
Gruppe         EAttributfunktionenF
Querverweis    Ev_gtextF   Ev_justifiedFName           Set Fill Interior Style - bestimmt den Fllmustertyp.

Definition     int vsf_interior( int EhandleF, int style );

Beschreibung   Die Funktion whlt fr das Gert EhandleF den
               Fllmustertyp aus.
type       0   FIS_HOLLOW     leer
           1   FIS_SOLID      deckend
           2   FIS_PATTERN    gemustert
           3   FIS_HATCH      schraffiert
           4   FIS_USER       frei definierbar
Gruppe         EAttributfunktionenF
Querverweis    Ev_fillareaF   Ev_contourfillF   Evr_recflF   Ev_barF
               Ev_piesliceF   Ev_circleF        Ev_ellipseF  Ev_ellpieF
               Ev_rfboxF      Evsf_styleF       Evsf_udpatFName           Set Fill Style Index - bestimmt das Fllmuster.

Definition     int vsf_style ( int EhandleF, int style_index );

Beschreibung   Die Funktion whlt fr ein Ausgabegert EhandleF den
               Musterindex style_index aus. Eine bersicht ber die
               Fllmuster findet sich im Handbuch.
Ergebnis       Die Funktion liefert das tatschlich eingestellte
               Fllmuster.
Gruppe         EAttributfunktionenF
Querverweis    Ev_fillareaF   Ev_contourfillF   Evr_recflF   Ev_barF
               Ev_piesliceF   Ev_circleF        Ev_ellipseF  Ev_ellpieF
               Ev_rfboxF      Evsf_interiorFName           Set Fill Color Index - bestimmt die Farbe mit der ein
               Polygon ausgefllt wird.

Definition     int vsf_color ( int EhandleF, int color_index );

Beschreibung   Die Funktion setzt fr das Gert mit der Kennung EhandleF
               die Fllfarbe auf den Wert color_index.
Ergebnis       Die Funktion liefert die tatschlich eingestellte
               Farbe.
Gruppe         EAttributfunktionenF
Querverweis    Ev_fillareaF   Ev_contourfillF   Evr_recflF   Ev_barF
               Ev_piesliceF   Ev_circleF        Ev_ellipseF  Ev_ellpieF
               Ev_rfboxFName           Set Fill Perimeter Visibility - bestimmt, ob eine
               Umrandung um Fllbereiche gezeichnet wird.

Definition     int vsf_perimeter( int EhandleF, int per_vis );

Beschreibung   Die Funktion bestimmt, ob bei einer Flloperation auf
               dem Gert mit der Kennung EhandleF eine Umrahmung
               gezeichnet wird oder nicht. Falls per_vis gleich Null
               ist, wird keine Umrahmung gezeichnet, sonst schon.
Ergebnis       Die Funktion liefert den tatschlich eingestellten
               Modus.
Gruppe         EAttributfunktionenF
Querverweis    Ev_fillareaF   Ev_contourfillF   Evr_recflF   Ev_barF
               Ev_piesliceF   Ev_circleF        Ev_ellipseF  Ev_ellpieF
               Ev_rfboxFName           Set User Defined Fill Pattern - definiert ein neues
               Fllmuster.

Definition     void vsf_udpat ( int EhandleF, int *pfill_pat,
                                int planes );

Beschreibung   Die Funktion definiert das frei definierbare
               Fllmuster mit der Nummer vier aus Evsf_interiorF fr
               das Gert mit der Kennung EhandleF.
planes         Anzahl der Farbebenen
pfill_pat      Zeiger auf ein Feld mit planes Zeilen zu je
               16 Eintrgen. Dabei gibt jede Zeile das
               Fllmuster fr eine Farbebene wieder. Der
               erste Eintrag in einer Zeile entspricht dabei
               der ersten Zeile des Musters usw.
Gruppe         EAttributfunktionenF
Querverweis    Evsf_interiorFName           Copy Raster, Opaque - kopiert einen Speicherbereich.

Definition     void vro_cpyfm( int EhandleF, int vr_mode,
                               int *EpxyarrayF, EMFDBF *psrcMFDB,
                               EMFDBF *pdesMFDB);

Beschreibung   Die Funktion kopiert einen Quellspeicherbereich an ein
               Ziel und verknpft dabei die Quelle und das Ziel durch
               die in vr_mode decodierte logische Verknpfung.

psrcMFDB       Zeiger auf den MFDB der Quelle
pdesMFDB       Zeiger auf den MFDB des Ziels
vr_mode        eine von 16 logischen Verknpfungen zwischen
               den Pixeln des Quell- und Zielraster
ALL_WHITE      0     D := 0
S_AND_D        1     D := S AND D
S_AND_NOTD     2     D := S AND (NOT D)
S_ONLY         3     D := S
NOTS_AND_D     4     D := (NOT S) AND D
D_ONLY         5     D := D
S_XOR_D        6     D := S XOR D
S_OR_D         7     D := S OR D
NOT_SORD       8     D := NOT (S OR D)
NOT_SXORD      9     D := NOT (S XOR D)
D_INVERT       10    D := NOT D
NOT_D          11    D := S OR (NOT D)
S_OR_NOTD      12    D := NOT S
NOTS_OR_D      13    D := (NOT S) OR D
NOT_SANDD      14    D := NOT (S AND D)
ALL_BLACK      15    D := 1

pxyarray[0]    x-Koordinate eines Eckpunktes des Quellrasters
pxyarray[1]    y-Koordinate eines Eckpunktes des Quellrasters
pxyarray[2]    x-Koordinate des diagonal gegenberliegenden
               Eckpunktes des Quellrasters
pxyarray[3]    y-Koordinate des diagonal gegenberliegenden
               Eckpunktes des Quellrasters
pxyarray[4]    x-Koordinate eines Eckpunktes des Zielrasters
pxyarray[5]    y-Koordinate eines Eckpunktes des Zielrasters
pxyarray[6]    x-Koordinate des diagonal gegenberliegenden
               Eckpunktes des Zielrasters
pxyarray[7]    y-Koordinate des diagonal gegenberliegenden
               Eckpunktes des Zielrasters
Gruppe         ERasterfunktionenF
Querverweis    EpxyarrayF   EMFDBFName           Copy Raster, Transparent - kopiert ein Monochromraster
               auf ein Farbraster.

Definition     void vrt_cpyfm( int EhandleF, int vr_mode, int *EpxyarrayF,
                               EMFDBF *psrcMFDB, EMFDBF *pdesMFDB,
                               int *color_index );

Beschreibung   Die Funktion ist hnlich der Funktion Evro_cpyfmF, nur
               da hier ausgehend von einem Monochromraster auf ein
               Farbraster kopiert wird.
               Auch stehen fr vr_mode weniger Verknpfungen zur
               Verfgung, nmlich nur diejenigen, die man mit
               Evswr_modeF setzen kann.

psrcMFDB       Zeiger auf den MFDB der Quelle
pdesMFDB       Zeiger auf den MFDB des Ziels
color_index[0] Farbnummer der Farbe, die als gesetzt
               interpretiert werden soll
color_index[1] Farbnummer der Farbe, die als nicht
               gesetzt interpretiert werden soll
pxyarray       siehe Evro_cpyfmF
vr_mode        siehe Evswr_modeF
Gruppe         ERasterfunktionenF
Querverweis    EpxyarrayF   EMFDBF   Evswr_modeF   Evro_cpyfmFName           Transform Form - wandelt ein Rasterbild um.

Definition     void vr_trnfm( int EhandleF, EMFDBF *psrcMFDB,
                              EMFDBF *pdesMFDB );

Beschreibung   Die Funktion konvertiert ein Standardraster, auf dessen
               EMFDBF psrcMFDB zeigt, in ein gertespezifisches Raster,
               auf dessen EMFDBF pdesMFDB zeigt, oder umgekehrt.
Gruppe         ERasterfunktionenF
Querverweis    EMFDBFName           Get Pixel - liefert den Farbwert eines Pixels.

Definition     void v_get_pixel( int EhandleF, int x, int y, int *pel,
                                 int *index );

Beschreibung   Die Funktion ermittelt, ob ein Pixel x, y auf dem
               Ausgabegert EhandleF gesetzt ist oder nicht und den
               zugehrigen Farbwert des Pixels.
pel         0  Pixel nicht gesetzt
            1  Pixell gesetzt
index          Farbnummer
Gruppe         ERasterfunktionenFName           Set Input Mode - setzt den Eingabemodus

Definition     void vsin_mode( int handle, int dev_type, int mode );

Beschreibung   Die Funktion setzt den Eingabemodus aller Eingaben auf
               dem Eingabegert EhandleF auf Sample (berprfung des
               Zustands und gegebenenfalls der Position) oder Request
               (das Gert wartet auf eine Eingabe).
dev_type       Art des Eingabegerts
            1  Eingabegert zur Positionseingabe (Maus)
            2  wertndernde Eingabeeinheiten (Cursor)
            3  auswhlende Einheiten (Funktionstasten)
            4  alphanumerische Eingabegerte (Tastatur)
mode           gewnschter Modus
            1  Request
            2  Sample
Gruppe         EEingabefunktionenFName           Input Locator, Request Mode - ermittel die Mausposition,
               wenn eine Taste gedrckt wurde.

Definition     void vrq_locator( int EhandleF, int x, int y, int *xout,
                                 int *yout, int *term );

Beschreibung   Die Funktion stellt den Grafikcursor an der Position x,
               y dar und wartet auf einen Tastendruck. Nach der
               Rckkehr der Funktion hat man die neue Position des
               Cursors in xout, yout und im Lowbyte von term den ASCII
               Code der gedrckten Taste.
Gruppe         EEingabefunktionenFName           Input Locator, Sample Mode - bestimmt die Position des
               Grafikcursors.

Definition     int vsm_locator( int EhandleF, int x, int y, int *xout,
                                int *yout, int *term );

Beschreibung   Die Funktion bestimmt die neue Position des
               Grafikcursors ohne ihn auf dem Gert EhandleF
               darzustellen. Aus den alten Koordinaten x, y werden
               die neuen Koordinaten xout, yout berechnet. In term
               erhlt man die gedrckte Taste.
Ergebnis       Die Funktion liefert kodiert Informationen darber, ob
               sich die Position verndert hat (Bit 0 gesetzt) und
               ob eine Taste gedrckt wurde (Bit 1 gesetzt).
Gruppe         EEingabefunktionenFName           Input Valuator, Request Mode - stellt Wertvernderungen
               im REQUEST-Modus fest.

Definition     void vrq_valuator( int EhandleF, int valuator_in,
                                 int *valuator_out, int *terminator );

Beschreibung   Die Funktion ermittelt fr das Eingabegert eine
               Wertvernderung, die sich aus entsprechenden
               Tastenbettigungen ergibt. Typische Werte sind +10 fr
               die Cursoraufwrtstaste, -10 fr die Cursorabwrtstaste,
               die zum Parameter valuator_in addiert werden und nach
               dem Aufruf in valuator_out stehen.
Gruppe         EEingabefunktionenFName           Input Valuator, Sample Mode - stellt Wertvernderungen
               im SAMPLE-Modus fest.

Definition     void vsm_valuator( int EhandleF, int val_in,
                                  int *val_out, int *term,
                                  int *status );

Beschreibung   hnlich der Funktion Evrq_valuatorF ermittelt die
               Funktion Wertvernderungen hervorgerufen durch
               Tastenbettigung spezieller "Werttasten".

val_in         zu verndernder Wert
val_out        entsprechend der bettigten Taste vernderter
               Wert von val_in
term           ASCII-Code der gedrckten Taste
status      0  keine Vernderung
            1  Wert verndert
            2  Taste bettigt
Gruppe         EEingabefunktionenF
Querverweis    Evrq_valuatorFName           Input Choise, Request Mode - liefert den Status der
               Funktionstasten, wenn eine gedrckt wurde.

Definition     void vrq_choice( int EhandleF, int ch_in, int *ch_out );

Beschreibung   Die Funktion wartet darauf, da eine Auswahltaste
               (Funktionstaste) auf dem Eingabegert EhandleF bettigt
               wird. Wird eine andere Taste bettigt, so wird der Wert
               ch_in zurckgeliefert.
Gruppe         EEingabefunktionenF
Querverweis    Evsm_choiceFName           Input Choise, Sample Mode - ermittelt welche
               Funktionstaste zuletzt gedrckt wurde.

Definition     int vsm_choice( int EhandleF, int *choice );

Beschreibung   Die Funktion berprft den Zustand der Auswahltasten
               (Funktionstasten) und schreibt den Code in choice.
Ergebnis       Die Funktion liefert eine Eins, falls eine Auswahltaste
               bettigt wurde, sonst eine Null.
Gruppe         EEingabefunktionenF
Querverweis    Evrq_choiceFName           Input String, Request Mode - liest einen String im
               REQUEST-Modus ein.

Definition     void vrq_string( int EhandleF, int max_length,
                                int echo_mode, int *echo_xy,
                                char *string );

Beschreibung   Die Funktion gestattet die Eingabe von Grafiktext der
               maximalen Lnge max_length auf dem Eingabegert EhandleF.
               Falls echo_mode gleich Eins ist, wird der eingegebene
               Text auf dem Eingabegert unter Beachtung der
               ETextattributeF an den Koordinaten echo_xy[0], echo_xy[1]
               dargestellt. Die Funktion wird entweder durch das
               Bettigen von RETURN oder bei berschreittung von
               max_len Eingabezeichen beendet. Der eingegebene Text
               steht in string.
Gruppe         EEingabefunktionenF
Querverweis    Evswr_modeF   Evs_colorF       Evst_alignmentF  Evst_heightF
               Evst_pointF   Evst_rotationF   Evst_fontF       Evst_colorF
               Evst_effectsF Evsm_stringFName           Input String, Sample Mode - liest einen String im
               SAMPLE-Modus ein.

Definition     int vsm_string( int EhandleF, int max_length,
                               int echo_mode, int *echo_xy,
                               char *string );

Beschreibung   Die Funktion gestattet die Eingabe von Grafiktext auf
               dem Eingabegert EhandleF. Die Funktion wird beendet,
               falls die Anzahl der maximalen Eingabezeichen
               max_length berschritten wird, die RETURN-Taste
               bettigt wurde oder eine nicht zulssige Taste gedrckt
               wurde. Falls echo_mode Eins ist, wird die Eingabe unter
               Beachtung der ETextattributeF auf dem Eingabegert an den
               Koordinaten echo_xy[0], echo_xy[1] dargestellt.
Ergebnis       Die Funktion liefert entweder die Anzahl der gelesen
               Zeichen oder Null, falls die Eingabe durch eine
               ungltige Taste  abgebrochen wurde. Der eingegebene
               Text steht in string.
Gruppe         EEingabefunktionenF
Querverweis    Evswr_modeF    Evs_colorF      Evst_alignmentF   Evst_heightF
               Evst_pointF    Evst_rotationF  Evst_fontF        Evst_colorF
               Evst_effectsF  Evrq_stringFName           Set Mouse Form - setzt die Mauszeigerform.

Definition     void vsc_form( int EhandleF, int *pcur_form );

Beschreibung   Die Funktion setzt auf dem Gert EhandleF eine neue
               Mauszeigerform. Die Information ber das Aussehen des
               Mauszeigers steht dabei in der Datenstruktur, auf die
               pcur_form zeigt. Der Aufbau der Datenstruktur:

               pcur_form[0]      relative x-Koordinate des Hot-Spot
               pcur_form[1]      relative y-Koordinate des Hot-Spot
               pcur_form[2]      reserviert: 1
               pcur_form[3]      Farbindex der Hintergrundmaske
               pcur_form[4]      Farbindex der Vordergrundmaske
               pcur_form[5..20]  Hintergrundmaske
               pcur_form[21..36] Vordergrundmaske

Gruppe         EEingabefunktionenF
Querverweis    Egraf_mouseFName           Exchange Timer Interrupt Vector - stellt den
               Interruptvector fr den Zeitgeber um.

Definition     void vex_timv( int EhandleF, int (*tim_addr)(),
                              int (**otim_addr)(), int *tim_conv );

Beschreibung   Die Funktion ermglicht es, eine eigene Routine in den
               Timerinterrupt einzuhngen. Dabei ist tim_addr ein
               Zeiger auf die eigene Funktion, in otim_addr erhlt man
               die alte Adresse der Interruptroutine und in tim_conv
               die Anzahl der Millisekunden. Am Ende des Programms mu
               der alte Vektor wieder hergestellt werden.
Gruppe         EEingabefunktionenFName           Show Cursor - schaltet den Grafikcursor ein.

Definition     void v_show_c( int EhandleF, int reset );

Beschreibung   Die Funktion zeigt auf dem Gert EhandleF den
               Grafikcursor an, falls reset gleich Null ist bzw. hebt
               einen Aufruf der Funktion Ev_hide_cF auf. Es ist also
               eine Verschachtelung der Aufrufe beider Funktionen
               mglich.
Gruppe         EEingabefunktionenF
Querverweis    Ev_hide_cFName           Hide Cursor - schaltet den Grafikcursor aus.

Definition     void v_hide_c( int EhandleF );

Beschreibung   Die Funktion schaltet den Grafikcursor auf dem Gert
               mit der Kennung EhandleF aus.

Gruppe         EEingabefunktionenF
Querverweis    Ev_show_cFName           Sample Mouse Button State - ermittelt Position und
               Status der Maustasten.

Definition     void vq_mouse( int EhandleF, int *pstatus, int *x,
                              int *y );

Beschreibung   Die Funktion berprft den Status der linken Maustaste
               und schreibt ihn in pstatus (0  Taste nicht gedrckt,
               1  Taste gedrckt).
               Zustzlich erhlt man die Position des Mauszeigers in x
               und y.
Gruppe         EEingabefunktionenFName           Inquire Printer Scan - Abfrage der Druckerparameter

Definition     void vq_scan( int EhandleF, int *g_slice,
                             int *g_page, int *a_slice, int *a_page,
                             int *div_fac );

Beschreibung   Die Funktion frgt verschiedene druckerspezifische
               Paramater ab. Der Druckertreiber unterteilt eine
               Druckseite in mehrere "Scheiben" (slices), die
               nacheinander formatiert und gedruckt werden, um den
               Speicherplatzbedarf zu senken. Dabei ist g_slice die
               Anzahl dieser Scheiben und g_page die Pixelhhe einer
               Scheibe. a_slice gibt die Hhe einer Textzeile in Pixel
               und a_page die Anzahl Textzeilen pro Seite an.
               Durch div_fac mssen die anderen Werte ggf. noch
               geteilt werden.
Gruppe         EAuskunftsfunktionenFName           Output Alpha Text - Ausgabe von Text im Textmodus

Definition     void v_alpha_text( int EhandleF, char *string);

Beschreibung   Die Funktion gibt Text im Textmodus aus. Grundlegende
               Steuerzeichen sind fr alle Druckertypen genormt:

               DC2 0:    Fett an
               DC2 1:    Fett aus
               DC2 2:    Kursiv an
               DC2 3:    Kursiv aus
               DC2 4:    Unterstrichen an
               DC2 5:    Unterstrichen aus

Gruppe         EAusgabefunktionenFName           Exchange Button Change Vector - stellt den
               Interruptvektor fr einen Maustastendruck um.

Definition     void vex_butv( int EhandleF, int (*pusrcode)(),
                              int (**psavcode)() );

Beschreibung   Die Funktion gestattet es, eine eigene Routine in den
               Maustastenvektor einzuhngen. Dazu bergibt man den
               Zeiger auf die eigene Routine in pusrcode und erhlt
               den alten Vektor in psavcode. Am Programmende mu der
               alte Vektor wiederhergestellt werden.

Gruppe         EEingabefunktionenFName           Exchange Mouse Movement Vector - stellt den
               Interruptvektor fr Mausbewegungen um.

Definition     void vex_motv( int EhandleF, int (*pusrcode)(),
                              int (**psavcode)() );

Beschreibung   Die Funktion ermglicht es, eine eigene Routine in den
               Mousemovementvektor einzuhngen, d. h. bei jeder
               Mausbewgung wird dann die neue Routine aufgerufen.
               Dabei ist pusrcode der Zeiger auf die einzuhngende
               Routine und in psavecode erhlt man den alten Vektor,
               der am Programmende wiederhergestellt werden mu.
Gruppe         EEingabefunktionenFName           Exchange Cursor Change Vector - stellt den
               Interruptvector fr Cursorbewegungen um.

Definition     void vex_curv( int EhandleF, int (*pusrcode)(),
                              int (**psavcode)() );

Beschreibung   Die Funktion ermglicht es, eine eigene Routine in den
               Cursorchangevektor einzuhngen. Dabei ist pusrcode ein
               Zeiger auf die einzuhngende Routine und in psavcode
               erhlt man den alten Vektor, den man am Programmende
               wiederherstellen mu.
Gruppe         EEingabefunktionenFName           Sample Keyboard State Information - ermittelt den
               Status der Kontrolltasten.

Definition     void vq_key_s( int EhandleF, int *pstatus );

Beschreibung   Die Funktion berprft die Tastatur und schreibt den
               Zustand der Sondertasten in pstatus. Das Format ist
               dabei das gleiche wie in ev_bkstate bei Eevnt_buttonF.
Gruppe         EEingabefunktionenF
Querverweis    Eevnt_buttonFName           Extended Inquire Funktion - ermittelt Informationen
               ber eine Arbeitsstation.

Definition     void vq_extnd( int EhandleF, int owflag, int *work_out );

Beschreibung   Die Funktion erlaubt es, ber ein Gert mit der Kennung
               EhandleF einige Ausknfte, d. h. Angaben ber die
               Fhigkeiten des Gerts, einzuholen. Ist owflag gleich
               Null, so erhlt man in Ework_outF die gleichen Angaben,
               wie in Ev_opnwkF, ist dagegen owflag gleich Eins, so
               erhlt man in Ework_outF erweiterte Ausknfte.
Gruppe         EAuskunftsfunktionenF
Querverweis    Ev_contourfillF   Evswr_modeF   Ev_plineF   Ev_pmarkerF
               Ev_fillareaF      Ev_opnwkFwork_out[0]    genaue Spezifikation des Bildschirms
               0  kein Bildschirm
               1  getrennte Grafik/Textbildschirme mit getrennten
                  Kontrollern
               2  gemeinsame Grafik/Textbildschirme mit getrennten
                  Kontrollern
               3  getrennte Grafik/Textbildschirme mit gemeinsamen
                  Kontroller
               4  gemeinsamer Grafik/Textbildschirm mit gemeinsamen
                  Kontroller
work_out[1]    Anzahl der vom Gert untersttzten Farben
work_out[2]    Anzahl der vom Gert untersttzten Texteffekte
work_out[3]    Vergrerungsflag
               0  Gert untersttzt vergrern nicht
               1  Gert untersttzt vergrern
work_out[4]    Anzahl der Farbebenen
work_out[5]    falls Null, so untersttzt das Gert einen
               "lookup-table", sonst nicht
work_out[6]    Anzahl der mglichen 16x16 Rasteroperationen / Sekunde
work_out[7]    falls Eins, so untersttzt das Gert die
               Ev_contourfillF Funktion.
work_out[8]    Textrotationsflag
               0  nicht mglich
               1  in 90 Grad Schritten mglich
               2  kontinuierliche Drehung mglich
work_out[9]    Anzahl der untersttzten Schreibmodi ( Evswr_modeF )
work_out[10]   welche Eingabemodi stehen zur Verfgung
               0  keine
               1  Request Modus
               2  Sample Modus
work_out[11]   Textausrichtung wird
               0  nicht untersttzt
               1  untersttzt
work_out[12]   Farbstiftwechsel wird
               0  nicht untersttzt
               1  untersttzt
work_out[13]   Wechsel des Farbbandes wird am Ausgabegert
               0  nicht untersttzt
               1  zeilenweise untersttzt
               2  zeilen- und spaltenweise untersttzt
work_out[14]   Hchstzahl von Koordinatenpaare fr Ev_plineF,
               Ev_pmarkerF, Ev_fillareaF
work_out[15]   maximale Gre des int_in Feldes (-1 unbegenzt)
work_out[16]   Zahl der verfgbaren Maustasten
work_out[17]   verschiedene Linientypen werden fr breite Linien
               0  nicht untersttzt
               1  untersttzt
work_out[18]   Anzahl der verfgbaren Schreibmodi fr breite Linien
work_out[19]   0 (reserviert)
    :
work_out[56]Name           Inquire Color Representation - ermittelt die
               Intensitt einer Farbe.

Definition     void vq_color( int EhandleF, int color_index,
                             int set_flag, int *rgb );

Beschreibung   Falls set_flag Null ist, so ermittelt die Funktion die
               vom Anwender gewnschte Farbe und und schreibt die
               Farbanteile der Grundfarben fr die Farbe color_index
               in das Feld rgb.
               Falls dagegen set_flag Eins ist, so ermittelt die
               Funktion die Farbe, die von der Workstation auch
               tatschlich realisiert werden konnte.

rgb_in[0]      Rotanteil in Promille
rgb_in[1]      Grnanteil in Promille
rgb_in[2]      Blaunanteil in Promille

Gruppe         EAuskunftsfunktionenF
Querverweis    Evs_colorFName           Inquire Current Polyline Attributes - ermittelt die
               Attribute fr das Zeichnen von Linien.

Definition     void vql_attributes( int EhandleF, int *attrib );

Beschreibung   Die Funktion ermittelt die derzeit gesetzten Attribute,
               die fr alle POLYLINE Operationen auf dem Gert EhandleF
               gltig sind.

attrib[0]      aktueller Linientyp
attrib[1]      Linienfarbnummer
attrib[2]      Schreibmodus
attrib[3]      Darstellung des Linienanfangs
attrib[4]      Darstellung des Linienendes
attrib[5]      Linienstrichstrke

Gruppe         EAuskunftsfunktionenF
Querverweis    Evswr_modeF   Evs_colorF   Evsl_typeF   Evsl_widthF
               Evsl_colorF   Evsl_endsFName           Inquire Current Polymarker Attributes - ermittelt die
               Attribute fr das Zeichnen von Markierungen.

Definition     void vqm_attributes( int EhandleF, int *attrib );

Beschreibung   Die Funktion ermittelt die derzeit gesetzten
               Linienattribute, die fr alle POLYMARKER Operationen
               auf dem Gert EhandleF gltig sind.

attrib[0]      aktueller Markertyp
attrib[1]      Markerfarbnummer
attrib[2]      Schreibmodus
attrib[3]      Breite des Markers
attrib[4]      Hhe des Markers

Gruppe         EAuskunftsfunktionenF
Querverweis    Evswr_modeF  Evs_colorF  Evsm_typeF  Evsm_heightF  Evsm_colorFName           Inquire Current Fill Area Attributes - ermittelt die
               Attribute zum Ausfllen von Flchen.

Definition     void vqf_attributes( int EhandleF, int *attrib );

Beschreibung   Die Funktion ermittelt die derzeit gesetzten
               Fllattribute, die fr alle FILL Operationen auf
               dem Gert EhandleF gltig sind.

attrib[0]      Fllmuster
attrib[1]      Fllfarbnummer
attrib[2]      Fllmusterindex
attrib[3]      Schreibmodus
attrib[4]      Umrahmung zeichnen

Gruppe         EAuskunftsfunktionenF
Querverweis    Evswr_modeF   Evs_colorF      Evsf_interiorF   Evsf_styleF
               Evsf_colorF   Evsf_perimeterFName           Inquire Current Graphic Text Attributes - ermittelt die
               Attribute fr das Schreiben von Texten.

Definition     void vqt_attributes( int EhandleF, int *attrib );

Beschreibung   Die Funktion ermittelt die derzeit gesetzten
               ETextattributeF, die fr alle GRAPHICS TEXT
               Operationen auf dem Gert EhandleF gltig sind.
attrib[0]      Zeichensatznummer
attrib[1]      Textfarbnummer
attrib[2]      Drehwinkel des Texts (in 1/10 Grad)
attrib[3]      horizontale Ausrichtung
attrib[4]      vertikale Ausrichtung
attrib[5]      Schreibmodus
attrib[6]      Breite eines Zeichens
attrib[7]      Hhe eines Zeichens
attrib[8]      Zeichenzellenbreite
attrib[9]      Zeichenzellenhhe
Gruppe         EAuskunftsfunktionenF
Querverweis    Evswr_modeF     Evs_colorF   Evst_heightF   Evst_pointF
               Evst_rotationF  Evst_fontF   Evst_colorF    Evst_effectsF
               Evst_alignmentFName           Inquire Text Extent - ermittelt die Lnge eines Strings.

Definition     void vqt_extent( int EhandleF, char *string,
                                int *extent );

Beschreibung   Die Funktion ermittelt fr die, in string stehende
               Zeichenkette, ein Rechteck, das den Text unter
               Beachtung aller gesetzten ETextattributeF auf dem Gert
               EhandleF voll umgibt und schreibt die Koordinaten der
               Ecken dieses Rechtecks in extent.

                 extent[0]      x-Koordinate der unteren linken Ecke
                 extent[1]      y-Koordinate der unteren linken Ecke
                 extent[2]      x-Koordinate der unteren rechten Ecke
                 extent[3]      y-Koordinate der unteren rechten Ecke
                 extent[4]      x-Koordinate der oberen rechten Ecke
                 extent[5]      y-Koordinate der oberen rechten Ecke
                 extent[6]      x-Koordinate der oberen linken Ecke
                 extent[7]      y-Koordinate der oberen linken Ecke

Gruppe         EAuskunftsfunktionenF

Querverweis    Evst_heightF   Evst_pointF     Evst_rotationF
               Evst_fontF     Evst_effectsFName           Inquire FSM Text Extent - ermittelt die Lnge eines
               Strings im FSM-Zeichensatz.

Definition     void  vqt_f_extent( int EhandleF, char *string,
                                     int *extent );

Beschreibung   Die Funktion ermittelt fr die, in string stehende
               Zeichenkette, ein Rechteck, das den Text unter
               Beachtung aller gesetzten ETextattributeF auf dem Gert
               EhandleF und des aktuellen FSM-Zeichensatzes voll
               umgibt und schreibt die Koordinaten der Ecken dieses
               Rechtecks in extent.

                 extent[0]      x-Koordinate der unteren linken Ecke
                 extent[1]      y-Koordinate der unteren linken Ecke
                 extent[2]      x-Koordinate der unteren rechten Ecke
                 extent[3]      y-Koordinate der unteren rechten Ecke
                 extent[4]      x-Koordinate der oberen rechten Ecke
                 extent[5]      y-Koordinate der oberen rechten Ecke
                 extent[6]      x-Koordinate der oberen linken Ecke
                 extent[7]      y-Koordinate der oberen linken Ecke

Gruppe         EAuskunftsfunktionenF

Querverweis    EFSMGDOSF     Evqt_extentFName           Inquire Character Cell Width - ermittelt die Breite
               einer Zeichenzelle.

Definition     int vqt_width( int EhandleF, char character,
                              int *cell_width, int *left_delta,
                              int *right_delta );

Beschreibung   Die Funktion ermittelt fr einen Buchstaben character
               auf dem Gert EhandleF die Zeichenzellenbreite
               cell_width und die Zeichenzwischenrume left_delta und
               right_delta. Dabei werden die mit Evst_effectsF gesetzten
               Textspezialeffekte nicht mit bercksichtigt.
Ergebnis       Die Funktion liefert  -1, falls die Ausmae aus irgend
               einem Grund nicht berechnet werden konnten.
Gruppe         EAuskunftsfunktionenF
Querverweis    Evst_effectsFName           Inquire Face Name and Index - ermittelt den Namen und
               Kurzbeschreibung eines Zeichensatzes.

Definition     int vqt_name( int EhandleF, int element_num, char *name);

Beschreibung   Die Funktion ermittelt fr den Zeichensatz mit der
               Nummer element_num auf dem Gert EhandleF den Namen des
               Zeichensatzes und schreibt ihn in name.

Ergebnis       Die Funktion liefert die Indexnummer des Zeichensatzes.
name[0]        Name des Zeichensatzes
  :
name[15]
name[16]       Kurzbeschreibung des Zeichesatzes
  :
name[31]
name[32]       Flag fr EFSM-FontF

Gruppe         EAuskunftsfunktionenF
Querverweis    Evst_load_fontsF Evst_fontFName           Inquire Cell Array - ermittelt Informationen ber eine
               dargestellte Farbtabelle.

Definition     void vq_cellarray( int EhandleF, int *EpxyarrayF,
                                  int row_length, int num_rows,
                                  int *el_used, int *rows_used,
                                  int *status, int *colarray );

Beschreibung   Die Funktion ermittelt auf dem Gert EhandleF die
               derzeitigen Attribute eines eventuell vorhanden
               CELL ARRAY.
EpxyarrayF       Begrenzungsrechteck
row_length     Anzahl der Spalten
num_rows       Anzahl der Zeilen
el_used        Anzahl benutzter Zellen in einer Reihe
rows_used      Anzahl benutzter Zeilen
status         0   alles hat ohne Fehler geklappt
               >0  eine Farbe konnte nicht gefunden werden
colarray       Farbindexarray
Gruppe         EAuskunftsfunktionenF
Querverweis    Ev_cellarrayFName           Inquire Input Mode - ermittelt den Eingabemodus.

Definition     void vqin_mode( int EhandleF, int dew_type,
                               int *input_mode );

Beschreibung   Die Funktion ermittelt den fr das Gert EhandleF
               gltigen Eingabemodus.
dew_type       Art des Eingabegerts
            1  Eingabegert zur Positionseingabe (Maus)
            2  wertndernde Eingabeeinheiten (Cursor)
            3  auswhlende Einheiten (Funktionstasten)
            4  alphanumerische Eingabegerte (Tastatur)
input_mode     eingestellter Modus
            1  Request
            2  Sample
Gruppe         EAuskunftsfunktionenF
Querverweis    Evsin_modeF      Evrq_locatorF  Evsm_locatorF   Evrq_valuatorF
               Evsm_valuatorF   Evrq_choiceF   Evsm_choiceF    Evrq_stringF
               Evsm_stringFName           Inquire Current Face Information - ermittelt
               Informationen ber Zeichenstze.

Definition     void vqt_fontinfo( int EhandleF, int *minADE,
                                  int *maxADE, int *distances,
                                  int *maxwidth, int *effects );

Beschreibung   Die Funktion gibt ausfhrliche Auskunft ber den
               derzeit aktuellen Zeichensatz auf dem Gert EhandleF.
minADE         Zeichennummer des ersten Zeichens im Zeichensatz
maxADE         Zeichennummer des letzten Zeichens im Zeichensatz
distances[0]   Abstand untere Kante der Zeichenzelle zur Basislinie
distances[1]   Unterlnge in Pixeln (Abstand Untergrenze Zeichen zur
               Basislinie)
distances[2]   Obergrenze der Kleinbuchstaben (Halblinie)
distances[3]   Abstand Obergrenze des Zeichens zur Basislinie
distances[4]   Abstand der oberen Kante der Zeichenzelle zur Basislinie
max_width      Zeichenzellenbreite des breitesten Zeichens ohne
               Beachtung von Spezialeffekten
effects[0]     Verbreiterung der Zeichen bei Spezialeffekten
effects[1]     linke Verbreiterung bei Kursivdarstellung
effects[2]     rechte Verbreiterung bei Kursivdarstellung
Gruppe         EAuskunftsfunktionenF
Querverweis    Evst_effectsFName           Inquire Addressable Alpha Character Cells - ermittelt
               die Anzahl der Reihen und Spalten einer Arbeitsstation.

Definition     void vq_chcells( int EhandleF, int *rows, int *columns );

Beschreibung   Die Funktion ermittelt die auf dem Gert EhandleF mit dem
               Alphacursor ansprechbaren Zeilen rows und Spalten
               columns. Falls keine Adressierung mglich ist, erhlt
               man -1 im entsprechenden Parameter.

Gruppe         EEscapefunktionenF
Querverweis    Ev_enter_curFName           Exit Alpha Mode - schaltet den Textmodus ab.

Definition     void v_exit_cur( int EhandleF );

Beschreibung   Die Funktion veranlat das Gert mit der Kennung EhandleF
               den alphanumerischen Darstellungsmodus zu Verlassen und
               wieder auf den Grafikbildschirm zu schalten.

Gruppe         EEscapefunktionenF
Querverweis    Ev_enter_curFName           Enter Alpha Mode - schaltet den Textmodus ein.

Definition     void v_enter_cur( int EhandleF );

Beschreibung   Die Funktion veranlat das Gert mit der Kennung EhandleF
               in den alphanumerischen Darstellungsmodus zu schalten
               und setzt den Textcursor in die linke obere Ecke.

Gruppe         EEscapefunktionenF
Querverweis    Ev_exit_curFName           Alpha Cursor up - bewegt den Alphacursor um eine Zeile
               nach oben.

Definition     void v_curup( int EhandleF );

Beschreibung   Die Funktion bewegt den Alphacursor auf dem Gert
               EhandleF eine Zeile nach oben. Falls sich der Cursor
               bereits in der obersten Zeile befindet, so verndert
               sich nichts.
Gruppe         EEscapefunktionenF
Querverweis    Ev_enter_curFName           Alpha Cursor down - bewegt den Alphacursor um eine
               Zeile nach unten.

Definition     void v_curdown( int EhandleF );

Beschreibung   Die Funktion bewegt den Alphacursor auf dem Gert
               EhandleF eine Zeile nach unten. Falls sich der Cursor
               bereits in der untersten Zeile befindet, so verndert
               sich nichts.
Gruppe         EEscapefunktionenF
Querverweis    Ev_enter_curFName           Alpha Cursor right - bewegt den Alphacursor um ein
               Zeichen nach rechts.

Definition     void v_curright( int EhandleF );

Beschreibung   Die Funktion bewegt den Alphacursor auf dem Gert
               EhandleF eine Spalte nach rechts. Falls sich der
               Cursor bereits in der rechtesten Spalte befindet, so
               verndert sich nichts.
Gruppe         EEscapefunktionenF
Querverweis    Ev_enter_curFName           Alpha Cursor left - bewegt den Alphacursor um ein
               Zeichen nach links.

Definition     void v_curleft( int EhandleF );

Beschreibung   Die Funktion bewegt den Alphacursor auf dem Gert
               EhandleF eine Spalte nach links. Falls sich der Cursor
               bereits in der linksten Spalte befindet, so verndert
               sich nichts.
Gruppe         EEscapefunktionenF
Querverweis    Ev_enter_curFName           Home Alpha Cursor - bewegt den Alphcursor in die linke
               obere Ecke.

Definition     void v_curhome( int EhandleF );

Beschreibung   Die Funktion bewegt den Alphacursor auf dem Gert
               EhandleF in die "Home"-Stellung (meist oben links).
Gruppe         EEscapefunktionenF
Querverweis    Ev_enter_curFName           Erase to End of Alpha Screen - lscht den Bildschirm ab
               dem Alphacursor.

Definition     void v_eeos( int EhandleF );

Beschreibung   Die Funktion lscht auf dem Gert mit der Kennung
               EhandleF den alphanumerischen Bildschirm ab der
               aktuellen Alphacursorposition. Die Position des Cursors
               wird dabei nicht verndert.
Gruppe         EEscapefunktionenF
Querverweis    Ev_enter_curFName           Erase to End of Alpha Text Line - lscht die Zeile ab
               dem Alphacursor.

Definition     void v_eeol( int EhandleF );

Beschreibung   Die Funktion lscht auf dem Gert mit der Kennung
               EhandleF die Zeile des alphanumerischen Bildschirm ab
               der aktuellen Alphacursorposition. Die Position des
               Cursors bleibt dabei unverndert.
Gruppe         EEscapefunktionenF
Querverweis    Ev_enter_curFName           Direct Alpha Cursor Address - setzt den Alphacursor an
               die angegebene Position.

Definition     void v_curaddress( int EhandleF, int row, int column );
               bzw.
               void vs_curaddress( int EhandleF, int row, int column );

Beschreibung   Die Funktion setzt den Alphacursor auf dem Gert mit
               der Kennung EhandleF in die Zeile row und die Spalte
               column.
Beschreibung   EEscapefunktionenF
Querverweis    Ev_enter_curFName           Output Cursor Addressable Alpha Text - gibt einen Text
               ab dem Alphacursor aus.

Definition     void v_curtex( int EhandleF, char *string );

Beschreibung   Die Funktion gibt den Text, auf den string zeigt, auf
               dem Gert mit der Kennung EhandleF an der aktuellen
               Cursorposition aus.
Gruppe         EEscapefunktionenF
Querverweis    Ev_enter_curF   Ev_enter_curF   Ev_curupF     Ev_curdownF
               Ev_currightF    Ev_curleftF     Ev_curhomeF   Evs_curaddressFName           Reverse Video on - schaltet den Invertiermodus ein.

Definition     void v_rvon( int EhandleF );

Beschreibung   Die Funktion schaltet fr das Gert mit der Kennung
               EhandleF in den Reversemodus, d. h. alle
               alphanumerischen Ausgaben werden invertiert.
Gruppe         EEscapefunktionenF
Querverweis    Ev_enter_curF   Ev_rvoffFName           Reverse Video off - schaltet den Invertiermodus ab.

Definition     void v_rvoff( int EhandleF );

Beschreibung   Die Funktion schaltet fr das Gert mit der Kennung
               EhandleF den Reversemodus wieder ab, d. h. alle
               alphanumerischen Ausgaben werden wieder normal
               dargestellt.
Gruppe         EEscapefunktionenF
Querverweis    Ev_enter_curF   Ev_rvonFName           Inquire Current Alpha Cursor Address - ermittelt die
               aktuelle Alphacursorposition.

Definition     void vq_curaddress( int EhandleF, int *row, int *column);

Beschreibung   Die Funktion ermittelt die aktuelle Position des
               Alphacursors auf dem Gert EhandleF und schreibt sie
               in row (Zeile) und column (Spalte).

Gruppe         EEscapefunktionenF
Querverweis    Ev_enter_curFName           Inquire Tablet Status - ermittelt die Verfgbarkeit
               einer Eingabeeinheit.

Definition     int vq_tabstatus( int EhandleF );

Beschreibung   Die Funktion ermittelt fr das Gert mit der Kennung
               EhandleF, ob ein Grafiktablet, eine Maus, ein Joystick
               oder ein hnliches Eingabeeinheit verfgbar ist. Ist
               ein solche Eingabeeinheit verfgbar, so liefert die
               Funktion einen Rckgabewert von Eins, sonst liefert
               sie Null.
Gruppe         EEscapefunktionenFName           Hardcopy - fhrt eine Hardcopy des Bildschirms durch.

Definition     void v_hardcopy( int EhandleF );

Beschreibung   Die Funktion erstellt auf dem Gert mit der Kennung
               EhandleF eine Hardcopy des Bildschirminhalts.
Gruppe         EEscapefunktionenFName           Place Graphic Cursor at Location - positioniert den
               Grafikcursor an die angegebene Position.

Definition     void v_dspcur( int EhandleF, int x, int y );

Beschreibung   Die Funktion plaziert den Grafikcursor an den
               Koordinaten x, y auf dem Gert EhandleF.
Gruppe         EEscapefunktionenFName           Remove last Graphic Cursor - entfernt den Grafikcursor.

Definition     void v_rmcur( int EhandleF );

Beschreibung   Die Funktion entfernt den Grafikcursor vom
               Gert EhandleF.
Gruppe         EEscapefunktionenFName           Form Advance - erzeugt einen Seitenvorschub.

Definition     void v_form_adv( int EhandleF );

Beschreibung   Die Funktion erzeugt auf dem Gert mit der Kennung
               EhandleF einen Seitenvorschub und der Inhalt des
               Datenpuffers bleibt abei erhalten.
Gruppe         EEscapefunktionenF
Querverweis    Ev_clrwkFName           Output Window - gibt den Fensterinhalt auf dem
               Drucker aus.

Definition     void v_output_window( int EhandleF, int *xyarray );

Beschreibung   Die Funktion gibt den Inhalt des durch xyarray
               festgelegten Fensters der Arbeitsstation mit der
               Kennung EhandleF auf dem Drucker aus.

               falls Normalkoordinaten (NDC) verwendet werden:
xyarray[0]     x-Koordinate der linken unteren Ecke
xyarray[1]     y-Koordinate der linken unteren Ecke
xyarray[2]     x-Koordinate der rechten oberen Ecke
xyarray[3]     y-Koordinate der rechten oberen Ecke

               falls Rasterkoordinaten (RC) verwendet werden:
xyarray[0]     x-Koordinate der linken oberen Ecke
xyarray[1]     y-Koordinate der linken oberen Ecke
xyarray[2]     x-Koordinate der rechten unteren Ecke
xyarray[3]     y-Koordinate der rechten unteren Ecke
Gruppe         EEscapefunktionenF
Querverweis    Ev_updwkFName           Clear Display List - lscht die Druckerpufferliste.

Definition     void v_clear_disp_list( int EhandleF );

Beschreibung   Die Funktion lscht die Druckerpufferliste eines
               angeschlossenen Druckers hnlich der Funktion Ev_clrwkF.
               Es wird jedoch im Unterschied dazu kein Seitenvorschub
               erzeugt. Die Funktion sollte nur mit EGDOSF verwendet
               werden.
Gruppe         EEscapefunktionenF
Querverweis    EGDOSF   Ev_clrwkFName           Output Bit Image File - gibt ein Bitimagefile auf
               dem Drucker aus.

Definition     void v_bit_image( int handle, const char *filename,
                                 int aspect, int x_scale, int y_scale,
                                 int h_align, int v_align,
                                 int *xyarray );

Beschreibung   Die Funktion liest ein Bit-Image-File mit dem Pfadnamen
               filename und gibt den Bildinhalt auf dem Drucker EhandleF
               aus. Wichtig ist, da die Funktion nur bei residenten
               EGDOSF richtig arbeitet.

aspect         gibt an, wie der Abbildungsmastab interpretiert
               werden soll:
            0  ignorieren
            1  Pixel bercksichtigen (das Verhltnis Breite/Hhe
               bleibt konstant)
            2  Seite bercksichtigen (rechnet eventuell verschiedene
               Seitengren ineinander um)
x_scale        Skalierung der X-Achse
y_scale        Skalierung der Y-Achse
               bei bergabe von Koordinaten wird ntigenfalls der
               Mastab verndert.
            0  gebrochen, beachtet den Abbildungsmastab aspect
            1  ganzzahlig, nutzt das angegebene Rechteck in xyarray
               voll aus unter Vernderung des angegeben Mastabs
h_align        Horizontale Ausrichtung
            0  linksbndig
            1  zentriert
            2  rechtsbndig
v_align        Vertikale Ausrichtung
            0  obenbndig
            1  zentriert
            2  untenbndig
xyarray[0]     x-Koordinate der linken oberen Ecke des Ausgabefensters
xyarray[1]     y-Koordinate der linken oberen Ecke des Ausgabefensters
xyarray[2]     x-Koordinate der rechten unteren Ecke des
               Ausgabefensters
xyarray[3]     y-Koordinate der rechten unteren Ecke des
               Ausgabefensters
Gruppe         EEscapefunktionenF
Querverweis    EGDOSFName           Select Palette - whlt eine Farbpalette aus.

Definition     void vs_palette( int EhandleF, int palette );

Beschreibung   Die Funktion whlt eine Farbpalette fr das Gert
               EhandleF aus.

palette     0  Rot, Grn, Braun
            1  Cyan, Magenta, Wei
Gruppe         EEscapefunktionenFName           Inquire Palette Film Types - ermittelt Informationen
               ber einen Film.

Definition     void vqp_films( int EhandleF, char *film_names );

Beschreibung   Die Funktion bentigt zum einen EGDOSF und zum anderen
               einen Polaroidbildrecorder. Fr dieses Ausgabegert
               ermittelt die Funktion dann die Namen, den Hersteller
               und die Empfindlichkeit in ASA der zur Verfgung
               stehenden Filme.

film_names     Zeiger auf einen 126 Byte groen Zeichenbuffer in den 5
               Eintrge zu je 25 Zeichen gemacht werden.

Gruppe         EEscapefunktionenF
Querverweis    EGDOSFName           Inquire Palette Driver State - ermittelt den
               Gertezustand des Polaroidbildrecorders.

Definition     void vqp_state( int EhandleF, int *port, char *film_name,
                               int *lightness, int *interlace,
                               int *planes, int *indexes );

Beschreibung   Die Funktion bentigt zum einen EGDOSF und zum
               anderen einen Polaroidbildrecorder und ermittelt dann
               fr dieses Ausgabegert den Gertezustand.

port           Nummer des Ports (0  erster Port)
film_name      Nummer des Filmnamen (0 bis 4)
lightness      Helligkeit (-3 bis 3, wobei eine Stufe einer Drittel
               Blende entspricht)
interlace      Bild wird mit (1) oder ohne (0) Zeilensprung abgetastet
planes         Farbanzahl =  2^planes, wobei planes zwischen
               1 und 4 liegt
indexes        Festlegung der Farben der Farbpalette. Es wird ein
               Speicherplatz von 16 Bytes bentigt. Jede Farbe wird
               durch eine Zahl (fr die Zeilen der Farbmatrix) und
               einen Buchstaben von A bis H (fr die Spalten der
               Farbmatrix) gekennzeichnet.
Gruppe         EEscapefunktionenF
Querverweis    EGDOSF  Evsp_stateF  Evsp_saveF  Evsp_messageF  Evqp_filmsFName           Set Palette Driver State - setzt den Ausgabezustand
               des Polaroidrecorders.

Definition     void vsp_state( int EhandleF, int port, int film_num,
                               int lightness, int interlace,
                               int planes, int *indexes );

Beschreibung   Die Funktion bentigt zum einen EGDOSF und zum anderen
               einen Polaroidbildrecorder und whlt dann fr dieses
               Gert einen Ausgabezustand.

port           Nummer des Ports (0  erster Port)
film_name      Nummer des Filmnamen (0 bis 4)
lightness      Helligkeit (-3 bis 3, wobei eine Stufe einer Drittel
               Blende entspricht)
interlace      Bild wird mit (1) oder ohne (0) Zeilensprung abgetastet
planes         Farbanzahl =  2^planes, wobei planes zwischen
               1 und 4 liegt
indexes        Festlegung der Farben der Farbpalette. Es wird ein
               Speicherplatz von 16 Bytes bentigt. Jede Farbe wird
               durch eine Zahl (fr die Zeilen der Farbmatrix) und
               einen Buchstaben von A bis H (fr die Spalten der
               Farbmatrix) gekennzeichnet.
Gruppe         EEscapefunktionenF
Querverweis    EGDOSF         Evsc_exposeF   Evqp_stateF  Evsp_saveF
               Evsp_messageF  Evqp_filmsFName           Save Palette Driver State - speichert den Gertestatus
               des Polaroidbildrecorders.

Definition     void vsp_save( int EhandleF );

Beschreibung   Die Funktion bentigt zum einen EGDOSF und zum anderen
               einen Polaroidbildrecorder und speichert fr dieses
               Gert den Gertestatus auf Diskette.

Gruppe         EEscapefunktionenF
Querverweis    EGDOSF       Evqp_stateF   Evsp_stateF   Evsp_messageF
               Evqp_filmsF  Evsc_exposeFName           Disable or Enable Film Exposure for Frame Preview -
               Ein-/Ausschalten des Previews einer Kamera.

Definition     void vsc_expose( int EhandleF, int state );

Beschreibung   Die Funktion bentigt zum einen EGDOSF und zum anderen
               einen Polaroidbildrecorder und schaltet den Preview-
               Modus, d.h. die Belichtung, einer Kamera ein bzw. aus,
               sofern diese das gestattet.

Gruppe         EEscapefunktionenF
Querverweis    EGDOSF         Evsp_saveF   Evqp_stateF   Evsp_stateF
               Evsp_messageF  Evqp_filmsFName           Suppress Palette Message - unterdrckt Fehlermeldungen
               des Polaroidbildrecorders.

Definition     void vsp_message( int EhandleF );

Beschreibung   Die Funktion bentigt zum einen EGDOSF und zum anderen
               einen Polaroidbildrecorder und verhindert dann, da
               der Recorder Fehlermelungen abschickt.
Gruppe         EEscapefunktionenF
Querverweis    EGDOSF   Evqp_errorFName           Palette Error Inquire - liefert die Nummer eines
               augetretenen Fehlers.

Definition     int vqp_error( int EhandleF );

Beschreibung   Die Funktion bentigt zum einen EGDOSF und zum anderen
               einen Polaroidbildrecorder und liefert als
               Funktionsergebnis die Nummer des aufgetretenen Fehlers.
Ergebnis       Die Funktion liefert:
           0   kein Fehler
           1   Verschlu offen
           2   kein Port ausgewhlt
           3   Palette am gewhlten Port nicht verfgbar
           4   Verbindung unterbrochen
           5   Operationssystem erlaubt keine Speicherzuteilung
           6   Pufferspeicher reicht nicht aus
           7   Speicher nicht frei
           8   Gertetreiber-File fehlt
           9   Gertetreiber-File hat falsches Format
           10  Film zu Ende
Gruppe         EEscapefunktionenF
Querverweis    EGDOSFName           Update Metafile Extents - aktualisiert das Metafile.

Definition     void v_meta_extents( int EhandleF, int min_x, int min_y,
                                    int max_x, int max_y );

Beschreibung   Die Funktion setzt die minimalen bzw. maximalen Werte
               fr eine, Zeichnung, die im Metafile gespeichert wird,
               auf die Werte min_x, min_y und max_x, max_y. Wichtig
               ist, da die Funktion nur zusammen mit EGDOSF richtig
               arbeitet.
Gruppe         EEscapefunktionenF
Querverweis    EGDOSF   Evm_filenameF   Ev_write_metaFName           Write Metafile Item - schreibt ein Objekt ein ein
               Metafile.

Definition     void v_write_meta( int EhandleF, int num_intin,
                                  int num_ptsin, int *intin,
                                  int *ptsin );

Beschreibung   Die Funktion schreibt ein benutzterdefiniertes Objekt
               in ein Metafile. Dabei erhlt jedes zu speichernde
               Objekt einen vom Benutzter festgelegten Opcode, der
               grer oder gleich 101 sein mu. Wichtig ist, da die
               Funktion nur mit residentem EGDOSF korrekt arbeitet.
num_intin      Anzahl der Eintrge im intin Feld
num_ptsin      Anzahl der Eintrge im ptsin Feld
intin[0]       benutzterdefinierter Opcode
intin[1]       benutzterdefinierte Information
  :
intin[num_intin - 1]
ptsin[0]       benutzterdefinierte Information
  :
ptsin[num_ptsin - 1]
Gruppe         EEscapefunktionenF
Querverweis    EGDOSF   Ev_meta_extentsFName           VDI meta file coordinates - Eigenes Koordinatensystem
               fr Metafiles.

Definition     void vm_coords( int EhandleF, int llx, int lly,
                               int urx, int ury );

Prototyp in    vdi.h

Beschreibung   Die VDI-Routine vm_coords legt ein neues Koordinaten-
               sytem fr die Seite im Metafile fest, wobei llx
               und lly die linke untere Ecke und die Parameter
               urx und ury die rechte obere Ecke beschreiben.
Ergebnis       Die Funktion liefert kein Ergebnis
Querverweis    Ev_write_metaFName           Change GEM VDI File Name - ndert den Namen eines
               Metafiles.

Definition     void vm_filename( int EhandleF, const char *filename );

Prototyp in    vdi.h

Beschreibung   Die Funktion benennt ein mit Ev_opnwkF geffnetes
               Metafile, das standardmig den Namen GEMFILE.GEM
               erhlt, in den durch filename spezifizierten Namen um.
               Wichtig ist, da fr das korrekte Arbeiten der Funktion
               das EGDOSF resident sein mu.
Gruppe         EEscapefunktionenF
Querverweis    EGDOSF   Ev_opnwkF   Ev_meta_extentsF   Ev_write_metaFName           VDI page size - legt die physikalische Seitengre
               fr Metafiles fest.

Definition     void vm_pagesize( int EhandleF, int pgwidth,
                                 int pgheight );

Prototyp in    vdi.h

Beschreibung   Die VDI-Routine vm_pagesize legt die physikalische
               Seitengre fr ein Metafile fest, wobei pgwidth
               die Breite und pgheight die Hhe der Seite fest-
               legen. Beide Parameter werden in Zehntelmillimeter
               angegeben.
Ergebnis       Die Funktion liefert kein Ergebnis
Querverweis    Ev_write_metaF, EEscapefunktionenFName           Set Line Offset - setzt den linken Rand.

Definition     void v_offset( int EhandleF, int offset);

Beschreibung   Die Funktion setzt fr das Gert mit der Kennung
               EhandleF den oberen Rand auf den Wert offset
               (in Rasterzeilen).
Gruppe         EEscapefunktionenFName           Init System Font - initialisiert einen Zeichensatz.

Definition     void v_fontinit( int EhandleF, int fh_high, int fh_low);

Beschreibung   Die Funktion installiert den Zeichensatz, dessen
               Adresse durch fh_high und fh_low decodiert wird, als
               neuen Systemzeichensatz. Dabei ist zu beachten, da der
               Zeichensatz eine feste Zeichenbreite von 8 Pixeln
               aufweist.
Gruppe         EEscapefunktionenFName           Inquire GDOS - ermittelt ob GDOS installiert ist.

Definition     int vq_gdos( void );

Beschreibung   Die Funktion ermittelt, ob GDOS installiert ist.
Ergebnis       Die Funktion liefert den Funktionswert Null, falls
               das EGDOSF nicht resident ist, sonst liefert die
               Funktionen einen von Null verschiedenen Rckgabewert.

Gruppe         EEscapefunktionenF
Querverweis    EGDOSF    Evq_vgdosFName           Inquire GDOS version - ermittelt welche GDOS Version
               installiert ist.

Definition     long  vq_vgdos( void );

Beschreibung   Die Funktion ermittelt, welche GDOS Version installiert
               ist.
Ergebnis       Die liefert die Versionsnummer der installierten GDOS
               Version oder -2 zurck. Fr EFSMGDOSF ist dies die Nummer
               0x5F46534D und fr FONTGDOS 0x5F464E54. Fr andere GDOS
               Treiber ergibt sich eine anderer Wert ungleich -2.

Gruppe         EEscapefunktionenF
Querverweis    EFSMGDOSF   EGDOSF    Evq_gdosFName           Escape 2000 - Spezialfunktion fr ATARI-Page-Printer.

Definition     void v_escape2000( int handle, int times );

Beschreibung   Diese Spezialfunktion ist fr den ATARI-Page-Printer.
               Dieser druckt times Kopien der laufenden Seite
               aus.
Ergebnis       Die Funktion hat kein Ergebnis.
Gruppe         EEscapefunktionenF
Querverweis    EGDOSFName           set tablet axis resolution in lines/inch - Auflsung
               des Grafiktabletts einstellen in Zeilen pro Inch.

Definition     void vt_resolution( int handle, int xres, int yres, 
                                   int *xset, int *yset );

Beschreibung   Die Funktion setzt die horizontale und vertikale
               Auflsung xres und yres des Grafiktablets.
               xset und yset enthalten nach dem Aufruf die alten
               Werte.
Ergebnis       Die Funktion hat kein Ergebnis.
Gruppe         EEscapefunktionenF
Querverweis    EGDOSF     Evq_tabstatusF  Evt_alignmentF
               Evt_axisF  Evt_originF     Evq_tdimensionsFName           set tablet axis resolution in lines - Auflsung
               des Grafiktabletts einstellen in Zeilen.

Definition     void    vt_axis( int handle, int xres, int yres, 
                                int *xset, int *yset );

Beschreibung   Die Funktion setzt die horizontale und vertikale
               Auflsung xres und yres des Grafiktablets.
               xset und yset enthalten nach dem Aufruf die alten
               Werte.
Ergebnis       Die Funktion hat kein Ergebnis.
Gruppe         EEscapefunktionenF
Querverweis    EGDOSF           Evq_tabstatusF  Evt_alignmentF
               Evt_resolutionF  Evt_originF     Evq_tdimensionsFName           set tablet x and y origin - Koordinatenursprung
               fr Grafiktablett setzen.

Definition     void vt_origin( int handle, int xorigin,
                               int yorigin );

Beschreibung   Die Funktion setzt den Koordinatenursprung
               xorigin und yorigin des Grafiktabletts.
Ergebnis       Die Funktion hat kein Ergebnis.
Querverweis    EGDOSF           Evq_tabstatusF  Evt_alignmentF
               Evt_resolutionF  Evt_axisF       Evq_tdimensionsFName           return tablet x and y dimensions - Ausmae des
               Grafiktabletts in 1/10-Zoll.

Definition     void vq_tdimensions( int handle, int *xdimension,
                                    int *ydimension );

Beschreibung   Die Funktion liefert die Ausmae des Grafik-
               tabletts in xdimension und ydimension in 1/10-Zoll.
Ergebnis       Die Funktion hat kein Ergebnis.
Gruppe         EEscapefunktionenF
Querverweis    EGDOSF           Evq_tabstatusF  Evt_alignmentF
               Evt_resolutionF  Evt_axisF       Evt_originFName           set tablet alignment - Koordinatensystem des Grafik-
               tabletts ausrichten.

Definition     void vt_alignment( int handle, int dx, int dy );

Beschreibung   Die Funktion dient der Ausrichtung des Koordinaten-
               systems innerhalb eines Ausschnitts des Grafik-
               tabletts.
Ergebnis       Die Funktion hat kein Ergebnis.
Gruppe         EEscapefunktionenF
Querverweis    EGDOSF           Evq_tabstatusF  Evq_tdimensionsF
               Evt_resolutionF  Evt_axisF       Evt_originFName           set camera film type and exposure time - Filmtyp
               und Belichtungszeit festlegen.

Definition     void vsp_film( int handle, int index,
                              int lightness );

Beschreibung   Die Funktion legt Filmtyp und Belichtungszeit fest.
Ergebnis       Die Funktion hat kein Ergebnis.
Gruppe         EEscapefunktionenF
Querverweis    EGDOSFName           generate specified tone - Ton generieren.

Definition     void v_sound( int handle, int frequency,
                              int duration );

Beschreibung   v_sound erzeugt einen Ton der Hhe frequency Hertz
               und der Dauer duration in Timer-Ticks.
Ergebnis       Die Funktion hat kein Ergebnis.
Gruppe         EEscapefunktionenF
Querverweis    EGDOSF    Evs_muteFName           set/clear tone muting flag - Ein-/Ausschalten der
               Tonerzeugung.

Definition     int  vs_mute( int handle, int action );

Beschreibung   vs_mute schaltet die Tonerzeugung ein (action == 1)
               bzw. aus (action == 0) und liefert deren Status
               zurck. Fr action == -1 wird nur der Status abgefragt.
Ergebnis       Die Funktion liefert den Status der Tonerzeugung.
Gruppe         EEscapefunktionenF
Querverweis    EGDOSF    Ev_soundFName           Inquire FSM text advance placement vector - Position
               fr nchstes FSM-Zeichen ermitteln.

Definition     void  vqt_advance( int handle, int ch, int *advx,
                                   int *advy, int *remx, int *remy );

Beschreibung   vqt_advance liefert den x- und y-Offset in advx und
               advy, der bentigt wird, um das nchste Zeichen ch
               eines Strings an die richtige Position zu schreiben.
               Zustzlich liefern remx und remy die Restwerte fr
               modulo 16384 der x- und y-Offsets, so da die Ausmae
               der Zeichenbox mit Ev_ftextF und Evqt_f_extentF besser
               berechnet werden knnen.
               Diese Funktion wird gebraucht, wenn der Winkel fr
               Textrotation ein anderer als 0, 90, 180 oder 270 Grad
               ist. 
Ergebnis       Diese Funktion hat kein Ergebnis.

Gruppe         EAuskunftsfunktionenF

Querverweis    EGDOSF    EFSMGDOSF    Evst_rotationFName           Set character cell height by arbitrary points - Setzen
               der Zeichenzellenhhe in Punkten.

Definition     int vst_arbpt( int handle, int point, int *chwd,
                               int *chht, int *cellwd, int *cellht );

Beschreibung   vst_arbpt setzt die aktuelle Zeichenhhe in Printer-
               Punkten. Im Gegensatz zu vst_point erlaubt vst_arbpt
               die Skalierung in jeder Punktgre, unabhngig davon,
               welche Angaben in EXTEND.SYS stehen. Diese Funktion
               arbeitet ausschlielich mit FSM-Outline-Fonts.

Ergebnis       Als Resultat erhlt man die gesetzte Zeichenhhe
               in Punkten.

Gruppe         EAttributfunktionenF

Querverweis    EGDOSF        EFSMGDOSF
               Evst_pointF   Evst_setsizeFName           Inquire device status info - Status des Ausgabegerts
               erfragen.

Definition     void  vqt_devinfo( int handle, int devnum,
                                   int *devexits, char *devstr );

Beschreibung   vqt_devinfo prft, ob der ein Treiber fr das durch
               devnum spezifizierte Gert durch EGDOSF installiert
               wurde. In diesem Fall erhlt devexits den Wert 1,
               sonst Null. In den ausreichend groen String devstr
               wird im Erfolgsfall der Name des Treibers kopiert.

Ergebnis       Diese Funktion hat kein direktes Ergebnis.

Gruppe         EAuskunftsfunktionenF

Querverweis    EGDOSF    EFSMGDOSFName           Flush FSM cache - FSM Cache lschen.

Definition     int  v_flushcache( int handle );

Beschreibung   v_flushcache lscht den Inhalt des FSM-Cache, der
               Bitmaps von FSM-Zeichen enthlt.

Ergebnis       Falls ein Fehler auftrat, erhlt man -1 als Resultat,
               sonst 0.

Gruppe         EKontrollfunktionenF

Querverweis    EGDOSF         EFSMGDOSF
               Ev_loadcacheF  Ev_savecacheF   Evqt_cachesizeFName           Get FSM chache size - Ermitteln der Gre des FSM
               Caches.

Definition    void  vqt_cachesize( int handle, int which_cache,
                                    long *size );

Beschreibung   Als Resultat liefert vqt_cachesize im Parameter size
               die Lnge des grten verfgbaren Blocks in den
               FSM-Caches. Man kann somit die maximale Gre der
               Zeichen abschtzen, die FSMGDOS ausgeben kann.
               Hat which_cache den Wert 0, so erhlt man die Gre
               des Bitmap-Cache, fr 1 die des Datenstruktur-Cache.

Ergebnis       Diese Funktion hat kein direktes Ergebnis.

Gruppe         EAuskunftsfunktionenF

Querverweis    EGDOSF    EFSMGDOSF
               Ev_loadcacheF  Ev_savecacheF   Ev_flushcacheFName           Get FSM gascii tables - Adresse der Zeichentrans-
               formationstabellen erfragen.

Definition     void  vqt_get_tables( int handle, int **gascii,
                                      int **style );

Beschreibung   Wenn Zeichen mittels Ev_gtextF ausgegeben werden,
               werden sie in ein Wortformat bersetzt, das durch
               den Fontgenerator weiterverarbeitet werden kann.
               Die bersetzungen sind in der gascii-Tabelle
               vorhanden. Sie enthlt 223 Eintrge, beginnend mit
               dem ASCII-Zeichen 32. Die zweite Tabelle, style,
               gibt Auskunft darber aus welcher Font-Datei das
               Zeichen erzeugt wurde. Es gibt drei Mglichkeiten:

                        0      Standardzeichensatz
                        1      Symbolzeichensatz
                        2      Hebrischer Zeichensatz

               Diese Informationen sind ntzlich, da FSM-Fonts
               auch Zeichen enthalten, die im normalen Atari-
               Zeichensatz nicht enthalten sind.

Ergebnis       Diese Funktion hat kein direktes Ergebnis.

Gruppe         EAuskunftsfunktionenF

Querverweis    EGDOSF    EFSMGDOSF   Ev_gtextFName           Load FSM cache - FSM-Cache laden.

Definition     int  v_loadcache( int handle, char *filename,
                                  int mode );

Beschreibung   v_loadcache ldt den Inhalt des FSM-Cache aus
               einer Datei mit dem Namen filename. mode gibt an,
               ob der alte Inhalt berschrieben werden soll (1)
               oder die geladenen Information an den alten Inhalt
               angehngt werden soll (0).

Ergebnis       Falls ein Fehler auftrat, erhlt man -1 als Resultat,
               sonst 0.

Gruppe         EKontrollfunktionenF

Querverweis    EGDOSF    EFSMGDOSF
               Ev_flushcacheF  Ev_savecacheF   Evqt_cachesizeFName           Save FSM cache to disk - FSM-Cache speichern.

Definition     int  v_savecache( int handle, char *filename );

Beschreibung   v_savecache speichert den Inhalt des Cache unter dem
               Namen filename im aktuellen Verzeichnis.

Ergebnis       Falls ein Fehler auftrat, erhlt man -1 als Resultat,
               sonst 0.

Gruppe         EKontrollfunktionenF

Querverweis    EGDOSF    EFSMGDOSF
               Ev_flushcacheF  Ev_loadcacheF   Evqt_cachesizeFName           Set character cell width by arbitrary points - Setzen
               der Zeichenzellenbreiten in Punkten.

Definition     int  vst_setsize( int handle, int point,
                                  int *chwd, int *chht,
                                  int *cellwd, int *cellht );

Beschreibung   vst_setsize setzt die Zeichenbreite in Printer-
               Punkten. Zu beachten ist, da der nchste Aufruf
               von vst_point, vst_arbpt oder vst_height die
               durch vst_setsize gesetzte Breite aufhebt und
               die vom jeweiligen Zeichen verlangte Breite
               einstellt. Diese Funktion arbeitet ausschlielich
               mit FSM-Outline-Fonts.

Ergebnis       Als Resultat erhlt man die gesetzte Zeichenzellen-
               breite in Punkten.

Gruppe         EAttributfunktionenF

Querverweis    EGDOSF        EFSMGDOSF
               Evst_pointF   Evst_heightF   Evst_arbptFName           Set FSM skew - Setzen des Neigungsgrades fr Kursivschrift.

Definition     int  vst_skew( int handle, int skew );

Beschreibung   vst_skew setzt den Neigungsgrad fr Kursivschrift.
               Der neue Neigungsgrad skew wird in zehntel Grad
               angegeben und darf zwischen -900 und +900 variieren.
               Negative Werte fhren zu einer Linksneigung, whrend
               positive Werte eine Rechtsneigung verursachen. Diese
               Funktion arbeitet ausschlielich mit FSM-Outline-
               Fonts.

Ergebnis       Als Resultat erhlt man den gesetzten Neigungsgrad.

Gruppe         EAttributfunktionenF

Querverweis    EGDOSF    EFSMGDOSF   Evst_effectsFName           Kill FSM outline - Speicher zur Outline-Generierung
               freigeben.

Definition     void  v_killoutline( int handle,
                                     Efsm_component_tF *component );

Beschreibung   component ist die Adresse einer von Ev_getoutlineF
               generierten Outline. Der Speicher, den diese belegt,
               wird mittels v_killoutline wieder freigegeben.
               Diese Funktion sollte stets aufgerufen werden, sobald
               eine Outline nicht mehr bentigt wird. Andernfalls
               luft man Gefahr, keinen freien Speicher mehr zu
               haben.

Ergebnis       Diese Funktion hat kein Ergebnis.

Gruppe         EKontrollfunktionenF

Querverweis    EGDOSF    EFSMGDOSF   Ev_getoutlineFName           Get FSM outline - Outline eines Zeichens berechnen.

Definition     void  v_getoutline( int handle, int ch,
                                    Efsm_component_tF **component );

Beschreibung   v_getoutline generiert zum Zeichen ch gehrige Outline.
               Die Adresse des Buffers, in dem die Outline zu finden
               ist, wird unter der Adresse component abgelegt.

Ergebnis       Diese Funktion hat kein Ergebnis.

Gruppe         EKontrollfunktionenF

Querverweis    EGDOSF    EFSMGDOSF   Ev_killoutlineFName           Set scratch buffer allocation mode - Bestimmen der
               Gre des Scratch-Buffers.

Definition     void  vst_scratch( int handle, int mode );

Beschreibung   vst_scratch setzt den Modus zur Berechnung der
               Gre des Scratch-Buffers. Der Scratch-Buffer
               dient der Generierung von Texteffekten. Da EFSMF-
               Zeichenstze frei skallierbar sind, kann dem
               Scratch-Buffer keine eindeutige Gre zugeordnet
               werden. Deshalb kann man einen Modus mode zur
               Grenbestimmung setzen:

                      0      Bercksichtigung auch von FSM-
                             Zeichenstzen (Standardeinstellung).
                      1      Gre richtet sich nach den
                             Bitmap-Zeichenstzen. Texteffekte
                             fr FSM-Zeichenstze sollten nicht
                             genutzt werden.
                      2      Es wird kein Scratch-Buffer angelegt
                             und es knnen somit auch keine
                             Texteffekte ausgefhrt werden.

Ergebnis       Diese Funktion hat kein Ergebnis.

Gruppe         EAttributfunktionenF

Querverweis    EGDOSF    EFSMGDOSF   Evst_effectsFName           Set FSM error mode - Setzen der FSMGDOS
               Fehlerbehandlung.

Definition     void  vst_error( int handle, int mode, int *errorvar );

Beschreibung   Wenn mode den Wert 1 enthlt, werden FSMGDOS Fehler
               direkt auf dem Bildschirm ausgegeben. Dies ist auch
               die Standardeinstellung. Falls Mode gleich Null ist,
               wird im Fehlerfall ein Fehlercode in die Variable 
               mit der Adresse errorvar geschrieben. Diese sollte
               mit Null initiallisiert werden. Vor der Benutzung
               der folgenden Funktionen unter FSMGDOS sollte
               die Variable abgefragt werden:

                   Ev_gtextF            Ev_ftextF
                   Ev_justifiedF        Evst_pointF
                   Evst_heightF         Evst_fontF
                   Evst_arbptF          Evqt_advanceF
                   Evst_setsizeF        Evqt_fontinfoF
                   Evqt_nameF           Evqt_widthF
                   Evqt_extentF         Evqt_f_extentF
                   Ev_opnwkF            Ev_opnvwkF
                   Evst_load_fontsF     Evst_unload_fontsF

               Folgende Fehlercodes sind definiert:

                   0      Kein Fehler.
                   1      Zeichen nicht im Zeichensatz vorhanden.
                   8      Fehler beim Lesen der Zeichensatzdatei.
                   9      Fehler beim ffnen der Zeichensatzdatei.
                   10     Falsches Dateiformat.
                   11     Kein freier Speicher mehr oder Cache voll.
                   -1     Unbestimmter Fehler.

Ergebnis       Diese Funktion hat kein Ergebnis.

Gruppe         EAttributfunktionenF

Querverweis    EGDOSF    EFSMGDOSFName           Enable Bezier capabilities - Bezier-Spline-Erzeugung
               an.

Definition     int  v_bez_on( int handle );

Beschreibung   Dieser Funktion aktiviert die Bezier-Spline-
               Erzeugung des GDOS. Obwohl mittels handle eine
               spezielle Arbeitsstation spezifiziert wird,
               gilt die Aktivierung fr alle Arbeitsstationen.

Ergebnis       Als Ergebnis erhlt man die maximale Bezier-Tiefe,
               ein Ma fr die Geschmeidigkeit des erzeugten
               Splines. Der Wert aus dem Intervall von 0 bis 7
               ist ein Exponent von 2 und gibt die Anzahl der
               Segmente an, aus denen ein Spline zusammengesetzt
               ist.

Gruppe         EKontrollfunktionenF

Querverweis    Ev_bez_offF     Ev_bezF      Ev_bez_fillF
               Ev_bez_qualF   Ev_set_app_buffF
               EGDOSFName           Disable Bezier capabilities - Bezier-Spline-Erzeugung
               aus.

Definition     void  v_bez_off( int handle );

Beschreibung   Diese Funktion deaktiviert die Bezier-Spline-
               Erzeugung fr alle Arbeitsstationen. Speicher, der
               von GDOS zur Erzeugung der Splines angefordert
               wurde, wird freigegeben.

Ergebnis       Diese Funktion hat kein Ergebnis.

Gruppe         EKontrollfunktionenF

Querverweis    Ev_bez_onF     Ev_bezF      Ev_bez_fillF
               Ev_bez_qualF   Ev_set_app_buffF
               EGDOSFName           Reserve Bezier workspace - Speicher fr Bezier-
               Spline-Erzeugung reservieren.

Definition     void  v_set_app_buff( int handle, int **address,
                                      int nparagraphs );

Beschreibung   Mit dieser Funktion kann man einen Speicher fr
               die Bezier-Spline-Erzeugung setzen. Die Adresse
               des Buffers wird ber address angegeben und die
               Gre in Paragraphen ( 16-Byte-Blcke ) ber
               nparagraphs. Werden Bezier-Funktionen aufgerufen,
               werden in diesem Buffer die Spline-Daten abgelegt.
               Andernfalls kann er auch vom Programm benutzt
               werden. Vor Programmende sollte man mit
               v_set_app_buff einen Null-Zeiger als Buffer
               mit Gre 0 setzen.
               Wird kein Buffer mittels v_set_app_buff gesetzt,
               legt GDOS einen eigenen Buffer (ca.8 KByte) an.

Ergebnis       Diese Funktion hat kein Ergebnis.

Gruppe         EKontrollfunktionenF

Querverweis    Ev_bez_onF     Ev_bez_offF      Ev_bezF
               Ev_bez_fillF   Ev_bez_qualF
               EGDOSFName           Output Bezier - Bezier-Spline zeichnen.

Definition     void  v_bez( int handle, int count, int *xyarr,
                             char *bezarr, int *extent,
                             int *totpts, int *totmoves );

Beschreibung   v_bez zeichnet einen Bezier-Spline. count gibt
               die Anzahl der Knoten an.

Ergebnis       Diese Funktion hat kein direktes Ergebnis.
               In totpts wird die Anzahl der Punkte im
               resultierenden Polygon abgelegt, in totmoves
               die Anzahl der Zge.

Gruppe         EAusgabefunktionenF

Querverweis    Ev_bez_onF     Ev_bez_offF      Ev_bez_fillF
               Ev_bez_qualF   Ev_set_app_buffF
               EGDOSFName           Output filled Bezier - Bezier-Spline zeichnen
               und fllen.

Definition     void  v_bez_fill( int handle, int count,
                                  int *xyarr, char *bezarr,
                                  int *extent, int *totpts,
                                  int *totmoves );

Beschreibung   v_bez_fill zeichnet einen Bezier-Spline und
               fllt diesen anschlieend aus. count gibt die
               Anzahl der Knoten an.

Ergebnis       Diese Funktion hat kein direktes Ergebnis.
               In totpts wird die Anzahl der Punkte im
               resultierenden Polygon abgelegt, in totmoves
               die Anzahl der Zge.

Gruppe         EAusgabefunktionenF

Querverweis    Ev_bez_onF     Ev_bez_offF      Ev_bezF
               Ev_bez_qualF   Ev_set_app_buffF
               EGDOSFName           Set Bezier quality - Qualitt der Bezier-Spline-
               Erzeugung setzen.

Definition     int  v_bez_qual( int handle, int prcnt,
                                   int *actual );

Beschreibung   Diese Funktion setzt einen neuen Geschwindigkeit/
               Qualitts-Faktor prcnt, angegeben in Prozent.

Ergebnis       Man erhlt den bisherigen Geschwindigkeit/
               Qualitts-Faktor. Dieser Wert wird auch unter
               der Adresse actual abgelegt.

Gruppe         EAttributfunktionenF

Querverweis    Ev_bez_onF     Ev_bez_offF      Ev_bezF
               Ev_bez_fillF   Ev_set_app_buffF
               EGDOSFGleitkomma-Befehle...
----------------------------------------------------------------------

... sind in der PCFLTLIB.LIB- bzw. EPC881LIB.LIBF-Bibliothek zusammen-
gefat. Will man diese Bibliotheken dazulinken, mssen sie in der
EProjektdateiF vor PCSTDLIB.LIB stehen, da z.B. EprintfF in beiden
Bibliotheken enthalten ist, aber nur PCFLTLIB.LIB bzw. PC881LIB.LIB
auch Gleitkommazahlen ausgegeben kann.

EprintfF   <stdio.h> -+ Formatierte Ausgabe auf Standardausgabegert
                    | bei Fliekommazahlen
EfprintfF  <stdio.h>  |
EsprintfF  <stdio.h>  |
EvfprintfF <stdio.h>  |
EvprintfF  <stdio.h>  |
EvsprintfF <stdio.h> -+
EscanfF    <stdio.h> -+ Formatierte Eingabe ber Standardeingabegert
                    | bei Fliekommazahlen
EsscanfF   <stdio.h>  |
EfscanfF   <stdio.h>  |
EvfscanfF  <stdio.h>  |
EvscanfF   <stdio.h>  |
EvsscanfF  <stdio.h> -+
EecvtF     <math.h>  Konvertiert eine Fliekommazahl in einen String
EfcvtF     <math.h>  Konvertiert eine Fliekommazahl in einen String
EgcvtF     <math.h>  Konvertiert eine Fliekommazahl in einen String
EatofF     <math.h>  Umwandlung von ASCII-String in Fliekommazahl
ExdcnvF    <math.h>  Fliekommaformat konvertieren
EdxcnvF    <math.h>  Fliekommaformat konvertieren
EfpumodeF  <math.h>  Fliekomma-Koprozessorstatus ermitteln/setzen

Querverweis   ELibrariesF   EMathematische RoutinenFPure-C-Spezialfunktionen
----------------------------------------------------------------------

EchdirF      <ext.h> Wechselt das momentan gesetzte Directory.
EcoreleftF   <ext.h> ermittelt den grten freien Speicherblock.
EdelayF      <ext.h> wartet die angegebene Anzahl von Millisekunden.
EfilelengthF <ext.h> Lnge einer Datei ermitteln.
EfindfirstF  <ext.h> Ersten Eintrag im Verzeichnis ermitteln.
EfindnextF   <ext.h> Nchsten Eintrag im Verzeichnis ermitteln.
EfstatF      <ext.h> Informationen zu einer Datei ermitteln.
EftimtotmF   <ext.h> Konvertiert eine ftime-Struktur in eine
                   tm-Struktur.
EgetchF      <ext.h> Tastendruck einlesen.
EgetcheF     <ext.h> Tastendruck einlesen und ausgeben.
EgetcurdirF  <ext.h> momentanes Dir. eines Laufwerks ermitteln.
EgetcwdF     <ext.h> momentanes Directory als vollst. Suchweg.
EgetdateF    <ext.h> Datum ermitteln.
EgetdfreeF   <ext.h> freien Platz einer Diskette/Festplatte
                   ermitteln.
EgetdiskF    <ext.h> liefert das momentan gesetzte Laufwerk.
EgetftimeF   <ext.h> nderungsdatum einer Datei ermitteln.
EgettimeF    <ext.h> Uhrzeit ermitteln.
EisattyF     <ext.h> Gert abfragen.
EkbhitF      <ext.h> Tastatur abfragen.
EputchF      <ext.h> Zeichen direkt auf Bildschirm schreiben.
ErandomF     <ext.h> Zufallszahl ermitteln.
EsetdateF    <ext.h> Datum setzen.
EsetdiskF    <ext.h> Laufwerk setzen.
EsetftimeF   <ext.h> nderungsdatum einer Datei festlegen.
EsettimeF    <ext.h> Uhrzeit setzen.
EsleepF      <ext.h> Ausfhrung des Programms einen bestimmten
                   Zeitraum anhalten.
EstatF       <ext.h> Informationen zu einer Datei oder einem
                   Directory ermitteln.

Querverweis   ELibrariesFDie Gruppen der Standard-Funktionen
----------------------------------------------------------------------

     EDatum und UhrzeitF
     EDirectory-RoutinenF
     EDynamische Verwaltung des SpeichersF
     EI/O-RoutinenF
     EBehandlung variabler ArgumenteF
     EZeichen-Klassifizierungs-RoutinenF
     EUmwandlungsroutinenF
     EMathematische RoutinenF
     EProzess-RoutinenF
     ESprngeF
     EString- und SpeichermanipulationF
     EVerschiedene RoutinenF

Querverweis    ELibrariesFDatum und Uhrzeit
----------------------------------------------------------------------

Setzen, Lesen, Konvertieren von Datum/Uhrzeit des Systems.

EasctimeF   <time.h> Datum/Uhrzeit in ASCII-String umwandeln.
EclockF     <time.h> Ermittelt die Systemzeit.
EctimeF     <time.h> Datum und Uhrzeit in String umwandeln.
EdifftimeF  <time.h> Zeitunterschied berechnen.
EgetdateF   <ext.h>  Datum ermitteln.
EgettimeF   <ext.h>  Uhrzeit ermitteln.
EgmtimeF    <time.h> Greenwich Meantime berechnen.
ElocaltimeF <time.h> Datum/Uhrzeit in Zeitstruktur tm umwandeln.
EmktimeF    <time.h> Datum konvertieren in Sekundenformat.
EsetdateF   <ext.h>  Datum setzen.
EsettimeF   <ext.h>  Uhrzeit setzen.
EstrftimeF  <time.h> Datum in frei whlbaren String umwandeln.
EtimeF      <time.h> Datum/Uhrzeit ermitteln.

Querverweis  EStandard-FunktionenFDirectory-Routinen
----------------------------------------------------------------------

Suche von Dateien in Verzeichnissen.

EfindfirstF <ext.h> Ersten Eintrag im Verzeichnis ermitteln.
EfindnextF  <ext.h> Nchsten Eintrag im Verzeichnis ermitteln.

Querverweis   EStandard-FunktionenFDynamische Verwaltung des Speichers
----------------------------------------------------------------------

Routinen zur dynamischen Verwaltung des Speichers

EcallocF  <stdlib.h> Speicherbereich blockweise reservieren
EfreeF    <stdlib.h> Speicherbereich freigeben
EmallocF  <stdlib.h> Speicherbereich reservieren
EreallocF <stdlib.h> Speicherbereich anpassen

Querverweis   EStandard-FunktionenFI/O-Routinen
----------------------------------------------------------------------

Ein-/Ausgaben sowohl auf Maschinenebene als auch durch Aufrufe des
Betriebssystems.

EclearerrF <stdio.h> Fehler- und EOF-Flags zurcksetzen.
EcloseF    <stdio.h> Datei schlieen.
EcreatF    <stdio.h> Datei anlegen.
EfcloseF   <stdio.h> Datei schlieen.
EfeofF     <stdio.h> Dateiende (EOF) abfragen.
EferrorF   <stdio.h> Fehler ermitteln.
EfflushF   <stdio.h> Dateipuffer leeren.
EfgetcF    <stdio.h> Zeichen aus Datei lesen (Funktion).
EfgetposF  <stdio.h> Datei-Position speichern
EfgetsF    <stdio.h> Einlesen eines Strings aus Datei.
EfilenoF   <stdio.h> Handle einer Datei erfragen.
EfopenF    <stdio.h> ffnen einer Datei.
EfprintfF  <stdio.h> Formatierte Ausgabe ber Datei.
EfputcF    <stdio.h> Ausgabe eines Zeichens auf Datei (Funktion).
EfputsF    <stdio.h> Ausgabe eines Strings auf Datei.
EfreadF    <stdio.h> Einlesen eines Puffers von Datei.
EfreopenF  <stdio.h> Datei-Handle mit neuem Dateinamen verknpfen.
EfscanfF   <stdio.h> Formatierte Eingabe ber Datei.
EfseekF    <stdio.h> Datei-Position ndern.
EfsetposF  <stdio.h> Gespeicherte Datei-Position anspringen.
EftellF    <stdio.h> Datei-Position ermitteln.
EfwriteF   <stdio.h> Ausgabe eines Puffers auf Datei.
EgetcF     <stdio.h> Zeichen von Datei einlesen (Makro).
EgetchF    <ext.h>   Tastendruck einlesen.
EgetcharF  <stdio.h> Eingabe eines Zeichens ber Standardeingabegert.
EgetftimeF <ext.h>   nderungsdatum einer Datei ermitteln.
EgetsF     <stdio.h> String ber Standardeingabegert einlesen.
EkbhitF    <ext.h>   Tastatur abfragen.
ElseekF    <stdio.h> Datei-Position versetzen.
EopenF     <stdio.h> Datei ffnen.
EperrorF   <stdio.h> Fehlermeldung ausgeben.
EprintfF   <stdio.h> Formatierte Ausgabe auf Standardausgabegert.
EputcF     <stdio.h> Ausgabe eines Zeichens in Datei (Makro).
EputchF    <ext.h>   Zeichen direkt auf Bildschirm schreiben.
EputcharF  <stdio.h> Zeichen auf Standardausgabergert schreiben.
EputsF     <stdio.h> String auf Standardausgabegert ausgeben.
EreadF     <stdio.h> Direktes Einlesen eines Dateiabschnitts.
EremoveF   <stdio.h> Datei lschen.
ErenameF   <stdio.h> Datei umbenennen.
ErewindF   <stdio.h> Datei-Position an den Anfang setzen.
EscanfF    <stdio.h> Formatierte Eingabe ber Standardeingabegert.
EsetbufF   <stdio.h> Puffergre einer Datei ndern.
EsetftimeF <ext.h>   nderungsdatum einer Datei festlegen.
EsetvbufF  <stdio.h> Puffergre fein einstellen.
EsprintfF  <stdio.h> Formatierte Ausgabe in String.
EsscanfF   <stdio.h> Formatierte Eingabe von String.
EstrerrorF <string.h>liefert Strings mit Systemfehlermeldungen.
EtmpnamF   <stdio.h> Dateinamen fr temporre Datei erzeugen.
EtmpfileF  <stdio.h> Temporre Datei anlegen.
EungetcF   <stdio.h> Zeichen an die Eingabedatei zurckgeben.
EvfprintfF <stdio.h> Formatierte Ausgabe mit variabler Argumentliste
                   auf Datei.
EvfscanfF  <stdio.h> Formatierte Eingabe aus einer Datei.
EvprintfF  <stdio.h> Formatierte Ausgabe mit variabler Argumentliste
                   auf das Standardausgabegert.
EvscanfF   <stdio.h> Formatierte Eingabe vom Standardeingabegert.
EvsprintfF <stdio.h> Formatierte Ausgabe mit variabler Argumentliste
                   in einen String.
EvsscanfF  <stdio.h> Formatierte Eingabe aus einer Datei.
EwriteF    <stdio.h> Direktes Schreiben eines Dateiabschnitts.
EunlinkF   <stdio.h> Datei lschen.

Querverweis   EStandard-FunktionenFBehandlung variabler Argumente
----------------------------------------------------------------------

Diese Routinen ermglichen den Zugriff auf Parameter in Funktionen
mit variabler Parameter-Liste.

Eva_argF   <stdarg.h> Zugriff auf einen Parameter in einer varibalen
                    Argumentliste.
Eva_endF   <stdarg.h> Ende der Behandlung variabler Argumente.
Eva_startF <stdarg.h> Startpunkt der variablen Argumentliste festlegen.

Querverweis   EStandard-FunktionenFZeichen-Klassifizierungs-Routinen
----------------------------------------------------------------------

Prfung einzelner Zeichen auf Buchstabe, Ziffer, Hex-Digit usw.

EisalnumF  <ctype.h> Prfung auf alphanumerisches Zeichen.
EisalphaF  <ctype.h> Prfung auf Buchstaben.
EisasciiF  <ctype.h> Prfung auf ASCII-Zeichen.
EiscntrlF  <ctype.h> Prfung auf Control-Zeichen.
EisdigitF  <ctype.h> Prfung auf dezimale Ziffer.
EisgraphF  <ctype.h> Prfung auf Grafik-Zeichen.
EislowerF  <ctype.h> Prfung auf Kleinbuchstaben.
EisodigitF <ctype.h> Prfung auf oktale Ziffer.
EisprintF  <ctype.h> Prfung auf druckbares Zeichen.
EispunctF  <ctype.h> Prfung auf Interpunktionszeichen
EisspaceF  <ctype.h> Prfung auf Leerzeichen.
EisupperF  <ctype.h> Prfung auf Grobuchstabe.
EisxdigitF <ctype.h> Prfung auf hexadezimale Ziffer.

Querverweis   EStandard-FunktionenFUmwandlungsroutinen
----------------------------------------------------------------------

Interpretation von Stringinhalten als numerische Werte und umgekehrt,
sowie Umwandlung zwischen Gro- und Kleinbuchstaben.

EatofF    <stdlib.h> Umwandlung von ASCII-String in Fliekommazahl.
EatoiF    <stdlib.h> Umwandlung von ASCII-String in Integer-Zahl.
EatolF    <stdlib.h> Umwandlung von ASCII-String in Long-Integer-Zahl.
EecvtF    <stdlib.h> Umwandlung von Fliekommazahl in einen ASCII-String.
EftoaF    <stdlib.h> Umwandlung von Fliekommazahl in einen ASCII-String.
EitoaF    <stdlib.h> Umwandlung von Integer-Zahl in ASCII-String.
EltoaF    <stdlib.h> Umwandlung von Long-Integer-Zahl in ASCII-String.
EstrtodF  <stdlib.h> Umwandlung von String in double-Zahl.
EstrtolF  <stdlib.h> Umwandlung von String in Long-Integer-Zahl.
EstrtoulF <stdlib.h> Umwandlung von String in Long-Integer-Zahl
                   ohne Vorzeichen.
EtoasciiF <ctype.h>  Umwandlung von Zeichen in ASCII.
EtolowerF <ctype.h>  Umwandlung von Buchstaben in Kleinbuchstaben.
EtoupperF <ctype.h>  Umwandlung von Buchstaben in Grobuchstaben.
EultoaF   <stdlib.h> Umwandlung von Long-Integer-Zahl ohne
                   Vorzeichen in ASCII-String.

Querverweis   EStandard-FunktionenFMathematische Routinen
----------------------------------------------------------------------

Funktionen der hheren Mathematik, Trigonometrie und Interpretation
von Stringinhalten als numerische Werte.

EabsF    <stdlib.h> Absolut-Wert einer Integer-Zahl berechnen.
EacosF   <math.h>   Arcus Cosinus einer Zahl berechnen.
EacoshF  <math.h>   Arcus Cosinus hyperbolicus einer Zahl berechnen.
EasinF   <math.h>   Arcus Sinus einer Zahl berechnen.
EasinhF  <math.h>   Arcus Sinus einer Zahl berechnen.
EatanF   <math.h>   Arcus Tangens einer Zahl berechnen.
EatanhF  <math.h>   Arcus Tangens hyperbolicus einer Zahl berechnen.
Eatan2F  <math.h>   Arcus Tangens eines Quotientens berechnen.
EceilF   <math.h>   Auf nchst grere ganze Zahl runden.
EcosF    <math.h>   Cosinus einer Zahl berechnen.
EcoshF   <math.h>   Cosinus hyperbolicus einer Zahl berechnen.
EdivF    <stdlib.h> Quotient und Rest einer Integer-Division berechnen.
EexpF    <math.h>   Exponentialfunktion einer Zahl berechnen.
EfabsF   <math.h>   Absolut-Wert einer Fliekomma-Zahl berechnen.
EfloorF  <math.h>   Auf nchst kleinere ganze Zahl runden.
EfmodF   <math.h>   Quotient und Rest einer Fliekomma-Division
                  berechnen.
EfrexpF  <math.h>   Fliekommazahl in Mantisse und binren
                  Exponenten aufteilen.
ElabsF   <stdlib.h> Absolut-Wert einer Long-Integer-Zahl berechnen.
EldexpF  <math.h>   Zahl mit 2er-Exponenten multiplizieren.
EldivF   <stdlib.h> Quotient und Rest einer Long-Integer-Division
                  berechnen.
ElogF    <math.h>   Natrlichen Logarithmus einer Zahl berechnen.
Elog10F  <math.h>   Dekadischen Logarithmus einer Zahl berechnen.
EmodfF   <math.h>   Fliekommazahl in Mantisse und Exponenten aufteilen.
EpowF    <math.h>   Potenz berechnen.
EroundF  <math.h>   Runden von Fliekommazahlen
EsinF    <math.h>   Sinus einer Zahl berechnen.
EsincosF <math.h>   Sinus und Cosinus gleichzeitig.
EsinhF   <math.h>   Sinus hyperbolicus einer Zahl berechnen.
EsqrtF   <math.h>   Quadratwurzel einer Zahl berechnen.
EtanF    <math.h>   Tangens einer Zahl berechnen.
EtanhF   <math.h>   Tangens hyperbolicus einer Zahl berechnen.
EtruncF  <math.h>   Nachkommastellen "abschneiden"

Querverweis   EStandard-FunktionenF  E__NFPUIN__FProzess-Routinen
----------------------------------------------------------------------

Aufruf/Start und Beendigung von Prozessen.

EabortF  <stdlib.h>  Programm-Abbruch.
EatexitF <stdlib.h>  Routinen beim Programm-Abbruch installieren.
EexitF   <stdlib.h>  Programm beenden.
EexecF   <process.h> Programm laden und ausfhren.
EsystemF <stdlib.h>  Befehl an TOS bergeben.

Querverweis   EStandard-FunktionenFSprnge
----------------------------------------------------------------------

Die folgenden beiden Routinen bieten die Mglichkeit eines nicht-
lokalen goto.

ElongjmpF <setjmp.h> Unbedingten Sprung sofort durchfhren.
EsetjmpF  <setjmp.h> Sprungziel aufsetzen.

Querverweis   EStandard-FunktionenFVerschiedene Routinen
----------------------------------------------------------------------

Verschiedene Routinen, die zum Sprachstandard gehren und sich
(zumindest teilweise) nicht einer der anderen Kategorien zuordnen
lassen.

EassertF     <assert.h> Fehlersuche mit gltigen C-Ausdrcken.
EbsearchF    <stdlib.h> Binrsuche in Array durchfhren.
EgetenvF     <stdlib.h> Environment-Variablen ermitteln.
EqsortF      <stdlib.h> Array mit Quicksort sortieren.
ErandF       <stdlib.h> Random-Funktion aufrufen.
EsrandF      <stdlib.h> Random-Funktion neu starten.
EsetmatherrF <math.h>   Routine zur Behandlung von Rechenfehlern
EoffsetofF   <stddef.h> Abstand eines Strukturelements vom Struktur-
                         anfang ermittlen.

Querverweis   EStandard-FunktionenFString- und Speichermanipulation
----------------------------------------------------------------------

Vergleich, Kopie, Verschieben und Absuchen von Strings/
Speicherbereichen sowie Verbinden von Stringteilen.

EmemchrF  <string.h> Zeichen in Speicherbereich suchen.
EmemcpyF  <string.h> Speicherbereiche kopieren (nicht berlappend).
EmemcmpF  <string.h> Speicherbereiche vergleichen.
EmemmoveF <string.h> Speicherbereiche kopieren (berlappend).
EmemsetF  <string.h> Speicherbereich initialisieren.
EstrcatF  <string.h> Strings zusammenhngen.
EstrchrF  <string.h> Zeichen in String suchen.
EstrcmpF  <string.h> Strings vergleichen.
EstrcpyF  <string.h> String kopieren.
EstrcspnF <string.h> Lnge des Bereichs ermitteln, der kein Zeichen
                   eines zweiten Strings enthlt.
EstrdupF  <string.h> String duplizieren.
EstricmpF <string.h> Strings vergleichen ohne Gro - Kleinschreibung.
EstrcmpiF <string.h> identisch mit EstricmpF
EstrlenF  <string.h> Lnge eines Strings ermitteln.
EstrlwrF  <string.h> String in Kleinbuchstaben umwandeln.
EstrncatF <string.h> Strings bis zu n Zeichen zusammenhngen.
EstrncmpF <string.h> Strings bis zu n Zeichen vergleichen.
EstrncpyF <string.h> Bis zu n Zeichen in String kopieren.
EstrnicmpF<string.h> Strings bis zu n Zeichen vergleichen ohne
                   Gro - Kleinschreibung.
EstrncmpiF<string.h> identisch mit EstrnicmpF
EstrsetF <string.h>  String mit Zeichen fllen.
EstrnsetF <string.h> Stringteil mit Zeichen fllen.
EstrpbrkF <string.h> String nach Zeichen eines zweiten Strings absuchen.
EstrrchrF <string.h> Letzte Position eines Zeichens in einem String
                   ermitteln.
EstrrevF  <string.h> String invertieren.
EstrspnF  <string.h> Lnge eines Strings ermitteln, der nur die
                   Zeichen eines zweiten Strings enthlt.
EstrstrF  <string.h> String in einem String suchen.
EstrtodF  <string.h> String als EdoubleF interpretieren.
EstrtolF  <string.h> String als ElongF interpretieren.
EstrtoulF <string.h> String als EunsignedF ElongF interpretieren.
EstrtokF  <string.h> String in Abschnitte (Token) unterteilen.
EstruprF  <string.h> String in Grobuchstaben umwandeln.

Querverweis   EStandard-FunktionenFName           abort-beendet einen Proze.

Definition     void  abort( void );

Prototyp in    stdlib.h

Beschreibung   abort gibt die Meldung ABNORMAL PROGRAM TERMINATION
               via stderr aus und bricht das Programm ber einen
               Aufruf von _exit ab. Registrierte EatexitF()-
               Prozeduren werden nicht ausgefhrt. Der durch abort
               zurckgelieferte Exit-Code hat den Wert 3.

Ergebnis       Diese Funktion liefert naturgem keinen Wert zurck.

Gruppe         EProzess-RoutinenF

Querverweis    EassertF   EexecF   EexitFName           abs-absoluter Wert.

Definition     int  abs( int i );

Prototyp in    stdlib.h

Beschreibung   abs liefert den Absolutwert des EintF-Arguments i.
               Es handelt es sich um einen echten Funktionsaufruf.

Ergebnis       abs liefert ein Resultat vom Datentyp EintF im Bereich
               von 0..32767. Der Wert -32768 hat fr den Datentyp
               EintF keine positive Entsprechung - abs(-32768) liefert
               deshalb den Wert -32768 zurck.

Gruppe         EMathematische RoutinenF

Querverweis:   ElabsF   EfabsF   EFunktionen-MakrosF   E#undefFName           arcus cosine- Arcuscosinus.

Definition     double  acos( double x );

Prototyp in    math.h

Beschreibung   acos ist die Umkehrfunktionen zu EcosF.
               acos erwarten einen Wert im Bereich von -1..+1 und
               liefert den dazugehrigen Winkel in der Einheit rad
               zurck. Argumente auerhalb dieses Bereichs erzeugen
               das Funktionsergebnis 0 und setzen EerrnoF auf den Wert
               EDOM.
               Die Behandlung von Fehlern kann ber die Routine
               EsetmatherrF modifiziert werden.

Ergebnis       acos liefert Werte im Bereich von 0...

Gruppe         EMathematische RoutinenF   EGleitkomma-BefehleF

Querverweis    EperrorF   EstrerrorFName           ASCII time- konvertiert Datum/Uhrzeit in einen
               ASCII-String.

Definition     char  *asctime( struct tm *tblock );

Prototyp in    time.h

Beschreibung   asctime erwartet als Argument einen Zeiger auf die
               Struktur EtmF.

Ergebnis       asctime liefert einen Zeiger auf einen statischen
               String ( der mit jedem Aufruf dieser Funktion neu
               gesetzt wird ) mit 26 Zeichen der das folgende
               Format hat:

               Mon Nov 21 11:31:54 1983\n\0

Gruppe         EDatum und UhrzeitF

Querverweis    EctimeF   EgetdateF   EtimeFName           arcus sine Arcussinus.

Definition     double  asin( double x );

Prototyp in    math.h

Beschreibung   Erwartet einen "Sinuswert" (Bereich -1..+1) und liefert
               den dazugehrigen Winkel in Rad zurck (-/2 .. /2).
               asin ist die Umkehrfunktionen zu EsinF.

Ergebnis       Argumente auerhalb dieses Bereichs erzeugen das
               Funktionsergebnis 0 und setzen EerrnoF auf den Wert
               EDOM.
               Die Behandlung von Fehlern kann ber die Routine
               EsetmatherrF modifiziert werden.

Gruppe         EMathematische RoutinenF   EGleitkomma-BefehleF

Querverweis    EperrorF   EstrerrorFName           assertion- prft eine  Bedingung und bricht das
               Programm ab, wenn sie nicht zutrifft.

Definition     #include <stdio.h>
               void  assert( int test );

Prototyp in    assert.h

Beschreibung   assert ist ein Makro, das bei der Compilierung zu
               einer  if-Anweisung erweitert wird. Wenn test zur
               Laufzeit des Programms den Wert false ergibt,
               wird die Meldung.

               Assertion failed: test file <Datei> Line <Zeile>

               ber einen Aufruf von EfprintfF ausgegeben, danach
               erfolgt ein Abbruch des Programms via EabortF().
               Die ausgegebene Zeilennummer steht fr die Zeile,
               in der sich der Aufruf von assert im Quelltext
               befindet. Wenn das Symbol NDEBUG vor der Aufnahme von
               assert.h im Quelltext (oder via  Defines) definiert
               ist, entfernt der EPrprozessorF smtliche Aufrufe von
               assert.
Ergebnis       assert hat kein direktes Funktionsergebnis.

Gruppe         EVerschiedene RoutinenF

Querverweis    EabortF   EexitFName           arc tangent- Arcustangens.

Definition     double  atan( double x );

Prototyp in    math.h

Beschreibung   atan ist die Umkehrfunktion zu EtanF.
               atan erwartet einen "Tangenswert" und liefert den
               dazugehrigen Winkel in Rad (-/2 .. /2).
               Die Behandlung von Fehlern kann ber die Routine
               EsetmatherrF modifiziert werden.

Gruppe         EMathematische RoutinenF   EGleitkomma-BefehleF

Querverweis    EperrorF   EstrerrorFName           arc tangent- Arcustangens  von y/x.

Definition     double  atan2( double y, double x );

Prototyp in    math.h

Beschreibung   atan2 liefert den Arcustangens von y/x und erzeugt auch
               dann noch korrekte Resultate, wenn der sich ergebende
               Winkel nahe bei /2 oder -/2 liegt (den Polstellen der
               Tangensfunktion, fr Werte von x nahe Null).
               Wenn x und y gleich Null sind, wird EerrnoF auf
               den Wert EDOM gesetzt.
               Die Behandlung von Fehlern kann ber die Routine
               EsetmatherrF modifiziert werden.

Ergebnis       Erwartet zwei "Tangenswerte" und liefert den
               dazugehrigen Winkel in Rad (- .. ).

Gruppe         EMathematische RoutinenF   EGleitkomma-BefehleF

Querverweis    EperrorF   EstrerrorFName           at exit- legt Routinen fest, die am Ende eines
               Programms aufgerufen werden sollen.

Definition     int  atexit( void (*func)( void ));

Prototyp in    stdlib.h

Beschreibung   ber atexit festgelegte Funktionen werden nach dem
               normalen Ende eines Programms in der Form
               *func(ohne Parameter)aufgerufen. Jeder Aufruf von
               atexit registriert eine weitere Funktion.
               Der Aufruf registrierter Funktionen geschieht in der
               durch die Aufrufe von atexit festgelegten Reihenfolge
               nach dem Prinzip last in - first out - die als letzte
               mit atexit festgelegte Funktion wird also zuerst
               aktiviert. Maximal knnen 32 Exit-Funktionen
               festgelegt werden (atexit != 0).

Ergebnis       atexit liefert den Wert 0 zurck, wenn die angegebene
               Funktion in den Stack aufgenommen werden konnte;
               falls bereits 32 Funktionen registriert sind (und damit
               kein weiterer Platz mehr zur Verfgung steht), ist das
               Ergebnis -1.

Gruppe         EProzess-RoutinenF

Querverweis    EexecF   EexitFName           ASCII to float- konvertiert einen ASCII-String
               in eine Fliekommazahl.

Definition     double  atof( const char *str );

Prototyp in    stdlib.h

Beschreibung   atof interpretiert den ber str angegebenen EStringF
               als  Fliekommazahl und liefert das Ergebnis dieser
               Interpretation als EdoubleF zurck.

Ergebnis       Wenn der zu interpretierende String  nicht numerisch
               auswertbar ist, dann ist das Ergebnis 0.0.
               Bei einem berlauf wird plus oder minus HUGE_VAL
               (in math.h definiert) zurckgegeben und EerrnoF auf
               den den Wert ERANGE gesetzt.

Gruppe         EUmwandlungsroutinenF   EGleitkomma-BefehleF

Querverweis    EatoiF   EatolFName           float to ASCII- konvertiert eine Fliekommazahl
               in einen ASCII-String.

Definition     int  ftoa( double *value, char *resStr, int ndig,
                           int format, int *dec, int *sign );

Prototyp in    math.h

Beschreibung   ftoa konvertiert value in einen nullterminierten
               String mit ndig Ziffern und liefert einen Zeiger zu
               diesem String in resStr zurck. Der String enthlt
               ausschlielich Ziffern: ber *dec wird die Position
               des Dezimalpunkts relativ zum Beginn des Strings
               zurckgeliefert (negative Werte bedeuten hier:
               Dezimalpunkt links vom Stringanfang). Wenn value
               negativ ist, dann setzt ftoa *sign auf einen Wert
               ungleich Null (fr positive Werte von value ist
               *sign == 0). Im Unterschied zu EecvtF untersttzt
               ftoa mehrere Formate (anzugeben in format):
                0:  e-EFormatF
                1:  f-EFormatF
               -1:  g-EFormatF

Ergebnis       ftoa liefert bei fehlerfreier Ausfhrung 0, ansonsten
               einen Wert !=0.

Gruppe         EGleitkomma-BefehleF

Querverweis    EitoaF   EltoaF   EecvtFDer String kann die folgenden Elemente enthalten - allerdings nur
in der gezeigten Reihenfolge:

                fhrende Leerzeichen und/oder Tabs;
                ein (optionales) Vorzeichen;
                eine Folge von Ziffern (Stellen vor dem Komma),
                 danach einen Dezimalpunkt und weitere Ziffern
                 (zumindest einer dieser beiden Teile mu
                 vorhanden sein);
                einen (optionalen) Exponenten, der mit einem e oder
                 E eingeleitet wird und ein (optionales) Vorzeichen
                 sowie einen (obligatorischen) Integer enthlt.
                 atoi und atol interpretieren einen String als
                 signed int bzw. als signed long. Dezimalpunkte und
                 Exponenten sind nicht zulssig - die Liste gltiger
                 Elemente verkrzt sich hier auf:
                fhrende Leerzeichen und/oder Tabs;
                ein (optionales) Vorzeichen;
                eine Ziffernfolge.

               Bei allen Funktionen endet die Interpretation mit
               dem ersten nichtnumerischen Zeichen (also auch
               mit einem weien Leerzeichen innerhalb der
               Ziffernfolge), eine Prfung auf eventuelle berlufe
               findet nicht statt.

Querverweis    EatofF, EatoiF, EatolF, EscanfFName           ASCII to int- konvertiert einen ASCII-String
               in einen Integer.

Definition     int  atoi( const char *str );

Prototyp in    stdlib.h

Beschreibung   atoi interpretiert den ber str angegebenen EStringF
               als Integer und liefert das Ergebnis dieser
               Interpretation als int zurck.

Ergebnis       Wenn der zu interpretierende EStringF nicht
               numerisch auswertbar ist, dann ist das Ergebnis 0.

Gruppe         EUmwandlungsroutinenF

Querverweis    EatofF   EatolFName           ASCII to long- konvertiert einen ASCII-String
               in einen ElongF.

Definition     long  atol( const char *str );

Prototyp in    stdlib.h

Beschreibung   atol interpretiert den ber str angegebenen EStringF
               als long und liefert das Ergebnis dieser
               Interpretation als long zurck.

Ergebnis       Wenn der zu interpretierende EStringF berhaupt nicht
               numerisch auswertbar ist, dann ist das Ergebnis 0.

Gruppe         EUmwandlungsroutinenF

Querverweis    EatofF   EatoiFName           binary search- binres Absuchen einer Liste.

Definition     void  *bsearch( const void *key, const void *base,
                                size_t nmemb, size_t size, 
                                int (*compar)( ));

Prototyp in    stdlib.h

Beschreibung   bsearch sucht ein beliebiges Array ab, dessen Elemente
               in aufsteigender Reihenfolge sortiert sein mssen.
               Die Anzahl der Elemente dieses Arrays ist durch nmemb
               festgelegt. bsearch fhrt lediglich eine Suche aus.
               Der Parameter size gibt die Gre eines
               Tabelleneintrags (in Bytes) an. Der Parameter base mu
               auf das erste Element des Arrays zeigen, nmemb auf
               einen Integer, der die Indexnummer des momentan
               hchsten Array-Elements enthlt. size gibt die Gre
               eines einzelnen  Elements (in Byte) an, key zeigt auf
               die zu suchende Information. Der Parameter compar zeigt
               auf eine vom Programmierer erstellte Routine, der
               jeweils zwei Argumente in Form von Zeigern zum
               Vergleich bergeben werden: key (die zu suchende
               Information) und elem (das Element, mit dem der
               Vergleich  stattfinden soll). Die Routine mu die
               folgenden Werte zurckliefern:
               *key > *elem        Integer < 0
               *key == *elem           0
               *key < *elem        Integer > 0
               Auf welche Art und Weise die Vergleichsroutine
               arbeitet, ist allein Sache des Programmierers - Grenzen
               gibt es keine.

Ergebnis       Diese Funktion liefert einen Zeiger auf das erste
               Element des Arrays zurck, das mit den gesuchten
               Daten identisch ist. Falls der gesuchte Eintrag nicht
               existiert, liefert bsearch den Wert ENULLF.

Gruppe         EVerschiedene RoutinenF

Querverweis    EqsortF   Esize_tFName           core allocation- belegt Platz im Hauptspeicher.

Definition     void  *calloc( size_t nitems, size_t size );

Prototyp in    stdlib.h

Beschreibung   ber diese Funktionen wird der Heap verwaltet.
               calloc belegt einen Speicherbereich von nitems * size
               Bytes und liefert einen Zeiger auf die Startadresse
               dieses Bereichs zurck. Im Gegensatz zu EmallocF werden
               smtliche Speicherzellen des neu belegten Bereichs auf
               den Wert 0 initialisiert.

Ergebnis       calloc liefert einen typenlosen Zeiger, der explizit
               auf den verwendeten Zeigertyp konvertiert werden
               sollte. Wenn kein Speicherbereich ausreichender Gre
               zur Verfgung steht, dann ist das Funktionsergebnis
               ENULLF, es findet keine Belegung statt.

Gruppe         EDynamische Verwaltung des SpeichersF

Querverweis    EfreeF   EmallocF   Esize_tFName           ceiling(Decke)- rundet   das Argument zur
               nchst greren Integerzahl.

Definition     double  ceil( double x );

Prototyp in    math.h

Beschreibung   ceil rundet in Richtung hherer Integerwerte auf:
               ceil( 3.2 )    ergibt 4.0
               ceil( -1.8 )   ergibt -1.0
               (-1.0 ist ein grerer Wert als -1.8).

Ergebnis       ceil liefert ihr ganzzahliges Ergebnis als EdoubleF
               zurck.

Gruppe         EMathematische RoutinenF

Querverweis    EfloorF   EabsFName           change directory - wechselt das momentan gesetzte
               Directory

Definition     int  chdir( char *path );

Prototyp in    ext.h

Beschreibung   chdir setzt das durch path bezeichnete Directory als
               Standard-Directory. Das Laufwerk wird dabei nicht
               gewechselt.

Ergebnis       Wenn das angegebene Directory gesetzt werden konnte,
               liefert chdir den Wert 0; ansonsten wird -1
               zurckgeliefert und EerrnoF bekommt den Wert ENOENT.

Gruppe         EPure-C-SpezialfunktionenFName           core left -  ermittelt den grten zur Verfgung
               stehenden Speicherblock

Definition     size_t  coreleft( void );

Prototyp in    ext.h

Beschreibung   coreleft ermittelt den grten zur Verfgung stehenden
               Speicherblock im RAM, der z.B. mittels EmallocF oder
               EcallocF reserviert werden kann.

Ergebnis       coreleft liefert die gefundene Anzahl in Byte.

Gruppe         EPure-C-SpezialfunktionenFName           clear error- setzt die Fehlerbedingung
               Dateiende fr eine bestimmte Datei zurck.

Definition     void  clearerr( FILE *stream );

Prototyp in    stdio.h

Beschreibung   clearerr setzt das Fehler-Flag und das Dateiende-
               Flag der ber stream angegebenen Datei zurck.
               (Das Dateiende-Flag wird beim Erreichen des
               Dateiendes automatisch gesetzt und bleibt es solange,
               bis entweder clearerr, EfseekF oder ErewindF
               angewendet werden oder die Datei geschlossen wird.)

Ergebnis       clearerr setzt das Fehler- und das Dateiende-Flag
               der angegebenen Datei zurck und hat ansonsten
               kein Ergebnis.

Gruppe         EI/O-RoutinenF

Querverweis    EferrorFName           clock ticks - ermittelt die Systemzeit.

Definition     clock_t  clock( void );

Prototyp in    time.h

Beschreibung   Die Funktion clock ermittelt die Systemzeit. Damit
               lassen sich sehr exakte Zeitmessungen durchfhren.
               Diese Funktion wird meistens fr Benchmarks verwendet.
               Eclock_tF ist in time.h als long definiert. Die 
               Anzahl der "ticks" fr eine Sekunde ist mit ECLK_TCKF
               definiert.

Ergebnis       Die Funktion clock liefert -1, wenn die Zeit nicht
               ermittelt werden konnte, ansonsten die Systemzeit.

Gruppe         EDatum und UhrzeitF

Querverweis    EtimeFName           close -  schliet eine Datei.

Definition     int  close( int handle );

Prototyp in    stdio.h

Beschreibung   Die Funktion schliet eine mit handle bezeichnete
               Datei. (Ein Handle wird durch EcreatF oder EopenF
               erzeugt, d.h. einer Datei zugeordnet.)

Ergebnis       Die Funktion liefert den Wert 0 zurck, wenn die
               Operation fehlerfrei ausgefhrt werden konnte.
               Ansonsten ist das Ergebnis -1. Es wird jeweils ein
               gltiger Handle erwartet, der stellvertretend fr eine
               offene Datei steht. Falls dem nicht so ist, bekommt
               EerrnoF den Wert EBADF.

Gruppe         EI/O-RoutinenF

Querverweis    EcreatF   EfcloseF   EfopenFName           cosine - liefert den Cosinus des Arguments zurck.

Definition     double  cos( double x );

Prototyp in    math.h

Beschreibung   cos erwartet einen Winkel in der Einheit rad (0 Grad =
               0 * , 90 Grad = /2, 180 Grad = , 270 Grad = 1.5 * ,
               360 Grad = 2 *  usw.) als Argument und liefert den
               dazugehrigen Cosinus zurck. bergebene Werte werden
               automatisch auf den Bereich 0..2* reduziert.
               Der Wert von  (3.1415...) ist in math.h als Konstante
               mit dem Namen M_PI definiert

Ergebnis       Mgliche Ergebnisse liegen im Bereich von -1 .. 1.
               Die Behandlung von Fehlern kann ber die Routine
               EsetmatherrF modifiziert werden.

Gruppe         EMathematische RoutinenF   EGleitkomma-BefehleF

Querverweis    EacosFName           cosine hyperbolic - liefert den hyperbolischen
               Cosinus des Arguments zurck.

Definition     double  cosh( double x );

Prototyp in    math.h

Beschreibung   cosh berechnet den Cosinus hyperbolicus des Arguments,

Ergebnis       Bei fehlerfreier Ausfhrung liefert die Funktion
               das entsprechende Ergebniss. Bei berlufen wird
               HUGE_VAL (mit korrektem Vorzeichen) zurckgeliefert und
               EerrnoF bekommt den Wert ERANGE.
               Die Behandlung von Fehlern kann ber die Routine
               EsetmatherrF modifiziert werden.

Gruppe         EMathematische RoutinenF   EGleitkomma-BefehleF

Querverweis    EexpFName           arcus cosine hyperbolic - liefert den hyperbolischen
               Arcuscosinus des Arguments zurck.

Definition     double  acosh( double x );

Prototyp in    math.h

Beschreibung   acosh berechnet den Arcuscosinus hyperbolicus des
               Arguments.

Ergebnis       acosh erwartet einen Wert im Bereich von [1.0,
               +infinity] und liefert den dazugehrigen Wert im Be-
               reich von [0.0,+infinity].
               Argumente auerhalb des gltigen Bereichs erzeugen
               das Funktionsergebnis 0 und setzen EerrnoF auf den Wert
               EDOM.
               Die Behandlung von Fehlern kann ber die Routine
               EsetmatherrF modifiziert werden.

Gruppe         EMathematische RoutinenF   EGleitkomma-BefehleF

Querverweis    EexpFName           create - erzeugt eine neue Datei bzw. berschreibt
               eine bereits vorhandene Datei.

Definition     int  creat( const char *filename );

Prototyp in    stdio.h

Beschreibung   creat erzeugt eine neue Datei, existiert bereits
               die durch filename bezeichnete Datei wird der vorherige
               Inhalt gelscht. Attribute, die fr diese Datei
               definiert wurden, bleiben unverndert.
               Falls die Datei nur gelesen werden kann, bricht creat
               mit einem Fehler ab, die Datei bleibt unverndert.

Ergebnis       Wenn die angegebene Datei fehlerfrei erffnet werden
               konnte, liefert die Funktion einen Handle (d.h. einen
               positiven Integerwert) zurck. Im Fehlerfall wird das
               Ergebnis -1 geliefert und EerrnoF bekommt einen der
               folgenden Werte:
               ENOENT       EMFILE       EACCES

Gruppe         EI/O-RoutinenF

Querverweis    EcloseF    EopenF   EreadF   EwriteFName           convert time - konvertiert Datum und Uhrzeit in
               einen String.

Definition     char  *ctime( time_t *timer );

Prototyp in    time.h

Beschreibung   ctime erwartet einen Zeiger auf Datum und Uhrzeit des
               Systems. Etime_tF wird beispielsweise von der Funktion
               EtimeF geliefert. Das Ergebnis von ctime ist ein
               String mit 26 Zeichen, der das folgende Format hat:

               Mon Nov 21 11:31:54 1983\n\0

               Alle Felder dieses Strings haben eine konstante Lnge.

Ergebnis       ctime und liefert einen Zeiger auf einen statischen
               String zurck, der mit jedem Aufruf dieser Funktion
               erneut gesetzt wird.

Gruppe         EDatum und UhrzeitF

Querverweis    EgetdateF   EtimeF   EasctimeFName           difference time - berechnet den Unterschied zwischen
               zwei Zeitangaben in Sekunden.

Definition     double  difftime( time_t time1, time_t time2 );

Prototyp in    time.h

Beschreibung   difftime berechnet die zwischen time1 und time2
               liegende Zeit in Sekunden.

Ergebnis       difftime liefert die Differenz zweier Zeiten als
               EdoubleF in der Einheit Sekunden zurck.

Gruppe         EDatum und UhrzeitF

Querverweis    EgetdateF   EctimeF   EasctimeF   EtimeF   Etime_tFName           divide - dividiert zwei Integerwerte und liefert
               nicht nur den Quotienten, sondern auch den
               Divisionsrest zurck.

Definition     div_t  div( int numer, int denom );

Prototyp in    stdlib.h

Beschreibung   div dividiert die als numer (Dividend) und denom
               (Divisor) bergebenen Integerwerte und liefert
               eine Struktur des Typs Ediv_tF zurck.

Gruppe         EMathematische RoutinenF

Querverweis    EldivFName           e-convert - konvertiert eine Fliekommazahl in einen
               String.

Definition     char  *ecvt( double value, int ndig, int *dec,
                             int *sign );

Prototyp in    stdlib.h

Beschreibung   ecvt konvertiert value in einen nullterminierten
               String mit ndig Ziffern und liefert einen Zeiger zu
               diesem String zurck. Der String enthlt ausschlielich
               Ziffern: ber dec wird die Position des Dezimalpunkts
               relativ zum Beginn des Strings zurckgeliefert
               (negative Werte bedeuten hier: Dezimalpunkt links vom
               Stringanfang). Wenn value negativ ist, dann setzt ecvt
               sign auf einen Wert ungleich Null (fr positive Werte
               von value ist sign == 0). Die unterste Ziffer wird
               gerundet.

Ergebnis       ecvt liefert einen Zeiger zu einem benutzten und
               statischen String zurck.

Portabilitt   Auf UNIX verfgbar, jedoch nicht im ANSI-Standard
               enthalten.

Gruppe         EGleitkomma-BefehleF

Querverweis    EftoaF   EfcvtF   EgcvtF   EsprintfFName           f-convert - konvertiert eine Fliekommazahl in einen
               String.

Definition     char  *fcvt( double value, int ndig, int *dec,
                             int *sign );

Prototyp in    stdlib.h

Beschreibung   fcvt konvertiert value in einen nullterminierten
               String mit ndig Ziffern und liefert einen Zeiger zu
               diesem String zurck. Der String enthlt ausschlielich
               Ziffern: ber dec wird die Position des Dezimalpunkts
               relativ zum Beginn des Strings zurckgeliefert
               (negative Werte bedeuten hier: Dezimalpunkt links vom
               Stringanfang). Wenn value negativ ist, dann setzt fcvt
               sign auf einen Wert ungleich Null (fr positive Werte
               von value ist sign == 0). Die Zahl wird gem der in
               ndig angegebenen Genauigkeit gerundet.

Ergebnis       fcvt liefert einen Zeiger zu einem benutzten und
               statischen String zurck.

Portabilitt   Auf UNIX verfgbar, jedoch nicht im ANSI-Standard
               enthalten.

Gruppe         EGleitkomma-BefehleF

Querverweis    EftoaF   EecvtF   EgcvtF   EsprintfFName           g-convert - konvertiert eine Fliekommazahl in einen
               String.

Definition     char  *gcvt( double value, int ndec, char *buf );

Prototyp in    stdlib.h

Beschreibung   gcvt konvertiert value in einen nullterminierten
               String und speichert ihn in buf. Es werden ndec
               signifikante Ziffern im FORTRAN-F-Format erzeugt,
               sofern mglich. Ansonsten wird der Wert im
               Eprintf-E-FormatF zurckgegeben.

Ergebnis       gcvt liefert einen Zeiger auf den erzeugten String
               zurck.

Portabilitt   Auf UNIX verfgbar, jedoch nicht im ANSI-Standard
               enthalten.

Gruppe         EGleitkomma-BefehleF

Querverweis    EftoaF   EecvtF   EfcvtF   EsprintfFName           execute - Laden und Starten eines anderen Programms.

Definition     int  exec( char *pathname, char *cmdlstr,
                           char *envstr, int *retcode);

Prototyp in    process.h

Beschreibung   Die Funktion exec ldt und startet andere Programme, die
               als child prosess bezeichnet werden.
Hinweis        exec schliet keine Dateien - smtliche durch den
               parent process geffneten Dateien stehen auch dem child
               zur Verfgung. Der Parameter pathname gibt den Namen
               des child process an.
               Eventuelle Parameter fr dieses Programm knnen in
               cmdlstr bergeben werden. Mit envstr knnen
               Environment-Werte fr den child-process gesetzt werden.

Ergebnis       Konnte die exec-Funktion nicht ausgefhrt werden, dann
               wird -1 zurckgeliefert, und EerrnoF bekommt einen der
               folgenden Werte:
               EACCES   EMFILE   ENOENT   ENOMEM   EPLFMT

Gruppe         EProzess-RoutinenF

Querverweis    EabortF   EatexitF   EexitF   EsystemFName           exit - beendet das laufende Programm

Definition     void  exit( int status );
               void  _exit( int status );

Prototyp in    stdlib.h

Beschreibung   exit beendet das laufende Programm. Vor dem Rcksprung
               zum parent process werden smtliche Dateipuffer
               geschrieben, offene Dateien geschlossen und
               ( via EatexitF ) festgelegte Funktionen aufgerufen.
               Diese Funktion beendet das Programm mit dem als status
               angegebenen Exit-Code, der beispielsweise vom parent
               process geprft werden kann. Der Wert 0 steht
               hier normalerweise fr eine fehlerfreie Ausfhrung,
               Werte ungleich Null sollten Fehler signalisieren.
               Im unterschied zu exit werden bei _exit Funktionen,
               die mit EatexitF installiert wurden nicht aufgerufen.

Ergebnis       Weder exit noch _exit haben ein direktes Funktionsergebnis.

Gruppe         EProzess-RoutinenF

Querverweis    EabortF   EatexitFName           exponential - berechnet e ^ x.

Definition     double  exp( double x );

Prototyp in    math.h

Bescheibung    exp liefert das Ergebnis der Berechnung e^x zurck,
               wobei e fr die Basis des natrlichen Logarithmus steht
               (2.718281...).

Ergebnis       Bei einem berlauf liefert exp HUGE_VAL und setzt
               EerrnoF auf den Wert ERANGE. Im Falle eines Unterlaufs
               ist das Resultat 0.0 und errno wird nicht gendert.

Gruppe         EMathematische RoutinenF   EGleitkomma-BefehleF

Querverweis    EfrexpF   EldexpF   ElogF   EpowF   EsqrtFName           float abs - absoluter Wert einer Fliekommazahl.

Definition     double  fabs( double x );

Prototyp in    math.h

Beschreibung   fabs liefert den Absolutwert des EdoubleF-Arguments x
               zurck.

Ergebnis       fabs liefert den Absolutwert des EdoubleF-Arguments x.

Gruppe         EMathematische RoutinenF   EGleitkomma-BefehleF

Querverweis:   ElabsF   EabsFName           file close - schliet eine Datei.

Definition     int  fclose( FILE *stream );

Prototyp in    stdio.h

Beschreibung   fclose schliet die durch stream angegebene Datei,
               wobei zuvor ein entsprechender Aufruf von EfflushF
               erfolgt. Durch das System automatisch belegte Puffer
               werden durch fclose freigegeben.

Ergebnis       fclose liefert bei fehlerfreier Ausfhrung den Wert 0.
               Im Falle eines Fehlers liefert fclose den Wert EOF
               zurck.

Gruppe         EI/O-RoutinenF

Querverweis    EfflushF   EcloseF   EfopenF   EsetbufF   EFcloseFName           file eof - prft, ob das Ende einer Datei
               erreicht ist.

Definition     int  feof( FILE *stream );

Prototyp in    stdio.h

Beschreibung   feof ist ein Makro und prft das Dateiende-Flag der
               ber stream angegebenen Datei. (Dieses Flag wird
               beim Erreichen des Dateiendes automatisch gesetzt und
               bleibt es solange, bis entweder EclearerrF, EfseekF
               oder ErewindF angewendet werden oder die Datei
               geschlossen wird.)

Ergebnis       feof liefert einen Wert ungleich 0 zurck, wenn
               das Dateiende-Flag des angegebenen stream gesetzt
               ist, ansonsten den Wert 0.

Gruppe         EI/O-RoutinenF

Querverweis    EferrorFName           file error - prft Fehlerbedingungen bei der
               Bearbeitung von Dateien.

Definition     int  ferror( FILE *stream );

Prototyp in    stdio.h

Beschreibung   ferror ist ein Makro, der die ber stream angegebenen
               Datei auf Schreib- und Lesefehler prft. (Das Fehler-
               Flag einer Datei bleibt nach einem Fehler solange
               gesetzt, bis entweder EclearerrF oder ErewindF
               angewendet oder die Datei geschlossen wird.).

Ergebnis       ferror liefert einen Wert ungleich 0 zurck, wenn
               das Fehlerflag des angegebenen stream gesetzt ist,
               ansonsten den Wert 0.

Gruppe         EI/O-RoutinenF

Querverweis    EfopenF   EgetcF   EgetsF   EopenF   EputcF   EputsFName           file flush - erzwingt das physikalische Schreiben
               eines Dateipuffers.

Definition     int  fflush( FILE *stream );

Prototyp in    stdio.h

Beschreibung   fflush erzwingt bei Ausgabedateien ein Schreiben
               eventueller Pufferinhalte, sorgt also bei
               Diskettendateien dafr, da ausgegebene Daten auch
               physikalisch geschrieben werden. Bei Eingabedateien
               wird ein eventueller Pufferinhalt gelscht - der
               nchste Lesebefehl erzwingt eine physikalische
               Leseaktion. Die durch stream bezeichnete Datei bleibt
               offen.

Ergebnis       fflush liefert bei fehlerfreier Ausfhrung den Wert 0.
               Im Falle eines Fehlers liefert fflush den Wert EOF
               zurck.

Gruppe         EI/O-RoutinenF

Querverweis    EfcloseF   EcloseF   EfopenF   EsetbufFName           file get character - liest ein Zeichen aus einer Datei.

Definition     int  fgetc( FILE *stream );

Prototyp in    stdio.h

Beschreibung   fgetc verhlt sich exakt wie EgetcF, nur da
               es sich hier um eine echte Funktion handelt.

Ergebnis       fgetc liefert bei fehlerfreier Ausfhrung das gelesene
               Zeichen als EintF zurck, wobei keine Vorzeichen-
               erweiterung stattfindet. Bei berschreitung des
               Dateiendes (beim Lesen der Tastatur: der Eingabe von
               control-z) wird der Wert EOF zurckgeliefert.

Gruppe         EI/O-RoutinenF

Querverweis    EgetcF    EungetcF   EferrorF   EfopenF   EfreadF
               EfseekF   EgetsF     EputcF     EreadF    EscanfFName           file get position - aktuelle Datei-Position
               speichern.

Definition     int  fgetpos( FILE *stream, fpos_t *pos );

Prototyp in    stdio.h

Beschreibung   Die Funktion fgetpos speichert die aktuelle Position
               in der Datei stream im Parameter pos. Der gespeicherte
               Wert ist speziell kodiert und kann lediglich von der
               Funktion EfsetposF verwendet werden.

Ergebnis       Die Funktion liefert den Wert 0, wenn die Datei-
               Position ermittelt werden konnte, ansonsten einen
               Fehlercode und EerrnoF wird auf EBADF oder EINVAL
               gesetzt.

Gruppe         EI/O-RoutinenF

Querverweis    EfsetposFName           file get string - liest einen String aus einem
               Stream.

Definition     char  *fgets( char *str, int n, FILE *fp );

Prototyp in    stdio.h

Beschreibung   fgets liest eine Zeichenfolge die mit einen
               Zeilenvorschub endet vom Stream fp und speichert
               diese in der durch str angegebenen Stringvariablen.
               Der String darf maximal n Zeichen umfassen,
               ansonsten wird der String abgeschnitten. Der
               Zeilenvorschub bleibt im String erhalten. Ein
               Null-Byte wird anghngt, um das Stringende zu
               markieren.

Ergebnis       fgets liefert bei fehlerfreier Ausfhrung einen
               Zeiger auf str zurck. Wenn beim Lesen das
               Dateiende berschritten wird oder ein Fehler
               auftritt, ist das Resultat ENULLF.

Gruppe         EI/O-RoutinenF

Querverweis    EgetsF   EferrorF   EfopenF   EfreadF   EgetcF
               EputsF   EscanfFName           file number - liefert den Handle einer Datei zurck

Definition     int  fileno( FILE *stream );

Prototyp in    stdio.h

Beschreibung   fileno ist ein Makro und liefert den Handle der ber
               stream angegebenen Datei zurck. Wenn stream mehr als
               ein Handle zugeordnet ist, wird der Handle zurckge-
               liefert, der bei der Erffnung vergeben wurde.

Ergebnis       Solange stream eine offene Datei bezeichnet, wird der
               Handle als Integer zurckgeliefert. Spezielle Werte fr
               Fehler gibt es nicht - wenn stream keine offene Datei
               bzeichnet, ist das Ergebnis von fileno undefiniert.

Gruppe         EI/O-RoutinenF

Querverweis    EgetsF   EferrorF   EfopenF   EfreadF   EgetcF
               EputsF   EscanfFName           file length - ermittelt die Lnge einer Datei.

Definition     long  filelength( int handle );

Prototyp in    ext.h

Beschreibung   filelength liefert die Lnge der ber handle
               angegebenen Datei in Bytes zurck.

Ergebnis       filelength liefert bei fehlerfreier Ausfhrung den Wert
               in Bytes. Im Falle eines Fehlers ist das Resultat -1
               und EerrnoF erhlt den Wert EBADF.

Gruppe         EPure-C-SpezialfunktionenF

Querverweis    EfseekF   EfstatFName           find first entry - sucht ein Directory nach
               einem Dateieintrag ab.

Definition     int  findfirst( const char *filename,
                                struct ffblk *fileRec, int attrib );
Prototyp in    ext.h

Beschreibung   findfirst sucht ein Directory nach dem ersten
               Vorkommen des Dateieintrags filename ab.
               filename kann optional eine Laufwerksbezeichnung
               und/oder einen Suchweg enthalten, Jokerzeichen
               (* und ?) sind erlaubt. findfirst sucht im ber
               filename angegebenen Directory bzw. dem momentan
               gesetzten Directory. Der erste Eintragsvergleich,
               der positiv ausfllt, setzt die ber fileRec
               angegebene Struktur EffblkF mit den entsprechenden
               Informationen. ber den Parameter attrib wird das
               Attribut des zu suchenden Eintrags angegeben.
               Die folgenden Konstanten sind in ext.h definiert und
               knnen ber OR-Operationen miteinander kombiniert
               werden:

               FA_RDONLY    0x01 schreibgeschtzt
               FA_HIDDEN    0x02 versteckt
               FA_SYSTEM    0x04 Systemdatei
               FA_LABEL     0x08 Label (Diskettenname)
               FA_DIREC     0x10 Directory
               FA_ARCH      0x20 Archivierungs-Bit

Ergebnis       Die Funktion liefert den Wert 0 zurck, wenn
               ein passender Eintrag  gefunden wurde.
               Wenn kein Eintrag vorhanden ist oder der angegebene
               filename aus irgendeinem Grund ungltig ist, wird -1
               als  Ergebnis geliefert und EerrnoF bekommt einen der
               Werte ENOENT oder ENMFILE.

Gruppe         EDirectory-RoutinenF   EPure-C-SpezialfunktionenF

Querverweis    EfindnextFName           find next - sucht ein Directory
               (nach Aufruf von EfindfirstF) nach weiteren
               Eintrgen ab.

Definition     int  findnext( struct ffblk *fileRec );

Prototyp in    ext.h

Beschreibung   findnext sucht nach weiteren Eintrgen innerhalb
               eines Directories:
                als Argument mu die Struktur des Typs EffblkF
               bergeben werden, die durch EfindfirstF gesetzt
               wurde.
                findnext liefert bei jedem Aufruf einen
               weiteren Dateieintrag ber EffblkF zurck

Ergebnis       Die Funktion liefert den Wert 0 zurck, wenn
               ein weiterer Eintrag  gefunden wurde.
               Wenn kein weiterer Eintrag mehr vorhanden ist,
               wird -1 als  Ergebnis geliefert und EerrnoF bekommt
               einen der Werte ENOENT oder ENMFILE.

Gruppe         EDirectory-RoutinenF   EPure-C-SpezialfunktionenF

Querverweis    EfindfirstFName           status - liefert Informationen ber eine Datei oder
               ein Directory.

Definition     int  stat( char *path, Estruct statF *statbuf );

Prototyp in    ext.h

Beschreibung   stat setzt die Mitglieder einer Struktur des Typs
               EstatF mit Informationen ber die durch path ange-
               gebene Datei und ist auch auf Directories anwendbar.

Ergebnis       stat liefert bei fehlerfreier Ausfhrung den Wert 0
               zurck. Im Falle eines Fehlers ist das Resultat -1 und
               EerrnoF erhlt den Wert ENOENT.

Querverweis    EfstatFName           file status - liefert Informationen ber eine Datei.

Definition     int  fstat( int handle, struct EstatF *statbuf );

Prototyp in    ext.h

Beschreibung   fstat setzt die Mitglieder einer Struktur des Typs
               EstatF mit Informationen ber die durch handle ange-
               gebene Datei und ist nur auf offene Dateien anwendbar.

Ergebnis       fstat liefert bei fehlerfreier Ausfhrung den Wert 0
               zurck. Im Falle eines Fehlers ist das Resultat -1 und
               EerrnoF erhlt den entsprechenden Wert EBADF.

Querverweis    EstatFName           get current directory - ermittelt das momentan
               gesetzte Directory eines Laufwerks.

Definition     int  getcurdir( int drive, char *directory );

Prototyp in    ext.h

Beschreibung   getcurdir ermittelt das als Standard gesetzte Directory
               auf dem durch drive angegebenen Laufwerk. Wenn drive
               den Wert 0 hat, wird das momentan gesetzte Laufwerk
               verwendet, ansonsten gilt A = 1, B = 2 usw.
               Der durch directory bezeichnete String mu eine Lnge
               von MAXDIR (106 Zeichen) haben - hier trgt getcurdir
               den Namen des gesetzten Directories ein (ohne
               fhrende/folgende umgekehrte Schrgstriche und
               ohne Laufwerksbezeichner/Doppelpunkt). Die Konstante
               MAXDIR ist in ext.h definiert.

Ergebnis       Bei fehlerfreier Ausfhrung liefert getcurdir den
               Wert 0 zurck, ansonsten den Wert -1.

Beispiel       #include <ext.h>
               #include <stdio.h>
               #include <string.h>

               char *pathnow (char *path)
               {
                   strcpy (path, " :\");
                   path[0] = 'A' + getdisk();  /* Laufwerk */
                   getcurdir(0, path+3);
                   return(path);
               }

               main()
               {
                   char mypath[MAXDRIVE+MAXPATH];
                   printf("Momentan gesetztes Directory: %s\n",
                          pathnow(mypath));
               }

Portabilitt   Pure- und Turbo-C-spezifisch.

Querverweis    EchdirF, EgetcwdFName           get current working directory - liefert das momentan
               gesetzte Directory als vollstndigen Suchweg zurck.

Definition     char *getcwd(char *buf, int buflen);

Prototyp in    ext.h

Beschreibung   getcwd liefert das momentan gesetzte Directory
               (inklusive des Laufwerks) als String zurck, dessen
               Maximallnge durch den Parameter buflen gesetzt wird
               (hier wird man normalerweise die Konstante MAXPATH
               verwenden).
               Wenn der als buf bergebene Zeiger den Wert NULL hat,
               belegt getcwd ber einen Aufruf von malloc selbstndig
               einen Bereich von buflen Bytes. Durch diese Automatik
               gibt es zwei mgliche Arten des Aufrufs:

               char *bufpoint;
               char pathbuf[MAXPATH];

               getcwd(pathbuf,MAXPATH);
               bufpoint = getcwd(NULL,MAXPATH);

               Ein durch die zweite Form des Aufrufs automatisch
               belegter Speicherbereich kann via free wieder
               freigegeben werden.

Ergebnis       Bei fehlerfreier Ausfhrung liefert getcwd einen Zeiger
               auf den gesetzten String zurck. Im Falle eines Fehlers
               ist das Funktionsergebnis NULL, EerrnoF wird auf einen der
               folgenden Werte gesetzt:
               ENODEV Gert nicht bereit/nicht vorhanden
               ENOMEM nicht genug Platz im Hauptspeicher
                      (Fehlermeldung von malloc)
               ERANGE Ergebnis auerhalb des Bereichs
                      (ungltige Angabe fr buflen).

Portabilitt   Pure- und Turbo-C-spezifisch.

Querverweis    EfreeF, EgetcurdirF, EmallocFName           get disk - liefert das momentan gesetzte Laufwerk.

Definition     int  getdisk( void );

Prototyp in    ext.h

Beschreibung   getdisk ermittelt die Nummer des momentan gesetzten
               Laufwerks als Integer (0 entspricht Laufwerk A,
               1 entspricht Laufwerk B usw.).

Beispiel       Siehe EgetcurdirF

Ergebnis       getdisk liefert das momentan gesetzte Laufwerk zurck.

Portabilitt   Pure- und Turbo-C-spezifisch.

Querverweis    EsetdiskF EgetcurdirFName           get disk free - ermittelt den freien Platz auf einer
               Diskette/Festplatte.

Definition     void  getdfree( unsigned char drive, Estruct dfreeF *dtable );

Prototyp in    ext.h

Beschreibung   getdfree verwendet die Funktion, um Informationen ber
               den freien Platz auf dem durch drive angegebenen Lauf-
               werk in einer Struktur des Typs dfree zurckzuliefern.
               Wenn drive den Wert 0 hat, wird das momentan gesetzte
               Laufwerk bearbeitet, ansonsten gilt A = 1, B = 2 usw.

Ergebnis       getdfree hat kein direktes Funktionsergebnis. Im Falle
               eines Fehlers bekommt das Mitglied df_sclus den Wert
               -1 zugewiesen.

Portabilitt   Pure- und Turbo-C-spezifisch.Name           signal - legt fest, wie das Programm auf Software-
               oder Hardware-Signale (Ausnahmezustnde) reagiert.

Definition     Esigfunc_tF signal( int sig, Esigfunc_tF func );

Prototyp in    signal.h

Beschreibung   Hardware-Ausnahme-Zustnde wie illegale Befehle,
               Bus- oder Adrefehler, Interrupts (z.B. vom
               Timer-Baustein), aber auch Software-Interrupts wie
               der TRAP-Befehl lsen ein Software-Signal (technisch:
               eine Exception) aus, auf die ein Pure-C-Programm in
               zwei Schritten reagiert:

               1. Prfung, welche Aktion auf dieses Signal hin
                  ausgefhrt werden soll, d.h. Auslesen einer Tabelle;
               2. Ausfhrung dieser Aktion, d.h. Aufruf einer
                  entsprechenden Routine.

               ber die Funktion signal() kann der Programmierer in
               diesen Ablauf eingreifen - mit ihr lassen sich nicht
               nur Eintrge der "Aktions-Tabelle" verndern, sondern
               auch eigene Routinen installieren.

               signal.h definiert zwei Standard-Routinen (SIG_DFL,
               SIG_IGN) und zwei "magische" Konstanten (SIG_ERR,
               SIG_SYS) zur Behandlung von Signalen. Dabei sind
               SIG_DFL und SIG_IGN sowohl Parameter als auch Ergebnis,
               SIG_SYS nur Parameter und SIG_ERR nur Ergebnis von
               signal():

               SIG_DFL  (signal default) - beendet das Programm
               SIG_IGN  (signal ignore) - ignoriert das Signal,
                        das Programm wird fortgesetzt
               SIG_SYS  (signal system) - setzt den Prozessor-
                        Exception-Vektor fr dieses Signal auf den
                        ursprnglichen Wert zurck, der vor dem
                        erstmaligen Aufruf von signal() gesetzt war
               SIG_ERR  (signal error) - wird benutzt, um eine
                        Fehlerbedingung bei der Ausfhrung von signal()
                        anzuzeigen (d.h. einen Fehler beim Setzen eines
                        Eintrags)

               Die momentan definierten Signaltypen zusammen mit der
               "Standard-Aktion" des Programms sind:
               1. Alle Exceptions der 68000 CPU von Nr. 2 bis 79
                  sind fr signal() definiert, dabei sind die fr den
                  Atari relevanten als Konstanten in signal.h
                  vorhanden. Damit ist es mglich, statt mit "Bomben"
                  individuell auf jede Fehler-Situation zu reagieren;
                  trotzdem fhren alle Exceptions standardmig zur
                  blichen Aktion: also Bomben, Betriebssystemaufruf
                  oder Interrupt-Behandlung.
                  Von ANSI bernommen wurden die Signale:

                  SIGSEGV  (segment violation) - hier: Bus-Fehler.
                  SIGILL   (illegal operation) - hier: Illegaler Befehl.

                  ACHTUNG: Bei Bus- und Adrefehlern ist die Adresse des 
                           folgenden Befehls nicht eindeutig feststellbar
                           (auf dem 68000), eine nochmalige Ausfhrung des
                           fehlerhaften Befehls ist auch nicht sinnvoll,
                           daher darf eine Routine zur Behandlung dieser
                           Fehler auf keinen Fall mit rts beendet werden;
                           nur ein longjmp() oder die Terminierung des
                           Programms sind erlaubt.

                  Bei den "richtigen" Interrupts (SIGSPURI, SIGAUTO1
                  - SIGAUTO7, SIGMFP0 - SIGMFP15) sollte man beachten,
                  da das TOS im wesentlichen nicht reentrant ist,
                  deshalb sollten Betriebssystemaufrufe in diesen Fllen
                  unterbleiben; auerdem ist auf Krze zu achten, ANSI
                  erlaubt z.B. nur eine Zuweisung an einen "atomaren"
                  Datentyp (in signal.h als sig_atomic_t definiert).
                  Wichtig ist auch, da der interne Handler beim Auf-
                  treten einer Exception erst signal(act_sig, SIG_DFL)
                  ausfhrt (dazu unten mehr).
                  
                  HINWEIS: Das Interrupt-In-Service-Bit im MFP wird 
                           automatisch auf jeden Fall nach Ausfhrung
                           der Benutzer-Routine gelscht. Bestimmte MFP-
                           Interrupts mssen erst mit Jenabint() ein-,
                           bzw. mit Jdisint() ausgeschaltet werden!
                  
                  2. Daneben gibt es noch vier zustzlich von ANSI vorge-
                  schriebene Signale, die bis auf SIGABRT und SIGINT von
                  dieser Implementation nicht erzeugt werden.
                  Diese verhalten sich wie folgt:

                  SIGABRT  (abort) - gibt "ABNORMAL PROGRAM TERMINA"
                           "TION" ber GEMDOS aus und beendet das Pro-
                           gramm via _exit( 3 ). Wird auch durch abort()
                           erzeugt.
                  SIGINT   (interrupt) - der Benutzer hat CTRL-d ge-
                           drckt, um das Programm zu unterbrechen;
                           beendet das Programm durch _exit( 2 ).
                  SIGFPE   (floating point error) - tritt nur durch
                           raise() auf; fhrt zur Beendigung des Pro-
                           gramms durch _exit( 2 ).
                  SIGTERM  (termination) - tritt nur durch raise()
                           auf; fhrt zur Beendigung des Programms
                           durch _exit( 2 ).

                  3. Zustzlich sind noch zwei unter UNIX bliche Signale
                  definiert, die standardmig SIG_DFL ausfhren:
                  SIGALRM und SIGKILL.
               
               Der Ablauf im Detail
               Wenn eine Exception auftritt (d.h. die vom Prozessor
               untersttzten Signale, also alle bis auf SIGINT, SIGTERM,
               SIGFPE, SIGABRT, SIGALRM und SIGKILL) wird, solange keine
               eigene Routine installiert wurde, direkt die bliche
               Aktion ausgefhrt (also Bomben, Betriebssystemaufruf,
               Interrupt-Behandlung).
               Fr alle Signale, egal wie erzeugt, gilt:
               
               Die Laufzeitbibliothek prft, ob fr den aufgetretenen
               Signaltyp eine Behandlungsroutine installiert ist.
               - wenn nein, wird das Programm beendet, so als ob
                 SIG_DFL gesetzt ist.
               - wenn ja, dann wird der "Aktions-Eintrag" fr diesen
                 Signaltyp auf SIG_DFL zurckgesetzt und die Behand-
                 lungsroutine mit dem Signaltyp als Parameter aufge-
                 rufen - das nchste Signal derselben Art hat also
                 die Beendigung des Programms zur Folge.


Ergebnis       Bei fehlerfreier Ausfhrung liefert signal() den
               vorherigen "Aktions-Eintrag" zurck (d.h. einen
               Zeiger auf die Routine, die zuvor als Behandlungs-
               routine fr dieses Signal gesetzt war). Im Falle
               eines Fehlers ist das Ergebnis von signal() der
               Zeiger SIG_ERR, errno bekommt den Wert EINVAL.

Portabilitt   ANSI C, UNIX

Querverweis    EabortF, E_exitF, ElongjmpF, EerrnoF, EraiseF,
               Esigfunc_tFName           raise - Verschicken eines Software-Signals.

Definition     int  raise( int sig );

Prototyp in    signal.h

Beschreibung   raise schickt das Signal sig an das Program.
               Wenn das Programm eine Signal-Behandlung fr
               das Signal sig installiert hat, wird die Signal-
               Behandlungsroutine ausgefhrt. Andernfalls
               wird die EStandardbehandlungF durchgefhrt.

Ergebnis       raise liefert bei fehlerfreier Ausfhrung den
               Wert 0 zurck (natrlich nur, wenn die dadurch
               aufgerufene Behandlungsroutine das Programm nicht
               abbricht oder an einer anderen Stelle fortsetzt);
               fr undefinierte Werte von sig ist das Resultat
               von Null verschieden.

Querverweis    EabortF, E_exitF, ElongjmpF, EerrnoF, EsignalF,
               Esigfunc_tFName           sleep - hlt die Ausfhrung des Programms fr einen
               bestimmten Zeitraum an.

Definition     void  sleep( unsigned seconds );

Prototyp in    ext.h

Beschreibung   sleep hlt die Ausfhrung fr die durch seconds
               angegebene Anzahl von Sekunden an und verwendet die Uhr
               des Systems, ist also maschinenunabhngig.

Ergebnis       sleep hat kein direktes Funktionsergebnis.

Portabilitt   Auf UNIX-Systemen verfgbar.

Querverweis    EclockF, EdelayFName           delay - wartet die angegebene Anzahl von Millisekunden.

Definition     void  delay( unsigned milliseconds );

Prototyp in    ext.h

Beschreibung   delay arbeitet im Gegensatz zu einer normalen
               Leerschleife unabhngig vom verwendeten Computermodell:
               beim Start des Programms wird mit Hilfe der Systemuhr
               festgestellt, wie schnell der Prozessor arbeitet, und
               ein entsprechender Zhler festgelegt. Dieser Zhler ist
               allerdings eine Annherung: ein Aufruf wie
                   delay(60000);
               lt den Computer je nach Modell zwischen 59 und 61
               Sekunden warten - hundertprozentig genau ist delay also
               nicht.

Ergebnis       delay liefert keinen Wert zurck.

Portabilitt   Pure- und Turbo-C-spezifisch.

Querverweis    EsleepFName           floor - rundet in Richtung auf die nchst-
               niedrigere ganze Zahl.

Definition     double  floor( double x );

Prototyp in    math.h

Beschreibung   floor rundet in Richtung niedrigerer Integerwerte ab:
               floor( 3.2 )   ergibt 3.0
               floor( -1.8 )  ergibt -2

Ergebnis       floor liefert ihr ganzzahliges Ergebnis als EdoubleF
               zurck.

Gruppe         EMathematische RoutinenF   EGleitkomma-BefehleF

Querverweis    EceilF   EabsFName           float modulus - berechnet den Restwert der
               Division x/y.

Definition     double  fmod( double x, double y );

Prototyp in    math.h

Beschreibung   fmod liefert den Rest der Division x/y zurck,
               berechnet also x Modulo y. Ein Aufruf mit den
               Werten 23.345 und 1 ergibt 0.345, ein Aufruf mit
               den Werten 17.4 und 10 ergibt 7.4 usw. Etwas
               mathematischer formuliert: fmod liefert den
               Wert f der Gleichung x = iy + f zurck, wobei
               i einen Integer darstellt und f die Bedingung
               0 <= f < y erfllt.

Ergebnis       fmod liefert den Divisionsrest von x/y als EdoubleF.
               Fr y = 0 erhlt man 0.

Gruppe         EMathematische RoutinenF   EGleitkomma-BefehleF

Querverweis    EmodfFName           file open - erffnet eine Datei.

Definition     FILE  *fopen( const char *filename, const char *EmodeF );

Prototyp in    stdio.h

Beschreibung   fopen erffnet die durch filename bezeichnete Datei und
               ordnet ihr einen Stream zu. Zurckgeliefert wird ein
               Zeiger auf diesen Stream, ber den weitere Operationen
               mit dieser Datei ausgefhrt werden knnen.

Ergebnis       Die Funktion liefert bei fehlerfreier Ausfhrung einen
               Zeiger auf einen Stream zurck. Im Falle eines
               Fehlers wird der Wert ENULLF zurckgeliefert.

Gruppe         EI/O-RoutinenF

Querverweis    EcreatF   EfcloseF   EferrorF   EfreadF   EfseekF
               EgetcF    EgetsF     EopenF     EputcF    EputsF
               ErewindF  EsetbufF   EfreopenF  EFopenFDer Parameter mode in EfopenF kann einen der folgenden Werte annehmen:

"r"    READ: Erffnung im ETextmodusF ausschlielich fr Lese-
       operationen - die angegebene Datei mu existieren.
"w"    WRITE: Erzeugung einer Datei im ETextmodusF fr
       Schreiboperationen - falls die Datei bereits existiert, wird
       ihr vorheriger Inhalt gelscht.
"rb"   wie "r", jedoch im EBinrmodusF
"wb"   wie "w", jedoch im EBinrmodusF
"a"    APPEND: Erffnung fr Schreiboperationen. Falls die Datei
       bereits existiert, werden zustzliche Informationen an das
       momentane Dateiende angefgt, ansonsten wird sie automatisch
       erzeugt.
"r+"   Erffnung einer Datei fr Lese- und Schreiboperationen - die
       Datei mu bereits existieren.
"w+"   Erffnung einer neuen Datei fr Lese- und Schreiboperationen.
       Falls die Datei bereits existiert, wird ihr vorheriger Inhalt
       gelscht.
"a+"   Erffnung einer Datei zum Lesen und Anhngen neuer Daten
       durch Schreiboperationen. Falls die Datei bereits existiert,
       bleibt ihr alter Inhalt erhalten - falls nicht, wird sie
       automatisch erzeugt.

Mit r+ und w+ erffnete Dateien knnen sowohl gelesen als auch
beschrieben werden - zwischen einem Wechsel von Lesen nach
Schreiben und umgekehrt mu allerdings ein EfseekF oder ErewindF
stattfinden.
Leseoperationen, bei denen das Dateiende erreicht wird, bilden eine
Ausnahme: hier kann direkt eine Schreiboperation folgen.Der vorherige
Inhalt von mit a oder a+ erffneten Dateien ist gegen
Schreiboperationen geschtzt - ein rewind oder fseek ist zwar mglich,
jede Schreiboperation setzt die momentane Position aber automatisch
wieder auf das momentane Dateiende. Anders gesagt:
Neu geschriebene Daten werden grundstzlich angehngt - zum
berschreiben bereits existierender Datenstze mu die Datei mit r+
erffnet werden.

Querverweis     EfopenF   EfreopenFStandardmig ist bei EfopenF der Textmodus eingestellt.
Wenn im String der zustzliche Parameter b erscheint,
wird die Datei im Binrmodus erffnet. Das bedeutet, da die
standardmige bersetzung von CR/LF-Kombinationen in '\n', wie sie
im Text-Modus vorgenommen wird, nicht stattfindet.

Textmodus:     $0D (CR) wird nicht gelesen.
               Fr jedes $0A (LF) wird $0D0A (CR LF) geschrieben.
Binrmodus:    Es wird Byte fr Byte gelesen und geschrieben.

Querverweis    EfopenF   EfreopenFName           file print formatted - formatierte Ausgabe zu einer
               Datei.

Definition     int  fprintf( FILE *stream, const char *format, ... );

Prototyp in    stdio.h

Beschreibung   Alle EprintfF-Funktionen drucken in formatierter
               Form und erwarten zumindest einen EFormat-StringF
               (file printf) - wie EprintfF, die Ausgabe geschieht
               in den angegebenen Stream

Ergebnis       Smtliche Varianten von EprintfF liefern die Anzahl der
               ausgegebenen Zeichen als Funktionsergebnis zurck.
               Im Falle eines Fehlers ist das Funktionsergebnis EOF.

Gruppe         EI/O-RoutinenF

Querverweis    EfreadF    EputcF      EputsF       EscanfF    Eva_...F
               EprintfF   EvfprintfF  EvsprintfF   EsprintfFName           file put character - Ausgabe eines Zeichens
               zu einer Datei.

Definition     int  fputc( int ch, FILE *fp );

Prototyp in    stdio.h

Beschreibung   Die Funktion fputc gibt das Zeichen ch zu dem durch fp
               angegebenen stream aus.

Ergebnis       fputc liefert das bergebene Zeichen ch auch als
               Funktionsergebnis zurck. Im Falle eines Fehlers
               liefert die Funktionen den Wert EOF.

Gruppe         EI/O-RoutinenF

Querverweis    EferrorF   EfopenF    EfreadF   EgetcF     EprintfF
               EputsF     EsetbufF   EputcF    EputcharF  EEscapesequenzenFName           file put string - Ausgabe eines Strings zu einer
               Datei.

Definition     int  fputs( const char *s, FILE *fp );

Prototyp in    stdio.h

Beschreibung   fputs schreibt den nullterminierten String s in den
               via fp angegebenen stream, wobei kein automatischer
               Zeilenvorschub angehngt wird und das abschlieende
               Null-Byte des Strings nicht kopiert wird.

Ergebnis       Bei fehlerfreier Ausfhrung liefert fputs den Wert
               des zuletzt geschriebenen Zeichens zurck. Im Falle
               eines Fehlers liefert die Funktion den Wert EOF.

Gruppe         EI/O-RoutinenF

Querverweis    EputsF   EferrorF   EfopenF   EfreadF   EgetsF
               EopenF   EprintfF   EputcF    EEscapesequenzenFName           file read - liest Daten von einer Datei.

Definition     size_t  fread( void *ptr, size_t elem_Size,
                               size_t count, FILE *stream );

Prototyp in    stdio.h

Beschreibung   fread liest count Datenelemente, die jeweils die Gre
               elem_Size haben, von der durch stream bezeichneten
               Datei in den Speicherbereich, auf den ptr zeigt.
               Die Funktionen liest count * elem_Size Bytes. ptr kann
               auf beliebige Datenkonstrukte (typischerweise Arrays)
               zeigen - solange es sich um einen typisierten Zeiger
               handelt, ist die Angabe von elem_Size durch
               sizeof(*ptr) mglich.

Ergebnis       Die Funktion liefert bei fehlerfreier Ausfhrung
               die Anzahl der gelesenen Elemente (nicht: Bytes)
               zurck. Im Falle eines Fehlers oder dem Erreichen
               des Dateiendes, wird die Anzahl von Elementen zurck-
               geliefert, die noch fehlerfrei gelesen werden konnte.

Gruppe         EI/O-RoutinenF

Querverweis    EfwriteF   EfopenF   EfgetcF   EgetsF    EprintfF
               EputcF     EputsF    EreadF    EscanfF   EwriteF
               Esize_tF   EFreadFName           free - gibt einen dynamisch belegten Speicherblock
               wieder frei.

Definition     void  free( void *ptr );

Prototyp in    stdlib.h

Beschreibung   free gibt einen zuvor mit EmallocF, EcallocF oder
               EreallocF belegten Block wieder frei, wobei der
               bergebene Zeiger ptr auf die Startadresse dieses
               Bereichs zeigen mu.

Ergebnis       free hat kein direktes Funktionsergebnis.

Gruppe         EDynamische Verwaltung des SpeichersF

Querverweis    EsetbufFName           file re-open - wechselt die einem stream zugeordnete
               Datei.

Definition     FILE  *freopen( const char *filename, const char *EmodeF,
                                FILE *stream );

Prototyp in    stdio.h

Beschreibung   freopen erffnet die durch filename angegebene Datei
               und ordnet sie der Datei stream zu. Anders gesagt:
               freopen wechselt die stream zugeordnete Datei.
               In den meisten Fllen wird diese Funktion auf stdin,
               stdout und stderr zur Umleitung von Ein-/Ausgaben
               verwendet.
               Achtung: Die alte Datei wird immer geschlossen
                        - unabhngig davon, ob die Erffnung der
                        neuen Datei fehlerfrei verluft oder nicht.

Ergebnis       Die Funktion liefert bei fehlerfreier Ausfhrung einen
               Zeiger auf einen stream zurck (der identisch mit dem
               alten stream ist). Im Falle eines Fehlers wird der
               Wert ENULLF zurckgeliefert.

Gruppe         EI/O-RoutinenF

Querverweis    EcreatF    EfcloseF   EferrorF   EfreadF   EfseekF
               EgetcF     EgetsF     EopenF     EputcF    EputsF
               ErewindF   EsetbufF   EfopenFName           float remnant/exponent - liefert die Mantisse und
               den binren Exponenten einer Fliekommazahl in zwei
               getrennten Werten zurck.

Definition     double  frexp( double value, int *exponent );

Prototyp in    math.h

Beschreibung   frexp berechnet aus value eine Mantisse x
               (absoluter Wert grer 0.5 und kleiner 1.0) zusammen
               mit einen Eponenten der Basis 2, bildet also eine
               (binr) normalisierte Fliekommazahl. Anders gesagt:
               frexp erfllt die Gleichung value = x * 2 ^ n.

Ergebnis       Die Mantisse x wird als Funktionsergebnis zurck-
               geliefert.
               Die Behandlung von Fehlern kann ber die Routine
               EsetmatherrF modifiziert werden.

Gruppe         EMathematische RoutinenF   EGleitkomma-BefehleF

Querverweis    EexpFName           file scan formatted - formatiertes Lesen einer
               Datei.

Definition     int  fscanf( FILE *stream, const char *format, ... );

Prototyp in    stdio.h

Beschreibung   fscanf liest stream in formatierter Form und erwartet
               zumindest einen EFormat-StringF (Parameter format),
               ber den die Anzahl der Eingaben und ihr Format
               festgelegt wird. Gelesene Eingaben werden in den
               Variablen der Parameterliste gespeichert

Ergebnis       fscanf liefert die Anzahl der fehlerfrei gelesenen
               Felder als Funktionsergebnis zurck, wobei mit *
               unterdrckte Felder nicht gezhlt werden.
               Wenn berhaupt keine Zuweisungen erfolgt sind, hat das
               Ergebnis den Wert 0.
               Der Versuch, ber das Ende einer Datei bzw. ber das
               Ende eines Strings hinaus zulesen (EsscanfF), ergibt
               den Wert EOF als Funktionsergebnis.

Gruppe         EI/O-RoutinenF

Querverweis    EatofF    EgetcF    EfreadF   EprintfF   Eva_...F
               EscanfF   EsscanfF  EvfscanfFName           file scan formatted - formatiertes Lesen einer
               Datei.

Definition     #include <stdarg.h>
               int  vfscanf( FILE *stream, const char *format,
                             Eva_listF param );

Prototyp in    stdio.h

Beschreibung   Die v...scanf-Funktionen verhalten sich hnlich wie
               ihre ...scanf-Gegenstcke, sie akzeptieren jedoch
               einen Pointer auf eine Liste von Argumenten anstelle
               der Liste selber.
               vfscanf liest stream in formatierter Form und erwartet
               zumindest einen EFormat-StringF (Parameter format),
               ber den die Anzahl der Eingaben und ihr Format
               festgelegt wird. Gelesene Eingaben werden in den
               Variablen der Parameterliste gespeichert.

Ergebnis       vfscanf liefert die Anzahl der fehlerfrei gelesenen
               Felder als Funktionsergebnis zurck, wobei mit *
               unterdrckte Felder nicht gezhlt werden.
               Wenn berhaupt keine Zuweisungen erfolgt sind, hat das
               Ergebnis den Wert 0.
               Der Versuch, ber das Ende einer Datei bzw. ber das
               Ende eines Strings hinaus zulesen (EsscanfF), ergibt
               den Wert EOF als Funktionsergebnis.

Portabilitt   vfscanf ist auf UNIX-Systemen verfgbar.

Gruppe         EI/O-RoutinenF

Querverweis    EatofF    EgetcF    EfreadF   EprintfF   Eva_...F
               EscanfF   EsscanfF  EfscanfFName           file seek - setzt die momentane Position
               innerhalb einer Datei fr folgende Lese und/oder
               Schreibaktionen.

Definition     int  fseek( FILE *stream, long offset, int mode );

Prototyp in    stdio.h

Beschreibung   fseek setzt innerhalb der durch stream bezeichneten
               Datei die Position. Der Parameter offset gibt jeweils
               die zu setzende Entfernung in Bytes an, die Art der
               Positionierung wird ber drei in stdio.h definierte
               Konstanten fr mode festgelegt:

               SEEK_SET  (Wert 0) - relativ zum Dateianfang.
               SEEK_CUR  (Wert 1) - relativ zur vorherigen Position.
               SEEK_END  (Wert 2) - relativ zum Dateiende.

               In Dateien, die fr Lese- und Schreiboperationen
               erffnet worden sind, kann nach fseek zwischen
               Lesen und Schreiben gewechselt werden. Mit
               EungetcF zurckgestellte Zeichen sind nach fseek
               nicht mehr erreichbar.

Portabilitt   fseek ist auf allen UNIX-Systemen verfgbar und in
               ANSI C definiert.

Ergebnis       fseek liefert bei fehlerfreier Ausfhrung den Wert 0
               zurck, ansonsten einen Wert ungleich 0.

Gruppe         EI/O-RoutinenF

Querverweis    EfopenF   EgetcF   ElseekF   EsetbufF   EungetcF
               EFseekFName           file set position - Datei-Position auf alten
               Wert zurcksetzen.

Definition     int  fsetpos( FILE *stream, fpos_t *pos );

Prototyp in    stdio.h

Beschreibung   Die Funktion fsetpos setzt den Datei-Zeiger der Datei
               stream auf eine mit EfgetposF gespeicherte Position pos.
               Das End-Of-File-Flag wird gelscht. Mit EungetcF
               zurckgestellte Zeichen sind nach fsetpos nicht mehr
               erreichbar.

Ergebnis       Die Funktion liefert den Wert 0, wenn die Datei-Position
               ermittelt werden konnte, ansonsten einen Fehlercode.
               EerrnoF wird auf einen Wert ungleich 0 gesetzt.

Gruppe         EI/O-RoutinenF

Querverweis    EfgetposFName           file tell - ermittelt die momentane Position
               innerhalb einer Datei.

Definition     long  ftell( FILE *stream );

Prototyp in    stdio.h

Beschreibung   ftell liefert die momentane Position innerhalb der
               durch stream bezeichneten Datei zurck (relativ
               zum Dateianfang, Zhlung in einzelnen Bytes).

Ergebnis       Im Binrmodus liefert ftell die momentane Position
               innerhalb der angegebenen Datei als long zurck, im
               Textmodus jedoch nur eine "magic number", die nur fr
               EfseekF verwendet werden kann.
               Falls sich bei dieser Operation ein Fehler ereignen
               sollte, hat das Funktionsergebnis den Wert -1L und
               EerrnoF erhlt einen positiven Wert.

Gruppe         EI/O-RoutinenF

Querverweis    EfseekF   ErewindFName           file write - schreibt Daten in eine Datei.

Definition     size_t  fwrite( const void *ptr, size_t elem_Size,
                                size_t count, FILE *stream );

Prototyp in    stdio.h

Beschreibung   fwrite ist das Gegenstck zu EfreadF und schreibt
               count Datenelemente mit jeweils elem_Size Bytes (die
               von einem Speicherbereich gelesen werden, dessen
               Startadresse durch ptr gegeben ist). Die Funktion
               schreibt count * elem_Size Bytes. ptr kann auf
               beliebige Datenkonstrukte (typischerweise Arrays)
               zeigen - solange es sich um einen typisierten Zeiger
               handelt, ist die Angabe von elem_Size durch
               EsizeofF(*ptr) mglich.

Ergebnis       Die Funktion liefert bei fehlerfreier Ausfhrung die
               Anzahl der geschriebenen Elemente (nicht: Bytes)
               zurck. Im Falle eines Fehlers, wird die Anzahl von
               Elementen zurckgeliefert, die noch fehlerfrei
               geschrieben werden konnten.

Gruppe         EI/O-RoutinenF

Querverweis    EfreadF   EfopenF   EfgetcF   EgetsF    EprintfF
               EputcF    EputsF    EreadF    EscanfF   EwriteF
               Esize_tF   EFwriteFName           get character - liest ein Zeichen von einem stream.

Definition     int  getc( FILE *stream );

Prototyp in    stdio.h

Beschreibung   getc ist ein Makro, der das jeweils nchste Zeichen aus
               der durch stream bezeichneten Datei liest und
               zurckliefert.

Ergebnis       getc liefert bei fehlerfreier Ausfhrung das gelesene
               Zeichen als EintF zurck, wobei keine Vorzeichen-
               erweiterung stattfindet.
               Bei berschreitung des Dateiendes (beim Lesen der
               Tastatur: der Eingabe von control-z) wird der Wert
               EOF zurckgeliefert.

Gruppe         EI/O-RoutinenF

Querverweis    EungetcF   EferrorF   EfopenF   EfreadF   EfseekF
               EgetsF     EputcF     EreadF    EscanfF   EgetcharF
               EgetchF    EgetcheF   EfgetcFName           get character - liest ein Zeichen von der Tastatur.

Definition     int  getch( void );

Prototyp in    ext.h

Beschreibung   getch liest ein Zeichen von der Tastatur, ohne es auf
               dem Bildschirm auszugeben.

Ergebnis       getch liefert bei fehlerfreier Ausfhrung das gelesene
               Zeichen als EintF zurck, wobei keine Vorzeichen-
               erweiterung stattfindet.

Gruppe         EI/O-RoutinenF   EPure-C-SpezialfunktionenF

Querverweis    EgetcF    EgetcheF   EfgetcF   EungetcF   EferrorF
               EfopenF   EfreadF   EfseekF    EgetsF     EputcF
               EreadF    EscanfFName           get character - liest ein Zeichen von stdin.

Definition     int  getchar( void );

Prototyp in    stdio.h

Beschreibung   getchar ist ein Makro, das schlicht als getc(stdin)
               definiert ist. getchar liest das jeweils nchste
               Zeichen aus stdin.

Ergebnis       getchar liefert bei fehlerfreier Ausfhrung das
               gelesene Zeichen als EintF zurck, wobei keine
               Vorzeichenerweiterung stattfindet.
               Bei berschreitung des Dateiendes (beim Lesen der
               Tastatur: der Eingabe von control-z) wird der Wert
               EOF zurckgeliefert.

Gruppe         EI/O-RoutinenF

Querverweis    EgetcF    EfgetcF   EgetchF   EgetcheF   EungetcF
               EferrorF  EfopenF   EfreadF   EfseekF    EgetsF
               EputcF    EreadF    EscanfFName           get character - liest ein Zeichen von der Tastatur
               und gibt es auf dem Bildschirm aus.

Definition     int  getche( void );

Prototyp in    ext.h

Beschreibung   getche liest ein Zeichen von der Tastatur und gibt es
               auf dem Bildschirm aus.

Ergebnis       getch liefert bei fehlerfreier Ausfhrung das gelesene
               Zeichen als EintF zurck, wobei keine Vorzeichen-
               erweiterung stattfindet.
               Bei berschreitung des Dateiendes (beim Lesen der
               Tastatur: der Eingabe  von control-z) wird der Wert
               EOF zurckgeliefert.

Gruppe         EI/O-RoutinenF   EPure-C-SpezialfunktionenF

Querverweis    EgetcF    EgetchF    EfgetcF   EungetcF   EferrorF
               EfopenF   EfreadF   EfseekF    EgetsF     EputcF
               EreadF    EscanfFName           get date - ermittelt das aktuelle Tagesdatum.

Definition     void  getdate( struct date *dateRec );

Prototyp in    ext.h

Beschreibung   Die Funktion getdate ermittelt das aktuelle Tagesdatum.
               Das Datum wird in der Struktur EdateF dateRec bergeben.

Ergebnis       Die Funktion liefert kein Ergebnis.

Gruppe         EDatum und UhrzeitF   EPure-C-SpezialfunktionenF

Querverweis    EtimeF   EctimeF   EsetdateFName           get environment - liest einen Eintrag aus der
               Tabelle Environment.

Definition     char  *getenv( const char *name );

Prototyp in    stdlib.h

Beschreibung   Die vom Betriebssytem eingerichtete Tabelle Environment
               besteht aus einer (unsortierten) Folge von Eintrgen
               der Form:

               name=Zeichenfolge

               Der bekannteste Eintrag drfte PATH (Suchwege fr
               ausfhrbare Programme) sein.
               getenv sucht die Tabelle nach dem ber name
               angegebenen Eintrag ab und liefert einen Zeiger auf
               Zeichenfolge zurck.
               Hinweis: der von getenv zurckgelieferte Zeiger
               sollte nicht zur direkten Vernderung von Environment-
               Eintrgen verwendet werden.

Ergebnis       getenv liefert einen Zeiger auf die zu name gehrende
               Zeichenfolge zurck. Falls kein Eintrag des Namens
               name gefunden werden konnte, liefert getenv ENULLF.

Gruppe         EVerschiedene RoutinenFName           get file time - liest Datum und Uhrzeit einer
               offenen Datei.

Definition     int  getftime( int handle, struct ftime *ftimep );

Prototyp in    ext.h

Beschreibung   getftime ermittelt Datum und Uhrzeit der durch handle
               bezeichneten (offenen) Datei. Datum und Uhrzeit werden
               durch die Struktur EftimeF beschrieben.

Ergebnis       Die Funktion liefert bei fehlerfreier Ausfhrung den
               Wert 0. Wenn der angegebene handle nicht existiert
               (d.h. keine entsprechende Datei offen ist), liefert
               getftime den Wert -1 als Ergebnis, EerrnoF bekommt den
               Wert EBADF oder EINVFNC.

Gruppe         EI/O-RoutinenF   EPure-C-SpezialfunktionenF

Querverweis    EsetftimeFName           ftime format to tm format - Konvertiert den Inhalt
               einer ftime-Struktur in eine tm-Struktur.

Definition     struct tm  *ftimtotm( struct ftime *f );

Prototyp in    ext.h

Beschreibung   ftimtotm konvertiert den Inhalt der Struktur vom
               Typ EftimeF, auf die f zeigt in das Format einer
               Struktur vom Typ EtmF.

Ergebnis       Die Funktion liefert einen Zeiger auf eine EtmF-Struktur.

Gruppe         EI/O-RoutinenF   EPure-C-SpezialfunktionenF

Querverweis    EgetftimeF       EasctimeFName           get string - liest einen String.

Definition     char  *gets( char *str );

Prototyp in    stdio.h

Beschreibung   Die Funktion gets liest eine Zeichenfolge von der
               Standard-Datei stdin und speichert ihn in der durch
               str angegebenen Stringvariablen. Die Eingabe wird
               durch einen Zeilenvorschub beendet, der in *str
               als Nullzeichen () gespeichert wird.

Ergebnis       gets liefert bei fehlerfreier Ausfhrung
               einen Zeiger auf str zurck. Wenn beim Lesen das
               Dateiende berschritten wird oder ein Fehler auftritt,
               ist das Funktionsergebnis ENULLF.

Gruppe         EI/O-RoutinenF

Querverweis    EfgetsF   EferrorF   EfopenF   EfreadF   EgetcF
               EputsF    EscanfFName           get time - ermittelt die Uhrzeit des Systems.

Definition     void  gettime( struct time *timeRec );

Prototyp in    ext.h

Beschreibung   Die Funktion gettime ermittelt die aktuelle Uhrzeit.
               Die Uhrzeit wird in der Struktur EtimeF bergeben.

Ergebnis       Die Funktion liefert kein Ergebnis.

Gruppe         EDatum und UhrzeitF   EPure-C-SpezialfunktionenF

Querverweis    EtimeF   EctimeF   EsettimeF   EGettimeFName           is a teletype - prft, ob ein Gert zeichen- oder
               blockorientiert arbeitet.

Definition     int  isatty( int handle );

Prototyp in    ext.h

Ergebnis       Die Funktion liefert ein Ergebnis ungleich 0, wenn
               das ber handle adressierte Gert zeichenorientiert
               arbeitet.

Gruppe         EPure-C-SpezialfunktionenFName           Greenwich Mean Time - rechnet Datum und Uhrzeit
               in die internationale Standardzeit um.

Definition     struct tm  *gmtime( time_t *clock );

Prototyp in    time.h

Beschreibung   gmtime konvertiert direkt in die international
               gltige Greenwich Mean Time (GMT).
               Die globale long-Variable timezone enthlt den
               Unterschied zwischen der lokalen Zeit und der GMT in
               Sekunden. Die globale Variable daylight darf nur dann
               auf einen Wert ungleich Null gesetzt werden, wenn die
               Standardwerte der USA fr Sommer- und Winterzeit
               angewendet werden knnen. Die Funktion arbeitet mit
               einer Tabelle, die die Zeitkorrekturen der Jahre 1974
               und 1975 enthlt - falls ntig, kann diese Tabelle
               entsprechend vergrert werden. Der Strukturtyp EtmF
               ist in time.h definiert.

Ergebnis       gmtime liefert einen Zeiger auf eine  statische
               Struktur, die durch jeden Aufruf dieser Funktion
               erneut gesetzt wird.

Gruppe         EDatum und UhrzeitF

Querverweis    ElocaltimeF   EgetdateF   EtimeF   Etime_tFName           isalpha - Funktion zur Klassifizierung von Zeichen.

Definition     int  isalpha( int c );

Prototyp in    ctype.h

Beschreibung   Diese Funktion prft, ob das bergebene Zeichen c
               ein Buchstabe ( a..z, A..Z ) ist.

Ergebnis       Wenn die Bedingung zutrifft, wird ein Wert ungleich
               Null zurckgegeben, ansonsten Null.
               Das Ergebnis ist nur definiert, falls isascii( c )
               ungleich Null oder c gleich EOF ist.

Gruppe         EZeichen-Klassifizierungs-RoutinenF

Querverweis    EtolowerF   EtoupperFName           isalnum - Funktion zur Klassifizierung von Zeichen.

Definition     int  isalnum( int c );

Prototyp in    ctype.h

Beschreibung   Diese Funktion prft, ob das bergebene Zeichen c
               ein Buchstabe oder eine Ziffer ( a..z, A..Z, 0..9 )
               ist.

Ergebnis       Wenn die Bedingung zutrifft, wird ein Wert ungleich
               Null zurckgegeben, ansonsten Null.
               Das Ergebnis ist nur definiert, falls isascii( c )
               ungleich Null oder c gleich EOF ist.

Gruppe         EZeichen-Klassifizierungs-RoutinenF

Querverweis    EtolowerF   EtoupperFName           isascii - Funktion zur Klassifizierung von Zeichen.

Definition     int  isascii( int c );

Prototyp in    ctype.h

Beschreibung   Diese Funktion prft, ob das bergebene Zeichen c
               ein ASCII-Zeichen ( 0x00..0x7F ) ist.

Ergebnis       Wenn die Bedingung zutrifft, wird ein Wert ungleich
               Null zurckgegeben, ansonsten Null.

Gruppe         EZeichen-Klassifizierungs-RoutinenF

Querverweis    EtolowerF   EtoupperFName           iscntrl - Funktion zur Klassifizierung von Zeichen.

Definition     int  iscntrl( int c );

Prototyp in    ctype.h

Beschreibung   Diese Funktion prft, ob das bergebene Zeichen c
               ein Control-Zeichen ( 0x00..0x1F, 0x7F ) ist.

Ergebnis       Wenn die Bedingung zutrifft, wird ein Wert ungleich
               Null zurckgegeben, ansonsten Null.
               Das Ergebnis ist nur definiert, falls isascii( c )
               ungleich Null oder c gleich EOF ist.

Gruppe         EZeichen-Klassifizierungs-RoutinenF

Querverweis    EtolowerF   EtoupperFName           isdigit - Funktion zur Klassifizierung von Zeichen.

Definition     int  isdigit( int c );

Prototyp in    ctype.h

Beschreibung   Diese Funktion prft, ob das bergebene Zeichen c
               eine Ziffer ( 0..9 ) ist.

Ergebnis       Wenn die Bedingung zutrifft, wird ein Wert ungleich
               Null zurckgegeben, ansonsten Null.
               Das Ergebnis ist nur definiert, falls isascii( c )
               ungleich Null oder c gleich EOF ist.

Gruppe         EZeichen-Klassifizierungs-RoutinenF

Querverweis    EtolowerF   EtoupperFName           isgraph - Funktion zur Klassifizierung von Zeichen.

Definition     int  isgraph( int c );

Prototyp in    ctype.h

Beschreibung   Diese Funktion prft, ob das bergebene Zeichen c
               ein druckbares Zeichen ( 0x21..0x7E ) ist.

Ergebnis       Wenn die Bedingung zutrifft, wird ein Wert ungleich
               Null zurckgegeben, ansonsten Null.
               Das Ergebnis ist nur definiert, falls isascii( c )
               ungleich Null oder c gleich EOF ist.

Gruppe         EZeichen-Klassifizierungs-RoutinenF

Querverweis    EtolowerF   EtoupperFName           islower - Funktion zur Klassifizierung von Zeichen.

Definition     int  islower( int c );

Prototyp in    ctype.h

Beschreibung   Diese Funktion prft, ob das bergebene Zeichen c
               ein kleingeschriebener Buchstabe ( a..z ) ist.

Ergebnis       Wenn die Bedingung zutrifft, wird ein Wert ungleich
               Null zurckgegeben, ansonsten Null.
               Das Ergebnis ist nur definiert, falls isascii( c )
               ungleich Null oder c gleich EOF ist.

Gruppe         EZeichen-Klassifizierungs-RoutinenF

Querverweis    EtolowerF   EtoupperFName           isodigit - Funktion zur Klassifizierung von Zeichen.

Definition     int  isodigit( int c );

Prototyp in    ctype.h

Beschreibung   Diese Funktion prft, ob das bergebene Zeichen c
               eine Oktalziffer ( 0..7 ) ist.

Ergebnis       Wenn die Bedingung zutrifft, wird ein Wert ungleich
               Null zurckgegeben, ansonsten Null.
               Das Ergebnis ist nur definiert, falls isascii( c )
               ungleich Null oder c gleich EOF ist.
Gruppe         EZeichen-Klassifizierungs-RoutinenF

Querverweis    EtolowerF   EtoupperFName           isprint - Funktion zur Klassifizierung von Zeichen.

Definition     int  isprint( int c );

Prototyp in    ctype.h

Beschreibung   Diese Funktion prft, ob das bergebene Zeichen c
               ein druckbares Zeichen ( 0x20..0x7E ) ist. isprint
               verhlt sich also quasi wie isgraph, mit der Aus-
               nahme, da hier das Leerzeichen ebenfalls als
               druckbar anerkannt wird.

Ergebnis       Wenn die Bedingung zutrifft, wird ein Wert ungleich
               Null zurckgegeben, ansonsten Null.
               Das Ergebnis ist nur definiert, falls isascii( c )
               ungleich Null oder c gleich EOF ist.

Gruppe         EZeichen-Klassifizierungs-RoutinenF

Querverweis    EtolowerF   EtoupperFName           ispunct - Funktion zur Klassifizierung von Zeichen.

Definition     int  ispunct( int c );

Prototyp in    ctype.h

Beschreibung   Diese Funktion prft, ob das bergebene Zeichen c
               ein Punktierungszeichen ist. Dies ist der Fall, wenn
               entweder iscntrl oder isspace wahr ist.

Ergebnis       Wenn die Bedingung zutrifft, wird ein Wert ungleich
               Null zurckgegeben, ansonsten Null.
               Das Ergebnis ist nur definiert, falls isascii( c )
               ungleich Null oder c gleich EOF ist.

Gruppe         EZeichen-Klassifizierungs-RoutinenF

Querverweis    EtolowerF   EtoupperFName           isspace - Funktion zur Klassifizierung von Zeichen.

Definition     int  isspace( int c );

Prototyp in    ctype.h

Beschreibung   Diese Funktion prft, ob das bergebene Zeichen c
               ein Leerzeichen, Tabulator, Zeilen- oder Seitenvor-
               schub ( 0x09..0x0D, 0x20 ) ist.

Ergebnis       Wenn die Bedingung zutrifft, wird ein Wert ungleich
               Null zurckgegeben, ansonsten Null.
               Das Ergebnis ist nur definiert, falls isascii( c )
               ungleich Null oder c gleich EOF ist.

Gruppe         EZeichen-Klassifizierungs-RoutinenF

Querverweis    EtolowerF   EtoupperFName           isupper - Funktion zur Klassifizierung von Zeichen.

Definition     int  isupper( int c );

Prototyp in    ctype.h

Beschreibung   Diese Funktion prft, ob das bergebene Zeichen c
               ein Grobuchstabe ( A..Z ) ist.

Ergebnis       Wenn die Bedingung zutrifft, wird ein Wert ungleich
               Null zurckgegeben, ansonsten Null.
               Das Ergebnis ist nur definiert, falls isascii( c )
               ungleich Null oder c gleich EOF ist.

Gruppe         EZeichen-Klassifizierungs-RoutinenF

Querverweis    EtolowerF   EtoupperFName           isxdigit - Funktion zur Klassifizierung von Zeichen.

Definition     int  isxdigit( int c );

Prototyp in    ctype.h

Beschreibung   Diese Funktion prft, ob das bergebene Zeichen c
               eine Hexadezimalziffer ( 0..9, A..F, a..f ) ist.

Ergebnis       Wenn die Bedingung zutrifft, wird ein Wert ungleich
               Null zurckgegeben, ansonsten Null.
               Das Ergebnis ist nur definiert, falls isascii( c )
               ungleich Null oder c gleich EOF ist.

Gruppe         EZeichen-Klassifizierungs-RoutinenF

Querverweis    EtolowerF   EtoupperFName           integer to ascii konvertiert einen Integer in einen
               String.

Definition     char  *itoa( int value, char *string, int radix );

Prototyp in    stdlib.h

Beschreibung   itoa konvertiert den Integer value in einen
               nullterminierten String und speichert das Ergebnis
               in der durch String bezeichneten Variablen.
               Der Parameter radix legt die Basis fest auf der die
               konvertierung stattfinden soll - mgliche Werte
               liegen im Bereich von 2 bis 36.
               itoa erzeugt maximal 16 Zeichen.

Ergebnis       itoa liefert einen Zeiger auf den gesetzten string
               zurck.

Gruppe         EUmwandlungsroutinenF

Querverweis    EltoaF   EultoaFName           keyboard hit - prft, ob eine Taste gedrckt wurde.

Definition     int  kbhit( void );

Prototyp in    ext.h

Beschreibung   kbhit prft, ob ein Zeichen ber die Tastatur
               eingegeben wurde.

Ergebnis       Wenn eine noch nicht gelesene Eingabe vorliegt,
               liefert kbhit einen Wert ungleich Null, das Zeichen
               kann via EgetchF gelesen werden. Liegt kein Zeichen
               an, dann liefert kbhit den Wert 0.

Gruppe         EI/O-RoutinenF   EPure-C-SpezialfunktionenF

Querverweis    EgetcFName           long absolute - liefert den absoluten Wert eines
               long.

Definition     long  labs( long n );

Prototyp in    stdlib.h

Beschreibung   labs liefert den absoluten Wert des ElongF-Arguments
               n zurck.
               Es handelt es sich um einen echten Funktionsaufruf.

Ergebnis       labs liefert den Absolutwert des long-Arguments n.
               Fehlerbedingungen sind nicht definiert.

Gruppe         EMathematische RoutinenF

Querverweis:   EabsF   EfabsFName           log double exp - berechnet value * 2exp.

Definition     double  ldexp( double value, int exp );

Prototyp in    math.h

Beschreibung   ldexp liefert das Ergebnis der Berechnung value = 2 ^
               exponent zurck, ist  also das Gegenstck zu EfrexpF.
               Die Behandlung von Fehlern kann ber die Routine
               EsetmatherrF modifiziert werden.

Gruppe         EMathematische RoutinenF

Querverweis    EexpFName           long division - berechnet den Rest und den Quotient
               von zwei long-Zahlen.

Definition     Eldiv_tF  ldiv( long n, long d );

Prototyp in    stdlib.h

Beschreibung   Die Funktion ldiv berechnet gleichzeitig Quotienten und
               Rest einer Division von zwei long-Zahlen.

Ergebnis       Das Ergebnis wird in der Struktur Eldiv_tF abgelegt.

Gruppe         EMathematische RoutinenFName           local time - konvertiert Datum/Uhrzeit in eine
                Struktur des Typs EtmF.

Definition     struct tm  *localtime( time_t *clock );

Prototyp in    time.h

Beschreibung   localtime konvertiert direkt in die international
               gltige Greenwich Mean Time (GMT), und
               bercksichtigt Zeitzonen und die Sommerzeit.
               Die globale long-Variable timezone enthlt den
               Unterschied zwischen der lokalen Zeit und der GMT in
               Sekunden. Die globale Variable daylight darf nur dann
               auf einen Wert ungleich Null gesetzt werden, wenn die
               Standardwerte der USA fr Sommer- und Winterzeit
               angewendet werden knnen. Die Funktion arbeitet mit
               einer Tabelle, die die Zeitkorrekturen der Jahre 1974
               und 1975 enthlt - falls ntig, kann diese Tabelle
               entsprechend vergrert werden. Der Strukturtyp EtmF
               ist in time.h definiert.

Ergebnis       localtime liefert einen Zeiger auf eine statische
               Struktur, die durch jeden Aufruf dieser Funktion
               erneut gesetzt wird.

Gruppe         EDatum und UhrzeitF

Querverweis    EgetdateF   EtimeF   Etime_tF   EgmtimeFName           logarithm - berechnet den natrlichen Logarithmus des
               Arguments.

Definition     double  log( double x );

Prototyp in    math.h

Beschreibung   log liefert den natrlichen Logarithmis n des
               Argumentes x zurck, erfllt also die Gleichung
               x = e ^ n und ist die Umkehrfunktion von EexpF.

Ergebnis       Bei einem berlauf liefert log HUGE_VAL und setzt
               EerrnoF auf den Wert ERANGE. Wenn x kleiner Null
               ist wird errno auf EDOM gesetzt. Fr x gleich Null
               erhlt man als Resultat minus HUGEVAL und errno
               wird ERANGE zugewiesen.
               Die Behandlung von Fehlern kann ber die Routine
               EsetmatherrF modifiziert werden.

Gruppe         EMathematische RoutinenF   EGleitkomma-BefehleF

Querverweis    EexpF   Elog10FName           logarithm 10 - berechnet den Logarithmus des
               Arguments zur Basis 10.

Definition     double  log10( double x );

Prototyp in    math.h

Beschreibung   log10 berechnet den Logarithmus n des Argumentes x
               zur Basis 10, erfllt also die Gleichung x = 10 ^ n.

Ergebnis       Bei einem berlauf liefert log HUGE_VAL und setzt
               EerrnoF auf den Wert ERANGE. Wenn x kleiner Null
               ist wird errno auf EDOM gesetzt. Fr x gleich Null
               erhlt man als Resultat minus HUGEVAL und errno
               wird ERANGE zugewiesen.
               Die Behandlung von Fehlern kann ber die Routine
               EsetmatherrF modifiziert werden.

Gruppe         EMathematische RoutinenF

Querverweis    ElogF   EexpFName           long jump - fhrt ein nicht-lokales goto aus.

Definition     void  longjmp( jmp_buf env, int value );

Prototyp in    setjmp.h

Beschreibung   Ein Aufruf von longjmp stellt den Zustand wieder her,
               der durch EsetjmpF gespeichert wurde.
               - der Prozessor setzt die Arbeit an der Stelle fort,
               an der sich der Aufruf von EsetjmpF befindet.
               Um mit longjmp zu einem Punkt x zu springen, mssen
               die folgenden Schritte ausgefhrt werden:

                Deklaration einer globalen Variablen vom Typ jmp_buf,
                 die durch setjmp mit den entsprechenden Register-
                 Inhalten geladen wird.
                Ausfhrung von setjmp am Punkt x - also an dem Punkt,
                 zu dem hinterher gesprungen werden soll.

Ergebnis       Der Aufruf von EsetjmpF via longjmp setzt das
               Funktionsergebnis von setjmp auf den Wert von value -
               wenn fr value 0 angegeben ist, dann verwendet Pure C
               automatisch den Wert 1.

Gruppe         ESprngeF

Querverweis    EsetjmpFName           long seek - setzt die momentane Position innerhalb
               einer Datei.

Definition     size_t  lseek( int handle, size_t offset, int whence );

Prototyp in    stdio.h

Beschreibung   lseek entspricht exakt der Funktion fseek - nur da
               hier nicht mit einem Stream, sondern mit einem Handle
               gearbeitet wird. Der Parameter offset gibt jeweils
               die zu setzende Entfernung in Bytes an, die Art der
               Positionierung wird ber drei in stdio.h definierte
               Konstanten fr whence festgelegt:
                    SEEK_SET  0    - relativ zum Dateianfang.
                                     Wenn offset den Wert 0 hat,
                                     wird die Position auf das
                                     erste Byte des Dateiinhalts
                                     gesetzt.
                    SEEK_CUR  1    - relativ zur vorherigen Position.
                                     Negative Werte von offset
                                     verschieben in Richtung
                                     Dateianfang.
                    SEEK_END  2    - relativ zum Dateiende. Wenn
                                     offset den Wert 0 hat, wird
                                     die Position auf das Dateiende
                                     gesetzt.
Portabilitt   lseek ist auf allen UNIX-Systemen verfgbar.

Ergebnis       lseek liefert bei fehlerfreier Ausfhrung die neue
               Position innerhalb der Datei gemessen in Bytes.
               Bei Anwendung auf Gertedateien (wie Terminals,
               Schnittstellen usw.) ist das Funktionsergebnis
               undefiniert. Im Falle eines Fehlers wird der Wert -1
               zurckgeliefert, EerrnoF bekommt einen der folgenden
               Werte:
                       EBADF    EINVAL

Gruppe         EI/O-RoutinenF

Querverweis    EfopenF   EfseekF   EgetcF   EsetbufF   EungetcFName           long to ascii konvertiert einen long in einen
               String.

Definition     char  *ltoa( long value, char *string, int radix );

Prototyp in    stdlib.h

Beschreibung   ltoa konvertiert den long value in einen
               nullterminierten String und speichert das Ergebnis
               in der durch String bezeichneten Variablen.
               Der Parameter radix legt die Basis fest auf der die
               konvertierung stattfinden soll - mgliche Werte
               liegen im Bereich von 2 bis 36.
               ltoa erzeugt maximal 32 Zeichen.

Ergebnis       ltoa liefert einen Zeiger auf den gesetzten string
               zurck.

Gruppe         EUmwandlungsroutinenF

Querverweis    EitoaF   EultoaFName           memory allocation - Reservierung von Speicherplatz

Definition     void  *malloc( size_t size );

Prototyp in    stdlib.h

Beschreibung   ber diese Funktion wird der Heap verwaltet.
               malloc belegt einen Speicherbereich von size Bytes auf
               dem Heap und liefert einen Zeiger zurck, der auf die
               Startadresse des neu belegten Bereichs zeigt. Eine
               Initialisierung der durch malloc belegten Speicher-
               zellen findet nicht statt.

Ergebnis       malloc liefert einen typenlosen Zeiger, der explizit
               auf den verwendeten Zeigertyp konvertiert werden sollte.
               Wenn kein Speicherbereich ausreichender Gre zur
               Verfgung steht, dann ist das Funktionsergebnis ENULLF,
               es findet keine Belegung statt.

Gruppe         EDynamische Verwaltung des SpeichersF

Querverweis    EsetbufF   EcallocF   EreallocF   EfreeF   Esize_tF
               EMallocFName           set math error - setzt eine Routine zur Behandlung
               von Fliekommafehlern.

Definition     void  setmatherr( int (*errorfunc)(struct exception *e ));

Prototyp in    math.h

Beschreibung   setmatherr setzt eine vom Programmierer frei
               definierbare Routine, die bei Auftreten eines
               Fliekommafehlers angsprungen werden soll. Diese
               Routine knnte beispielsweise die exception struktur,
               die bei solch einem Fehler angelegt wird, auswerten.

Ergebnis       Die Funktion liefert kein Ergebnis.

Gruppe         EVerschiedene RoutinenF

Querverweis    EexceptionF   EerrnoFName           offset of - ermittelt den Offset eines Strukturele-
               ments.

Definition     size_t  offsetof( type, identifier );

Prototyp in    stddef.h

Beschreibung   offsetof ermittelt den Abstand eines Strukturelements
               vom Strukturanfang.

Ergebnis       Die Funktion liefert den Abstand in Bytes. Falls es
               sich bei identifier um ein Bitfeld handelt, ist das
               Ergebnis undefiniert.

Gruppe         EVerschiedene RoutinenFName           memory character - Sucht den Speicher nach einem
               Zeichen ab.

Definition     void  *memchr( const void *s, int val, size_t len );

Prototyp in    string.h

Beschreibung   memchr sucht die ersten len Bytes des Arrays s nach dem
               Wert val ab.

Ergebnis       memchr liefert die Adresse der ersten Fundstelle von c
               im Array s zurck - oder ENULLF, wenn c innerhalb der
               ersten len Bytes von s nicht vorkommt.

Gruppe         EString- und SpeichermanipulationF

Querverweis    Esize_tFName           memory compare - Speicher vergleichen.

Definition     int  memcmp( const void *s1, const void *s2, size_t len );

Prototyp in    string.h

Beschreibung   memcmp vergleicht die ersten len Bytes der Arrays s1
               und s2 miteinander. memcmp behandelt die Bytes als
               unsigned char (der Wert 0xFF ist also grer als
               0x7F).

Ergebnis       memcmp bricht den Vergleich beim ersten nicht
               bereinstimmenden Zeichen ab.
               Das Vergleichsergebnis wird als int zurckgeliefert:
                <0  wenn s1 kleiner als s2 ist
                0 wenn die ersten n Zeichen von s1 und s2 gleich sind
                >0  wenn s1 grer als s2 ist

Gruppe         EString- und SpeichermanipulationF

Querverweis    Esize_tFName           memory move - Speicherbereiche kopieren

Definition     void  *memmove( void *dest, const void *src, size_t len );

Prototyp in    string.h

Beschreibung   memmove kopiert len Bytes von src nach dest und
               bercksichtigt mgliche berlappungen von Quell-
               und Zielgebiet automatisch.
               memmove ist identisch mit EmemcpyF.

Ergebnis       memmove liefert den bergebenen Parameter dest als
               Ergebnis zurck, d.h. einen Zeiger auf das Ziel-Array.

Gruppe         EString- und SpeichermanipulationF

Querverweis    Esize_tFName           memory set - Speicherinhalt setzen

Definition     void  *memset( void *s, int val, size_t len );

Prototyp in    string.h

Beschreibung   memset setzt die ersten len Bytes des Arrays s auf den
               Wert von val.

Ergebnis       memset liefert den bergebenen Parameter s als Ergebnis
               zurck (d.h. ebenfalls einen Zeiger auf das Ziel-Array).

Gruppe         EString- und SpeichermanipulationF

Querverweis    Esize_tFName           memory copy - kopiert einen Speicherbereich

Definition     void  *memcpy( void *dest, const void *src, size_t len );

Prototyp in    string.h

Beschreibung   memcpy kopiert len Bytes von src nach dest und
               bercksichtigt mgliche berlappungen von Quell-
               und Zielgebiet automatisch.

Ergebnis       memcpy liefert den bergebenen Parameter dest als
               Ergebnis zurck, d.h. einen Zeiger auf das Ziel-Array.

Gruppe         EString- und SpeichermanipulationF

Querverweis    Esize_tFName           make time - Datum konvertieren.

Definition     time_t  mktime( struct tm *timeptr );

Prototyp in    time.h

Beschreibung   Die Funktion mktime konvertiert eine Uhrzeit/Datum
               Angabe von der Stuktur EtmF in das Format von Etime_tF.

Ergebnis       Die Funktion liefert Datum/Uhrzeit als Datentyp Etime_tF.

Gruppe         EDatum und UhrzeitF

Querverweis    EctimeFName           modulo float - teilt eine Fliekommazahl in Mantisse
               und Exponenten auf.

Definition     double  modf( double value, double *ipart );

Prototyp in    math.h

Beschreibung   Das Funktionsergebnis ist der Dezimalbruchanteil
               von value, der ganzzahlige Anteil wird in ipart
               gespeichert. Fr einen Wert wie 234.778 wird  also
               0.778 zurckgeliefert, *ipart bekommt den Inhalt
               234.0.

Ergebnis       modf liefert den nicht-ganzzahligen Anteil des
               Arguments value als EdoubleF.

Gruppe         EMathematische RoutinenF   EGleitkomma-BefehleF

Querverweis    EfmodFName           open - erffnet eine Datei fr Lese- und
               Schreibaktionen.

Definition     int  open( char *filename, int access, ... );

Prototyp in    stdio.h

Beschreibung   open erffnet die durch filename angegebene Datei und
               bereitet - je nach den fr access angegebenen Werten
               - folgende Lese- und/oder Schreibaktionen vor. Fr den
               Parameter access sind zwei Arten von Konstanten in
               stdio.h definiert, die ber eine OR-Operation
               miteinander verbunden werden mssen:

               Flags fr Lesen und/oder Schreiben:
O_RDONLY       nur Lesen
O_WRONLY       nur Schreiben
O_RDWR         Lesen und Schreiben

               Flags fr die Art der Erffnung
O_APPEND       neu geschriebene Daten werden grundstzlich angehngt,
               das berschreiben bereits existierender Datenstze ist
               nicht mglich
O_CREAT        wenn die Datei noch nicht existiert, wird sie erzeugt.
               Falls die Datei bereits existiert, hat dieses Flag
               keine Wirkung
O_TRUNC        wenn die Datei bereits existiert, wird ihr vorheriger
               Inhalt gelscht, eventuelle Dateiattribute bleiben
               unverndert
O_EXCL         wird ignoriert
Hinweise:      Fr jeden Aufruf von open mu genau eines der Flags
               O_RDONLY..O_RDWR angegeben sein - die weiteren Flags
               sind nicht obligatorisch und knnen beliebig
               miteinander kombiniert werden. Die optional mit ...
               angegebenen Parameter sind lediglich aus Grnden der
               Kompatibilitt zur IBM-Version von Pure C beibehalten
               worden. Die Parameter werden auf dem Atari ST/TT
               ignoriert.

Ergebnis       Wenn die Datei fehlerfrei erffnet werden konnte,
               liefert open den Handle dieser Datei zurck (einen int
               mit einem Wert grer 0, ber den weitere Operationen
               mit dieser Datei ausgefhrt werden). Die momentane
               Position innerhalb der neu erffneten Datei wird auf
               den Dateianfang gesetzt. Im Falle eines Fehlers liefert
               die Funktion den Wert -1 als Ergebnis und setzt die
               globale Variable EerrnoF auf einen der folgenden Werte:
               ENOENT         EMFILE         EACCES

Gruppe         EI/O-RoutinenF

Querverweis    EcloseF   EcreatF   EferrorF   EfopenF   ElseekF
               EreadF    EwriteFName           print error - gibt eine Systemfehlermeldung via
               stderr aus.

Definition     void  perror( char *s );

Prototyp in    stdio.h

Beschreibung   perror kann nach einem Fehler aufgerufen werden und
               gibt zwei Strings in die Standard-Datei stderr aus
               (der normalerweise der Bildschirm zugeordnet ist):
                den (vom Programmierer definierten) String s;
                danach einen Doppelpunkt, ein Leerzeichen und einen
                 String des Arrays sys_errlist;
                einen Zeilenvorschub.
               Das Array sys_errlist enthlt smtliche Fehlermeldungen
               des Systems in der Reihenfolge aufsteigender
               Fehlernummern - perror verwendet den momentanen Wert
               der globalen Variablen EerrnoF zur Adressierung.
               Der Aufruf von perror sollte direkt nach einem Fehler
               geschehen, weil jede weitere Ein-/Ausgabe-Operation
               EerrnoF erneut setzt (bzw. lscht).
               Normalerweise wird man den Namen des Programms als
               Argument an perror bergeben - zwingend ist das
               allerdings genausowenig wie die Verwendung der durch
               sys_errlist vorgegebenen Texte (diesem Zeiger-Array
               lassen sich auch eigene Meldungen zuweisen).
               Weitere Details zu EerrnoF, sys_errlist und sys_nerr
               (der hchsten Fehlernummer) finden Sie in Kapitel 8.

Ergebnis       perror hat kein direktes Funktionsergebnis.

Gruppe         EI/O-RoutinenF

Querverweis    EfeofF   EferrorFName           power - berechnet die y. Potenz von x, also x^y.

Definition     double  pow( double x, double y );

Prototyp in    math.h

Beschreibung   pow liefert das Ergebnis der Berechnung x^y.

Ergebnis       Falls sich das Argument x kleiner Null ist und y
               keine ganze Zahl, so wird EerrnoF auf EDOM gesetzt.
               Wenn beide Argumente Null sind, erhlt man als
               Resultat 1. Bei einem berlauf liefert pow HUGE_VAL
               und setzt EerrnoF auf den Wert ERANGE.
               Die Behandlung von Fehlern kann ber die Routine
               EsetmatherrF modifiziert werden.

Gruppe         EMathematische RoutinenF   EGleitkomma-BefehleF

Querverweis    EexpF   EsqrtFName           power 10 - berechnet die p. Potenz 10, also 10^y.

Definition     double  pow10( int p );

Prototyp in    math.h

Beschreibung   pow10 liefert das Ergebnis der Berechnung 10^y.

Ergebnis       Bei einem berlauf oder Unterlauf wird EerrnoF auf
               den Wert ERANGE gesetzt.
               Die Behandlung von Fehlern kann ber die Routine
               EsetmatherrF modifiziert werden.

Gruppe         EGleitkomma-BefehleF

Querverweis    EexpF   EsqrtF   EpowFName           print formatted - formatierte Ausgaben.

Definition     int  printf( const char *format, ... );

Prototyp in    stdio.h

Beschreibung   Die printf-Funktion gibt formatierte Ausgaben auf
               dem Bildschirm aus. Sie erwartet dazu mindestens
               einen EFormat-StringF (Parameter format).

Ergebnis       printf liefert die Anzahl der ausgegebenen Zeichen als
               Funktionsergebnis zurck. Im Falle eines Fehlers
               ist das Funktionsergebnis EOF.

Gruppe         EI/O-RoutinenF   EGleitkomma-BefehleF

Querverweis    EfreadF    EputcF       EputsF      EscanfF    Eva_...F
               EprintfF   EvfprintfF   EvprintfF   EsprintfF
               EfprintfFDer Format-String ist in jeder Variante von printf obligatorisch
- ber ihn wird die Art der Konvertierung, die Formatierung und die
Anzahl der Parameter festgelegt. Parameter, die durch den Format-
String nicht erfat (d.h. berzhlig) sind, werden schlicht ignoriert
- wenn printf aufgrund des Format-Strings dagegen mehr Parameter
erwartet als angegeben sind, ergeben sich bestenfalls merkwrdige,
meist aber katastrophale Resultate.
Der Format-String ist ein mit  terminierter String, der zwei Arten
von Informationen enthlt:
  normale Zeichen, die schlicht direkt ausgegeben werden;
  Konvertierungs-Anweisungen, die die Auswertung korrespondierender
   Parameter und ihre Formatierung bestimmen.
Konvertierungs-Anweisungen lassen sich durch das folgende
Syntaxdiagramm darstellen:

% E[Flags]F E[Breite]F E[.Przision]F E[h|l|L]F ETypF

Jede Anweisung beginnt mit einem Prozentzeichen (%).
Querverweis:    EEscapesequenzenF[Flags]      eine (optionale) Zeichenfolge, ber die numerische
             Vorzeichen, Dezimalpunkte, fhrende und folgende Nullen,
             oktale und hexadezimale Prfixe sowie links- und
             rechtsbndige Ausgabe festgelegt werden;

printf erkennt vier verschiedene Zeichen als Flags an: Minus (-), Plus
(+), Doppelkreuz (#) und Leerzeichen( ). Flag-Zeichen knnen in
beliebiger Folge und Kombination erscheinen und haben die folgenden
Wirkungen:
- linksbndige Ausgabe - ntigenfalls werden nach der Ausgabe
  Leerzeichen angefgt. Wenn dieses Flag nicht angegeben ist, arbeitet
  printf rechtsbndig, d.h. stellt Leerzeichen voran.
+ numerische Ausgabe mit Vorzeichen - positiven Werten wird ein
  Pluszeichen vorangestellt. Wenn dieses Flag nicht angegeben ist,
  stellt printf nur bei negativen Werten ein Minuszeichen voran, bei
  positiven Werten berhaupt nichts.
' ' (Leerzeichen) - positive Werte werden mit einem fhrenden
  Leerzeichen ausgegeben. Wenn weder dieses Flag noch ein + angegeben
  ist, dann stellt printf positiven Werten berhaupt nichts voran.
# Konvertierung des Arguments in alternativer Form (siehe folgende
  Tabelle).

Hinweis: Wenn sowohl ein Leerzeichen als auch ein Pluszeichen
angegeben sind, wird das Leerzeichen von printf ignoriert.

Alternative Formen
Die Verwendung des Flags # zusammen mit einer Typ-Angabe hat folgende
Wirkungen:

c,s,d,i,u (keine)
o         solange der korrespondierende Parameter nicht den Wert 0
          hat, wird eine 0 vorangestellt;
x,X       Voranstellen von 0x bzw. 0X;
e,E,f     es wird immer ein Dezimalpunkt ausgegeben (normalerweise ist
          das bei diesen Formaten nur dann der Fall, wenn der Wert
          Stellen nach dem Komma enthlt);
g,G       wie bei e und E - zustzlich werden folgende Nullen nicht
          unterdrckt.


                        EFormat-StringF[Breite]     eine (optionale) Angabe ber die minimal auszugebende
             Zeichenzahl (printf fllt ntigenfalls mit Leerzeichen
             oder Nullen auf);


Breite
Diese Angabe legt die minimale Zahl auszugebender Zeichen fest und
kann in zwei Formen erfolgen: entweder direkt innerhalb des Format-
Strings oder ber ein Sternchen (*). Bei der Verwendung von * erwartet
printf einen zustzlichen Parameter, der in der Liste direkt vor dem
auszugebenden Wert stehen und den Typ int haben mu.
Wenn eine Ausgabe weniger Zeichen erzeugt als durch Breite angegeben
ist, dann fgt printf (abhngig von den Flags) fhrende/folgende
Leerzeichen hinzu - erzeugt die Ausgabe dagegen mehr Zeichen als durch
Breite angegeben, dann wird Breite einfach ignoriert. Anders gesagt:
Ausgaben werden durch Breite in keinem Fall begrenzt oder
abgeschnitten.
n   (Dezimalzahl) - printf gibt mindestens n Zeichen aus und stellt
    ntigenfalls Leerzeichen voran (Standard) bzw. fgt folgende
    Leerzeichen an (Flag-);
0n  (Dezimalzahl mit vorangestellter Null) - printf gibt mindestens
    n Zeichen aus und stellt ntigenfalls eine entsprechende Anzahl
    fhrender Nullen voran;
*   (Sternchen) - die Angabe fr Breite steht in der Parameterliste
    direkt vor dem auszugebenden Wert.


                        EFormat-StringF[.Przision] eine (optionale) Angabe, wieviele Zeichen maximal
             ausgegeben werden sollen (bei Integern: die Minimalzahl
             von Ziffern);

Przision
Diese Angabe wird immer mit einem Dezimalpunkt (.) eingeleitet und so
von einer eventuell vorangestellten Breite getrennt. Wie bei Breite
kann entweder eine direkte Angabe innerhalb des Format-Strings oder
ein Sternchen (*) verwendet werden. Im letzteren Fall erwartet printf
einen zustzlichen Parameter des Typs int, der direkt vor dem
auszugebenden Wert steht.
Wenn sowohl Breite als auch Przision ber ein Sternchen angegeben
werden, dann mu die Parameterliste folgendermaen aussehen:

    ("%<Flags>*.*<Typ>", Breite, Przision, Wert)
                        EFormat-StringFTyp Parameter Ausgabe

    numerische Werte

d   Integer   signed int (dezimal);
i   Integer   signed int (dezimal);
o   Integer   unsigned int (oktal);
u   Integer   unsigned int (dezimal);
x   Integer   unsigned int (hexadezimal), Buchstaben a..f;
X   Integer   unsigned int (hexadezimal), Buchstaben A..F.
              Die Formate x und X unterscheiden sich nur durch die
              Verwendung von Klein- bzw. Grobuchstaben.
f  Fliekomma vorzeichenbehafteter Wert der Form [-]dddd.dddd
              Die Anzahl der Nachkommastellen wird durch Przision
              festgelegt (solange dieser Zusatz angegeben ist).
e  Fliekomma vorzeichenbehafteter Wert der Form [-]d.dddd e [+|-]ddd
              Hier steht grundstzlich eine Ziffer vor dem
              Dezimalpunkt, die Anzahl der Nachkommastellen wird durch
              Przision festgelegt, der Exponent umfat immer drei
              Ziffern (notfalls mit fhrenden Nullen).
g  Fliekomma vorzeichenbehafteter Wert im e- oder f-Format (abhngig
              vom Wert und der Angabe Przision). Folgende Nullen, ein
              Dezimalpunkt und ein Vorzeichen werden nur ausgegeben,
              wenn es notwendig ist. Das e-Format wird nur dann
              verwendet, wenn das Resultat einer f-Konvertierung mehr
              als Przision Stellen ergibt oder mehr als vier fhrende
              Nullen erfordert.
E  Fliekomma dasselbe Format wie e, aber mit dem Zeichen E vor dem
              Exponenten;
G  Fliekomma dasselbe Format wie g, aber mit dem Zeichen E vor dem
              Exponenten, wenn dieses Format verwendet wird.

    Zeichen

c  Zeichen    einzelnes Zeichen;
s  String     Ausgabe bis zu einem Nullzeichen oder dem Erreichen der
              durch Przision vorgegebenen Zeichenzahl;
%  (nichts)   Ausgabe des Zeichens %;

    Zeiger

n  *int       speichert in dem korrespondierenden Parameter die Anzahl
              der bis jetzt ausgegebenen Zeichen;
p  Zeiger     gibt den korrespondierenden Parameter als Zeiger in
              hexadezimaler Form aus.

                         EFormat-StringFh | l | L - explizite Grenangaben
Die Grenangaben h und l sind nur auf numerische Argumente anwendbar
fr die Formate c, s, p und n haben sie keine Wirkung.

h  das Argument wird als short interpretiert (Formate d, i, o, u, x
   und X);
l  das Argument wird als long (Formate d, i, o, u, x und X) bzw. als
   EdoubleF interpretiert (Formate e, E, f, g und G).
L  das Argument wird als long double interpretiert.

Diese Angabe ist nur notwendig wenn die Gre der Parameter von der
Standardgre abweicht.

                       EFormat-StringFName           put character - Ausgabe eines Zeichens in Datei

Definition     int  putc( int c, FILE *fp );

Prototyp in    stdio.h

Beschreibung   putc ist ein Makro, der das Zeichen c zu dem durch fp
               angegebenen stream ausgibt.

Ergebnis       putc liefert das bergebene Zeichen c auch als
               Funktionsergebnis zurck. Im Falle eines Fehlers
               liefert putc den Wert EOF.

Gruppe         EI/O-RoutinenF

Querverweis    EfputcF   EputcharF   EferrorF   EfopenF    EfreadF
               EgetcF    EprintfF    EputsF     EsetbufF   EEscapesequenzenFName           put character - Ausgabe eines Zeichens auf dem
               Bildschirm

Definition     int  putch( int c );

Prototyp in    ext.h

Beschreibung   putch gibt ein Zeichen auf das Gert console
               (d.h. den Bildschirm) aus.

Ergebnis       putch liefert das als c bergebene Zeichen zurck.
               Im Fehlerfall erhlt man EOF.

Gruppe         EPure-C-SpezialfunktionenF

Querverweis    EferrorF   EfopenF    EfreadF   EgetcF    EprintfF
               EputsF     EsetbufF   EputcF    EfputcF   EputcFName           put character - Ausgabe eines Zeichens auf das
               Standardausgabegert stdout

Definition     int  putchar( int c );

Prototyp in    stdio.h

Beschreibung   putchar ist ein Makro und als EputcF(c, stdout)
               definiert, gibt also ein Zeichen via stdout aus.

Ergebnis       putchar liefert das bergebene Zeichen c auch als
               Funktionsergebnis zurck. Im Falle eines Fehlers
               liefert putchar den Wert EOF.

Gruppe         EI/O-RoutinenF

Querverweis    EferrorF   EfopenF    EfreadF   EgetcF  EprintfF
               EputsF     EsetbufF   EputcF    EfputcFName           put string - Ausgabe einer Zeichenfolge.

Definition     int  puts( const char *s );

Prototyp in    stdio.h

Beschreibung   puts schreibt den nullterminierten String s
               zeichenweise zu stdout und beendet die Ausgabe mit
               einem (automatischen erzeugten) Zeilenvorschub.

Ergebnis       Bei fehlerfreier Ausfhrung liefert einen nicht-
               negativen Wert. Im Falle eines Fehlers liefert
               puts den Wert EOF.

Gruppe         EI/O-RoutinenF

Querverweis    EferrorF   EfopenF   EfreadF   EgetsF   EopenF
               EprintfF   EputcF    EEscapesequenzenFName           quicksort - sortiert die Elemente eines Arrays in
               aufsteigender Reihenfolge.

Definition     void  qsort( void *base, size_t nmemb, size_t size,
                             int (*compar)( ));

Prototyp in    stdlib.h

Beschreibung   qsort ist eine Implementation des quicksort-
               Algorithmus zum Sortieren der Elemente eines Arrays.
               Die Elemente knnen (wie bei bsearch) aus beliebigen
               Datenkonstrukten bestehen, weil die Funktion nur die
               Abfolge der Vergleiche festlegt. qsort erwartet die
               folgenden Parameter:
                  base   - einen Zeiger auf das Element 0 des zu
                            sortierenden Arrays;
                  nmemb  - die Anzahl der zu sortierenden Elemente;
                  size   - die Gre eines einzelnen Elements
                            (in Byte);
                  compar - einen Zeiger auf die Vergleichsfunktion.
               Die Vergleichsfunktion mu vom Programmierer folgender-
               maen definiert werden:

                  int <Name> (e_typ *elem1, e_typ *elem2);

               Sie bekommt bei jedem Aufruf durch qsort zwei Zeiger
               auf jeweils ein Element des zu sortierenden Arrays
               bergeben, mu die entsprechenden Elemente miteinander
               vergleichen und folgende Ergebnisse zurckliefern:

                 *elem1 <  *elem2   Wert < 0
                 *elem1 == *elem2   Wert 0
                 *elem1 >  *elem2   Wert > 0

               Theoretisch ist es mglich, diese Definition
               umzudrehen (d.h. fr *elem1 < *elem2 einen Wert
               grer 0 und fr *elem1 > *elem2 einen Wert kleiner
               Null zurckzuliefern) - in diesem Fall wrde qsort
               die Array-Elemente in absteigender Reihenfolge
               sortieren.

Ergebnis       qsort hat kein direktes Funktionsergebnis.

Gruppe         EVerschiedene RoutinenF

Querverweis    EbsearchF   Esize_tFName           random - liefert eine Zufallszahl zurck.

Definition     int  rand( void );

Prototyp in    stdlib.h

Beschreibung   rand verwendet ein multiplikatives Kongruenzverfahren
               (Multiplikation mit anschlieender Modulo-Operation),
               um Zufallszahlen im Bereich von 0..2^15-1 zu
               erzeugen. Die Periodendauer des Generators betrgt
               2^32.
               Der Zufallszahlen-Generator wird beim Start des
               Programms mit dem Wert 1 initialisiert - ber einen
               Aufruf von EsrandF kann jederzeit ein neuer (und
               beliebiger) Startwert gesetzt werden. Folgen von
               Zufallszahlen sind von einem gegebenen Startwert aus
               beliebig oft reproduzierbar.

Ergebnis       rand liefert einen int im Bereich von 0..32767 zurck.

Gruppe         EVerschiedene RoutinenF

Querverweis    EsrandF   ErandomFName           read - liest Daten von einer Datei

Definition     size_t  read( int handle, void *buf, size_t len );

Prototyp in    stdio.h

Beschreibung   Die Funktion read liest len Bytes aus der durch handle
               bezeichneten Datei in den durch buf angegebenen
               Speicherbereich. handle ist eine Referenznummer und
               wird der Datei via creat oder open zugeordnet.
               Bei Diskettendateien beginnt der Lesevorgang ab der
               momentanen Position innerhalb der Datei, die mit ElseekF
               gesetzt werden kann und whrend des Lesevorgangs um die
               Anzahl der gelesenen Bytes erhht wird.
               Bei Gertedateien ist eine Position nicht definiert -
               hier liest read direkt vom entsprechenden Gert.

Ergebnis       Bei fehlerfreier Ausfhrung liefert die Funktion die
               Anzahl der gelesenen Bytes als (positiven) Wert vom
               Type size_t zurck. Wenn das Dateiende erreicht bzw.
               berschritten wurde, liefert die Funktion den Wert 0.
               Im Falle eines Fehlers hat read das Ergebnis -1,
               EerrnoF wird auf einen der folgenden Werte gesetzt:
                               EACCES  EBADF

Gruppe         EI/O-RoutinenF

Querverweis    EcreatF   EfreadF   EgetcF   EopenF   EwriteF
               Esize_tFName           re-alloc - ndert die Gre eines dynamisch
               reservierten Speicherplatzes

Definition     void  *realloc( void *block, size_t newsize );

Prototyp in    stdlib.h

Beschreibung   realloc ndert die Gre eines durch EmallocF oder
               EcallocF reservierten Speicherbereichs. Der vernderte
               Bereich wird nicht neu initialisiert.

Ergebnis       Als Ergebnis erhlt man einen typenlosen Zeiger auf
               die Adresse des angepaten Speicherbereichs, der
               explizit auf den verwendeten Zeigertyp konvertiert
               werden sollte. Wenn kein Speicherbereich ausreichender
               Gre zur Verfgung steht, dann ist das
               Funktionsergebnis ENULLF, es findet keine Belegung statt.

Gruppe         EDynamische Verwaltung des SpeichersF

Querverweis    EsetbufF   EmallocF   EcallocF   Esize_tFName           remove - lscht eine Datei

Definition     int  remove( const char *filename );

Prototyp in    stdio.h

Beschreibung   remove lscht die durch filename angegebene Datei,
               wobei filename einen vollstndigen Suchweg und/oder
               einen Laufwerksbezeichner enthalten kann - die
               Jokerzeichen * und ? sind dagegen nicht erlaubt.
               Schreibgeschtzte Dateien und Directories knnen mit
               remove nicht gelscht werden.

Ergebnis       Bei fehlerfreier Ausfhrung liefert remove den
               Wert 0 zurck. Im Falle eines Fehlers ist das
               Funktionsergebnis -1 und EerrnoF bekommt einen der
               folgenden Werte:
                                ENOENT  EACCES

Gruppe         EI/O-RoutinenF

Querverweis    EcreatFName           rename - ndert den Namen einer Datei

Definition     int  rename( const char *oldname, const char *newname );

Prototyp in    stdio.h

Beschreibung   rename gibt der durch oldname bezeichneten Datei
               den neuen Namen newname. Beide Namen knnen
               vollstndige Suchwege und/oder Laufwerksbezeichner
               enthalten. Die Angabe von Jokerzeichen (* und ?)
               ist nicht erlaubt - dafr ist es mit rename aber
               mglich, Dateien von einem Directory in ein anderes
               zu bewegen, sofern sich Quelle und Ziel auf demselben
               Laufwerk befinden.

Ergebnis       Bei fehlerfreier Ausfhrung liefert rename den Wert 0
               zurck, ansonsten ist das Funktionsergebnis -1 und
               EerrnoF bekommt einen der folgenden Werte:
                           ENOENT     EACCES     ENOTSAM

Gruppe         EI/O-RoutinenFName           rewind - setzt die momentane Position innerhalb einer
               Datei auf den Dateianfang

Definition     void  rewind( FILE *fp );

Prototyp in    stdio.h

Beschreibung   rewind ist quivalent zu EfseekF mit SEEK_SET und
               einem offset von 0 - die momentane Position wird
               auf das erste Byte des Dateiinhalts gesetzt. Der
               einzige Unterschied besteht darin, da rewind nicht
               nur das Dateiende-Flag lscht, sondern auch eventuell
               gesetzte Fehler-Flags. In Dateien, die fr Lese- und
               Schreiboperationen erffnet worden sind, kann nach
               rewind zwischen Lesen und Schreiben gewechselt
               werden. Mit EungetcF zurckgestellte Zeichen sind nach
               rewind nicht mehr erreichbar.

Ergebnis       rewind hat kein direktes Funktionsergebnis.

Gruppe         EI/O-RoutinenF

Querverweis    EfopenF   EgetcF   ElseekF   EsetbufF   EungetcF
               EfseekFName           scan formatted - formatierte Eingabe

Definition     int  scanf( const char *format, ... );

Prototyp in    stdio.h

Beschreibung   scanf liest Eingaben in formatierter Form und erwartet
               zumindest einen EFormat-StringF (Parameter format),
               ber den die Anzahl der Eingaben und ihr Format
               festgelegt wird. Gelesene Eingaben werden in den
               Variablen der Parameterliste gespeichert

Ergebnis       scanf liefert die Anzahl der fehlerfrei gelesenen
               Felder als Funktionsergebnis zurck, wobei mit *
               unterdrckte Felder nicht gezhlt werden.
               Wenn berhaupt keine Zuweisungen erfolgt sind, hat
               das Ergebnis den Wert 0.
               Der Versuch, ber das Ende einer Datei bzw. ber das
               Ende eines Strings hinaus zulesen (EsscanfF), ergibt
               den Wert EOF als Funktionsergebnis.

Querverweis    EfscanfF   EsscanfF   EvscanfF

Gruppe         EI/O-RoutinenF   EGleitkomma-BefehleFName           scan formatted - formatierte Eingabe

Definition     #include <stdarg.h>
               int  vscanf( const char *format, Eva_listF param );

Prototyp in    stdio.h

Beschreibung   Die v...scanf-Funktionen verhalten sich hnlich wie
               ihre ...scanf-Gegenstcke, sie akzeptieren jedoch
               einen Pointer auf eine Liste von Argumenten anstelle
               der Liste selber.
               vscanf liest Eingaben in formatierter Form und erwartet
               zumindest einen EFormat-StringF (Parameter format),
               ber den die Anzahl der Eingaben und ihr Format
               festgelegt wird. Gelesene Eingaben werden in den
               Variablen der Parameterliste gespeichert

Ergebnis       vscanf liefert die Anzahl der fehlerfrei gelesenen
               Felder als Funktionsergebnis zurck, wobei mit *
               unterdrckte Felder nicht gezhlt werden.
               Wenn berhaupt keine Zuweisungen erfolgt sind, hat das
               Ergebnis den Wert 0.
               Der Versuch, ber das Ende einer Datei bzw. ber das
               Ende eines Strings hinaus zulesen (EvsscanfF), ergibt
               den Wert EOF als Funktionsergebnis.

Portabilitt   vsscanf ist auf UNIX-Systemen verfgbar.

Querverweis    EfscanfF   EsscanfF   EscanfF

Gruppe         EI/O-RoutinenF   EGleitkomma-BefehleFDer Format-String ist ein nullterminierter String, in dem fr jede
einzulesende Variable eine Formatierungsanweisung vorhanden sein mu.

Formatierungsanweisungen lassen sich durch das folgende
Syntaxdiagramm darstellen:

 % E[*]F E[Breite]F E[h|l|L]F ETypF

Jede Anweisung beginnt mit einem Prozentzeichen (%).[*]      unterdrckt eine Zuweisung ber den korrespondierenden
         Adress-Parameter;
Wenn der Operator * direkt auf das % einer Format-Anweisung folgt,
dann wertet scanf die restlichen Elemente dieser Anweisung aus und
analysiert die Eingabe, nimmt aber keine Zuweisung ber den
korrespondierenden Adress-Parameter vor.
(Hier wird zwar dasselbe Zeichen wie fr die Indirektion verwendet -
ansonsten haben diese beiden Dinge aber nicht das geringste
miteinander zu tun).
Die Unterdrckung von Zuweisungen bei scanf ist mit gewisser Vorsicht
zu genieen - eine direkte Mglichkeit zur Prfung, ob die richtigen
Teile einer Eingabe dadurch bersprungen wurden, gibt es nicht.

                          EFormat-StringF[Breite] eine (optionale) Angabe ber die maximal zu lesende
         Zeichenzahl. (Wenn vor Erreichen dieser Zeichenzahl ein
         weies Leerzeichen oder ein anderes nicht auswertbares
         Zeichen gelesen wird, beendet EscanfF die Eingabe dieses
         Wertes von selbst;
         Auswirkungen hat eine derartige Angabe nur dann, wenn das
         entsprechende Feld nicht aufgrund einer anderen Bedingung
         als beendet betrachtet wird (z.B. durch ein weies
         Leerzeichen oder ein nicht auswertbares Zeichen wie 8
         oder 9 bei der Eingabe einer Oktalzahl).

                            EFormat-stringF[h|l|L]  eine (optionale) Angabe ber die Gre der Variablen, auf die
         der korrespondierende Adress-Parameter zeigt (h = EshortF EintF,
         l = ElongF oder EdoubleF, L = ElongF EdoubleF);
         Die Grenangaben h und l sind nur fr Eingaben von Integern
         und Fliekommawerten anwendbar - auf alle anderen Formate
         haben sie keine Wirkung.
h        fr die Formate d, i, o, u, und x: Konvertierung der Eingabe
         in das Format EshortF EintF. Fr alle anderen Formate ohne Wirkung.
         In Pure C das gleiche wie EintF.
l        fr die Formate d, i, o, u, und x: Konvertierung der Eingabe
         in das Format ElongF;
         fr die Formate e und f: Konvertierung der Eingabe in das
         Format EdoubleF. Fr alle anderen Formate ohne Wirkung.
L        fr die Formate e und f: Konvertierung der Eingabe in das
         Format ElongF EdoubleF. Fr alle anderen Formate ohne Wirkung.

                           EFormat-StringFDie Angabe des Typs ist obligatorisch.

Typ Eingabe       Adress-Parameter

    numerische Werte

d   dez. Integer  Zeiger auf int (int *arg)
o   okt. Integer  Zeiger auf int (int *arg)
i   dez. Integer  Zeiger auf int als Konstante (int *arg)
u   dez. Integer  Zeiger auf unsigned int (unsigned *arg)
x   hex. Integer  Zeiger auf unsigned int (unsigned *arg)
e   Fliekomma    Zeiger auf float im Exponentialformat (float *arg)
f   Fliekomma    Zeiger auf float (float *arg)
g   Fliekomma    Zeiger auf float (float *arg).

   Zeichen

c   Zeichen       Zeiger auf ein einzelnes Zeichen (char *arg).
                  Wenn hier eine Breite angegeben ist (z.B. %5c):
                  Zeiger auf ein char-Array entsprechender Gre
                  (char arg[Breite]);
s   String        Zeiger auf einen String (char arg[]);
                  oder %E[Suchzeichen]F
%   Zeichen %     keine Konvertierung, sondern Speicherung des
                  Zeichens %;

    Zeiger

n   (nichts)      Zeiger auf int (int *arg) - speichert die Anzahl bis
                  jetzt gelesener Zeichen an der Adresse, auf die der
                  Zeiger zeigt;
p   XXXXXXXX      Zeiger auf ein beliebiges Objekt - die Eingabe wird
                  in hexadezimaler Form interpretiert.

                            EFormat-StringF%[Suchzeichen]

%[abcd]  erlaubt nur Eingaben, die aus den Zeichen a, b, c und d
         bestehen - EscanfF betrachtet das Eingabefeld bei jedem
         anderen Zeichen als beendet;
%[^abcd] erlaubt Eingaben, die nicht eines der Zeichen a, b , c
         oder d enthalten. Das Eingabefeld wird durch weie
         Leerzeichen nicht beendet, sondern nur durch die
         angegebenen Zeichen (oder das Erreichen der mit Breite
         festgelegten Zeichenzahl).

Mehrere Bereiche werden ohne spezielle Trennzeichen direkt
aufeinanderfolgend angegeben. Einige Beispiele dazu:
%[A-Z]              smtliche Grobuchstaben
%[A-Za-z]           smtliche Gro- und Kleinbuchstaben
%[A-Za-z]    smtliche Buchstaben inklusive der Umlaute
                    und des 
%[-+*/]             die vier arithmetischen Operatoren
%[z-a]              die Zeichen z, - und a
%[+0-9-A-F]         das Zeichen +, die Ziffern von 0 bis 9, das
                    Zeichen - und die Buchstaben von A bis F
%[+0-9A-F-]         genau dieselben Zeichen wie im vorigen Beispiel
%[^-0-9+A-F]        smtliche Zeichen auer -, den Ziffern 0 bis 9,
                    dem Zeichen + und den Buchstaben A bis F.

                          EFormat-StringFName           set buffer - Explizite Zuordnung eines Puffers zu
               einem stream.

Definition     void  setbuf( FILE *fp, void *buf );

Prototyp in    stdio.h

Beschreibung   setbuf ordnet der durch fp angegebenen Datei
               den Puffer buf anstelle des automatisch vergebenen
               Puffers zu. Die Minimalgre von buf ist durch die
               (in stdio.h definierte) Konstante BUFSIZ festgelegt.
               Durch die Angabe des Zeigerwertes ENULLF anstelle von
               buf arbeiten  folgende Ein-/Ausgaben ber den stream
               ungepuffert, d.h. Ausgaben geschehen sofort, Eingaben
               lesen direkt vom entsprechenden Gert.

               (Die Pufferung von Ein- und Ausgaben bedeutet:
               Ausgaben werden zeichenweise zwischengespeichert
               und blockweise geschrieben; Eingaben werden blockweise
               von der Datei bzw. dem Gert gelesen und danach
               zeichenweise aus dem Puffer geliefert.)

               stdin und stdout arbeiten ungepuffert, solange sie
               nicht umgeleitet sind - Umleitungen bewirken dagegen
               normalerweise eine Pufferung, die via setbuf ver-
               ndert werden kann.

               setbuf darf nur direkt nach der Erffnung (oder
               direkt nach einem fseek) auf einen stream angewendet
               werden - ansonsten sind die Ergebnisse unvorhersag-
               bar. Die Anwendung dieser Funktion auf ungepufferte
               Dateien (bzw. auf Dateien, deren Puffer direkt nach
               der Erffnung oder einem fseek entfernt wurde) ist
               dagegen problemlos und jederzeit mglich.

               Hinweis: Fr buf kann eine lokale Variable verwendet
               werden - allerdings sollte man in diesem Fall streng
               darauf achten, die Datei vor dem Ende der entsprechen-
               den Funktion wieder zu schlieen.

Ergebnis       setbuf hat kein direktes Funktionsergebnis.

Gruppe         EI/O-RoutinenF

Querverweis    EsetvbufF   EfopenF   EfcloseF   EfseekF   EmallocF
               EopenFName           set date - Setzt das aktuelle Tagesdatum.

Definition     void  setdate( struct date *dateRec );

Prototyp in    ext.h

Beschreibung   Die Funktion setdate setzt das aktuelle Tagesdatum. Das
               Datum wird in der Struktur EdateF bergeben.

Ergebnis       Die Funktion liefert kein Ergebnis.

Gruppe         EDatum und UhrzeitF   EPure-C-SpezialfunktionenF

Querverweis    EtimeF, EctimeF, EgetdateFName           set disk - Setzt das aktuelle Laufwerk

Definition     int  setdisk( int drive );

Prototyp in    ext.h

Beschreibung   Die Funktion setdisk wechselt das aktuelle Laufwerk.
               Fr das Laufwerk A: ist eine 0 zu bergeben, fr B: 
               eine 1 usw.

Ergebnis       setdisk liefert die Anzahl der verfgbaren Laufwerke
               zurck.

Portabilitt   Pure- und Turbo-C-spezifisch.

Querverweis    EgetdiskFName           set file time - Setzt Datum und Uhrzeit einer offenen
               Datei.

Definition     int  setftime( int handle, struct ftime *ftimep );

Prototyp in    ext.h

Beschreibung   Die Funktion setftime setzt Datum und Uhrzeit der durch
               handle bezeichneten Datei. Datum und Uhrzeit werden
               durch die Struktur EftimeF beschrieben.

Ergebnis       Die Funktion liefert bei fehlerfreier Ausfhrung den
               Wert 0. Wenn der angegebene handle nicht existiert
               (d.h. keine entsprechende Datei offen ist), liefert
               getftime den Wert -1 als Ergebnis, EerrnoF bekommt den
               Wert EBADF.

Gruppe         EI/O-RoutinenF   EPure-C-SpezialfunktionenF

Querverweis    EgetftimeFName           set jump - Vorbereitung eines nicht-lokalen goto.

Definition     int  setjmp( jmp_buf env );

Prototyp in    setjmp.h

Beschreibung   speichert einen Schnappschu des momentanen
               Prozessor-Zustands (und des Stacks) in dem durch
               env angegebenen Puffer.
               Nach einem Aufruf von ElongjmpF setzt der Prozessor
               die Arbeit an der Stelle fort, an der sich der Aufruf
               von setjmp befindet.

Beispiel:      #include <stdio.h>
               #include <stdlib.h>
               #include <setjmp.h>

               void function(void);

               jmp_buf buffer;   /*  wichtig: mu global sein, wenn
                                  *  aus einer Funktion heraus
                                  *  gesprungen werden soll.
                                  */
               int  main( void )
               {
               int  value;

                   if (( value = setjmp( buffer )) != 0 )
                   {
                       printf( "setjmp returned %d after using"
                               " longjmp\n", value );
                       exit( 0 );
                   }
                   else
                   {
                       printf( "setjmp returned %d before using"
                               " longjmp\n", value );
                   }
                   function( );

                   /*  Hierher sollte das Programm gar nicht kommen,
                    *  da function gar nicht zurckkehrt!
                    */

                   printf( "function shouldn' t return...\n" );
               }

               void  function( void )
               {

               /*
                *  ...kehrt zu main zurck als wre setjmp mit
                *  dem Wert 7 zurckgekehrt.
                */

                   longjmp(buffer, 7);
                   printf( "function shouldn' t return...\n" );
               }

Ergebnis       Der direkte Aufruf von setjmp liefert immer den Wert 0
               zurck.

Gruppe         ESprngeF

Querverweis    ElongjmpFName           set time - Setzt die Uhrzeit.

Definition     void  settime( struct time *timeRec );

Prototyp in    ext.h

Beschreibung   Die Funktion settime setzt die aktuelle Uhrzeit. Die
               Uhrzeit wird in der Struktur EtimeF bergeben.

Ergebnis       Die Funktion liefert kein Ergebnis.

Gruppe         EDatum und UhrzeitF   EPure-C-SpezialfunktionenF

Querverweis    EtimeF   EctimeF   EgettimeF   ESettimeFName           set buffer - Explizite Zuordnung eines Puffers zu
               einem stream.

Definition     int  setvbuf( FILE *fp, void *buf, int type,
                              size_t size );

Prototyp in    stdio.h

Beschreibung   setvbuf ordnet der durch fp angegebenen Datei
               den Puffer buf anstelle des automatisch vergebenen
               Puffers zu. Die Minimalgre von buf ist durch die
               (in stdio.h definierte) Konstante BUFSIZ festgelegt.
               Durch die Angabe des Zeigerwertes ENULLF anstelle von
               buf wird ber einen Aufruf von malloc ein Puffer der
               Gre size belegt und der Datei zugeordnet. size mu
               einen Wert grer Null haben.

               Der Parameter type von setvbuf mu ber eine der
               drei folgenden Konstanten festgelegt werden, die
               in stdio.h definiert sind:

               _IOFBF  (I/O fully buffered) - Ein-/Ausgaben
               werden vollstndig gepuffert. Wenn der Puffer
               leergelesen ist, versucht der nchste Eingabe-
               befehl, den Puffer wieder komplett mit Daten
               zu fllen (liest also BUFSIZ bzw. size Bytes).
               Ausgaben fllen den Puffer bis zum letzten Byte,
               erst danach wird der komplette Pufferinhalt
               geschrieben.

               _IOLBF  (I/O line buffered) - Ausgaben werden
               zeilenweise gepuffert: der Pufferinhalt wird nach
               jeder Ausgabe eines Zeilenvorschubs physikalisch
               geschrieben. Eingaben arbeiten dagegen genauso
               wie bei vollstndiger Pufferung.

               _IONBF  (I/O not buffered) - Ein-/Ausgaben
               geschehen ohne das dazwischenschalten eines
               Puffers, die Parameter buf und size werden von
               setvbuf ignoriert. Jeder Eingabebefehl liest direkt
               von der Datei, jeder Ausgabebefehl hat eine sofortige
               Schreibaktion zur Folge.

Ergebnis       setvbuf liefert bei fehlerfreier Ausfhrung den
               Wert 0. Ungltige Werte fr type oder size, fehlender
               Speicherplatz fr malloc oder die Anwendung auf eine
               nicht offene Datei erzeugen ein Funktionsergebnis
               ungleich 0.

Gruppe         EI/O-RoutinenF

Querverweis    EsetbufF   EfopenF, EfcloseF, EfseekF, EmallocF,
               EopenF     Esize_tFName           sine - Liefert den Sinus des Arguments zurck

Definition     double  sin( double x );

Prototyp in    math.h

Beschreibung   sin erwartet einen Winkel in der Einheit rad (0 Grad =
               0 * , 90 Grad = /2, 180 Grad = , 270 Grad = 1.5 * ,
               360 Grad = 2 *  usw.) als Argument und liefert den
               dazugehrigen Sinus zurck. bergebene Werte werden
               automatisch auf den Bereich 0..2 *  reduziert.
               Der Wert von  (3.1415...) ist in math.h als Konstante
               mit dem Namen M_PI definiert.

Ergebnis       Mgliche Ergebnisse liegen im Bereich von -1 .. 1.

Gruppe         EMathematische RoutinenF   EGleitkomma-BefehleF

Querverweis    EasinFName           sine, cosine - Berechnet Sinus und Cosinus

Definition     void  sincos( double x, double *sin, double *cos );

Prototyp in    math.h

Beschreibung   sincos erwartet einen Winkel in der Einheit rad (0 Grad =
               0 * , 90 Grad = /2, 180 Grad = , 270 Grad = 1.5 * ,
               360 Grad = 2 *  usw.) als erstes Argument und berechnet
               sowohl den Sinus als auch den Cosinus des Winkels. Die
               Ergebnisse werden in den zweiten bzw. dritten Parameter
               geschrieben.

Ergebnis       Die Funktion hat kein Ergebnis.

Gruppe         EMathematische RoutinenF   EGleitkomma-BefehleF

Querverweis    EsinF  EcosFName           sine hyperbolic - Liefert den Sinus hyperbolicus
               des Arguments zurck.

Definition     double  sinh( double x );

Prototyp in    math.h

Beschreibung   sinh berechnet den Sinus hyperbolicus des Arguments,

Ergebnis       Bei fehlerfreier Ausfhrung liefert die Funktion
               das entsprechende Ergebnis. Bei berlufen wird
               HUGE_VAL (mit korrektem Vorzeichen) zurckgeliefert
               und EerrnoF bekommt den Wert ERANGE.
               Die Behandlung von Fehlern kann ber die Routine
               EsetmatherrF modifiziert werden.

Gruppe         EMathematische RoutinenF   EGleitkomma-BefehleF

Querverweis    EexpFName           arcus sine hyperbolic - Liefert den hyperbolischen
               Arcussinus des Arguments zurck.

Definition     double  asinh( double x );

Prototyp in    math.h

Beschreibung   asinh berechnet den Arcussinus hyperbolicus des
               Arguments.

Ergebnis       asinh liefert immer ein gltiges Ergebnis.

Gruppe         EMathematische RoutinenF   EGleitkomma-BefehleFName           string print formatted - Formatierte Ausgabe in
               einen String

Definition     int  sprintf( char *buffer, const char *format, ... );

Prototyp in    stdio.h

Beschreibung   Alle EprintfF-Funktionen drucken in formatierter
               Form und erwarten zumindest einen EFormat-StringF.
               (variable string printf) - wie EprintfF, die Ausgabe
               geschieht in den angegebenen (nullterminierten) String,
               der eine entsprechende Lnge haben mu.

Ergebnis       Smtliche Varianten von EprintfF liefern die Anzahl der
               ausgegebenen Zeichen als Funktionsergebnis zurck,
               wobei das abschlieende Nullzeichen bei sprintf nicht
               mitgezhlt wird. Im Falle eines Fehlers ist das
               Funktionsergebnis EOF.

Gruppe         EI/O-RoutinenF   EGleitkomma-BefehleF

Querverweis    EfreadF    EputcF       EputsF      EscanfF     Eva_...F
               EprintfF   EvfprintfF   EvprintfF   EvprintfF
               EfprintfFName           square root - Liefert die Quadratwurzel des Arguments

Definition     double  sqrt( double x );

Prototyp in    math.h

Beschreibung   sqrt berechnet die Quadratwurzel des Argumentes x.

Ergebnis       Wenn x negativ ist, wird EerrnoF der Wert EDOM
               zugewiesen. 
               Die Behandlung von Fehlern kann ber die Routine
               EsetmatherrF modifiziert werden.

Gruppe         EMathematische RoutinenF   EGleitkomma-BefehleF

Querverweis    EexpF   EpowFName           seed random [generator] - Setzt einen Startwert fr
               die Erzeugung von Zufallszahlen

Definition     void  srand( unsigned seed );

Prototyp in    stdlib.h

Beschreibung   mit srand kann der Startwert fr ErandF gesetzt werden.
               Der Zufallszahlen-Generator wird beim Start des
               Programms mit dem Wert 1 initialisiert - ber einen
               Aufruf von srand kann jederzeit ein neuer (und
               beliebiger) Startwert gesetzt werden. Folgen von
               Zufallszahlen sind von einem gegebenen Startwert aus
               beliebig oft reproduzierbar.

Ergebnis       srand hat kein direktes Funktionsergebnis.

Gruppe         EVerschiedene RoutinenF

Querverweis    ErandFName           string scan formatted - Liest den Inhalt eines
               Strings als formatierte Eingabe

Definition     int  sscanf( char *buffer, const char *format, ... );

Prototyp in    stdio.h

Beschreibung   sscanf liest eine Stringvariable (d.h. den durch
               buffer angegebenen Speicherbereich) in formatierter
               Form und erwartet zumindest einen EFormat-StringF
               ber den die Anzahl der Eingaben und ihr Format
               festgelegt wird. Gelesene Eingaben werden in den
               Variablen der Parameterliste gespeichert

Ergebnis       sscanf liefert die Anzahl der fehlerfrei gelesenen
               Felder als Funktionsergebnis zurck, wobei mit *
               unterdrckte Felder nicht gezhlt werden.
               Wenn berhaupt keine Zuweisungen erfolgt sind, hat das
               Ergebnis den Wert 0.
               Der Versuch, ber das Ende einer Datei bzw. ber das
               Ende eines Strings hinaus zulesen, ergibt
               den Wert EOF als Funktionsergebnis.

Gruppe         EI/O-RoutinenF   EGleitkomma-BefehleF

Querverweis    EatofF    EgetcF    EfreadF   EprintfF   Eva_...F
               EscanfF   EfscanfF  EvsscanfFName           string scan formatted - Liest den Inhalt eines
               Strings als formatierte Eingabe

Definition     #include <stdarg.h>
               int  vsscanf( char *string, const char *format,
                             Eva_listF param );

Prototyp in    stdio.h

Beschreibung   Die v...scanf-Funktionen verhalten sich hnlich wie
               ihre ...scanf-Gegenstcke, sie akzeptieren jedoch
               einen Pointer auf eine Liste von Argumenten anstelle
               der Liste selber.
               vsscanf liest eine Stringvariable (d.h. den durch
               buffer angegebenen Speicherbereich) in formatierter
               Form und erwartet zumindest einen EFormat-StringF
               ber den die Anzahl der Eingaben und ihr Format
               festgelegt wird. Gelesene Eingaben werden in den
               Variablen der Parameterliste gespeichert

Ergebnis       vsscanf liefert die Anzahl der fehlerfrei gelesenen
               Felder als Funktionsergebnis zurck, wobei mit *
               unterdrckte Felder nicht gezhlt werden.
               Wenn berhaupt keine Zuweisungen erfolgt sind, hat das
               Ergebnis den Wert 0.
               Der Versuch, ber das Ende einer Datei bzw. ber das
               Ende eines Strings hinaus zulesen, ergibt
               den Wert EOF als Funktionsergebnis.

Portabilitt   vsscanf ist auf UNIX-Systemen verfgbar.

Gruppe         EI/O-RoutinenF   EGleitkomma-BefehleF

Querverweis    EatofF    EgetcF    EfreadF   EprintfF   Eva_...F
               EscanfF   EfscanfF  EsscanfFName           string error - Liefert Strings mit System-
               fehlermeldungen

Definition     char  *strerror( int errnum );

Prototyp in    string.h

Beschreibung   strerror dient zur Abfrage, welche Fehlermeldung
               ausgegeben wird, wenn EerrnoF den Wert errnum annimmt.

Ergebnis       strerror liefert einen Zeiger auf die mit errnum
               angegebene Fehlermeldung.

Querverweis    EperrorF

Gruppe         EI/O-RoutinenFName           string concatenate - Hngt einen String an einen
               anderen an

Definition     char  *strcat( char *dest, const char *src );

Prototyp in    string.h

Beschreibung   strcat hngt smtliche Zeichen von src an die bereits
               in dest vorhandenen Zeichen an (die Lnge von dest
               wird also um strlen(src) erhht).

Ergebnis       Zurckgeliefert wird ein Zeiger auf das erste Zeichen
               von dest.

Gruppe         EString- und SpeichermanipulationFName           string number concatenate - Hngt eine bestimmte
               Anzahl von Zeichen aus einem String an einen anderen
               an (Verbindung)

Definition     char  *strncat( char *dest, const char *src,
                                size_t maxlen );

Prototyp in    string.h

Beschreibung   strncat hngt die ersten maxlen Zeichen von src an die
               bereits in dest vorhandenen Zeichen an. Die Operation
               wird beendet, wenn entweder maxlen Zeichen kopiert
               wurden oder das Ende von src erreicht ist.
               Als letztes schreibt strncat grundstzlich ein
               Nullzeichen in dest.

Ergebnis       Danach wird ein Zeiger auf das erste Zeichen von dest
               zurckgeliefert.

Gruppe         EString- und SpeichermanipulationF

Querverweis    Esize_tFName           string character - Sucht einen String nach einem
               bestimmten Zeichen ab

Definition     char  *strchr( const char *s, int c );

Prototyp in    string.h

Beschreibung   strchr sucht den ber s angegebenen String nach dem
               Zeichen c ab, wobei die Suche mit dem ersten Zeichen
               von s beginnt.

Ergebnis       strchr liefert einen Zeiger auf die erste Fundstelle
               des Zeichens c zurck bzw. den Wert ENULLF, wenn der
               String dieses Zeichen nicht enthlt. Das abschlieende
               Nullzeichen wird zum Stringinhalt gerechnet - ein
               Aufruf wie strchr( stringx, 0 ) liefert also einen
               Zeiger auf das Nullzeichen von stringx.

Gruppe         EString- und SpeichermanipulationFName           string reverse - Dreht die Reihenfolge der Zeichen
               eines Strings um

Definition     char  *strrev( char *s );

Prototyp in    string.h

Beschreibung   strrev invertiert den ber s angegebenen String.

Ergebnis       Zurckgeliefert wird ein Zeiger auf das erste Zeichen
               von s.

Gruppe         EString- und SpeichermanipulationFName           string right character - Sucht einen String nach dem
               letzten Erscheinen eines bestimmten Zeichens ab
               (Absuche)

Definition     char  *strrchr( const char *s, int c );

Prototyp in    string.h

Beschreibung   strrchr sucht den ber s angegebenen String nach dem
               Zeichen c ab, wobei die Suche mit dem letzten Zeichen
               von s beginnt.

Ergebnis       strrchr liefert einen Zeiger auf die erste (rechteste)
               Fundstelle des Zeichens c zurck bzw. den Wert ENULLF,
               wenn der String dieses Zeichen nicht enthlt. Das
               abschlieende Nullzeichen wird zum Stringinhalt
               gerechnet und als erstes verglichen - ein Aufruf wie
               strrchr( stringx,0 ) liefert also einen Zeiger auf das
               Nullzeichen von stringx.

Gruppe         EString- und SpeichermanipulationFName           string compare - Vergleicht zwei Strings.

Definition     int  strcmp( const char *s1, const char *s2 );

Prototyp in    string.h

Beschreibung   strcmp vergleicht die Inhalte von s1 und s2 miteinander.

Ergebnis       Zurckgeliefert wird ein Wert kleiner 0, wenn s1
               kleiner als s2 ist - der Wert 0, wenn beide Strings
               exakt gleich sind; und ein Wert grer 0, wenn s1
               grer als s2 ist. Das Ergebnis hat den Typ int.

Gruppe         EString- und SpeichermanipulationF

Querverweis    Esize_tF  EstricmpFName           string number compare -  Vergleicht eine bestimmte
               Anzahl von Zeichen miteinander.

Definition     int  strncmp( char *s1, char *s2, size_t maxlen );

Prototyp in    string.h

Beschreibung   strncmp vergleicht maximal die ersten maxlen Zeichen
               von s1 und s2 miteinander.

Ergebnis       Zurckgeliefert wird ein Wert kleiner 0, wenn s1
               kleiner als s2 ist - der Wert 0, wenn beide Strings
               exakt gleich sind; und ein Wert grer 0, wenn s1
               grer als s2 ist. Das Ergebnis hat den Typ int.

Gruppe         EString- und SpeichermanipulationF

Querverweis    Esize_tF  EstrnicmpFName           string compare ignore case - Vergleicht zwei Strings
               ohne Unterscheidung zwischen Gro- und Kleinschreibung.

Definition     int  stricmp( const char *s1, const char *s2 );
               int  strcmpi( const char *s1, const char *s2 );

Prototyp in    string.h

Beschreibung   stricmp und strcmpi sind zwei identische Funktionen.
               Beide vergleichen zwei Strings miteinander, ohne
               zwischen Gro- und Kleinschreibung zu unterscheiden.
               Ansonsten wird der Vergleich wie bei EstrcmpF
               durchgefhrt.
               Achtung: Deutsche Umlaute werden dennoch nach gro/
                        klein unterschieden (s. ATARI-Zeichensatz).

Ergebnis       Zurckgeliefert wird ein Wert kleiner 0, wenn s1
               kleiner als s2 ist - der Wert 0, wenn beide Strings
               exakt gleich sind; und ein Wert grer 0, wenn s1
               grer als s2 ist. Das Ergebnis hat den Typ int.

Gruppe         EString- und SpeichermanipulationF

Querverweis    Esize_tF   EstrcmpF   EstricmpF   EstrcmpiF
               EstrncmpF   EstrnicmpF   EstrncmpiFName           string number compare ignore case - Vergleicht eine
               bestimmte Anzahl von Zeichen miteinander ohne
               Unterscheidung zwischen Gro- und Kleinschreibung.

Definition     int  strnicmp( const char *s1, const char *s2,
                               size_t n );
               int  strncmpi( const char *s1, const char *s2,
                               size_t n );

Prototyp in    string.h

Beschreibung   strnicmp und strncmpi sind zwei identische Funktionen.
               Beide vergleichen die n ersten Zeichen zweier Strings
               miteinander, ohne zwischen Gro- und Kleinschreibung zu
               unterscheiden. Ansonsten wird der Vergleich wie bei
               EstrncmpF durchgefhrt.
               Achtung: Deutsche Umlaute werden dennoch nach gro/
                        klein unterschieden (s. ATARI-Zeichensatz).

Ergebnis       Zurckgeliefert wird ein Wert kleiner 0, wenn s1
               kleiner als s2 ist - der Wert 0, wenn beide Strings
               exakt gleich sind; und ein Wert grer 0, wenn s1
               grer als s2 ist. Das Ergebnis hat den Typ int.

Gruppe         EString- und SpeichermanipulationF

Querverweis    Esize_tF   EstrncmpFName           string copy - Kopiert einen String in einen
               anderen

Definition     char  *strcpy( char *dest, const char *src );

Prototyp in    string.h

Beschreibung   strcpy kopiert den Inhalt des ber src angegebenen
               Strings in den durch dest angegebenen Speicherbereich.
               Das abschlieende Nullzeichen von src wird als letztes
               Byte kopiert.

Ergebnis       die Startadresse von dest wird als Funktionsergebnis
               zurckgeliefert.

Gruppe         EString- und SpeichermanipulationFName           string number copy - Kopiert eine bestimmte Anzahl
               von Zeichen

Definition     char  *strncpy( char *dest, const char *src,
                                size_t maxlen );

Prototyp in    string.h

Beschreibung   strncpy kopiert maxlen Zeichen des ber src angegebenen
               Strings in den durch dest angegebenen Speicherbereich.
               strncpy kopiert immer genau maxlen Zeichen - wenn src
               weniger als maxlen Zeichen enthlt, wird eine
               entsprechende Anzahl von Nullzeichen in dest angehngt
               wenn src mehr als maxlen Zeichen umfat, bleibt der
               nach dest kopierte String ohne ein abschlieendes
               Nullzeichen.

Ergebnis       strncpy liefert in allen Fllen einen Zeiger auf das
               erste Byte von dest zurck.

Gruppe         EString- und SpeichermanipulationF
Querverweis    Esize_tFName           string length - Sucht nach dem Ende eines Strings
               und liefert seine Lnge zurck

Definition     Esize_tF  strlen( const char *s );

Prototyp in    string.h

Beschreibung   Der angegebene String wird nicht verndert.

Ergebnis       strlen liefert die Lnge des angegebenen Strings
               als unsigned long. Die Null wird nicht mitgezhlt.

Gruppe         EString- und SpeichermanipulationFName           string string - Sucht einen String nach dem Vorkommen
               eines anderen Strings ab

Definition     char  *strstr( const char *s1, const char *s2 );

Prototyp in    string.h

Beschreibung   strstr sucht den ber s1 angegebenen String nach
               dem ersten Vorkommen von s2 ab (im Gegensatz zu
               strspn und strcspn findet hier ein direkter Vergleich
               statt - die Reihenfolge der Zeichen in s1 und s2
               spielt also eine Rolle).

Ergebnis       Zurckgeliefert wird ein Zeiger auf den Beginn von s2
               in s1 bzw. der Zeigerwert ENULLF, wenn s2 in s1 berhaupt
               nicht vorkommt.

Gruppe         EString- und SpeichermanipulationF

Querverweis    EstrcspnFName           string lowercase - ndert alle Grobuchstaben in
               Kleinbuchstaben

Definition     char  *strlwr( char *s );

Prototyp in    string.h

Beschreibung   strlwr verndert smtliche Grobuchstaben des via s
               bergebenen Strings in Kleinbuchstaben (die deutschen
               Umlaute werden nicht bercksichtigt).
Ergebnis       strlwr liefert einen Zeiger auf das erste Zeichen
               dieses Strings zurck.
Gruppe         EString- und SpeichermanipulationFName           string uppercase - Verwandelt alle Kleinbuchstaben
               in Grobuchstaben

Definition     char  *strupr( char *s );

Prototyp in    string.h

Beschreibung   strupr verndert smtliche Kleinbuchstaben des via s
               bergebenen Strings in Grobuchstaben (die deutschen
               Umlaute werden nicht bercksichtigt).

Ergebnis       strupr liefert einen Zeiger auf das erste Zeichen
               dieses Strings zurck.

Gruppe         EString- und SpeichermanipulationFName           string counter set position - Liefert die Lnge
               des Teilstrings von s1 zurck, der keines der Zeichen
               von s2 enthlt

Definition     size_t  strcspn(const char *s1, const char *s2);

Prototyp in    string.h

Beschreibung   strcspn vergleicht s1 ab dem ersten Zeichen mit
               dem in s2 enthaltenen Zeichensatz. Wenn das
               Zeichen nicht in s2 enthalten ist, geht der
               Vergleich mit dem nchsten Zeichen von s1
               weiter - solange, bis entweder das letzte Zeichen
               von s1 verglichen wurde (Funktionsergebnis: Lnge
               von s1) oder sich eine bereinstimmung ergibt
               (Funktionsergebnis: Position des ersten gefundenen
               Zeichens - also die Lnge des Teilstrings von s1,
               der keines der Zeichen von s2 enthlt. Die Reihen-
               folge der Zeichen in s2 spielt keine Rolle.

Gruppe         EString- und SpeichermanipulationFName           string duplicate - Dupliziert einen String

Definition     char  *strdup( const char *s );

Prototyp in    string.h

Beschreibung   strdup dupliziert einen String an eine andere Adresse.
               Der Speicher wird per malloc dynamisch angelegt.

Ergebnis       Zurckgeliefert wird ein Zeiger auf das erste Zeichen
               des duplizierten Strings.

Gruppe         EString- und SpeichermanipulationFName           string set - Fllt einen String mit einem
               Zeichen

Definition     char  *strset( char *s, int c );

Prototyp in    string.h

Beschreibung   strset berschreibt alle Zeichen des via s
               bergebenen Strings mit dem Zeichen c.

Ergebnis       Zurckgeliefert wird ein Zeiger auf das erste
               Zeichen von s.

Gruppe         EString- und SpeichermanipulationF

Querverweis    EstrnsetFName           string number set - Fllt einen Stringteil mit einem
               Zeichen

Definition     char  *strnset( char *s, int c, size_t n );

Prototyp in    string.h

Beschreibung   strnset berschreibt die ersten n Zeichen des via
               s bergebenen Strings mit dem Zeichen c. n wird
               automatisch begrenzt, d.h. strnset schreibt nicht
               ber das Stringende ('') hinaus.

Ergebnis       Zurckgeliefert wird ein Zeiger auf das erste
               Zeichen von s.

Gruppe         EString- und SpeichermanipulationF

Querverweis    EstrsetFName           string pointer break - Sucht einen String nach dem
               ersten Auftreten bestimmter Zeichen ab

Definition     char  *strpbrk( const char *s1, const char *s2 );

Prototyp in    string.h

Beschreibung   strpbrk sucht den ber s1 angegebenen String nach
               dem ersten Vorkommen eines der in s2 enthaltenen
               Zeichen ab.

Ergebnis       Zurckgeliefert wird ein Zeiger auf die erste
               Fundstelle bzw. der Wert ENULLF, wenn keines der
               durch s2 festgelegten Zeichen in s1 enthalten ist.

Gruppe         EString- und SpeichermanipulationFName           string set position - Berechnet die Lnge des
               Teilstrings, der ausschlielich aus Zeichen eines
               zweiten Strings besteht.

Definition     size_t  strspn( const char *s1, const char *s2 );

Prototyp in    string.h

Beschreibung   strspn ist das Gegenstck zu EstrcspnF:
               Beginnend mit dem ersten Zeichen wird der Inhalt
               von s1 mit dem ber s2 angegebenen Zeichensatz
               verglichen. Wenn das Zeichen in s2 enthalten ist,
               geht es mit dem nchsten Zeichen von s1 weiter,
               solange, bis entweder das Ende von s1 erreicht ist
               (Funktionsergebnis: Lnge von s1) oder der Vergleich
               fehlschlgt (Funktionsergebnis: Position des ersten
               nicht bereinstimmenden Zeichens - also die Lnge
               des Teilstrings von s1, der ausschlielich aus
               Zeichen besteht, die in s2 enthalten sind).
               Die Reihenfolge der Zeichen in s2 spielt keine Rolle.
               Wenn bereits das erste Zeichen von s1 nicht in s2
               enthalten ist, dann liefert strspn das Ergebnis 0.

Gruppe         EString- und SpeichermanipulationFName           string token - Sucht einen String nach der ersten
               von mehreren Zeichenfolgen ab

Definition     char  *strtok( char *s1, const char *s2 );

Prototyp in    string.h

Beschreibung   strtok betrachtet den ber s1 angegebenen String als
               Folge von Tokens, die voneinander durch die in s2
               definierten Zeichenfolgen getrennt sind. Wenn s1
               beispielsweise den Inhalt "ein String,mit,,Tokens"
               hat und s2 den Inhalt " , ", dann liefern
               aufeinanderfolgende Aufrufe von strtok die Tokens
               ein, String, mit und Tokens.

Ergebnis       Der erste Aufruf von strtok liefert einen Zeiger auf
               den Beginn des ersten gefundenen Tokens in s1 zurck
               und setzt ein Nullzeichen unmittelbar hinter das Ende
               (in unserem Beispiel also direkt hinter die
               Zeichenfolge ein.
               Folgende Aufrufe von strtok mit dem Wert ENULLF
               anstelle des Arguments s1 liefern Zeiger auf weitere
               Tokens zurck, bis der ursprngliche String zuende
               gelesen ist. s1 wird whrend der Analyse durch das
               Einfgen von Nullzeichen verndert, s2 kann bei jedem
               Aufruf von strtok beliebig gewechselt werden.
               Wenn kein (weiteres) Token gefunden wird, liefert
               strtok das Ergebnis ENULLF.

Gruppe         EString- und SpeichermanipulationFName           (string to double) - Interpretiert einen String
               als einen EdoubleF-Wert

Definition     double  strtod( const char *s, char **endptr );

Prototyp in    stdlib.h

Beschreibung   strtod interpretiert den via s bergebenen String
               als EdoubleF. Der Stringinhalt mu das folgende Format
               haben (vgl. EatofF):

               [wl] [+|-] [ddd] [.ddd] [e|E [+|-] ddd]

               [wl] steht hier fr weie Leerzeichen, [+|-] fr ein
               (optionales) Vorzeichen und [ddd] fr ein oder mehrere
               Dezimalziffern. Wenn ein Exponent angegeben wird, dann
               kann dieser Exponent ein Vorzeichen enthalten.
               Beispiele fr gltige Angaben sind:
               +1234.1981e-1, 502.3489576, -.34576e8
               strtod bricht die Analyse beim ersten Zeichen ab, das
               nicht mehr als zu einer Fliekommazahl gehrig
               interpretiert werden kann.
               Solange der Parameter endptr nicht als ENULLF angegeben
               ist, wird er von strtod auf das Zeichen innerhalb von s
               gesetzt, durch das die Analyse abgebrochen wurde.

Ergebnis       strtod liefert das Ergebnis der Interpretation als
               EdoubleF zurck - wenn sich die bergebene Zeichenkette
               berhaupt nicht analysieren lt, dann ist das
               Ergebnis HUGE_VAL und EerrnoF wird entsprechend gesetzt.

Gruppe         EString- und SpeichermanipulationF

Querverweis    EstrtolF   EstrtoulFName           string to long - Interpretiert einen String als
               einen long-Wert

Definition     long  strtol( const char *s, char **endptr, int radix );

Prototyp in    string.h

Beschreibung   strtol interpretiert den via s bergebenen String als
               long im durch radix angegebenen Zahlensystem.
               (radix = 10: Interpretation als Dezimalzahl;
               radix = 16:  Interpretation als Hexadezimalzahl usw.).
               Zulssige Werte fr diesen Parameter liegen im Bereich
               von 2..36.
               Die in s enthaltene Zeichenfolge mu das folgende
               Format haben (vgl. EatolF):

               [wl] [+|-] [0] [x|X] [ddd]

               [wl] steht hier fr weie Leerzeichen, [+|-] fr ein
               optionales Vorzeichen. Eine Ziffernfolge, die mit 0
               (oktal), 0x oder 0X (hexadezimal) beginnt, wird von
               strtol automatisch in diesem Format interpretiert,
               wenn fr radix der Wert 0 angegeben ist. (Fr alle
               anderen Werte von radix wird eine fhrende Null
               schlicht ignoriert, ein fhrendes 0x oder 0X ist
               ungltig und erzeugt das Funktionsergebnis 0).

               strtol bricht die Analyse beim ersten Zeichen ab, das
               nicht mehr als dem Wert zugehrig interpretiert werden+
               kann. Wenn fr den Parameter endptr die Adresse eines
               Zeigers angegeben wurde (und nicht der Wert ENULLF),
               dann wird dieser Zeiger auf die Adresse des nicht
               analysierbaren Zeichens in s gesetzt.
               Als nicht zugehrig gelten alle Zeichen, die bei
               einem durch radix festgelegten Zahlensystem keine
               gltigen Ziffern darstellen (im Dezimalsystem: alle
               Zeichen auer '0'..'9'; im Oktalsystem: nur die
               Ziffern '0'..'7'; bei einem Wert von 5 fr radix nur
               die Ziffern '0'..'4' usw.).

Ergebnis       strtol liefert das Ergebnis der Interpretation als long
               zurck. Wenn der String berhaupt nicht numerisch
               auswertbar ist oder fr radix ein Wert auerhalb der
               Grenzen 2..36 angegeben wurde, dann ist das Ergebnis 0,
               **endptr wird (soweit nicht als ENULLF angegeben) auf
               das erste Zeichen von s gesetzt.

Gruppe         EString- und SpeichermanipulationFName           string to unsigned long - Interpretiert einen String
               als einen unsigned long-Wert

Definition     unsigned long  strtoul( const char *s, char **endptr,
                                        int radix );

Prototyp in    string.h

Beschreibung   strtoul interpretiert den via s bergebenen String als
               unsigned long im durch radix angegebenen Zahlensystem.
               (radix = 10: Interpretation als Dezimalzahl;
               radix = 16:  Interpretation als Hexadezimalzahl usw.).
               Zulssige Werte fr diesen Parameter liegen im Bereich
               von 2..36. Die in s enthaltene Zeichenfolge mu das
               folgende Format haben (vgl. EatolF):

               [wl] [+|-] [0] [x|X] [ddd]

               [wl] steht hier fr weie Leerzeichen, [+|-] fr ein
               optionales Vorzeichen. Eine Ziffernfolge, die mit 0
               (oktal), 0x oder 0X (hexadezimal) beginnt, wird von
               strtoul automatisch in diesem Format interpretiert,
               wenn fr radix der Wert 0 angegeben ist. (Fr alle
               anderen Werte von radix wird eine fhrende Null
               schlicht ignoriert, ein fhrendes 0x oder 0X ist
               ungltig und erzeugt das Funktionsergebnis 0).

               strtoul bricht die Analyse beim ersten Zeichen ab, das
               nicht mehr als dem Wert zugehrig interpretiert werden
               kann. Wenn fr den Parameter endptr die Adresse eines
               Zeigers angegeben wurde (und nicht der Wert ENULLF), dann
               wird dieser Zeiger auf die Adresse des nicht
               analysierbaren Zeichens in s gesetzt.
               Als nicht zugehrig gelten alle Zeichen, die bei
               einem durch radix festgelegten Zahlensystem keine
               gltigen Ziffern darstellen (im Dezimalsystem: alle
               Zeichen auer '0'..'9'; im Oktalsystem: nur die
               Ziffern '0'..'7'; bei einem Wert von 5 fr radix nur
               die Ziffern '0'..'4' usw.).

Ergebnis       strtoul liefert das Ergebnis der Interpretation als
               unsigned long  zurck. Wenn der String berhaupt nicht
               numerisch auswertbar ist oder fr radix ein Wert
               auerhalb der Grenzen 2..36 angegeben wurde, dann ist
               das Ergebnis 0L, **endptr wird (soweit nicht als ENULLF
               angegeben) auf das erste Zeichen von s gesetzt.

Gruppe         EString- und SpeichermanipulationFName           string format time - Spezielle Formatierung eines
               Strings fr die Ausgabe von Uhrzeit und Datum

Definition     size_t  strftime( char *s, size_t max_size,
                                  const char *format,
                                  const struct tm *timeptr );
Prototyp in    time.h

Beschreibung   Die Funktion strftime schreibt hchstens max_size
               Zeichen in den String s. Der String format dient zur
               Formatierung der Zeitangabe in der Struktur EtmF.
               Die Zeichen im String werden wie bei der Funktion
               printf behandelt, wobei jedoch folgende spezielle
               Formatier-Angaben verwendet werden:

                      %a  abgekrzter Wochentag
                      %A ausgeschriebener Wochentag
                      %b abgekrzter Monatsname
                      %B voller Monatsname
                      %c Datum und Uhrzeit
                      %d Tag im Monat (1-31)
                      %H Stunde (0-23)
                      %I Stunde (0-12)
                      %j Tag im Jahr (1-366)
                      %m Monat (1-12)
                      %M Minute (00-59)
                      %p AM/PM
                      %S Sekunde (00-59)
                      %w Wochentag (0-6)
                      %W Woche im Jahr (0-52)
                      %x lokale Datumsdarstellung
                      %X lokale Zeit-Darstellung
                      %y Jahr ohne Jahrhundert (0-99)
                      %Y Jahr mit Jahrhundertangabe
                      %Z Name der Zeitzone (z.B. MEZ)
                      %% das %-Zeichen

Ergebnis       strftime liefert als Ergebnis die Gesamtlnge des
               Strings.

Gruppe         EDatum und UhrzeitF

Querverweis    EctimeF   Esize_tF   ElocaltimeF   EgmtimeFName           system - bergibt einen Befehl an einen Kommando-
               interpreter zur Ausfhrung

Definition     int  system( const char *command );

Prototyp in    stdlib.h

Beschreibung   Die Kommandozeile command wird an einen Kommando-
               interpreter bergeben und in einer impelementations-
               abhngigen Art und Weise ausgefhrt. Vorausetzung fr
               die Benutzung dieser Funktion ist, da Sie eine Shell
               verwenden, die die Systemvariable _shell_p oder das
               Setzen von Environmentvariablen untersttzt. _shell_p
               enthlt die Adresse einer Routine, die eine Shell
               starten kann. Die Environmentvariable "SHELL" spezifi-
               ziert den Pfadnamen einer Shell.

Ergebnis       Falls kein Kommandointerpreter verfgbar ist, wird 0
               zurckgeliefert.
               Wird fr command NULL bergeben, erhlt man einen Wert
               != 0 zurck, wenn ein Kommandointerpreter verfgbar
               ist. In allen anderen Fllen erhlt man einen
               implementationsabhngigen Rckgabewert.

Beispiel       #include <stdlib.h>

               int  main( void )
               {
                   if( system( NULL ) != 0 )
                       system("del *.*");

                   return( 0 );
               }

Gruppe         EProzess-RoutinenFName           tangent - Liefert den Tangens des Arguments

Definition     double  tan( double x );

Prototyp in    math.h

Beschreibung   tan erwartet einen Winkel in der Einheit rad (0 Grad =
               0 * , 90 Grad = /2, 180 Grad = , 270 Grad = 1.5 * P,
               360 Grad = 2 *  usw.) als Argument und liefert den
               dazugehrigen Tangens zurck. bergebene Werte werden
               automatisch auf den Bereich 0..2 *  reduziert.
               Der Wert von  (3.1415...) ist in math.h als Konstante
               mit dem Namen M_PI definiert

Ergebnis       tan liefert Werte unbegrenzter Gre, solange das
               Argument nicht zu dicht an P/2 oder -P/2 liegt - falls
               das Funktionsergebnis nicht mehr berechnet werden kann,
               wird der Wert 0 zurckgeliefert und EerrnoF bekommt den
               folgenden Wert ERANGE.
               Die Behandlung von Fehlern kann ber die Routine
               EsetmatherrF modifiziert werden.

Gruppe         EMathematische RoutinenF   EGleitkomma-BefehleF

Querverweis    EperrorF   EstrerrorF   EatanF   Eatan2FName           tangent hyperbolic - Liefert den Tangens hyperbolicus
               des Arguments

Definition     double  tanh( double x );

Prototyp in    math.h

Beschreibung   tanh berechnet den Tangens hyperbolicus des Arguments,

Ergebnis       Bei fehlerfreier Ausfhrung liefert die Funktion
               das entsprechende Ergebnis. Bei berlufen wird
               HUGE_VAL (mit korrektem Vorzeichen) zurckgeliefert und
               EerrnoF bekommt den Wert ERANGE.
               Die Behandlung von Fehlern kann ber die Routine
               EsetmatherrF modifiziert werden.

Gruppe         EMathematische RoutinenF   EGleitkomma-BefehleF

Querverweis    EatanF   Eatan2FName           arcus tangent hyperbolic - Liefert den Arcus Tangens
               hyperbolicus des Arguments

Definition     double  atanh( double x );

Prototyp in    math.h

Beschreibung   atanh berechnet den Arcus Tangens hyperbolicus des
               Arguments und erwartet Werte im Bereich von [-1,+1].

Ergebnis       Bei fehlerfreier Ausfhrung liefert die Funktion
               das entsprechende Ergebnis. Bei ungltigen Eingabe-
               werten erhlt EerrnoF den Wert EDOM.
               Die Behandlung von Fehlern kann ber die Routine
               EsetmatherrF modifiziert werden.

Gruppe         EMathematische RoutinenF   EGleitkomma-BefehleF

Querverweis    EatanF   EtanhF   Eatan2FName           double extended to 8-Byte-double - Konvertiert einen
               double(10 Byte) ins 8-Byte EFliekommaformatF

Definition     void  xdcnv( double *oldval, void *rep8bytes );

Prototyp in    math.h

Beschreibung   xdcnv konvertiert den ber val angegebenen double ins
               8-Byte EFliekommaformatF an die mit rep8bytes angegebene
               Adresse.

Ergebnis       Die Funktion liefert kein Ergebnis.

Gruppe         EGleitkomma-BefehleF

Querverweis    EdxcnvFName           8-Byte-double to extended double - Konvertiert einen
               double im 8-Byte EFliekommaformatF ins 10 Byte
               EFliekommaformatF

Definition     void  dxcnv( void *rep8bytes, double *val );

Prototyp in    math.h

Beschreibung   dxcnv konvertiert den ber die Adresse rep8bytes
               bergebenen 8-Byte double ins 10-Byte EFliekommaformatF

Ergebnis       Die Funktion schreibt den konvertierten double an die
               Adresse val.

Gruppe         EGleitkomma-BefehleF

Querverweis    ExdcnvFName           floatingpoint unit mode - Liefert den Status des
               Fliekomma-Koprozessors

Definition     int  fpumode( int disable );

Prototyp in    math.h

Beschreibung   Wird disable = 1 bergeben, so wird der Koprozessor
               von den EGleitkomma-BefehleFn nicht angesprochen.
               Mit disable = 0 kann er wieder angesprochen werden,
               sofern er vorhanden ist.

Ergebnis       Die Funktion liefert den Status des Fliekomma-
               Koprozessors:
                   1:  MC 68881 vorhanden und aktiv
                   0:  MC 68881 nicht vorhanden oder nicht aktiv

Gruppe         EGleitkomma-BefehleF

Querverweis    ExdcnvFName           time - Liefert Datum und Uhrzeit des Systems

Definition     time_t  time( time_t *timer );

Prototyp in    time.h

Beschreibung   time setzt die via timer bergebene Variable auf die
               Anzahl der Sekunden, die seit dem 1. Januar 1970,
               0 Uhr 00:00 (Greenwich Mean Time) verstrichen sind.
               Die Angabe des Zeigerwertes ENULLF fr timer ist zulssig
               in diesem Fall liefert time das Funktionsergebnis ohne
               Speicherung.

Ergebnis       time liefert die Anzahl der seit dem 1.1.1970
               verstrichenen Sekunden auch als Funktionsergebnis
               zurck.

Gruppe         EDatum und UhrzeitF

Querverweis    EctimeF   Etime_tF  Estruct timeFName           temporary file name - Liefert einen String, der als
               temporrer Dateiname verwendet werden kann

Definition     char  *tmpnam( char *str );

Prototyp in    stdio.h

Beschreibung   Die Funktion tmpnam erzeugt einen String, der als
               Dateiname verwendet werden kann und garantiert nicht
               mit einer bereits existierenden Datei identisch ist.
               Die Funktion kann mehrmals hintereinander aufgerufen
               werden und erzeugt dann immer neue Dateinamen. Wie oft
               diese Funktion aufgerufen werden kann, hngt von der
               Konstanten TMP_MAX ab. Wenn tmpnam fter als in
               TMP_MAX angegeben aufgerufen wird, ist das Ergebnis
               nicht definiert. tmpnam verwendet den unter str
               angelegten Puffer. Wenn als Parameter str der Wert
               ENULLF bergeben wurde, dann legt tmpnam den Puffer
               fr den Dateinamen selbstndig an.

Ergebnis       Die Funktion liefert als Ergebnis einen Zeiger auf
               einen temporren Dateinamen.

Gruppe         EI/O-RoutinenF

Querverweis    EtmpfileFName           temporary file - Erzeugt eine temporre Datei

Definition     FILE  *tmpfile( void );

Prototyp in    stdio.h

Beschreibung   Die Funktion tmpfile legt eine temporre Binrdatei an,
               die mit dem Zugriffsmodus Read/Write erffnet wird. Die
               Datei wird wieder entfernt, wenn die Datei geschlossen
               wird.

Ergebnis       Die Funktion liefert als Ergebnis den Handle der
               temporr angelegten Datei. Wenn die Datei nicht
               angelegt werden konnte, dann erhlt man als Ergebnis
               einen ENULLF-Zeiger.

Gruppe         EI/O-RoutinenF

Querverweis    EtmpnamFName           to ASCII - Konvertierung von Zeichen in das
               ASCII-Format

Definition     int  toascii( int c );

Prototyp in    ctype.h

Beschreibung   toascii begrenzt den Wert c (durch eine AND-Operation
               mit 0x7f) auf den Bereich 0..127.

Ergebnis       toascii liefert das Ergebnis dieser Begrenzung als
               Integer zurck.

Querverweis    EtolowerF   EtoupperF

Gruppe         EUmwandlungsroutinenFName           to lowercase - Prft auf Grobuchstabe und wandelt
               gegebenenfalls in einen Kleinbuchstaben um

Definition     int  tolower( int c );

Prototyp in    ctype.h

Beschreibung   tolower ist eine Funktion, die das bergebene Zeichen c
               in einen Kleinbuchstaben verwandelt. Damit diese
               Funktion korrekt arbeitet, mu c einen Wert im Bereich
               von 0..255 oder den Wert EOF haben.

Ergebnis       Die Funktion liefern das Ergebnis ihrer Konvertierung
               als int zurck.

Gruppe         EUmwandlungsroutinenF

Querverweis    EtoupperFName           to uppercase - Prft auf Kleinbuchstabe und wandelt
               gegebenenfalls in einen Grobuchstaben um

Definition     int  toupper( int c );

Prototyp in    ctype.h

Beschreibung   toupper ist eine Funktion, die das bergebene Zeichen c
               in einen Grobuchstaben verwandelt. Damit diese
               Funktion korrekt arbeitet, mu c einen Wert im Bereich
               von 0..255 oder den Wert EOF haben.

Ergebnis       Die Funktion liefert das Ergebnis ihrer Konvertierung
               als int zurck.

Gruppe         EUmwandlungsroutinenF

Querverweis    EtolowerFName           unget character - Stellt ein aus einem stream
               gelesenes Zeichen zurck

Definition     int  ungetc( int c, FILE *stream );

Prototyp in    stdio.h

Beschreibung   ungetc stellt ein Zeichen fr eine erneute
               Leseoperation zurck, ist also tatschlich das
               Gegenteil von EgetcF. Praktisch zu jedem Zeitpunkt
               kann ein Zeichen zurckgestellt und spter mit
               EgetcF wieder gelesen werden. Es wird immer nur ein
               Zeichen gespeichert. Die Anwendung von EfseekF oder
               ErewindF auf eine Datei lscht deren Puffer und damit
               auch ein eventuell mit ungetc zurckgestelltes Zeichen.

Ergebnis       ungetc liefert das zurckgestellte Zeichen als
               Funktionsergebnis, wenn die Aktion fehlerfrei
               ausgefhrt werden konnte - falls der entsprechende
               Puffer bereits besetzt ist, dann erhlt man den
               Wert EOF.

Gruppe         EI/O-RoutinenF

Querverweis    EgetchF   EfgetcF   EgetcharF   EferrorF   EfopenF
               EfreadF   EfseekF   EgetsF      EputcF     EreadF
               EscanfFName           unsigned long to ascii - Konvertiert einen unsigned
               long in einen String.

Definition     char  *ultoa( unsigned long value, char *string,
                              int radix );

Prototyp in    stdlib.h

Beschreibung   ultoa konvertiert den unsigned long value in einen
               nullterminierten String und speichert das Ergebnis
               in der durch String bezeichneten Variablen.
               Der Parameter radix legt die Basis fest auf der die
               konvertierung stattfinden soll - mgliche Werte
               liegen im Bereich von 2 bis 36.
               ultoa erzeugt maximal 32 Zeichen.

Ergebnis       ultoa liefert einen Zeiger auf den gesetzten string
               zurck.

Gruppe         EUmwandlungsroutinenF

Querverweis    EitoaF   EltoaFName           unlink - Lscht eine Datei.

Definition     int  unlink( const char *filename );

Prototyp in    stdio.h

Beschreibung   unlink lscht die durch filename angegebene Datei,
               wobei filename einen vollstndigen Suchweg und/oder
               einen Laufwerksbezeichner enthalten kann. Die Joker-
               zeichen '*' und '?' sind in filename nicht erlaubt.
               Schreibgeschtzte Dateien und Directories knnen
               mit unlink nicht gelscht werden. Um eine schreib-
               geschtzte Datei zu lschen, mu zuerst das ent-
               sprechende Attribut entfernt werden.

Ergebnis       Bei fehlerfreier Ausfhrung liefert unlink den Wert 0
               zurck. Im Falle eines Fehlers ist das Funktions-
               ergebnis -1 und EerrnoF bekommt einen der folgenden
               Werte:
                              ENOENT    EACCES

Gruppe         EI/O-RoutinenF

Querverweis    EremoveFva_list ist ein typloser Zeiger, der in STDARG.H definiert ist:

typedef void    *va_list;Makros fr Funktionen mit variabler Parameterzahl
----------------------------------------------------------------------

Die Makros der Namensfamilie va_... ermglichen es, Deklarationen
und Aufrufe von Funktionen mit variabler Parameterzahl ( z.B. printf )
in portabler Form zu halten.
Es wird in jedem Fall davon ausgegangen, da die entsprechende
Funktion eine bestimmte Anzahl obligatorischer Parameter erwartet.
Zustzliche Parameter knnen schrittweise erfat werden - auch dann,
wenn die Funktion selbst nicht wei, wieviele weitere Angaben zu
bearbeiten sind.
Um eine variable Anzahl von Parametern innerhalb einer Funktion zu
bearbeiten, sind die folgenden Schritte notwendig:
 Deklaration der Funktion mit mindestens einem fixen Parameter.
  Auf den oder die fixen Parameter folgen ein Komma und drei Punkte,
  also
  Ergebnistyp <Name>(parm1, parm2, ...)
  Die fixen Parameter knnen innerhalb der Funktion wie gewhnlich
  ber ihre Namen angesprochen werden.
 Deklaration einer Zeigervariablen des (in stdarg.h definierten)
  Typs Eva_listF innerhalb der Funktion sowie Deklaration lokaler
  Variablen, die in ihrem Typ den erwarteten variablen Parametern
  entsprechen.
 Aufruf von Eva_startF mit zwei Parametern: dem Namen des zuvor
  deklarierten Zeigers (Typ va_list) und dem Namen des letzten fixen
  Parameters - in unserem Beispiel also
  Eva_startF(argpoint, parm2);
  Dieser Aufruf ermittelt anhand des angegebenen letzten fixen
  Parameters, wo der erste variable Parameter gespeichert ist, und
  setzt argpoint entsprechend.
 Aufruf von Eva_argF mit zwei Parametern: dem zuvor mit Eva_startF
  initialisierten Zeiger (argpoint) und dem Typ des ersten erwarteten
  variablen Parameters. Dieser Aufruf liefert den Wert des ersten
  variablen Parameters zurck und erhht argpoint entsprechend:

    onearg = va_arg(argpoint, int);

  Weitere Aufrufe von Eva_argF - wieder mit argpoint, der angegebene
  Typ kann theoretisch ein anderer sein - liefern weitere variable
  Parameter zurck. Eine spezielle Erkennung fr letzter Parameter
  gibt es nicht - hier mu irgendein Wert (wie 0, -1, ENULLF etc.)
  vereinbart werden.
 Nach der Auswertung smtlicher Parameter mu ein Aufruf von Eva_endF
  mit dem Zeiger (argpoint) als Parameter erfolgen. Dieser Aufruf
  setzt den Zeiger auf ENULLF zurck - wenn er fehlt, ergibt sich unter
  Umstnden ein ausgesprochen merkwrdiges Verhalten des Programms.

Querverweis EprintfF, EscanfFName           variable argument - Liefert einen variablen Parameter
               einer Funktion zurck.

Definition     type  va_arg( Eva_listF param, type );

Prototyp in    stdarg.h

Beschreibung   va_arg erwartet einen (zuvor via va_start
               initialisierten) Zeiger des Typs Eva_listF (param) sowie
               einen Variablentyp (type), interpretiert den jeweils
               nchsten variablen Parameter der Funktion als Wert des
               angegebenen Typs und liefert ihn zurck. Danach wird
               der Zeiger um sizeof(type) erhht.

Ergebnis       va_arg liefert den jeweils nchsten variablen
               Parameter der Funktion in dem durch type angegebenen
               Format zurck.

Gruppe         EBehandlung variabler ArgumenteF

Querverweis    Eva_...F   Eva_startF   Eva_endF   Eva_listFName           variable [argument] end - Beendet die Auswertung
               variabler Parameter einer Funktion.

Definition      void  va_end( Eva_listF param );

Prototyp in    stdarg.h

Beschreibung   va_end setzt den als param angegebenen Zeiger des Typs
               Eva_listF auf ENULLF zurck. Danach knnte der Kreislauf
               wiederholt werden (Aufruf von Eva_startF, danach
               Eva_argF usw).

Ergebnis       va_end hat kein direktes Funktionsergebnis

Gruppe         EBehandlung variabler ArgumenteF

Querverweis    Eva_...F   Eva_argF   Eva_startF  Eva_listFName           variable [argument] start - Beginn der Auswertung
               variabler Argumente einer Funktion.

Definition     void  va_start( va_list param, lastfix );

Prototyp in    stdarg.h

Beschreibung   va_start erwartet die Angabe eines Zeigers des Typs
               va_list (param) sowie den Namen des letzten fixen
               Parameters der Funktion (fixend) und setzt param auf
               den Beginn des ersten variablen Parameters der
               Funktion.

Ergebnis       va_start hat kein direktes Funktionsergebnis

Gruppe         EBehandlung variabler ArgumenteF

Querverweis    Eva_...F   Eva_argF   Eva_endFName           variable file print formatted - Formatierte Ausgabe
               zu einer Datei

Definition     #include <stdarg.h>
               int  vfprintf( FILE *fp, const char *format,
                               va_list arglist );

Prototyp in    stdio.h

Beschreibung   Alle EprintfF-Funktionen drucken in formatierter
               Form und erwarten zumindest einen EFormat-StringF
               (variable file printf) - wie EfprintfF, aber mit
               bergabe der Parameter via va_list.

Ergebnis       Smtliche Varianten von EprintfF liefern die Anzahl der
               ausgegebenen Zeichen als Funktionsergebnis zurck.
               Im Falle eines Fehlers ist das Funktionsergebnis EOF.

Gruppe         EI/O-RoutinenF   EGleitkomma-BefehleF

Querverweis    EfreadF    EputcF      EputsF       EscanfF    Eva_...F
               EprintfF   EvprintfF   EvsprintfF   EsprintfF,
               EfprintfFName           variable print formatted - Formatierte Ausgabe
               zu stdout

Definition     #include <stdarg.h>
               int  vprintf( const char *format, va_list arglist );

Prototyp in    stdio.h

Beschreibung   Alle EprintfF-Funktionen drucken in formatierter
               Form und erwarten zumindest einen EFormat-StringF
               (variable printf) - wie EprintfF, aber mit bergabe der
               Parameter via va_list.

Ergebnis       Smtliche Varianten von EprintfF liefern die Anzahl der
               ausgegebenen Zeichen als Funktionsergebnis zurck.
               Im Falle eines Fehlers ist das Funktionsergebnis EOF.

Gruppe         EI/O-RoutinenF   EGleitkomma-BefehleF

Querverweis    EfreadF    EputcF       EputsF       EscanfF    Eva_...F
               EprintfF   EvfprintfF   EvsprintfF   EsprintfF
               EfprintfFName           variable string print formatted - Formatierte Ausgabe
               in einen String

Definition     #include <stdarg.h>
               int  vsprintf( char *buffer, const char *format,
                               va_list arglist );

Prototyp in    stdio.h

Beschreibung   Alle EprintfF-Funktionen drucken in formatierter
               Form und erwarten zumindest einen EFormat-StringF
               (variable string printf) - wie EsprintfF, aber mit
               bergabe der Parameter via va_list.

Ergebnis       Smtliche Varianten von EprintfF liefern die Anzahl der
               ausgegebenen Zeichen als Funktionsergebnis zurck,
               wobei das abschlieende Nullzeichen bei vsprintf nicht
               mitgezhlt wird. Im Falle eines Fehlers ist das
               Funktionsergebnis EOF.

Gruppe         EI/O-RoutinenF   EGleitkomma-BefehleF

Querverweis    EfreadF    EputcF       EputsF      EscanfF    Eva_...F
               EprintfF   EvfprintfF   EvprintfF   EsprintfF
               EfprintfFName           write - schreibt Daten in eine Datei

Definition     size_t  write( int handle, void *buf, size_t len );

Prototyp in    stdio.h

Beschreibung   Die Funktion write liest len Bytes ab der durch buf
               angegebenen Adresse aus dem Speicher und schreibt sie
               in die durch handle bezeichnete Datei. handle ist eine
               vom EBetriebssystemF vergebene Referenznummer, die durch
               creat oder open erzeugt wird.

               Wenn die Datei im Modus Append (O_APPEND) erffnet
               wurde, setzt write die momentane Position automatisch
               auf das Dateiende (bereits existierende Daten knnen
               also nicht berschrieben werden). Bei Diskettendateien
               schreibt write ansonsten ab der momentanen Position
               (siehe ElseekF), bei Gerte-Dateien wird direkt zum
               jeweiligen Gert geschrieben (bzw. in den dazugehrigen
               Puffer - siehe setbuf).

Ergebnis       Die Funktion liefert die Anzahl der tatschlich ge-
               schriebenen Bytes zurck (wobei write die aus Zeilen-
               vorschben erzeugten CR/LF-Kombinationen als ein Byte
               zhlt). Ein Funktionsergebnis von weniger als len steht
               normalerweise fr Diskette voll. Im Falle eines
               Fehlers wird der Wert -1 zurckgeliefert und EerrnoF
               bekommt einen der folgenden Werte:
                               EACCES    EBADF

Gruppe         EI/O-RoutinenF
Querverweis    EcreatF   ElseekF   EopenF   EreadFerrno ist in ERRNO.H definiert und kann folgende Werte annehmen:

EPERM   1  /* file permission denied     Dateizugriff nicht erlaubt  */
ENOENT  2  /* file not found             Suchweg/Datei nicht gefunden*/
EIO     5  /* general i/o error          Ein-/Ausgabefehler          */
EBADF   9  /* invalid file handle        Ungltiges Handle           */
EILLSPE 10 /* illegal file specification Unerlaubte Spezifikation    */
EINVMEM 11 /* invalid heap block         Ungltiger Heapblock        */
ENOMEM  12 /* heap overflow              Heapberlauf                */
EACCES  13 /* file access mode error     Zugriff nicht erlaubt       */
EEXIST  17 /* file already exists        Datei existiert schon       */
EPLFMT  18 /* program load format error  Ladefehler wegem falschem   */
           /*                            Programmformat              */
ENODEV  19 /* device error               Devicefehler                */
ENOTDIR 20 /* path not found             Pfad nicht gefunden         */
EINVAL  22 /* invalid parameter          ungltiger Parameter        */
ENFILE  23 /* file table overflow        Zuviele Dateien             */
EMFILE  24 /* too many open files        Zuviele offene Dateien      */
ENOSPC  28 /* disk full                  Diskette voll               */
ESPIPE  29 /* seek error                 Seekfehler                  */
EROFS   30 /* read only device           Nur lesen erlaubt           */
EDOM    33 /* domain error               Argumente auerhalb des     */
           /*                            zulssigen Bereichs         */
ERANGE  34 /* range error                Ergebnis auerhalb des      */
           /*                            Bereichs                    */
ENMFILE 35 /* no more matching file      keine weitere Datei
                                         vorhanden (EfindnextF)        */Dieses Makro bewirkt, das einige Fliekommafunktionen nicht in den 
entsprechenden FPU-befehl  bersetzt werden, falls der Schalter -8
bei den ECompileroptionenF gesetzt ist.
Folgende Fliekommafunktionen knnen bersetzt werden:

/* Arithmetische Befehle: */
EfabsF       EfgetexpF    EfgetmanF    EfintF       EfintrzF
EfmodF       EfremF       EldexpF      EfsgldivF    EfsglmulF

/* Potenzen und Logarithmen: */
EexpF        Efetoxm1F    ElogF        Eflognp1F    Elog10F
EsqrtF       Epow10F      EpowF

/* Trigonometrie: */
EacosF       EasinF       EatanF       EcosF        EsinF
EtanF

/* Hyperbelfunktionen: */
EatanhF      EcoshF       EsinhF       EtanhFName           round - Runden einer Fliekommazahl

Definition     double  round( double x );

Prototyp in    math.h

Beschreibung   round rundet eine Fliekommazahl nach dem round to
               nearest-Algorithmus. Das heit, es wird zur nchst
               gelegenen ganzen Zahl auf- bzw. abgerundet. Ist der
               Nachkommaanteil genau 0.5, so wird die gerade Zahl
               gerundet, beispielsweise
                      146.67       ergibt       146.0
                      146.5        ergibt       146.0
                      147.5        ergibt       148.0

Ergebnis       Als Ergebnis erhlt man die gerundete Zahl.

Gruppe         EMathematische RoutinenF   EGleitkomma-BefehleF

Querverweis    EtruncFName           truncate - Ganzzahligen Anteil einer Fliekommazahl
               ermitteln.

Definition     double  trunc( double x );

Prototyp in    math.h

Beschreibung   trunc ermittelt den ganzzahligen Anteil einer Flie-
               kommazahl, sprich, es schneidet die Nachkommastellen
               ab. Zum Beispiel:
                      146.67       ergibt       146.0
                      -1.5         ergibt       -1.0

Ergebnis       Als Ergebnis erhlt man den ganzahligen Anteil der
               Fliekommazahl.

Gruppe         EMathematische RoutinenF   EGleitkomma-BefehleF

Querverweis    EroundFName           random - Zufallszahl ermitteln.

Definition     int  random( int num );

Prototyp in    stdlib.h

Beschreibung   random ist als Makro definiert und liefert eine
               Zufallszahl aus dem Bereich von Null bis num - 1.

Ergebnis       Als Ergebnis erhlt man eine ganzzahlige Zufalls-
               zahl zwischen 0 und num - 1.

Gruppe         EMathematische RoutinenF   EGleitkomma-BefehleF

Querverweis    ErandF   EsrandFBIOS

Die BIOS-Funktionen stellen die unterste Schnittstelle des
EBetriebssystemFs zur Hardware des Atari ST dar. Diese Funktionen,
die in Assembler alle ber den 680X0-Trap #13 angesprochen werden,
erscheinen etwas zusammengewrfelt. Nur wenige dieser Funktionen
sollten in Applikationsprogrammen verwendet werden, da wesentlich
leistungsfhigere Funktionen auf hherer Ebene als bessere Alterna-
tive verfgbar sind. In der nachfolgenden bersicht finden Sie alle
BIOS-Funktionen des Atari ST. Die erste Zahl gibt die Funktionsnummer
des Traps an.

0  EGetmpbF   Speicherparameterblock ermitteln.
1  EBconstatF Status eines Eingabegerts ermitteln.
2  EBconinF   Zeichen von Eingabegert einlesen.
3  EBconoutF  Zeichen auf Ausgabegert ausgeben.
4  ERwabsF    Sektoren auf Laufwerken lesen und schreiben.
5  ESetexcF   Exceptionvektoren ermitteln und festlegen.
6  ETickcalF  Timer-Konstante ermitteln.
7  EGetbpbF   BIOS-Parameterblock eines Gerts ermitteln.
8  EBcostatF  Status eines Ausgabegerts ermitteln.
9  EMediachF  Ermitteln, ob die Diskette gewechselt wurde.
10 EDrvmapF   Angeschlossene Laufwerke ermitteln.
11 EKbshiftF  Tastaturstatus ermitteln.

Querverweis     EVT-52-TerminalFDie Ausgabefunktionen des EGemdosF bzw. EBiosF knnen ein
VT-52 Videoterminal emulieren. Dabei stehen folgende Steuercodes 
in der E#includeF-datei screen.h zur Verfgung:

EBellF                    Bell
ETabF                     Tabulator
EReturnF                  Carriage return
ELine_feedF               Line feed
ENext_lineF               CR/LF

ECur_upF                  Cursor up
EScroll_upF               Cursor up and insert
ECur_downF                Cursor down
ECur_rightF               Cursor right
ECur_leftF                Cursor left
ECur_homeF                Cursor home

EClear_homeF              Clear screen
EClear_downF              Clear to end of screen
EClear_upF                Clear to start of screen
EClear_lineF              Clear line
EClear_eolF               Clear to end of line
EClear_solF               Clear to start of line

EIns_lineF                Insert line
EDel_lineF                Delete line

ESave_posF                Save cursor position
ELoad_posF                Restore cursor position
EGoto_posF                Set cursor position

EInkF                     Foreground color
EPaperF                   Background color
ERev_onF                  Reverse video
ERev_offF                 Normal video

ECur_onF                  Show cursor
ECur_offF                 Hide cursor

EWrap_onF                 Wrap on
EWrap_offF                Wrap off

Zustzlich wurden in SCREEN.H einige ntzliche EFunktionen-MakrosF
mit aufgenommen:
EBlink_onF                Blink on
EBlink_offF               Blink off
ESet_blinkF               Set blink rate
EGet_blinkF               Get Blink rateName           bios - BIOS-Trap ausfhren.

Definition     long bios (void, ...) ;

Prototyp in    tos.h

Beschreibung   Die Routine bios fhrt einen TRAP 14 durch. Die
               bergebenen Parameter hngen von der jeweiligen BIOS-
               Funktion ab.
Ergebnis       Die Funktion liefert als Ergebnis einen Wert vom
               Datentyp long.
Querverweis    Bibliotheksfunktionen: EgemdosF   ExbiosF
               Betriebssystem: EBiosFName           BIOS console input - Zeichen einlesen.

Biosnummer     2

Definition     long Bconin (int dev) ;

Prototyp in    tos.h
Beschreibung   Die BIOS-Routine Bconin liest ein Zeichen von einem
               Peripheriegert dev ein. Als dev knnen am Atari ST
               folgende Gerte angegeben werden.
0              prn: (Drucker)
1              aux: (serielle Schnittstelle
2              con: (Console)
3              MIDI-Schnittstelle
4              intelligente Tastatur
5              Bildschirm
Ab TOS030 (TT):
6              ST kompatible RS232-Port (Modem 1)
7              SCC Kanal B (Modem 2)
8              TTMFP serial Port (Modem 3)
9              SCC Kanal A (Modem 4)
               Eine falsche Angabe fr dev kann zum Absturz des
               Systems fhren.
Ergebnis       Die Funktion liefert als Ergebnis das eingelesene
               Zeichen. Beim Lesen von der Tastatur ist der
               entsprechende Scan-Code Von Funktionstasten und Cursor-
               Funktionen zu beachten.
Querverweis    EBconoutF   EKeytblF   EBconmapFName           BIOS console output - Zeichen ausgeben.

Biosnummer     3

Definition     void Bconout (int dev, int c) ;

Prototyp in    tos.h

Beschreibung   Die BIOS-Routine Bconout schreibt das Zeichen c auf das
               Peripheriegert dev. Als dev knnen am Atari ST
               folgende Gerte angegeben werden.
0              prn: (Drucker)
1              aux: (serielle Schnittstelle
2              con: (Console, EVT-52-TerminalF)
3              MIDI-Schnittstelle
4              intelligente Tastatur
5              Bildschirm
Ab TOS030 (TT):
6              ST kompatible RS232-Port (Modem 1)
7              SCC Kanal B (Modem 2)
8              TTMFP serial Port (Modem 3)
9              SCC Kanal A (Modem 4)

               Eine falsche Angabe fr dev kann zum Absturz des
               Systems fhren. Smtliche Codes von 0x00 bis 0xFF
               werden beim Zeichen c als druckbare Zeichen
               interpretiert.
Ergebnis       Die Funktion liefert kein Ergebnis.
Querverweis    EBconinF   EBconstatF   EBconmapFName           Bios console status - Eingabestatus eines Peripherie-
               gertes.

Biosnummer     1

Definition     int Bconstat (int dev) ;

Prototyp in    tos.h

Beschreibung   Die BIOS-Routine Bconstat ermittelt den Eingabestatus
               eines Standardperipheriegertes dev. Als dev knnen am
               Atari ST folgende Gerte angegeben werden.
0              prn: (Drucker)
1              aux: (serielle Schnittstelle
2              con: (Console)
3              MIDI-Schnittstelle
4              intelligente Tastatur
5              Bildschirm
Ab TOS030 (TT):
6              ST kompatible RS232-Port (Modem 1)
7              SCC Kanal B (Modem 2)
8              TTMFP serial Port (Modem 3)
9              SCC Kanal A (Modem 4)
               Eine falsche Angabe fr dev kann zum Absturz des
               Systems fhren.
Ergebnis       Die Funktion liefert als Ergebnis -1, wenn Zeichen im
               Puffer liegen und 0, wenn dies nicht der Fall ist.
Querverweis    EBconinF   EBconoutF   EBconmapFName           bios output status - Status eines Standardausgabe-
               gertes ermitteln.

Biosnummer     8

Definition     long Bcostat (int dev) ;

Prototyp in    tos.h

Beschreibung   Die BIOS-Routine Bcostat ermittelt den Status eines
               Standardausgabegertes dev. Als dev knnen am Atari ST
               folgende Gerte angegeben werden.
0              prn: (Drucker)
1              aux: (serielle Schnittstelle
2              con: (Console)
3              MIDI-Schnittstelle
4              intelligente Tastatur
5              Bildschirm
Ab TOS030 (TT):
6              ST kompatible RS232-Port (Modem 1)
7              SCC Kanal B (Modem 2)
8              TTMFP serial Port (Modem 3)
9              SCC Kanal A (Modem 4)
Ergebnis       Die Funktion liefert als Ergebnis den Status des Aus-
               gabegerts, nmlich -1, wenn Zeichen geschrieben werden
               knnen, und 0, wenn der Puffer voll ist.
Querverweis    EBconoutF   EBconmapFName           drive map - ermittelt die angeschlossenen Laufwerke.

Biosnummer     10

Definition     long Drvmap(void) ;

Prototyp in    tos.h

Beschreibung   Die BIOS-Routine Drvmap ermittelt die angeschlossenen
               Laufwerke. Fr jedes angeschlossene Laufwerk wird ein
               Bit gesetzt. Angefangen von Bit 0 (Laufwerk A:) bis hin
               zu Bit 15 (Laufwerk P:) werden alle Laufwerke
               aufgefhrt.
Ergebnis       Die Funktion liefert als Ergebnis einen Bitvektor fr
               die angeschlossenen Laufwerke.Name           get bios parameter block - BIOS-Parameterblock eines
               Gertes ermitteln.

Biosnummer     7

Definition     EBPBF *Getbpb( int dev );

Prototyp in    tos.h

Beschreibung   Die BIOS-Routine Getbpb ermittelt den BIOS-Parameter-
               block des Gerts dev. 

Ergebnis       Die Funktion liefert als Ergebnis die Adresse des BIOS-
               Parameterblocks.Name           get memory parameter block - Speicherparameter-
               Block kopieren.

Biosnummer     0

Definition     void Getmpb( MPB *ptr );

Prototyp in    tos.h

Beschreibung   Die BIOS-Routine Getmpb kopiert den Speicherparameter-
               block in den Bereich ptr. ptr mu auf einen 12 Byte
               groen Speicherbereich zeigen:
typedef struct
{
    void     *mfl;      /* Liste des freien Speicher */
    void     *mal;      /* Liste des belegten Speicher */
    void     *rover;    /* verschiebbarer Zeiger */
} MPB;
               Die verketteten Listen sind nur im Supervisor-Modus
               zugnglich. Achtung: In bisherigen Versionen des TOS
               arbeitet diese Funktion fehlerhaft.
Ergebnis       Die Funktion liefert kein Ergebnis.Name           keyboard shift status - ermittelt oder ndert den
               Status der Spezial-Tasten.

Biosnummer     11

Definition     long Kbshift(int mode) ;

Prototyp in    tos.h

Beschreibung   Die BIOS-Routine Kbshift ermittelt oder ndert den
               aktuellen Tastatur-Status. Wenn mode negativ ist, wird
               der Status lediglich ermittelt. Wenn mode 0 oder grer
               0 ist, dann wird der entsprechende Status neu gesetzt.
               Die einzelnen Bits sind wie folgt definiert:
Bit            Bedeutung
0              Shift-Taste rechts
1              Shift-Taste links
2              Control-Taste
3              Alternate-Taste
4              Caps Lock
5              Maustaste rechts
6              Maustaste links
7              reserviert (0)
Ergebnis       Die Funktion liefert als Ergebnis den gesetzten
               Tastatur-Status.Name           media change - stellt fest ob der Datentrger
               gewechselt wurde.

Biosnummer     9

Definition     long Mediach (int dev) ;

Prototyp in    tos.h

Beschreibung   Die BIOS-Routine Mediach stellt fest, ob der Daten-
               trger gewechselt wurde.
Ergebnis       Die Funktion liefert als Ergebnis einen Integer-Wert
               mit folgender Bedeutung:
0              Diskette wurde nicht gewechselt
1              Diskette wurde vieleicht gewechselt
2              Diskette wurde gewechselt.Name           read write absolute - direkter Lese-/Schreibzugriff
               auf ein Laufwerk.

Biosnummer     4

Definition     long Rwabs (int rwflag, void *buff, int cnt, int recnr,
                           int dev) ;

Prototyp in    tos.h

Beschreibung   Die BIOS-Routine Rwabs liest oder schreibt Daten direkt
               vom bzw. auf das Laufwerk, das mit dev angegeben wurde.
               Der Parameter rwflag bestimmt, ob gelesen (0) oder
               geschrieben (1) werden soll. Darberhinaus gibt es noch
               zwei weitere Werte fr diesen Parameter, um einen
               Diskettenwechsel zu ignorieren: Lesen (2) und Schreiben
               (3). Es werden cnt Zeichen vom Puffer buff bertragen.
               In recnr wird der Startsektor auf dem Laufwerk
               angegeben.
Ergebnis       Die Funktion liefert als Ergebnis eine 0, wenn der
               Zugriff erfolgreich war, ansonsten eine negative Zahl.Name           set exception vector - Interrupt-Vektoren setzen.

Biosnummer     5

Definition     void (*Setexc( int number, void (*exchdlr)() )) ();

Prototyp in    tos.h

Beschreibung   Die BIOS-Routine Setexc setzt einen neuen Interrupt-
               vektor fr den Interrupt mit der Nummer number auf die
               Adresse vektor. Wenn als Vektor-Adresse -1 bergeben
               wird, dann wird kein neuer Vektor gesetzt, sondern
               lediglich die alte Vektor-Adresse wird gelesen.
Ergebnis       Die Funktion liefert als Ergebnis die gesetzte Adresse.Name           tick calculation - Zeitdifferenz zwischen zwei Timer-
               Aufrufen ermitteln.

Biosnummer     6

Definition     long Tickcal(void);

Prototyp in    tos.h

Beschreibung   Die BIOS-Routine Tickcal liefert die Anzahl an Milli-
               sekunden, die zwischen zwei Timerticks verstreichen.
Ergebnis       Die Funktion liefert als Ergebnis die Anzahl der Milli-
               sekunden.Name           Bell - Systemglocke.

Definition     #define Bell() Cconout( '\a' )

Definition in  screen.h

Beschreibung   Bell ist ein  Funktionen-Makro, das die Systemglocke
               ertnen lt. Damit knnen Sie sehr leicht ein akus-
               tisches Signal verwenden.
Querverweis    EEscapesequenzenF     EVT-52-TerminalF
               EFunktionen-MakrosFName           Tabulator - Cursor zur nchsten Tabulatorposition.

Definition     #define Tab() Cconout( '\t' )

Definition in  screen.h

Beschreibung   Tab ist ein Funktionen-Makro, das den Cursor an die
               nchste Tabulatorposition setzt.
Querverweis    EEscapesequenzenF     EVT-52-TerminalF
               EFunktionen-MakrosFName           Carriage Return - Cursor zum Anfang der Zeile.

Definition     #define Return() Cconout( '\r' )

Definition in  screen.h

Beschreibung   Tab ist ein Funktionen-Makro, das den Cursor an den
               Anfang der aktuellen Zeile setzt.
Querverweis    EEscapesequenzenF     EVT-52-TerminalF
               EFunktionen-MakrosFName           Line feed - Zeilenvorschub

Definition     #define Line_feed() Cconout( '\n' )

Definition in  screen.h

Beschreibung   Line_feed ist ein Funktionen-Makro, das den Cursor in
               die nchste Zeile setzt (Zeilenvorschub).
Querverweis    EEscapesequenzenF     EVT-52-TerminalF
               EFunktionen-MakrosFName           CR/LF - Cursor in eine neue Zeile.

Definition     #define NEXT_LINE   "\r\n"
               #define Next_line() Cconws( NEXT_LINE )

Definition in  screen.h

Beschreibung   Next_line ist ein Funktionen-Makro, mit der der TOS-cursor
               an den Anfang der nchsten Zeile positioniert werden kann.  
               NEXT_LINE ist  ein  Konstanten-Makro,  welches  die  VT-52 
               Steuersequenz fr CR/LF definiert.  Damit haben Sie  die
               Mglichkeit, diese Sequenz in eigenen Stringkonstanten  zu
               verwenden.
Querverweis    EFunktionen-MakrosF   EKonstanten-MakrosF
               EEscapesequenzenF     EVT-52-TerminalFName           Cursor up - Cursor eine Zeile nach oben.

Definition     #define CUR_UP   "\33A"
               #define Cur_up() Cconws( CUR_UP )

Definition in  screen.h

Beschreibung   Cur_up ist ein  Funktionen-Makro,  mit der der  TOS-cursor  
               um eine Zeile nach oben positioniert werden kann. Befindet
               sich  der  Cursor bereits in der  obersten Zeile, passiert
               nichts.
               CUR_UP   ist   ein  Konstanten-Makro,  welches  die  VT-52 
               Steuersequenz fr Cursor up definiert.  Damit haben  Sie 
               die Mglichkeit, diese Sequenz in eigenen Stringkonstanten
               zu verwenden.
Querverweis    EFunktionen-MakrosF   EKonstanten-MakrosF
               EEscapesequenzenF     EVT-52-TerminalFName           Cursor up and insert - Cursor eine Zeile nach oben und
               scrollen.

Definition     #define SCROLL_UP   "\33I"
               #define Scroll_up() Cconws( SCROLL_UP )

Definition in  screen.h

Beschreibung   Scroll_up ist ein Funktionen-Makro, mit der der TOS-cursor
               um eine Zeile nach oben positioniert werden kann. Befindet
               sich  der  Cursor bereits in der  obersten Zeile, wird der
               Bildschirminhalt um  eine Zeile  nach unten gescrollt  und
               eine Leerzeile eingefgt.
               SCROLL_UP ist  ein  Konstanten-Makro,  welches  die  VT-52 
               Steuersequenz fr  Cursor up and insert definiert. Damit
               haben  Sie  die  Mglichkeit,  diese  Sequenz  in  eigenen 
               Stringkonstanten zu verwenden.
Querverweis    EFunktionen-MakrosF   EKonstanten-MakrosF
               EEscapesequenzenF     EVT-52-TerminalFName           Cursor down - Cursor eine Zeile nach unten.

Definition     #define CUR_DOWN   "\33B"
               #define Cur_down() Cconws( CUR_DOWN )

Definition in  screen.h

Beschreibung   Cur_down ist ein Funktionen-Makro,  mit der der TOS-cursor  
               um eine Zeile nach unten positioniert werden kann. Befindet
               sich  der  Cursor bereits in der  untersten Zeile, passiert
               nichts.
               CUR_DOWN  ist  ein  Konstanten-Makro,  welches  die  VT-52 
               Steuersequenz fr Cursor down definiert. Damit haben Sie 
               die Mglichkeit, diese Sequenz in eigenen Stringkonstanten
               zu verwenden.
Querverweis    EFunktionen-MakrosF   EKonstanten-MakrosF
               EEscapesequenzenF     EVT-52-TerminalFName           Cursor right - Cursor eine Spalte nach rechts.

Definition     #define CUR_RIGHT   "\33C"
               #define Cur_right() Cconws( CUR_RIGHT )

Definition in  screen.h

Beschreibung   Cur_right ist ein Funktionen-Makro,  mit der der TOS-cursor  
               um  eine Spalte nach rechts  positioniert werden kann.  Be-
               findet sich  der Cursor bereits in der ganz rechten Spalte,
               passiert nichts.
               CUR_RIGHT ist  ein  Konstanten-Makro,  welches  die  VT-52 
               Steuersequenz  fr Cursor right  definiert.  Damit haben 
               Sie die Mglichkeit, diese Sequenz  in eigenen Stringkons-
               tanten zu verwenden.
Querverweis    EFunktionen-MakrosF   EKonstanten-MakrosF
               EEscapesequenzenF     EVT-52-TerminalFName           Cursor left - Cursor eine Spalte nach links.

Definition     #define CUR_LEFT   "\33D"
               #define Cur_left() Cconws( CUR_LEFT )

Definition in  screen.h

Beschreibung   Cur_left  ist ein Funktionen-Makro,  mit der der TOS-cursor  
               um  eine Spalte nach  links  positioniert werden kann.  Be-
               findet sich  der Cursor bereits in der  ganz linken Spalte,
               passiert nichts.
               CUR_LEFT  ist  ein  Konstanten-Makro,  welches  die  VT-52 
               Steuersequenz  fr  Cursor left  definiert.  Damit haben 
               Sie die Mglichkeit, diese Sequenz  in eigenen Stringkons-
               tanten zu verwenden.
Querverweis    EFunktionen-MakrosF   EKonstanten-MakrosF
               EEscapesequenzenF     EVT-52-TerminalFName           Cursor home - Cursor in die obere linke Ecke.

Definition     #define CUR_HOME   "\33H"
               #define Cur_home() Cconws( CUR_HOME )

Definition in  screen.h

Beschreibung   Cur_home  ist ein Funktionen-Makro,  mit der der TOS-cursor  
               in die obere linke Ecke des Bildschirms positioniert werden 
               kann.
               CUR_HOME  ist  ein  Konstanten-Makro,  welches  die  VT-52 
               Steuersequenz  fr  Cursor home  definiert.  Damit haben 
               Sie die Mglichkeit, diese Sequenz  in eigenen Stringkons-
               tanten zu verwenden.
Querverweis    EFunktionen-MakrosF   EKonstanten-MakrosF
               EEscapesequenzenF     EVT-52-TerminalFName           Clear screen - Bildschirm lschen.

Definition     #define CLEAR_HOME   "\33E"
               #define Clear_home() Cconws( CLEAR_HOME )

Definition in  screen.h

Beschreibung   Clear_home ist ein Funktionen-Makro,  mit der der gesamte
               Bildschirm gelscht und der TOS-Cursor in die obere linke
               Ecke des Bildschirms positioniert werden kann.
               CLEAR_HOME ist ein  Konstanten-Makro,  welches  die VT-52 
               Steuersequenz fr Clear screen  definiert.  Damit haben 
               Sie die Mglichkeit, diese Sequenz  in eigenen Stringkons-
               tanten zu verwenden.
Querverweis    EFunktionen-MakrosF   EKonstanten-MakrosF
               EEscapesequenzenF     EVT-52-TerminalFName           Clear to end of screen - Bildschirm ab Cursor lschen.

Definition     #define CLEAR_DOWN   "\33J"
               #define Clear_down() Cconws( CLEAR_DOWN )

Definition in  screen.h

Beschreibung   Clear_down ist ein Funktionen-Makro, mit der der Bildschirm
               ab der Cursorposition gelscht werden kann.
               CLEAR_DOWN ist ein   Konstanten-Makro,  welches  die  VT-52 
               Steuersequenz fr Clear to end of screen definiert. Damit
               haben Sie die Mglichkeit, diese Sequenz in eigenen String-
               konstanten zu verwenden.
Querverweis    EFunktionen-MakrosF   EKonstanten-MakrosF
               EEscapesequenzenF     EVT-52-TerminalFName           Clear to start of screen - Bildschirm bis Cursor lschen.

Definition     #define CLEAR_UP   "\33d"
               #define Clear_up() Cconws( CLEAR_UP )

Definition in  screen.h

Beschreibung   Clear_up ist ein Funktionen-Makro, mit der der Bildschirm
               bis zur Cursorposition gelscht werden kann.
               CLEAR_UP ist  ein  Konstanten-Makro,  welches  die  VT-52 
               Steuersequenz  fr Clear to start of screen  definiert.
               Damit haben Sie die Mglichkeit, diese Sequenz in eigenen 
               Stringkonstanten zu verwenden.
Querverweis    EFunktionen-MakrosF   EKonstanten-MakrosF
               EEscapesequenzenF     EVT-52-TerminalFName           Clear line - Aktuelle Zeile lschen.

Definition     #define CLEAR_LINE   "\33l"
               #define Clear_line() Cconws( CLEAR_LINE )

Definition in  screen.h

Beschreibung   Clear_line ist ein Funktionen-Makro, mit der die aktuelle
               Zeile gelscht werden kann. Die nachfolgenden Zeilen wer-
               den nicht nachgeschoben.  Der Cursor  wird zum Anfang der
               Zeile gesetzt.
               CLEAR_LINE ist ein Konstanten-Makro,  welches  die  VT-52 
               Steuersequenz fr Clear line definiert. Damit haben Sie
               die Mglichkeit,  diese Sequenz in eigenen Stringkonstan-
               ten zu verwenden.
Querverweis    EFunktionen-MakrosF   EKonstanten-MakrosF
               EEscapesequenzenF     EVT-52-TerminalFName           Clear to end of line - Aktuelle Zeile ab Cursor lschen.

Definition     #define CLEAR_EOL   "\33K"
               #define Clear_eol() Cconws( CLEAR_EOL )

Definition in  screen.h

Beschreibung   Clear_eol ist ein Funktionen-Makro, mit der die aktuelle
               Zeile ab der Cursorposition gelscht werden kann.
               CLEAR_EOL ist ein Konstanten-Makro,  welches  die  VT-52 
               Steuersequenz fr  Clear to end of line definiert. Da-
               mit haben Sie die Mglichkeit,  diese Sequenz in eigenen
               Stringkonstanten zu verwenden.
Querverweis    EFunktionen-MakrosF   EKonstanten-MakrosF
               EEscapesequenzenF     EVT-52-TerminalFName           Clear to start of line - Aktuelle Zeile ab Cursor lschen.

Definition     #define CLEAR_SOL   "\33o"
               #define Clear_sol() Cconws( CLEAR_SOL )

Definition in  screen.h

Beschreibung   Clear_sol ist ein Funktionen-Makro, mit der die aktuelle
               Zeile bis zur Cursorposition gelscht werden kann.
               CLEAR_SOL ist ein Konstanten-Makro,  welches  die  VT-52 
               Steuersequenz   fr  Clear to start of line  definiert. 
               Damit haben Sie die Mglichkeit, diese Sequenz in eigenen
               Stringkonstanten zu verwenden.
Querverweis    EFunktionen-MakrosF   EKonstanten-MakrosF
               EEscapesequenzenF     EVT-52-TerminalFName           Insert line - Zeile einfgen.

Definition     #define INS_LINE   "\33k"
               #define Ins_line() Cconws( INS_LINE )

Definition in  screen.h

Beschreibung   Ins_line ist ein Funktionen-Makro,  mit der  eine neue
               Zeile an der Cursorposition eingefgt werden kann. Der
               Cursor wird an den Anfang der neuen Zeile gesetzt.
               INS_LINE ist ein Konstanten-Makro,  welches die  VT-52 
               Steuersequenz fr Insert line definiert. Damit haben
               Sie die Mglichkeit,  diese Sequenz in eigenen String-
               konstanten zu verwenden.
Querverweis    EFunktionen-MakrosF   EKonstanten-MakrosF
               EEscapesequenzenF     EVT-52-TerminalFName           Delete line - Zeile entfernen.

Definition     #define DEL_LINE   "\33M"
               #define Del_line() Cconws( DEL_LINE )

Definition in  screen.h

Beschreibung   Del_line ist ein Funktionen-Makro, mit der die aktuelle
               Zeile  gelscht  werden kann.  Die nachfolgenen  Zeilen
               werden nachgeschoben, der Cursor wird an den Anfang der
               Zeile gesetzt.
               DEL_LINE ist ein Konstanten-Makro,  welches die  VT-52 
               Steuersequenz fr Delete line definiert. Damit haben
               Sie die Mglichkeit,  diese Sequenz in eigenen String-
               konstanten zu verwenden.
Querverweis    EFunktionen-MakrosF   EKonstanten-MakrosF
               EEscapesequenzenF     EVT-52-TerminalFName           Save cursor position - Cursor "merken".

Definition     #define SAVE_POS   "\33j"
               #define Save_pos() Cconws( SAVE_POS )

Definition in  screen.h

Beschreibung   Save_pos ist ein Funktionen-Makro, mit der die aktuelle
               Cursorposition  in einen  internen  Puffer  gespeichert
               wird. Die gespeicherte Cursorposition  kann spter  mit
               ELoad_posF resaturiert werden.
               SAVE_POS ist ein  Konstanten-Makro,  welches die  VT-52 
               Steuersequenz  fr  Save cursor position   definiert. 
               Damit haben Sie  die Mglichkeit,  diese Sequenz in ei-
               genen Stringkonstanten zu verwenden.
Querverweis    EFunktionen-MakrosF   EKonstanten-MakrosF
               EEscapesequenzenF     EVT-52-TerminalFName           Restore cursor position - Cursor restaurieren.

Definition     #define LOAD_POS   "\33k"
               #define Load_pos() Cconws( LOAD_POS )

Definition in  screen.h

Beschreibung   Load_pos ist ein Funktionen-Makro, mit der der Cursor
               wieder an  die Stelle positioniert  werden kann,  die 
               vorher mit ESave_posF "gemerkt" wurde.
               LOAD_POS ist ein Konstanten-Makro,  welches die VT-52 
               Steuersequenz fr Restore cursor position definiert. 
               Damit haben Sie die Mglichkeit, diese Sequenz in ei-
               genen Stringkonstanten zu verwenden.
Querverweis    EFunktionen-MakrosF   EKonstanten-MakrosF
               EEscapesequenzenF     EVT-52-TerminalFName           Set cursor position - Cursor positionieren.

Definition     #define GOTO_POS         "\33Y"
               #define Goto_pos( x, y ) (Cconws( GOTO_POS ),\
                                         Cconout( ' ' + x ),\ 
                                         Cconout( ' ' + y ))

Definition in  screen.h

Beschreibung   Goto_pos ist ein Funktionen-Makro,  mit der der  Cursor
               an x-te Zeile und  y-te Spalte positioniert werden kann.
               Beachten Sie bitte, da die Zhlung bei 0 beginnt.
               GOTO_POS ist ein  Konstanten-Makro,   welches die VT-52 
               Steuersequenz fr Set cursor position  definiert. Da-
               mit haben Sie die Mglichkeit, diese Sequenz in eigenen 
               Stringkonstanten zu verwenden.
Querverweis    EFunktionen-MakrosF   EKonstanten-MakrosF
               EEscapesequenzenF     EVT-52-TerminalFName           Foreground color - Textfarbe setzen.

Definition     #define INK      "\33b"
               #define Ink( c ) (Cconws( INK ), Cconout( c ))

Definition in  screen.h

Beschreibung   Ink ist ein Funktionen-Makro, mit der die  Textfarbe ge-
               setzt werden kann. Die Anzahl der verfgbaren Farben ist
               auflsungsabhngig.
               INK  ist ein Konstanten-Makro,  welches die VT-52 Steuer-
               sequenz fr Foreground color definiert. Damit haben Sie
               die Mglichkeit,  diese Sequenz in eigenen Stringkonstan-
               ten zu verwenden.
Querverweis    EFunktionen-MakrosF   EKonstanten-MakrosF
               EEscapesequenzenF     EVT-52-TerminalFName           Background color - Hintergrundfarbe setzen.

Definition     #define PAPER      "\33c"
               #define Paper( c ) (Cconws( PAPER ), Cconout( c ))

Definition in  screen.h

Beschreibung   Paper ist ein Funktionen-Makro, mit der die Hintergrund-
               farbe gesetzt  werden kann.  Die Anzahl der  verfgbaren 
               Farben ist auflsungsabhngig.
               PAPER ist ein Konstanten-Makro, welches die VT-52 Steuer-
               sequenz fr Background color definiert. Damit haben Sie
               die Mglichkeit,  diese Sequenz in eigenen Stringkonstan-
               ten zu verwenden.
Querverweis    EFunktionen-MakrosF   EKonstanten-MakrosF
               EEscapesequenzenF     EVT-52-TerminalFName           Reverse video - Reverse Schrift einschalten.

Definition     #define REV_ON    "\33p"
               #define Rev_on() Cconws( REV_ON )

Definition in  screen.h

Beschreibung   Rev_on ist ein Funktionen-Makro,  mit der die  reverse 
               Schrift (Hintergrund- und Textfarbe vertauscht) einge-
               schaltet  werden kann.  Dieser Modus kann mit  ERev_offF
               wieder ausgeschaltet weden.
               REV_ON  ist ein  Konstanten-Makro,  welches die  VT-52 
               Steuersequenz fr Reverse video definiert. Damit ha-
               ben Sie  die  Mglichkeit,  diese Sequenz  in  eigenen
               Stringkonstanten zu verwenden.
Querverweis    EFunktionen-MakrosF   EKonstanten-MakrosF
               EEscapesequenzenF     EVT-52-TerminalFName           Normal video - Reverse Schrift ausschalten.

Definition     #define REV_OFF    "\33q"
               #define Rev_off()  Cconws( REV_OFF )

Definition in  screen.h

Beschreibung   Rev_off ist ein Funktionen-Makro, mit der die  reverse 
               Schrift (ERev_onF) wieder ausgeschaltet werden kann.
               REV_OFF ist ein  Konstanten-Makro,  welches die  VT-52 
               Steuersequenz fr Normal video definiert.  Damit ha-
               ben Sie  die  Mglichkeit,  diese Sequenz  in  eigenen
               Stringkonstanten zu verwenden.
Querverweis    EFunktionen-MakrosF   EKonstanten-MakrosF
               EEscapesequenzenF     EVT-52-TerminalFName           Show cursor - Cursor einschalten.

Definition     #define CUR_ON    "\33e"
               #define Cur_on()  Cconws( CUR_ON )

Definition in  screen.h

Beschreibung   Cur_on ist ein Funktionen-Makro, mit der der Cursor
               eingeschaltet werden kann.
               CUR_ON ist ein  Konstanten-Makro,  welches die  VT-52 
               Steuersequenz fr Show cursor definiert.  Damit ha-
               ben Sie  die Mglichkeit,  diese Sequenz  in  eigenen
               Stringkonstanten zu verwenden.
Querverweis    EFunktionen-MakrosF   EKonstanten-MakrosF
               EEscapesequenzenF     EVT-52-TerminalFName           Hide cursor - Cursor einschalten.

Definition     #define CUR_OFF    "\33f"
               #define Cur_off()  Cconws( CUR_OFF )

Definition in  screen.h

Beschreibung   Cur_off ist ein Funktionen-Makro, mit der der Cursor
               ausgeschaltet werden kann.
               CUR_OFF ist ein  Konstanten-Makro, welches die  VT-52 
               Steuersequenz fr Hide cursor definiert.  Damit ha-
               ben Sie  die Mglichkeit,  diese Sequenz  in  eigenen
               Stringkonstanten zu verwenden.
Querverweis    EFunktionen-MakrosF   EKonstanten-MakrosF
               EEscapesequenzenF     EVT-52-TerminalFName           Wrap on - Zeilenumbruch einschalten.

Definition     #define WRAP_ON    "\33v"
               #define Wrap_on()  Cconws( WRAP_ON )

Definition in  screen.h

Beschreibung   Wrap_on  ist ein Funktionen-Makro, mit der der Zeilen-
               umbruch  eingeschaltet werden kann.  Dies bewirkt, da
               bei  Erreichen des  Endes einer Zeile  automatisch zum
               Anfang der nchsten Zeile gesprungen wird. 
               WRAP_ON ist ein  Konstanten-Makro,  welches die  VT-52 
               Steuersequenz  fr Wrap on  definiert.  Damit  haben 
               Sie  die Mglichkeit, diese Sequenz  in eigenen String-
               konstanten zu verwenden.
Querverweis    EFunktionen-MakrosF   EKonstanten-MakrosF
               EEscapesequenzenF     EVT-52-TerminalFName           Wrap off - Zeilenumbruch ausschalten.

Definition     #define WRAP_OFF    "\33w"
               #define Wrap_off()  Cconws( WRAP_OFF )

Definition in  screen.h

Beschreibung   Wrap_off ist ein Funktionen-Makro, mit der der Zeilen-
               umbruch (EWrap_onF) ausgeschaltet werden kann.
               WRAP_OFF ist ein  Konstanten-Makro, welches die  VT-52 
               Steuersequenz  fr Wrap off definiert.  Damit  haben 
               Sie  die Mglichkeit, diese Sequenz  in eigenen String-
               konstanten zu verwenden.
Querverweis    EFunktionen-MakrosF   EKonstanten-MakrosF
               EEscapesequenzenF     EVT-52-TerminalFName           Blink on - Cursorblinken einschalten.

Definition     #define Blink_on()  Cursconf( 2, 0 )

Definition in  screen.h

Beschreibung   Blink_on ist ein Funktionen-Makro, mit der das Blinken
               des Cursors eingeschaltet werden kann. Hierzu wird die
               EXBIOSF-funktion ECursconfF verwendet.
Querverweis    EFunktionen-MakrosF   EKonstanten-MakrosF
               EEscapesequenzenF     EVT-52-TerminalFName           Blink off - Cursorblinken ausschalten.

Definition     #define Blink_off()  Cursconf( 3, 0 )

Definition in  screen.h

Beschreibung   Blink_off ist ein Funktionen-Makro, mit der das Blinken
               des Cursors eingeschaltet werden kann. Hierzu  wird die
               EXBIOSF-funktion ECursconfF verwendet.
Querverweis    EFunktionen-MakrosF   EKonstanten-MakrosF
               EEscapesequenzenF     EVT-52-TerminalFName           Set blink rate - Cursorblinkfrequenz einstellen.

Definition     #define Set_blink( rate ) Cursconf( 4, rate )

Definition in  screen.h

Beschreibung   Set_blink ist ein Funktionen-Makro, mit der die Frequenz
               des Cursorblinkens eingestellt werden kann. Hierzu  wird
               die EXBIOSF-funktion ECursconfF verwendet.
Querverweis    EFunktionen-MakrosF   EKonstanten-MakrosF
               EEscapesequenzenF     EVT-52-TerminalFName           Get blink rate - Cursorblinkfrequenz abfragen.

Definition     #define Set_blink() Cursconf( 5, 0 )

Definition in  screen.h

Beschreibung   Get_blink ist ein Funktionen-Makro, mit der die Frequenz
               des  Cursorblinkens abgefragt  werden kann. Hierzu  wird
               die EXBIOSF-funktion ECursconfF verwendet.
Querverweis    EFunktionen-MakrosF   EKonstanten-MakrosF
               EEscapesequenzenF     EVT-52-TerminalFXBIOS
----------------------------------------------------------------------

Diese Funktionen ermglichen den geordneten Zugriff auf die verschie-
denen Spezial-Chips im Atari-ST. Sie werden ber den 680X0-Trap #14
aufgerufen.
Das XBIOS lt sich in folgende Funktionsgruppen einteilen:

               ETastaturfunktionenF
               EBildschirmfunktionenF
               EDruckerfunktionenF
               ELaufwerksfunktionenF
               EDatum, Uhrzeit und ZeitgeberF
               EInterruptfunktionenF
               ESchnittstellenprogrammierungF
               ESpezialbefehleF

Ab Falcon 030:

               EDSP-ProgrammierungF
               ESoundroutinenFTastaturfunktionen
----------------------------------------------------------------------

Die folgenden Funktionen regeln die direkte Programmierung der Tasta-
tur. Mit EKeytblF kann man eine eigene Tastaturtabelle installieren.
Die Funktion EBioskeysF dient zur Reinitialisierung der Tastatur:
Die Tastatur wird in den Urzustand versetzt. Mit EKbrateF kann man
das Ansprechverhalten der Tastatur einstellen. Es geht dabei darum,
ab welchem Zeitpunkt in den Auto-Repeat-Modus (automatische Tastatur-
wiederholung) umgeschaltet wird, und wie schnell der Auto-Repeat-Modus
durchgefhrt wird.

16 EKeytblF   Neue Tabelle fr Tastaturcodes vorgeben
24 EBioskeysF BIOS-Tabelle fr Tastaturcodes zurcksetzen
35 EKbrateF   Auto-Repeat der Tastatur ndern oder ermittelnBildschirmfunktionen
----------------------------------------------------------------------

Zur direkten Programmierung des Bildschirms stehen mehrere Funktionen
zur Verfgung. Mit EInitmouseF und ECursconfF kann man sowohl die Ein-
stellung des Grafik- als auch des Textcursors beeinflussen. Fr beson-
ders schnelle Animationen erweisen sich die beiden Funktionen ELogbaseF
und EPhysbaseF als vorteilhaft: Auf dem logischen Bildschirm wird im
Hintergrund gezeichnet, dann schaltet man den physikalischen Bild-
schirm mit ESetscreenF um.

0   EInitmouseF   Mauszeiger initialisieren.
2   EPhysbaseF    Anfangsadresse des physikalischen Bildschirmspeichers
                ermitteln (der dargestellte Bildschirm).
3   ELogbaseF     Anfangsadresse des logischen Bildschirmspeichers er-
                mitteln (der Bildschirm, auf dem gezeichnet wird).
4   EGetrezF      Auflsung ermitteln.
5   ESetscreenF   Festlegen der Bildschirmauflsung und der Bildschirm-
                adressen.
6   ESetpaletteF  Farbpalette auswhlen.
7   ESetcolorF    Farbe einstellen.
21  ECursconfF    Cursordarstellung ndern oder ermitteln.
37  EVsyncF       Vertikales Synchronisationssignal abfragen.


Ab TOS030 (Atari TT) verfgbar:

80  EEsetShiftF   Shift Mode Register setzen.
81  EEgetShiftF   Shift Mode Register lesen.
82  EEsetBankF    Farbtabelle setzen.
83  EEsetColorF   Farbtabelleneintrag setzen.
84  EEsetPaletteF Farbtabelle laden.
85  EEgetPaletteF Farbtabelle lesen.
86  EEsetGrayF    Farbinterpretation setzen.
87  EEsetSmearF   Farbverwischung setzen.


Ab Falcon 030 verfgbar:

88  EVsetmodeF    Videohardwareregister setzen.
89  Emon_typeF    Monitortyp ermitteln.
90  EVsetSyncF    Synchronisationsart setzen.
91  EVgetSizeF    Gre des Bildschirmpuffers ermitteln.
93  EVsetRGBF     RGB-Wert einer Farbe setzen.
94  EVgetRGBF     RGB-Wert einer Farbe ermitteln.
150 EVsetMaskF    Transparenz fr True-Color setzen.Druckerfunktionen
----------------------------------------------------------------------

20 EScrdmpF Bildschirminhalt ausdrucken.
33 ESetprtF Druckereinstellung ermitteln oder ndern.
36 EPrtblkF Hardcopy-Funktion mit Parameterblock.Laufwerksfunktionen
----------------------------------------------------------------------

8  EFloprdF   Einzelne Sektoren lesen.
9  EFlopwrF   Einzelne Sektoren schreiben.
10 EFlopfmtF  Spur auf einer Diskette formatieren.
18 EProtobtF  Bootsektor fr Diskette im Speicher generieren.
19 EFlopverF  Sektoren mit Speicherinhalt vergleichen.


Ab TOS030 (Atari TT) verfgbar:

42 EDMAreadF  Sektoren von Festplatte lesen.
43 EDMAwriteF Sektoren auf Festplate schreiben.Datum, Uhrzeit und Zeitgeber im EXBIOSF
----------------------------------------------------------------------

22 ESettimeF Datum und Uhrzeit einstellen.
23 EGettimeF Datum und Uhrzeit ermitteln.
31 EXbtimerF Systemzeitgeber initialisieren.Interruptfunktionen
----------------------------------------------------------------------

26 EJdisintF  Interrupts sperren.
27 EJenabintF Interrupts freigeben.Schnittstellen-Programmierung
----------------------------------------------------------------------

14 EIorecF    Interruptpuffer fr RS232, Tastatur-Chip und
            MIDI-Schnittstelle abfragen.
15 ERsconfF   Konfiguration der RS232-Schnittstelle.
12 EMidiwsF   Strings lesen und schreiben auf MIDI-Schnittstelle.
13 EMfpintF   Programmierung des Multifunktionsperipherie-Chips.
25 EIkbdwsF   Programmierung des Tastatur-Chips.
28 EGiaccessF Register des GI-Soundchips lesen und schreiben.
29 EOffgibitF Bit im Port A-Register des GI-Chips lschen.
30 EOngibitF  Bit im Port A-Register des GI-Chips setzen.
32 EDosoundF  Sound-Befehle abschicken.
34 EKbdvbaseF Puffer und Interruptvektoren fr Maus-, MIDI-
            und Tastaturschnittstelle abfragen.


Ab TOS030 (Atari TT) verfgbar:

44 EBconmapF  Auswhlen einer seriellen Schnittstelle.Spezialbefehle
----------------------------------------------------------------------

1  ESsbrkF    Speicherplatz reservieren (nur intern verwendet).
17 ERandomF   Zufallszahlengenerator.
38 ESupexecF  Unterprogramm im Supervisormodus starten.
39 EPuntaesF  AES im ROM abschalten.
64 EBlitmodeF Blitterkonfiguration ndern oder ermitteln.Name           xbios - XBIOS-Trap ausfhren.

Definition     long xbios (void, ...) ;

Prototyp in    tos.h

Beschreibung   Die Routine xbios fhrt einen TRAP 13 durch. Die
               bergebenen Parameter hngen von der jeweiligen EXBIOSF-
               Funktion ab.

Ergebnis       Die Funktion liefert als Ergebnis einen Wert vom
               Datentyp long.

Querverweis    Bibliotheksfunktionen: EbiosF   EgemdosF
               Betriebssystem: EXBIOSFSoundroutinen                                         PCTOSLIB.LIB
------------------------------------------------------------------

Die PCTOSLIB.LIB enthlt die folgenden Routinen zur Soundprogram-
mierung. Diese Routinen sind nur auf Computern der Falcon-Serie
verfgbar:

     EbuffoperF       Aufnahme-/Wiedergabemodus setzen
     EbuffptrF        Aufnahme-/Wiedergabeposition ermitteln
     EdevconnectF     Audio-Subsystem-Komponenten verbinden
     EdsptristateF    Externe DSP-Hardware koordinieren
     EgpioF           ber externe DSP-Buchse kommunizieren
     ElocksndF        Soundsystem fr andere Anwendungen sperren
     EsetbufferF      Aufnahme-/Wiedergabepuffer setzen
     EsetinterruptF   Interrupt am Ende einer Aufnahme bzw.
                    einer Wiedergabe festlegen
     EsetmontracksF   Wiedergabespur fr internen Lautsprecher
                    festlegen
     EsetmodeF        Aufnahme-/Wiedergabemodus whlen
     EsettracksF      Spurenanzahl festlegen
     EsndstatusF      Status des A/D- und D/A-Wandlers ermitteln
     EsoundcmdF       Parameter des A/D- und D/A-Wandlers setzen
                    oder ermitteln
     EunlocksndF      Soundsystem fr andere Anwendungen freigebenDSP-Programmierung                                    PCTOSLIB.LIB
------------------------------------------------------------------

Die PCTOSLIB.LIB enthlt die folgenden Routinen zur Programmie-
rung des Signal-Prozessors DSP56001, der in die Falcon-Computer
eingebaut ist:

    EDsp_AvailableF             Freien Speicher ermitteln
    EDsp_BlkBytesF              Byteweiser Datentransfer
    EDsp_BlkHandShakeF          Datentransfer mit Handshake
    EDsp_BlkUnpackedF           Datentransfer von DSP-Worten mit
                              maximal 4 Byte Lnge
    EDsp_BlkWordsF              Wortweiser Datentransfer
    EDsp_DoBlockF               Datentransfer
    EDsp_ExecBootF              Bootprogramm fr DSP laden
    EDsp_ExecProgF              DSP-Programm starten
    EDsp_FlushSubroutinesF      Unterprogramme lschen
    EDsp_GetProgAbilityF        Identifikation erfragen
    EDsp_GetWordSizeF           Lnge von DSP-Worten ermitteln
    EDsp_Hf0F                   Bit 3 des HSR setzen bzw. lschen
    EDsp_Hf1F                   Bit 4 des HSR setzen bzw. lschen
    EDsp_Hf2F                   Bit 3 des HCR ermitteln
    EDsp_Hf3F                   Bit 4 des HCR ermitteln
    EDsp_HStatF                 Wert des ISR-Registers ermitteln
    EDsp_InqSubrAbilityF        Unterprogrammkennung ermitteln
    EDsp_InStreamF              Datentransfer zum DSP via Interrupt
    EDsp_IOStreamF              Datentransfer vom und zum DSP via
                              Interrupt
    EDsp_LoadProgF              DSP-Programm laden und starten
    EDsp_LoadSubroutineF        Unterprogramm installieren
    EDsp_LockF                  Verfgbarkeit des DSP ermitteln
    EDsp_LodToBinaryF           .LOD- in Binrformat konvertieren
    EDsp_MultBlocksF            Datentransfer vom und zum DSP
    EDsp_OutStreamF             Datentransfer vom DSP via Interrupt
    EDsp_RemoveInterruptsF      bertragungsroutinen entfernen
    EDsp_RequestUniqueAbilityF  Identifikation erteilen
    EDsp_ReserveF               Speicher reservieren
    EDsp_RunSubroutineF         Unterprogramm ausfhren
    EDsp_SetVectorsF            Eigene bertragungsroutinen instal-
                              lieren
    EDsp_TriggerHCF             Host Command ausfhren
    EDsp_UnlockF                DSP freigebenDsp_DoBlock                                           PCTOSLIB.LIB
------------------------------------------------------------------

Deklaration       void  Dsp_DoBlock( char *data_in, long size_in,
                                  char *data_out, long size_out );

Prototyp in       tos.h

Beschreibung      Die Funktion kopiert size_in DSP-Worte aus dem
                  Puffer data_in zum DSP. Nachdem alle Daten
                  bertragen wurden, wartet die Funktion bis die
                  Daten verarbeitet wurden. Dann werden size_out
                  DSP-Worte in den Puffer data_out zurckkopiert,
                  unabhngig davon, wieviel Daten wirklich vor-
                  liegen. Sollen keine Daten gesendet werden, mu
                  man size_in auf Null setzen. Gleiches gilt fr
                  das Empfangen, in diesem Fall wird size_out
                  Null zugewiesen. size_in und size_out sind auf
                  64 KByte begrenzt.
                  
Hinweis           Die Funktion ist nur auf Computern mit dem
                  Signalprozessor DSP65001 verfgbar.

Querverweise      EDsp_BlkHandShakeF   EDsp_BlkUnpackedF
                  EDsp_BlkWordsF       EDsp_BlkBytesF
                  EDsp_InStreamF       EDsp_OutStreamF
                  EDsp_IOStreamF       EDsp_GetWordSizeF
                  EDsp_MultBlocksFDsp_BlkHandShake                                      PCTOSLIB.LIB
------------------------------------------------------------------

Deklaration       void  Dsp_BlkHandShake( char *data_in,
                                           long size_in,
                                           char *data_out,
                                           long size_out );

Prototyp in       tos.h

Beschreibung      Die Funktion kopiert size_in DSP-Worte aus dem
                  Puffer data_in zum DSP. Nachdem alle Daten
                  bertragen wurden, wartet die Funktion bis die
                  Daten verarbeitet wurden. Dann werden size_out
                  DSP-Worte in den Puffer data_out zurckkopiert,
                  unabhngig davon, wieviel Daten wirklich vor-
                  liegen. Sollen keine Daten gesendet werden, mu
                  man size_in auf Null setzen. Gleiches gilt fr
                  das Empfangen, in diesem Fall wird size_out
                  Null zugewiesen. size_in und size_out sind auf
                  64 KByte begrenzt. Daten werden nur ausgetauscht,
                  wenn der DSP-Proze dazu bereit ist.

Hinweis           Die Funktion ist nur auf Computern mit dem
                  Signalprozessor DSP65001 verfgbar.

Querverweise      EDsp_DoBlockF        EDsp_BlkUnpackedF
                  EDsp_BlkWordsF       EDsp_BlkBytesF
                  EDsp_InStreamF       EDsp_OutStreamF
                  EDsp_IOStreamF       EDsp_GetWordSizeF
                  EDsp_MultBlocksFDsp_BlkUnpacked                                       PCTOSLIB.LIB
------------------------------------------------------------------

Deklaration       void  Dsp_BlkUnpacked( long *data_in,
                                          long size_in,
                                          long *data_out,
                                          long size_out );

Prototyp in       tos.h

Beschreibung      Diese Funktion arbeitet nur mit DSP-Worten, die
                  hchstens 4 Byte lang sind. Die Lnge der DSP-
                  Worte kann mit EDsp_GetWordSizeF bestimmt werden.
                  data_in und data_out sind long-Felder. size_in
                  und size_out beziehen sich auf die Gre der
                  Felder in Langworten. Je nach DSP-Wortlnge
                  werden nur die unteren Bytes longs bertragen.
                  Die Funktion kopiert size_in DSP-Worte aus dem
                  Puffer data_in zum DSP. Nachdem alle Daten
                  bertragen wurden, wartet die Funktion bis die
                  Daten verarbeitet wurden. Dann werden size_out
                  DSP-Worte in den Puffer data_out zurckkopiert,
                  unabhngig davon, wieviel Daten wirklich vor-
                  liegen. Sollen keine Daten gesendet werden, mu
                  man size_in auf Null setzen. Gleiches gilt fr
                  das Empfangen, in diesem Fall wird size_out
                  Null zugewiesen. size_in und size_out sind auf
                  64 KByte begrenzt.
                  Es wird nicht garantiert, da die hherwertigen
                  Bytes der empfangenen longs Null sind, wenn
                  die DSP-Wortlnge kleiner als 4 ist.

Hinweis           Die Funktion ist nur auf Computern mit dem
                  Signalprozessor DSP65001 verfgbar.

Querverweise      EDsp_DoBlockF        EDsp_BlkHandShakeF
                  EDsp_BlkWordsF       EDsp_BlkBytesF
                  EDsp_InStreamF       EDsp_OutStreamF
                  EDsp_IOStreamF       EDsp_GetWordSizeF
                  EDsp_MultBlocksFDsp_BlkWords                                          PCTOSLIB.LIB
------------------------------------------------------------------

Deklaration       void  Dsp_BlkWords( void *data_in,
                                       long size_in,
                                       void *data_out,
                                       long size_out );

Prototyp in       tos.h

Beschreibung      Die Funktion kopiert size_in vorzeichenbehaf-
                  tete 16-Bit-Worte aus dem Puffer data_in zum
                  DSP. Die Worte werden vor der bertragung vor-
                  zeichenrichtig auf DSP-Wortbreite erweitert.
                  Nachdem alle Daten bertragen wurden, wartet
                  die Funktion bis die Daten verarbeitet wurden.
                  Dann werden size_out 16-Bit-DSP-Worte in den
                  Puffer data_out zurckkopiert, unabhngig da-
                  von, wieviel Daten wirklich vorliegen. Sollen
                  keine Daten gesendet werden, mu man size_in
                  auf Null setzen. Gleiches gilt fr das Empfan-
                  gen, in diesem Fall wird size_out Null zuge-
                  wiesen. size_in und size_out sind auf 64 KByte
                  begrenzt. Daten werden nur ausgetauscht, wenn
                  der DSP-Proze dazu bereit ist.

Hinweis           Die Funktion ist nur auf Computern mit dem
                  Signalprozessor DSP65001 verfgbar.

Querverweise      EDsp_DoBlockF        EDsp_BlkUnpackedF
                  EDsp_BlkHandShakeF   EDsp_BlkBytesF
                  EDsp_InStreamF       EDsp_OutStreamF
                  EDsp_IOStreamF       EDsp_GetWordSizeF
                  EDsp_MultBlocksFDsp_BlkBytes                                          PCTOSLIB.LIB
------------------------------------------------------------------

Deklaration       void  Dsp_BlkBytes( void *data_in,
                                       long size_in,
                                       void *data_out,
                                       long size_out );

Prototyp in       tos.h

Beschreibung      Die Funktion kopiert size_in vorzeichenlose
                  Bytes aus dem Puffer data_in zum DSP. Nachdem
                  alle Daten bertragen wurden, wartet die Pro-
                  zedur bis die Daten verarbeitet wurden. Dann
                  werden size_out 8-Bit-DSP-Worte in den Puffer
                  data_out zurckkopiert, unabhngig davon, wie-
                  viel Daten wirklich vorliegen. Sollen keine
                  Daten gesendet werden, mu man size_in auf
                  Null setzen. Gleiches gilt fr das Empfangen,
                  in diesem Fall wird size_out Null zugewiesen.
                  size_in und size_out sind auf 64 KByte be-
                  grenzt. Daten werden nur ausgetauscht, wenn der
                  DSP-Proze dazu bereit ist.

Hinweis           Die Funktion ist nur auf Computern mit dem
                  Signalprozessor DSP65001 verfgbar.

Querverweise      EDsp_DoBlockF        EDsp_BlkUnpackedF
                  EDsp_BlkHandShakeF   EDsp_BlkWordsF
                  EDsp_InStreamF       EDsp_OutStreamF
                  EDsp_IOStreamF       EDsp_GetWordSizeF
                  EDsp_MultBlocksFDSPBLOCK                                              PCTOSLIB.LIB
------------------------------------------------------------------

In der Headerdatei TOS.H ist die folgende Struktur DSPBLOCK zur
Parameterbergabe an die Funktion EDsp_MultBlocksF definiert:

     typedef struct
     {
         int     blocktype;   /* Typ der Daten im Puffer: */
                              /*   0 : LongInt            */
                              /*   1 : Integer            */
                              /*   2 : Byte               */
         long    blocksize;   /* Puffergre              */
         void    *blockaddr;  /* Zeiger auf den Puffer    */
     } DSPBLOCK;Dsp_MultBlocks                                        PCTOSLIB.LIB
------------------------------------------------------------------

Deklaration       void  Dsp_MultBlocks( long numsend,
                                        long numreceive,
                                        EDSPBLOCKF *sendblocks,
                                        EDSPBLOCKF *receiveblocks );

Beschreibung      Die Funktion Dsp_MultBlocks sendet und empfngt
                  Daten vom DSP. numsend ist die Anzahl der zu
                  sendenden und numreceive die Anzahl der zu
                  empfangenden Blcke. sendblocks und receiveblocks
                  sind Zeiger auf Strukturen, die die Puffer und
                  Blcke beschreiben.

Hinweis           Die Funktion ist nur auf Computern mit dem
                  Signalprozessor DSP65001 verfgbar.

Querverweise      EDsp_DoBlockF        EDsp_BlkUnpackedF
                  EDsp_BlkHandShakeF   EDsp_BlkWordsF
                  EDsp_InStreamF       EDsp_OutStreamF
                  EDsp_IOStreamF       EDsp_GetWordSizeF
                  EDsp_BlkBytesFDsp_InStream                                          PCTOSLIB.LIB
------------------------------------------------------------------

Deklaration       void  Dsp_InStream( char *data_in,
                                       long block_size,
                                       long num_blocks,
                                       long *blocks_done );

Prototyp in       tos.h

Beschreibung      Die Funktion kopiert mittels DSP-Interrupt-
                  behandlung num_blocks Datenblcke mit einer
                  Gre von block_size DSP-Worten aus dem Puffer
                  data_in zum DSP. Bei jedem Interrupt wird ein
                  Block bertragen, unabhngig davon, ob der DSP
                  empfangsbereit ist. Gleichzeitig wird der Zhler
                  blocks_done, der die Anzahl der bertragenen
                  Blcke wiedergibt, inkrementiert. Da die Daten
                  per Interrupt bertragen werden, mu die Proze-
                  dur nicht warten. ber blocks_done kann das Pro-
                  gramm im weiteren Verlauf feststellen, ob die
                  bertragung beendet ist.

Hinweis           Die Funktion ist nur auf Computern mit dem
                  Signalprozessor DSP65001 verfgbar.

Querverweise      EDsp_DoBlockF        EDsp_BlkUnpackedF
                  EDsp_BlkHandShakeF   EDsp_BlkWordsF
                  EDsp_BlkBytesF       EDsp_OutStreamF
                  EDsp_IOStreamF       EDsp_GetWordSizeF
                  EDsp_SetVectorsF     EDsp_RemoveInterruptsF
                  EDsp_MultBlocksFDsp_OutStream                                         PCTOSLIB.LIB
------------------------------------------------------------------

Deklaration       void  Dsp_OutStream( char *data_out,
                                        long block_size,
                                        long num_blocks,
                                        long *blocks_done );

Prototyp in       tos.h

Beschreibung      Die Funktion kopiert mittels DSP-Interrupt-
                  behandlung num_blocks Datenblcke mit einer
                  Gre von block_size DSP-Worten vom DSP in
                  dem Puffer data_out. Bei jedem Interrupt wird
                  ein Block bertragen. Gleichzeitig wird der
                  Zhler blocks_done, der die Anzahl der ber-
                  tragenen Blcke wiedergibt, inkrementiert.
                  Da die Daten per Interrupt bertragen werden,
                  mu die Funktion nicht warten. ber blocks_done
                  kann das Programm im weiteren Verlauf feststel-
                  len, ob die bertragung beendet ist.

Hinweis           Die Funktion ist nur auf Computern mit dem
                  Signalprozessor DSP65001 verfgbar.

Querverweise      EDsp_DoBlockF        EDsp_BlkUnpackedF
                  EDsp_BlkHandShakeF   EDsp_BlkWordsF
                  EDsp_BlkBytesF       EDsp_InStreamF
                  EDsp_IOStreamF       EDsp_GetWordSizeF
                  EDsp_SetVectorsF     EDsp_RemoveInterruptsF
                  EDsp_MultBlocksFDsp_IOStream                                          PCTOSLIB.LIB
------------------------------------------------------------------

Deklaration       void  Dsp_IOStream( char *data_in,
                                       char *data_out,
                                       long block_insize,
                                       long block_outsize,
                                       long num_blocks,
                                       long *blocks_done );

Prototyp in       tos.h

Beschreibung      Die Funktion sendet und empfngt gleichzeitig
                  mittels DSP-Interruptbehandlung num_blocks
                  Datenblcke mit einer Gre von block_insize
                  bzw. block_outsize DSP-Worten vom DSP. Die
                  gesendeten Daten werden dem Puffer data_in
                  entnommen, die empfangenen Daten werden im
                  Puffer data_out abgelegt. Bei jedem Interrupt
                  wird ein Block gesendet und einer empfangen
                  (eine Ausnahme bilden der erste und der letzte
                  Interrupt). Gleichzeitig wird der Zhler
                  blocks_done, der die Anzahl der bertragenen
                  Blcke wiedergibt, inkrementiert. Da die Daten
                  per Interrupt bertragen werden, mu die Funktion
                  nicht warten. ber blocks_done kann das Programm
                  im weiteren Verlauf feststellen, ob die bertra-
                  gung beendet ist.

Hinweis           Die Funktion ist nur auf Computern mit dem
                  Signalprozessor DSP65001 verfgbar.

Querverweise      EDsp_DoBlockF        EDsp_BlkUnpackedF
                  EDsp_BlkHandShakeF   EDsp_BlkWordsF
                  EDsp_BlkBytesF       EDsp_InStreamF
                  EDsp_OutStreamF      EDsp_GetWordSizeF
                  EDsp_SetVectorsF     EDsp_RemoveInterruptsF
                  EDsp_MultBlocksFDsp_SetVectors                                        PCTOSLIB.LIB
------------------------------------------------------------------

Deklaration       void  Dsp_SetVectors( void (*receiver)( ),
                                         long (*transmitter)( ));

Prototyp in       tos.h

Beschreibung      Die Funktion Dsp_SetVectors installiert
                  Routinen, die aufgerufen werden, wenn der
                  DSP ber einen Interrupt Daten bertragen
                  will. receiver ist ein Zeiger auf eine Routine,
                  die aufgerufen wird, nachdem der DSP Daten ver-
                  schickt hat, und transmitter ein Zeiger auf eine
                  Routine, die aufgerufen wird, bevor der DSP
                  Daten empfngt. Die Empfangsroutine receiver
                  erhlt als Parameter auf dem Stack einen
                  long, der vom DSP gesendet wurde. Die Sende-
                  routine transmitter bergibt einen long an
                  den DSP in Register D0. Dieser mu ungleich
                  Null sein, damit er, d.h. dessen niederwertigen
                  drei Bytes an den DSP bertragen wird. Beide
                  Routinen werden mit dem Assemblerbefehl RTS
                  abgeschlossen.
                  Wird fr receiver oder transmitter 0 ber-
                  geben, so wird der entsprechende Interrupt ge-
                  sperrt. Um eine Routine wieder zu entfernen, mu
                  man EDsp_RemoveInterruptsF aufrufen.

Hinweis           Die Funktion ist nur auf Computern mit dem
                  Signalprozessor DSP65001 verfgbar.

Querverweise      EDsp_InStreamF       EDsp_OutStreamF
                  EDsp_IOStreamF       EDsp_RemoveInterruptsFDsp_RemoveInterrupts                                  PCTOSLIB.LIB
------------------------------------------------------------------

Deklaration       void  Dsp_RemoveInterrupts( int mask );

Prototyp in       tos.h

Beschreibung      Die Funktion Dsp_RemoveInterrupts unterbindet
                  die Generierung von DSP-Interrupts. Der Para-
                  meter mask bestimmt, welche Interrupts betroffen
                  sind:

                  ------------------------------------------------
                  mask  Bedeutung
                  ------------------------------------------------
                  1     Keine Interrupts zum Senden von Daten
                        durch den DSP
                  2     Keine Interrupts zum Empfangen von Daten
                        durch den DSP
                  3     Keine Interrupts zum Senden oder Empfangen
                        von Daten durch den DSP
                  ------------------------------------------------

                  Die Funktion entfernt ebenfalls Routinen, die
                  mit Dsp_SetVectors installiert wurden.

Hinweis           Die Funktion ist nur auf Computern mit dem
                  Signalprozessor DSP65001 verfgbar.

Querverweise      EDsp_InStreamF       EDsp_OutStreamF
                  EDsp_IOStreamF       EDsp_SetVectorsFDsp_GetWordSize                                       PCTOSLIB.LIB
------------------------------------------------------------------

Deklaration       int  Dsp_GetWordSize( void );

Prototyp in       tos.h

Beschreibung      Die Funktion Dsp_GetWordSize ermittelt die
                  Gre in Byte, die ein DSP-Wort lang ist.
                  Diese Funktion ist notwendig, um die Puffer
                  fr die Datenbertragung ausreichend zu dim-
                  ensionieren.

Hinweis           Die Funktion ist nur auf Computern mit dem
                  Signalprozessor DSP65001 verfgbar.

Querverweise      EDsp_DoBlockF        EDsp_BlkUnpackedF
                  EDsp_BlkHandShakeF   EDsp_BlkWordsF
                  EDsp_BlkBytesF       EDsp_InStreamF
                  EDsp_IOStreamF       EDsp_OutStreamF
                  EDsp_MultBlocksFDsp_Lock                                              PCTOSLIB.LIB
------------------------------------------------------------------

Deklaration       int  Dsp_Lock( void );

Prototyp in       tos.h

Beschreibung      Die Funktion Dsp_Lock ermittelt, ob der DSP
                  fr Anwendungen verfgbar ist und nicht durch
                  jemand anders blockiert wird. Wird als Er-
                  gebnis -1 zurckgegeben, so wird der DSP
                  bereits durch einen anderen Proze benutzt.
                  Null dagegen kennzeichnet die Verfgbarkeit
                  des DSPs und blockiert ihn gleichzeitig fr
                  andere, bis ein Aufruf von EDsp_UnlockF erfolgt.

Hinweis           Die Funktion ist nur auf Computern mit dem
                  Signalprozessor DSP65001 verfgbar.

Querverweise      EDsp_UnlockF         EDsp_AvailableF
                  EDsp_ReserveF        EDsp_LoadProgF
                  EDsp_ExecProgF       EDsp_ExecBootFDsp_Unlock                                            PCTOSLIB.LIB
------------------------------------------------------------------

Deklaration       void  Dsp_Unlock( void );

Prototyp in       tos.h

Beschreibung      Die Funktion Dsp_Unlock gibt den DSP fr andere
                  Prozesse frei.

Hinweis           Die Funktion ist nur auf Computern mit dem
                  Signalprozessor DSP65001 verfgbar.

Querverweise      EDsp_LockF           EDsp_AvailableF
                  EDsp_ReserveF        EDsp_LoadProgF
                  EDsp_ExecProgF       EDsp_ExecBootFDsp_Available                                         PCTOSLIB.LIB
------------------------------------------------------------------

Deklaration       void  Dsp_Available( long *xavailable,
                                        long *yavailable );

Prototyp in       tos.h

Beschreibung      Die Funktion Dsp_Available ermittelt den freien
                  X- und Y-Speicher. Freier Speicher beginnt stets
                  an der physikalischen Adresse 0. Die unteren
                  64 Worte sind fr Interrupt-Vektoren reserviert.

Hinweis           Die Funktion ist nur auf Computern mit dem
                  Signalprozessor DSP65001 verfgbar.

Querverweise      EDsp_LockF           EDsp_UnlockF
                  EDsp_ReserveF        EDsp_LoadProgF
                  EDsp_ExecProgF       EDsp_ExecBootFDsp_Reserve                                           PCTOSLIB.LIB
------------------------------------------------------------------

Deklaration       int  Dsp_Reserve( long xreserve, long yreserve );

Prototyp in       tos.h

Beschreibung      Die Funktion Dsp_Reserve reserviert xreserve
                  Worte X-Speicher und yreserve Worte Y-Speicher.
                  Die Speicheranforderung darf den verfgbaren
                  Speicher auf keinen Fall bertreffen. Diese
                  Funktion ist notwendig, damit DSP-Prozesse
                  nicht durch DSP-Unterprogramme berschrieben
                  werden. Die Reservierung bleibt bis zum nchsten
                  Aufruf von Dsp_Reserve bestehen. Das Funktions-
                  resultat Null zeigt die erfolgreiche Reservie-
                  rung an, -1 steht fr einen Fehler.

Hinweis           Die Funktion ist nur auf Computern mit dem
                  Signalprozessor DSP65001 verfgbar.

Querverweise      EDsp_LockF           EDsp_UnlockF
                  EDsp_AvailableF      EDsp_LoadProgF
                  EDsp_ExecProgF       EDsp_ExecBootFDsp_LoadProg                                          PCTOSLIB.LIB
------------------------------------------------------------------

Deklaration       int  Dsp_LoadProg( char *file, int ability,
                                                  char *buffer );

Prototyp in       tos.h

Beschreibung      Die Funktion Dsp_LoadProg ldt das DSP-Pro-
                  gramm mit dem Namen filename. Das Programm
                  mu im .LOD-Format vorliegen und darf den
                  durch EDsp_ReserveF reservierten Speicher
                  nicht berschreiten. Der Parameter ability
                  identifiziert das Programm. buffer zeigt auf
                  einen Speicherbereich, in dem das generierte
                  Programm zwischengespeichert werden kann.
                  Die Gre des Speicherbereichs berechnet sich
                  nach der Formel

                       DSP-Wortgre * ( Anzahl der
                         Programm- und Datenworte in der
                         .LOD-Datei + ( DSP-Wortgre *
                           Anzahl der Blcke in der .LOD-
                           Datei ))

                  Danach wird das Programm ausgefhrt.
                  Der Rckgabewert Null signalisiert den er-
                  folgreichen Programmstart, ansonsten erhlt
                  man -1.

Hinweis           Die Funktion ist nur auf Computern mit dem
                  Signalprozessor DSP65001 verfgbar.

Querverweise      EDsp_LockF           EDsp_UnlockF
                  EDsp_AvailableF      EDsp_ReserveF
                  EDsp_ExecProgF       EDsp_ExecBootF
                  EDsp_LodToBinaryFDsp_ExecProg                                          PCTOSLIB.LIB
------------------------------------------------------------------

Deklaration       void  Dsp_ExecProg( char *codeptr,
                                       long codesize,
                                       int ability );

Prototyp in       tos.h

Beschreibung      Die Funktion Dsp_ExecProg startet das im Binr-
                  Format an der Stelle codeptr vorliegende DSP-
                  Programm der Lnge codesize. Seine Gre darf
                  den durch EDsp_ReserveF reservierten Speicher
                  nicht berschreiten. Der Parameter ability
                  identifiziert das Programm.

Hinweis           Die Funktion ist nur auf Computern mit dem
                  Signalprozessor DSP65001 verfgbar.

Querverweise      EDsp_LockF           EDsp_UnlockF
                  EDsp_AvailableF      EDsp_ReserveF
                  EDsp_LoadProgF       EDsp_ExecBootF
                  EDsp_LodToBinaryFDsp_ExecBoot                                          PCTOSLIB.LIB
------------------------------------------------------------------

Deklaration       void  Dsp_ExecBoot( char *codeptr,
                                       long codesize,
                                       int ability );

Prototyp in       tos.h

Beschreibung      Die Funktion Dsp_ExecBoot ldt ein Boot-Programm
                  in die 512 Worte des internen DSP-Speichers. Vor
                  dem Laden wird ein Reset auf dem DSP ausgefhrt.
                  Das DSP-Programm mu im Binr-Format vorliegen.
                  Der Parameter codeptr zeigt auf den Programm-
                  start. Die Lnge des Programms wird durch den
                  Parameter codesize bestimmt. ability identifi-
                  ziert das Programm.

Hinweis           Die Funktion ist nur auf Computern mit dem
                  Signalprozessor DSP65001 verfgbar.

Querverweise      EDsp_LockF           EDsp_UnlockF
                  EDsp_AvailableF      EDsp_ReserveF
                  EDsp_LoadProgF       EDsp_ExecProgF
                  EDsp_LodToBinaryFDsp_LodToBinary                                       PCTOSLIB.LIB
------------------------------------------------------------------

Deklaration       long  Dsp_LodToBinary( char *file,
                                          char *codeptr );

Prototyp in       tos.h

Beschreibung      Die Funktion Dsp_LodToBinary konvertiert den
                  Inhalt der .LOD-Datei mit dem Namen filename
                  ins Binrformat. Das so erzeugte DSP-Programm
                  wird an der Adresse codeptr abgelegt. Dieser
                  Speicherbereich mu ausreichend gro dimen-
                  sioniert sein. Danach kann das Programm mit
                  EDsp_ExecProgF oder EDsp_ExecBootF ausgefhrt werden.
                  Bei erfolgreicher Konvertierung erhlt man
                  als Resultat die Lnge des Programms in DSP-
                  Worten oder beim Auftreten eines Fehlers einen
                  negative Wert.

Hinweis           Die Funktion ist nur auf Computern mit dem
                  Signalprozessor DSP65001 verfgbar.

Querverweise      EDsp_LockF           EDsp_UnlockF
                  EDsp_AvailableF      EDsp_ReserveF
                  EDsp_LoadProgF       EDsp_ExecBootF
                  EDsp_ExecProgFDsp_TriggerHC                                         PCTOSLIB.LIB
------------------------------------------------------------------

Deklaration       void  Dsp_TriggerHC( int vector );

Prototyp in       tos.h

Beschreibung      Die Funktion Dsp_TriggerHC fhrt Vector vector
                  aus. Nur die zwei Vektoren $13 und $14 stehen
                  DSP-Programmen zur freien Verfgung.

Hinweis           Die Funktion ist nur auf Computern mit dem
                  Signalprozessor DSP65001 verfgbar.Dsp_RequestUniqueAbility                              PCTOSLIB.LIB
------------------------------------------------------------------

Deklaration       int  Dsp_RequestUniqueAbility( void );

Prototyp in       tos.h

Beschreibung      Die Funktion Dsp_RequestUniqueAbility erteilt
                  einem DSP-Proze eine fr die gesammte System-
                  laufzeit eindeutige Identifikation, mittels
                  derer man feststellen kann, ob der zum Proze
                  gehrige Code resident im DSP vorhanden ist.

Hinweis           Die Funktion ist nur auf Computern mit dem
                  Signalprozessor DSP65001 verfgbar.

Querverweise      EDsp_GetProgAbilityFDsp_GetProgAbility                                    PCTOSLIB.LIB
------------------------------------------------------------------

Deklaration       int  Dsp_GetProgAbility( void );

Prototyp in       tos.h

Beschreibung      Die Funktion Dsp_GetProgAbility erteilt
                  einem DSP-Proze eine Identifikation, mittels
                  derer man feststellen kann, ob der zum Proze
                  gehrige Code bereits im DSP vorhanden ist.

Hinweis           Die Funktion ist nur auf Computern mit dem
                  Signalprozessor DSP65001 verfgbar.

Querverweise      EDsp_RequestUniqueAbilityFDsp_FlushSubroutines                                  PCTOSLIB.LIB
------------------------------------------------------------------

Deklaration       void  Dsp_FlushSubroutines( void );

Prototyp in       tos.h

Beschreibung      Die Funktion Dsp_FlushSubroutines entfernt alle
                  Unterprogramme aus dem DSP-Speicher und erhht
                  somit den verfgbaren freien Speicher.

Hinweis           Die Funktion ist nur auf Computern mit dem
                  Signalprozessor DSP65001 verfgbar.

Querverweise      EDsp_LoadSubroutineF EDsp_InqSubrAbilityF
                  EDsp_RunSubroutineFDsp_LoadSubroutine                                    PCTOSLIB.LIB
------------------------------------------------------------------

Deklaration       int  Dsp_LoadSubroutine( char *codeptr,
                                            long codesize,
                                            int ability );

Prototyp in       tos.h

Beschreibung      Die Funktion Dsp_LoadSubroutine installiert das
                  DSP-Unterprogramm aus dem Puffer codeptr im
                  DSP-Speicher. Das Unterprogramm ist codesize
                  DSP-Worte lang und hat die Identifikation
                  ability. Als Resultat erhlt man eine positive
                  Kennung, mittels derer das Unterprogramm mit
                  der Funktion EDsp_RunSubroutineF aufgerufen werden
                  kann. Null zeigt an, da das Unterprogramm nicht
                  installiert werden konnte. Das Unterprogramm
                  bleibt solange resident im DSP-Speicher bis
                  kein Platz mehr fr neue Unterprogramme ist
                  und es verdrngt wird oder die Funktion
                  Dsp_FlushSubroutines aufgerufen wird.

Hinweis           Die Funktion ist nur auf Computern mit dem
                  Signalprozessor DSP65001 verfgbar.

Querverweise      EDsp_RunSubroutineF  EDsp_FlushSubroutinesF
                  EDsp_InqSubrAbilityFDsp_InqSubrAbility                                    PCTOSLIB.LIB
------------------------------------------------------------------

Deklaration       int  Dsp_InqSubrAbility( int ability );

Prototyp in       tos.h

Beschreibung      Die Funktion Dsp_InqSubrAbility bestimmt die
                  Kennung des Unterprogramms mit der Funktio-
                  nalitt abilitiy. Als Resultat erhlt man die
                  Kennung des Unterprogramms. Ist das entspre-
                  chende Unterprogramm nicht im DSP-Speicher
                  vorhanden, wird Null zurckgegeben. In diesem
                  Fall mu das Unterprogramm mit EDsp_LoadSubroutineF
                  installiert werden.

Hinweis           Die Funktion ist nur auf Computern mit dem
                  Signalprozessor DSP65001 verfgbar.

Querverweise      EDsp_RunSubroutineF  EDsp_FlushSubroutinesF
                  EDsp_LoadSubroutineFDsp_RunSubroutine                                     PCTOSLIB.LIB
------------------------------------------------------------------

Deklaration       int  Dsp_RunSubroutine( int handle );

Prototyp in       tos.h

Beschreibung      Die Funktion Dsp_RunSubroutine fhrt das Unter-
                  programm mit der Kennung handle aus. Die Ken-
                  nung fr ein Unterprogramm findet man mittels
                  Dsp_InqSubrAbility oder Dsp_LoadSubroutine
                  heraus. Wird Null zurckgegeben, konnte das
                  Unterprogramm gestartet werden. Andernfalls
                  erhlt man ein negatives Resultat.

Hinweis           Die Funktion ist nur auf Computern mit dem
                  Signalprozessor DSP65001 verfgbar.

Querverweise      EDsp_InqSubrAbilityF EDsp_FlushSubroutinesF
                  EDsp_LoadSubroutineFDsp_Hf0                                               PCTOSLIB.LIB
------------------------------------------------------------------

Deklaration       int  Dsp_Hf0( int flag );

Prototyp in       tos.h

Beschreibung      Die Funktion Dsp_Hf0 ermittelt bzw. setzt den
                  Wert des Bits 3 des HSR. Der Parameter flag
                  hat die folgende Bedeutung:

                  ------------------------------------------------
                  flag  Bedeutung
                  ------------------------------------------------
                  0     Bit 3 des HSR lschen
                  1     Bit 3 des HSR setzen
                  -1    Bit 3 des HSR unverndert lassen
                  ------------------------------------------------

                  Als Resultat erhlt man den Wert des Bit 3 des
                  HSR.

Hinweis           Die Funktion ist nur auf Computern mit dem
                  Signalprozessor DSP65001 verfgbar.

Querverweise      EDsp_Hf1F            EDsp_Hf2F
                  EDsp_Hf3F            EDsp_HStatFDsp_Hf1                                               PCTOSLIB.LIB
------------------------------------------------------------------

Deklaration       int  Dsp_Hf1( int flag );

Prototyp in       tos.h

Beschreibung      Die Funktion Dsp_Hf1 ermittelt bzw. setzt den
                  Wert des Bits 4 des HSR. Der Parameter flag
                  hat die folgende Bedeutung:

                  ------------------------------------------------
                  flag  Bedeutung
                  ------------------------------------------------
                  0     Bit 4 des HSR lschen
                  1     Bit 4 des HSR setzen
                  -1    Bit 4 des HSR unverndert lassen
                  ------------------------------------------------

                  Als Resultat erhlt man den Wert des Bit 4 des
                  HSR.

Hinweis           Die Funktion ist nur auf Computern mit dem
                  Signalprozessor DSP65001 verfgbar.

Querverweise      EDsp_Hf0F            EDsp_Hf2F
                  EDsp_Hf3F            EDsp_HStatFDsp_Hf2                                               PCTOSLIB.LIB
------------------------------------------------------------------

Deklaration       int  Dsp_Hf2( void );

Prototyp in       tos.h

Beschreibung      Die Funktion Dsp_Hf2 ermittelt den Wert des
                  Bits 3 des HCR.

Hinweis           Die Funktion ist nur auf Computern mit dem
                  Signalprozessor DSP65001 verfgbar.

Querverweise      EDsp_Hf0F            EDsp_Hf1F
                  EDsp_Hf3F            EDsp_HStatFDsp_Hf3                                               PCTOSLIB.LIB
------------------------------------------------------------------

Deklaration       int  Dsp_Hf3( void );

Prototyp in       tos.h

Beschreibung      Die Funktion Dsp_Hf3 ermittelt den Wert des
                  Bits 4 des HCR.

Hinweis           Die Funktion ist nur auf Computern mit dem
                  Signalprozessor DSP65001 verfgbar.

Querverweise      EDsp_Hf0F            EDsp_Hf1F
                  EDsp_Hf2F            EDsp_HStatFDsp_HStat                                             PCTOSLIB.LIB
------------------------------------------------------------------

Deklaration       char  Dsp_HStat( void );

Prototyp in       tos.h

Beschreibung      Die Funktion Dsp_HStat ermittelt den Wert des
                  ISR-Registers. Somit kann man feststellen, ob
                  Daten empfangen oder gesendet werden knnen.

Hinweis           Die Funktion ist nur auf Computern mit dem
                  Signalprozessor DSP65001 verfgbar.

Querverweise      EDsp_Hf0F            EDsp_Hf1F
                  EDsp_Hf2F            EDsp_Hf3FKonstanten zur Videohardware des Falcons              PCTOSLIB.LIB
------------------------------------------------------------------

Zur vereinfachten Programmierung des Videohardwareregisters des
Falcons mittels der Funktion EVsetmodeF sind in der Headerdatei
tos.h die folgenden Konstanten definiert, die mit | kombiniert
werden:

    #define VERTFLAG  0x0100  /* Interlace aktivieren          */
    #define STMODES   0x0080  /* ST-kompatible Grafik          */
    #define OVERSCAN  0x0040  /* Overscan aktivieren           */
    #define PAL       0x0020  /* PAL-Modus                     */
    #define FALC_VGA  0x0010  /* VGA-Modus                     */
    #define TV        0x0000  /* TV-Modus                      */

    #define COL80     0x0080  /* Bildbreite mind. 640 Pixel    */
    #define COL40     0x0000  /* Bildbreite 320 Pixel          */

    #define BPS16     4       /* 16 Farbebenen: 65536 Farben   */
    #define BPS8      3       /*  8 Farbebenen:   256 Farben   */
    #define BPS4      2       /*  4 Farbebenen:    16 Farben   */
    #define BPS2      1       /*  2 Farbebenen:     4 Farben   */
    #define BPS1      0       /*  1 Farbebenen:     2 Farben   */

Mit der folgenden Konstante kann die Anzahl der Farbebenen aus-
maskiert werden:

    #defineNUMCOLS    7       /* if (( mode & NUMCOLS ) == 0 ) */
                              /*   puts( "monochrome mode" );  */Vsetmode                                              PCTOSLIB.LIB
------------------------------------------------------------------

Deklaration       int  Vsetmode( int modecode );

Prototyp in       tos.h

Beschreibung      Die Funktion Vsetmode programmiert das Video-
                  hardwareregister der Falcon-Computer. Die Bits
                  des Parameters mode haben folgende Bedeutung:

                  ------------------------------------------------
                  Bits   Bedeutung
                  ------------------------------------------------
                  0-2    Anzahl der Farbebenen:
                           0:    1 Ebene        2 Farben
                           1:    2 Ebenen       4 Farben
                           2:    4 Ebenen      16 Farben
                           3:    8 Ebenen     256 Farben
                           4:   16 Ebenen   65536 Farben

                  3      Gesetzt:  Bildbreite mindestens 640 Pixel
                         Gelscht: Bildbreite 320 Pixel

                  4      Gesetzt:  VGA-Modus
                         Gelscht: TV-Modus (auch Atari-SC-Monitore)

                  5      Gesetzt:  PAL-Modus
                         Gelscht: NTSC-Modus

                  6      Gesetzt: Overscan aktiv

                  7      Gesetzt: ST-kompatible Grafik

                  8      Gesetzt: Interlace-Modus aktiv
                  ------------------------------------------------

                  Zur Eeinfacheren KodierungF sind vordefinierte
                  Konstanten vorhanden.
                  Als Resultat erhlt man den alten Inhalt des
                  Videohardwareregisters.

Hinweis           Es findet keine berprfung auf die Richtigkeit
                  der Kodierung fr den angeschlossenen Monitor
                  statt. Also Vorsicht!
                  Die Funktion ist nur auf Computern der Falcon-
                  Serie verfgbar.

Querverweise      EVsetSyncF           Emon_typeF
                  EVgetSizeF           EVgetRGBF
                  EVsetRGBF            EVsetMaskFmon_type                                              PCTOSLIB.LIB
------------------------------------------------------------------

Deklaration       int  mon_type( void );

Prototyp in       tos.h

Beschreibung      Die Funktion mon_type ermittelt den angeschlos-
                  senen Monitortyp. Als Resultat erhlt man einen
                  der folgenden Werte:

                  ------------------------------------------------
                  Resultat  Bedeutung
                  ------------------------------------------------
                  0         ST-Monochrommonitor
                  1         ST-Farbmonitor
                  2         VGA-Monitor
                  3         TV-Gert
                  ------------------------------------------------

Hinweis           Die Funktion ist nur auf Computern der Falcon-
                  Serie verfgbar.

Querverweise      EVsetSyncF           EVsetmodeF
                  EVgetSizeF           EVgetRGBF
                  EVsetRGBF            EVsetMaskFVsetSync                                              PCTOSLIB.LIB
------------------------------------------------------------------

Deklaration       void  VsetSync( int flag );

Prototyp in       tos.h

Beschreibung      Die Funktion VsetSync legt fest, auf welche Art
                  Synchronisation erfolgen soll. Der Parameter
                  flag wird wie folgt kodiert:

                  ------------------------------------------------
                  Bit    Bedeutung fr gesetzte Bits
                  ------------------------------------------------
                  0      Externer Takt
                  1      Vertikale Synchronisation
                  2      Horizontale Synchronisation
                  ------------------------------------------------

Hinweis           Die Funktion ist nur auf Computern der Falcon-
                  Serie verfgbar.

Querverweise      Emon_typeF           EVsetmodeF
                  EVgetSizeF           EVgetRGBF
                  EVsetRGBF            EVsetMaskFVgetSize                                              PCTOSLIB.LIB
------------------------------------------------------------------

Deklaration       long  VgetSize( int mode );

Beschreibung      Die Funktion VgetSize ermittelt die Gre des
                  Bildschirmpuffers in Bytes fr den Grafikmodus
                  EmodeF.

Hinweis           Die Funktion ist nur auf Computern der Falcon-
                  Serie verfgbar.

Querverweise      Emon_typeF           EVsetmodeF
                  EVsetSyncF           EVgetRGBF
                  EVsetRGBF            EVsetMaskFVgetRGB                                               PCTOSLIB.LIB
------------------------------------------------------------------

Deklaration       void  VgetRGB( int index, int count, long *array );

Beschreibung      Die Funktion VgetRGB ermittelt die RGB-Werte
                  fr count Farben ab dem Farbindex index. Die
                  resultierenden Werte werden in array abgelegt.

Hinweis           Die Funktion ist nur auf Computern der Falcon-
                  Serie verfgbar.

Querverweise      Emon_typeF           EVsetmodeF
                  EVsetSyncF           EVgetSizeF
                  EVsetRGBF            EVsetMaskFVsetRGB                                               PCTOSLIB.LIB
------------------------------------------------------------------

Deklaration       void  VsetRGB( int index, int count, long *array );

Beschreibung      Die Funktion VsetRGB setzt die RGB-Werte
                  fr count Farben ab dem Farbindex index. Die
                  Farbwerte sind in array abgelegt.

Hinweis           Die Funktion ist nur auf Computern der Falcon-
                  Serie verfgbar.

Querverweise      Emon_typeF           EVsetmodeF
                  EVsetSyncF           EVgetSizeF
                  EVgetRGBF            EVsetMaskFVsetMask                                              PCTOSLIB.LIB
------------------------------------------------------------------

Deklaration       void  VsetMask( int ormask, int andmask,
                                                 int overlay );

Beschreibung      Die Funktion VsetMask setzt Masken, die benutzt
                  werden, um die durch die VDI-Funktion Evs_colorF
                  gesetzten Farben zu modifizieren. vs_color er-
                  mittelt zu seinem Parameter einen RGB-Wert.
                  Dieser wird bitweise mit ormask verodert und
                  mit andmask verundet. Somit knnen Farben im
                  True-Color-Modus transparent erscheinen.
                  Ist overlay ungleich Null, wird in den Overlay-
                  modus geschalten bzw. mit Null zurck.

Hinweis           Die Funktion ist nur auf Computern der Falcon-
                  Serie verfgbar.

Querverweise      Emon_typeF           EVsetmodeF
                  EVsetSyncF           EVgetSizeF
                  EVgetRGBF            EVsetRGBFlocksnd                                               PCTOSLIB.LIB
------------------------------------------------------------------

Deklaration       long  locksnd( void );

Prototyp in       tos.h

Beschreibung      Die Funktion locksnd sperrt das Soundsystem fr
                  andere Anwendungen.
                  Ist das Soundsystem bereits vergeben, so erhlt
                  man als Ergebnis ein negatives Resultat oder
                  im Erfolgsfall den Wert 1.

Hinweis           Die Funktion ist nur auf Computern der Falcon-
                  Serie verfgbar.

Querverweise      EbuffoperF           EbuffptrF
                  EdevconnectF         EdsptristateF
                  EgpioF               EsetbufferF
                  EsetinterruptF       EsetmontracksF
                  EsetmodeF            EsettracksF
                  EsndstatusF          EsoundcmdF
                  EunlocksndFunlocksnd                                             PCTOSLIB.LIB
------------------------------------------------------------------

Deklaration       long  unlocksnd( void );

Prototyp in       tos.h

Beschreibung      Die Funktion unlocksnd gibt das Soundsystem fr
                  andere Anwendungen frei, nachdem es zuvor ge-
                  sperrt wurde.
                  War das Soundsystem bereits verfgbar, so erhlt
                  man als Ergebnis ein negatives Resultat oder
                  im Erfolgsfall den Wert 0.

Hinweis           Die Funktion ist nur auf Computern der Falcon-
                  Serie verfgbar.

Querverweise      EbuffoperF           EbuffptrF
                  EdevconnectF         EdsptristateF
                  EgpioF               EsetbufferF
                  EsetinterruptF       EsetmontracksF
                  EsetmodeF            EsettracksF
                  EsndstatusF          EsoundcmdF
                  ElocksndFsoundcmd                                              PCTOSLIB.LIB
------------------------------------------------------------------

Deklaration       long  soundcmd( int mode, int data );

Prototyp in       tos.h

Beschreibung      Die Funktion soundcmd setzt bzw. ermittelt die
                  Parameter des A/D- und D/A-Wandlers. Der Para-
                  meter mode bestimmt das Kommando und data die
                  vorzunehmende Einstellung.

                  ------------------------------------------------
                  mode  Bedeutung
                  ------------------------------------------------
                  0     Abschwchung des linken Ausgabekanals um
                        1,5 Db Einheiten:
                            data = Einheiten << 4;

                  1     Abschwchung des rechten Ausgabekanals um
                        1,5 Db Einheiten:
                            data = Einheiten << 4;

                  2     Verstrkung des linken Ausgabekanals um
                        1,5 Db Einheiten:
                            data = Einheiten << 4;

                  3     Verstrkung des rechten Ausgabekanals um
                        1,5 Db Einheiten:
                            data = Einheiten << 4;

                  4     Eingabequellen des 16-Bit-Hardware-
                        addierers. Bit 0 von data reprsentiert
                        den A/D-Wandler und Bit 1 den Multiplexer

                  5     Eingabequellen des A/D-Wandlers. Bit 0
                        steht fr den rechten und Bit 1 fr den
                        linken Kanal. Ist ein Bit gesetzt, wird
                        werden die Daten dem Soundchip entnommen,
                        sonst dem Mikrophon.

                  6     Kompatibilitt zum STE-Soundsystem. data
                        wird als Vorteiler genommen, falls der
                        mittels EdevconnectF eingestellte Vorteiler
                        gleich Null ist:
                            0      Vorteiler ist 1280
                            1      Vorteiler ist 640
                            2      Vorteiler ist 320
                            3      Vorteiler ist 160
                  ------------------------------------------------

                  Wird fr den Parameter data der Wert -1 ber-
                  geben, so bleibt die Einstellung unverndert.
                  Als Resultat erhlt man stets die aktuelle
                  Einstellung.

Hinweis           Die Funktion ist nur auf Computern der Falcon-
                  Serie verfgbar.

Querverweise      EbuffoperF           EbuffptrF
                  EdevconnectF         EdsptristateF
                  EgpioF               EsetbufferF
                  EsetinterruptF       EsetmontracksF
                  EsetmodeF            EsettracksF
                  EsndstatusF          EunlocksndF
                  ElocksndFsetbuffer                                             PCTOSLIB.LIB
------------------------------------------------------------------

Deklaration       long  setbuffer( int reg, void *begaddr,
                                             void *endaddr );

Prototyp in       tos.h

Beschreibung      Die Funktion setbuffer setzt den Puffer fr
                  die Wiedergabe- (reg = 0) bzw. Aufnahmedaten
                  (reg = 1). Der Parameter begaddr zeigt auf
                  den Anfang des Puffers und endaddr auf das
                  letzte Byte + 1 des Puffers.
                  Im Erfolgsfall liefert die Funktion den Wert 0.

Hinweis           Die Funktion ist nur auf Computern der Falcon-
                  Serie verfgbar.

Querverweise      EbuffoperF           EbuffptrF
                  EdevconnectF         EdsptristateF
                  EgpioF               ElocksndF
                  EsetinterruptF       EsetmontracksF
                  EsetmodeF            EsettracksF
                  EsndstatusF          EsoundcmdF
                  EunlocksndFsetmode                                               PCTOSLIB.LIB
------------------------------------------------------------------

Deklaration       long  setmode( int mode );

Prototyp in       tos.h

Beschreibung      Die Funktion setmode gibt die Art des Aufnahme-
                  und Wiedergabemodus an:

                  ------------------------------------------------
                  mode  Bedeutung
                  ------------------------------------------------
                  0      8 Bit Stereo
                  1     16 Bit Stereo
                  2      8 Bit Mono
                  ------------------------------------------------

                  Im Erfolgsfall liefert die Funktion den Wert 0.

Hinweis           Die Funktion ist nur auf Computern der Falcon-
                  Serie verfgbar.

Querverweise      EbuffoperF           EbuffptrF
                  EdevconnectF         EdsptristateF
                  EgpioF               ElocksndF
                  EsetbufferF          EsetinterruptF
                  EsetmontracksF       EsettracksF
                  EsndstatusF          EsoundcmdF
                  EunlocksndFsettracks                                             PCTOSLIB.LIB
------------------------------------------------------------------

Deklaration       long  settracks( int playtracks, int rectracks );

Prototyp in       tos.h

Beschreibung      Die Funktion settracks setzt die Anzahl der
                  Aufnahme- (rectracks) und Wiedergabespuren
                  (playtracks). Es stehen maximal je 4 Spuren
                  zur Verfgung. Als Argument wird die Anzahl
                  - 1 bergeben!
                  Im Erfolgsfall liefert die Funktion den Wert 0.

Hinweis           Die Funktion ist nur auf Computern der Falcon-
                  Serie verfgbar.

Querverweise      EbuffoperF           EbuffptrF
                  EdevconnectF         EdsptristateF
                  EgpioF               ElocksndF
                  EsetbufferF          EsetinterruptF
                  EsetmontracksF       EsetmodeF
                  EsndstatusF          EsoundcmdF
                  EunlocksndFsetmontracks                                          PCTOSLIB.LIB
------------------------------------------------------------------

Deklaration       long  setmontracks( int montrack );

Prototyp in       tos.h

Beschreibung      Die Funktion setmontracks legt fest, da die
                  Ausgabe einer bestimmten Spur ber den in-
                  ternen Lautsprecher erfolgen soll. Dieser
                  kann jeweils nur eine Spur wiedergeben.

Parameter         montrack bestimmt eine der vier mglichen Spu-
                  ren. Diese sind von 0 bis 3 durchnumeriert.

Resultat          Im Erfolgsfall liefert die Funktion den Wert 0.

Hinweis           Die Funktion ist nur auf Computern der Falcon-
                  Serie verfgbar.

Querverweise      EbuffoperF           EbuffptrF
                  EdevconnectF         EdsptristateF
                  EgpioF               ElocksndF
                  EsetbufferF          EsetinterruptF
                  EsetmodeF            EsettracksF
                  EsndstatusF          EsoundcmdF
                  EunlocksndFsetinterrupt                                          PCTOSLIB.LIB
------------------------------------------------------------------

Deklaration       long  setinterrupt( int src_inter, int cause );

Prototyp in       tos.h

Beschreibung      Die Funktion setinterrupt bestimmt, welcher
                  Interrupt nach dem Aufnehmen bzw. Abspielen
                  ausgelst werden soll.

Parameter         ------------------------------------------------
                  src_inter  Bedeutung
                  ------------------------------------------------
                  0          Timer-A-Interrupt
                  1          MFP-Interrupt 7
                  ------------------------------------------------

                  ------------------------------------------------
                  cause      Bedeutung
                  ------------------------------------------------
                  0          Kein Interrupt
                  1          Interrupt nach dem Abspielen
                  2          Interrupt nach dem Aufnehmen
                  3          Interrupt nach Aufnehmen und Ab-
                             spielen
                  ------------------------------------------------

Resultat          Im Erfolgsfall liefert die Funktion den Wert 0.

Hinweis           Die Funktion ist nur auf Computern der Falcon-
                  Serie verfgbar.

Querverweise      EbuffoperF           EbuffptrF
                  EdevconnectF         EdsptristateF
                  EgpioF               ElocksndF
                  EsetbufferF          EsetmontracksF
                  EsetmodeF            EsettracksF
                  EsndstatusF          EsoundcmdF
                  EunlocksndFbuffoper                                              PCTOSLIB.LIB
------------------------------------------------------------------

Deklaration       long  buffoper( int mode );

Prototyp in       tos.h

Beschreibung      Die Funktion buffoper legt den Aufnahme- und
                  Wiedergabemodus fest.

Parameter         Wird fr mode der Wert -1 bergeben, wird die
                  aktuelle Einstellung ermittelt. Sonst wird
                  mode wie folgt kodiert:

                  ------------------------------------------------
                  Bit  Operation
                  ------------------------------------------------
                  0    Wiedergabe
                  1    Wiedergabewiederholung
                  2    Aufnahme
                  1    Aufnahmewiederholung
                  ------------------------------------------------

                  Gesetzte Bits schalten eine Operation ein, ge-
                  lschte Bits aus.

Resultat          Im Erfolgsfall liefert die Funktion den Wert 0.
                  Wurde fr mode -1 bergeben, erhlt man die
                  aktuelle Einstellung, deren Kodierung der des
                  Parameters mode entspricht.

Hinweis           Die Funktion ist nur auf Computern der Falcon-
                  Serie verfgbar.

Querverweise      EbuffptrF            EdevconnectF
                  EdsptristateF        EgpioF
                  ElocksndF            EsetbufferF
                  EsetinterruptF       EsetmontracksF
                  EsetmodeF            EsettracksF
                  EsndstatusF          EsoundcmdF
                  EunlocksndFdsptristate                                           PCTOSLIB.LIB
------------------------------------------------------------------

Deklaration       long  dsptristate( int dspxmit, int dsprec );

Prototyp in       tos.h

Beschreibung      Die Funktion dsptristate koppelt Leitungen vom
                  Multiplexer ab, wenn externe Hardware am SSI-
                  Port des DSP angeschlossen wird.

Parameter         ------------------------------------------------
                  Parameter  Bedeutung
                  ------------------------------------------------
                  dspxmit    Der Wert 0 koppelt den Multiplexer
                             von der entsprechenden Leitung ab,
                             1 erlaubt die Verbindung

                  dsprec     Der Wert 0 koppelt den Multiplexer
                             von der entsprechenden Leitung ab,
                             1 erlaubt die Verbindung
                  ------------------------------------------------

Resultat          Im Erfolgsfall liefert die Funktion den Wert 0.

Hinweis           Die Funktion ist nur auf Computern der Falcon-
                  Serie verfgbar.

Querverweise      EbuffoperF           EbuffptrF
                  EdevconnectF         EgpioF
                  ElocksndF            EsetbufferF
                  EsetinterruptF       EsetmontracksF
                  EsetmodeF            EsettracksF
                  EsndstatusF          EsoundcmdF
                  EunlocksndFgpio                                                  PCTOSLIB.LIB
------------------------------------------------------------------

Deklaration       long  gpio( int mode, int data );

Prototyp in       tos.h

Beschreibung      Die Funktion gpio dient der Kommunikation ber
                  die externen DSP-Buchse.

Parameter         ------------------------------------------------
                  mode  Bedeutung
                  ------------------------------------------------
                  0     Setzen der Ein-/Ausgaberichtung
                        Die unteren drei Bits von data reprsen-
                        tieren die Mehrzweckleitungen. Ein ge-
                        setztes Bit steht fr eine Ausgabe- und
                        ein gelschtes fr eine Eingabeleitung.

                  1     Lesen der Mehrzweckleitungen
                        Den Status der Leitungen erhlt man als
                        Funktionsresultat.

                  2     Schreiben auf den Mehrzweckleitungen
                        Der Parameter data enthlt den neuen
                        Status der Mehrzweckleitungen.
                  ------------------------------------------------

Resultat          Im Erfolgsfall liefert die Funktion den Wert 0.
                  Hatte der Parameter mode den Wert 1, so erhlt
                  man den Status der Mehrzweckleitungen.

Hinweis           Die Funktion ist nur auf Computern der Falcon-
                  Serie verfgbar.

Querverweise      EbuffoperF           EbuffptrF
                  EdevconnectF         EdsptristateF
                  ElocksndF            EsetbufferF
                  EsetinterruptF       EsetmontracksF
                  EsetmodeF            EsettracksF
                  EsndstatusF          EsoundcmdF
                  EunlocksndFdevconnect                                            PCTOSLIB.LIB
------------------------------------------------------------------

Deklaration       long  devconnect( int src, int dst,
                                     int srcclk, int prescale,
                                     int protocol );

Prototyp in       tos.h

Beschreibung      Die Funktion devconnect verbindet Komponenten
                  des Audio-Subsystems.

Parameter         ------------------------------------------------
                  Parameter  Bedeutung
                  ------------------------------------------------
                  src        Quellkomponente:
                               0   DMA-Ausgabe
                               1   DSP-Ausgabe
                               2   Externer Eingabekanal
                               3   A/D-Wandler - Mikrophon

                  dst        Bitvektor der Zielkomponenten:
                               Bit 0   DMA-Eingabe
                               Bit 1   DSP-Eingabe
                               Bit 2   Externer Ausgabekanal
                               Bit 3   D/A-Wandler - Lautsprecher

                  srcclk     Takt fr die Quellkomponente:
                               0   Interner 25,175 MHz Takt
                               1   Externer Takt
                               2   Interner 32 MHz Takt

                  prescale   Taktvorteiler. Die Sample-Rate ergibt
                             sich aus dem Takt geteilt durch 256
                             und geteilt durch Vorteiler + 1. Die
                             Werte fr den Vorteiler rangieren
                             von 0 bis 11.
                             Wird fr den Vorteiler 0 bergeben,
                             wird in den ESTE-KompatibilittsmodusF
                             geschaltet.

                  protocol   Wird 0 bergeben, findet eine ber-
                             tragung mit Handshaking statt, bei
                             1 erfolgt kein Handshaking.
                  ------------------------------------------------

Resultat          Im Erfolgsfall liefert die Funktion den Wert 0.

Hinweis           Die Funktion ist nur auf Computern der Falcon-
                  Serie verfgbar.

Querverweise      EbuffoperF           EbuffptrF
                  EdsptristateF        EgpioF
                  ElocksndF            EsetbufferF
                  EsetinterruptF       EsetmontracksF
                  EsetmodeF            EsettracksF
                  EsndstatusF          EsoundcmdF
                  EunlocksndFsndstatus                                             PCTOSLIB.LIB
------------------------------------------------------------------

Deklaration       long  sndstatus( int reset );

Prototyp in       tos.h

Beschreibung      Die Funktion sndstatus ermittelt den aktuellen
                  Status des A/D- und D/A-Wandlers. Sie kann
                  diesen ebenfalls neu initialisieren.

Parameter         Hat res den Wert 1 wird der A/D- und D/A-Wand-
                  ler neu initialisiert (unteranderem werden die
                  berlaufbits gelscht). Andernfalls wird der
                  aktuelle Status ermittelt

Resultat          Liegt kein Fehler vor erhlt man als Ergebnis
                  den Wert Null. Ansonsten stellt das Resultat
                  einen Bitvektor dar, der sich wie folgt ent-
                  schlsselt:

                  ------------------------------------------------
                  Bits  Bedeutung
                  ------------------------------------------------
                  0-3   1  Ungltiges Kontrollfeld
                        2  Ungltiges Syncformat
                        3  Ungltiger Takt

                  4     Linker berlauf

                  5     Rechter berlauf
                  ------------------------------------------------

Hinweis           Die Funktion ist nur auf Computern der Falcon-
                  Serie verfgbar.

Querverweise      EbuffoperF           EbuffptrF
                  EdevconnectF         EdsptristateF
                  EgpioF               ElocksndF
                  EsetbufferF          EsetinterruptF
                  EsetmontracksF       EsetmodeF
                  EsettracksF          EsoundcmdF
                  EunlocksndFbuffptr                                               PCTOSLIB.LIB
------------------------------------------------------------------

Deklaration       long  buffptr( long *ptr );

Prototyp in       tos.h

Beschreibung      Die Funktion buffptr ermittelt die aktuelle
                  Wiedergabe- und Aufnahmepositionen in den ent-
                  sprechenden Puffern.

Parameter         bptr zeigt auf einen mindestens 4 Langworte
                  groen Puffer. In diesen werden die Positions-
                  zeiger angelegt. Der erste long des Puffer
                  enthlt einen Zeiger auf die aktuelle Wieder-
                  gabeposition und der zweite long einen
                  Zeiger auf die aktuelle Abspielposition.

Resultat          Im Erfolgsfall liefert die Funktion den Wert 0.

Hinweis           Die Funktion ist nur auf Computern der Falcon-
                  Serie verfgbar.

Querverweise      EbuffoperF           EdevconnectF
                  EdsptristateF        EgpioF
                  ElocksndF            EsetbufferF
                  EsetinterruptF       EsetmontracksF
                  EsetmodeF            EsettracksF
                  EsndstatusF          EsoundcmdF
                  EunlocksndFName           BIOS standard keys - Tastatur reinitialisieren.

Xbiosnummer    24

Definition     void Bioskeys(void);

Prototyp in    tos.h

Beschreibung   Bioskeys ist eine EXBIOSF-Routine zur Re-Initialisierung
               der Tastatur-Codes. Dies ist meist nur dann ntig, wenn
               die Tastatur mit Hilfe der Funktion Keytbl
               umprogrammiert wurde.
Ergebnis       Die Funktion liefert kein Ergebnis.
Beispiel       Siehe Keytbl
Querverweis    EKeytblFName           blitter mode - Blitter-Chip konfigurieren.

Xbiosnummer    64

Definition     int Blitmode(int mode);

Prototyp in    tos.h

Beschreibung   Blitmode ist eine EXBIOSF-Routine um den Blitter einzu-
               schalten oder seine Existenz festzustellen. Wenn im
               Parameter mode der Wert -1 angegeben wird, dann erhlt
               man den Status des Blitter-Chips. Bei allen anderen
               Werten wird der Blitter konfiguriert:
               Bit            Beschreibung
               0              Blitter oder Line A umschalten
               1-14           reserviert (immer 0)
               15             immer 0
               Achtung: Diese Funktion gibt es zwar nur im Blitter-TOS.
               Sie liefert aber, wenn man sie nur als Nachfrage-
               Funktion verwendet, auch im alten TOS den korrekten
               Wert. (Bit 1 = 0: Blitter nicht vorhanden).
Ergebnis       Die Funktion liefert als Ergebnis im Bit 0 den Status
               des Blitters
                     0:  Blitter aus
                     1:  Blitter an
               und im Bit 1, ob ein Blitter vorhaden ist:
                     0:  Blitter nicht vorhanden
                     1:  Blitter vorhanden.Name           cursor configuration - legt die Arbeitsweise des
               Cursors fest.

Definition     int Cursconf( int func, int rate );

Prototyp in    tos.h

Beschreibung   Die EXBIOSF-Routine Cursconf verndert das Aussehen und
               wahlweise die Blinkgeschwindigkeit des Cursors. Der
               Parameter func kann folgende Werte annehmen:
0              Cursor abschalten
1              Cursor einschalten
2              Cursor blinkt
3              Cursor blinkt nicht
4              Die Blinkgeschwindigkeit des Cursors wird auf rate
               gesetzt.
5              Liefert die aktuelle Blinkfrequenz
               Der Parameter rate soll in Schritten der Wiederholfre-
               quenz des Bildschirms verwendet werden.
Ergebnis       Die Funktion liefert nur dann ein definiertes Ergebnis,
               nmlich die Blinkfrequenz, wenn im Parameter func die
               Zahl 5 bergeben wurde.Name           Dosound - programmiert den Sound-Generator.

Xbiosnummer    32

Definition     void *Dosound( void *buf );

Prototyp in    tos.h

Beschreibung   Die EXBIOSF-Routine Dosound startet einen Proze zur
               Steuerung des Soundgenerators. Der Puffer buf enthlt
               Befehle fr die Programmierung des Sound-Generators.
Ergebnis       Die Funktion liefert kein Ergebnis.Name           Floppy format - formatiert einzelne Spuren auf einer
               Diskette.

Xbiosnummer    10

Definition     int Flopfmt( void *buf, long filler, int devno,
                            int spt, int trackno, int sideno,
                            int interlv, long magic, int virgin );

Prototyp in    tos.h

Beschreibung   Die EXBIOSF-Routine Flopfmt formatiert eine oder mehrere
               Spuren auf einer Diskette. In dem durch buf adres-
               sierten Speicherbereich mu das Abbild von mindestens
               spt Sektoren Platz finden, so da eine Spur trackno auf
               der Seite sideno direkt formatiert werden kann. Der
               Parameter filler wird auer bei STs mit Blitter-TOS
               nicht verwendet, whrend interlv den physikalischen
               Abstand von logisch hintereinander geschriebenen Sek-
               toren festlegt. Der Parameter magic mu die Hexadezi-
               malzahl 0x87654321 enthalten. Der Parameter virgin ent-
               hlt den Wert, der in neuen Sektoren abgelegt werden
               soll. Dazu wird normalerweise die Konstante 0xE5E5 ver-
               wendet.
Ergebnis       Die Funktion liefert als Ergebnis eine 0, wenn kein
               Fehler passiert ist, ansonsten einen Fehlercode.
Querverweis    EFlopwrFName           DMA read - liest einzelne Sektoren von einer
               DMA-Einheit.

Xbiosnummer    42

Definition     int  DMAread( long sector, int count, 
                              void *buffer, int devno );

Prototyp in    tos.h

Beschreibung   Die EXBiosF-Routine DMAread liest einzelne oder mehrere
               Sektoren von der DMA-Einheit devno. sector ist die
               Nummer des ersten Sektors, count die Anzahl der zu
               lesenden Sektoren, buffer ist ein Zeiger auf das
               Standard-RAM des TT, in das die Daten gelesen werden
               soll.
               Folgende Werte sind fr denvo erlaubt:
                     0 -  7        ACSI Gerte
                     8 - 15        SCSI Gerte
                     Andere        Reserviert
Hinweis        Dise Funktion ist nur im TOS030 des TT vefgbar.
Ergebnis       Die Funktion liefert als Ergebnis eine 0, wenn kein
               Fehler passiert ist, ansonsten einen Fehlercode.
Querverweis    EDMAwriteF, EFloprdF, EFlopwrFName           DMA read - schreibt einzelne Sektoren auf eine
               DMA-Einheit.

Xbiosnummer    43

Definition     int  DMAwrite( long sector, int count, 
                              void *buffer, int devno );

Prototyp in    tos.h

Beschreibung   Die EXBiosF-Routine DMAwrite schreibt einzelne oder
               mehrere Sektoren auf die DMA-Einheit devno. sector
               ist die Nummer des ersten Sektors, count die Anzahl der
               zu schreibenden Sektoren, buffer ist ein Zeiger auf das
               Standard-RAM des TT, aus dem die Daten geschrieben
               werden soll.
               Folgende Werte sind fr denvo erlaubt:
                     0 -  7        ACSI Gerte
                     8 - 15        SCSI Gerte
                     Andere        Reserviert
Hinweis        Dise Funktion ist nur im TOS030 des TT vefgbar.
Ergebnis       Die Funktion liefert als Ergebnis eine 0, wenn kein
               Fehler passiert ist, ansonsten einen Fehlercode.
Querverweis    EDMAreadF, EFloprdF, EFlopwrFName           Floppy read - liest einzelne Sektoren von einer
               Platteneinheit.

Xbiosnummer    8

Definition     int Floprd(void *buf, long filler, int devno,
                          int sectno, int trackno, int sideno,
                          int count);

Prototyp in    tos.h

Beschreibung   Die EXBIOSF-Routine Floprd liest einen oder mehrere Sek-
               toren von einer Platteneinheit. Der Inhalt der Sektoren
               wird in den durch buf adressierten Speicherbereich
               geladen. Der Parameter filler findet bei Computern ohne
               Blitter-TOS keinerlei Verwendung. Das jeweilige Gert
               wird unter devno angegeben. Mit dem Sektor sectno, der
               Spurnummer trackno, der Seite sideno wird der Start-
               punkt festgelegt, ab dem count Sektoren gelesen werden
               sollen.
Ergebnis       Die Funktion liefert als Ergebnis eine 0, wenn kein
               Fehler passiert ist, ansonsten einen Fehlercode.
Querverweis    EDMAreadF, EDMAwriteF, EFlopwrFName           Floppy rate - liest oder setzt die seek rate eines
               Floppylaufwerks.

Xbiosnummer    41

Definition     int Floprate( int devno, int newrate );

Prototyp in    tos.h

Beschreibung   Die EXBIOSF-Routine Floprate liefert die augeblickliche
               seek rate, wenn fr newrate -1 bergeben wird. Sonst
               wird die seek rate auf den Wert in newrate gesetzt.
               Gltige seek rate Werte sind:
               
               Wert   seek rate
               ----------------
               00      6 ms
               01     12 ms
               02      2 ms
               03      3 ms
               
               Es wird keine Bereichsberprfung fr devno und 
               newrate vorgenommen.
Hinweis        Floprate wird erst ab TOS 1.4 untersttzt
Ergebnis       Die Funktion liefert die seek rate als Ergebnis.
Querverweis    EFlopwrF, EFloprdF, EFlopverF, EFlopfmtFName           Flop verifify - berprft Disketten.

Xbiosnummer    19

Definition     int Flopver(void *buf, long filler, int devno, int sect
no, int trackno, int sideno, int count);

Prototyp in    tos.h

Beschreibung   Die EXBIOSF-Routine Flopver untersucht einzelne Sektoren
               auf Disketten im Hinblick darauf, da sie einwandfrei
               gelesen werden knnen. Im Parameter buf wird ein 1024-
               Byte groer Puffer zur Auflistung eventuell besch-
               digter Sektoren zur Verfgung gestellt. Der Eintrag
               filler wird auer im Blitter-TOS nicht verwendet.
               device enthlt die Nummer des entsprechenden Laufwerks.
               sectno, trackno und sideno geben Sektor, Spur und Seite
               an. Die Anzahl der Sektoren wird in count bergeben.
Ergebnis       Die Funktion liefert als Ergebnis 0, wenn alle angege-
               benen Sektoren lesbar sind, und einen von 0 verschiede-
               nen Fehlercode, wenn einzelne Sektoren nicht gelesen
               werden konnten.Name           Floppy write - schreibt einzelne Sektoren auf eine
               Platteneinheit.

Xbiosnummer    9

Definition     int Flopwr(void *buf, long filler, int devno,
                          int sectno, int trackno, int sideno,
                          int count);

Prototyp in    tos.h

Beschreibung   Die EXBIOSF-Routine Flopwr schreibt einen oder mehrere
               Sektoren auf eine Platteneinheit. Der Inhalt der
               Sektoren wird durch den mit buf adressierten Speicher-
               bereich berschrieben. Der Parameter filler findet
               keinerlei Verwendung. Das jeweilige Gert wird unter
               devno angegeben. Mit dem Sektor sectno, der Spurnummer
               trackno, der Seite sideno wird der Startpunkt fest-
               gelegt, ab dem count Sektoren geschrieben werden sollen.
Ergebnis       Die Funktion liefert als Ergebnis eine 0, wenn kein
               Fehler passiert ist, ansonsten einen Fehlercode.
Querverweis    EDMAreadF, EDMAwriteF, EFloprdFName           get resolution - ermittelt die Auflsung des Bild-
               schirms.

Xbiosnummer    4

Definition     int Getrez(void);

Prototyp in    tos.h

Beschreibung   Die EXBIOSF-Routine Getrez ermittelt die Auflsung des
               Bildschirms.
Ergebnis       Die Funktion liefert als Ergebnis folgende Werte:
2              hohe Auflsung
1              mittlere Auflsung
0              niedrige AuflsungName           get time - Zeit ermitteln.

Xbiosnummer    23

Definition     unsigned long Gettime(void);

Prototyp in    tos.h

Beschreibung   Die EXBIOSF-Routine Gettime ermittelt Datum und Uhrzeit.
               Das 32-Bit-Ergebnis time wird wie folgt aufgesplittet:
Bit            Beschreibung
0-4            Sekunden in Einheiten von 2 (0-29)
5-10           Minuten (0-59)
11-15          Stunden (0-23)
16-20          Tag im Monat (1-31)
21-24          Monat (1-12)
25-31          Jahr (0-119, 0 steht fr 1980)
Ergebnis       Die Funktion liefert Datum und Uhrzeit als Ergebnis.
Gruppe         EDatum und UhrzeitF   EPure-C-SpezialfunktionenF
Querverweis    EtimeF   EctimeF   EsettimeF   EgettimeFName           access GI sound chip - ermglicht den Zugriff auf die
               Register des GI-Sound-Chips.

Xbiosnummer    28

Definition     char Giaccess(int data, int regno);

Prototyp in    tos.h

Beschreibung   Die EXBIOSF-Routine Giaccess ermglicht den Zugriff auf
               die Register des GI-Sound-Chips.
Ergebnis       Die Funktion liefert als Ergebnis den Inhalt des ange-
               gebenen Registers.Name           write string to keyboard - programmiert den Tastatur-
               Chip.

Xbiosnummer    25

Definition     void Ikbdws(int count, void *ptr);

Prototyp in    tos.h

Beschreibung   Die EXBIOSF-Routine Ikbdws bergibt einen String, der
               unter ptr abgelegt wurde, an die intelligente Tastatur.
               Die Lnge des Strings wird in count festgelegt.
Ergebnis       Die Funktion liefert kein Ergebnis.Name           initialize mouse - initialisiert die Maus.

Xbiosnummer    0

Definition     void Initmouse( int type, EMOUSEF *par,
                               void (*mousevec)() );

Prototyp in    tos.h

Beschreibung   Initmouse ist eine EXBIOSF-Routine zur Low-Level-
               Initialisierung der Maus. Der Parameter type legt die
               Betriebsart der Maus fest:
0              Maus abschalten
1              Relativ-Modus
2              Absolut-Modus
3              reserviert
4              Tastatursteuerung
               Das Argument par enthlt die Adresse eines 14-Byte
               langen Parameter-Blocks. Die Bytes 0 bis 3 werden in
               allen Betriebsarten verwendet. Die Bytes von 4 bis 11
               werden nur dann verwendet, wenn die Maus im Absolut-
               Modus arbeiten soll.
0              Falls 0 Y-Achse oben 0, ansonsten unten 0
1              Parameter fr Maustasten festlegen
2              Parameter fr X-Achsen-Abgrenzung festlegen
3              Parameter fr Y-Achsen-Abgrenzung festlegen
4              Hherwertiges Byte fr die X-Achse
5              Niederwertiges Byte fr die X-Achse
6              Hherwertiges Byte fr die Y-Achse
7              Niederwertiges Byte fr die Y-Achse
8              Hherwertiges Byte fr die X-Koordinate der
               Anfangsposition
9              Niederwertiges Byte fr die X-Koordinate der
               Anfangsposition
A              Hherwertiges Byte fr die Y-Koordinate der
               Anfangsposition
B              Niederwertiges Byte fr die Y-Koordinate der
               Anfangsposition
               Unter addr erhlt man die Adresse des Interrupt-Vektors
               der Maus.
Ergebnis       Die Funktion liefert kein Ergebnis.
Querverweis    EMOUSEFName           input output record - Adresse des Ein-/Ausgabepuffers
               ermitteln.

Xbiosnummer    14

Definition     IOREC *Iorec( int dev );

Prototyp in    tos.h

Beschreibung   Die EXBIOSF-Routine Iorec liefert die Adresse des Ein-/
               Ausgabe-Puffers eines seriellen Gertes. Der Parameter
               dev kann folgende Werte annehmen:
0              RS-232
1              Tastatur
2              MIDI-Port
               Der resultierende Pointer zeigt auf folgende Struktur:
Ergebnis       Die Funktion liefert als Ergebnis einen Zeiger auf die
               Struktur EIORECF.
Querverweis    EIORECF   EBconmapFName           disable interrupt - Unterbrechungen des multi-
               funktionalen Peripheriebausteins sperren.

Xbiosnummer    26

Definition     void Jdisint (int number);

Prototyp in    tos.h

Beschreibung   Die EXBIOSF-Routine Jdisint sperrt eine bestimmte Art von
               Interrupt, die mit number angegeben wird, am Multi-
               funktionsperipheriebaustein. Der Parameter number
               bezieht sich auf folgende Interrupts:
number         Beschreibung
0              I/O-Port Bit 0 Busy par. Schnittstelle
1              RS-232 DCD
2              RS-232 CTS
3              Blitter
4              Timer D, RS232-232 Baud-Generator
5              Timer C, 200-Hz System-Uhr
6              Tastatur und MIDI
7              FDC und DMA
8              Timer B Zeilenrcklauf
9              RS-232 Sendefehler
10             RS-232 Sendepuffer leer
11             RS-232 Empfangspuffer voll
12             RS-232 Puffer voll
13             Timer A
14             RS-232 RI
15             Monochrom-Monitor Detect
Ergebnis       Die Funktion liefert kein Ergebnis.
Querverweis    EJenabintF   EMfpintFName           enable interrupt - Unterbrechungen des multi-
               funktionalen Peripheriebausteins freigeben.

Xbiosnummer    27

Definition     void Jenabint (int number);

Prototyp in    tos.h

Beschreibung   Die EXBIOSF-Routine Jenabint gibt eine bestimmte Art von
               Interrupt, die mit number angegeben wird, am Multi-
               funktionsperipheriebaustein wieder frei. Der Parameter
               number bezieht sich auf folgende Interrupts:
number         Beschreibung
0              I/O-Port Bit 0 Busy par. Schnittstelle
1              RS-232 DCD
2              RS-232 CTS
3              Blitter
4              Timer D, RS232-232 Baud-Generator
5              Timer C, 200-Hz System-Uhr
6              Tastatur und MIDI
7              FDC und DMA
8              Timer B Zeilenrcklauf
9              RS-232 Sendefehler
10             RS-232 Sendepuffer leer
11             RS-232 Empfangspuffer voll
12             RS-232 Puffer voll
13             Timer A
14             RS-232 RI
15             Monochrom-Monitor Detect
Ergebnis       Die Funktion liefert kein Ergebnis.
Querverweis    EJdisintF   EMfpintFName           keyboard vectors - liefert einen Zeiger auf die
               Tastatur-Interruptvektoren.

Xbiosnummer    34

Definition     EKBDVBASEF *Kbdvbase(void);

Prototyp in    tos.h

Beschreibung   Die EXBIOSF-Routine Kbdvbase liefert einen Zeiger auf
               eine EKBDVBASEF Struktur.
Querverweis    EKBDVBASEFName           Select serial port - whlt eine Default-Schnittstelle 
               aus.

Xbiosnummer    44

Definition     long  Bconmap( int devno );

Prototyp in    tos.h

Beschreibung   Die EXBIOSF-Routine Bconmap whlt eine der seriellen 
               Schnittstellen fr die Biosausgabe aus. devno kann dabei 
               folgende Werte annehmen:
               -1        keine nderung,
                6        ST-kompatibler RS232-Port,
                7        SCC Kanal B,
                8        TTMFP RS232-Port,
                9        SCC Kanal A,
               >10       eigene Treiber.
Hinweis        Diese Funktion ist nur im TOS030 des TT vefgbar.
Ergebnis       Bconmap liefert die alte Einstellung. Falls devno gleich
               -2 ist liefert die Funktion einen Zeiger auf EBCONMAPF
               zurck. Wird die Funktion auf einem ST verwendet, liefert 
               sie die Konstante 44 zurck.
Querverweis:   EBCONMAPF, EBconoutF, EBconinF, EBcostatF, EBconstatF, 
               EIorecF, ERsconfFName           keyboard rate - legt die Autorepeat-Rate der Tastatur
               fest.

Xbiosnummer    35

Definition     int Kbrate (int initial, int repeat);

Prototyp in    tos.h

Beschreibung   Die EXBIOSF-Routine Kbrate ermittelt oder ndert die
               aktuelle Auto-Repeat-Geschwindigkeit der Tastatur.
               Die Geschwindigkeit wird als Vielfaches der System-
               einheit von 20 Millisekunden festgelegt. initial legt
               die Zeitdauer fest, nach der Auto-Repeat-Modus
               einsetzen soll, repeat bestimmt die Pausen zwischen
               einer Wiederholung. Wenn beide Parameter mit -1 ber-
               geben wurden, dann wird die aktuelle Einstellung
               gelesen.
Ergebnis       Die Funktion liefert als Ergebnis die Einstellung des
               Auto-Repeat-Modus.Name           key table - definiert die Umsetzungstabelle der
               Tastatur von Scan-Codes in Tastatur-Codes.

Xbiosnummer    16

Definition     EKEYTABF *Keytbl( void *unshift, void *shift,
                               void *capslock );

Prototyp in    tos.h

Beschreibung   Keytbl ist eine EXBIOSF-Funktion mit deren Hilfe eine
               neue Tastatur-Tabelle fr die Umsetzung von Scan-Codes
               in Tastatur-Codes vorgenommen werden kann. Beim
               Atari ST erzeugt jeder Tastendruck einen Scan-Code.
               Dabei knnen bei jeder Taste drei verschiedene Scan-
               Codes herauskommen, je nachdem, ob die Shift-Taste ge-
               drckt ist oder ob die Capslock-Taste eingeschaltet
               ist. Dieser Scan-Code wird anschlieend mit Hilfe einer
               128 Byte langen Tabelle in einen ASCII-Code umgewandelt.
Ergebnis       Die Funktion liefert als Ergebnis einen Zeiger auf die
               Struktur EKEYTABF.
Querverweis    EBioskeysFName           logical screen RAM base - ermittelt die logische
               Anfangsadresse des Videospeichers.

Xbiosnummer    3

Definition     void *Logbase(void);

Prototyp in    tos.h

Beschreibung   Die EXBIOSF-Routine Logbase ermittelt die logische
               Anfangsadresse des momentan als Videospeicher
               verwendeten RAM-Bereichs.
Ergebnis       Die Funktion liefert als Ergebnis die Anfangsadresse
               des logischen Bildschirmspeichers.
Querverweis    EPhysbaseF   ESetscreenFName           init MFP interrupt - Interrupt initialisieren.

Xbiosnummer    13

Definition     void Mfpint( int number, void (*vector)() );

Prototyp in    tos.h

Beschreibung   Die EXBIOSF-Routine Mfpint initialisiert den Multi-
               funktions-Interrupt fr die angeschlossenen Peripherie-
               Gerte. Damit knnen Hardware-Interrupts abgefangen
               werden. Das Argument vektor gibt die Interrupt-Service-
               Routine an. Im Parameter interrupt wird die Nummer des
               Interrupt von 0 bis 15 angegeben:
number         Beschreibung
0              I/O-Port Bit 0 Busy par. Schnittstelle
1              RS-232 DCD
2              RS-232 CTS
3              Blitter
4              Timer D, RS232-232 Baud-Generator
5              Timer C, 200-Hz System-Uhr
6              Tastatur und MIDI
7              FDC und DMA
8              Timer B Zeilenrcklauf
9              RS-232 Sendefehler
10             RS-232 Sendepuffer leer
11             RS-232 Empfangspuffer voll
12             RS-232 Puffer voll
13             Timer A
14             RS-232 RI
15             Monochrom-Monitor Detect
Ergebnis       Die Funktion liefert kein Ergebnis.
Querverweis    EJdisintF   EJenabintFName           Midi write string - gibt eine Zeichenfolge ber die
               Midi-Schnittstelle aus.

Xbiosnummer    12

Definition     void Midiws (int cnt, void *ptr) ;

Prototyp in    tos.h

Beschreibung   Die EXBIOSF-Routine Midiws gibt einen String ber die
               Midi-Schnittstelle aus. Der Parameter cnt enthlt die
               Anzahl der Zeichen - 1 und ptr enthlt die Adresse des
               Strings.
Ergebnis       Die Funktion liefert kein Ergebnis.Name           GI bit off - lscht ein Bit im Register A des
               Soundchips.

Xbiosnummer    29

Definition     void           Offgibit (int bitno);

Prototyp in    tos.h

Beschreibung   Die EXBIOSF-Routine Offgibit lscht ein Bit im Register
               A des Soundchips GI. bitno gibt den Wert an, mit dem das
               Register verUNDet werden soll.
               
               Die Bits in diesem Register haben folgende Bedeutung:
               Bit            Beschreibung
               0              Floppy Sideselect
               1              Drive Select A
               2              Drive Select B
               3              RS-232 RTS
               4              RS-232 DTR
               5              Centronics Strobe
               6              PIN 3 Monitor Buchse
               7              unbenutzt 
                              ab TOS030 des TT jedoch 
                              Modem 4 (1) oder LAN (0).

Ergebnis       Die Funktion liefert kein Ergebnis.
Querverweis    EOngibitFName           GI bit on - setzt ein Bit im Register A des
               Soundchips.

Xbiosnummer    30

Definition     void Ongibit (int bitno);

Prototyp in    tos.h

Beschreibung   Die EXBIOSF-Routine Ongibit setzt ein Bit im Register A
               des Soundchips GI. bitno gibt den Wert an, mit dem das
               Register verODERt  werden soll.
Ergebnis       Die Funktion liefert kein Ergebnis.
Querverweis    EOffgibitFName           physical screen ram base - ermittelt die Anfangs-
               adresse des Video-Speichers.

Xbiosnummer    2

Definition     void *Physbase(void);

Prototyp in    tos.h

Beschreibung   Die EXBIOSF-Routine Physbase ermittelt die physikalische
               Anfangsadresse des momentan als Videospeicher ver-
               wendeten RAM-Bereichs.
Ergebnis       Die Funktion Physbase liefert als Ergebnis die Adresse
               des physikalischen Bildschirmspeichers.
Querverweis    ELogbaseF   ESetscreenFName           prototype boot sector - Standard-Boot-Sektor.

Xbiosnummer    18

Definition     void Protobt( void *buf, long serialno, int disktype,
                             int execflag );

Prototyp in    tos.h

Beschreibung   Die EXBIOSF-Routine Protobt legt einen Boot-Sektor auf
               einer Diskette an. Das Argument buf verweist auf einen
               512 Byte groen Puffer mit dem Inhalt des Boot-Sektors.
               Der Parameter serialno dient dazu, eine Seriennummer im
               Bootsektor abzuspeichern. Wenn die Variable serialno
               grer als 0x01000000 ist, dann wird eine Zufallszahl
               abgelegt. Mit disktype wird eine der folgenden
               Diskettenarten ausgewhlt:
0              40 Spuren, einseitig
1              40 Spuren, doppelseitig
2              80 Spuren, einseitig
3              80 Spuren, doppelseitig
               Der Parameter execflag legt schlielich fest, ob die
               Informationen im Boot-Sektor als Programm ausgefhrt
               werden knnen.
Ergebnis       Die Funktion liefert kein Ergebnis.Name           print screen dump - Hardcopy-Ausdruck.

Xbiosnummer    36

Definition     void Prtblk( EPBDEFF *par );

Prototyp in    tos.h

Beschreibung   Die EXBIOSF-Routine Prtblk druckt einen bestimmten
               Bereich im Speicher aus. Der Zeiger par wird die
               Struktur des Bildschirmaufbaus angegeben.
Ergebnis       Die Funktion liefert als Ergebnis eine 0, wenn der
               Ausdruck erfolgreich war, ansonsten einen von 0
               verschiedenen Wert.Name           punt AES - AES abschalten.

Xbiosnummer    39

Definition     void Puntaes(void);

Prototyp in    tos.h

Beschreibung   Die EXBIOSF-Routine Puntaes schaltet das AES-Betriebs-
               system ab. Diese Funktion darf nicht verwendet werden,
               wenn sich das AES im ROM befindet.
Ergebnis       Die Funktion liefert kein Ergebnis.Name           random generator - Zufallsgenerator.

Xbiosnummer    17

Definition     long Random ( void ) ;

Prototyp in    tos.h

Beschreibung   Die EXBIOSF-Routine Random liefert eine 24-Bit-Zufalls-
               zahl. Sie basiert auf einem Zeitgeber im Atari ST. Die
               Funktion liefert nach dem Einschalten immer ver-
               schiedene Werte.
Ergebnis       Die Funktion liefert als Ergebnis eine 24-Bit-Zufalls-
               zahl.Name           RS-232 configuration - konfiguriert die RS-232-
               Schnittstelle.

Xbiosnummer    15

Definition     long  Rsconf( int baud, int ctr, int ucr, int rsr,
                               int tsr, int scr );

Prototyp in    tos.h

Beschreibung   Die EXBIOSF-Routine konfiguriert die serielle Schnitt-
               stelle. Im Normal-Betrieb werden nur die Parameter baud
               und ctr verwendet, wobei die anderen Parameter alle mit
               -1 bergeben werden mssen. Der Parameter baud kann
               folgende Werte annehmen:
Wert           Baudrate
0              19200
1               9600
2               4800
3               3600
4               2400
5               2000
6               1800
7               1200
8                600
9                300
10               200
11               150
12               134
13               110
14                75
15                50
(ab TOS 1.4: wird fr baud -2 angegeben, wird der Rest ignoriert
 und als Ergebnis die letzte mir Rsconf eingestellte Baudrate
 zurckgegeben)
               Der Parameter ctr legt den Handshake fest:
Bit            Beschreibung
0              Kein Handshake
1              XON/XOFF
2              RTS/CTS
3              XON/XOFF und RTS/CTS
               Mit ucr wird das USART Steuer-Register belegt:
Bit            Beschreibung
0              unbenutzt
1              0 ungerade, 1 gerade Paritt
2              0 keine Paritt, 1 mit Paritt
3,4            Start-/Stop-Bits, sowie deren Format:
               00             synchron   Start=0, Stop =0
               10             asynchron  Start=1, Stop =1
               01             asynchron  Start=1, Stop =1,5
               11             asynchron  Start=1, Stop =2
5,6            Wortlnge:
               00             8 Bit
               10             7 Bit
               01             6 Bit
               11             5 Bit
7              Baudrate aus der bertragungssteuerung
               Im Parameter rsr sind die Status-Bits des Empfangs-
               status-Registers enthalten.:
Bit            Beschreibung
0              Empfang einschalten
1              Vergleich mit Synchron-Register einschalten
2              Im Synchron-Betrieb wird angezeigt, da das
               empfangene Zeichen identisch mit dem Zeichen
               im Synchron-Register ist. Im asynchronen Modus
               wird der Empfang eines Start-Bits signalisiert.
3              Im Synchron-Betrieb wird angezeigt, da das
               empfangene Zeichen identisch mit dem Zeichen
               im Synchron-Register ist. Im asynchronen Modus
               wird der Empfang eines BREAK-Zeichens signalisiert.
4              bertragungsfehler, denn das Stop-Bit ist 0,
               whrend das Zeichen nicht NUL ist.
5              Parittsfehler
6              Puffer-berlauf
7              Puffer voll
               tsr steuert das Transmitter-Status-Registers. Die
               einzelnen Bits haben folgende Bedeutung:
Bit            Beschreibung
0              Senden einschalten
1,2            Ausgabe-Modus (high oder low)
               00             Hochohmig
               01             High-Pegel
               10             Low-Pegel
               11             Loop-back
3              Im synchronen Betriebsmodus wird das Bit nicht
               verwendet, im asynchronen Betrieb sendet es
               das Signal BREAK.
4              Ende der bertragung (end of transmission)
               anzeigen
5              Nach der nchsten bertragung sofort auf Empfang
               umschalten
6              Zeichen im bertragungspuffer versenden, bevor
               das neue Zeichen in den bertragungspuffer
               geschrieben wird.
7              Puffer leer
               scr initialisiert das synchrone Zeichen-Register.
               Dieser Parameter sollte auf 0 gesetzt werden.

Ergebnis       Es werden die altern Registerwerte von ucr, rsr,
               tsr und scr zurckgegeben.

Querverweis    EBconmapFName           screen dump - druckt den Bildschirminhalt aus.

Xbiosnummer    20

Definition     void  Scrdmp( void );

Prototyp in    tos.h

Beschreibung   Die EXBIOSF-Routine Scrdmp druckt den Inhalt des Bild-
               schirms als Hardcopy aus. Bei der Verwendung dieser
               Funktion mu ein Drucker angeschlossen sein.

Ergebnis       Die Funktion liefert kein Ergebnis.Name           Setcolor - legt eine von 16 Farben fest.

Xbiosnummer    7

Definition     int  Setcolor( int colornum, int color );

Prototyp in    tos.h

Beschreibung   Die EXBIOSF-Routine Setcolor legt die Farbe einer von 16
               Farbauswahlmglichkeiten fest.

Ergebnis       Die Funktion liefert den bisherigen Wert des Farb-
               registers.

Querverweis    ESetpaletteFName           set palette - whlt 16 Farben aus.

Xbiosnummer    6

Definition     void  Setpalette( void *pallptr );

Prototyp in    tos.h

Beschreibung   Die EXBIOSF-Routine Setpalette whlt 16 Farben mit Hilfe
               einer Bit-Ebenen-Definition aus. Der Parameter pallptr
               zeigt auf ein Feld mit 16 Integer-Werten, in denen die
               einzelnen Farben definiert werden.

Ergebnis       Die Funktion liefert keinen Wert.Name           Setprinter - initialisiert den Drucker.

Xbiosnummer    33

Definition     int  Setprt( int config );

Prototyp in    tos.h

Beschreibung   Die EXBIOSF-Routine Setprt initialisiert den Drucker.
               Folgende Bit-Parameter knnen in config angegeben
               werden:

                    0x01           Typenraddrucker
                    0x02           Monochrom-Drucker
                    0x04           1 Epson-Drucker, 0 Atari-Drucker
                    0x08           1 Schnschrift, 0 Konzept-Schrift
                    0x10           1 serielle Schnittstelle,
                                   0 parallele Schnittstelle
                    0x20           1 Einzelblatt, 0 Endlospapier

               Bei config = -1 wird die aktuelle Konfiguration
               zurckgegeben.

Ergebnis       Die Funktion liefert als Ergebnis die alte
               Konfiguration.Name           set screen - initialisiert den Bildschirm.

Xbiosnummer    5

Definition     void  Setscreen( void *laddr, void *paddr, int rez );

Prototyp in    tos.h

Beschreibung   Die EXBIOSF-Routine Setscreen initialisiert den Bild-
               schirm. Die Parameter laddr und paddr legen die
               Anfangsadresse des Bildschirmspeichers und rez die
               Auflsung des Bildschirms fest. rez kann folgende
               Werte erhalten:

                        0              niedrige Auflsung
                        1              mittlere Auflsung
                        2              hohe Auflsung

               Wird fr einen der Parameter der Wert -1 bergeben,
               so wird der entsprechende aktuelle Einstellung
               beibehalten.

Ergebnis       Die Funktion liefert kein Ergebnis.

Querverweis    EPhysbaseF   ELogbaseF   EGetrezFName           set time - Zeit einstellen.

Xbiosnummer    22

Definition     void  Settime( unsigned long time );

Prototyp in    tos.h

Beschreibung   Die EXBIOSF-Routine Settime stellt Datum und Uhrzeit neu
               ein. Der 32-Bit Parameter time wird wie folgt
               aufgesplittet:

                  0-4        Sekunden in Einheiten von 2 (0-29)
                  5-8        Minuten (0-59)
                  9-15       Stunden (0-23)
                  16-20      Tag im Monat (1-31)
                  21-26      Monat (1-12)
                  27-31      Jahr (0-119, 0 steht fr 1980)

Ergebnis       Die Funktion liefert kein Ergebnis.Name           set memory break point - Speicherplatz reservieren.

Xbiosnummer    1

Definition     void  *Ssbrk( int count );

Prototyp in    tos.h

Beschreibung   Die EXBIOSF-Routine Ssbrk reserviert Speicherplatz. Die
               Anzahl der Bytes mu dabei in count bergeben werden.
               Diese Funktion mu vor der Initialisierung des
               Betriebssystems aufgerufen werden, und sollte daher in
               Anwenderprogrammen nicht verwendet werden. In allen
               Atari-ROM-Versionen ist diese Funktion lediglich als
               Dummy-Routine implementiert.

Ergebnis       Die Funktion liefert kein Ergebnis.Name           supervisor execute - fhrt Routine im Supervisor-
               Modus aus.

Xbiosnummer    38

Definition     void  Supexec( long (*func)( ));

Prototyp in    tos.h

Beschreibung   Die EXBIOSF-Routine Supexec fhrt die Routine unter addr
               im Supervisor-Modus aus.

Ergebnis       Die Funktion liefert kein Ergebnis.Name           vertical sync - wartet auf das nchste vertikale
               Sync-Signal.

Xbiosnummer    37

Definition     void  Vsync( void );

Prototyp in    tos.h

Beschreibung   Die EXBIOSF-Routine Vsync wartet auf den nchsten
               Bildschirm-Refresh, damit lassen sich Bildschirm-
               operationen mit dem Betriebssystem synchronisieren.

Ergebnis       Die Funktion liefert kein Ergebnis.Name           Set shift mode register - Setzt das Shift Mode Register.

Xbiosnummer    80

Definition     int  Esetshift( int shftMode );

Prototyp in    tos.h

Beschreibung   Die EXBIOSF-Routine EsetShift schreibt in das Shift 
               Mode Register des TT den Wert shftMode. shftMode
               ist ein Bitfeld mit folgender Bedeutung:
               
               |S|00|H|0|MMM|0000|BBBB| 
                |    |    |         |
                |    |    |         +-- Bank                  EEsetBankF
                |    |    +------------ Auflsung             ESetscreenF
                |    |                    000  320 * 200 * 4
                |    |                    001  640 * 200 * 2
                |    |                    010  640 * 400 * 1
                |    |                    100  640 * 480 * 4
                |    |                    110 1280 * 960 * 1
                |    |                    111  320 * 480 * 8
                |    +----------------- Hyper Mode            EEsetGrayF
                +---------------------- Sample & Hold

Hinweis        Diese Funktion ist nur im TOS030 des TT verfgbar.

Ergebnis       Die Funktion liefert den vorherigen Wert des 
               Registers.

Querverweis    EEgetShiftFName           Get current shift mode value - Liest das Shift
               Mode Register.

Xbiosnummer    81

Definition     int  EgetShift( void );

Prototyp in    tos.h

Beschreibung   Die EXBIOSF-Routine  EgetShift liest das Shift
               Mode Register aus und liefert den Inhalt des Regis-
               ters als Ergebnis zurck.

Hinweis        Diese Funktion ist nur im TOS030 des TT verfgbar.

Ergebnis       Die Funktion liefert den Wert des Registers.

Querverweis    EEsetShiftFName           Set color look up bank - Setzt Bank fr Farbtabelle.

Xbiosnummer    82

Definition     int  EsetBank( int bankNum );

Prototyp in    tos.h

Beschreibung   Die EXBIOSF-Routine EsetBank setzt die Banknummer
               fr die Farbtabelle des TT auf den Wert bankNum.
               Der erlaubte Wert von bankNum liegt zwischen 0
               und 15. Ist bankNum negativ, wird die aktuelle 
               Einstellung nicht verndert.

Hinweis        Diese Funktion ist nur im TOS030 des TT verfgbar.

Ergebnis       Die Funktion liefert die vorherige Einstellung.Name           Set color entry - Schreibt einen Eintrag in die
               Farbtabelle.

Xbiosnummer    83

Definition     int  EsetColor( int colorNum, int color );

Prototyp in    tos.h

Beschreibung   Die EXBIOSF-Routine EsetColor setzt den Farbeintrag
               colorNum in der Farbtabelle auf den  Wert color.
               Ein negativer Wert verndert den Eintag nicht.

Hinweis        Diese Funktion ist nur im TOS030 des TT verfgbar.

Ergebnis       Die Funktion liefert die vorherige Einstellung.

Querverweis    ESetcolorFName           Set palette registers - Setzt mehrere Eintrge in
               der Farbtabelle.

Xbiosnummer    84

Definition     void  EsetPalette( int colorNum, int count,
                                   int *palettePtr );

Prototyp in    tos.h

Beschreibung   Die EXBIOSF-Routine EsetPalette setzt count Farbein-
               trge ab colorNum in der Farbtabelle auf die Werte
               im Array palettePtr.

Hinweis        Diese Funktion ist nur im TOS030 des TT verfgbar.

Ergebnis       Die Funktion hat kein Ergebnis.

Querverweis    EEgetPaletteFName           Get look up table registers - Liest mehrere Eintrge
               aus der Farbtabelle.

Xbiosnummer    85

Definition     void  EgetPalette( int colorNum, int count,
                                   int *palettePtr );

Prototyp in    tos.h

Beschreibung   Die EXBIOSF-Routine EgetPalette liest count Farbein-
               trge ab colorNum aus der Farbtabelle in das Array 
               palettePtr

Hinweis        Diese Funktion ist nur im TOS030 des TT verfgbar.

Ergebnis       Die Funktion hat kein Ergebnis.

Querverweis    EEsetPaletteFName           Set/clear gray mode - Schaltet die Farbinterpretation
               ein bzw. aus.

Xbiosnummer    86

Definition     int  EsetGray( int swtch );

Prototyp in    tos.h

Beschreibung   Die EXBIOSF-Routine EsetGray schaltet die Farbinter-
               pretation in der Farbtabelle als Graustufe ein (1)
               bzw. aus (0). Ein negativer Wert verndert die Ein-
               stellung nicht.

Hinweis        Diese Funktion ist nur im TOS030 des TT verfgbar.

Ergebnis       Die Funktion liefert die bisherige Einstellung.Name           Set/clear video smear mode - Schaltet die Farb-
               verwischung ein bzw. aus.

Xbiosnummer    87

Definition     int  EsetSmear( int swtch );

Prototyp in    tos.h

Beschreibung   Die EXBIOSF-Routine EsetSmear schaltet die Farbver-
               wischung ein (1) bzw. aus (0).  Ein negativer Wert
               verndert die Einstellung nicht.

Hinweis        Diese Funktion ist nur im TOS030 des TT verfgbar.

Ergebnis       Die Funktion liefert die bisherige Einstellung.Name           timer init - initialisiert die Zeitgeber im MFP-Chip.

Xbiosnummer    31

Definition     void  Xbtimer( int timer, int control, int data,
                                void (*vector)( ));

Prototyp in    tos.h

Beschreibung   Die EXBIOSF-Routine Xbtimer initialisiert einen von vier
               Zeitgebern (A-D) im Multifunktionsperipheriechip 68901.
               Die Zeitgeber, die mit Hilfe des Parameters timer
               ausgewhlt werden, haben folgende Aufgaben:

                         A              Applikationen
                         B              Grafik
                         C              Systemzeit
                         D              Baudrate

               Der Parameter data enthlt den Wert, der in das Timer-
               Register geladen werden soll. vektor verweist auf den
               neuen Interrupt-Handler. control ldt das Steuer-
               Register des Zeitgebers.

Ergebnis       Die Funktion liefert kein Ergebnis.GEMDOS
----------------------------------------------------------------------

Das GEMDOS ist, abgesehen von den hardware-abhngigen EBIOSF und EXBIOSF,
das eigentliche Betriebssystem des Atari. Seine Funktionen werden ber
den 680X0-Trap #1 aufgerufen.
Die EBetriebssystemFfunktionen lassen sich sehr leicht aufgrund des
ersten Buchstabens des Funktionsnamen in die Kategorien

            EZeichenweise Ein-/AusgabeF  (C...),
            EProgrammausfhrungF         (P...),
            EDateifunktionenF            (F...),
            EVerzeichnisfunktionenF      (D...),
            ESpeicherbereichsverwaltungF (M...),
            EDatum und UhrzeitF          (T...),
und         ESystemfunktionenF           (S...)

einteilen.
In einem Netzwerk stehen noch zustzliche ENetzwerkfunktionenF
zur Verfgung.Zeichenweise Ein-/Ausgabe
----------------------------------------------------------------------

Zu allen Ein-/Ausgabe-Funktionen auf die Standardgerte CON: (Tastatur
und Bildschirm), PRN: (Drucker an der parallelen Schnittstelle)  und
AUX: (Gerte an der seriellen Schnittstelle) stehen auch die ent-
sprechenden Statusfunktionen zur Verfgung.

1  ECconinF  Zeichen von Standardeingabegert einlesen.
2  ECconoutF Zeichen auf Standardausgabegert schreiben.
3  ECauxinF  Zeichen von serieller Schnittstelle lesen.
4  ECauxoutF Zeichen auf serielle Schnittstelle schreiben.
5  ECprnoutF Zeichen auf Drucker ausgeben.
6  ECrawioF  Zeichen direkt von Tastatur lesen oder auf Bildschirm
           ausgeben.
7  ECrawcinF Zeichen ohne Darstellung am Bildschirm und ohne
           Interpretation von Steuerzeichen einlesen.
8  ECnecinF  Zeichen ohne Darstellung am Bildschirm einlesen.
9  ECconwsF  String auf Standardausgabegert ausgeben.
10 ECconrsF  String von Standardeingabegert einlesen.
11 ECconisF  Tastatur-Puffer nach anliegenden Zeichen abfragen.
16 ECconosF  Ausgabe-Status des Standardausgabegerts berprfen.
17 ECprnosF  Drucker-Status ermitteln.
18 ECauxisF  Eingabe-Status der seriellen Schnittstelle ermitteln.
19 ECauxosF  Ausgabe-Status der seriellen Schnittstelle ermitteln.

Die Ausgaberoutinen des Gemdos emulieren ein EVT-52-TerminalF.Programmausfhrung
----------------------------------------------------------------------

Programme laden und ausfhren oder beenden.

0  EPterm0F   Programm beenden und 0 an Aufrufer zurckgeben.
49 EPtermresF Programm beenden, aber im Speicher behalten.
75 EPexecF    Weiteres Programm laden und ausfhren.
76 EPtermF    Programm beenden und frei whlbaren Wert an Aufrufer
            zurckgeben.Ein-/Ausgabefunktionen fr Dateien, Zugriff auf Dateien
----------------------------------------------------------------------


26  EFsetdtaF   Diskettenbertragungsadresse ndern.
47  EFgetdtaF   Diskettenbertragungsadresse ermitteln.
60  EFcreateF   Datei anlegen.
61  EFopenF     Datei ffnen.
62  EFcloseF    Datei schlieen.
63  EFreadF     Aus Datei lesen.
64  EFwriteF    In Datei schreiben.
65  EFdeleteF   Datei lschen.
66  EFseekF     Zeiger auf bestimmte Position innerhalb einer Datei setzen.
67  EFattribF   Dateiattribute ndern oder ermitteln.
69  EFdupF      Dateihandle duplizieren.
70  EFforceF    Umlenken von Ein-/Ausgaben von Standardkanlen auf belie-
              bige andere.
78  EFsfirstF   Ersten Eintrag in Verzeichnis suchen.
79  EFsnextF    Nchsten Eintrag in Verzeichnis suchen.
86  EFrenameF   Datei umbenennen.
87  EFdatimeF   nderungsdatum einer Datei ermitteln oder ndern.Netzwerkfunktionen
----------------------------------------------------------------------

Zusatzfunktionen fr Netzwerkbetrieb.

92  EFlockF     File Record im Netzwerk sperren oder freigeben.Verzeichnisfunktionen
----------------------------------------------------------------------

Dateiverzeichnisse und Laufwerke verwalten.

14 EDsetdrvF  Aktuelles Laufwerk ndern.
25 EDgetdrvF  Aktuelles Laufwerk ermitteln.
54 EDfreeF    Freie und Gesamtkapazitt eines Laufwerks ermitteln.
57 EDcreateF  Verzeichnis anlegen.
58 EDdeleteF  Verzeichnis lschen.
59 EDsetpathF Aktuelles Verzeichnis ndern.
71 EDgetpathF Aktuelles Verzeichnis ermitteln.Speicherbereichsverwaltung
----------------------------------------------------------------------

Speicherbereiche reservieren, anpassen und freigeben.

72 EMallocF  Speicherbereich reservieren bzw. freien Speicherplatz
           erfragen.
73 EMfreeF   Speicherbereich freigeben.
74 EMshrinkF Reservierten Speicherbereich verkleinern.


Ab TOS030 (Atari TT) verfgbar:

20 EMaddaltF Alternativen Speicher anmelden.
68 EMxallocF Speicherbereich reservieren.Datum und Uhrzeit im GEMDOS
----------------------------------------------------------------------

Datum und Uhrzeit einstellen oder ermitteln.

42 ETgetdateF Datum ermitteln
43 ETsetdateF Datum einstellen.
44 ETgettimeF Uhrzeit ermitteln.
45 ETsettimeF Uhrzeit einstellen.Systemfunktionen
----------------------------------------------------------------------

Die Supervisor-Funktion ist eine der wichtigsten Funktionen fr die
direkte Programmierung der Hardware. Nur mit ihrer Hilfe ist es
mglich, auf die Systemvariablen zuzugreifen.

32 ESuperF    Supervisormodus ermitteln oder ndern.
48 ESversionF Versionsnummer von GEM ermitteln.Name           gemdos - GEMDOS-Trap ausfhren.

Definition     long  gemdos( void, ... );

Prototyp in    tos.h

Beschreibung   Die Routine gemdos fhrt einen TRAP 1 durch. Die
               bergebenen Parameter hngen von der jeweiligen GEMDOS-
               Funktion ab.

Ergebnis       Die Funktion liefert als Ergebnis einen Wert vom
               Datentyp long.

Querverweis    Bibliotheksfunktionen: EbiosF   ExbiosF
               Betriebssystem: EGemdosFName           character auxiliary input - Eingabe ber serielle
               Schnittstelle.

Gemdosnummer   3

Definition     int  Cauxin( void );

Prototyp in    tos.h

Beschreibung   Die GEMDOS-Routine Cauxin liest ein Zeichen von der
               seriellen Schnittstelle aux: ein. Die Funktion wartet
               solange, bis ein Zeichen eingegeben wurde.

Ergebnis       Die Funktion liefert als Ergebnis das eingelesene
               Zeichen.

Querverweis    ECauxoutFName           character auxiliary input status - berprft den Ein-
               gabestatus der seriellen Schnittstelle.

Gemdosnummer   18

Definition     int  Cauxis( void );

Prototyp in    tos.h

Beschreibung   Die GEMDOS-Routine Cauxis berprft den Status der
               seriellen Schnittstelle aux: dahingehend, ob Zeichen
               im Eingabepuffer vorliegen.

Ergebnis       Die Funktion liefert als Ergebnis -1, wenn Zeichen im
               Puffer stehen, ansonsten ein 0.

Querverweis    ECauxosFName           character auxiliary output status - berprft den
               Ausgabestatus der seriellen Schnittstelle.

Gemdosnummer   19

Definition     int  Cauxos( void );

Prototyp in    tos.h

Beschreibung   Die GEMDOS-Routine Cauxos berprft den Status der
               seriellen Schnittstelle aux: dahingehend, ob Zeichen
               ber die serielle Schnittstelle ausgegeben werden
               knnen.

Ergebnis       Die Funktion liefert als Ergebnis -1, wenn die serielle
               Schnittstelle zum Senden bereit ist, ansonsten ein 0.

Querverweis    ECauxisFName           character auxiliary output - schreibt ein Zeichen auf
               die serielle Schnittstelle.

Gemdosnummer   4

Definition     void  Cauxout( int c );

Prototyp in    tos.h

Beschreibung   Die GEMDOS-Routine Cauxout schreibt ein Zeichen auf die
               serielle Schnittstelle aux.

Ergebnis       Die Funktion liefert kein Ergebnis.

Querverweis    ECauxinFName           character console input - liest ein Zeichen vom
               Standardeingabegert.

Gemdosnummer   1

Definition     long  Cconin( void );

Prototyp in    tos.h

Beschreibung   Die GEMDOS-Routine Cconin liest ein Zeichen vom Stand-
               ardeingabegert. Als Standardeingabegert dient in der
               Regel die Tastatur.

Ergebnis       Die Funktion liefert als Ergebnis den ASCII-Code des
               Zeichens im niederwertigen Wort. Wenn das eingelesene
               Zeichen von der Tastatur kommt, beinhalten die unteren
               acht Bits des hherwertigen Worts den Scancode der
               Tastatur.

Querverweis    ECconoutF   ECconisFName           character console is waiting - prft nach, ob ein
               Zeichen im Standardeingabepuffer vorliegt.

Gemdosnummer   11

Definition     int  Cconis( void );

Prototyp in    tos.h

Beschreibung   Die GEMDOS-Routine Cconis berprft, ob Zeichen im
               Standardeingabe-Puffer vorliegen.

Ergebnis       Die Funktion liefert als Ergebnis -1, wenn Zeichen im
               Puffer vorliegen, ansonsten eine 0.

Querverweis    ECconinFName           character console output - schreibt ein Zeichen auf
               das Standardausgabegert.

Gemdosnummer   2

Definition     void  Cconout( int c );

Prototyp in    tos.h

Beschreibung   Die GEMDOS-Routine Cconout schreibt das Zeichen c auf
               das Standardausgabegert. Als Standardausgabegert
               dient in der Regel der Bildschirm.

Ergebnis       Die Funktion liefert kein Ergebnis.

Querverweis    ECconinF, ECconosF, EVT-52-TerminalFName           character console output status - prft den Status
               des Standardausgabegertes.

Gemdosnummer   16

Definition     int  Cconos( void );

Prototyp in    tos.h

Beschreibung   Die GEMDOS-Routine Cconos berprft, ob das Standard-

               ausgabegert bereit ist, Zeichen anzunehmen.
Ergebnis       Die Funktion liefert als Ergebnis den Status des
               Standardausgabegerts. Wenn das Standardausgabegert
               bereit ist Zeichen auszugeben, wird -1 zurckgegeben,
               ansonsten eine 0.

Querverweis    ECconoutFName           character console read string - liest einen String
               von der Standardeingabe.

Gemdosnummer   10

Definition     void  Cconrs( ELINEF *buf );

Prototyp in    tos.h

Beschreibung   Die GEMDOS-Routine Cconrs liest einen String von der
               Standardeingabe. Whrend der Eingabe kann der String
               editiert werden. Das erste Zeichen im Puffer buf
               enthlt die maximale Lnge des Strings, die im Puffer
               belegt werden kann, damit die Eingaben aufgenommen
               werden knnen. Das zweite Zeichen des Puffers enthlt
               nach Abschlu der Routine die tatschliche Lnge der
               Eingabe. Diese Struktur ist als Datentyp ELINEF in TOS.H
               deklariert.

Ergebnis       Die Funktion hat kein Ergebnis.

Querverweis    ECconwsF   ELINEFName           character console write string - schreibt einen
               String auf das Standardausgabegert.

Gemdosnummer   9

Definition     int  Cconws( const char *buf );

Prototyp in    tos.h

Beschreibung   Die GEMDOS-Routine Cconws schreibt einen String auf das
               Standardausgabegert. Der String in buf mu mit dem
               ASCII-Zeichen Null beendet werden.

Ergebnis       Die Funktion liefert als Ergebnis die Anzahl der
               tatschlich ausgegebenen Zeichen.

Querverweis    ECconrsF, EVT-52-TerminalFName           character no echo input - liest ein Zeichen vom
               Standardeingabegert.

Gemdosnummer   8

Definition     long  Cnecin( void );

Prototyp in    tos.h

Beschreibung   Die GEMDOS-Routine Cnecin liest ein Zeichen direkt von
               der Standardeingabe, ohne da das Zeichen auf dem
               Standardausgabegert ausgegeben wird.

Ergebnis       Die Funktion liefert als Ergebnis das eingelesene
               Zeichen.

Querverweis    ECconinF   ECrawcinF   ECrawioFName           character printer output status - prft den Status
               der Druckerschnittstelle.

Gemdosnummer   17

Definition     int  Cprnos( void );

Prototyp in    tos.h

Beschreibung   Die GEMDOS-Routine Cprnos berprft, ob die Drucker-
               schnittstelle bereit ist, Zeichen anzunehmen.

Ergebnis       Die Funktion liefert als Ergebnis den Drucker-Status.
               Wenn der Drucker bereit ist, wird ein Wert ungleich 0
               zurckgegeben, ansonsten eine 0.

Querverweis    ECconosFName           character printer output - schreibt ein Zeichen auf
               die Druckerschnittstelle.

Gemdosnummer   5

Definition     int  Cprnout( int c );

Prototyp in    tos.h

Beschreibung   Die GEMDOS-Routine Cprnout schreibt das Zeichen c auf
               die Druckerschnittstelle prn:.

Ergebnis       Die Funktion liefert als Ergebnis -1, wenn das Zeichen
               korrekt ausgedruckt werden konnte. Im Fehlerfall wird 0
               zurckgegeben.

Querverweis    ECprnosFName           character raw input - liest ein Zeichen ungepuffert
               vom Standardeingabegert.

Gemdosnummer   7

Definition     long  Crawcin( void );

Prototyp in    tos.h

Beschreibung   Die GEMDOS-Routine Crawcin liest ein Zeichen unge-
               puffert von der Standardeingabe. Die Zeichen werden
               nicht interpretiert. Das heit, da <Control-C>,
               <Control-S> und <Control-Q> ignoriert werden.
               Wie bei Cnecin wird das von der Tastatur gelesene
               Zeichen nicht auf dem Bildschirm dargestellt.

Ergebnis       Die Funktion liefert als Ergebnis das eingelesene
               Zeichen.

Querverweis    ECconinF   ECconoutF   ECrawioFName           character raw input output - ermglicht ungepufferte
               Ein-/Ausgaben.

Gemdosnummer   6

Definition     long  Crawio( int w );

Prototyp in    tos.h

Beschreibung   Die GEMDOS-Routine Crawio fhrt ungepufferte Ein-Ausga-
               ben durch. Wenn als Argument w die Zahl 0xFF bergeben
               wurde, dann wird ein Zeichen vom Standardeingabegert
               eingelesen. Wenn w einen anderen Wert hat, wird das
               Zeichen auf das Standardausgabegert geschrieben.

Ergebnis       Die Funktion liefert als Ergebnis das eingelesene
               Zeichen.

Querverweis    ECconinF   ECconoutF   EVT-52-TerminalFName           create directory - Verzeichnis anlegen.

Gemdosnummer   57

Definition     int  Dcreate( const char *path );

Prototyp in    tos.h

Beschreibung   Die GEMDOS-Routine Dcreate legt ein Verzeichnis mit dem
               Pfadnamen path an. Der String path mu mit dem ASCII-
               Zeichen NUL abgeschlossen sein.

Ergebnis       Die Funktion liefert als Ergebnis eine negative Zahl,
               wenn es zu einem Fehler kam.

Querverweis    EDdeleteFName           delete directory - Verzeichnis lschen.

Gemdosnummer   58

Definition     int  Ddelete( const char *path );

Prototyp in    tos.h

Beschreibung   Die GEMDOS-Routine Ddelete lscht ein Verzeichnis mit
               dem Pfadnamen path, das keine weiteren Dateien oder
               Unterverzeichnisse enthalten darf. Der String path mu
               mit dem ASCII-Zeichen NUL abgeschlossen sein.

Ergebnis       Die Funktion liefert als Ergebnis eine 0, wenn das Ver-
               zeichnis gelscht werden konnte, und eine negative
               Zahl, wenn es zu einem Fehler kam.

Querverweis    EDcreateFName           free disk space - ermittelt die Kapazittsauslastung
               eines Laufwerks.

Gemdosnummer   54

Definition     int  Dfree( EDISKINFOF *buf, int driveno );

Prototyp in    tos.h

Beschreibung   Die GEMDOS-Routine Dfree ermittelt Kapazitt und Bele-
               gung eines Laufwerks driveno. Um die Informationen
               weiterzureichen, bentigt man einen 16 Byte groen
               Puffer, der wie folgt strukturiert ist:
                   Byte           Beschreibung
                   0-3            Anzahl freier Cluster
                   4-7            Gesamtanzahl an Clustern
                   8-11           Gre eines Sektors in Bytes
                   12-15          Sektoren pro Cluster
               Diese Struktur ist als Datentyp EDISKINFOF in der Dekla-
               rationsdatei tos.h enthalten.

Ergebnis       Die Funktion liefert bei korrekter Ausfhrung eine 0,
               und eine negative Zahl, wenn es zu einem Fehler kam.Name           disk get drive - ermittelt das aktuelle Laufwerk.

Gemdosnummer   25

Definition     int  Dgetdrv( void );

Prototyp in    tos.h

Beschreibung   Die GEMDOS-Routine Dgetdrv ermittelt das aktuelle Lauf-
               werk.

Ergebnis       Die Funktion liefert als Ergebnis eine Zahl, die das
               aktuelle Laufwerk bezeichnet:

                                 0      A:
                                 1      B:
                                 2      C:
                                 usw.

Querverweis    EDsetdrvFName           get path - aktuelles Verzeichnis ermitteln.

Gemdosnummer   71

Definition     int  Dgetpath( char *path, int driveno );

Prototyp in    tos.h

Beschreibung   Die GEMDOS-Routine Dgetpath ermittelt das aktuelle Ver-
               zeichnis auf dem Laufwerk driveno. Die Bezeichnungen
               der Laufwerke werden im Parameter driveno wie folgt
               codiert:
                           0      aktuelles Laufwerk
                           1      A:
                           2      B:
                           3      C:
                           usw.

               Der Pfad wird im Puffer path als String abgelegt. Da
               ein Pfad in GEMDOS bis zu 128 Zeichen lang sein kann,
               sollte der Puffer entsprechend viel Platz bieten.

Ergebnis       Die Funktion liefert als Ergebnis 0, wenn kein Fehler
               auftrat ansonsten einen Fehlercode.

Querverweis    EDsetpathFName           disk set drive - legt das aktuelle Laufwerk fest.

Gemdosnummer   14

Definition     long  Dsetdrv( int drv );

Prototyp in    tos.h

Beschreibung   Die GEMDOS-Routine Dsetdrv macht das Laufwerk drv zum
               aktuellen Laufwerk. drv kann eine Integer-Zahl zwischen
               0 und 15 sein:
                                0      A:
                                1      B:
                                2      C:
                                usw.

Ergebnis       Die Funktion liefert als Ergebnis eine Bit-Tabelle mit
               allen angeschlossenen Laufwerken. Jedes angeschlossene
               Laufwerk wird mit einem gesetzten Bit angezeigt.

Querverweis    EDgetdrvFName           set path - legt das aktuelle Verzeichnis fest.

Gemdosnummer   59

Definition     int  Dsetpath( const char *path );

Prototyp in    tos.h

Beschreibung   Die GEMDOS-Routine Dsetpath setzt das aktuelle Ver-
               zeichnis. Der Pfad path mu ein String sein, der mit
               dem ASCII-Zeichen Null abgeschlossen sein mu.

Ergebnis       Die Funktion liefert als Ergebnis eine 0, wenn das Ver-
               zeichnis existiert, ansonsten eine negative Zahl.

Querverweis    EDgetpathFName           file attribute - Dateiattribut ermitteln oder setzen.

Gemdosnummer   67

Definition     int  Fattrib( const char *filename,
                                 int wflag, int attrib );

Prototyp in    tos.h

Beschreibung   Die GEMDOS-Routine Fattrib ermittelt oder setzt die
               Attribute der mit filename bezeichneten Datei. Je nach
               dem, ob der Parameter wflag eine 0 oder 1 enthlt, wird
               das Attribut gelesen bzw. neu festgelegt. Das Attribut
               setzt sich aus folgenden Flags zusammen:

                 FA_READONLY     Datei darf nur gelesen werden.
                 FA_HIDDEN       Datei wird beim Auflisten des
                                 Dateiverzeichnisses nicht angezeigt.
                 FA_SYSTEM       Systemdatei.
                 FA_VOLUME       Diskettenname (11 Bytes).
                 FA_SUBDIR       Unterverzeichnis.
                 FA_ARCHIVE      Datei wurde verndert.

Ergebnis       Die Funktion liefert als Ergebnis das Attribut, wenn
               das Attribut gelesen werden sollte, ansonsten ist die
               Bedeutung nicht festgelegt.Name           file close - Datei schlieen.

Gemdosnummer   62

Definition     int  Fclose( int handle );

Prototyp in    tos.h

Beschreibung   Die GEMDOS-Routine Fclose schliet eine Datei mit dem
               Dateibezeichner handle. Im Netzwerk wird das aktive
               Locking aufgehoben.

Ergebnis       Die Funktion liefert als Ergebnis eine 0, wenn die
               Datei geschlossen werden konnte, ansonsten eine
               negative Zahl.

Querverweis    EFopenFName           file create - Datei anlegen.

Gemdosnummer   60

Definition     int  Fcreate( const char *fname, int attr );

Prototyp in    tos.h

Beschreibung   Die GEMDOS-Routine Fcreate legt eine Datei an. Der
               Pfadname der Datei, fname, mu ein mit dem ASCII-
               Zeichen NUL abgeschlossener String sein. Der Parameter
               attr legt das Attribut der Datei fest. attr kann mit
               folgenden Flags ge-odert werden.

                 FA_READONLY     Datei darf nur gelesen werden.
                 FA_HIDDEN       Datei wird beim Auflisten des
                                 Dateiverzeichnisses nicht angezeigt.
                 FA_SYSTEM       Systemdatei.
                 FA_VOLUME       Diskettenname (11 Bytes).

               Im Netzwerk setzt das erzeugen einer Datei die
               Exclusivitt.

Ergebnis       Die Funktion liefert als Ergebnis einen long-Wert.
               Ist dieser negativ, so ist ein Fehler aufgetreten.
               Andernfalls enthlt das niederwertige Wort, das
               man durch Casten des Funktionsresultats erhlt,
               einen Handle, der in den nachfolgenden Schreib-/
               Lese-Operationen verwendet werden kann.

Querverweis    EFopenFName           file date and time - Uhrzeit und Datum einer Datei
               ermitteln oder setzen.

Gemdosnummer   87

Definition     int  Fdatime( EDOSTIMEF *timeptr, int handle, int wflag );

Prototyp in    tos.h

Beschreibung   Die GEMDOS-Routine Fdatime liest oder setzt Datum und
               Uhrzeit der mit handle bezeichneten Datei. Der
               Parameter wflag bestimmt, ob Datum und Uhrzeit der
               Datei gelesen (0) oder geschrieben (1) werden sollen.
               Der Parameter timeptr zeigt auf die Struktur DOSTIME.

Ergebnis       Die Funktion liefert als Ergebnis Datum und Uhrzeit.
               Wenn Datum und Uhrzeit nicht modifiziert oder ermittelt
               werden konnten, den Wert 0 in time und date.Name           file delete - Datei lschen.

Gemdosnummer   65

Definition     int  Fdelete( const char *fname );

Prototyp in    tos.h

Beschreibung   Die GEMDOS-Routine Fdelete lscht die mit fname be-
               zeichnete Datei.

Ergebnis       Die Funktion liefert als Ergebnis eine 0, wenn die
               Datei gelscht werden konnte, und ein von 0 ver-
               schiedenes Ergebnis, wenn die Datei nicht gelscht
               werden konnte.

Querverweis    EFcreateFName           file duplicate - Datei-Handle duplizieren.

Gemdosnummer   69

Definition     long  Fdup( int handle );

Prototyp in    tos.h

Beschreibung   Die GEMDOS-Routine Fdup erzeugt ein neues Datei-Handle
               fr die mit handle bezeichnete Datei.

Ergebnis       Die Funktion liefert als Ergebnis einen long-Wert.
               Ist dieser negativ, so ist ein Fehler aufgetreten.
               Andernfalls enthlt das niederwertige Wort, das
               man durch Casten des Funktionsresultats erhlt,
               einen Handle, der in den nachfolgenden Schreib-/
               Lese-Operationen verwendet werden kann.

Querverweis    EFforceFName           file force - Standard-Datei umleiten.

Gemdosnummer   70

Definition     int  Fforce( int stch, int nonstdh );

Prototyp in    tos.h

Beschreibung   Die GEMDOS-Routine Fforce leitet die Ein- und Ausgaben
               einer Standarddatei stch in die mit nonstdh bezeich-
               nete Datei um.

Ergebnis       Die Funktion liefert als Ergebnis eine 0, wenn die Um-
               leitung vorgenommen werden konnte, ansonsten einen
               Fehlercode.

Querverweis    EFdupFName           get disk transfer address - ermittelt den bertra-
               gungsbereich fr Diskettenoperationen.

Gemdosnummer   47

Definition     EDTAF  *Fgetdta( void );

Prototyp in    tos.h

Beschreibung   Die GEMDOS-Routine Fgetdta ermittelt die Adresse eines
               Buffers fr EFsfirstF und EFsnextF. Auf die ermittelte
               Struktur kann man mit dem in tos.h deklarierten Daten-
               typ EDTAF zugreifen.

Ergebnis       Die Funktion liefert als Ergebnis die Adresse des Dis-
               kettenbertragungsbereichs.

Querverweis    EFsetdtaF   EDTAF   EFsfirstF   EFsnextFName           file open - ffnet eine Datei.

Gemdosnummer   61

Definition     long  Fopen( const char *fname, int mode );

Prototyp in    tos.h

Beschreibung   Die GEMDOS-Routine Fopen ffnet die im String fname an-
               gegebene Datei. Der Parameter mode bestimmt den Zu-
               griffsmodus auf die Datei:
                                FO_READ     Lesen
                                FO_WRITE    Schreiben
                                FO_RW       Lesen und Schreiben
               Im Netzwerk:
                               -1           shared write
                               -2           shared read/write
               sowie MS-DOS Open-Calls.

Ergebnis       Die Funktion liefert als Ergebnis einen long-Wert.
               Ist dieser negativ, so ist ein Fehler aufgetreten.
               Andernfalls enthlt das niederwertige Wort, das
               man durch Casten des Funktionsresultats erhlt,
               einen Handle, der in den nachfolgenden Schreib-/
               Lese-Operationen verwendet werden kann.

Querverweis    EFcreateFName           file read - Datei lesen.

Gemdosnummer   63

Definition     long  Fread( int handle, long count, void *buf );

Prototyp in    tos.h

Beschreibung   Die GEMDOS-Routine Fread liest count Zeichen von der
               mit handle bezeichneten Datei in den Puffer buf.

Ergebnis       Die Funktion liefert als Ergebnis die Anzahl der
               gelesenen Zeichen, wenn der Leseproze erfolgreich
               durchgefhrt werden konnte, ansonsten einen Fehlercode
               mit einer negativen Zahl.

Querverweis    EFwriteFName           file rename - Datei umbenennen.

Gemdosnummer   86

Definition     int  Frename( int zero, const char *oldname,
                              const char *newname );

Prototyp in    tos.h

Beschreibung   Die GEMDOS-Routine Frename dient zum Umbenennen von
               Dateien. Die Datei mit dem Namen oldname wird in den
               neuen Dateinamen newname umbenannt. Es knnen komplette
               Pfade mit Dateinamen bergeben werden.
               So kann man mit Frename ganz einfach eine Datei von
               einem Ordner in einen anderen schieben. Der Parameter
               zero ist fr TOS reserviert und mu den Wert 0
               enthalten. Ab TOS 1.4 knnen auch Ordner umbenannt
               werden.

Ergebnis       Die Funktion liefert als Ergebnis eine 0, wenn die
               Datei umbenannt werden konnte, ansonsten einen von 0
               verschiedenen Wert.Name           file seek - Dateiposition verschieben.

Gemdosnummer   66

Definition     long  Fseek( long offset, int handle, int seekmode );

Prototyp in    tos.h

Beschreibung   Die GEMDOS-Routine Fseek verschiebt die aktuelle Datei-
               position der Datei handle um offset Bytes. Mit dem
               Parameter seekmode whlt man den Ausgangspunkt:

                            seekmode       Bedeutung
                            0              Dateianfang
                            1              aktuelle Position
                            2              Dateiende

               Von diesem Ausgangspunkt aus verschiebt man den Datei-
               zeiger um den angegebenen offset.

Ergebnis       Die Funktion liefert als Ergebnis die neue Dateiposi-
               tion mit dem Datentyp long.Name           set disk transfer address - Setzen der Adresse fr
               den bertragungsbereich fr Diskettenoperationen.

Gemdosnummer   26

Definition     void  Fsetdta( EDTAF *buf );

Prototyp in    tos.h

Beschreibung   Die GEMDOS-Routine Fsetdta legt die Diskettenbertra-
               gungs-Adresse fest. Der Puffer buf mu mindestens 44
               Bytes gro sein, um die Informationen aufnehmen zu
               knnen, die als Struktur EDTAF abgelegt werden.
               Diese Struktur ist in tos.h deklariert.
               Beim Programmstart liegt die DTA in der Kommandozeile
               und sollte vor dem ersten Diskettenzugriff mit Fsetdta
               an eine andere Stelle gelegt werden.

Ergebnis       Die Funktion liefert kein Ergebnis.

Querverweis    EFgetdtaF   EFsfirstFName           search first file - ersten Dateieintrag suchen.

Gemdosnummer   78

Definition     int  Fsfirst( const char *filename, int attr );

Prototyp in    tos.h

Beschreibung   Die GEMDOS-Routine Fsfirst sucht den ersten Dateiein-
               trag mit dem Attribut attr unter dem Pfadnamen file-
               name. Der Pfadname kann auch die Joker '*' und '?'
               enthalten.
               Nach Abschlu der Funktion steht der Verzeichniseintrag
               unter der Diskettenbertragungsadresse DTA, die mit
               Fgetdta und Fsetdta ermittelt bzw. festgelegt werden
               kann. Die Informationen knnen dann der Struktur EDTAF
               entnommen werden.
               Der Parameter attr enthlt eine Kombination der
               folgenden Attribute.

                 FA_READONLY     Datei darf nur gelesen werden.
                 FA_HIDDEN       Datei wird beim Auflisten des
                                 Dateiverzeichnisses nicht angezeigt.
                 FA_SYSTEM       Systemdatei.
                 FA_VOLUME       Diskettenname (11 Bytes).
                 FA_SUBDIR       Unterverzeichnis.
                 FA_ARCHIVE      Datei wurde verndert.

Ergebnis       Die Funktion liefert als Ergebnis 0, wenn eine Datei
               gefunden werden konnte, ansonsten einen Fehlercode.

Querverweis    EFgetdtaF   EFsetdtaF   EFsnextFName           search next file - nchsten Dateieintrag suchen.

Gemdosnummer   79

Definition     int  Fsnext( void );

Prototyp in    tos.h

Beschreibung   Die GEMDOS-Routine Fsnext sucht den nchsten Dateiein-
               trag der mit Fsfirst mit dem Attribut attr unter dem
               Pfadnamen fspec gesucht wurde.
               Nach Abschlu der Funktion steht der Verzeichniseintrag
               unter der Diskettenbertragungsadresse DTA, die mit
               Fgetdta und Fsetdta ermittelt bzw. festgelegt werden
               kann. Die Informationen knnen dann der Struktur EDTAF
               entnommen werden.

Ergebnis       Die Funktion liefert als Ergebnis 0, wenn eine Datei
               gefunden werden konnte, ansonsten einen Fehlercode.

Querverweis    EFgetdtaF   EFsetdtaF   EFsfirstFName           file write - auf Datei schreiben.

Gemdosnummer   64

Definition     long  Fwrite( int handle, long count, void *buf );

Prototyp in    tos.h

Beschreibung   Die GEMDOS-Routine Fwrite schreibt count Zeichen vom
               Puffer buf in die mit handle bezeichnete Datei.

Ergebnis       Die Funktion liefert als Ergebnis die Anzahl der
               geschriebenen Zeichen, falls der Schreibvorgang
               erfolgreich war, ansonsten ist count vom Ergebnis
               verschieden, bei einer negativen Zahl ist es zu einem
               schweren Fehler gekommen. In der Regel ist die Diskette
               voll oder nicht mehr eingelegt.

Querverweis    EFreadFName           memory allocation - Speicherplatz reservieren.

Gemdosnummer   72

Definition     void  *Malloc( long number );

Prototyp in    tos.h

Beschreibung   Die GEMDOS-Routine Malloc reserviert einen Speicherbe-
               reich der Gre number. Mit dem Wert -1 kann man den
               maximal verfgbaren Speicherbereich berechnen.

Ergebnis       Die Funktion liefert als Ergebnis die Anfangsadresse
               des reservierten Bereichs als typenlosen Zeiger.
               Malloc liefert als Ergebnis eine 0, wenn nicht mehr
               gengend Speicher vorhanden ist.

Querverweis    EMfreeF    EMxallocF    EMaddaltFName           Allocate memory (with preference) - Speicherplatz
               reservieren.

Gemdosnummer   68

Definition     void  *Mxalloc( long amount, int mode );

Prototyp in    tos.h

Beschreibung   Die GEMDOS-Routine Mxalloc reserviert einen
               Speicherbereich der Gre amount. Der Parameter
               mode gibt an welche Speicherart angefordert
               werden soll:

                        0       ST-RAM
                        1       Alternatives RAM
                        2       egal, ST RAM bevorzugt
                        3       egal, alternatives RAM bevorzugt

               Mit dem Wert -1 fr amount kann man die Lnge des
               grten zusammenhngend verfgbaren Speicherblocks
               erfragen.

Hinweis        Diese Funktion ist nur im TOS030 des TT verfgbar.

Ergebnis       Die Funktion liefert als Ergebnis die Anfangsadresse
               des reservierten Bereichs als typenlosen Zeiger.
               Mxalloc liefert als Ergebnis eine 0, wenn nicht mehr
               gengend Speicher vorhanden ist.

Querverweis    EMfreeF    EMallocF    EMaddaltFName           Inform GEMDOS of alternative memory - Alternativen
               Speicher anmelden.

Gemdosnummer   20

Definition     long  Maddalt( void *start, long size );

Prototyp in    tos.h

Beschreibung   Mit Maddalt kann man Speicher beim GEMDOS anmelden,
               der durch das BIOS nicht erkannt wird.
               start beschreibt die Startadresse des Speichers und
               size seine Lnge. Der Speicher mu aus einem zusammen-
               hngenden Block bestehen.
               Wurde Speicher einmal mit Maddalt angemeldet, so
               gehrt er dem GEMDOS und kann diesem nicht mehr
               weggenommen werden. Reservierungen des Speichers
               sollten ausschlielich ber Malloc bzw. Mxalloc
               oder Pexec geschehen.

Hinweis        Diese Funktion ist nur im TOS030 des TT verfgbar.

Ergebnis       Im Erfolgsfall wird Null zurckgegeben, ansonsten
               ein Fehlercode.

Querverweis    EMfreeF   EMallocF   EMxallocFName           memory free - Speicherplatz freigeben.

Gemdosnummer   73

Definition     int  Mfree( void *block );

Prototyp in    tos.h

Beschreibung   Die GEMDOS-Routine Mfree gibt einen mit Malloc reser-
               vierten Speicherbereich wieder frei.

Ergebnis       Die Funktion liefert als Ergebnis eine 0, wenn der
               Speicherplatz wieder frei gegeben wurde, ansonsten
               einen von 0 verschiedenen Wert.

Querverweis    EMallocF   EMxallocF    EMaddaltFName           memory shrink - Speicherbereich verkrzen.

Gemdosnummer   74

Definition     int  Mshrink( int zero, void *block, long newsiz );

Prototyp in    tos.h

Beschreibung   Die GEMDOS-Routine Mshrink verkrzt einen bereits
               reservierten Speicherbereich block auf die neue Gre
               newsiz. Der Parameter zero mu immer mit 0 bergeben
               werden.

Ergebnis       Die Funktion liefert als Ergebnis eine 0, wenn der
               Speicher angepat werden konnte, ansonsten einen von 0
               verschiedenen Wert.

Querverweis    EMallocF   EMfreeFName           file record locking - Record-Locking im Netzwerken.

Gemdosnummer   92

Definition     long Flock( int handle, int mode, long start, long length );

Prototyp in    tos.h

Beschreibung   Die GEMDOS-Routine Flock sperrt length Bytes ab
               der Position start in der durch handle angegebenen
               Datei (falls mode == 0), bzw. hebt eine bestehende
               Blockierung auf (mode == 1).

Ergebnis       Die Funktion liefert bei fehlerfreier Ausfhrung
               den Wert 0.

Querverweis    EFcreateF, EFopenF, EFcloseF, EFdeleteF, EPtermresFName           program execution - Programm laden und ausfhren.

Gemdosnummer   75

Definition     long  Pexec( int mode, char *ptr1,
                               void *ptr2, void *ptr3 );

Prototyp in    tos.h

Beschreibung   Die GEMDOS-Routine Pexec ldt und startet das im Pfad
               ptr1 angegebene Programm mit der Kommandozeile ptr2 und
               dem Environment ptr3, wenn der Parameter mode den Wert
               0 enthlt. Wenn in mode der Wert 3 steht, wird das
               Programm nur als Overlay geladen. Wenn mode den Wert 4
               enthlt, soll ein geladenes Programm gestartet werden;
               Parameter 2 und 4 men 0 sein . Wenn mode 5 ist, soll
               eine neue Basepage angelegt werden. Ab TOS 1.4 gibt es
               noch mode 6, der mode 4 entspricht, mit der Ausnahme,
               da die Speicherzuordnung an den Tochterprozess ver-
               erbt wird.

Ergebnis       Die Funktion liefert als Ergebnis den Abschlucode des
               Child-Prozesses. Wenn ein Overlay geladen wurde,
               enthlt das Ergebnis die Basepage des Overlays. Die
               Basepage hat die Struktur EBASPAGF.
               Bei einem negativen Resultat ist ein Fehler aufgetreten.Name           process termination - beendet ein TOS-Programm.

Gemdosnummer   76

Definition     void  Pterm( int retcode );

Prototyp in    tos.h

Beschreibung   Die GEMDOS-Routine Pterm beendet ein TOS-Programm und
               kehrt nicht wieder zurck. Der Abschlucode retcode
               kann von anderen Programmen weiterverwendet werden.

Ergebnis       Die Funktion liefert kein Ergebnis.Name           process termination - beendet ein TOS-Programm.

Gemdosnummer   0

Definition     void  Pterm0( void );

Prototyp in    tos.h

Beschreibung   Die GEMDOS-Routine Pterm0 beendet ein TOS-Programm und
               kehrt nicht wieder zurck. Die Routine liefert den
               Return-Code 0 zurck.

Ergebnis       Die Funktion liefert kein Ergebnis.Name           terminate and stay resident - Programm beenden, aber
               im Speicher behalten.

Gemdosnummer   49

Definition     void  Ptermres( long keepcnt, int retcode );

Prototyp in    tos.h

Beschreibung   Die GEMDOS-Routine Ptermres beendet ein Programm, das
               Programm wird jedoch im Speicher gehalten. Dazu mu man
               unter keepcnt angeben, wieviele Bytes des Programms im
               Speicher gehalten werden sollen.
               Der Abschlucode retcode kann von nachfolgenden
               Programmen ausgewertet werden. Im Netzwerk werden
               alle Lockings des Prozesses aufgehoben.

Ergebnis       Die Funktion liefert kein Ergebnis.

Querverweis    EPexecF   EPtermF   EPterm0F  E_PgmSizeFName           supervisor  - Supervisor-Modus umschalten.

Gemdosnummer   32

Definition     long  Super( void *stack );

Prototyp in    tos.h

Beschreibung   Die GEMDOS-Routine Super schaltet zwischen User-
               und Supervisior-Modus um bzw. fragt den aktuellen
               Betriebsmodus ab. Die Adresse des Supervisor-Stacks
               kann beim Umschalten verndert werden.
               bergibt man fr den Parameter stack den Wert 1, so
               wird der aktuelle Betriebsmodus erfragt. Der Wert 0
               schaltet zwischen User und Supervisor-Modus um. Alle
               anderen Werten werden als neue Adresse fr den
               Supervisor-Stack betrachtet.
               Im Supervisor-Modus kann auf alle geschtzten
               Speicherstellen zugegriffen werden.

Ergebnis       Sollte der Zustand ermittelt werden, erhlt man
               als Resultat 0 fr den User- und -1 fr den Super-
               visor-Modus.
               Ansonsten liefert die Funktion als Ergebnis die
               Adresse des alten Supervisor-Stacks, sofern in den
               Supervisor-Modus umgeschaltet wurde.

Beispiel       #include <tos.h>

               int  main( void )
               {
               long   old_super_stack;

                   old_super_stack = Super( 0L );

                   /* Supervisor-Aktionen ... */

                   Super((void *) old_super_stack );

                   return( 0 );
               }Name           operating system version - ermittelt die Versions-
               nummer des Betriebssystems.

Gemdosnummer   48

Definition     int  Sversion( void );

Prototyp in    tos.h

Beschreibung   Die GEMDOS-Routine Sversion ermittelt die Versionsnum-
               mer des Betriebssystems.

Ergebnis       Die Funktion liefert als Ergebnis die Version des
               Betriebssystems. Die Versionsnummer besteht aus zwei
               Zahlen: Das hherwertige enthlt die Hauptversions-
               nummer, whrend das niederwertige Byte kleinere
               berarbeitungen kennzeichnet.Name           get date - Tagesdatum ermitteln.

Gemdosnummer   42

Definition     unsigned int  Tgetdate( void );

Prototyp in    tos.h

Beschreibung   Die GEMDOS-Routine Tgetdate ermittelt das aktuelle
               Tagesdatum.

Ergebnis       Die Funktion liefert als Ergebnis eine Integer-Zahl mit
               dem Tagesdatum. Das Datum ist wie folgt codiert:

                         Bits           Bedeutung
                         0-4            Tag (1-31)
                         5-8            Monat (1-12)
                         9-15           Jahr (0-119, 0= 1980)

Querverweis    ETsetdateFName           set date - Tagesdatum setzen.

Gemdosnummer   43

Definition     unsiged int  Tsetdate( unsigned int date );

Prototyp in    tos.h

Beschreibung   Die GEMDOS-Routine Tsetdate setzt das aktuelle Tagesda-
               tum. Der Parameter date ist wie folgt codiert:

                         Bits           Bedeutung
                         0-4            Tag (1-31)
                         5-8            Monat (1-12)
                         9-15           Jahr (0-119, 0= 1980)

Ergebnis       Die Funktion liefert als Ergebnis das tatschlich
               gesetzte Datum.

Querverweis    ETgetdateFName           get time - ermittelt die Uhrzeit.

Gemdosnummer   44

Definition     unsigned int  Tgettime( void );

Prototyp in    tos.h

Beschreibung   Die GEMDOS-Routine Tgettime ermittelt die Uhrzeit.

Ergebnis       Die Funktion liefert als Ergebnis die Uhrzeit. Sie ist
               wie folgt codiert:

                         Bits      Bedeutung
                         0-4       Sekunden im Zweierschritt (0-29)
                         5-10      Minuten (0-59)
                         11-15     Stunden (0-23)

Querverweis    ETsettimeFName           set time - setzt die Uhrzeit.

Gemdosnummer   45

Definition     unsiged int  Tsettime( unsigned int time );

Prototyp in    tos.h

Beschreibung   Die GEMDOS-Routine Tsettime setzt die Uhrzeit. Der
               Parameter time mu wie folgt codiert werden:

                         Bits      Bedeutung
                         0-4       Sekunden im Zweierschritt (0-29)
                         5-10      Minuten (0-59)
                         11-15     Stunden (0-23)

Ergebnis       Die Funktion liefert als Ergebnis die tatschlich
               gesetzte Uhrzeit.

Querverweis    ETgettimeF