diff --git a/src/main/java/jace/apple2e/Apple2e.java b/src/main/java/jace/apple2e/Apple2e.java index 398f9e7..6e73415 100644 --- a/src/main/java/jace/apple2e/Apple2e.java +++ b/src/main/java/jace/apple2e/Apple2e.java @@ -124,7 +124,8 @@ public class Apple2e extends Computer { if (motherboard != null && motherboard.isRunning()) { motherboard.suspend(); } - motherboard = new Motherboard(this); + motherboard = new Motherboard(this, motherboard); + reconfigure(); motherboard.reconfigure(); } @@ -132,7 +133,6 @@ public class Apple2e extends Computer { public void coldStart() { pause(); reinitMotherboard(); - //getMemory().dump(); for (SoftSwitches s : SoftSwitches.values()) { s.getSwitch().reset(); } @@ -143,10 +143,6 @@ public class Apple2e extends Computer { } reboot(); resume(); - /* - getCpu().resume(); - getVideo().resume(); - */ } public void reboot() { @@ -477,4 +473,8 @@ public class Apple2e extends Computer { public String getShortName() { return "computer"; } + + private void attachMiscDevices() { + throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. + } } \ No newline at end of file diff --git a/src/main/java/jace/core/Device.java b/src/main/java/jace/core/Device.java index 808502e..9990f03 100644 --- a/src/main/java/jace/core/Device.java +++ b/src/main/java/jace/core/Device.java @@ -110,6 +110,7 @@ public abstract class Device implements Reconfigurable { public void resume() { setRun(true); + waitCycles = 0; } public abstract void attach(); diff --git a/src/main/java/jace/core/Motherboard.java b/src/main/java/jace/core/Motherboard.java index 4ac20d9..117d20e 100644 --- a/src/main/java/jace/core/Motherboard.java +++ b/src/main/java/jace/core/Motherboard.java @@ -58,9 +58,14 @@ public class Motherboard extends TimedDevice { /** * Creates a new instance of Motherboard * @param computer + * @param oldMotherboard */ - public Motherboard(Computer computer) { + public Motherboard(Computer computer, Motherboard oldMotherboard) { super(computer); + if (oldMotherboard != null) { + miscDevices.addAll(oldMotherboard.miscDevices); + speaker = oldMotherboard.speaker; + } } @Override diff --git a/src/main/java/jace/hardware/Joystick.java b/src/main/java/jace/hardware/Joystick.java index d7d83bb..35ba81e 100644 --- a/src/main/java/jace/hardware/Joystick.java +++ b/src/main/java/jace/hardware/Joystick.java @@ -197,13 +197,13 @@ public class Joystick extends Device { @Override protected void doEvent(RAMEvent e) { - setRun(true); readJoystick(); xSwitch.setState(true); x = 10 + joyX * 11; ySwitch.setState(true); y = 10 + joyY * 11; e.setNewValue(computer.getVideo().getFloatingBus()); + resume(); } }; diff --git a/src/main/java/jace/tracker/PlaybackEngine.java b/src/main/java/jace/tracker/PlaybackEngine.java index 9404203..0103c39 100644 --- a/src/main/java/jace/tracker/PlaybackEngine.java +++ b/src/main/java/jace/tracker/PlaybackEngine.java @@ -69,7 +69,7 @@ public class PlaybackEngine extends Computer { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } }; - Motherboard motherboard = new Motherboard(dummyComputer); + Motherboard motherboard = new Motherboard(dummyComputer, null); CardMockingboard mockingboard = new CardMockingboard(dummyComputer); public PlaybackEngine() {