/*--------------------------------------------------------------------
 * FICHERO:  DbnPonPu.c
 * OBJETIVO: Definir la funcin Dbn_PonPunto()
 * AUTOR:    Pedro Reina
 * FECHA:    V.14.7.1995
 *------------------------------------------------------------------*/

/*--------------------------------------------------------------------
 * Ficheros de cabecera
 *------------------------------------------------------------------*/

#include "Diblane.h"

/*--------------------------------------------------------------------
 * Definicin de funciones
 *------------------------------------------------------------------*/

/*--------------------------------------------------------------Olimpo
 * FUNCION:  Dbn_PonPunto()
 * OBJETIVO: Poner el valor de un punto de un diblane
 * ENTRADAS: El diblane, la fila y la columna del punto y el
 *           nuevo valor
 * SALIDAS:  El nuevo valor del punto, que es 0  1
 * NOTAS:    1. La fila 0 es la de arriba
 *           2. La columna 0 es la de la izquierda
 *           3. Se asume que el punto pertenece al diblane
 * EJEMPLO:  Dbn_PonPunto ( Dibujo, 4, 17, 1 )
 *------------------------------------------------------------------*/
octeto  Dbn_PonPunto (Dibujo,Fila,Columna,Valor)
diblane Dibujo;
entero  Fila, Columna;
octeto  Valor;
  {
  entero Pos;

  Pos = Fila * Dbn_AnchoEnOxel(Dibujo) + Columna / 8;
  if ( Valor )
    { Dbn_Dato(Dibujo)[Pos] |= 128 >> Columna % 8; }
  else
    { Dbn_Dato(Dibujo)[Pos] &= ~ (128 >> Columna % 8); }

  return ( Valor );
  }
