#lib #derive #assembly #architecture #puts #start #data #text #value #cfd16-lib-derive

macro cfd16-lib-derive

A proc-macro for automatically generating encoding/decoding functions

1 unstable release

Uses new Rust 2024

new 0.5.0 May 16, 2025

#3 in #puts


Used in cfd16-lib

GPL-3.0-or-later

30KB
107 lines

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

.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
  • Code quality reviews
  • cfd16-objdump development
  • cfd16-emu development

Contributing

The CFD-16 project is open to anyone's contribution, whether for source code, documentation, or even just ideas. Feel free to reach out through Codeberg's own mechanisms or through email.

Licensing

All of the source code written for the CFD-16 project is licensed under the GNU GPLv3 or later versions thereof. However, submodules included in the repository may be third-party and thus fall under another license.

Documentation for the project is licensed under CC BY-SA 4.0.

Dependencies

~190–610KB
~15K SLoC