Baike.dev
All toolsOnline toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
J

jdh-8

> 编程语言
Open source

An 8-bit minicomputer with a fully custom architecture

1.4K stars0 likes1 views
WebsiteGitHub

About

An 8-bit minicomputer with a fully custom architecture

JDH-8

A fully custom 8-bit minicomputer with a unique architecture.

The program above is running in the emulator, see programs/pong.asm for the source.

See the video on the design.
and the video on the build.

Machine Description

Features

  • 8-bit data width
  • 16-bit address bus (64 KiB available memory + banking)
  • 8 fully general purpose registers (5 normal + 2 indirect address + 1 flags)
  • 16 instruction RISC architecture
  • Port mapped I/O for device communication

Instruction Set:

…

Registers

A (0): GP register/arg 0
B (1): GP register/arg 1
C (2): GP register/arg 2
D (3): GP register/arg 3
L (4): GP register/(L)ow index register
H (5): GP register/(H)igh index register
Z (6): GP register/return value
F (7): flags (LSB to MSB)
    LESS
    EQUAL
    CARRY
    BORROW

See the spec for more information.

Schematic

The schematic requires a modified version of Logisim Evolution to view, see here. You will need to build it from source.

Toolchain

Compiling on POSIX systems

Compile with $ make

Compiling on Windows

  1. Install MSYS2 (msys2.org)
  2. Install MinGW-W64 from MSYS2
  3. Get 64-bit SDL2 development tools (libsdl.org)
  4. LIBPATH to your SDL location (Makefile automatically specifies C:/cdevlibs)
  5. Change CC and LD to the location of GCC (including the executable name) in your MinGW-W64 install or add gcc and ld to PATH
  6. Install xxd for Windows (https://sourceforge.net/projects/xxd-for-windows/)
  7. Change variable XXD in Makefile to the location of XXD (including the executable name) or add xxd to PATH
  8. Run mingw32-make inside project directory

Assembler (asm)

./bin/asm [-h] [--help] [-v] [--verbose] [-n] [--no-builtin-macros] [-o file] file

Emulator (emu)

./bin/emu [-m/--mod module] [-r/--run] [-l/--load file address] [ROM file]

Commands

  • SET <register> <data>: set register data
  • GET <register>: get register value
  • PEEK <address>: get memory value
  • POKE <address> <data>: set memory data
  • INB <port>: get port data
  • OUTB <port> <data>: write port data
  • STEP: step one instruction
  • DUMP: print current machine state
  • LOAD <ROM file> <address>: load ROM at address
  • MODS: list modules
  • MOD <module>: load module
  • DEVICES: list devices
  • RUN <speed?>: run at speed (hz) until halt
  • QUIT: quit

Issues· 0 open

View all issuesOpen on GitHub

No open issues yet, or sync has not completed.

> Tags

C

No comments yet. Be the first to share.

> Details

PublishedAug 1, 2026
UpdatedSep 17, 2026
Category编程语言
PricingOpen source

> Related tools

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言