Code Monkey home page Code Monkey logo

jace's People

Contributors

badvision avatar dependabot[bot] avatar michaelangel007 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

jace's Issues

Sound timing issues

Mockingboard sound causes the main thread to stall ever so slightly at the moment. Sound generation needs a complete rewrite in general.

User interface

As a user, it would be ideal to have a non-intrusive user interface that helped me access the emulator's actions but didn't get in my way when using it.

NTSC Color adjustment

I would like to adjust the display as if it were an analogue screen with controls for:

  • Tint
  • Color
  • Brightness
  • Contrast
  • Sharpness

Other features needed for this:

  • User interface modal (replaces ctrl-shift-g toggle)
  • Toggles for other features
  • Color selection for monochrome mode
  • Live redraw of screen

[FIX] MIDI device without receivers

Please add 3 lines in PassportMidiInterface.java for ignore MIDI device without receivers.

In Java, several MIDI devices are recognized as multiple devices with the same name only as receivers or transmitters. Ignoring devices without receivers can avoid problems.

public void resume() {
    if (isRunning() && midiOut != null) {
        return;
    }
    try {
        MidiDevice selectedDevice = MidiSystem.getSynthesizer();
        MidiDevice.Info[] devices = MidiSystem.getMidiDeviceInfo();
        if (devices.length == 0) {
            System.out.println("No MIDI devices found");
        } else {
            for (MidiDevice.Info dev : devices) {
  •               if (MidiSystem.getMidiDevice(dev).getMaxReceivers() == 0) {
    
  •                   continue;
    
  •               }
                  System.out.println("MIDI Device found: " + dev);
                  if ((preferredMidiDevice.getValue() == null && dev.getName().contains("Java Sound") && dev instanceof Synthesizer) ||
                          preferredMidiDevice.getValue().equalsIgnoreCase(dev.getName())
                      ) {
                      selectedDevice = MidiSystem.getMidiDevice(dev);
                      break;
                  }
              }
          }
          if (selectedDevice != null) {
              System.out.println("Selected MIDI device: " + selectedDevice.getDeviceInfo().getName());
              selectedDevice.open();
              midiOut = selectedDevice.getReceiver();
              super.resume();
          }
      } catch (MidiUnavailableException ex) {
          System.out.println("Could not open MIDI synthesizer");
          Logger.getLogger(PassportMidiInterface.class.getName()).log(Level.SEVERE, null, ex);
      }
    
    }

Can't mount .DSK image from command line.

NOT a happy camper with the new versions.

I'm not sure if something is going on with my Java, but each new version is getting worse and worse for startup time (pressing Shift-Ctrl-C takes 3 seconds before anything of the menus are displayed, expanding on "Computer" takes 5 seconds when both used to be instantaneous), Drag-n-Drop .DSK file onto the window isn't working at all, the DISK icon isn't displayed at started, and I can't even mount DSK from the command line:

java -jar target/Jace.jar  -computer.s6card disk -s6.d1 ntsc.dsk 

Gives this error in the console:

Unable to find property d1 for device s6.  Try one of these :DEFAULT_VOLUME_NUMBER, USE_MAX_SPEED

Thankfully I have a target/jace-2.0-SNAPSHOT-jar-with-dependencies.jar so I'm not completely boned.

VideoDHGR doesn't work for me

Using ...

  • command line -computer.video dhgr or
  • Configuration > Computer (Apple //e) > Renderer with VideoDHGR

... causes this crash:

SEVERE: null
java.lang.IndexOutOfBoundsException: 588, 0
    at com.sun.prism.Image$BaseAccessor.getIndex(Image.java:933)
    at com.sun.prism.Image$BaseAccessor.setArgb(Image.java:978)
    at com.sun.prism.Image.setArgb(Image.java:647)
    at javafx.scene.image.WritableImage$2.setArgb(WritableImage.java:170)
    at javafx.scene.image.WritableImage$2.setColor(WritableImage.java:181)
    at jace.apple2e.VideoDHGR.showDhgr(VideoDHGR.java:624)
    at jace.apple2e.VideoDHGR.displayHires(VideoDHGR.java:330)
    at jace.apple2e.VideoDHGR$1.displayByte(VideoDHGR.java:87)
    at jace.apple2e.VideoDHGR.displayMixed(VideoDHGR.java:583)
    at jace.apple2e.VideoDHGR.access$400(VideoDHGR.java:43)
    at jace.apple2e.VideoDHGR$13.displayByte(VideoDHGR.java:259)
    at jace.core.Video.draw(Video.java:233)
    at jace.core.Video.tick(Video.java:168)
    at jace.core.Device.doTick(Device.java:89)
    at jace.core.Motherboard.tick(Motherboard.java:94)
    at jace.core.Device.doTick(Device.java:89)
    at jace.core.TimedDevice.lambda$resume$20(TimedDevice.java:94)
    at java.lang.Thread.run(Thread.java:745)

Update the documentation

There are so many features but they're not easy to use or well-documented. Right now the only way to discover some features is to browse the configuration and see the keybindings to various esoteric commands/actions. Isn't there a way to at least list these somewhere?

Jace.jar is not made with build.sh

Running build.sh does not create the jace.jar file necessary to run the emulator. The full error is below:

[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/ide/Program.java:[17,26] package javafx.application does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/ide/Program.java:[18,25] package javafx.concurrent does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/ide/Program.java:[19,28] package javafx.scene.control does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/ide/Program.java:[20,24] package javafx.scene.web does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/ide/Program.java:[21,24] package javafx.scene.web does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/ide/Program.java:[22,27] package netscape.javascript does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/ide/Program.java:[72,5] cannot find symbol
symbol: class JSObject
location: class jace.ide.Program
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/ide/Program.java:[73,5] cannot find symbol
symbol: class WebView
location: class jace.ide.Program
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/ide/Program.java:[108,28] cannot find symbol
symbol: class WebView
location: class jace.ide.Program
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/Utility.java:[41,26] package javafx.application does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/Utility.java:[42,23] package javafx.geometry does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/Utility.java:[43,28] package javafx.scene.control does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/Utility.java:[44,28] package javafx.scene.control does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/Utility.java:[45,28] package javafx.scene.control does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/Utility.java:[46,28] package javafx.scene.control does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/Utility.java:[47,27] package javafx.scene.effect does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/Utility.java:[48,26] package javafx.scene.image does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/Utility.java:[49,26] package javafx.scene.image does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/Utility.java:[50,26] package javafx.scene.paint does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/Utility.java:[168,28] cannot find symbol
symbol: class Image
location: class jace.core.Utility
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/Utility.java:[176,28] cannot find symbol
symbol: class Label
location: class jace.core.Utility
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/library/DiskType.java:[25,26] package javafx.scene.image does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/library/DiskType.java:[44,21] cannot find symbol
symbol: class Image
location: class jace.library.DiskType
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/VideoWriter.java:[21,26] package javafx.scene.image does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/VideoWriter.java:[35,38] cannot find symbol
symbol: class WritableImage
location: class jace.core.VideoWriter
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/state/State.java:[26,26] package javafx.scene.image does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/state/State.java:[44,5] cannot find symbol
symbol: class Image
location: class jace.state.State
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/cheat/MemoryCell.java:[9,28] package javafx.beans.binding does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/cheat/MemoryCell.java:[10,29] package javafx.beans.property does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/cheat/MemoryCell.java:[11,29] package javafx.beans.property does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/cheat/MemoryCell.java:[12,26] package javafx.beans.value does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/cheat/MemoryCell.java:[13,26] package javafx.beans.value does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/cheat/MemoryCell.java:[14,26] package javafx.collections does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/cheat/MemoryCell.java:[15,26] package javafx.collections does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/cheat/MemoryCell.java:[16,26] package javafx.scene.shape does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/cheat/MemoryCell.java:[23,19] cannot find symbol
symbol: class ChangeListener
location: class jace.cheat.MemoryCell
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/cheat/MemoryCell.java:[25,12] cannot find symbol
symbol: class IntegerProperty
location: class jace.cheat.MemoryCell
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/cheat/MemoryCell.java:[26,12] cannot find symbol
symbol: class IntegerProperty
location: class jace.cheat.MemoryCell
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/cheat/MemoryCell.java:[27,12] cannot find symbol
symbol: class IntegerProperty
location: class jace.cheat.MemoryCell
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/cheat/MemoryCell.java:[28,12] cannot find symbol
symbol: class IntegerProperty
location: class jace.cheat.MemoryCell
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/cheat/MemoryCell.java:[29,12] cannot find symbol
symbol: class BooleanBinding
location: class jace.cheat.MemoryCell
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/cheat/MemoryCell.java:[30,12] cannot find symbol
symbol: class ObservableList
location: class jace.cheat.MemoryCell
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/cheat/MemoryCell.java:[31,12] cannot find symbol
symbol: class ObservableList
location: class jace.cheat.MemoryCell
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/cheat/MemoryCell.java:[32,12] cannot find symbol
symbol: class ObservableList
location: class jace.cheat.MemoryCell
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/cheat/MemoryCell.java:[33,12] cannot find symbol
symbol: class ObservableList
location: class jace.cheat.MemoryCell
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/cheat/MemoryCell.java:[34,12] cannot find symbol
symbol: class ObservableList
location: class jace.cheat.MemoryCell
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/cheat/MemoryCell.java:[36,36] cannot find symbol
symbol: class ChangeListener
location: class jace.cheat.MemoryCell
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/cheat/MemoryCell.java:[58,13] cannot find symbol
symbol: class Shape
location: class jace.cheat.MemoryCell
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/cheat/MemoryCell.java:[60,26] cannot find symbol
symbol: class Shape
location: class jace.cheat.MemoryCell
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/cheat/MemoryCell.java:[64,12] cannot find symbol
symbol: class Shape
location: class jace.cheat.MemoryCell
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/Device.java:[27,29] package javafx.beans.property does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/Device.java:[28,29] package javafx.beans.property does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/Computer.java:[27,29] package javafx.beans.property does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/Computer.java:[28,29] package javafx.beans.property does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/Computer.java:[29,26] package javafx.beans.value does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/Device.java:[61,19] cannot find symbol
symbol: class BooleanProperty
location: class jace.core.Device
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/Device.java:[90,12] cannot find symbol
symbol: class BooleanProperty
location: class jace.core.Device
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/Video.java:[25,26] package javafx.scene.image does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/Video.java:[26,26] package javafx.scene.image does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/Keyboard.java:[40,20] package javafx.event does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/Keyboard.java:[41,26] package javafx.scene.input does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/Keyboard.java:[42,26] package javafx.scene.input does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/Keyboard.java:[43,20] package javafx.stage does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/state/StateManager.java:[41,26] package javafx.scene.image does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/state/StateManager.java:[42,26] package javafx.scene.image does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/state/StateManager.java:[43,26] package javafx.scene.input does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/Computer.java:[51,19] cannot find symbol
symbol: class BooleanProperty
location: class jace.core.Computer
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/Computer.java:[70,5] cannot find symbol
symbol: class ChangeListener
location: class jace.core.Computer
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/Computer.java:[78,12] cannot find symbol
symbol: class BooleanProperty
location: class jace.core.Computer
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/Video.java:[40,5] cannot find symbol
symbol: class WritableImage
location: class jace.core.Video
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/Video.java:[41,5] cannot find symbol
symbol: class WritableImage
location: class jace.core.Video
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/Video.java:[155,38] cannot find symbol
symbol: class WritableImage
location: class jace.core.Video
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/Video.java:[298,12] cannot find symbol
symbol: class Image
location: class jace.core.Video
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/Keyboard.java:[99,24] cannot find symbol
symbol: class KeyCode
location: class jace.core.Keyboard
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/KeyHandler.java:[21,26] package javafx.scene.input does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/KeyHandler.java:[22,26] package javafx.scene.input does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/KeyHandler.java:[23,26] package javafx.scene.input does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/KeyHandler.java:[24,26] package javafx.scene.input does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/Keyboard.java:[172,45] cannot find symbol
symbol: class KeyEvent
location: class jace.core.Keyboard
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/Keyboard.java:[187,43] cannot find symbol
symbol: class KeyEvent
location: class jace.core.Keyboard
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/Keyboard.java:[202,12] cannot find symbol
symbol: class EventHandler
location: class jace.core.Keyboard
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/Keyboard.java:[202,25] cannot find symbol
symbol: class KeyEvent
location: class jace.core.Keyboard
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/Keyboard.java:[212,28] cannot find symbol
symbol: class KeyEvent
location: class jace.core.Keyboard
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/Keyboard.java:[303,29] cannot find symbol
symbol: class KeyEvent
location: class jace.core.Keyboard
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/state/StateManager.java:[350,13] cannot find symbol
symbol: class Image
location: class jace.state.StateManager
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/apple2e/Speaker.java:[38,20] package javafx.stage does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/KeyHandler.java:[37,12] cannot find symbol
symbol: class KeyCombination
location: class jace.core.KeyHandler
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/KeyHandler.java:[39,12] cannot find symbol
symbol: class KeyCode
location: class jace.core.KeyHandler
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/KeyHandler.java:[49,23] cannot find symbol
symbol: class KeyCodeCombination
location: class jace.core.KeyHandler
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/KeyHandler.java:[53,23] cannot find symbol
symbol: class KeyCombination
location: class jace.core.KeyHandler
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/KeyHandler.java:[60,26] cannot find symbol
symbol: class KeyEvent
location: class jace.core.KeyHandler
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/KeyHandler.java:[68,41] cannot find symbol
symbol: class KeyEvent
location: class jace.core.KeyHandler
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/KeyHandler.java:[70,43] cannot find symbol
symbol: class KeyEvent
location: class jace.core.KeyHandler
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/hardware/DiskIIDrive.java:[34,28] package javafx.scene.control does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/library/MediaConsumer.java:[24,28] package javafx.scene.control does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/hardware/DiskIIDrive.java:[234,22] cannot find symbol
symbol: class Label
location: class jace.hardware.DiskIIDrive
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/hardware/DiskIIDrive.java:[237,21] cannot find symbol
symbol: class Label
location: class jace.hardware.DiskIIDrive
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/hardware/DiskIIDrive.java:[242,34] cannot find symbol
symbol: class Label
location: class jace.hardware.DiskIIDrive
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/library/MediaConsumer.java:[31,21] cannot find symbol
symbol: class Label
location: interface jace.library.MediaConsumer
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/library/MediaConsumer.java:[32,34] cannot find symbol
symbol: class Label
location: interface jace.library.MediaConsumer
[INFO] 100 errors
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 14.896 s
[INFO] Finished at: 2019-12-27T22:43:18+05:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.5:compile (default-compile) on project jace: Compilation failure: Compilation failure:
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/ide/Program.java:[17,26] package javafx.application does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/ide/Program.java:[18,25] package javafx.concurrent does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/ide/Program.java:[19,28] package javafx.scene.control does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/ide/Program.java:[20,24] package javafx.scene.web does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/ide/Program.java:[21,24] package javafx.scene.web does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/ide/Program.java:[22,27] package netscape.javascript does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/ide/Program.java:[72,5] cannot find symbol
[ERROR] symbol: class JSObject
[ERROR] location: class jace.ide.Program
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/ide/Program.java:[73,5] cannot find symbol
[ERROR] symbol: class WebView
[ERROR] location: class jace.ide.Program
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/ide/Program.java:[108,28] cannot find symbol
[ERROR] symbol: class WebView
[ERROR] location: class jace.ide.Program
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/Utility.java:[41,26] package javafx.application does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/Utility.java:[42,23] package javafx.geometry does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/Utility.java:[43,28] package javafx.scene.control does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/Utility.java:[44,28] package javafx.scene.control does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/Utility.java:[45,28] package javafx.scene.control does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/Utility.java:[46,28] package javafx.scene.control does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/Utility.java:[47,27] package javafx.scene.effect does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/Utility.java:[48,26] package javafx.scene.image does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/Utility.java:[49,26] package javafx.scene.image does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/Utility.java:[50,26] package javafx.scene.paint does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/Utility.java:[168,28] cannot find symbol
[ERROR] symbol: class Image
[ERROR] location: class jace.core.Utility
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/Utility.java:[176,28] cannot find symbol
[ERROR] symbol: class Label
[ERROR] location: class jace.core.Utility
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/library/DiskType.java:[25,26] package javafx.scene.image does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/library/DiskType.java:[44,21] cannot find symbol
[ERROR] symbol: class Image
[ERROR] location: class jace.library.DiskType
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/VideoWriter.java:[21,26] package javafx.scene.image does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/VideoWriter.java:[35,38] cannot find symbol
[ERROR] symbol: class WritableImage
[ERROR] location: class jace.core.VideoWriter
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/state/State.java:[26,26] package javafx.scene.image does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/state/State.java:[44,5] cannot find symbol
[ERROR] symbol: class Image
[ERROR] location: class jace.state.State
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/cheat/MemoryCell.java:[9,28] package javafx.beans.binding does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/cheat/MemoryCell.java:[10,29] package javafx.beans.property does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/cheat/MemoryCell.java:[11,29] package javafx.beans.property does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/cheat/MemoryCell.java:[12,26] package javafx.beans.value does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/cheat/MemoryCell.java:[13,26] package javafx.beans.value does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/cheat/MemoryCell.java:[14,26] package javafx.collections does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/cheat/MemoryCell.java:[15,26] package javafx.collections does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/cheat/MemoryCell.java:[16,26] package javafx.scene.shape does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/cheat/MemoryCell.java:[23,19] cannot find symbol
[ERROR] symbol: class ChangeListener
[ERROR] location: class jace.cheat.MemoryCell
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/cheat/MemoryCell.java:[25,12] cannot find symbol
[ERROR] symbol: class IntegerProperty
[ERROR] location: class jace.cheat.MemoryCell
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/cheat/MemoryCell.java:[26,12] cannot find symbol
[ERROR] symbol: class IntegerProperty
[ERROR] location: class jace.cheat.MemoryCell
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/cheat/MemoryCell.java:[27,12] cannot find symbol
[ERROR] symbol: class IntegerProperty
[ERROR] location: class jace.cheat.MemoryCell
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/cheat/MemoryCell.java:[28,12] cannot find symbol
[ERROR] symbol: class IntegerProperty
[ERROR] location: class jace.cheat.MemoryCell
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/cheat/MemoryCell.java:[29,12] cannot find symbol
[ERROR] symbol: class BooleanBinding
[ERROR] location: class jace.cheat.MemoryCell
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/cheat/MemoryCell.java:[30,12] cannot find symbol
[ERROR] symbol: class ObservableList
[ERROR] location: class jace.cheat.MemoryCell
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/cheat/MemoryCell.java:[31,12] cannot find symbol
[ERROR] symbol: class ObservableList
[ERROR] location: class jace.cheat.MemoryCell
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/cheat/MemoryCell.java:[32,12] cannot find symbol
[ERROR] symbol: class ObservableList
[ERROR] location: class jace.cheat.MemoryCell
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/cheat/MemoryCell.java:[33,12] cannot find symbol
[ERROR] symbol: class ObservableList
[ERROR] location: class jace.cheat.MemoryCell
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/cheat/MemoryCell.java:[34,12] cannot find symbol
[ERROR] symbol: class ObservableList
[ERROR] location: class jace.cheat.MemoryCell
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/cheat/MemoryCell.java:[36,36] cannot find symbol
[ERROR] symbol: class ChangeListener
[ERROR] location: class jace.cheat.MemoryCell
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/cheat/MemoryCell.java:[58,13] cannot find symbol
[ERROR] symbol: class Shape
[ERROR] location: class jace.cheat.MemoryCell
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/cheat/MemoryCell.java:[60,26] cannot find symbol
[ERROR] symbol: class Shape
[ERROR] location: class jace.cheat.MemoryCell
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/cheat/MemoryCell.java:[64,12] cannot find symbol
[ERROR] symbol: class Shape
[ERROR] location: class jace.cheat.MemoryCell
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/Device.java:[27,29] package javafx.beans.property does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/Device.java:[28,29] package javafx.beans.property does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/Computer.java:[27,29] package javafx.beans.property does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/Computer.java:[28,29] package javafx.beans.property does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/Computer.java:[29,26] package javafx.beans.value does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/Device.java:[61,19] cannot find symbol
[ERROR] symbol: class BooleanProperty
[ERROR] location: class jace.core.Device
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/Device.java:[90,12] cannot find symbol
[ERROR] symbol: class BooleanProperty
[ERROR] location: class jace.core.Device
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/Video.java:[25,26] package javafx.scene.image does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/Video.java:[26,26] package javafx.scene.image does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/Keyboard.java:[40,20] package javafx.event does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/Keyboard.java:[41,26] package javafx.scene.input does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/Keyboard.java:[42,26] package javafx.scene.input does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/Keyboard.java:[43,20] package javafx.stage does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/state/StateManager.java:[41,26] package javafx.scene.image does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/state/StateManager.java:[42,26] package javafx.scene.image does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/state/StateManager.java:[43,26] package javafx.scene.input does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/Computer.java:[51,19] cannot find symbol
[ERROR] symbol: class BooleanProperty
[ERROR] location: class jace.core.Computer
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/Computer.java:[70,5] cannot find symbol
[ERROR] symbol: class ChangeListener
[ERROR] location: class jace.core.Computer
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/Computer.java:[78,12] cannot find symbol
[ERROR] symbol: class BooleanProperty
[ERROR] location: class jace.core.Computer
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/Video.java:[40,5] cannot find symbol
[ERROR] symbol: class WritableImage
[ERROR] location: class jace.core.Video
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/Video.java:[41,5] cannot find symbol
[ERROR] symbol: class WritableImage
[ERROR] location: class jace.core.Video
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/Video.java:[155,38] cannot find symbol
[ERROR] symbol: class WritableImage
[ERROR] location: class jace.core.Video
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/Video.java:[298,12] cannot find symbol
[ERROR] symbol: class Image
[ERROR] location: class jace.core.Video
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/Keyboard.java:[99,24] cannot find symbol
[ERROR] symbol: class KeyCode
[ERROR] location: class jace.core.Keyboard
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/KeyHandler.java:[21,26] package javafx.scene.input does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/KeyHandler.java:[22,26] package javafx.scene.input does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/KeyHandler.java:[23,26] package javafx.scene.input does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/KeyHandler.java:[24,26] package javafx.scene.input does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/Keyboard.java:[172,45] cannot find symbol
[ERROR] symbol: class KeyEvent
[ERROR] location: class jace.core.Keyboard
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/Keyboard.java:[187,43] cannot find symbol
[ERROR] symbol: class KeyEvent
[ERROR] location: class jace.core.Keyboard
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/Keyboard.java:[202,12] cannot find symbol
[ERROR] symbol: class EventHandler
[ERROR] location: class jace.core.Keyboard
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/Keyboard.java:[202,25] cannot find symbol
[ERROR] symbol: class KeyEvent
[ERROR] location: class jace.core.Keyboard
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/Keyboard.java:[212,28] cannot find symbol
[ERROR] symbol: class KeyEvent
[ERROR] location: class jace.core.Keyboard
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/Keyboard.java:[303,29] cannot find symbol
[ERROR] symbol: class KeyEvent
[ERROR] location: class jace.core.Keyboard
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/state/StateManager.java:[350,13] cannot find symbol
[ERROR] symbol: class Image
[ERROR] location: class jace.state.StateManager
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/apple2e/Speaker.java:[38,20] package javafx.stage does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/KeyHandler.java:[37,12] cannot find symbol
[ERROR] symbol: class KeyCombination
[ERROR] location: class jace.core.KeyHandler
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/KeyHandler.java:[39,12] cannot find symbol
[ERROR] symbol: class KeyCode
[ERROR] location: class jace.core.KeyHandler
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/KeyHandler.java:[49,23] cannot find symbol
[ERROR] symbol: class KeyCodeCombination
[ERROR] location: class jace.core.KeyHandler
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/KeyHandler.java:[53,23] cannot find symbol
[ERROR] symbol: class KeyCombination
[ERROR] location: class jace.core.KeyHandler
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/KeyHandler.java:[60,26] cannot find symbol
[ERROR] symbol: class KeyEvent
[ERROR] location: class jace.core.KeyHandler
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/KeyHandler.java:[68,41] cannot find symbol
[ERROR] symbol: class KeyEvent
[ERROR] location: class jace.core.KeyHandler
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/core/KeyHandler.java:[70,43] cannot find symbol
[ERROR] symbol: class KeyEvent
[ERROR] location: class jace.core.KeyHandler
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/hardware/DiskIIDrive.java:[34,28] package javafx.scene.control does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/library/MediaConsumer.java:[24,28] package javafx.scene.control does not exist
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/hardware/DiskIIDrive.java:[234,22] cannot find symbol
[ERROR] symbol: class Label
[ERROR] location: class jace.hardware.DiskIIDrive
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/hardware/DiskIIDrive.java:[237,21] cannot find symbol
[ERROR] symbol: class Label
[ERROR] location: class jace.hardware.DiskIIDrive
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/hardware/DiskIIDrive.java:[242,34] cannot find symbol
[ERROR] symbol: class Label
[ERROR] location: class jace.hardware.DiskIIDrive
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/library/MediaConsumer.java:[31,21] cannot find symbol
[ERROR] symbol: class Label
[ERROR] location: interface jace.library.MediaConsumer
[ERROR] /Users/caspianahlberg/Desktop/jace-master/src/main/java/jace/library/MediaConsumer.java:[32,34] cannot find symbol
[ERROR] symbol: class Label
[ERROR] location: interface jace.library.MediaConsumer
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
Caspians-MacBook-Air:jace-master caspianahlberg$

Cannot build (no javafx)

JavaFX appears to have been removed from OpenJDK 11 which means jace doesn't build, with errors such as

[ERROR] COMPILATION ERROR : 
[INFO] -------------------------------------------------------------
[ERROR] /home/pi/Downloads/jace/src/main/java/jace/core/Computer.java:[27,29] package javafx.beans.property does not exist
[ERROR] /home/pi/Downloads/jace/src/main/java/jace/core/Computer.java:[28,29] package javafx.beans.property does not exist

I do not have a machine with JDK 8.

What is the recommended build environment for JACE (JDK version, maven version, host OS version)?

First-line of copy/paste causes syntax error on OSX with Ctrl-Shift-V

With text in the system clipboard, pressing Ctrl-Shif-V to paste text in causes a syntax error on OSX.

Repro.:

  1. Start up Jace

  2. Press Ctrl-Delete

  3. Select this text:

    HGR
    CALL-151

  4. Copy it

  5. Switch to Jace

  6. Ctrl-Shift-V

  7. Emulator mangles the input so the first line causes a ?SYNTAX ERROR πŸ‘Ž

Printing support

It would be gosh-darn cool as a user if I could print to a virtual Epson or virtual Imagewriter

How to build from source?

How do you build Jace from source? I have tried to build the current master with mvn package: although the build is successful, apparently the manifest is not added to the jar:

java -jar target/jace-2.0-SNAPSHOT.jar 
no main manifest attribute, in target/jace-2.0-SNAPSHOT.jar

What am I missing?

Uthernet II support

A subset of Uthernet II compatibility should be implemented, allowing uthernet-compatible programs to run under emulation.

Console

As a user, I would like a console to perform actions rather than remember keyboard shortcuts.

This console should also be able to support debugging, log message viewing, and basic emulator control as well as online help.

Fails to start on Fedora 26 with Java 1.8

This is with the latest release:

bill @ hpcompaq6710b ~/Dropbox/lib $ java -version
openjdk version "1.8.0_141"
OpenJDK Runtime Environment (build 1.8.0_141-b16)
OpenJDK 64-Bit Server VM (build 25.141-b16, mixed mode)
bill @ hpcompaq6710b ~/Dropbox/lib $ java -jar jace.jar 
Error: Could not find or load main class jace.JaceApplication
bill @ hpcompaq6710b ~/Dropbox/lib $ 

Video mode switching

It would be helpful to let users toggle video modes using actions. Such actions should include:
Enable/disable Video7 support
Switch between palettes: Color, Text-friendly, Monochrome variations

Add monochrome mode

It would be nice to have monochrome modes, perhaps with varying shades of monochrome (amber/green/white)

Better packaging

The packaging, it sucks. Fix it. As a user I want to download the program and use it, not learn how to build a java program just so I can tell you how much you suck at it. 😜

Can't reset window size (to restore aspect ratio)

  • The main window can be resized which is awesome. πŸ‘
  • One can also hold down the Shift key to maintain the aspect ratio. πŸ‘

The problem is if the window is re-sized and the aspect ratio is lost, I don't see a way to reset the window dimensions back to their default values (to restore aspect ratio). :-( User error or a bug?

State management

As a user I would like to save the emulator's current state, load it again, also have a quick-save/quick-load shortcuts. Also, it would be nifty to have rewind and fast-forward support.

Could not output sound (javax.sound.sampled.LineUnavailableException)

When I run Jace 2.0-Stable in macOS High Sierra, I get the following exception:

Allocated output lines: 0
Getting source line from Port Built-in Microphone, version Unknown Version: PCM_SIGNED 48000.0 Hz, 16 bit, stereo, 4 bytes/frame, big-endian
Aug 04, 2018 3:30:08 PM jace.apple2e.Speaker resume
SEVERE: ERROR: Could not output sound
javax.sound.sampled.LineUnavailableException: Line unsupported: interface SourceDataLine supporting format PCM_SIGNED 48000.0 Hz, 16 bit, stereo, 4 bytes/frame, big-endian
	at jace.core.SoundMixer.getNewLine(SoundMixer.java:186)
	at jace.core.SoundMixer.getLine(SoundMixer.java:152)
	at jace.apple2e.Speaker.resume(Speaker.java:173)
	at jace.apple2e.Speaker.attach(Speaker.java:306)
	at jace.core.Motherboard.reconfigure(Motherboard.java:127)
	at jace.apple2e.Apple2e.reinitMotherboard(Apple2e.java:130)
	at jace.apple2e.Apple2e.<init>(Apple2e.java:112)
	at jace.Emulator.<init>(Emulator.java:50)
	at jace.JaceApplication.start(JaceApplication.java:57)
	at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$9(LauncherImpl.java:919)
	at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runAndWait$11(PlatformImpl.java:449)
	at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$9(PlatformImpl.java:418)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:417)
	at javafx.graphics/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)

Aug 04, 2018 3:30:09 PM jace.apple2e.MOS65C02 reset
WARNING: Reset called, setting PC to (fffc) = fa62

Jace then appears to be running fineβ€”except for sound, of course. Is there any setting that can be tweaked to get sound working, or is this a bug?

Enabling Mousetext doesn't refresh the screen

The text screen isn't being redrawn when mousetext is turned on:
Repro.

CALL-151
FC58G
C00E:1
400:40
C00F:1

The flashing is turned off; but @ should be displayed as Closed-Apple Mouse Text. The font IS active -- the screen just isn't be redrawn to update the old glyphs -- as (re)setting the value shows:

400:40

The same bug happens in 80-col mode to:

C00E:1
C00D:1
400:40
C00F:1

The flash is turned off, but no mouse text is displayed. Requires a manual refresh:

400:40

Verified on my //e.

Configuration issues

Currently, trying to configure the system via the UI is problematic, at least on Ubuntu 17.10 running Sun java 1.8.0_171. After saving the configuration options once, any changes you make in the config window get rolled back if you press save again. Closing and reopening the configuration window lets you save changes once. Then it goes back to rolling back the changes.

Can't BRUN file, cause exception instead.

Pressing Ctrl-Shift-B is supposed to be able to BRUN a binary file.

I'm getting this crash ...

SEVERE: null
java.lang.IllegalArgumentException: argument type mismatch
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at jace.core.Keyboard$1.handleKeyDown(Keyboard.java:131)
    at jace.core.Keyboard.processKeyDownEvents(Keyboard.java:174)
    at jace.core.Keyboard.keyPressed(Keyboard.java:209)
    at jace.core.Keyboard.lambda$getListener$14(Keyboard.java:201)
    at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
    at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
    at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
    at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
    at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
    at javafx.event.Event.fireEvent(Event.java:198)
    at javafx.scene.Scene$KeyHandler.process(Scene.java:3964)
    at javafx.scene.Scene$KeyHandler.access$1800(Scene.java:3910)
    at javafx.scene.Scene.impl_processKeyEvent(Scene.java:2040)
    at javafx.scene.Scene$ScenePeerListener.keyEvent(Scene.java:2501)
    at com.sun.javafx.tk.quantum.GlassViewEventHandler$KeyEventNotification.run(GlassViewEventHandler.java:197)
    at com.sun.javafx.tk.quantum.GlassViewEventHandler$KeyEventNotification.run(GlassViewEventHandler.java:147)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleKeyEvent$353(GlassViewEventHandler.java:228)
    at com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:389)
    at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleKeyEvent(GlassViewEventHandler.java:227)
    at com.sun.glass.ui.View.handleKeyEvent(View.java:546)
    at com.sun.glass.ui.View.notifyKey(View.java:966)

Exception in thread "JavaFX Application Thread" java.lang.NullPointerException
    at jace.core.Keyboard$1.handleKeyDown(Keyboard.java:141)
    at jace.core.Keyboard.processKeyDownEvents(Keyboard.java:174)
    at jace.core.Keyboard.keyPressed(Keyboard.java:209)
    at jace.core.Keyboard.lambda$getListener$14(Keyboard.java:201)
    at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
    at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
    at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
    at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
    at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
    at javafx.event.Event.fireEvent(Event.java:198)
    at javafx.scene.Scene$KeyHandler.process(Scene.java:3964)
    at javafx.scene.Scene$KeyHandler.access$1800(Scene.java:3910)
    at javafx.scene.Scene.impl_processKeyEvent(Scene.java:2040)
    at javafx.scene.Scene$ScenePeerListener.keyEvent(Scene.java:2501)
    at com.sun.javafx.tk.quantum.GlassViewEventHandler$KeyEventNotification.run(GlassViewEventHandler.java:197)
    at com.sun.javafx.tk.quantum.GlassViewEventHandler$KeyEventNotification.run(GlassViewEventHandler.java:147)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleKeyEvent$353(GlassViewEventHandler.java:228)
    at com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:389)
    at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleKeyEvent(GlassViewEventHandler.java:227)
    at com.sun.glass.ui.View.handleKeyEvent(View.java:546)
    at com.sun.glass.ui.View.notifyKey(View.java:966)

6502/65c02 timing

As a power developer, I want to ensure that Jace can match the exact CPU timing of either a 6502 or 65c02 CPU. If any opcode does not use correct timing, compile tests should log the issue. While using the emulator I would like the option to switch between the CPU timing modes.

Using IDE raises exceptions

The IDE in release 2.0b and in the current master does not work in OS X. Specifically, running Jace, pressing Ctrl-Shift-I and then choosing an item from the File menu raises an exception. For example, choosing File > New > Assembly Listing raises the following error:

Exception in thread "JavaFX Application Thread" netscape.javascript.JSException: ReferenceError: Can't find variable: CodeMirror
        at com.sun.webkit.dom.JSObject.fwkMakeException(JSObject.java:128)
        at com.sun.webkit.WebPage.twkExecuteScript(Native Method)
        at com.sun.webkit.WebPage.executeScript(WebPage.java:1439)
        at javafx.scene.web.WebEngine.executeScript(WebEngine.java:982)
        at jace.ide.Program.createEditor(Program.java:137)
        at jace.ide.Program.lambda$initEditor$130(Program.java:119)
        at com.sun.javafx.binding.ExpressionHelper$SingleChange.fireValueChangedEvent(ExpressionHelper.java:182)
        at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:81)
        at javafx.beans.property.ReadOnlyObjectWrapper$ReadOnlyPropertyImpl.fireValueChangedEvent(ReadOnlyObjectWrapper.java:176)
        at javafx.beans.property.ReadOnlyObjectWrapper.fireValueChangedEvent(ReadOnlyObjectWrapper.java:142)
        at javafx.beans.property.ObjectPropertyBase.markInvalid(ObjectPropertyBase.java:112)
        at javafx.beans.property.ObjectPropertyBase.set(ObjectPropertyBase.java:146)
        at javafx.scene.web.WebEngine$LoadWorker.updateState(WebEngine.java:1260)
        at javafx.scene.web.WebEngine$LoadWorker.dispatchLoadEvent(WebEngine.java:1371)
        at javafx.scene.web.WebEngine$LoadWorker.access$1200(WebEngine.java:1253)
        at javafx.scene.web.WebEngine$PageLoadListener.dispatchLoadEvent(WebEngine.java:1240)
        at com.sun.webkit.WebPage.fireLoadEvent(WebPage.java:2400)
        at com.sun.webkit.WebPage.fwkFireLoadEvent(WebPage.java:2244)
        at com.sun.webkit.network.URLLoader.twkDidFinishLoading(Native Method)
        at com.sun.webkit.network.URLLoader.notifyDidFinishLoading(URLLoader.java:838)
        at com.sun.webkit.network.URLLoader.lambda$didFinishLoading$96(URLLoader.java:829)
        at com.sun.javafx.application.PlatformImpl.lambda$null$173(PlatformImpl.java:295)
        at java.security.AccessController.doPrivileged(Native Method)
        at com.sun.javafx.application.PlatformImpl.lambda$runLater$174(PlatformImpl.java:294)
        at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)

In some circumstances (apparently randomly) that results in Jace also hanging. Using OS X 10.11 and Java 1.8.0_66.

Ctrl-C isn't passed into Jace

Repro.:

  1. Start Jace
  2. Press Ctrl-Delete to reset
  3. CALL-151
  4. Press Ctrl-C

Which is supposed to return you from the monitor back to Applesoft, but is ignored. :-(

[Feature Request] configurable MIDI device

Is it possible to make the Passport MIDI card configurable and select something that Java already detects (such as a physical MIDI out port). Currently it seems to be hard wired to use "Gervill" which I think is the internal Java-provided software synthesizer.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.