Skip to content

BlitterStudio/poseidon-usb

Repository files navigation

Poseidon USB Stack

Standalone source extraction of the Poseidon USB stack from the main AROS development tree.

Poseidon was originally written by Chris Hodges. This repository does not reassign that authorship; it preserves the AROS-licensed source provenance, adds standalone AmigaOS 3 build and packaging glue, and tracks what still needs to be ported outside the full AROS build.

Upstream source: https://github.com/aros-development-team/AROS
Imported commit: see upstream/aros.json

Credit And Provenance

  • Chris Hodges is the original Poseidon author and the developer named by the Power2People AROS port and open-source campaign.
  • src/LEGAL records Chris Hodges providing the Poseidon sources and related files in the AROS repository under the AROS Public License on 2009-08-26.
  • The AROS development team and contributors integrated and maintained the public Poseidon source in the AROS tree. This standalone repo is extracted from that AROS-maintained source.
  • The Power2People campaign page records the AROS platform project as completed and describes the AROS Public License release scope: https://power2people.org/projects/poseidon/
  • Trident catalog sources are imported from the AROS translation team repository recorded in upstream/aros.json.
  • Trident's built-in Mason icon list artwork is credited in the imported catalog sources as courtesy of Martin Merz. The current Workbench Trident.info source is imported from the AROS Gorilla icon set.

See CREDITS.md for the human-readable credit list and docs/POWER2PEOPLE-INVENTORY.md for the campaign-to-source inventory.

Current Status

The standalone OS3 build currently produces:

  • generated Poseidon and usbclass SDK files under build/sdk
  • OS3 shell tools under build/os3/C
  • the AROS-integrated ps3eye GUI utility under build/os3/C
  • poseidon.library under build/os3/Libs
  • the Trident preferences GUI under build/os3/Prefs
  • localized Trident catalogs under build/os3/Locale/Catalogs
  • source-backed Workbench icons for Trident and def_PSD.info
  • OS3 resident binaries for 29 imported USB classes under build/os3/Classes/USB, staged as InstallData/Classes/USB/*.class
  • source-backed UMSD and UPAR DOSDriver templates with generated icons under InstallData/Storage/DOSDrivers
  • a source-backed PsdRomTag compatibility helper and generated icon under InstallData/; it requires a compatible external C:PsdLoadModule, whose source is not present in the AROS import
  • a source-backed Poseidon-Install script, Install_English.info, and InstallData.info at the package root
  • an unpacked package tree under build/os3/package/Poseidon
  • an LHA package archive at build/os3/package/Poseidon.lha

The AROS-oriented hardware controller code is retained for provenance and upstream sync, but is not staged in the OS3 package because it depends on AROS HIDD/OOP or hosted libusb.so infrastructure. The linked library and class binaries still need runtime testing against a complete Poseidon setup.

The OS3 support layer now covers the resident startup path used by poseidon.library and the linked .class binaries, including a forward resident rt_EndSkip and explicit-base MUI helper wrappers for class configuration UIs. Those paths are build-verified, but still need real OS3 runtime validation.

The old E3B OS3 hardware drivers, old Extra/ archives, and other material not released as part of the AROS source import are intentionally not included. The historical PsdLoadModule and PsdRestart tools are also not included because their source is not present in the imported AROS tree.

OS3 Docker Build

./build_os3.sh

This uses sacredbanana/amiga-compiler:m68k-amigaos and builds the current OS3 package. Use ./build_os3.sh <target> to run another Make target inside the Docker image, for example:

./build_os3.sh clean
./build_os3.sh classobjects
./build_os3.sh -q os3
./build_os3.sh os3-check

Inside an environment with m68k-amigaos-gcc, m68k-amigaos-strip, sfdc, flexcat, ilbmtoicon, and lha in PATH, the same build can be run without Docker:

make os3
make os3-check

os3-check verifies that the package manifest matches the package tree, all unstripped OS3 binaries have no unresolved symbols, the LHA archive passes an integrity test, OS3-specific class runtime strings are present, and the source-backed Installer artifacts have the expected tooltypes. The GitHub Actions workflow runs this target through the same sacredbanana Docker image.

os3-release-compare is optional and requires a local copy of the old V4.4 release tree. The old binaries are reference material only and are not included in this repo:

OLD_POSEIDON_RELEASE=/path/to/PoseidonV4 ./build_os3.sh os3-release-compare
OLD_POSEIDON_RELEASE=/path/to/PoseidonV4 make os3-release-compare

Known intentional gaps are tracked in tools/os3_release_inventory_policy.json. The generated package intentionally does not include old closed-source E3B hardware drivers, old Extras archives, PsdLoadModule, PsdRestart, PdaTransfer, pdalink.library, VHI binaries, rtl8150eth.class, or usbvideo.class.

Repository Layout

  • src/ contains the imported AROS rom/usb tree.
  • include/ contains the public Poseidon, usbclass, USB, and USB hardware headers imported from AROS compiler/include.
  • support/os3/ contains compatibility glue for the sacredbanana AmigaOS 3 toolchain.
  • support/icons/ contains source-backed icon inputs imported from AROS.
  • tools/conf_to_sfd.py generates Amiga SFD files from AROS .conf function lists.
  • tools/conf_to_libdefs.py generates the AROS genmodule libdefs subset and OS3 class function table metadata used by class builds.
  • tools/aros_sync.py previews and applies relocated future AROS updates.
  • tools/os3_check.py and tools/release_inventory.py provide the OS3 package sanity checks used by local builds and CI.

Documentation Map

  • docs/OS3-HARDWARE-CONTROLLERS.md records why the AROS controller modules are kept source-only for the OS3 package.
  • docs/POWER2PEOPLE-INVENTORY.md records the historical campaign scope and maps it to the current AROS extraction.
  • docs/UPSTREAM-SYNC.md documents how to pull future fixes from AROS while preserving local standalone changes.
  • docs/OS3-RUNTIME-TEST-PLAN.md is the checklist for real OS3 validation.

Upstream AROS Updates

The imported AROS baseline and path mappings are tracked in upstream/aros.json. Use tools/aros_sync.py to preview or apply relocated patches from future AROS commits:

tools/aros_sync.py status --aros-dir ../AROS --fetch --to origin/master
tools/aros_sync.py report --aros-dir ../AROS --to origin/master
tools/aros_sync.py check --aros-dir ../AROS --to origin/master
tools/aros_sync.py apply --aros-dir ../AROS --to origin/master

See docs/UPSTREAM-SYNC.md before applying updates.

License

The imported Poseidon source is provided under the AROS Public License. See LICENSE, src/LEGAL, and the per-file notices in the imported source tree.

About

Standalone Poseidon USB stack extraction from AROS with AmigaOS 3 build packaging

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages