3.7 KiB
Contributing to RomWBW
WARNING: The
devbranch of RomWBW has been deprecated as of v3.4. All Pull Requests should now target themasterbranch.
Contributions of all kinds to RomWBW are welcomed and greatly appreciated.
- Reporting bug(s) and suggesting new feature(s)
- Discussing the current state of the code
- Submitting fixes and enhancements
RomWBW GitHub Repository
The RomWBW GitHub Repository is the primary location for developing, supporting, and distributing RomWBW. Although input is gladly accepted from almost any channel, the GitHub Repository is preferred.
- Use Issues to report bugs, request enhancements, or ask usage questions
- Use Discussions to interact with others
- Use Pull Requests to submit content (code, documentation, etc.)
Submitting Content
This RomWBW Project uses the standard GitHub Flow. Submission of content changes (including code) are ideally done via Pull Requests.
- Submitters are advised to contact [Wayne Warthen](mailto:wwarthen@ gmail.com) or start a GitHub Discussion prior to starting any significant work. This is simply to ensure that submissions are consistent with the overall goals and intentions of RomWBW.
- All submissions should be based on the
masterbranch. To create your submission, fork the RomWBW repository and create your branch frommaster. Make (and test) your changes in your personal fork. - Please update relevant documentation and the
ChangeLogfound in theDocfolder. - You are encouraged to comment your submissions to ensure your work is properly attributed.
- When ready, submit a Pull Request to merge your forked branch into the RomWBW master branch. In the comments, be sure to indicate if an AI LLM was utilized in any way.
Coding Style
Due to the nature of the project, you will find a variety of coding styles. When making changes to existing code, please try to be consistent with the existing coding style. You may not like the current style, but no one likes mixed styles in one file/module.
Be careful with white space. RomWBW is primarily assembly langauge code. The use of tab stops at every 8 characters is pretty standard for assembler. If you use something else, then your code will look odd when viewed by others.
In most cases, the use of <cr><lf> line endings is preferred. This is
standard for the operating systems of the era that RomWBW provides.
Also note that CP/M text files should end with a ctrl-Z (0x1A). This is
not magically added by the tools that generate the disk images.
Hints for Developers
-
The majority of RomWBW is assembled with TASM (and it's compatible equivalent sz80as). These tools have quirks that are very subtle. For example, TASM does not evaluate expressions in the standard way. It uses a left to right approach. Check the TASM documentation carefully.
-
The following two Z80 instructions highlight a common issue with the Z80 assembler syntax. Parens in operands frequently indicate an indirect reference. To treat the operand as an expression, use the second format.
LD A,(5+5) ; Load A with the value at address 10
LD A,0+(5+5) ; Load A with the value 10
- The RomWBW documewntation in the Doc directory is generated with a process outside of the normal build process. To update documentation, please update the .md files in Source/Doc. Those are the Markdown source files for the documentation. The PDF files will be updated offline from those.
License
RomWBW is licensed under GPLv3. When you submit code changes, your submissions are understood to be under the same [GPLv3 License] (https://www.gnu.org/licenses/gpl-3.0.html) that covers the project.