diff --git a/src/main/java/jace/JaceApplication.java b/src/main/java/jace/JaceApplication.java index 9785e6d..408b5d0 100644 --- a/src/main/java/jace/JaceApplication.java +++ b/src/main/java/jace/JaceApplication.java @@ -8,8 +8,8 @@ package jace; import java.io.IOException; import javafx.application.Application; +import javafx.application.Platform; import javafx.fxml.FXMLLoader; -import javafx.scene.Parent; import javafx.scene.Scene; import javafx.scene.layout.AnchorPane; import javafx.stage.Stage; @@ -46,8 +46,13 @@ public class JaceApplication extends Application { } controller.connectComputer(Emulator.computer); }); + primaryStage.setOnCloseRequest(value -> { + Emulator.computer.deactivate(); + Platform.exit(); + System.exit(0); + }); } - + /** * @param args the command line arguments */ diff --git a/src/main/java/jace/core/Computer.java b/src/main/java/jace/core/Computer.java index 940e1ca..532de05 100644 --- a/src/main/java/jace/core/Computer.java +++ b/src/main/java/jace/core/Computer.java @@ -104,6 +104,12 @@ public abstract class Computer implements Reconfigurable { memory.loadRom(path); } + public void deactivate() { + cpu.suspend(); + motherboard.suspend(); + video.suspend(); + } + @InvokableAction( name = "Cold boot", description = "Process startup sequence from power-up",