{"id":19684266,"url":"https://github.com/elliotwutingfeng/commodoreeffpassphrase","last_synced_at":"2026-02-04T04:37:28.518Z","repository":{"id":200190976,"uuid":"614686112","full_name":"elliotwutingfeng/CommodoreEFFPassphrase","owner":"elliotwutingfeng","description":"Generate memorable EFF Dice-Generated Passphrases in Commodore BASIC.","archived":false,"fork":false,"pushed_at":"2023-10-14T19:02:27.000Z","size":358,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-02-27T08:07:02.191Z","etag":null,"topics":["8-bit","authentication","c64","cbm-basic","commander-x16","commodore-128","commodore-64","correct-horse-battery-staple","diceware","home-computer","microsoft-basic","password","pet","petscii","retrocomputing","security","vic-20","vice","xkcd"],"latest_commit_sha":null,"homepage":"","language":"BASIC","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/elliotwutingfeng.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-03-16T05:19:16.000Z","updated_at":"2024-10-06T14:07:10.000Z","dependencies_parsed_at":"2023-10-16T02:46:00.804Z","dependency_job_id":null,"html_url":"https://github.com/elliotwutingfeng/CommodoreEFFPassphrase","commit_stats":null,"previous_names":["elliotwutingfeng/commodoreeffpassphrase"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/elliotwutingfeng/CommodoreEFFPassphrase","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elliotwutingfeng%2FCommodoreEFFPassphrase","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elliotwutingfeng%2FCommodoreEFFPassphrase/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elliotwutingfeng%2FCommodoreEFFPassphrase/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elliotwutingfeng%2FCommodoreEFFPassphrase/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/elliotwutingfeng","download_url":"https://codeload.github.com/elliotwutingfeng/CommodoreEFFPassphrase/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elliotwutingfeng%2FCommodoreEFFPassphrase/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263322799,"owners_count":23448714,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["8-bit","authentication","c64","cbm-basic","commander-x16","commodore-128","commodore-64","correct-horse-battery-staple","diceware","home-computer","microsoft-basic","password","pet","petscii","retrocomputing","security","vic-20","vice","xkcd"],"created_at":"2024-11-11T18:17:19.998Z","updated_at":"2026-02-04T04:37:28.465Z","avatar_url":"https://github.com/elliotwutingfeng.png","language":"BASIC","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Commodore EFF Passphrase\n\n[![Commodore BASIC](https://img.shields.io/badge/Commodore_BASIC-1E2A4E?style=for-the-badge\u0026logo=commodore\u0026logoColor=white)](https://en.wikipedia.org/wiki/Commodore_BASIC)\n\n[![GitHub license](https://img.shields.io/badge/LICENSE-BSD--3--CLAUSE-GREEN?style=for-the-badge)](LICENSE)\n\nGenerate memorable [EFF Dice-Generated Passphrases](https://www.eff.org/dice) in [Commodore BASIC](https://en.wikipedia.org/wiki/Commodore_BASIC).\n\nWorks on the [Commodore 64](https://en.wikipedia.org/wiki/Commodore_64), [Creative Micro Designs SuperCPU64](https://en.wikipedia.org/wiki/SuperCPU), [Commodore 128](https://en.wikipedia.org/wiki/Commodore_128), [Commodore CBM-II](https://en.wikipedia.org/wiki/Commodore_CBM-II), [Commodore PET](https://en.wikipedia.org/wiki/Commodore_PET), [Commodore Plus/4](https://en.wikipedia.org/wiki/Commodore_Plus/4), [Commodore VIC-20](https://en.wikipedia.org/wiki/Commodore_VIC-20), and [Commander X16](https://commanderx16.com).\n\nWritten for the [VICE Emulator](https://vice-emu.sourceforge.io) and [Commander X16 Emulator](https://github.com/X16Community/x16-emulator).\n\nUses the [EFF short wordlist v2](https://eff.org/files/2016/09/08/eff_short_wordlist_2_0.txt).\n\n![demo](demo.gif)\n\n## Supported devices\n\n| Device (emulator command(s))                  | Emulator               | BASIC Version | Program File                         |\n|-----------------------------------------------|------------------------|---------------|--------------------------------------|\n| Commodore 64 (`x64` or `x64sc` or `x64dtv`)   | VICE                   | V2.0          | [bin/c64.prg](bin/c64.prg)           |\n| Creative Micro Designs SuperCPU64 (`xscpu64`) | VICE                   | V2.0          | [bin/c64.prg](bin/c64.prg)           |\n| Commodore 128 (`x128`)                        | VICE                   | V7.0          | [bin/c128.prg](bin/c128.prg)         |\n| Commodore CBM-II P500 (`xcbm5x0`)             | VICE                   | V4.0          | [bin/cbm5x0.prg](bin/cbm5x0.prg)     |\n| Commodore CBM-II (`xcbm2`)                    | VICE                   | V4.0          | [bin/cbm2_pet.prg](bin/cbm2_pet.prg) |\n| Commodore PET (`xpet`)                        | VICE                   | V4.0          | [bin/cbm2_pet.prg](bin/cbm2_pet.prg) |\n| Commodore Plus/4 (`xplus4`)                   | VICE                   | V3.5          | [bin/plus4.prg](bin/plus4.prg)       |\n| Commodore VIC-20 (`xvic`)                     | VICE                   | V2.0          | [bin/vic20.prg](bin/vic20.prg)       |\n| Commander X16 (`x16emu`)                      | Commander X16 Emulator | V2.0          | [bin/x16.prg](bin/x16.prg)           |\n\n## Warning\n\n- This project is a recreational proof-of-concept to demonstrate how high-entropy passphrases may be generated in Commodore BASIC.\n- Random number generators used by Commodore home computers are **not** cryptographically secure.\n- If you need dice-generated passphrases for critical applications, follow the directions provided by the [Electronic Frontier Foundation](https://www.eff.org/dice).\n\n## Requirements\n\n- [VICE Emulator](https://vice-emu.sourceforge.io) or [Commander X16 Emulator](https://github.com/X16Community/x16-emulator)\n- Optional: Python 2/3 for generating BASIC code.\n- Optional: [petcat](https://vice-emu.sourceforge.io/vice_16.html) for compiling BASIC code.\n\n## Usage\n\n### VICE Emulator\n\n#### Additional setup for VIC-20 (`xvic`)\n\nSkip this step if you are not using the VIC-20 (`xvic`).\n\nCommodore VIC-20 requires memory expansion before the program can be loaded into the machine.\n\nIn VICE, go to\n\n- **Preferences** \u0026rarr; **Settings**\n- **Machine** \u0026rarr; **Model**\n- **Memory expansions** \u0026rarr; **Common configurations** \u0026rarr; **All (block0/1/2/3/5)**\n\nThen perform a hard reset\n\n- **File** \u0026rarr; **Reset** \u0026rarr; **Hard reset**\n\n#### Run in VICE Emulator\n\nIf you are using the VIC-20 (`xvic`), ensure that you have completed the aforementioned additional setup before proceeding.\n\nIn VICE, go to\n\n- **File** \u0026rarr; **Smart attach ...**\n- Choose the appropriate `.prg` program file from this repository. See [Supported Devices](#supported-devices).\n- **Autostart**\n- Enter number of words to generate (3-20)\n\n### Commander X16 Emulator\n\nIn the terminal, run the following\n\n#### Linux/macOS\n\n```bash\nx16emu -run -prg bin/x16.prg\n```\n\n#### Windows\n\n```powershell\nx16emu.exe -run -prg bin\\x16.prg\n```\n\n## Development\n\n### Generate BASIC code and compile to PRG format\n\n```bash\nmake build\n```\n\n## Acknowledgements\n\nGOTO with calculated expressions hack for Commodore 64 by [Frithjof Dau](https://lemon64.com/forum/viewtopic.php?t=56869), published on DATA WELT magazine issue 4/85.\n\n## Useful links\n\n- \u003chttps://commodore.ca\u003e\n- \u003chttps://lemon64.com\u003e\n- \u003chttps://c64-wiki.com\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felliotwutingfeng%2Fcommodoreeffpassphrase","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Felliotwutingfeng%2Fcommodoreeffpassphrase","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felliotwutingfeng%2Fcommodoreeffpassphrase/lists"}