/// <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; }
/// <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) { }
/// <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; }
/// <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; }
/// <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) { }