Compare commits
8
Commits
3353b8436c
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fb097a0c49 | ||
|
|
3ee3a7e300 | ||
|
|
b2810fa062 | ||
|
|
c9f9121477 | ||
|
|
91ef70fe4e | ||
|
|
69bf418f43 | ||
|
|
540f0dff58 | ||
|
|
17668e2c3c |
No files matched your search
@@ -0,0 +1,36 @@
|
|||||||
|
name: Build and Test
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
pull_request:
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
container:
|
||||||
|
image: catthehacker/ubuntu:act-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Setup JDK
|
||||||
|
uses: actions/setup-java@v6
|
||||||
|
with:
|
||||||
|
distribution: temurin
|
||||||
|
java-version: '21'
|
||||||
|
#cache: maven
|
||||||
|
|
||||||
|
- name: Install Maven
|
||||||
|
run: apt-get update && apt-get install -y maven
|
||||||
|
|
||||||
|
- name: Test and package
|
||||||
|
run: mvn -B verify
|
||||||
|
|
||||||
|
- name: Upload jar
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: package
|
||||||
|
path: target/*.jar
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
name: Release
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
tags:
|
||||||
|
- 'v*'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
release:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
container:
|
||||||
|
image: catthehacker/ubuntu:act-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Setup JDK
|
||||||
|
uses: actions/setup-java@v6
|
||||||
|
with:
|
||||||
|
distribution: temurin
|
||||||
|
java-version: '21'
|
||||||
|
|
||||||
|
- name: Install Maven
|
||||||
|
run: apt-get update && apt-get install -y maven
|
||||||
|
|
||||||
|
- name: Package
|
||||||
|
run: mvn -B verify
|
||||||
|
|
||||||
|
- name: Create release
|
||||||
|
uses: https://gitea.com/actions/gitea-release-action@v1
|
||||||
|
with:
|
||||||
|
files: |-
|
||||||
|
target/symon*.jar
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
kSYMON - A 6502 System Simulator
|
kSYMON - A 6502 System Simulator
|
||||||
===============================
|
===============================
|
||||||
|
|
||||||
**Version:** 1.5.1k
|
**Version:** 1.5.1.1k
|
||||||
|
|
||||||
**Last Updated:** 24 September, 2026
|
**Last Updated:** 24 September, 2026
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
<groupId>com.loomcom.symon</groupId>
|
<groupId>com.loomcom.symon</groupId>
|
||||||
<artifactId>symon</artifactId>
|
<artifactId>symon</artifactId>
|
||||||
<packaging>jar</packaging>
|
<packaging>jar</packaging>
|
||||||
<version>1.5.1k</version>
|
<version>1.5.1.1k</version>
|
||||||
<name>symon</name>
|
<name>symon</name>
|
||||||
<url>https://git.loomcom.com/seth/symon</url>
|
<url>https://git.loomcom.com/seth/symon</url>
|
||||||
<properties>
|
<properties>
|
||||||
|
|||||||
@@ -86,6 +86,9 @@ public class Main {
|
|||||||
case "beneater":
|
case "beneater":
|
||||||
machineClass = BenEaterMachine.class;
|
machineClass = BenEaterMachine.class;
|
||||||
break;
|
break;
|
||||||
|
case "mike42":
|
||||||
|
machineClass = MichaelBillingtonMachine.class;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
logger.error("Could not start Symon. Unknown machine type {}", machine);
|
logger.error("Could not start Symon. Unknown machine type {}", machine);
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -23,6 +23,7 @@
|
|||||||
|
|
||||||
package com.loomcom.symon.ui;
|
package com.loomcom.symon.ui;
|
||||||
|
|
||||||
|
import com.formdev.flatlaf.util.UIScale;
|
||||||
import com.loomcom.symon.Breakpoints;
|
import com.loomcom.symon.Breakpoints;
|
||||||
import com.loomcom.symon.util.Utils;
|
import com.loomcom.symon.util.Utils;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
@@ -40,7 +41,7 @@ public class BreakpointsWindow extends JFrame {
|
|||||||
|
|
||||||
private static final Logger logger = LoggerFactory.getLogger(BreakpointsWindow.class);
|
private static final Logger logger = LoggerFactory.getLogger(BreakpointsWindow.class);
|
||||||
|
|
||||||
private static final Dimension FRAME_SIZE = new Dimension(240, 280);
|
private static final Dimension FRAME_SIZE = UIScale.scale(new Dimension(240, 280));
|
||||||
private static final String EMPTY_STRING = "";
|
private static final String EMPTY_STRING = "";
|
||||||
|
|
||||||
private final JFrame mainWindow;
|
private final JFrame mainWindow;
|
||||||
|
|||||||
@@ -23,6 +23,7 @@
|
|||||||
|
|
||||||
package com.loomcom.symon.ui;
|
package com.loomcom.symon.ui;
|
||||||
|
|
||||||
|
import com.formdev.flatlaf.util.UIScale;
|
||||||
import com.loomcom.symon.Bus;
|
import com.loomcom.symon.Bus;
|
||||||
import com.loomcom.symon.exceptions.MemoryAccessException;
|
import com.loomcom.symon.exceptions.MemoryAccessException;
|
||||||
import com.loomcom.symon.util.Utils;
|
import com.loomcom.symon.util.Utils;
|
||||||
@@ -55,15 +56,15 @@ public class MemoryWindow extends JFrame implements ActionListener {
|
|||||||
private JButton previousPageButton;
|
private JButton previousPageButton;
|
||||||
private JButton nextPageButton;
|
private JButton nextPageButton;
|
||||||
|
|
||||||
private static final Dimension MINIMUM_SIZE = new Dimension(320, 600);
|
private static final Dimension MINIMUM_SIZE = UIScale.scale(new Dimension(400, 600));
|
||||||
|
|
||||||
// The width of column 0 (address), in pixels
|
// The width of column 0 (address), in pixels
|
||||||
private static final int ADDR_COL_WIDTH = 48;
|
private static final int ADDR_COL_WIDTH = UIScale.scale(64);
|
||||||
|
|
||||||
private static final int HEX_COL_WIDTH = 32;
|
private static final int HEX_COL_WIDTH = UIScale.scale(32);
|
||||||
|
|
||||||
// The width of the ASCII cells, in pixels
|
// The width of the ASCII cells, in pixels
|
||||||
private static final int ASCII_COL_WIDTH = 8;
|
private static final int ASCII_COL_WIDTH = UIScale.scale(15);
|
||||||
|
|
||||||
// The start/end columns of the ASCII view
|
// The start/end columns of the ASCII view
|
||||||
private static final int ASCII_COL_START = 9;
|
private static final int ASCII_COL_START = 9;
|
||||||
|
|||||||
@@ -24,6 +24,7 @@
|
|||||||
|
|
||||||
package com.loomcom.symon.ui;
|
package com.loomcom.symon.ui;
|
||||||
|
|
||||||
|
import com.formdev.flatlaf.util.UIScale;
|
||||||
import com.loomcom.symon.CpuState;
|
import com.loomcom.symon.CpuState;
|
||||||
import com.loomcom.symon.util.FifoRingBuffer;
|
import com.loomcom.symon.util.FifoRingBuffer;
|
||||||
|
|
||||||
@@ -39,8 +40,8 @@ public class TraceLog extends JFrame {
|
|||||||
private final FifoRingBuffer<CpuState> traceLog;
|
private final FifoRingBuffer<CpuState> traceLog;
|
||||||
private final JTextArea traceLogTextArea;
|
private final JTextArea traceLogTextArea;
|
||||||
|
|
||||||
private static final Dimension MIN_SIZE = new Dimension(320, 200);
|
private static final Dimension MIN_SIZE = UIScale.scale(new Dimension(320, 200));
|
||||||
private static final Dimension PREFERRED_SIZE = new Dimension(640, 480);
|
private static final Dimension PREFERRED_SIZE = UIScale.scale(new Dimension(640, 480));
|
||||||
private static final int MAX_LOG_LENGTH = 50000;
|
private static final int MAX_LOG_LENGTH = 50000;
|
||||||
|
|
||||||
public TraceLog() {
|
public TraceLog() {
|
||||||
@@ -53,7 +54,7 @@ public class TraceLog extends JFrame {
|
|||||||
setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
|
setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
|
||||||
|
|
||||||
traceLogTextArea = new JTextArea();
|
traceLogTextArea = new JTextArea();
|
||||||
traceLogTextArea.setFont(new Font(Font.MONOSPACED, Font.BOLD, 12));
|
traceLogTextArea.setFont(new Font(Font.MONOSPACED, Font.BOLD, UIScale.scale(12)));
|
||||||
traceLogTextArea.setEditable(false);
|
traceLogTextArea.setEditable(false);
|
||||||
|
|
||||||
JScrollPane scrollableView = new JScrollPane(traceLogTextArea);
|
JScrollPane scrollableView = new JScrollPane(traceLogTextArea);
|
||||||
|
|||||||
@@ -132,7 +132,9 @@ public final class Ui {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static void applyDetectedUiScale() {
|
private static void applyDetectedUiScale() {
|
||||||
Double rawScale = X11ResourceReader.readXftDpiScale(); // ex: 1.5, 2.0, 2.5...
|
Double rawScale = null;
|
||||||
|
|
||||||
|
if (SystemInfo.isLinux) rawScale = X11ResourceReader.readXftDpiScale(); // ex: 1.5, 2.0, 2.5...
|
||||||
|
|
||||||
if (rawScale != null && rawScale > 1.0) {
|
if (rawScale != null && rawScale > 1.0) {
|
||||||
// flatlaf.uiScale aceita frações — mantém a precisão original
|
// flatlaf.uiScale aceita frações — mantém a precisão original
|
||||||
|
|||||||
Reference in new issue
Block a user