{"id":48621072,"url":"https://github.com/fredmorcos/has","last_synced_at":"2026-04-09T03:36:13.294Z","repository":{"id":54301373,"uuid":"302406353","full_name":"fredmorcos/has","owner":"fredmorcos","description":"Hack CPU \u0026 JACK tooling","archived":false,"fork":false,"pushed_at":"2022-09-18T12:49:43.000Z","size":294,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2023-03-04T05:23:42.574Z","etag":null,"topics":["assembler","compiler","disassembler","emulator","hack","hack-assembler","hack-cpu","interpreter","jack"],"latest_commit_sha":null,"homepage":"","language":"Hack","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/fredmorcos.png","metadata":{"files":{"readme":"README.md","changelog":"changelogs/0.1.0","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-10-08T16:53:50.000Z","updated_at":"2023-01-26T02:38:34.000Z","dependencies_parsed_at":"2023-01-18T13:31:25.326Z","dependency_job_id":null,"html_url":"https://github.com/fredmorcos/has","commit_stats":null,"previous_names":[],"tags_count":null,"template":null,"template_full_name":null,"purl":"pkg:github/fredmorcos/has","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fredmorcos%2Fhas","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fredmorcos%2Fhas/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fredmorcos%2Fhas/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fredmorcos%2Fhas/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fredmorcos","download_url":"https://codeload.github.com/fredmorcos/has/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fredmorcos%2Fhas/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31584809,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-08T14:31:17.711Z","status":"online","status_checked_at":"2026-04-09T02:00:06.848Z","response_time":112,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["assembler","compiler","disassembler","emulator","hack","hack-assembler","hack-cpu","interpreter","jack"],"created_at":"2026-04-09T03:36:12.618Z","updated_at":"2026-04-09T03:36:13.287Z","avatar_url":"https://github.com/fredmorcos.png","language":"Hack","funding_links":[],"categories":[],"sub_categories":[],"readme":"# `HAS`: The HACK Application Suite\n\n[![License](https://img.shields.io/github/license/fredmorcos/has?style=for-the-badge)](https://github.com/fredmorcos/has/blob/master/LICENSE)\n[![Release (latest SemVer)](https://img.shields.io/github/v/release/fredmorcos/has?sort=semver\u0026style=for-the-badge)](https://github.com/fredmorcos/has/releases)\n[![Release](https://img.shields.io/github/workflow/status/fredmorcos/has/Release?label=Release\u0026style=for-the-badge)](https://github.com/fredmorcos/has/releases)\n[![CI](https://img.shields.io/github/workflow/status/fredmorcos/has/CI?label=Master\u0026style=for-the-badge)](https://github.com/fredmorcos/has/actions)\n\nhttps://github.com/fredmorcos/has\n\n`HAS` is MIT licensed (see the `LICENSE` file) unless otherwise stated\nat the top of a file.\n\n## About\n\nThe HACK Application Suite is a library and a program for handling\nvarious tasks related to the HACK CPU and instruction set as well as\nthe JACK programming language. HAS currently consists of the\nfollowing:\n\n- [x] HACK assembler\n- [x] HACK disassembler\n- [ ] HACK interpreter\n- [ ] HACK CPU emulator\n- [ ] JACK virtual machine\n- [ ] JACK compiler\n\n## Usage\n\n`HAS` makes use of subcommands.\n\n`cargo run -- --help` or `has --help`:\n\n```\nhas 0.3.0\nThe HACK Application Suite\n\nUSAGE:\n    has [FLAGS] \u003cSUBCOMMAND\u003e\n\nFLAGS:\n    -h, --help       Prints help information\n    -V, --version    Prints version information\n    -v, --verbose    Verbose output (can be specified multiple times)\n\nSUBCOMMANDS:\n    asm     Assemble a HACK file\n    dis     Disassemble a HACK file\n    help    Prints this message or the help of the given subcommand(s)\n```\n\n### Assembler\n\nThe assembler can only build a single file at a time. The output file\nmust not already exist.\n\n`has asm --help`:\n\n```\nhas-asm 0.3.0\nAssemble a HACK file\n\nUSAGE:\n    has asm [FLAGS] \u003cFILE\u003e --out \u003cOUT\u003e\n\nFLAGS:\n    -b, --bintext    Output a bintext instead of binary file\n    -h, --help       Prints help information\n    -V, --version    Prints version information\n\nOPTIONS:\n    -o, --out \u003cOUT\u003e    Output file (must not exist)\n\nARGS:\n    \u003cFILE\u003e    Hack assembly file to compile\n```\n\n### Disassembler\n\nThe disassembler can only disassemble a single file at a time. The\noutput file must not already exist.\n\n`has dis --help`:\n\n```\nhas-dis 0.3.0\nDisassemble a HACK file\n\nUSAGE:\n    has dis [FLAGS] \u003cFILE\u003e --out \u003cOUT\u003e\n\nFLAGS:\n    -b, --bintext    The input is a bintext instead of a binary file\n    -h, --help       Prints help information\n    -V, --version    Prints version information\n\nOPTIONS:\n    -o, --out \u003cOUT\u003e    Output file (must not exist)\n\nARGS:\n    \u003cFILE\u003e    Hack file to disassemble\n```\n\n## Examples\n\nAssemble a `.asm` file with logging enabled: `has -vvv asm infile.asm -o outfile.hack`\n\n## Installation\n\nCargo can be used to install `HAS` into `~/.cargo/bin`: `cargo install --path .`\n\n## Tests\n\nTo test the `HAS` library, execute `cargo test` in the top-level directory.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffredmorcos%2Fhas","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffredmorcos%2Fhas","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffredmorcos%2Fhas/lists"}