1.7 KiB
1.7 KiB
Contributing
Before you fork and change anything, please read this file!
Conventions
This project may contain some conventions not found in other simalar projects. The main code styles and locations of use are listed below.
Universal
- Indents
Indents are inportant to keep code readable. The superior indent character is space, so. You should indent when:
- Pushing to stack (unindent when poping)
- ex instruction (only when the ex is temporary and reversed)
- Loops
- Routines
- Routines should have the following header:
;;name ;;Discription ;;Inputs: ;; HL: purpose ;;Outputs: ;; HL: ...- Inputs/Outputs only if needed.
- Labels
- Name of routine must be lowercase
- Name of routine must have prefix of file name
- If there are lables in a routine:
- label must be name of routine + Suffix (capitalized):
fileroutineSuffix
- label must be name of routine + Suffix (capitalized):
- Keep to
jrin routines (unless impossible) - All routines MUST ret at the end (no jp)
- Routines MUST preserve all registers (except outputs)
- A routine's instructions should be lowercase
- Routines should have the following header:
FSHa.asm
- All instructions/registers/directives are UPPERCASE (strings are fine)
- High level view
- Only ld, calls, jmps (no routines/macros)
- Keep it readable
Command Files
- Name of file is UPPERCASE
- Inctructions are lowercase
- The layout of the file must be as follows:
<nameofmodule>cmd<COMMAND>: .db "<COMMAND>", 0 <nameofmodule>cmd<COMMAND>o: .db $<optcode> <nameofmodule>cmd<COMMAND>u: .db "<Discription>", 0 <nameofmodule>cmd<COMMAND>f: <Command code to execute> jp Fin - Registers CAN be destroyed during execution of command's code