This is an IBM 1130 emulator modified to build and run with .NET Core, compatible with Linux, Mac, and Windows.
The emulator provides a complete IBM 1130 system simulation including:
- CPU instruction set implementation
 - Device emulation (2501 card reader, 2310 disk drive)
 - Memory management
 - Interrupt handling
 
- 
Clone the repository:
git clone https://github.com/semuhphor/S1130.git cd S1130 - 
Restore dependencies and build:
 
Execute the comprehensive test suite:
The project includes 335+ unit tests covering CPU instructions, device operations, and system integration scenarios. Test execution typically completes in under 2 seconds.
- Passed/Failed/Skipped counts: Summary of test execution results
 - Performance metrics: The test suite includes performance benchmarks (e.g., "1M Instructions in 1000ms")
 - Coverage: Tests validate instruction execution, device behavior, and edge cases
 
- ✅ CPU Core: Fully functional instruction set implementation
 - ✅ 2501 Card Reader: Complete with test coverage
 - 🚧 2310 Disk Drive: Partial implementation in progress
 - 📋 PowerShell Integration: Legacy script available but untested
 
We welcome contributions! Please see CONTRIBUTING.md for guidelines on:
- Code style and conventions
 - Testing requirements
 - Pull request process
 
- Test-Driven Development: All new code should include comprehensive unit tests
 - Documentation: Public APIs should include XML documentation comments
 - Error Handling: Exception-prone areas require robust error handling and clear failure modes
 
This project maintains the original licensing terms. Please see the repository for specific license information.
Thanks,
Bob Flanders and contributors
The project includes a backend Web API and an optional React frontend. Here are the steps to run both locally on Windows PowerShell.
Prerequisites:
- .NET 8 SDK (global.json pins 8.0.414)
 - Node.js and npm (only required for the frontend)
 
Run the backend (Web API):
dotnet restore
dotnet build
dotnet run --project src\S1130.WebApi\S1130.WebApi.csprojBy default the API listens on http://localhost:5000. You can configure the frontend to point to a different URL via the environment variable REACT_APP_API_URL.
Run the frontend (optional):
cd web-frontend
npm ci      # or npm install
npm startBuild the frontend for production:
cd web-frontend
npm run buildRun tests for the backend and frontend:
dotnet test
cd web-frontend; npm testOptional: use Docker to build images defined in docker-compose.yml (if present).