Ajout de...ouverture/fermeture de scénario, (des)activation des menus, fenêtre de code, titre des sections
This commit is contained in:
parent
fa39166f5e
commit
e1fff75fc1
163
ia86.cpp
163
ia86.cpp
@ -107,6 +107,7 @@ void ScenarioWindow::click()
|
|||||||
void ScenarioWindow::Load(std::vector<Level> levels)
|
void ScenarioWindow::Load(std::vector<Level> levels)
|
||||||
{
|
{
|
||||||
vector<std::string> items;
|
vector<std::string> items;
|
||||||
|
listview.clear();
|
||||||
for(size_t i=0; i < levels.size(); i++)
|
for(size_t i=0; i < levels.size(); i++)
|
||||||
{
|
{
|
||||||
//((Menu*)this->getParent())->tolog(".");
|
//((Menu*)this->getParent())->tolog(".");
|
||||||
@ -204,6 +205,72 @@ void InstructionWindow::initLayout()
|
|||||||
}
|
}
|
||||||
|
|
||||||
void InstructionWindow::adjustSize()
|
void InstructionWindow::adjustSize()
|
||||||
|
{
|
||||||
|
finalcut::FDialog::adjustSize();
|
||||||
|
listview.setGeometry (FPoint{1, 2}, FSize(getWidth(), getHeight() - 1));
|
||||||
|
}
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------
|
||||||
|
// Classe CodeWindow
|
||||||
|
//----------------------------------------------------------------------
|
||||||
|
|
||||||
|
CodeWindow::CodeWindow (finalcut::FWidget* parent)
|
||||||
|
: finalcut::FDialog{parent}
|
||||||
|
{
|
||||||
|
|
||||||
|
listview.ignorePadding();
|
||||||
|
listview.addColumn ("Num");
|
||||||
|
listview.addColumn ("Titre");
|
||||||
|
listview.addColumn ("Adresse");
|
||||||
|
listview.addColumn ("Taille");
|
||||||
|
listview.addColumn ("Source");
|
||||||
|
listview.addColumn ("Assemblé");
|
||||||
|
listview.addColumn ("Chargé");
|
||||||
|
listview.hideSortIndicator(true);
|
||||||
|
listview.setFocus();
|
||||||
|
}
|
||||||
|
|
||||||
|
std::vector<std::array<std::string, 7>> CodeWindow::get()
|
||||||
|
{
|
||||||
|
return content;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CodeWindow::clear()
|
||||||
|
{
|
||||||
|
listview.clear();
|
||||||
|
listview.redraw();
|
||||||
|
}
|
||||||
|
|
||||||
|
int CodeWindow::getindex()
|
||||||
|
{
|
||||||
|
return listview.getindex();
|
||||||
|
}
|
||||||
|
|
||||||
|
int CodeWindow::getsize()
|
||||||
|
{
|
||||||
|
return listview.getCount();
|
||||||
|
}
|
||||||
|
|
||||||
|
void CodeWindow::set(std::vector<std::array<std::string, 7>> src)
|
||||||
|
{
|
||||||
|
content=src;
|
||||||
|
listview.clear();
|
||||||
|
for (const auto& place : content)
|
||||||
|
{
|
||||||
|
const finalcut::FStringList line (place.begin(), place.end());
|
||||||
|
listview.insert (line);
|
||||||
|
}
|
||||||
|
listview.redraw();
|
||||||
|
}
|
||||||
|
|
||||||
|
void CodeWindow::initLayout()
|
||||||
|
{
|
||||||
|
listview.setGeometry (FPoint{1, 2}, FSize{getWidth(), getHeight() - 1});
|
||||||
|
setMinimumSize (FSize{51, 6});
|
||||||
|
FDialog::initLayout();
|
||||||
|
}
|
||||||
|
|
||||||
|
void CodeWindow::adjustSize()
|
||||||
{
|
{
|
||||||
finalcut::FDialog::adjustSize();
|
finalcut::FDialog::adjustSize();
|
||||||
listview.setGeometry (FPoint{1, 2}, FSize(getWidth(), getHeight() - 1));
|
listview.setGeometry (FPoint{1, 2}, FSize(getWidth(), getHeight() - 1));
|
||||||
@ -412,7 +479,6 @@ std::vector<Code> Assembler::MultiAssemble(std::string source,uint32_t address)
|
|||||||
Code *code=new Code;
|
Code *code=new Code;
|
||||||
bool begin=true;
|
bool begin=true;
|
||||||
int org=address;
|
int org=address;
|
||||||
std::string name="/";
|
|
||||||
code->address=org;
|
code->address=org;
|
||||||
while (std::getline(stream, line))
|
while (std::getline(stream, line))
|
||||||
{
|
{
|
||||||
@ -428,8 +494,6 @@ std::vector<Code> Assembler::MultiAssemble(std::string source,uint32_t address)
|
|||||||
mcode.push_back(*code);
|
mcode.push_back(*code);
|
||||||
code=new Code;
|
code=new Code;
|
||||||
code->address=org;
|
code->address=org;
|
||||||
code->name=name;
|
|
||||||
name="/";
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (line.find(".title") != std::string::npos)
|
else if (line.find(".title") != std::string::npos)
|
||||||
@ -437,7 +501,7 @@ std::vector<Code> Assembler::MultiAssemble(std::string source,uint32_t address)
|
|||||||
std::smatch match;
|
std::smatch match;
|
||||||
if(std::regex_search(line, match, regex_name))
|
if(std::regex_search(line, match, regex_name))
|
||||||
{
|
{
|
||||||
name=match.str(1);
|
code->name=match.str(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -703,7 +767,7 @@ void VMEngine::Close()
|
|||||||
|
|
||||||
void VMEngine::Halt()
|
void VMEngine::Halt()
|
||||||
{
|
{
|
||||||
if (executed)
|
if (executed && debugnow)
|
||||||
widget->tolog("VM IA86 - arret...................................[ INFO ]");
|
widget->tolog("VM IA86 - arret...................................[ INFO ]");
|
||||||
executed=false;
|
executed=false;
|
||||||
}
|
}
|
||||||
@ -1211,8 +1275,8 @@ void VMEngine::Run(bool astep, bool acall, uint64_t timeout)
|
|||||||
throw Error("VM IA86 - execution...............................[ERREUR]");
|
throw Error("VM IA86 - execution...............................[ERREUR]");
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (!executed)
|
if (!executed && debugnow)
|
||||||
widget->tolog("VM IA86 - execution...............................[ INFO ]");
|
widget->tolog("VM IA86 - execution...............................[ INFO ]");
|
||||||
executed="true";
|
executed="true";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1286,7 +1350,8 @@ void Menu::initWindows()
|
|||||||
|
|
||||||
void Menu::AdjustWindows()
|
void Menu::AdjustWindows()
|
||||||
{
|
{
|
||||||
//this->setGeometry ( FPoint { 63, 45 }, FSize{60, 11} );
|
this->setGeometry ( FPoint { 63, 45 }, FSize{60, 11} );
|
||||||
|
codes.setGeometry ( FPoint { 63, 45 }, FSize{60, 11} );
|
||||||
edit.setGeometry ( FPoint { 01, 17 }, FSize{39, 27} );
|
edit.setGeometry ( FPoint { 01, 17 }, FSize{39, 27} );
|
||||||
view.setGeometry ( FPoint { 01, 45 }, FSize{60, 11} );
|
view.setGeometry ( FPoint { 01, 45 }, FSize{60, 11} );
|
||||||
regs.setGeometry ( FPoint { 01, 01 }, FSize{40, 15} );
|
regs.setGeometry ( FPoint { 01, 01 }, FSize{40, 15} );
|
||||||
@ -1298,7 +1363,7 @@ void Menu::AdjustWindows()
|
|||||||
debug.setGeometry ( FPoint { 42, 17 }, FSize{60, 27} );
|
debug.setGeometry ( FPoint { 42, 17 }, FSize{60, 27} );
|
||||||
scenar.setGeometry ( FPoint { 187, 01 }, FSize{25, 55} );
|
scenar.setGeometry ( FPoint { 187, 01 }, FSize{25, 55} );
|
||||||
info.setGeometry (FPoint { 55, 25 }, FSize{50, 14});
|
info.setGeometry (FPoint { 55, 25 }, FSize{50, 14});
|
||||||
//this->show();
|
this->show();
|
||||||
info.hide();
|
info.hide();
|
||||||
flags.hide();
|
flags.hide();
|
||||||
stack.hide();
|
stack.hide();
|
||||||
@ -1306,6 +1371,7 @@ void Menu::AdjustWindows()
|
|||||||
screen.hide();
|
screen.hide();
|
||||||
if (scenario.loaded)
|
if (scenario.loaded)
|
||||||
{
|
{
|
||||||
|
codes.show();
|
||||||
info.show();
|
info.show();
|
||||||
edit.show();
|
edit.show();
|
||||||
view.show();
|
view.show();
|
||||||
@ -1321,11 +1387,18 @@ void Menu::AdjustWindows()
|
|||||||
mem.show();
|
mem.show();
|
||||||
if (level.rights > 6)
|
if (level.rights > 6)
|
||||||
screen.show();
|
screen.show();
|
||||||
/*Options.setEnable();
|
New.setEnable();
|
||||||
Tools.setEnable();
|
Open.setEnable();
|
||||||
Window.setEnable();
|
Save.setEnable();
|
||||||
Debug.setEnable();
|
Close.setEnable();
|
||||||
Breakpoint.setEnable(); */
|
Assemble.setEnable();
|
||||||
|
Run.setEnable();
|
||||||
|
End.setEnable();
|
||||||
|
TraceInto.setEnable();
|
||||||
|
StepOver.setEnable();
|
||||||
|
AddBp.setEnable();
|
||||||
|
ClearBp.setEnable();
|
||||||
|
ClearAllBp.setEnable();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -1335,11 +1408,18 @@ void Menu::AdjustWindows()
|
|||||||
tuto.hide();
|
tuto.hide();
|
||||||
debug.hide();
|
debug.hide();
|
||||||
scenar.hide();
|
scenar.hide();
|
||||||
/*Options.setDisable();
|
New.setDisable();
|
||||||
Tools.setDisable();
|
Open.setDisable();
|
||||||
Window.setDisable();
|
Save.setDisable();
|
||||||
Debug.setDisable();
|
Close.setDisable();
|
||||||
Breakpoint.setDisable(); */
|
Assemble.setDisable();
|
||||||
|
Run.setDisable();
|
||||||
|
End.setDisable();
|
||||||
|
TraceInto.setDisable();
|
||||||
|
StepOver.setDisable();
|
||||||
|
AddBp.setDisable();
|
||||||
|
ClearBp.setDisable();
|
||||||
|
ClearAllBp.setDisable();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1352,6 +1432,7 @@ void Menu::initMenus()
|
|||||||
Window.setStatusbarMessage ("Fenêtres en cours d'exécution");
|
Window.setStatusbarMessage ("Fenêtres en cours d'exécution");
|
||||||
Help.setStatusbarMessage ("Aide et informations IA86");
|
Help.setStatusbarMessage ("Aide et informations IA86");
|
||||||
Line2.setSeparator();
|
Line2.setSeparator();
|
||||||
|
Line3.setSeparator();
|
||||||
New.addAccelerator (FKey::Meta_n);
|
New.addAccelerator (FKey::Meta_n);
|
||||||
New.setStatusbarMessage ("Debuter une nouvelle partie");
|
New.setStatusbarMessage ("Debuter une nouvelle partie");
|
||||||
Quit.addAccelerator (FKey::Meta_x);
|
Quit.addAccelerator (FKey::Meta_x);
|
||||||
@ -1408,6 +1489,12 @@ void Menu::initMenusCallBack()
|
|||||||
&finalcut::FApplication::cb_exitApp,
|
&finalcut::FApplication::cb_exitApp,
|
||||||
this
|
this
|
||||||
);
|
);
|
||||||
|
About.addCallback
|
||||||
|
(
|
||||||
|
"clicked",
|
||||||
|
this,
|
||||||
|
&Menu::about
|
||||||
|
);
|
||||||
Assemble.addCallback
|
Assemble.addCallback
|
||||||
(
|
(
|
||||||
"clicked",
|
"clicked",
|
||||||
@ -1498,6 +1585,18 @@ void Menu::initMenusCallBack()
|
|||||||
this,
|
this,
|
||||||
&Menu::showInstr
|
&Menu::showInstr
|
||||||
);
|
);
|
||||||
|
OpenScenar.addCallback
|
||||||
|
(
|
||||||
|
"clicked",
|
||||||
|
this,
|
||||||
|
&Menu::openscenar
|
||||||
|
);
|
||||||
|
CloseScenar.addCallback
|
||||||
|
(
|
||||||
|
"clicked",
|
||||||
|
this,
|
||||||
|
&Menu::closescenar
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Menu::initMisc()
|
void Menu::initMisc()
|
||||||
@ -1558,6 +1657,7 @@ void Menu::loadScenario(std::string file)
|
|||||||
strStream << inFile.rdbuf();
|
strStream << inFile.rdbuf();
|
||||||
std::string json=strStream.str();
|
std::string json=strStream.str();
|
||||||
std::istringstream json_data(json);
|
std::istringstream json_data(json);
|
||||||
|
scenario.levels.clear();
|
||||||
struct_mapping::map_json_to_struct(scenario, json_data);
|
struct_mapping::map_json_to_struct(scenario, json_data);
|
||||||
if (scenario.levels.size()>0)
|
if (scenario.levels.size()>0)
|
||||||
{
|
{
|
||||||
@ -1605,6 +1705,7 @@ void Menu::end()
|
|||||||
void Menu::compile()
|
void Menu::compile()
|
||||||
{
|
{
|
||||||
vm.Configure(&level.init,edit.get());
|
vm.Configure(&level.init,edit.get());
|
||||||
|
codes.set(vm.getCode());
|
||||||
ClearScreen();
|
ClearScreen();
|
||||||
showInstr();
|
showInstr();
|
||||||
}
|
}
|
||||||
@ -1615,6 +1716,24 @@ void Menu::tolog(std::string str)
|
|||||||
this->Log.scrollBy (0, 10);
|
this->Log.scrollBy (0, 10);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Menu::openscenar()
|
||||||
|
{
|
||||||
|
finalcut::FString file{};
|
||||||
|
file = finalcut::FFileDialog::fileOpenChooser (this);
|
||||||
|
if ( file.isEmpty() )
|
||||||
|
return;
|
||||||
|
else
|
||||||
|
loadScenario(file.c_str());
|
||||||
|
}
|
||||||
|
|
||||||
|
void Menu::closescenar()
|
||||||
|
{
|
||||||
|
scenario.loaded=false;
|
||||||
|
|
||||||
|
level.title="";
|
||||||
|
closeLevel();
|
||||||
|
}
|
||||||
|
|
||||||
void Menu::about()
|
void Menu::about()
|
||||||
{
|
{
|
||||||
this->hide();
|
this->hide();
|
||||||
@ -1629,9 +1748,9 @@ void Menu::about()
|
|||||||
debug.hide();
|
debug.hide();
|
||||||
scenar.hide();
|
scenar.hide();
|
||||||
info.show();
|
info.show();
|
||||||
info.redraw();
|
finalcut::FFocusEvent event (finalcut::Event::ChildFocusIn);
|
||||||
//((finalcut::FApplication*)this->getParent())->sendQueuedEvents();
|
((finalcut::FApplication*)this->getParent())->queueEvent(&info, &event);
|
||||||
sleep(3);
|
usleep(5000000);
|
||||||
AdjustWindows();
|
AdjustWindows();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
62
ia86.h
62
ia86.h
@ -187,6 +187,32 @@ class ScenarioWindow final : public finalcut::FDialog
|
|||||||
finalcut::FListView listview{this};
|
finalcut::FListView listview{this};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class CodeWindow final : public finalcut::FDialog
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
// Constructor
|
||||||
|
explicit CodeWindow (finalcut::FWidget* = nullptr);
|
||||||
|
// Disable copy constructor
|
||||||
|
CodeWindow (const CodeWindow&) = delete;
|
||||||
|
// Destructor
|
||||||
|
~CodeWindow() override = default;
|
||||||
|
// Disable copy assignment operator (=)
|
||||||
|
CodeWindow& operator = (const CodeWindow&) = delete;
|
||||||
|
// Method
|
||||||
|
std::vector<std::array<std::string, 7>> get();
|
||||||
|
void set(std::vector<std::array<std::string, 7>> src);
|
||||||
|
void clear();
|
||||||
|
int getindex();
|
||||||
|
int getsize();
|
||||||
|
private:
|
||||||
|
// Method
|
||||||
|
std::vector<std::array<std::string, 7>> content;
|
||||||
|
void initLayout() override;
|
||||||
|
void adjustSize() override;
|
||||||
|
// Data members
|
||||||
|
finalcut::FListView listview{this};
|
||||||
|
};
|
||||||
|
|
||||||
class InstructionWindow final : public finalcut::FDialog
|
class InstructionWindow final : public finalcut::FDialog
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@ -390,6 +416,8 @@ class Menu final : public finalcut::FDialog
|
|||||||
void ClearScreen();
|
void ClearScreen();
|
||||||
void AdjustWindows();
|
void AdjustWindows();
|
||||||
void initWindows();
|
void initWindows();
|
||||||
|
void openscenar();
|
||||||
|
void closescenar();
|
||||||
void initLayout() override;
|
void initLayout() override;
|
||||||
// Event handler
|
// Event handler
|
||||||
void onClose (finalcut::FCloseEvent*) override;
|
void onClose (finalcut::FCloseEvent*) override;
|
||||||
@ -400,8 +428,30 @@ class Menu final : public finalcut::FDialog
|
|||||||
finalcut::FMenuBar Menubar{this};
|
finalcut::FMenuBar Menubar{this};
|
||||||
finalcut::FMenu Game{"&Partie", &Menubar};
|
finalcut::FMenu Game{"&Partie", &Menubar};
|
||||||
finalcut::FMenuItem New{"&Nouvelle partie", &Game};
|
finalcut::FMenuItem New{"&Nouvelle partie", &Game};
|
||||||
|
finalcut::FMenuItem Open{"&Ouvrir une partie", &Game};
|
||||||
|
finalcut::FMenuItem Save{"&Sauver la partie", &Game};
|
||||||
|
finalcut::FMenuItem Close{"&Fermer une partie", &Game};
|
||||||
finalcut::FMenuItem Line2{&Game};
|
finalcut::FMenuItem Line2{&Game};
|
||||||
|
finalcut::FMenuItem OpenScenar{"&Ouvrir un scénario", &Game};
|
||||||
|
finalcut::FMenuItem CloseScenar{"&Fermer un scénario", &Game};
|
||||||
|
finalcut::FMenuItem Line3{&Game};
|
||||||
finalcut::FMenuItem Quit{"&Quitter", &Game};
|
finalcut::FMenuItem Quit{"&Quitter", &Game};
|
||||||
|
finalcut::FMenu Views{"&vues", &Menubar};
|
||||||
|
finalcut::FRadioMenuItem Rearange1{"&Scénarios", &Views};
|
||||||
|
finalcut::FRadioMenuItem Rearange3{"&Objectifs", &Views};
|
||||||
|
finalcut::FRadioMenuItem Rearange{"&Deboguage", &Views};
|
||||||
|
finalcut::FRadioMenuItem Rearange2{"&Données", &Views};
|
||||||
|
finalcut::FMenu Tools{"&Outils", &Menubar};
|
||||||
|
finalcut::FMenuItem Assemble{"&Assembler", &Tools};
|
||||||
|
finalcut::FMenu Debug{"&Exécution", &Menubar};
|
||||||
|
finalcut::FMenuItem Run{"&Exécuter", &Debug};
|
||||||
|
finalcut::FMenuItem End{"&Terminer", &Debug};
|
||||||
|
finalcut::FMenuItem TraceInto{"Pas à pas &détaillé", &Debug};
|
||||||
|
finalcut::FMenuItem StepOver{"&Pas à pas", &Debug};
|
||||||
|
finalcut::FMenu Breakpoint{"&Point d'arrêt", &Menubar};
|
||||||
|
finalcut::FMenuItem AddBp{"&Ajouter", &Breakpoint};
|
||||||
|
finalcut::FMenuItem ClearBp{"&Supprimer", &Breakpoint};
|
||||||
|
finalcut::FMenuItem ClearAllBp{"&Tout supprimer", &Breakpoint};
|
||||||
finalcut::FMenu Options{"&Options", &Menubar};
|
finalcut::FMenu Options{"&Options", &Menubar};
|
||||||
finalcut::FMenu Memory{"&Visualisateur Mémoire", &Options};
|
finalcut::FMenu Memory{"&Visualisateur Mémoire", &Options};
|
||||||
finalcut::FRadioMenuItem Ds_000{"DS:0000", &Memory};
|
finalcut::FRadioMenuItem Ds_000{"DS:0000", &Memory};
|
||||||
@ -414,17 +464,6 @@ class Menu final : public finalcut::FDialog
|
|||||||
finalcut::FMenu Code{"&Syntaxe", &Options};
|
finalcut::FMenu Code{"&Syntaxe", &Options};
|
||||||
finalcut::FCheckMenuItem AsmAtt{"Assembleur AT&T", &Code};
|
finalcut::FCheckMenuItem AsmAtt{"Assembleur AT&T", &Code};
|
||||||
finalcut::FCheckMenuItem UnasmAtt{"Désassembleur AT&T", &Code};
|
finalcut::FCheckMenuItem UnasmAtt{"Désassembleur AT&T", &Code};
|
||||||
finalcut::FMenu Tools{"&Outils", &Menubar};
|
|
||||||
finalcut::FMenuItem Assemble{"&Assembler", &Tools};
|
|
||||||
finalcut::FMenuItem Rearange{"&Ordonne les fenêtres", &Tools};
|
|
||||||
finalcut::FMenu Debug{"&Déboguage", &Menubar};
|
|
||||||
finalcut::FMenuItem Run{"&Exécuter", &Debug};
|
|
||||||
finalcut::FMenuItem End{"&Terminer", &Debug};
|
|
||||||
finalcut::FMenuItem TraceInto{"Pas à pas &détaillé", &Debug};
|
|
||||||
finalcut::FMenuItem StepOver{"&Pas à pas", &Debug};
|
|
||||||
finalcut::FMenu Breakpoint{"&Point d'arrêt", &Menubar};
|
|
||||||
finalcut::FMenuItem AddBp{"&Ajouter", &Breakpoint};
|
|
||||||
finalcut::FMenuItem ClearBp{"&Tout supprimer", &Breakpoint};
|
|
||||||
finalcut::FDialogListMenu Window{"&Fenêtres", &Menubar};
|
finalcut::FDialogListMenu Window{"&Fenêtres", &Menubar};
|
||||||
finalcut::FMenu Help{"&Aide", &Menubar};
|
finalcut::FMenu Help{"&Aide", &Menubar};
|
||||||
finalcut::FMenuItem About{"&A propos", &Help};
|
finalcut::FMenuItem About{"&A propos", &Help};
|
||||||
@ -433,6 +472,7 @@ class Menu final : public finalcut::FDialog
|
|||||||
TextWindow info{this};
|
TextWindow info{this};
|
||||||
TextWindow view{this};
|
TextWindow view{this};
|
||||||
InstructionWindow debug{this};
|
InstructionWindow debug{this};
|
||||||
|
CodeWindow codes{this};
|
||||||
TextWindow regs{this};
|
TextWindow regs{this};
|
||||||
TextWindow flags{this};
|
TextWindow flags{this};
|
||||||
TextWindow stack{this};
|
TextWindow stack{this};
|
||||||
|
@ -8,6 +8,7 @@
|
|||||||
"niveau_tutoriel" : "Ceci vous...",
|
"niveau_tutoriel" : "Ceci vous...",
|
||||||
"niveau_code" : "mov ax,0x545
|
"niveau_code" : "mov ax,0x545
|
||||||
inc dx
|
inc dx
|
||||||
|
.title test
|
||||||
mov esi,0x44440234
|
mov esi,0x44440234
|
||||||
syscall
|
syscall
|
||||||
mov ax,0x9000
|
mov ax,0x9000
|
||||||
@ -23,6 +24,7 @@ jnz go
|
|||||||
hlt
|
hlt
|
||||||
jmp 0x14D
|
jmp 0x14D
|
||||||
.org 0x8D
|
.org 0x8D
|
||||||
|
.title next
|
||||||
mov es,ax
|
mov es,ax
|
||||||
.org 0x14D
|
.org 0x14D
|
||||||
mov es,ax
|
mov es,ax
|
||||||
|
3
start.sh
3
start.sh
@ -3,7 +3,7 @@ X=$(xrandr --current | grep '*' | uniq | awk '{print $1}' | cut -d 'x' -f1)
|
|||||||
Y=$(xrandr --current | grep '*' | uniq | awk '{print $1}' | cut -d 'x' -f2)
|
Y=$(xrandr --current | grep '*' | uniq | awk '{print $1}' | cut -d 'x' -f2)
|
||||||
KITTY=$(kitty -v|grep created)
|
KITTY=$(kitty -v|grep created)
|
||||||
if [ "${KITTY}" != "" ]; then
|
if [ "${KITTY}" != "" ]; then
|
||||||
echo "Kitty installé"
|
echo "Utilisation de Kitty..."
|
||||||
if [ ${X} -ge 1920 ]; then
|
if [ ${X} -ge 1920 ]; then
|
||||||
kitty --start-as fullscreen ./ia86 $1
|
kitty --start-as fullscreen ./ia86 $1
|
||||||
exit
|
exit
|
||||||
@ -22,4 +22,5 @@ elif [ ${X} -ge 1280 ]; then
|
|||||||
else
|
else
|
||||||
SIZE=6
|
SIZE=6
|
||||||
fi
|
fi
|
||||||
|
echo "Utilisation de xTerm..."
|
||||||
xterm -fullscreen -fa monaco -fs ${SIZE} -bg black -fg green -e "sleep 0.4;./ia86 $1"
|
xterm -fullscreen -fa monaco -fs ${SIZE} -bg black -fg green -e "sleep 0.4;./ia86 $1"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user