build-and-verify

Builds, runs, and verifies a Z80 assembly game using SjASMPlus, ZEsarUX, and automated ZRCP test suites.

Updated Nov 29, 2024
One-click install
npx skills add https://github.com/SpeedRD/Arkanoid_Z80 --skill build-and-verify-speedrd
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: build-and-verify
Source: https://github.com/SpeedRD/Arkanoid_Z80/tree/main/.claude/skills/build-and-verify
Command: npx skills add https://github.com/SpeedRD/Arkanoid_Z80 --skill build-and-verify-speedrd

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? It prevents false claims of completion when working on this ZX Spectrum assembly project by enforcing a strict build-run-verify loop: a clean SjASMPlus build, a live ZEsarUX run via DeZog, and automated ZRCP-driven test suites that must all pass before any change is considered done. ## Core Features & Use Cases - Build discipline: Documents the build.sh wrapper that fails on any SjASMPlus warning, the rule to always assemble main.asm (never INCLUDE fragments), and the 0-errors/0-warnings baseline to hold. - Run procedure: Covers launching ZEsarUX with the remote protocol on port 10000 and connecting via the DeZog VS Code configuration, including the wedged-emulator failure mode and its pkill recovery. - Automated verification: Describes the tests/ suites (ball physics, collisions, game logic, end-to-end checklist) driven over ZRCP, plus a manual verification checklist for every change. - Use Case: After editing collision code in colisiones.asm, run the documented procedure to rebuild, execute python3 tests/run_all.py, and confirm the attribute file stays byte-identical over 200 frames before claiming the fix works. ## Quick Start Ask the assistant to build the project and run the full test suite to verify your latest change works.

Frequently Asked Questions about build-and-verify

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I build and test a SjASMPlus Z80 assembly project?

Run ./build.sh, which wraps sjasmplus with --fullpath, --lst, --sld, and --raw flags and fails unless the output reads Errors: 0, warnings: 0. Then run python3 tests/run_all.py, which rebuilds and executes every ZRCP-driven test suite against a running ZEsarUX instance.

How do I debug ZX Spectrum code with DeZog and ZEsarUX?

Start ZEsarUX with --enable-remoteprotocol --remoteprotocol-port 10000 --machine 48k, then press F5 in VS Code with the ZEsarUX launch configuration. The preLaunchTask rebuilds automatically, and DeZog connects over ZRCP to load main.bin at $8000.

Why does SjASMPlus report success but the build is broken?

SjASMPlus exits 0 even when it emits warnings, so a raw invocation can hide regressions. The build.sh script parses the Errors summary line and fails unless it is exactly 0 errors and 0 warnings.

Why does ZEsarUX ignore keyboard input and freeze the CPU?

ZEsarUX is wedged with a menu open: close-all-menus and enter-cpu-step return errors, set-ui-io-ports values never reach the ULA, and the PC stops advancing. There is no ZRCP recovery, so kill it with pkill -f 'zesarux --enable-remoteprotocol' and restart.

Can I assemble an included .asm fragment directly with SjASMPlus?

No. Every .asm file besides main.asm is an INCLUDE fragment, and assembling one directly produces Label not found errors or a garbage binary with call targets assembled as CD 00 00. Always build main.asm.