{"id":36836962,"url":"https://github.com/ivanizag/bbz","last_synced_at":"2026-01-12T14:24:39.612Z","repository":{"id":64304274,"uuid":"389372947","full_name":"ivanizag/bbz","owner":"ivanizag","description":"Run 6502 programs using the Acorn MOS on a modern operating system as a console application","archived":false,"fork":false,"pushed_at":"2025-12-24T15:16:38.000Z","size":1033,"stargazers_count":7,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-26T06:14:18.864Z","etag":null,"topics":["6502","acorn","bbc-micro","emulator"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ivanizag.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":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":"2021-07-25T14:57:08.000Z","updated_at":"2025-12-24T15:16:41.000Z","dependencies_parsed_at":"2024-06-20T16:26:15.926Z","dependency_job_id":"64e0e838-720d-4bfe-a43f-d8132f6983f0","html_url":"https://github.com/ivanizag/bbz","commit_stats":null,"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"purl":"pkg:github/ivanizag/bbz","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivanizag%2Fbbz","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivanizag%2Fbbz/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivanizag%2Fbbz/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivanizag%2Fbbz/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ivanizag","download_url":"https://codeload.github.com/ivanizag/bbz/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivanizag%2Fbbz/sbom","scorecard":{"id":498129,"data":{"date":"2025-08-11","repo":{"name":"github.com/ivanizag/bbz","commit":"1cb990d6428a33a12027e1ad56fdf35c1b8b3edf"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.1,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":0,"reason":"Found 0/30 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"SAST","score":10,"reason":"SAST tool detected: CodeQL","details":["Info: SAST configuration detected: CodeQL","Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Info: jobLevel 'actions' permission set to 'read': .github/workflows/codeql-analysis.yml:28","Info: jobLevel 'contents' permission set to 'read': .github/workflows/codeql-analysis.yml:29","Warn: no topLevel permission defined: .github/workflows/codeql-analysis.yml:1","Warn: no topLevel permission defined: .github/workflows/go.yml:1","Warn: topLevel 'contents' permission set to 'write': .github/workflows/release.yaml:10","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql-analysis.yml:41: update your workflow using https://app.stepsecurity.io/secureworkflow/ivanizag/bbz/codeql-analysis.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql-analysis.yml:45: update your workflow using https://app.stepsecurity.io/secureworkflow/ivanizag/bbz/codeql-analysis.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql-analysis.yml:59: update your workflow using https://app.stepsecurity.io/secureworkflow/ivanizag/bbz/codeql-analysis.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql-analysis.yml:72: update your workflow using https://app.stepsecurity.io/secureworkflow/ivanizag/bbz/codeql-analysis.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/go.yml:14: update your workflow using https://app.stepsecurity.io/secureworkflow/ivanizag/bbz/go.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/go.yml:17: update your workflow using https://app.stepsecurity.io/secureworkflow/ivanizag/bbz/go.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yaml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/ivanizag/bbz/release.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yaml:23: update your workflow using https://app.stepsecurity.io/secureworkflow/ivanizag/bbz/release.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yaml:28: update your workflow using https://app.stepsecurity.io/secureworkflow/ivanizag/bbz/release.yaml/main?enable=pin","Info:   0 out of   8 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/release.yaml:13"],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v0.9 not signed: https://api.github.com/repos/ivanizag/bbz/releases/208887524","Warn: release artifact v0.8 not signed: https://api.github.com/repos/ivanizag/bbz/releases/49933668","Warn: release artifact v0.7 not signed: https://api.github.com/repos/ivanizag/bbz/releases/49616136","Warn: release artifact v0.6 not signed: https://api.github.com/repos/ivanizag/bbz/releases/48599258","Warn: release artifact v0.5 not signed: https://api.github.com/repos/ivanizag/bbz/releases/48029534","Warn: release artifact v0.9 does not have provenance: https://api.github.com/repos/ivanizag/bbz/releases/208887524","Warn: release artifact v0.8 does not have provenance: https://api.github.com/repos/ivanizag/bbz/releases/49933668","Warn: release artifact v0.7 does not have provenance: https://api.github.com/repos/ivanizag/bbz/releases/49616136","Warn: release artifact v0.6 does not have provenance: https://api.github.com/repos/ivanizag/bbz/releases/48599258","Warn: release artifact v0.5 does not have provenance: https://api.github.com/repos/ivanizag/bbz/releases/48029534"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'main'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-19T21:03:29.938Z","repository_id":64304274,"created_at":"2025-08-19T21:03:29.938Z","updated_at":"2025-08-19T21:03:29.938Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28340394,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-12T12:22:26.515Z","status":"ssl_error","status_checked_at":"2026-01-12T12:22:10.856Z","response_time":98,"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":["6502","acorn","bbc-micro","emulator"],"created_at":"2026-01-12T14:24:36.579Z","updated_at":"2026-01-12T14:24:39.603Z","avatar_url":"https://github.com/ivanizag.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# bbz - Acorn MOS for 6502 adaptation layer\n\nUsed to run 6502 programs using the Acorn MOS on a modern operating system\nas a console application. It runs BBC Micro language ROMs.\n\n## What is this\n\nThis is a MOS for 6502 execution environment. It's a 6502 emulator that\nintercepts the calls to the Acorm Machine Operating System (MOS) and\nservices them as a native console application on the host.\n\nThis is not a BBC Micro emulator. It does not emulate the BBC Micro\nhardware, just the 6502 processor.\n\nBBZ is a console program, it tries to look and feel as a modern console\napplication not as a BBC Micro. There is command history accesible with\nthe up arrow and control-R. Control-C behaves as the BBC Micro Escape key\nto interrupt long running programs. Control-C twice will exic BBZ back to\nthe host.\n\nThis program is heavily inspired on [Applecorn](https://github.com/bobbimanners/Applecorn),\n\"a ProDOS application for the Apple //e Enhanced which provides an environment\nfor Acorn BBC Microcomputer language ROMs to run.\"\n\nReferences:\n- [BBC Microcomputer System User Guide](https://archive.org/details/BBCUG)\n- The Advanced User Guide for the BBC Microcomputer\n- [BeebWiki - 8-bit Acorn Computer Wiki](http://beebwiki.mdfs.net)\n- [Applecorn source code](https://github.com/bobbimanners/Applecorn)\n- [The MOS Reassembly for the BBC Micro](https://tobylobster.github.io/mos/mos/index.html) and [raybellis's mos120](https://github.com/raybellis/mos120)\n- [beeb-fstest test suite](https://github.com/tom-seddon/beeb-fstest)\n\n## Features\n- Can run BBC BASIC and most of the language ROMs.\n- Saves and loads files from the host filesystem.\n- Readline like input with persistent history.\n- Can load up to 16 sideways ROMs, the unused slots are filled with sideways RAM 16K expansions.\n- Most of the MOS entrypoints and VDU control codes are defined.\n- Does some of the mode 7 text coloring using ANSI escape codes on the terminal. Try `VDU 65,129,66,130,67,132,68,135,69,13,10` on BBC BASIC.\n- OSCLI comands suported:\n  - *| */ *FX *BASIC *DELETE *DIR *EX *EXIT *HELP *INFO *LOAD *RUN *SAVE *SPOOL *TYPE\n  - *CAT filename: dumps the file contents using the BBC Micro character set and VDU conversions\n  - *HOST cmd: execute a command on the host OS. Example: `*HOST ls -la`\n  - *BYE or *QUIT: exit to host\n  - *ROMS: List the loaded ROMs\n- 6502 emulation provided by [iz6502](https://github.com/ivanizag/iz6502)\n\n## Usage \n\n```\nbbz [flags] [filename]\n```\n\n`filename` is the filename of the ROM to run (the same as `-rom0`). By default, it\nuses the BBC Basic ROM in `BASIC.ROM`.\n\nAvaIlable flags (to put before the ROM filename if present):\n\n``` \n  -M\tdump to the console the MOS calls including console I/O calls\n  -c\tdump to the console the CPU execution operations\n  -m\tdump to the console the MOS calls excluding console I/O calls\n  -p\tpanic on not implemented MOS calls\n  -r\tdisable readline like input with history\n  -s\tdump to the console the accesses to Fred, Jim or Sheila\n  -rom0 string\n    \tfilename for rom 0 (slot 0xf)\n  -rom1 string\n    \tfilename for rom 1 (slot 0xe)\n  -rom2 string\n    \tfilename for rom 2 (slot 0xd)\n  -rom3 string\n    \tfilename for rom 3 (slot 0xc)\n  -rom4 string\n    \tfilename for rom 4 (slot 0xb)\n  -rom5 string\n    \tfilename for rom 5 (slot 0xa)\n  -rom6 string\n    \tfilename for rom 6 (slot 0x9)\n  -rom7 string\n    \tfilename for rom 7 (slot 0x8)\n  -rom8 string\n    \tfilename for rom 8 (slot 0x7)\n  -rom9 string\n    \tfilename for rom 9 (slot 0x6)\n  -rom10 string\n    \tfilename for rom 10 (slot 0x5)\n  -rom11 string\n    \tfilename for rom 11 (slot 0x4)\n  -rom12 string\n    \tfilename for rom 12 (slot 0x3)\n  -rom13 string\n    \tfilename for rom 13 (slot 0x2)\n  -rom14 string\n    \tfilename for rom 14 (slot 0x1)\n  -rom15 string\n    \tfilename for rom 15 (slot 0x0)\n\n\n```\n\n## Install\n\n### From binary\n\nGet the latest version from the [releases](https://github.com/ivanizag/bbz/releases) page in Github\n\n### From source\n\nbbz is a standard go project, build with `go build .`\n\n### From the Snap store\n\nbbz is named [mosbbz](https://snapcraft.io/mosbbz) in the Snap store:\n```\n$ sudo snap install mosbbz\n```\n\nYou will need to download a ROM, for exmaple [BASIC.ROM](https://github.com/ivanizag/bbz/raw/main/BASIC.ROM), and invoke as `mosbbz`':\n\n```\n$ mosbbz BASIC.ROM\n```\n\n\n## Usage examples\n\nRunning BBC Basic:\n```\n$ ./bbz\nbbz - Acorn MOS for 6502 adaptation layer, https://github.com/ivanizag/bbz\n\nBASIC\n\n\u003ePRINT \"HELLO\"\nHELLO\n\u003e10 PRINT \"HEY\"\n\u003eRUN\nHEY\n\u003eSAVE \"TEST\"\n\u003eNEW\n\u003eLOAD \"TEST\"\n\u003eLIST\n   10 PRINT \"HEY\"\n\u003eX\n\nMistake\n\u003e*HOST ls -l TEST\n-rw-r--r-- 1 casa casa 14 jul 30 20:04 TEST\n\n\u003e^Csignal: interrupt\n```\n\nLog of the MOS calls (excluding the most verbose output API calls):\n```\n$ ./bbz -m ROMs/Forth_103.rom\nbbz - Acorn MOS for 6502 adaptation layer, https://github.com/ivanizag/bbz\n\nFORTH\n\nCOLD or WARM start (C/W)? C\n[[[OSRDCH()=0x43]]]\n[[[OSARGS('Get filing system',A=00,Y=00) =\u003e 105]]]\n[[[OSBYTE82('Read machine high order address',X=0x58,Y=0x00) =\u003e (X=0xff,Y=0xff)]]]\n[[[OSBYTE84('Read top of user mem',X=0x58,Y=0x00) =\u003e (X=0x00,Y=0x80)]]]\n[[[OSBYTE83('Read bottom of user mem',X=0x58,Y=0x00) =\u003e (X=0x00,Y=0x0e)]]]\n\n\nFORTH\nOK\n2 1 + .\n[[[OSWORD00('read line',BUF=0x0542,range=20-ff, maxlen=80)='2 1 + .']]]\n3 OK\n\n```\n\nUsing mode 7 colors:\n\n![mode 7 colors](doc/vdu_colors.png)\n\nUsing several ROMs at once:\n```\n$ ./bbz -rom0 BASIC.ROM -rom1 ROMs/Forth_103.rom -rom2 ROMs/LISP501.ROM -rom3 ROMs/COMAL.rom -rom4 ROMs/MPROLOG310.rom -rom5 ROMs/Pascal-1.10-Compiler.rom -rom6 ROMs/Pascal-1.10-Interpreter.rom\nbbz - Acorn MOS for 6502 adaptation layer, https://github.com/ivanizag/bbz\n(tip: uppercase is usually needed)\n\nBASIC\n\u003e*ROMS\nROM F BASIC 01 (L)\nROM E FORTH 01 (SL)\nROM D LISP 05 (SL)\nROM C COMAL 16 (SL)\nROM B micro PROLOG  80 (SL)\nROM A Pascal 10 (SL)\nROM 9 Pascal 10 (SL)\nRAM 8 16K\nRAM 7 16K\nRAM 6 16K\nRAM 5 16K\nRAM 4 16K\nRAM 3 16K\nRAM 2 16K\nRAM 1 16K\nRAM 0 16K\n\u003e*HELP\n\nBBZ 0.0\n\nFORTH 1.03\n\nLISP 5.01\n\nCOMAL\n\nmicro PROLOG 3.1\n\nPASCAL 1.10\n\u003e*LISP\nLISP\n\n\n\nEvaluate : (* '*FORTH)\nFORTH\n\n\nCOLD or WARM start (C/W)? C\n\n\nFORTH\nOK\nOS' *COMAL'\nCOMAL\n\n→*PASCAL\nPascal\n\n%*PROLOGUE\nmicro PROLOG \n\n29184 bytes free\n\u0026.\n\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fivanizag%2Fbbz","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fivanizag%2Fbbz","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fivanizag%2Fbbz/lists"}