{"id":21195063,"url":"https://github.com/plusk01/8086-toolchain","last_synced_at":"2025-07-10T03:34:27.575Z","repository":{"id":82488719,"uuid":"41868638","full_name":"plusk01/8086-toolchain","owner":"plusk01","description":"Assembler, Compiler and Emulator targeting the 8086 platform for use on x86 architecture. For BYU ECEn 425 - RTOS","archived":false,"fork":false,"pushed_at":"2023-05-04T06:26:19.000Z","size":3242,"stargazers_count":15,"open_issues_count":5,"forks_count":10,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-06-04T16:24:31.979Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://ece425web.groups.et.byu.net/","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/plusk01.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}},"created_at":"2015-09-03T15:47:12.000Z","updated_at":"2024-11-20T09:26:59.000Z","dependencies_parsed_at":null,"dependency_job_id":"83023929-a940-46db-afca-12e57f1b65f2","html_url":"https://github.com/plusk01/8086-toolchain","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/plusk01/8086-toolchain","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plusk01%2F8086-toolchain","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plusk01%2F8086-toolchain/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plusk01%2F8086-toolchain/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plusk01%2F8086-toolchain/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/plusk01","download_url":"https://codeload.github.com/plusk01/8086-toolchain/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plusk01%2F8086-toolchain/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264522545,"owners_count":23622380,"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":[],"created_at":"2024-11-20T19:25:58.017Z","updated_at":"2025-07-10T03:34:27.464Z","avatar_url":"https://github.com/plusk01.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"8086 Toolchain\n==============\n\nThis project is for BYU ECEn 425, and was taken from the CAEDM servers (`/ee2/ee425/src/dist`). The purpose for posting on GitHub is to make the build process available for Ubuntu 12.04+ and Mac OS X, along with any minor modifications along the way.\n\n**Disclaimer:** For ECEn 425 projects, this may or may not compile exactly the same as the CAEDM machines\n\n## Installing ##\n\nYou can either clone this repo, or on the side click 'Download ZIP'.\n\nTo clone:\n\n```bash\n$ git clone https://github.com/plusk01/8086-toolchain.git\n```\n\n**Prerequisites for Linux:**\n\nThere are a few dependencies needed for this toolchain to be built correctly.\n\nOn Debian based systems (Ubuntu, etc), run the following in your terminal:\n\n```bash\nsudo apt-get install gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev xterm\n```\n\n*Tested on Ubuntu 16.04 x86_64, Ubuntu 17.04 x86_64 \u0026 Ubuntu 17.10*\n\n**Prerequisites for Mac OS X:**\n\nYour system will depend on the X11 Window system, which is now called XQuartz. It can be found [here](http://xquartz.macosforge.org/). (Tested with version 3.7.7)\n\n*Tested on Mac OS X Yosemite.*\n\n**Building on Linux/Mac:**\n\nThen, `cd` into the repo and run `make`:\n\n```bash\n$ cd 8086-toolchain/\n$ make\n```\n\nIf all goes as planned, you will have 5 binaries in your `./8086-toolchain/bin/`\n directory. If there are any problems, you can try `cd`ing into each of the tool\n directories and running make individually so you can see the warnings/errors more clearly.\n\nTo use the binaries from anywhere, see **Setting Your Path** below.\n\n### Setting Your Path ###\n\nPut this at the bottom of your `~/.profile` `~/.bashrc` (Or whatever your shells startup script is).\n\n```bash\n# ECEn 425 binaries\nexport PATH=\"/Users/plusk01/Documents/8086-toolchain/bin\":$PATH\n```\n\nMake sure to reload your shells startup by either closing your shell and reopening it, or using the `source` command:\n\n```bash\nsource ~/.profile\n```\n\nThis will actually add your toolchain bin to the path.\n\n## Common Problems ##\n\n**Linux:**\n+ `cdefs` not defined: Make sure Linux prereqs are installed\n+ Parsing errors with Perl generated headers/macros: At some point the files were saved with 'DOS' line endings instead of Unix, so if you see a `^M` (Windows carriage return char) that is likely the issue and saving (or overwriting) the file correctly should fix it. Make sure to blow away any generated files.\n+ If on Ubuntu 17.04 or higher, you may get the following error: `xterm: cannot load font '-misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso10646-1'`. emu86 will still work fine. If you wish to fix the error, you can try following the steps in this form:  http://forum.porteus.org/viewtopic.php?f=53\u0026t=1013\n\n\n**Mac:**\n+ `cpp` does not remove `//` comments correctly: See Makefile example below, make sure to add `-xc++` flag to `cpp` to remove c99 style comments.\n\n### Makefile Example ###\n\n```Makefile\nlab1.bin:       lab1final.s\n                nasm lab1final.s -o lab1.bin -l lab1.lst  # Step 4, Assemble\n\nlab1final.s:    clib.S lab1asm.S lab1.s\n                cat clib.S lab1asm.S lab1.s \u003e lab1final.s # Step 3, Concatenate\n\nlab1.s:         lab1.c\n                cpp -xc++ lab1.c lab1.i    # Step 1, Preprocess\n                c86 -g lab1.i lab1.s       # Step 2, Compile\n\nclean:  \n                rm lab1.bin lab1.lst lab1final.s lab1.s lab1.i\n\ntest:\n                emu86 lab1.bin\n```\n\n**Makefile error:** If you copy this directly and paste into a Makefile, the tabs will often be converted to spaces. You will get a \"Missing separator\" error from make. Just replace the indentions with two tabs and it should work.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fplusk01%2F8086-toolchain","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fplusk01%2F8086-toolchain","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fplusk01%2F8086-toolchain/lists"}