# CFD-16 Instruction Set Architecture
CFD-16 is an Instruction Set Architecture designed for a processor of the
same name. The ISA is based on RISC principles and has a 16-bit datapath
and a 24-bit address space. The architecture does not provide for virtual
memory, instead using protected segments to disallow user processes from
accessing kernel resources.
## Assembly
```asm
.global _start
.extern itoa
.extern puts
.data
value: .word 240
.text
_start:
mov %b, value
ldr %a, (%b)
mul %a, %a
jsr itoa
jsr puts
str %a, (%b)
sc 0
```
## Task Board
- more exhaustive testing
- continued cfd16-objdump development
- code quality reviews
- implement elf support for cfd16-assem
- start emulator development
## Contributing
The CFD-16 project is open to anyone's contribution, whether for source
code, documentation, or even just ideas. Feel free to submit an Issue or
Pull Request through Codeberg or even to send a patch by email.
## Licensing
All of the source code written for the CFD-16 project is licensed under
the GNU [GPLv3](./LICENSE) or later versions thereof. However, submodules
included in the repository may fall under another license.
Documentation for the project is licensed under [CC BY-SA 4.0](./docs/LICENSE).