- Node.js 18+ installed
- No other dependencies needed!
# Navigate to FlowASM
cd FlowASM
# Install dependencies (express only)
npm install
# Start the server
npm startServer starts at http://localhost:3000
1. Open Browser (5 seconds)
- Navigate to http://localhost:3000
- See the FlowASM visual interface
2. Load Payroll Demo (10 seconds)
- Click "Payroll Processing (Sandbox)" in the sidebar
- See 5 nodes appear on canvas:
- compile_payroll (asm.compile)
- execute_payroll (asm.run)
- verify_result (asm.debug)
- submit_jcl (zeroframe.send)
- verify_completion (zeroframe.wait)
3. Run Workflow (30 seconds)
- Click "
▶️ Run Workflow" button - Watch nodes execute in sequence
- See execution log populate with results
- Nodes turn green (✓) on success
4. Inspect Results (15 seconds)
- Click any node to see details in inspector
- Check execution log for:
- Compilation output
- Register values (R0=1250)
- 3270 terminal interactions
- Stubbed connector warnings
Total: ~60 seconds for complete demo
- ✅ asm.compile - Compiles assembly code (real engine)
- ✅ asm.run - Executes bytecode (real engine)
- ✅ asm.debug - Debug session (real engine)
⚠️ zeroframe.send - 3270 send (stubbed)⚠️ zeroframe.wait - 3270 wait (stubbed)
All nodes execute successfully. Stubbed connectors are clearly marked.
New Feature: Integrated code editor for assembly programming
npm start
# Open http://localhost:3000Steps:
- Click "ASM Editor" tab in right sidebar
- Select "Simple Calculator" from template dropdown
- Click "✓ Validate" (shows "Valid assembly code (5 instructions)")
- Click "➕ Create Assemble Node"
- Node appears on canvas with code attached
- Click "
▶️ Run" to execute - Select node to view compiled artifacts (bytecode, instruction count)
What you'll see:
- Monaco editor (VS Code engine) with assembly code
- Real-time validation using asm-sandbox
- Node created with sourceCode in config
- Execution artifacts: bytecode, instructions, labels
Key Features:
- Write/edit assembly code in professional editor
- Load templates (Hello World, Calculator)
- Upload/download .asm files (200KB limit)
- Validate code before execution
- Create nodes directly from editor
- Load code from existing nodes
- View compiled artifacts after execution
Documentation: See docs/ASSEMBLER_EDITOR_GUIDE.md for complete guide
Setup:
# Set TK5 endpoint
export TK5_ENDPOINT=http://localhost:8038
# Start FlowASM
npm startRun:
- Load "TK5 Emulator Demo" workflow
- Click "
▶️ Run Workflow" - See real TK5 integration:
- IPL system
- Submit JCL job
- Check job status
Setup:
# Configure z/OS credentials (see CREDENTIALS_TEMPLATE.md)
export ZOS_ENDPOINT=https://your-zos-system.com
export ZOS_USERNAME=your_username
export ZOS_PASSWORD=your_password
# Start FlowASM
npm startRun:
- Load "z/OS Integration Example" workflow
- Click "
▶️ Run Workflow" - See real z/OS operations:
- Submit JCL to real mainframe
- Fetch SMF records
- Read datasets
-
Clear Canvas
- Click "🗑️ Clear" to start fresh
-
Drag Nodes (Future: drag-and-drop)
- Currently: Import JSON or modify existing workflows
-
Edit Node Config
- Click any node
- Edit configuration in inspector panel
- Modify description, config JSON
-
Run & Test
- Click "
▶️ Run Workflow" - Watch execution in real-time
- Check logs for details
- Click "
-
Export
- Click "💾 Export" to save as JSON
- Share with team or version control
Pass data between nodes:
{
"id": "step2",
"type": "asm.run",
"config": {
"bytecode": "{{node.step1.artifacts.bytecode}}"
}
}Syntax: {{node.<node_id>.artifacts.<field>}}
FlowASM/
├── core/
│ ├── runner.js ← Workflow orchestrator
│ ├── flow-engine.js ← Execution engine
│ └── api.js ← REST API routes
├── engines/
│ └── asm-sandbox/
│ ├── adapter.js ← Connector adapter
│ └── engine.js ← ASM engine (IPLLab port)
├── connectors/
│ ├── tk5/
│ │ └── connector.js ← TK5/Hercules connector
│ ├── zos/
│ │ └── connector.js ← z/OS connector
│ └── zeroframe/
│ └── connector.js ← 3270 terminal connector
├── workflows/
│ ├── payroll-demo.json
│ ├── tk5-demo.json
│ └── zos-integration.json
├── ui/
│ ├── index.html
│ ├── app.js
│ └── styles.css
├── docs/
│ ├── README_DEMO.md ← This file
│ └── CREDENTIALS_TEMPLATE.md
├── server.js ← Main entry point
└── package.json
Check connector availability:
curl http://localhost:3000/api/healthResponse:
{
"status": "UP",
"service": "FlowASM",
"connectors": {
"asm": "UP",
"tk5": "STUBBED",
"zos": "STUBBED",
"zeroframe": "STUBBED"
}
}Time: 60 seconds
Requirements: None
Workflow: payroll-demo.json
Result: Complete execution with stubbed connectors
Time: 90 seconds
Requirements: TK5/Hercules running
Workflow: tk5-demo.json
Result: Real mainframe operations
Time: 90 seconds
Requirements: z/OS credentials
Workflow: zos-integration.json
Result: Real z/OS job submission
Port 3000 in use:
PORT=3001 npm startWorkflow not loading:
- Check
workflows/*.jsonfiles exist - Verify JSON syntax
Connector stubbed:
- Check environment variables
- Verify endpoint availability
- See CREDENTIALS_TEMPLATE.md
Node execution fails:
- Click node to see error in inspector
- Check execution log for details
- Verify config JSON syntax
Health check and connector status
List all workflows
Get workflow definition
Execute workflow
Request:
{
"id": "my-workflow",
"name": "My Workflow",
"nodes": [...]
}Response:
{
"workflowId": "my-workflow",
"status": "SUCCESS",
"duration": 1234,
"nodes": [...]
}Theme: Combining separate systems into a unified whole
FlowASM demonstrates this by:
- Unifying IPLLab (assembly engine) + ZeroFrame (3270) + TK5 + z/OS
- Creating n8n-style visual workflow platform
- Node.js only - no Python dependencies
- Sandboxed demo with real connector options
- Try the demo - Run payroll-demo.json
- Explore workflows - Load and inspect each demo
- Edit nodes - Modify configs and re-run
- Connect real systems - Configure TK5 or z/OS
- Build custom workflows - Create your own automation
Built with Node.js only - No Python, pure npm! 🎃