Example #1
0
        /// <summary>Crea una instancia de la clase.</summary>
        /// <param name="dib">La superfice sobre la que se dibujará
        /// la etiqueta.</param>
        /// <param name="x">La coordenada x de la etiqueta.</param>
        /// <param name="y">La coordenada y de la etiqueta.</param>
        /// <param name="texto">El texto de la etiqueta.</param>
        /// <param name="color">El color en el que se escribirá el texto.
        /// </param>
        /// <param name="centrado>Indica si el texto se mostrará centrado.
        /// </param>

        public Etiqueta
            (InterfaceDibujo dib, int x, int y, String texto,
            EnuColor color, bool centrado) : base(dib)
        {
            this.x        = x;
            this.y        = y;
            this.color    = color;
            this.centrado = centrado;
            this.texto    = texto;
        }
Example #2
0
        /// <summary>Crea una instancia de la clase.</summary>
        /// <param name="dib">La superficie sobre la que se debe dibujar
        /// este objeto.</param>
        /// <param name="x">Posición x de la esquina superior izquierda
        /// de la caja.</param>
        /// <param name="y">Posición y de la esquina superior izquierda
        /// de la caja.</param>
        /// <param name="texto">Texto a mostrar dentro de la caja.</param>
        /// <param name="ancho">El ancho de la caja de texto.</param>
        /// <param name="alto">El alto de la caja de texto.</param>

        public CajaRegistro(InterfaceDibujo dib,
                            int x,
                            int y,
                            int ancho,
                            int alto,
                            string texto) : base(dib)
        {
            this.x     = x;
            this.y     = y;
            this.ancho = ancho;
            this.alto  = alto;
            this.texto = texto;
        }
        /// <summary>Crea una instancia de la clase.</summary>
        /// <param name="dib">La superficie sobre la que se dibujará
        /// este objeto.</param>
        /// <param name="puntos">Las coordenadas de las rectas que
        /// componen este cable.</param>

        public CableBidireccional(InterfaceDibujo dib, int[] puntos) :
            base(dib, puntos)
        {
        }
Example #4
0
        /// <summary>Crea una instancia de la clase. Toma el color
        /// por defecto y el texto centrado en las coordenadas.</summary>
        /// <param name="dib">La superfice sobre la que se dibujará
        /// la etiqueta.</param>
        /// <param name="x">La coordenada x de la etiqueta.</param>
        /// <param name="y">La coordenada y de la etiqueta.</param>
        /// <param name="texto">El texto de la etiqueta.</param>

        public Etiqueta(InterfaceDibujo dib, int x, int y, String texto) :
            this(dib, x, y, texto, COLOR_INACTIVO, true)
        {
        }
        /// <summary>Crea una instancia de la clase.</summary>
        /// <param name="dibujo">Superficie sobre la que se dibujarán los
        /// objetos del simulador.</param>

        public RepresentacionRDD(InterfaceDibujo dibujo)
        {
            this.dibujo = dibujo;
            dibujo.SetRepresentacionRDD(this);

            etiqueta_ciclos =
                new Etiqueta(dibujo, 10, 10, "", EnuColor.Rojo, false);
            etiqueta_rmc =
                new Etiqueta(dibujo, 10, 50, "", EnuColor.Azul, false);
            etiqueta_inst =
                new Etiqueta(dibujo, 10, 30, "", EnuColor.Rojo, false);

            int x_deC1              = 350;
            int x_deC2              = 400;
            int y_deC               = 436;
            int anchoRegistro       = 110;
            int altoRegistro        = 15;
            int separacionRegistros = 3;
            int yreg1               = 15;
            int y_deB               = 310;
            int sepregA             = 40;
            int sepAB               = 30;
            int x_deA2              = x_deC2 + anchoRegistro + sepregA;
            int x_deB2              = x_deC2 + anchoRegistro + sepregA + sepAB;
            int y_deAlu             = 390;
            int x_deAlu             = 530;
            int anchoAlu            = 80;
            int y_deMUX             = 360;
            int y_deMAR             = 330;
            int x_deMAR             = 160;
            int ancho_MAR           = 90;
            int y_deMBR             = y_deMUX;


            et_busa = new Etiqueta(dibujo, x_deA2 - 5, yreg1 - 5, "Bus A");
            et_busb = new Etiqueta(dibujo, x_deB2 + 10, yreg1, "Bus B");
            et_busc = new Etiqueta(dibujo, x_deC1, yreg1 - 5, "Bus C");

            Cable[] cablesDeC = new Cable[16];

            for (int i = 0; i < 16; i++)
            {
                cablesDeC[i] = new CableUnidireccional(
                    dibujo, new int[] {
                    x_deC1,
                    y_deC,
                    x_deC1,
                    yreg1 + 5 + (altoRegistro + separacionRegistros) * i,
                    x_deC2,
                    yreg1 + 5 + (altoRegistro + separacionRegistros) * i
                }
                    );
            }
            busC = new Bus(cablesDeC);

            Cable[] cablesDeA = new Cable[16];

            for (int i = 0; i < 16; i++)
            {
                cablesDeA[i] = new CableUnidireccional(
                    dibujo, new int[] {
                    x_deC2 + anchoRegistro,
                    yreg1 + 5 + (altoRegistro + separacionRegistros) * i,
                    x_deA2,
                    yreg1 + 5 + (altoRegistro + separacionRegistros) * i,
                    x_deA2,
                    y_deB
                }
                    );
            }
            busA = new Bus(cablesDeA);

            Cable[] cablesDeB = new Cable[16];

            for (int i = 0; i < 16; i++)
            {
                cablesDeB[i] = new CableUnidireccional(
                    dibujo, new int[] {
                    x_deC2 + anchoRegistro,
                    yreg1 + 10 + (altoRegistro + separacionRegistros) * i,
                    x_deB2,
                    yreg1 + 10 + (altoRegistro + separacionRegistros) * i,
                    x_deB2,
                    y_deB
                }
                    );
            }
            busB = new Bus(cablesDeB);

            for (int i = 0; i < 16; i++)
            {
                regs[i] = new CajaRegistro(
                    dibujo,
                    x_deC2,
                    yreg1 + (altoRegistro + separacionRegistros) * i,
                    anchoRegistro,
                    altoRegistro,
                    BancoRegistros.GetNombreRegistro(i)
                    );
            }

            memoriappal = new CajaRegistro
                              (dibujo, 31, 330, 90, 100, " Memoria\nPrincipal\n2048x16");
            cable_rd =
                new CableUnidireccional(dibujo, new int[] { 65, 320, 65, 330 });
            cable_wr =
                new CableUnidireccional(dibujo, new int[] { 100, 320, 100, 330 });
            et_rd = new Etiqueta(dibujo, 65, 310, "RD");
            et_wr = new Etiqueta(dibujo, 100, 310, "WR");

            bufferA =
                new CajaRegistro(dibujo, 450, y_deB, 110, 16, "BufferA 0000");
            bufferB =
                new CajaRegistro(dibujo, 570, y_deB, 110, 16, "BufferB 0000");
            cable_l0 = new CableUnidireccional
                           (dibujo, new int[] { 440, y_deB + 8, 450, y_deB + 8 });
            cable_l1 = new CableUnidireccional
                           (dibujo, new int[] { 690, y_deB + 8, 680, y_deB + 8 });

            et_l0 = new Etiqueta(dibujo, 420, y_deB + 7, "L0");
            et_l1 = new Etiqueta(dibujo, 700, y_deB + 7, "L1");


            cable_bufferB_alu = new CableUnidireccional
                                    (dibujo, new int[] { 580, y_deB + 16, 580, y_deAlu });
            cable_bufferB_mar = new CableUnidireccional
                                    (dibujo, new int[] {
                580,
                y_deB + 16,
                580,
                y_deMAR + 8,
                x_deMAR + ancho_MAR,
                y_deMAR + 8
            });
            cable_bufferA_mux = new CableUnidireccional
                                    (dibujo, new int[] { 550, y_deB + 16, 550, y_deMUX });

            mux      = new CajaRegistro(dibujo, 500, y_deMUX, 60, 16, "MUX");
            cable_a0 = new CableUnidireccional
                           (dibujo, new int[] { 510, y_deMUX + 26, 510, y_deMUX + 16 });
            cable_mux_alu = new CableUnidireccional
                                (dibujo, new int[] { 550, y_deMUX + 16, 550, 390 });
            cable_alu_sh = new CableUnidireccional
                               (dibujo, new int[] { 570, 422, 570, 430 });

            et_a0 = new Etiqueta(dibujo, 510, y_deMUX + 33, "A0 0");

            mar = new CajaRegistro
                      (dibujo, x_deMAR, y_deMAR, ancho_MAR, 16, "MAR 0000");
            mbr = new CajaRegistro
                      (dibujo, x_deMAR, y_deMUX, ancho_MAR, 16, "MBR 0000");

            cable_m0 = new CableUnidireccional
                           (dibujo, new int[] { 190, y_deMAR - 10, 190, y_deMAR });
            cable_m1 = new CableUnidireccional
                           (dibujo, new int[] { 170, y_deMBR + 26, 170, y_deMBR + 16 });

            et_m0 = new Etiqueta(dibujo, 190, y_deMAR - 17, "M0");
            et_m1 = new Etiqueta(dibujo, 170, y_deMBR + 32, "M1");

            cable_mbr_mux = new CableUnidireccional
                                (dibujo, new int[] {
                x_deMAR + ancho_MAR, y_deMUX + 8, 500, y_deMUX + 8
            });
            cable_mar_ppal = new CableUnidireccional
                                 (dibujo, new int[] { x_deMAR, y_deMAR + 8, 121, y_deMAR + 8 });
            cable_mbr_ppal = new CableBidireccional
                                 (dibujo, new int[] { 121, y_deMUX + 8, x_deMAR, y_deMUX + 8 });

            sh          = new CajaRegistro(dibujo, x_deAlu, 430, anchoAlu, 16, "SH 0000");
            cable_s2_s0 = new CableUnidireccional
                              (dibujo, new int[]
                              { x_deAlu + anchoAlu + 10, 438, x_deAlu + anchoAlu, 438 });
            et_s0 =
                new Etiqueta(dibujo, x_deAlu + anchoAlu + 50, 438, "S2-S0 000");

            cable_sh_mbr = new CableUnidireccional
                               (dibujo, new int[] { x_deC1, y_deC, 190, y_deC, 190, y_deMUX + 16 });
            cable_sh = new Cable
                           (dibujo, new int[] { x_deAlu, y_deC, x_deC1, y_deC });


            alu = new CajaRegistro(dibujo, x_deAlu, y_deAlu, anchoAlu, 32, "ALU");


            cable_c = new CableUnidireccional
                          (dibujo, new int[]
                          { x_deAlu + anchoAlu, 395, x_deAlu + anchoAlu + 10, 395 });
            cable_n = new CableUnidireccional
                          (dibujo, new int[]
                          { x_deAlu + anchoAlu, 405, x_deAlu + anchoAlu + 10, 405 });
            cable_z = new CableUnidireccional
                          (dibujo, new int[]
                          { x_deAlu + anchoAlu, 415, x_deAlu + anchoAlu + 10, 415 });
            cable_f3_f0 = new CableUnidireccional
                              (dibujo, new int[] { x_deAlu - 10, 415, x_deAlu, 415 });
            et_f0 = new Etiqueta(dibujo, x_deAlu - 50, 415, "F3-F0 0000");
            et_c  = new Etiqueta(dibujo, x_deAlu + anchoAlu + 25, 395, "C 0");
            et_n  = new Etiqueta(dibujo, x_deAlu + anchoAlu + 25, 405, "N 0");
            et_z  = new Etiqueta(dibujo, x_deAlu + anchoAlu + 25, 415, "Z 0");

            ActualizarTodo();
        }
        /// <summary>Crea una instancia de la clase.</summary>
        /// <param name="d">La superficie de dibujo sobre la que se
        /// dibujará este objeto.</param>

        protected ElementoDibujable(InterfaceDibujo d)
        {
            this.dibujo = d;
        }
Example #7
0
        /// <summary>Crea una instancia de la clase.</summary>
        /// <param name="dib">La superficie de dibujo sobre la que
        /// se dibujará este objeto.</param>
        /// <param name="puntos">Las coordenadas de las rectas
        /// que componen el cable.</param>

        public Cable(InterfaceDibujo dib, int[] puntos) : base(dib)
        {
            this.puntos = puntos;
        }
Example #8
0
        /// <summary>Crea una instancia de la clase.
        /// El ancho y el alto son valores por defecto</summary>
        /// <param name="dib">La superficie sobre la que se debe dibujar
        ///  este objeto.</param>
        /// <param name="x">Posición x de la esquina superior izquierda
        /// de la caja.</param>
        /// <param name="y">Posición y de la esquina superior izquierda
        /// de la caja.</param>
        /// <param name="texto">Texto a mostrar dentro de la caja.</param>

        public CajaRegistro(InterfaceDibujo dib, int x, int y, string texto) :
            this(dib, x, y, 60, 20, texto)
        {
        }