You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A complete toolchain for working with microcode from the Norsk Data
ND-100, ND-110, and ND-120 minicomputers. Web-based disassembler/viewer,
ROM combiners, and build pipeline.
The TypeScript library and YAML definitions live in the shared
nd-microcode-meta
submodule. The VSCode extension lives in a
separate repo.
Web build: combine ROMs, generate symbols, bundle JS
tools/web-build/generate-nd100-symbols.mjs
Generate ND-100 labels from decode-PLA
tools/rom-combiner/
nd100uc-rom CLI for ND-110/120 EPROM combine/split
microcode/
ND-110 RASK assembled source + binary
.github/workflows/deploy-web.yml
GitHub Pages auto-deploy on push to main
Supported models
Model
Word size
Chips
XOR on load
ND-100
64-bit
16 x 82S185 PROMs per bank
0x0F800000 (bits 23-27)
ND-110
64-bit
2 x 27256 EPROMs
0x0FC00000 (bits 22-27)
ND-120
64-bit
2 x 27C256 EPROMs
None (canonical form)
All three models use 64-bit microinstruction words.
Hardware
ND-100
ND-110
ND-120
Building the web app
git clone --recurse-submodules https://github.com/HackerCorpLabs/nd100uc.git
cd nd100uc
# Build the TS library (in the submodule)cd external/meta/lib/ts && npm ci && npm run build &&cd ../../../..
# Build the web app
node tools/web-build/build-web.mjs
# Serve locallycd web && python3 -m http.server 8765
The web app is also auto-deployed to GitHub Pages on every push to main.
Web viewer features
3-line assembly layout (Line 1: registers+ALU, Line 2: IDB+COMM+sequencing, Line 3: branch/condition)
All three models: ND-100, ND-110, ND-120
Syntax-highlighted tokens with hover tooltips from YAML descriptions
Clickable branch targets and labels for navigation
Opcode badges showing which macro-instructions dispatch to each microaddress (ND-100)
Alternating row backgrounds to visually separate instructions