Добавил:
Medi
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Всем Арх ВС , пацаны! / КУрсачи Архитектура (2) / хз кто 2007г / kurs / CPU / External_Functions
.javaimport 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