Skip to content

Identify Copperline via manufacturer 5192 + identification board#18

Merged
LinuxJedi merged 1 commit into
mainfrom
identify-board
Jun 21, 2026
Merged

Identify Copperline via manufacturer 5192 + identification board#18
LinuxJedi merged 1 commit into
mainfrom
identify-board

Conversation

@LinuxJedi

Copy link
Copy Markdown
Collaborator

Closes #16.

@shred asked for a way to detect a Copperline environment, ideally via a custom Zorro autoconfig manufacturer/product ID.

The problem

Copperline's built-in boards autoconfigured under manufacturer 2011 (0x07DB), the shared "Prototype"/hacker ID. identify.library matches that ID's product 1 with f_uae_001 and reports it as UAE -- so there was no way to tell it was Copperline.

The change

  • Manufacturer 2011 -> 5192 (0x1448), Copperline's own registered ID (dec0de Consulting, which also makes the real ROMulus board = product 1). Product numbering under it: 2 = identification board, 3 = fast RAM, 4 = Zorro III RAM.
  • New identification board (BoardSpec::copperline_id): a tiny, inert Zorro II board (64K, kept out of the Exec free-memory list, no autoboot) that is always appended last to the autoconfig chain, so guest software can detect the emulator by finding manufacturer 5192 / product 2 (e.g. FindConfigDev(5192, 2)). Added last so the RAM boards keep the base addresses they would get without it.
  • Its autoconfig serial carries the running version, packed major<<16 | minor<<8 | patch, so a tool can report the exact Copperline version, not just the name.
  • New top-level identify = false config key drops the board for a chain with no emulator-identifying board.

identify.library side (for @shred)

Detection is unique on (manufacturer, product) = (5192, 2). The manuf 05192,"dec0de Consulting" block already exists in ID_Database.s; this just needs board 002,"Copperline",MSG_EXP_MISC plus a FindConfigDev(5192,2) branch in do_System (ID_Hardware.s) that sets the emulated flag and returns a new IDSYS_COPPERLINE constant. The serial is optional version reporting.

Verification

  • cargo test (1052 pass, incl. new tests for the board, version packing, and the toggle), cargo clippy, cargo fmt --check all clean.
  • Booted real Kickstart 2.05: both boards autoconfigure -- "fast RAM" @ \$200000, "Copperline" @ \$E90000.

Docs updated: docs/zorro.md (new manufacturer-ID section) and docs/guide/configuration.md (identify option).

🤖 Generated with Claude Code

Copperline's built-in expansion boards autoconfigured under manufacturer
2011 (0x07DB), the shared "Prototype"/hacker ID. identify.library matches
that ID's product 1 with f_uae_001 and reports it as UAE, so there was no
way for guest software to tell it was running under Copperline.

Move the built-in boards to manufacturer 5192 (0x1448), Copperline's own
registered ID (dec0de Consulting, which also makes the real ROMulus board
= product 1). Product numbering: 2 = identification board, 3 = fast RAM,
4 = Zorro III RAM.

Add BoardSpec::copperline_id(): a tiny, inert Zorro II board (64K, kept
out of the free-memory list, no autoboot) that build_zorro_chain always
appends last, so guest software can detect the emulator by finding
manufacturer 5192 / product 2 on the chain (e.g. identify.library calling
FindConfigDev). Its autoconfig serial carries the running version packed
as major<<16 | minor<<8 | patch so a tool can report the exact version.
The new top-level `identify = false` config key drops the board.

Verified on real Kickstart 2.05: both the fast RAM board and the
Copperline board autoconfigure. Docs updated (zorro.md manufacturer-ID
section, configuration.md identify option).

Refs #16
@LinuxJedi
LinuxJedi merged commit eb17ddf into main Jun 21, 2026
4 checks passed
@LinuxJedi
LinuxJedi deleted the identify-board branch June 21, 2026 19:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Hardware-detect Copperline?

1 participant