{"id":46158331,"url":"https://github.com/sandlbn/whisper64","last_synced_at":"2026-04-13T06:29:45.478Z","repository":{"id":319173138,"uuid":"1074951913","full_name":"sandlbn/whisper64","owner":"sandlbn","description":"A feature-rich text editor for the Commodore 64","archived":false,"fork":false,"pushed_at":"2026-04-13T04:53:50.000Z","size":228,"stargazers_count":37,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-13T06:23:29.875Z","etag":null,"topics":["c64","commodore"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sandlbn.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"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":"2025-10-12T19:33:01.000Z","updated_at":"2026-04-13T04:49:52.000Z","dependencies_parsed_at":"2025-10-20T17:03:01.346Z","dependency_job_id":null,"html_url":"https://github.com/sandlbn/whisper64","commit_stats":null,"previous_names":["sandlbn/whisper64"],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/sandlbn/whisper64","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sandlbn%2Fwhisper64","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sandlbn%2Fwhisper64/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sandlbn%2Fwhisper64/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sandlbn%2Fwhisper64/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sandlbn","download_url":"https://codeload.github.com/sandlbn/whisper64/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sandlbn%2Fwhisper64/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31742839,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-13T06:26:45.479Z","status":"ssl_error","status_checked_at":"2026-04-13T06:26:44.645Z","response_time":93,"last_error":"SSL_read: 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":["c64","commodore"],"created_at":"2026-03-02T10:31:43.255Z","updated_at":"2026-04-13T06:29:45.467Z","avatar_url":"https://github.com/sandlbn.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Whisper64\nA text editor for the Commodore 64.\n\n![Whisper64 Screenshot](screenshot.png)\n\n## Features\n\n- **80-Column Mode**: Bitmap-based 80-column display using a 4x8 pixel font (toggle with CTRL+D)\n- **REU Support**: RAM Expansion Unit for fast page swapping (auto-detected, up to 16MB)\n- **BASIC Mode** with keyword syntax highlighting and automatic line renumbering\n- **Multi-Page Editing**: Pages stored in REU or disk temp files\n- **Directory Browser**: Multi-drive support (8-15) with file type display\n- **Search \u0026 Replace**: Find text with wrap-around and replace all\n- **Copy/Paste**: Visual mark mode for selecting and copying text\n- **Undo/Redo**: One-level undo and redo\n- **Goto Line**: Jump to any line number\n- **Mouse Support**: 1351 mouse on Control Port 1\n- **40-column mode**: 37x23 editing area with line numbers\n- **80-column mode**: 77x23 editing area with line numbers\n\n## Prerequisites\n\nInstall the [LLVM-MOS SDK](https://github.com/llvm-mos/llvm-mos-sdk):\n```bash\n# macOS (Apple Silicon)\ncurl -sL https://github.com/llvm-mos/llvm-mos-sdk/releases/latest/download/llvm-mos-macos.tar.xz -o /tmp/llvm-mos.tar.xz\nmkdir -p ~/llvm-mos \u0026\u0026 tar -xf /tmp/llvm-mos.tar.xz -C ~/llvm-mos --strip-components=1\n```\n\n## Building\n\n```bash\nmkdir build \u0026\u0026 cd build\ncmake -DCMAKE_PREFIX_PATH=~/llvm-mos ..\nmake\n```\n\nOutput: `build/whisper64.prg`\n\nA 512KB REU image (`whisper64.reu`) and a blank D64 disk image (`whisper64.d64`) are created automatically during the build.\n\n## Running\n\n### VICE Emulator\n\n```bash\n./run_vice.sh\n```\n\nThis launches VICE (x64sc) with REU enabled and a D64 disk image attached to drive 8.\n\n### Real Hardware\n\nTransfer `whisper64.prg` to a disk or SD card and load:\n```\nLOAD \"WHISPER64\",8,1\nRUN\n```\n\nFor REU support, ensure the REU is connected before starting.\n\n## Key Commands\n\n| Key | Function |\n|-----|----------|\n| **F1** | Load file (directory browser) |\n| **F2** | Save file |\n| **F3** | Select drive (8-15) |\n| **F4** | Toggle BASIC mode / Renumber lines |\n| **F5** | Find text |\n| **F6** | Find \u0026 replace |\n| **F7** | Find next |\n| **F8** | Help screen |\n| **CTRL+C** | Copy marked text |\n| **CTRL+D** | Toggle 40/80 column mode |\n| **CTRL+G** | Goto line |\n| **CTRL+J** | Toggle mouse on/off |\n| **CTRL+K** | Toggle mark mode |\n| **CTRL+V** | Paste text |\n| **CTRL+W** | New file (clear buffer) |\n| **CTRL+Y** | Redo |\n| **CTRL+Z** | Undo |\n| **HOME** | Go to start of file |\n| **Arrows** | Move cursor |\n\n## 80-Column Mode\n\nPress **CTRL+D** to toggle between 40 and 80 column modes.\n\n80-column mode uses VIC-II hires bitmap mode with a 4x8 pixel font (SCREEN-80 from Compute's Gazette, 1984). The display is rendered in VIC bank 3 ($C000-$FFFF) with bitmap data at $E000 and video matrix at $D800.\n\nLimitations:\n- Each pair of adjacent characters shares one foreground color\n- Slower screen updates than 40-column mode (typing updates only the current line for speed)\n\n## REU Support\n\nThe editor auto-detects REU at startup and shows the available size and maximum page count. With REU, page swapping is instant (DMA transfer) instead of using slow disk temp files.\n\nPage capacity depends on REU size:\n- 256KB: ~66 pages\n- 512KB: ~136 pages\n\nAll pages are saved to and loaded from REU when switching pages. File save (F2) writes all pages to disk. File load (F1) reads the file and distributes content across pages as needed.\n\n## BASIC Mode\n\nPress **F4** to enable BASIC mode:\n- Keyword highlighting in purple\n- Press **F4** again to renumber lines (10, 20, 30...)\n- Updates GOTO, GOSUB, THEN, and ELSE references automatically\n\n## Directory Browser\n\nPress **F1** to open:\n- Shows disk name, file types (PRG, SEQ, DEL, USR, REL), block sizes\n- **UP/DOWN** to navigate, **RETURN** to load, **RUN/STOP** to cancel\n\n## License\n\nFree to use and modify.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsandlbn%2Fwhisper64","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsandlbn%2Fwhisper64","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsandlbn%2Fwhisper64/lists"}