home *** CD-ROM | disk | FTP | other *** search
/ No Fragments Archive 12: Textmags & Docs / nf_archive_12.iso / MAGS / SOURCES / ATARI_SRC.ZIP / atari source / FALCON / ACC / DRIVERS.ACC / DRVHEAD.H < prev    next >
Encoding:
C/C++ Source or Header  |  2001-02-10  |  4.2 KB  |  157 lines

  1. /* FONTHEAD.H
  2.  * ======================================================================
  3.  *  Contains structures, and misc #defines for FONTACC, FONTGDOS.CPX
  4.  *
  5.  *  Kenneth Soohoo
  6.  *  December 27, 1989    Copyright 1989 Atari Corporation
  7.  *
  8.  *  CJG - for CPXs
  9.  *  Modified: December 21, 1990
  10.  *  Modified: January   8, 1991 for BITMAP CPX
  11.  *  Modified: December  4, 1992 for DRIVERS.ACC
  12.  *                    Note- It STILL hasn't shipped yet.
  13.  *  Modified: December 15, 1992
  14.  */
  15.  
  16.  
  17. /* INCLUDES
  18.  * ======================================================================
  19.  */
  20. #include <sys\gemskel.h>
  21. #include <string.h>
  22. #include <tos.h>
  23. #include <stdio.h>
  24. #include <stdlib.h>
  25. #include <ctype.h>
  26. #include <ext.h>
  27. #include <errno.h>
  28.  
  29.  
  30. /* DEFINES
  31.  * ======================================================================
  32.  */
  33. #define MAX_NUM_DEV    100    /* Upper limit of the highest device number possible. */
  34. #define MAX_DEV        30      /* # of device that we can use */
  35.  
  36. #define MAX_DRIVERS    40    /* Maximum Number of Drivers Allowed  */
  37.  
  38. #define MAX_FONTS    50    /* Max # different fonts allowed - USED IN ASSIGN.SYS*/
  39.  
  40. #define E_OK         0
  41.  
  42. #define TRUE        1
  43. #define FALSE        0
  44. #define find_newline(x)    while ((bufptr[x] != '\n') && (x < alen)) {++x;}
  45.  
  46.  
  47.  
  48. /* TYPE DEFINE STRUCTURES
  49.  * ======================================================================
  50.  */
  51.  
  52.  
  53. /* FONT STRUCTURE FOR BITMAP FONTS 
  54.  * ======================================================================
  55.  * Current size for one node:
  56.  *    16 + 4 + 4 = 24 bytes per structure.
  57.  *    Array of 100 font structures == 2400 bytes.
  58.  */
  59. typedef struct f_node {
  60.     char font_file[16];    /* File name this font obeys + .FNT */
  61.     struct f_node *fnext;    /* Link to next font in alpha order */
  62.     struct f_node *fprev;    /* Link to previous font in alpha order */
  63.     } FON, *FON_PTR;
  64.  
  65. #define FNEXT(ptr)    ptr->fnext
  66. #define FPREV(ptr)    ptr->fprev
  67. #define FFNAME(ptr)    ptr->font_file
  68.  
  69.  
  70. /* DEVICE STRUCTURE
  71.  * ======================================================================
  72.  * Current size for one node.
  73.  * 2 + 2 + 1 + 2 + ( 4 * number of fonts [ MAX_FONTS ] ) = 
  74.  *      MAX_FONTS == 200  ---->    800 + 7  per structure.
  75.  *      MAX_FONTS == 100  ---->    400 + 7  per structure.
  76.  *      MAX_FONTS ==  50  ---->    200 + 7  per structure.
  77.  */
  78. typedef struct d_node {            /* Driver data structure          */
  79.     int driver_name;        /* Driver's name              */
  80.     int device;            /* Device number              */
  81.     char type;            /* (r) resident, (p) permenant   */
  82.     int font_count;            /* # fonts with this device      */
  83.     FON_PTR fonts[ MAX_FONTS ]; /* Array of Font Pointers to the */
  84.                     /* Font Arena symbolizing which  */
  85.                     /* fonts are being used by this  */
  86.                     /* driver.                 */
  87.     struct d_node *next;        /* Pointer to next device.       */                
  88.     struct d_node *prev;        /* Pointer to previous device    */
  89.     BOOLEAN dflag;
  90.     } DEV, *DEV_PTR;
  91.  
  92. #define DNAME(x)    x->driver_name
  93. #define DDEV(x)        x->device
  94. #define DFCOUNT(x)    x->font_count
  95. #define DTYPE(x)    x->type
  96. #define DFONT(x)    ( FON_PTR )( x->fonts )
  97. #define DNEXT(x)    ( DEV_PTR )( x->next )
  98. #define DPREV(x)    ( DEV_PTR )( x->prev )
  99. #define DFLAG(x)    x->dflag
  100.  
  101.  
  102.  
  103. /* Structure for displaying the FULL Printer Name
  104.  * Memory used is MAX_DRIVERS
  105.  *   ( 2 + 2 + 4 ) * MAX_DRIVERS = NUMBYTES est. 400 bytes.
  106.  */
  107. typedef struct h_node {
  108.     int hindex;    /* into cdriver_name */
  109.     int hflag;
  110.     struct h_node *hnext;
  111.     } HDEVICE, *HDEVICE_PTR;
  112.     
  113. #define HNAME(x)    x->hindex
  114. #define HNEXT(x)    ( HDEVICE_PTR )( x->hnext )    
  115. #define HFLAG(x)    x->hflag
  116.  
  117.  
  118.  
  119. /* FSM/SPEEDO printer driver header*/
  120. typedef struct _header
  121. {
  122.     long header[2];    /* Should always be _FSM_HDR */
  123.     
  124.     int     quality;
  125.     int  config_map;
  126.     int  nplanes;
  127.     int  total_planes;
  128.     
  129.     int  Plane[4];
  130.     int  X_PIXEL[4];
  131.     int  Y_PIXEL[4];
  132.     
  133.     int     PageSize;
  134.     int  xres;
  135.     int  yres;
  136.     int  port;
  137.     int  paper_feed;
  138.     char fname[ 26 ];
  139.     int  pgsz_table[8];
  140.     int  pgsz2_table[8];
  141.     int     TopMargin;
  142.     int  BottomMargin;
  143.     int  LeftMargin;
  144.     int  RightMargin;
  145.     int  Margin[32];
  146. }HEADER;
  147.  
  148.  
  149. typedef struct _margin
  150. {
  151.     int     TopMargin;
  152.     int  BottomMargin;
  153.     int  LeftMargin;
  154.     int  RightMargin;
  155.     int  Margin[32];
  156. }MARGIN;
  157.