{"id":38488704,"url":"https://github.com/gerph/riscos-joystick-parallel","last_synced_at":"2026-01-17T05:39:41.766Z","repository":{"id":128876829,"uuid":"434941626","full_name":"gerph/riscos-joystick-parallel","owner":"gerph","description":"A RISC OS driver for a parallel port joystick for Atari style 9-pin joysticks for the A5000","archived":false,"fork":false,"pushed_at":"2026-01-11T01:13:31.000Z","size":15,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-01-11T09:18:06.945Z","etag":null,"topics":["riscos","riscos-ci"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gerph.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2021-12-04T15:43:45.000Z","updated_at":"2026-01-11T01:13:14.000Z","dependencies_parsed_at":"2023-04-29T18:33:00.662Z","dependency_job_id":null,"html_url":"https://github.com/gerph/riscos-joystick-parallel","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/gerph/riscos-joystick-parallel","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gerph%2Friscos-joystick-parallel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gerph%2Friscos-joystick-parallel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gerph%2Friscos-joystick-parallel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gerph%2Friscos-joystick-parallel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gerph","download_url":"https://codeload.github.com/gerph/riscos-joystick-parallel/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gerph%2Friscos-joystick-parallel/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28500597,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T04:31:57.058Z","status":"ssl_error","status_checked_at":"2026-01-17T04:31:45.816Z","response_time":85,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["riscos","riscos-ci"],"created_at":"2026-01-17T05:39:41.692Z","updated_at":"2026-01-17T05:39:41.750Z","avatar_url":"https://github.com/gerph.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Parallel Port Joystick\n\nThis repository provides a simple driver for a 9-pin joystick that can\nbe connected to a parallel port. I built this for the A5000 so that I\ncould play Elite with the same joystick I'd used on the BBC.\n\nThe module provides only the 8bit interface, but as a switched joystick,\nthis is all that is necessary.\n\n## Building the driver\n\nThe driver builds automatically on pushes using the RISC OS Build service.\n\nTo manually build the module, push the code to the server using the `riscos-build-online` tool. For example:\n\n```\ncurl -s -L -o riscos-build-online https://github.com/gerph/robuild-client/releases/download/v0.05/riscos-build-online \u0026\u0026 chmod +x riscos-build-online\n\nzip -q9r /tmp/source-archive.zip * .robuild.yaml\n\n./riscos-build-online -i /tmp/source-archive.zip -a off -t 60 -o archive\n```\n\nThis will produce a binary called `archive,a91` which is a RISC OS zip archive containing the module.\n\n## Constructing the \"Interface\"\n\nThis is not really an interface, just a one-to-one relationship for the\nconnectors.\n\nYou require a 9-pin joystick like this :\n\n```\n1 2 3 4 5\n 6 7 8 9\n```\n\nand a printer lead. The printer lead must have the printer end removed so\nthat all the wires are accessable.\n\nYou may need to open the computer end to note the colours of the leads so\nthat you can connect the correct wire to each hole.\n\nAt the computer end the first wire on my lead is brown, then red, orange,\npink. The wires are labelled (with my colours) :\n\n| Pin | Colour          | Name           | Direction\n| --- | --------------- | -------------- | ---------\n| 1   | Brown           | Strobe         | I/O\n| 2   | Red             | D0             | I/O\n| 3   | Orange          | D1             | I/O\n| 4   | Pink            | D2             | I/O\n| 5   | Yellow          | D3             | I/O\n| 6   | Dark Green      | D4             | I/O\n| 7   | Cyan            | D5             | I/O\n| 8   | Blue            | D6             | I/O\n| 9   | Blue (Stripe)   | D7             | I/O\n| 10  | Purple          | Ack            | I\n| 11  | Grey            | Busy           | I\n| 12  | White           | Paper Error    | I\n| 13  | Black           | Select         | I\n| 14  | Brown (Stripe)  | Auto feed      | O\n| 15  | Red (Stripe)    | Error          | I\n| 16  | Orange (Stripe) | Reset          | O\n| 17  | Green (Stripe)  | Select In      | O\n| 18  | Black (Stripe)  | Ground         | N/A\n\nDirections relative to computer.\n\nConnect the following :\n\n| Computer  | 9-pin\n| --------- | ------\n|    2      |   2\n|    3      |   3\n|    4      |   4\n|    5      |   5\n|    16     |   7\n|    6      |   9\n\nSo, if you have the same lead as me the lead should read (left to right) :\n\n* Nothing, Red, Orange, Pink, Yellow\n* Nothing, Orange (Stripe), Nothing, Green\n\nAnd connect 12, 13, and 15 to 14 in the Computer lead. The reason for this is\nto allow some simple testing of the parallel port to see if the Joystick is\nconnected or not. What should happen is that when the AutoFeed line is\ntoggled, so should the PaperError, Select, and Error return lines be toggled.\n\nI have used bits D0-D4 to mark up, down, left, right and fire, and used Reset\nto provide the power for the joystick. Therefore, reset must always be kept\nhigh. As the parallel port retains settings and the joystick never clears set\nbits after each read the joystick should be cleared. To be exact, the value\nread will be that of the directions moved /since the last clear/ and it is\npossible that all directions could be set. To alleviate this the read code\nmight be placed on an interrupt, but I'm not bothered, as most games read the\njoystick regularly.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgerph%2Friscos-joystick-parallel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgerph%2Friscos-joystick-parallel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgerph%2Friscos-joystick-parallel/lists"}