$CargarCodScor=$_POST['CargarCodScor'];
$CargarCodTom=$_POST['CargarCodTom'];
if (!empty($_POST['instruc'])) $instruc=$_POST['instruc'];
else $instruc=$_GET['instruc'];
if (!empty($_POST['ciclopar'])) $ciclopar=$_POST['ciclopar'];
else $ciclopar=$_GET['ciclopar'];
if (!empty($_POST['config'])) $config=$_POST['config'];
else $config=$_GET['config'];
if (!empty($_POST['codigo'])) $codigo=$_POST['codigo'];
else $codigo=$_GET['codigo'];
if (!empty($_POST['inst'])) $inst=$_POST['inst'];
else $inst=$_GET['inst'];
$validar=$_POST['validar'];
$borrar=$_POST['borrar'];
$ejemplo=$_POST['ejemplo'];
$open=$_POST['open'];
$save=$_POST['save'];
$test=$_POST['test'];
$AbrirFich=$_POST['AbrirFich'];
$GuardarFich=$_POST['GuardarFich'];
$int=$_POST['int'];
$load=$_POST['load'];
$mult=$_POST['mult'];
$add=$_POST['add'];
$div=$_POST['div'];
$store=$_POST['store'];
$Imprimir=$_POST['Imprimir'];
$Cancelar=$_POST['Cancelar'];
$ResTabInst=$_POST['ResTabInst'];
$ResTabReg=$_POST['ResTabReg'];
$ResTabEtap=$_POST['ResTabEtap'];
$ResTabUFER=$_POST['ResTabUFER'];
$ResCicloAct=$_POST['ResCicloAct'];
$ResEstad=$_POST['ResEstad'];
$ResConfig=$_POST['ResConfig'];
$op=$_GET['op'];
$acc=$_GET['acc'];
$accion=$_GET['accion'];
$plan=$_GET['plan'];
$Estad=$_GET['Estad'];
require("funcpag.php");//Funciones generales para formar las diferentes páginas.
require("JavaScrip.php");//Cadenas que contienen código JavaScript.
$path=dirname($HTTP_SERVER_VARS['PATH_TRANSLATED'])."/../Temporal/";
if (!empty($CargarCodScor)) $op="scoreboard";//Carga el código en el simulador del Scoreboard (Marcador).
if (!empty($CargarCodTom)) $op="tomasulo";//Carga el código en el simulador de Tomasulo.
if (isset($op)) { //El usuario ha seleccionado una operación...
switch ($op) {
case "scoreboard":{//Simulador del 'Scoreboard' (Marcador)
CabeceraPag("Centralized Dynamic Scheduling. Scoreboard",$JSRollover);
TituloPag("Centralized Dynamic Scheduling.
Scoreboard",$onloadbodyscore);
if (isset($acc) && $acc=="simulation")//El usuario ha seleccionado la acción de simulación
{
require("funcscore.php");//Funciones para la simulación del 'Scoreboard'.
//Compruebo si el usuario quiere ver la ejecución hasta un ciclo en concreto.
// Si no es asi, inicializo la variable.
if (!isset($ciclopar)) $ciclopar='';
//Compruebo si se ha modificado la configuración de las unidades funcionales.
//Si no es así, la inicializo.
if (!isset($config)) $config='1|10|2|40';
//Compruebo que hay código cargado en el simulador
if (!empty($instruc))
{
$ResultSim=SimulacionScoreboard($instruc,$ciclopar,$config);//Llamada a la simulación
//Muestro los resultados de la simulación
CuerpoScoreboard($path,$instruc,$config,$ResultSim[0],$ResultSim[1],$ResultSim[2],
$ResultSim[3],$ResultSim[4],$ResultSim[5]);
}//if
else CuerpoScoreboard($path,'','','','','','','','');
}
else
{//No se ha seleccionado ninguna acción del simulador 'Scoreboard'
if (!isset($instruc)) $instruc='';
if ((empty($int)) || (strspn($int,'0123456789')!=strlen($int))) $int='1';
if ((empty($mult)) || (strspn($mult,'0123456789')!=strlen($mult))) $mult='10';
if ((empty($add)) || (strspn($add,'0123456789')!=strlen($add))) $add='2';
if ((empty($div)) || (strspn($div,'0123456789')!=strlen($div))) $div='40';
$config=$int.'|'.$mult.'|'.$add.'|'.$div;
CuerpoScoreboard($path,$instruc,$config,'','','','','','');
PiePag();
}//else
break;
}//case scoreboard
case "tomasulo":{
CabeceraPag("Distributed Dynamic Scheduling. Tomasulo Algorithm",$JSEditor.$JSRollover);
TituloPag("Distributed Dynamic Scheduling.
Tomasulo Algorithm",$onloadbodytomasulo);
if (isset($acc) && $acc=="simulation")//El usuario ha seleccionado la acción de simulación
{
require("functomasulo.php");//Funciones para la simulación del 'Tomasulo'.
//Compruebo si el usuario quiere ver la ejecución hasta un ciclo en concreto.
// Si no es asi, inicializo la variable.
if (!isset($ciclopar)) $ciclopar='';
//Compruebo si se ha modificado la configuración de las unidades funcionales.
//Si no es así, la inicializo.
if (!isset($config)) $config='2|10|2|40|1|2';
//Compruebo que hay código cargado en el simulador
if (!empty($instruc))
{
$ResultSim=SimulacionTomasulo($instruc,$ciclopar,$config);//Llamada a la simulación
//Muestro los resultados de la simulación
CuerpoTomasulo($path,$instruc,$config,$ResultSim[0],$ResultSim[1],$ResultSim[2],
$ResultSim[3],$ResultSim[4],$ResultSim[5]);
}//if
else CuerpoTomasulo($path,'','','','','','','','');
}//if
else//No se ha seleccionado ninguna acción del simulador 'Tomasulo'
{
if (!isset($instruc)) $instruc='';
if ((empty($load)) || (strspn($load,'0123456789')!=strlen($load))) $load='2';
if ((empty($mult)) || (strspn($mult,'0123456789')!=strlen($mult))) $mult='10';
if ((empty($add)) || (strspn($add,'0123456789')!=strlen($add))) $add='2';
if ((empty($div)) || (strspn($div,'0123456789')!=strlen($div))) $div='40';
if ((empty($int)) || (strspn($int,'0123456789')!=strlen($int))) $int='1';
if ((empty($store)) || (strspn($store,'0123456789')!=strlen($store))) $store='2';
$config=$load.'|'.$mult.'|'.$add.'|'.$div.'|'.$int.'|'.$store;
CuerpoTomasulo($path,$instruc,$config,'','','','','','');
PiePag();
}//else
break;
}//case tomasulo
case "editor":{//Editor de código para las simulaciones
CabeceraPag("Code Editor",$JSEditor.$JSRollover);
TituloPag("Code Editor",$onloadbodyeditor);
$directorio='';
// El usuario carga el código desde un fichero.
// Compruebo si el nombre del fichero es no vacio y si el fichero existe.
if ((!empty($AbrirFich))&&(isset($test))&&($test=='ok'))
{
$Examinar_name=$_FILES['Examinar']['name'];
$Examinar_size=$_FILES['Examinar']['size'];
$Examinar=$_FILES['Examinar']['tmp_name'];
if ($Examinar_size>51200)
{
die ("Error. The file size is higher than 51.200 bytes.");
}//if
else
{
if (is_uploaded_file($Examinar) && !empty($Examinar))
{
$directorio=$path.uniqid("UpFile").".tmp";
move_uploaded_file($Examinar,$directorio);
}//if
$accion='AbrirFich';
if (file_exists($Examinar)) unlink($Examinar);
}//else
}//if
//El usuario quiere validar el código de la página.
//Compruebo si el código es no vacio
else if (!empty($validar)&&($codigo!='')) $accion='Validar';
//El usuario quiere borrar el código de la página.
else if (!empty($borrar)) $accion='Borrar';
//El usuario quiere ver el ejemplo de código.
else if (!empty($ejemplo)) $accion='Example';
else if (!empty($open)) $accion='Open';
// El usuario guarda el código a un fichero.
// Compruebo si el nombre del fichero es no vacio.
else if (!empty($save))
{
$directorio=$path.uniqid("Code").".txt";
$accion='GuardarFich';
}
//Ninguna acción seleccionada. Inicializo las variables.
else
{
if (!isset($accion)) $accion='';
if (!isset($codigo)) $codigo='';
}//else
CuerpoEditor($accion,$directorio,$codigo);
PiePag();
break;
}//case editor
case "configurar":{//Configuración de las unidades funcionales
CabeceraPag("Functional Unit Configuration",$JSRollover);
TituloPag("Functional Unit Configuration",$onloadbodyconfig);
if (!isset($inst)) $inst='';
if ($acc == 'defecto')
if ($plan=='scoreboard') $config='1|10|2|40';
else $config='2|10|2|40|1|2';
CuerpoConfigurar($inst,$plan,$config);
PiePag();
break;
}//case ufconfig
case "estadistica":{//Estadísticas de la simulación
CabeceraPag("Statistics",$JSRollover);
TituloPag("Statistics",$onloadbodystatis);
if (!isset($Estad)) $Estad='';
CuerpoEstadistica($Estad,$plan);
PiePag();
break;
}//case estadistica
case "print":{//Imprimir resultados
$cad='';
if (!isset($ResTabUFER)) $ResTabUFER='';
$cad=ImprimirSim($plan,$ResTabInst,$ResTabReg,$ResTabUFER,$ResTabEtap,$ResCicloAct,$ResEstad,$ResConfig);
echo $cad;
break;
}//case print
case "theory":{//Desarrollo teórico
CabeceraPag("Theory Development",$JSRollover);
TituloPag("Theory Development",$onloadbodytheory);
CuerpoTheory();
PiePag();
break;
}//case theory
case "download":{//Descargas
CabeceraPag("Download Site",$JSRollover);
TituloPag("Download Site",$onloadbodydownload);
CuerpoDownload();
PiePag();
break;
}//case download
default:{//Portada de la Web
CabeceraPag("Web Simulator for Dynamic Scheduling of the Pipelining",$JSPortada);
TituloPag("Web Simulator for Dynamic
Scheduling of the Pipelining",'');
CuerpoPortada();
PiePag();
}//default
}//switch
}//if
else {//Ninguna opción seleccionada. Portada de la Web
CabeceraPag("Web Simulator for Dynamic Scheduling of the Pipelining",$JSPortada);
TituloPag("Web Simulator for Dynamic
Scheduling of the Pipelining",'');
CuerpoPortada();
PiePag();
}//else*/
?>