/******************************************************************************
 **
 **	FILE NAME: sclib.slib
 **
 **	Created by Mokhtar HIRECH (MASI laboratory) on 26 October 1995
 ** from $SYNOPSYS/libraries/syn/class.slib
 **
 ** Modified September 1, 1999 Franck
 **
 *****************************************************************************
*/


TRUE = 1;
FALSE = 0;


library("sxlib.sdb") {

  ROUTE_GRID = 1024;
  INCHES_PER_GRID = .1;
  DB_PER_GRID = ROUTE_GRID;

  CENTEMETERS_PER_GRID = INCHES_PER_GRID * 2.54;
  METERS_PER_GRID = CENTEMETERS_PER_GRID / 100;
  METERS_PER_DB = METERS_PER_GRID / DB_PER_GRID;

  set_route_grid(ROUTE_GRID);
  set_external_scale(METERS_PER_DB);
  set_meter_scale(METERS_PER_DB);

  grid_pins : TRUE ;



  /* note: One ROUTE_GRID is equivalent to 13 / 2 "units" of the IEEE / ANSI symbol
   * standard (Std 91 - 1984).  One ROUTE_GRID is equivalent to .2 MIL standard
   * units (inches) (MIL - STD - 8086)
   * Dimensions were derrived from these standards.
   *
   *        -          ***************************
   *        |          *                          ****
   *       	|          ***            -               **
   *       	|          *  ****        |                 *
   *        |    *******     ***     DYNAMIC HEIGHT      *  **** --------
   *                   *  ****        |                  * *    *       |
   *    AND_HEIGHT     ***            -                   **    * BUBBLE_DIAMETER
   *                   *                                  **    *       |
   *        |          <------->                         *. **** --------
   *        |          *    DYNAMIC WIDTH                *.
   *        |    *******                                * .
   *        |          *                              **  .
   *        |          *                           ***    .
   *        -          ***************************        .
   *                   .                                  .
   *                   .                                  .
   *                   .                                  .
   *                   <-------------- AND_WIDTH --------->
   *
   *
   *
   *       	     XOR_GAP
   *       	   <------->
   *    	   .       .
   *           .       .
   *           .       .
   *           .       .
   *           *       ***********************                            -
   *            *       *                  	  ********                    |
   *             *       *                            ****                |
   *              *       *                               **              |
   *               *       *                               	**            |
   *               *       *                               	  *
   *  -.............*.......*..........+                	   *       OR_HEIGHT
   *  |             *       *                           	   *
   *  |            *       *.          .                      *.          |
   * OR_Y_ORIGIN   *       *.      	   .                	** .          |
   *  |           *       * .          .                  **   .          |
   *  |          *       *  .          .              ****     .          |
   *  |         *       *   .          .      ********         .          |
   *  -........*.......***********************     		   .          -
   *		        .          .
   *                   <- OR_X_ORIGIN ->                       .
   *                        .                                  .
   *                        .                                  .
   *                        <---------- OR_WIDTH -------------->
   *
   *
   *
   * NOTE:
   *
   * Both OR_HEIGHT and AND_HEIGHT are defined to be four.
   * The rest of the parameters are under "user" control.
   *
   * The radius of the arcs in an OR gate are defined to be equal to the
   * height of the OR gate (this seems to be an industry standard).  Thus,
   * The radius of all three arcs are defined to be four.
   *
   * Both the MIL standard and the ANSI / IEEE standard have slightly different
   * ideas on these dimensions, so choose the dimensions you like best:
   *
   */

/* REQUIRED SIZES: */

AND_HEIGHT = 4;
OR_HEIGHT = 4;

grid_pins : TRUE ;

/* ANSI Dimensions: 
 * The ANSI dimensions have been commented out in favor of the MIL dimensions:
 *
 *   ANSI_AND_HEIGHT = 26.0;
 *   SCALE = AND_HEIGHT / ANSI_AND_HEIGHT;
 *
 *   AND_WIDTH = 32 * SCALE;
 *   OR_WIDTH = 32 * SCALE;
 *   INVERTER_HEIGHT = 22.5 * SCALE;
 *   XOR_GAP = 5 * SCALE;
 *   BUBBLE_DIAMETER = 4 * SCALE;
 *   DYNAMIC_HEIGHT = 4 * SCALE;
 *   DYNAMIC_WIDTH = 6 * SCALE;
 *   OFF_SHEET_HEIGHT = 8 * SCALE;   Not specified by ANSI,
 *			           this value from MIL
 *
 */


/* MIL Dimensions: */

GRIDS_PER_INCH = 1 / INCHES_PER_GRID;
MIL_AND_HEIGHT = .8;
SCALE = AND_HEIGHT / MIL_AND_HEIGHT;

AND_WIDTH = 1.00 * SCALE;
OR_WIDTH = 1.00 * SCALE;
OR_INTERNAL_WIDTH = 0.50 * GRIDS_PER_INCH;
INVERTER_HEIGHT = .70 * SCALE;
XOR_GAP = (2.0 / 13.0) * SCALE;   /* Not specifed by MIL, this value from ANSI */
BUBBLE_DIAMETER = .16 * SCALE;
DYNAMIC_HEIGHT = .15 * SCALE;
DYNAMIC_WIDTH = .30 * SCALE;
OFF_SHEET_HEIGHT = .25 * SCALE;


/* The following values are not specified by MIL or ANSI: */

/* Origins are defined as offset from the lower left corner */
OR_X_ORIGIN = 3;
OR_Y_ORIGIN = 2;
AND_X_ORIGIN = 3;
AND_Y_ORIGIN = 2;
INVERTER_X_ORIGIN = 1;
INVERTER_Y_ORIGIN = INVERTER_HEIGHT / 2.0;

EXTRA_WING_SPAN = .5; /* ON 3 + GATES, CONTROLS WING SIZE */
GATE_GAP = 0;	       /* CONTROLS VERTICAL GAP ON STACKED GATES */

/* The following values are deduced from the above values: */

BUBBLE_RADIUS = BUBBLE_DIAMETER / 2.0;
DYNAMIC_RADIUS = DYNAMIC_HEIGHT / 2.0;


  symbol(and_outline) {
    AND_LEFT_X = - AND_X_ORIGIN;
    AND_BOTTOM_Y = - AND_Y_ORIGIN;

    AND_TOP_Y = AND_BOTTOM_Y + AND_HEIGHT;
    X_START_OF_ARC = AND_LEFT_X + AND_WIDTH - AND_HEIGHT / 2.0;
    AND_MIDDLE_Y = AND_BOTTOM_Y + AND_HEIGHT / 2.0;
    AND_RIGHT_X = AND_LEFT_X + AND_WIDTH;

    line(AND_LEFT_X, AND_TOP_Y, X_START_OF_ARC, AND_TOP_Y);
    line(AND_LEFT_X, AND_BOTTOM_Y, X_START_OF_ARC, AND_BOTTOM_Y);
    arc(X_START_OF_ARC, AND_TOP_Y, X_START_OF_ARC, AND_BOTTOM_Y,       	      \
	X_START_OF_ARC, AND_MIDDLE_Y);
  }


  symbol(inverter_triangle) {

    /* The origins are defined to be the offset from the lower left corner */
    INVERTER_LEFT_X = - INVERTER_X_ORIGIN;
    INVERTER_BOTTOM_Y = - INVERTER_Y_ORIGIN;

    INVERTER_RIGHT_X = INVERTER_LEFT_X + INVERTER_HEIGHT * SQRT(3) / 2.0;
    INVERTER_TOP_Y = INVERTER_BOTTOM_Y + INVERTER_HEIGHT;
    INVERTER_MIDDLE_Y = INVERTER_BOTTOM_Y + INVERTER_HEIGHT / 2.0;

    line(INVERTER_LEFT_X, INVERTER_TOP_Y, INVERTER_RIGHT_X, INVERTER_MIDDLE_Y);
    line(INVERTER_RIGHT_X, INVERTER_MIDDLE_Y,  	       	       	       	      \
	 INVERTER_LEFT_X, INVERTER_BOTTOM_Y);
    line(INVERTER_LEFT_X, INVERTER_BOTTOM_Y, INVERTER_LEFT_X, INVERTER_TOP_Y);
  }

  symbol(solder_dot) {
    line( -.25,-.25,.25,-.25);
    line(.25,.25,.25,-.25);
    line(.25,.25,-.25,.25);
    line( -.25,.25,-.25,-.25);
    line( -.25,-.25,.25,.25);
    line(.25,-.25,-.25,.25);
  }

/******************************************************************************
**	
**	New symbols added for SCLIB cells
**
******************************************************************************/

  symbol(inv_x1) {
    sub_symbol(inverter_triangle, 0,0,0);

    circle(INVERTER_RIGHT_X + BUBBLE_RADIUS, INVERTER_MIDDLE_Y, BUBBLE_RADIUS);
    pin(nq, INVERTER_RIGHT_X + BUBBLE_DIAMETER, INVERTER_MIDDLE_Y, RIGHT);
    pin(i, INVERTER_LEFT_X, INVERTER_MIDDLE_Y, LEFT);
  }

  symbol(a2_x1) {
    sub_symbol(and_outline, 0,0,0);

    line(AND_LEFT_X, AND_BOTTOM_Y, AND_LEFT_X, AND_TOP_Y);

    pin(i0, AND_LEFT_X, AND_BOTTOM_Y + 3, LEFT);
    pin(i1, AND_LEFT_X, AND_BOTTOM_Y + 1, LEFT);
    pin(q, AND_RIGHT_X, AND_MIDDLE_Y, RIGHT);
  }

  symbol(na2_x1) {
    sub_symbol(and_outline, 0,0,0);

    line(AND_LEFT_X, AND_BOTTOM_Y, AND_LEFT_X, AND_TOP_Y);
    circle(AND_LEFT_X - BUBBLE_RADIUS, AND_BOTTOM_Y + 1, BUBBLE_RADIUS);

    pin(i0, AND_LEFT_X, AND_BOTTOM_Y + 3, LEFT);
    pin(i1, (AND_LEFT_X - BUBBLE_DIAMETER), AND_BOTTOM_Y + 1, LEFT);
    pin(nq, AND_RIGHT_X, AND_MIDDLE_Y, RIGHT);
  }

  
  OR_LEFT_X = - OR_X_ORIGIN;
  OR_BOTTOM_Y = - OR_Y_ORIGIN;

  OR_TOP_Y = OR_BOTTOM_Y + OR_HEIGHT;
  OR_LEFT_ARC_CENTER_X = OR_LEFT_X - sqrt(.75 * OR_HEIGHT * OR_HEIGHT);
  OR_MIDDLE_Y = OR_BOTTOM_Y + OR_HEIGHT / 2.0;
  OR_RIGHT_X = OR_LEFT_ARC_CENTER_X + OR_HEIGHT + OR_INTERNAL_WIDTH;
  OR_RIGHT_ARCS_X_START = OR_RIGHT_X - sqrt(.75 * OR_HEIGHT * OR_HEIGHT);
/*
  OR_WIDTH = OR_RIGHT_X - OR_LEFT_X;
*/
  symbol(left_side_of_or) {
    arc(OR_LEFT_X,OR_TOP_Y,OR_LEFT_X, OR_BOTTOM_Y,                            \
        OR_LEFT_ARC_CENTER_X, OR_MIDDLE_Y);
  }


  symbol(or_outline) {
    sub_symbol(left_side_of_or, 0,0,0);


    arc(OR_RIGHT_ARCS_X_START, OR_TOP_Y, OR_RIGHT_X, OR_MIDDLE_Y,             \
        OR_RIGHT_ARCS_X_START, OR_BOTTOM_Y);
    arc(OR_RIGHT_X, OR_MIDDLE_Y, OR_RIGHT_ARCS_X_START, OR_BOTTOM_Y,          \
        OR_RIGHT_ARCS_X_START, OR_TOP_Y);

    line(OR_LEFT_X, OR_TOP_Y, OR_RIGHT_ARCS_X_START, OR_TOP_Y);
    line(OR_LEFT_X, OR_BOTTOM_Y, OR_RIGHT_ARCS_X_START, OR_BOTTOM_Y);
  }

  OR_EVEN_LEFT_PIN_X = OR_LEFT_ARC_CENTER_X + sqrt((15.0 / 16.0) *            \
                                                   OR_HEIGHT * OR_HEIGHT);
  OR_ODD_LEFT_PIN_X = OR_LEFT_ARC_CENTER_X + OR_HEIGHT;

  symbol(o2_x1) {
    sub_symbol(or_outline,0,0,0);

    pin(i0, OR_EVEN_LEFT_PIN_X, OR_BOTTOM_Y + 3, LEFT);
    pin(i1, OR_EVEN_LEFT_PIN_X, OR_BOTTOM_Y + 1, LEFT);
    pin(q, OR_RIGHT_X, 0, RIGHT);
  }

  /* height assumed to be radius of or arc */
  OR_NOT_CIRCLE_X = OR_LEFT_ARC_CENTER_X + sqrt(((OR_HEIGHT - BUBBLE_RADIUS) * \
                                              (OR_HEIGHT - BUBBLE_RADIUS)) - 1);
  symbol(no2_x1) {
    sub_symbol(or_outline, 0,0,0);

    circle(OR_NOT_CIRCLE_X, OR_BOTTOM_Y + 1, BUBBLE_RADIUS);

    pin(i0, OR_EVEN_LEFT_PIN_X, OR_BOTTOM_Y + 3, LEFT);
    pin(i1, OR_NOT_CIRCLE_X - BUBBLE_RADIUS, OR_BOTTOM_Y + 1, LEFT);
    pin(nq, OR_RIGHT_X, 0, RIGHT);
  }


  symbol(B2I) {
    LEFT_INVERTER_ORIGIN_X = - INVERTER_X_ORIGIN - 2;
    sub_symbol(inverter_triangle, LEFT_INVERTER_ORIGIN_X,0,0);
    circle(LEFT_INVERTER_ORIGIN_X + INVERTER_RIGHT_X + BUBBLE_RADIUS,  	      \
             INVERTER_MIDDLE_Y, BUBBLE_RADIUS);

    RIGHT_INVERTER_ORIGIN_X = INVERTER_X_ORIGIN + 2;
    sub_symbol(inverter_triangle, RIGHT_INVERTER_ORIGIN_X,0,0);
    circle(RIGHT_INVERTER_ORIGIN_X + INVERTER_RIGHT_X + BUBBLE_RADIUS, 	      \
             INVERTER_MIDDLE_Y, BUBBLE_RADIUS);

    line(LEFT_INVERTER_ORIGIN_X + INVERTER_RIGHT_X + BUBBLE_DIAMETER,  	      \
         INVERTER_MIDDLE_Y,    	       	       	       	       	       	      \
         RIGHT_INVERTER_ORIGIN_X + INVERTER_LEFT_X, INVERTER_MIDDLE_Y);
    sub_symbol(solder_dot, INVERTER_X_ORIGIN,0,0);
    line(INVERTER_X_ORIGIN, INVERTER_MIDDLE_Y, 	       	       	       	      \
             INVERTER_X_ORIGIN, ceil(INVERTER_TOP_Y) + 1);
    line(INVERTER_X_ORIGIN, ceil(INVERTER_TOP_Y) + 1,  	       	       	      \
             RIGHT_INVERTER_ORIGIN_X + INVERTER_RIGHT_X + BUBBLE_DIAMETER,    \
             ceil(INVERTER_TOP_Y) + 1);
    pin(Z1, RIGHT_INVERTER_ORIGIN_X + INVERTER_RIGHT_X + BUBBLE_DIAMETER,     \
             ceil(INVERTER_TOP_Y) + 1, RIGHT);
    pin(Z2, RIGHT_INVERTER_ORIGIN_X + INVERTER_RIGHT_X + BUBBLE_DIAMETER,     \
             INVERTER_MIDDLE_Y, RIGHT);
    pin(A, LEFT_INVERTER_ORIGIN_X + INVERTER_LEFT_X, INVERTER_MIDDLE_Y, LEFT);
  }
  symbol(B2IP) {
    sub_symbol(B2I, 0,0,0);
  }
  symbol(B3I) {
    sub_symbol(B2I, 0,0,0);
  }
  symbol(B3IP) {
    sub_symbol(B2I, 0,0,0);
  }
  symbol(mux2) {
    MUX_WIDTH = 2.0;
    MUX_X_ORIGIN = MUX_WIDTH / 2.0;
    MUX_HEIGHT = 4.0;
    MUX_Y_ORIGIN = MUX_HEIGHT / 2.0;

    MUX_LEFT =   MUX_X_ORIGIN - (MUX_WIDTH / 2.0);
    MUX_RIGHT =  MUX_X_ORIGIN + (MUX_WIDTH / 2.0);
    MUX_TOP =    MUX_Y_ORIGIN + (MUX_HEIGHT / 2.0);
    MUX_BOTTOM = MUX_Y_ORIGIN - (MUX_HEIGHT / 2.0);
    line(MUX_LEFT, MUX_BOTTOM, MUX_RIGHT, MUX_BOTTOM);
    line(MUX_LEFT, MUX_BOTTOM, MUX_LEFT, MUX_TOP);
    line(MUX_RIGHT, MUX_TOP, MUX_RIGHT, MUX_BOTTOM);
    line(MUX_RIGHT, MUX_TOP, MUX_LEFT, MUX_TOP);
    pin(A,   MUX_LEFT,  MUX_Y_ORIGIN + 1, LEFT);
    pin(B,   MUX_LEFT,  MUX_Y_ORIGIN - 1, LEFT);
    pin(S,   MUX_X_ORIGIN, MUX_BOTTOM , DOWN);
  }
  symbol(MUX21H) {
    sub_symbol(mux2, 0,0,0);
    pin(Z,   MUX_RIGHT, MUX_Y_ORIGIN, RIGHT);
  }
  symbol(MUX21HP) {
    sub_symbol(MUX21H, 0,0,0);
  }
  symbol(MUX21L) {
    sub_symbol(mux2, 0,0,0);
    pin(Z,   MUX_RIGHT + BUBBLE_DIAMETER, MUX_Y_ORIGIN, RIGHT);
    circle(MUX_RIGHT + BUBBLE_RADIUS, MUX_Y_ORIGIN, BUBBLE_RADIUS);
  }
  symbol(MUX21LP) {
    sub_symbol(MUX21L, 0,0,0);
  }
  symbol(mux2sel) {
    MUX_WIDTH = 3.0;
    MUX_X_ORIGIN = MUX_WIDTH / 2.0;
    MUX_HEIGHT = 4.0;
    MUX_Y_ORIGIN = MUX_HEIGHT / 2.0;

    MUX_LEFT =   MUX_X_ORIGIN - (MUX_WIDTH / 2.0);
    MUX_RIGHT =  MUX_X_ORIGIN + (MUX_WIDTH / 2.0);
    MUX_TOP =    MUX_Y_ORIGIN + (MUX_HEIGHT / 2.0);
    MUX_BOTTOM = MUX_Y_ORIGIN - (MUX_HEIGHT / 2.0);
    line(MUX_LEFT, MUX_BOTTOM, MUX_RIGHT, MUX_BOTTOM);
    line(MUX_LEFT, MUX_BOTTOM, MUX_LEFT, MUX_TOP);
    line(MUX_RIGHT, MUX_TOP, MUX_RIGHT, MUX_BOTTOM);
    line(MUX_RIGHT, MUX_TOP, MUX_LEFT, MUX_TOP);
  }
  symbol(MUX21LA) {
    sub_symbol(mux2sel, 0,0,0);
    pin(A,   MUX_LEFT,  MUX_Y_ORIGIN + 1, LEFT);
    pin(B,   MUX_LEFT,  MUX_Y_ORIGIN - 1, LEFT);
    pin(SN,  MUX_X_ORIGIN - 0.5, MUX_BOTTOM - BUBBLE_DIAMETER , DOWN);
    circle(MUX_X_ORIGIN - 0.5, MUX_BOTTOM - BUBBLE_RADIUS, BUBBLE_RADIUS);
    pin(S,   MUX_X_ORIGIN + 0.5, MUX_BOTTOM , DOWN);
    circle(MUX_RIGHT + BUBBLE_RADIUS, MUX_Y_ORIGIN, BUBBLE_RADIUS);
    pin(Z,   MUX_RIGHT + BUBBLE_DIAMETER, MUX_Y_ORIGIN, RIGHT);
  }
  symbol(MUX21LAP) {
    sub_symbol(MUX21LA, 0,0,0);
  }
  symbol(MUX31L) {
    sub_symbol(mux2sel, 0,0,0);
    pin(D0,   MUX_LEFT,  MUX_Y_ORIGIN + 1, LEFT);
    pin(D1,   MUX_LEFT,  MUX_Y_ORIGIN , LEFT);
    pin(D2,   MUX_LEFT,  MUX_Y_ORIGIN - 1, LEFT);
    pin(A,  MUX_X_ORIGIN - 0.5, MUX_BOTTOM , DOWN);
    pin(B,   MUX_X_ORIGIN + 0.5, MUX_BOTTOM , DOWN);
    circle(MUX_RIGHT + BUBBLE_RADIUS, MUX_Y_ORIGIN, BUBBLE_RADIUS);
    pin(Z,   MUX_RIGHT + BUBBLE_DIAMETER, MUX_Y_ORIGIN, RIGHT);
  }
  symbol(MUX31LP) {
    sub_symbol(MUX31L, 0,0,0);
  }

FFBOX_WIDTH = 6.0;
FFBOX_X_ORIGIN = FFBOX_WIDTH / 2.0;
FFBOX_HEIGHT = 10.0;
FFBOX_Y_ORIGIN = FFBOX_HEIGHT / 2.0;

FFBOX_LEFT =   FFBOX_X_ORIGIN - (FFBOX_WIDTH / 2.0);
FFBOX_RIGHT =  FFBOX_X_ORIGIN + (FFBOX_WIDTH / 2.0);

  symbol(ff_box) {
    FFBOX_TOP =    FFBOX_Y_ORIGIN + (FFBOX_HEIGHT / 2.0);
    FFBOX_BOTTOM = FFBOX_Y_ORIGIN - (FFBOX_HEIGHT / 2.0);
    line(FFBOX_LEFT, FFBOX_BOTTOM, FFBOX_RIGHT, FFBOX_BOTTOM);
    line(FFBOX_LEFT, FFBOX_BOTTOM, FFBOX_LEFT, FFBOX_TOP);
    line(FFBOX_RIGHT, FFBOX_TOP, FFBOX_RIGHT, FFBOX_BOTTOM);
    line(FFBOX_RIGHT, FFBOX_TOP, FFBOX_LEFT, FFBOX_TOP);
    pin(Q,   FFBOX_RIGHT, FFBOX_Y_ORIGIN + 4 , RIGHT);
    pin(QN,  FFBOX_RIGHT + BUBBLE_DIAMETER, FFBOX_Y_ORIGIN - 4 , RIGHT);
    circle(FFBOX_RIGHT + BUBBLE_RADIUS, FFBOX_Y_ORIGIN - 4, BUBBLE_RADIUS);
  }

  symbol(FD1) {
    sub_symbol(ff_box, 0,0,0);
    pin(D,   FFBOX_LEFT,  FFBOX_Y_ORIGIN + 4,  LEFT);

    CLOCK_Y = FFBOX_Y_ORIGIN - 4;
    pin(CP, FFBOX_LEFT,  CLOCK_Y , LEFT);
    line(FFBOX_LEFT, CLOCK_Y - 0.5, FFBOX_LEFT + 1, CLOCK_Y);
    line(FFBOX_LEFT, CLOCK_Y + 0.5, FFBOX_LEFT + 1, CLOCK_Y);
  }

  symbol(FD1P) {
    sub_symbol(FD1, 0,0,0);
  }
  symbol(FDW) {
    sub_symbol(FD1, 0,0,0);
    pin(CD,   FFBOX_X_ORIGIN,  FFBOX_BOTTOM - BUBBLE_DIAMETER,  DOWN);
    circle(FFBOX_X_ORIGIN,FFBOX_BOTTOM - BUBBLE_RADIUS, BUBBLE_RADIUS);
  }

  symbol(FD4) {
    sub_symbol(FD1, 0,0,0);
    pin(SD,   FFBOX_X_ORIGIN,  FFBOX_TOP + BUBBLE_DIAMETER,  UP);
    circle(FFBOX_X_ORIGIN,FFBOX_TOP + BUBBLE_RADIUS, BUBBLE_RADIUS);
  }
  symbol(box_3x6) {
    BOX_3X6_WIDTH = 3.0;
    BOX_3X6_X_ORIGIN = BOX_3X6_WIDTH / 2.0;
    BOX_3X6_HEIGHT = 6.0;
    BOX_3X6_Y_ORIGIN = BOX_3X6_HEIGHT / 2.0;

    BOX_3X6_LEFT =   BOX_3X6_X_ORIGIN - (BOX_3X6_WIDTH / 2.0);
    BOX_3X6_RIGHT =  BOX_3X6_X_ORIGIN + (BOX_3X6_WIDTH / 2.0);
    BOX_3X6_TOP =    BOX_3X6_Y_ORIGIN + (BOX_3X6_HEIGHT / 2.0);
    BOX_3X6_BOTTOM = BOX_3X6_Y_ORIGIN - (BOX_3X6_HEIGHT / 2.0);
    line(BOX_3X6_LEFT, BOX_3X6_BOTTOM, BOX_3X6_RIGHT, BOX_3X6_BOTTOM);
    line(BOX_3X6_LEFT, BOX_3X6_BOTTOM, BOX_3X6_LEFT, BOX_3X6_TOP);
    line(BOX_3X6_RIGHT, BOX_3X6_TOP, BOX_3X6_RIGHT, BOX_3X6_BOTTOM);
    line(BOX_3X6_RIGHT, BOX_3X6_TOP, BOX_3X6_LEFT, BOX_3X6_TOP);
  }
}



/*****************************************************************************/
