summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/layout
diff options
context:
space:
mode:
author Joakim Larsson Edström <joakimlarsson42@gmail.com>2026-01-28 14:10:19 +0100
committer GitHub <noreply@github.com>2026-01-28 14:10:19 +0100
commit6cb0ec64ac8608c4bcf864807495f91c55db3653 (patch)
tree50959ea697bf6ffcfd866d4eff5d0cb63f269c06 /src/emu/layout
parent983cdc585d5cf16cf03ef9eda4b817be47ea9e7d (diff)
Miniforce and CPU1 (#14873)
* bus/vme/sys68k_cpu1: replace layout with tag-based screen references * bus/vme/sys68k_cpu1: functional front panel matching real hardware * bus/vme/sys68k_cpu1: add DB25 serial port connectors to front panel layout * bus/vme/sys68k_cpu1: show connected device type on front panel connectors * bus/vme/sys68k_cpu1: rename RS232 port tags to match front panel labels, wire up P5 --------- Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Diffstat (limited to 'src/emu/layout')
-rw-r--r--src/emu/layout/sys68k_cpu1.lay113
1 files changed, 113 insertions, 0 deletions
diff --git a/src/emu/layout/sys68k_cpu1.lay b/src/emu/layout/sys68k_cpu1.lay
new file mode 100644
index 00000000000..1e5251fc51c
--- /dev/null
+++ b/src/emu/layout/sys68k_cpu1.lay
@@ -0,0 +1,113 @@
+<?xml version="1.0"?>
+<!--
+license:CC0-1.0
+copyright-holders:Joakim Larsson Edstrom
+
+Force Computers SYS68K/CPU-1 front panel layout
+Matches real hardware: RESET and ABORT pushbuttons, HALT LED, P3/P4/P5 connectors
+-->
+<mamelayout version="2">
+
+ <!-- Background colors -->
+ <element name="panel_bg">
+ <rect><color red="0.15" green="0.15" blue="0.15" /></rect>
+ </element>
+ <element name="silver">
+ <rect><color red="0.75" green="0.75" blue="0.75" /></rect>
+ </element>
+
+ <!-- LED element (red, active high) for HALT indicator -->
+ <element name="led_red" defstate="0">
+ <disk state="0"><color red="0.2" green="0.05" blue="0.05" /></disk>
+ <disk state="1"><color red="1.0" green="0.0" blue="0.0" /></disk>
+ </element>
+
+ <!-- Text labels (white on dark) -->
+ <element name="txt_sys68k"><text string="SYS68K"><color red="0.9" green="0.9" blue="0.9" /></text></element>
+ <element name="txt_cpu1"><text string="CPU-1"><color red="0.9" green="0.9" blue="0.9" /></text></element>
+ <element name="txt_reset"><text string="RESET"><color red="0.9" green="0.9" blue="0.9" /></text></element>
+ <element name="txt_abort"><text string="ABORT"><color red="0.9" green="0.9" blue="0.9" /></text></element>
+ <element name="txt_halt"><text string="HALT"><color red="0.9" green="0.9" blue="0.9" /></text></element>
+ <element name="txt_p3"><text string="P3"><color red="0.9" green="0.9" blue="0.9" /></text></element>
+ <element name="txt_p4"><text string="P4"><color red="0.9" green="0.9" blue="0.9" /></text></element>
+ <element name="txt_p5"><text string="P5"><color red="0.9" green="0.9" blue="0.9" /></text></element>
+
+ <!-- DB25 serial port connector (vertical orientation, light housing) -->
+ <element name="db25">
+ <rect><color red="0.70" green="0.70" blue="0.70" /></rect>
+ </element>
+
+ <!-- Connection status indicator (0=none, 1=terminal, 2=null modem, 3=printer) -->
+ <element name="conn_status" defstate="0">
+ <text state="0" string="--"><color red="0.0" green="0.0" blue="0.0" /></text>
+ <text state="1" string="TERMINAL"><color red="0.0" green="0.0" blue="0.0" /></text>
+ <text state="2" string="NULL MODEM"><color red="0.0" green="0.0" blue="0.0" /></text>
+ <text state="3" string="PRINTER"><color red="0.0" green="0.0" blue="0.0" /></text>
+ </element>
+
+ <!-- Button elements (interactive) -->
+ <element name="btn_reset" defstate="0">
+ <rect state="0"><color red="0.25" green="0.25" blue="0.25" /></rect>
+ <rect state="1"><color red="0.40" green="0.40" blue="0.40" /></rect>
+ </element>
+ <element name="btn_abort" defstate="0">
+ <rect state="0"><color red="0.25" green="0.25" blue="0.25" /></rect>
+ <rect state="1"><color red="0.40" green="0.40" blue="0.40" /></rect>
+ </element>
+
+ <!-- Front panel group (reusable across views) -->
+ <group name="panel">
+ <!-- Dark panel background -->
+ <element ref="panel_bg"><bounds x="0" y="0" width="46" height="345" /></element>
+ <!-- Silver accent strip -->
+ <element ref="silver"><bounds x="46" y="0" width="2" height="345" /></element>
+
+ <!-- Title -->
+ <element ref="txt_sys68k"><bounds x="3" y="5" width="40" height="12" /></element>
+ <element ref="txt_cpu1"><bounds x="3" y="18" width="40" height="12" /></element>
+
+ <!-- RESET button (interactive) -->
+ <element ref="btn_reset" inputtag="PANEL" inputmask="0x01"><bounds x="8" y="42" width="30" height="16" /></element>
+ <element ref="txt_reset"><bounds x="8" y="44" width="30" height="12" /></element>
+
+ <!-- ABORT button (interactive) -->
+ <element ref="btn_abort" inputtag="PANEL" inputmask="0x02"><bounds x="8" y="64" width="30" height="16" /></element>
+ <element ref="txt_abort"><bounds x="8" y="66" width="30" height="12" /></element>
+
+ <!-- HALT LED -->
+ <element name="led_halt" ref="led_red"><bounds x="6" y="96" width="8" height="8" /></element>
+ <element ref="txt_halt"><bounds x="16" y="95" width="26" height="10" /></element>
+
+ <!-- P3 serial port connector (Host) -->
+ <element ref="txt_p3"><bounds x="3" y="118" width="18" height="10" /></element>
+ <element ref="db25"><bounds x="10" y="130" width="22" height="50" /></element>
+ <element name="conn_p3" ref="conn_status"><bounds x="10" y="152" width="22" height="5" /></element>
+
+ <!-- P4 serial port connector (Terminal) -->
+ <element ref="txt_p4"><bounds x="3" y="192" width="18" height="10" /></element>
+ <element ref="db25"><bounds x="10" y="204" width="22" height="50" /></element>
+ <element name="conn_p4" ref="conn_status"><bounds x="10" y="227" width="22" height="5" /></element>
+
+ <!-- P5 serial port connector (Remote) -->
+ <element ref="txt_p5"><bounds x="3" y="268" width="18" height="10" /></element>
+ <element ref="db25"><bounds x="10" y="280" width="22" height="50" /></element>
+ <element name="conn_p5" ref="conn_status"><bounds x="10" y="303" width="22" height="5" /></element>
+ </group>
+
+ <!-- Front Panel: standalone panel strip (always available) -->
+ <view name="Front Panel">
+ <group ref="panel"><bounds x="0" y="0" width="48" height="345" /></group>
+ </view>
+
+ <!-- Front Panel with Terminal: panel strip + terminal side by side (dropped if no terminal) -->
+ <view name="Front Panel with Terminal">
+ <group ref="panel"><bounds x="0" y="0" width="48" height="345" /></group>
+ <screen tag="p4:terminal:terminal_screen"><bounds x="52" y="0" width="460" height="345" /></screen>
+ </view>
+
+ <!-- Terminal view: just the terminal screen (dropped if no terminal attached) -->
+ <view name="Terminal">
+ <screen tag="p4:terminal:terminal_screen"><bounds x="0" y="0" width="640" height="480" /></screen>
+ </view>
+
+</mamelayout>