Skip to content

Repository files navigation

Arnicomp Support Package

Arnicomp Support Package is a collection of software tools built to support Arnicomp, a custom-designed 8-bit breadboard computer.
Rather than focusing on a single component, this repository brings together all auxiliary tooling required to assemble, simulate, debug, and work with the Arnicomp architecture.

This repository is in active development.
S

Breadboard Computer (ISA Version 2)

image image

Digital Circuit Simulation Design

Layout of internal architecture Basic test circuit with seven segment display and buttons

Repository Contents

📁 /digital-sim

  • Digital.exe simulation models
  • Logic-level simulation files used to validate the Arnicomp hardware design
  • Allows inspection of signal flow, control logic, and timing behavior

📁 /assembler

  • Fully functional Arnicomp assembler
  • Converts Arnicomp assembly language into executable machine code
  • Features:
    • Label resolution
    • Constant definitions
    • Complete support for the latest ISA
  • This directory contains the current and stable assembler implementation

Instruction Set:

  • Current (Newest ISA :) )
Newest ISA Complete Newest ISA Select Bits
  • Old ISA
Old ISA

📁 /emulator

  • Arnicomp CPU emulator
  • Emulates the processor cycle-by-cycle with hardware-accurate behavior
  • Executes assembled machine code exactly as the physical CPU would
  • Primarily used for:
    • Debugging programs
    • Verifying instruction semantics
    • Testing assembler output without physical hardware

📁 /emulator_ui

  • Graphical user interface for the emulator
  • Designed to work directly with /emulator
  • Enables:
    • Loading and editing assembly files
    • Step-by-step execution
    • Breakpoints
    • Register and flag inspection
  • The UI was largely AI-assisted, as frontend development is not the primary focus of the project

📁 /compiler

  • Incomplete compiler prototype
  • Not finished in this repository
  • Compiler development has continued in a separate repository, restarted from scratch
  • This directory remains for historical reference only

📁 /vscode-arnicomp

  • Visual Studio Code extension
  • Provides syntax highlighting for the Arnicomp assembly language
  • Makes writing and reading assembly code significantly easier

Development Notes

  • The project went through two major instruction set and architecture revisions during development
  • As a result, some directory structure and legacy files may appear inconsistent
  • Older designs were intentionally preserved to:
    • Track architectural evolution
    • Avoid breaking working tooling
    • Serve as reference during ISA redesigns

AI Usage Disclaimer

  • Except for the emulator UI, AI-generated code usage is minimal

  • Core components such as:

    • Assembler
    • Emulator
    • ISA design

    were written and verified manually

  • AI assistance was mainly used for:

    • UI layout generation
    • Boilerplate frontend code
    • Minor refactors and documentation drafts

ISA Evolution (2025 Redesign)

During development, the original opcode/argcode-based instruction format was replaced with the current final 8-bit ISA used by the assembler and Verilog implementation.

Key characteristics of the current ISA include:

  • LDL / LDH split byte construction for RA and RD
  • unified MOV encoding (10 ddd sss)
  • source-side ZERO, LRL, and LRH bus options
  • arithmetic family using RD as the left operand:
    • ADD, ADDI, ADC
    • SUB, SUBI, SBC
    • CMP
  • logical operations:
    • XOR, AND, NOT
  • stack operations:
    • PUSH, POP
  • MAR update operations:
    • INC #1/#2
    • DEC #1/#2
  • jump family based on Z/N/C/V flags:
    • JEQ, JNE, JCS, JCC, JMI, JVS, JLT, JMP
    • JGT as the dedicated extra opcode
    • JAL for link-and-jump through PRH:PRL
  • LRL / LRH replacing the older direct PC readback model

Assembler-side productivity features now include pseudoinstructions such as:

  • LDI
  • CALL
  • JMPA
  • RET
  • PUSHI
  • PUSHSTR

The assembler README documents the current split between:

  • real ISA instructions
  • assembler pseudoinstructions/macros
  • aliases

Legacy documentation remains in arnicomp_details.txt for historical context.


Current Status

Component Status
Assembler ✅ Complete
Emulator ✅ Complete
Emulator UI ✅ Complete
VS Code Extension ✅ Complete
Compiler 🚧 Continued in separate repo

License & Contributions

This project is primarily intended for educational, experimental, and personal hardware development purposes.

Feedback on:

  • ISA design
  • Emulator accuracy
  • Tooling structure

is always welcome.


Arnicomp is a long-term exploration of CPU design, tooling, and low-level software — not just a single assembler.

About

Assembler, Emulator and Compiler for Custom Breadboard Computer

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages