Скачиваний:
29
Добавлен:
03.06.2014
Размер:
4.83 Кб
Скачать

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

public class External_Functions {

public static String TEXT_FROM_FILE="";

public Main_Frame object;


/* внешние функции, необходимые для реализации логики программы */

public void initial_set()
{/* функция, выполняющаяся при загрузге программы */

}

public void next_action()
{/* обработка нажатия "Next"*/

/*это пример */
System.out.println("Next !");
set_processor_flag("C",true);
set_processor_flag("o",true);
set_processor_flag("s",true);
set_processor_flag("z",true);
set_processor_flag("t",true);
set_processor_flag("i",true);
set_processor_flag("u",true);

set_co_processor_flag("s",true);
set_co_processor_flag("I",true);
set_co_processor_flag("z",true);
set_co_processor_flag("n",true);
set_co_processor_flag("e",true);
set_co_processor_flag("b",true);
set_co_processor_flag("P",true);

set_register("FR0","!!!!!!!");
set_register("PCR","Value");
set_register("RG0","Value");
set_register("ITP","Value");
set_register("FPF","Value");
set_register("SR0","Value");

set_memory_cell_value(0,"1x000");
set_memory_cell_value(5,"2x000");

set_instructions_cell_value(1,"09302Xff");
set_instructions_cell_value(3,"09302Xff");

set_tlb_cell_value(3,"09302fseff");
set_tlb_cell_value(4,"0fse2Xff");
/* */
}

public void reset_action()
{ /* обработка нажатия "Reset"*/

System.out.println("Reset !");
reset_memory();
reset_loaded_instructions();
reset_tlb();
reset_processor_flags();
reset_co_processor_flags();
reset_universal_registers();
reset_co_processor_registers();
reset_system_registers();
}

public void set_processor_flag(String flag_name,boolean state)
{ /* функция устанавливает соответствующий флаг процессора:
C,O,S,Z,T,I,U -
в состояние 0 (state==false)
или в состояние 1 (state==true)
*/
object.processor_flags.set_flag(flag_name, state);
}

public void set_co_processor_flag(String flag_name,boolean state)
{/* функция устанавливает соответствующий флаг сопроцессора:
S,I,Z,N,E,B,P -
в состояние 0 (state==false)
или в состояние 1 (state==true)
*/

object.co_processor_flags.set_flag(flag_name, state);
}

public void set_register(String register_name,String value)
{ // функция устанавливает соответствующий регистр процессора, сопроцессора,
// или универсальный регистр
object.co_processor_registers.set_value(register_name, value);
object.universal_registers.set_value(register_name, value);
object.system_registers1.set_value(register_name, value);
object.system_registers2.set_value(register_name, value);
object.system_registers3.set_value(register_name, value);
}

public void set_memory_cell_value(int number,String value)
{ // функция устанавливает значение ячейки списка Memory
// number - номер ячейки
object.memory.set_value(number, value);
}

public void set_instructions_cell_value(int number,String value)
{// функция устанавливает значение ячейки списка Instructions
object.instructions.set_value(number, value);
}

public void set_tlb_cell_value(int number,String value)
{// функция устанавливает значение ячейки списка TLB
object.tlb.set_value(number, value);
}

public void reset_memory()
{
object.memory.initial_set();
}

public void reset_loaded_instructions()
{
object.instructions.initial_set();
}

public void reset_tlb()
{
object.tlb.initial_set();
}

public void reset_universal_registers()
{
object.universal_registers.reset_all();
}

public void reset_co_processor_registers()
{
object.co_processor_registers.reset_all();
}

public void reset_system_registers()
{
object.system_registers1.reset_all();
object.system_registers2.reset_all();
object.system_registers3.reset_all();
}

public void reset_processor_flags()
{
object.processor_flags.reset_all();
}

public void reset_co_processor_flags()
{
object.co_processor_flags.reset_all();
}


/* далее функции - необходимые для внутренних целей */
public External_Functions(Main_Frame frame)
{
object = frame;
initial_set();
}

public void get_text_from_file()
{

try {
// Reading from text file
String buffer="";

BufferedReader input = new BufferedReader(new FileReader(Main_Frame.OPENED_FILE));

while ((buffer = input.readLine()) != null)
{TEXT_FROM_FILE+=buffer+"\n";}

input.close();

} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

}

}
Соседние файлы в папке CPU