Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/elliotwutingfeng/commodoreeffpassphrase
Generate memorable EFF Dice-Generated Passphrases in Commodore BASIC.
https://github.com/elliotwutingfeng/commodoreeffpassphrase
8-bit authentication basic cbm-basic commander-x16 commodore-128 commodore-64 correct-horse-battery-staple diceware hacktoberfest home-computer microsoft-basic password pet petscii retrocomputing security vic-20 vice xkcd
Last synced: 2 days ago
JSON representation
Generate memorable EFF Dice-Generated Passphrases in Commodore BASIC.
- Host: GitHub
- URL: https://github.com/elliotwutingfeng/commodoreeffpassphrase
- Owner: elliotwutingfeng
- License: bsd-3-clause
- Created: 2023-03-16T05:19:16.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-10-14T19:02:27.000Z (about 1 year ago)
- Last Synced: 2023-10-16T02:31:10.709Z (about 1 year ago)
- Topics: 8-bit, authentication, basic, cbm-basic, commander-x16, commodore-128, commodore-64, correct-horse-battery-staple, diceware, hacktoberfest, home-computer, microsoft-basic, password, pet, petscii, retrocomputing, security, vic-20, vice, xkcd
- Language: BASIC
- Homepage:
- Size: 350 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# Commodore EFF Passphrase
[![Commodore BASIC](https://img.shields.io/badge/Commodore_BASIC-1E2A4E?style=for-the-badge&logo=commodore&logoColor=white)](https://en.wikipedia.org/wiki/Commodore_BASIC)
[![GitHub license](https://img.shields.io/badge/LICENSE-BSD--3--CLAUSE-GREEN?style=for-the-badge)](LICENSE)
Generate memorable [EFF Dice-Generated Passphrases](https://www.eff.org/dice) in [Commodore BASIC](https://en.wikipedia.org/wiki/Commodore_BASIC).
Works 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).
Written for the [VICE Emulator](https://vice-emu.sourceforge.io) and [Commander X16 Emulator](https://github.com/X16Community/x16-emulator).
Uses the [EFF short wordlist v2](https://eff.org/files/2016/09/08/eff_short_wordlist_2_0.txt).
![demo](demo.gif)
## Supported devices
| Device (emulator command(s)) | Emulator | BASIC Version | Program File |
|-----------------------------------------------|------------------------|---------------|--------------------------------------|
| Commodore 64 (`x64` or `x64sc` or `x64dtv`) | VICE | V2.0 | [bin/c64.prg](bin/c64.prg) |
| Creative Micro Designs SuperCPU64 (`xscpu64`) | VICE | V2.0 | [bin/c64.prg](bin/c64.prg) |
| Commodore 128 (`x128`) | VICE | V7.0 | [bin/c128.prg](bin/c128.prg) |
| Commodore CBM-II P500 (`xcbm5x0`) | VICE | V4.0 | [bin/cbm5x0.prg](bin/cbm5x0.prg) |
| Commodore CBM-II (`xcbm2`) | VICE | V4.0 | [bin/cbm2_pet.prg](bin/cbm2_pet.prg) |
| Commodore PET (`xpet`) | VICE | V4.0 | [bin/cbm2_pet.prg](bin/cbm2_pet.prg) |
| Commodore Plus/4 (`xplus4`) | VICE | V3.5 | [bin/plus4.prg](bin/plus4.prg) |
| Commodore VIC-20 (`xvic`) | VICE | V2.0 | [bin/vic20.prg](bin/vic20.prg) |
| Commander X16 (`x16emu`) | Commander X16 Emulator | V2.0 | [bin/x16.prg](bin/x16.prg) |## Warning
- This project is a recreational proof-of-concept to demonstrate how high-entropy passphrases may be generated in Commodore BASIC.
- Random number generators used by Commodore home computers are **not** cryptographically secure.
- If you need dice-generated passphrases for critical applications, follow the directions provided by the [Electronic Frontier Foundation](https://www.eff.org/dice).## Requirements
- [VICE Emulator](https://vice-emu.sourceforge.io) or [Commander X16 Emulator](https://github.com/X16Community/x16-emulator)
- Optional: Python 2/3 for generating BASIC code.
- Optional: [petcat](https://vice-emu.sourceforge.io/vice_16.html) for compiling BASIC code.## Usage
### VICE Emulator
#### Additional setup for VIC-20 (`xvic`)
Skip this step if you are not using the VIC-20 (`xvic`).
Commodore VIC-20 requires memory expansion before the program can be loaded into the machine.
In VICE, go to
- **Preferences** → **Settings**
- **Machine** → **Model**
- **Memory expansions** → **Common configurations** → **All (block0/1/2/3/5)**Then perform a hard reset
- **File** → **Reset** → **Hard reset**
#### Run in VICE Emulator
If you are using the VIC-20 (`xvic`), ensure that you have completed the aforementioned additional setup before proceeding.
In VICE, go to
- **File** → **Smart attach ...**
- Choose the appropriate `.prg` program file from this repository. See [Supported Devices](#supported-devices).
- **Autostart**
- Enter number of words to generate (3-20)### Commander X16 Emulator
In the terminal, run the following
#### Linux/macOS
```bash
x16emu -run -prg bin/x16.prg
```#### Windows
```powershell
x16emu.exe -run -prg bin\x16.prg
```## Development
### Generate BASIC code and compile to PRG format
```bash
make build
```## Acknowledgements
GOTO 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.
## Useful links
-
-
-