Peripheral card emulation for eight-bit machines on the RP2350 (NKC, Taylorix S4)
  • C 87.3%
  • HTML 4.9%
  • Python 4.7%
  • Assembly 1.7%
  • CMake 1.4%
Find a file
Hans Hübner 1ed59f42ff fix(lifesign): tell a bite by the reason register; leave the watchdog unarmed
The SDK's watchdog_caused_reboot() looks for its own magic in scratch 4,
which the bootrom overwrites, so a bite went unreported.  The reason
register says the watchdog reset the chip; the bootrom's own reboots go
through it too, so the marker in RAM -- cleared by lifesign_disarm()
before every reboot the firmware asks for -- tells a bite from a
hand-over.  `spin <seconds>` stops the console's core for a bounded
time, to show the bite.

The watchdog stays unarmed for now: a board it has reset runs for a
while and then wedges -- something the reset leaves as it was -- so a
bite costs a power cycle where a hang already did.  The heartbeat and
the stage note stay in place for when that is understood.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014MUQj5GgU9irtPhYngALDp
2026-08-30 12:09:34 +02:00
kogge fix: keep the reboot's parameters and the settings out of harm's way 2026-08-30 11:35:39 +02:00
nkc fix(lifesign): tell a bite by the reason register; leave the watchdog unarmed 2026-08-30 12:09:34 +02:00
s4 The S4 bus front end, capture only 2026-08-10 20:40:13 +02:00
.gitignore chore: ignore KiCad lock files 2026-08-22 08:34:34 +02:00
.gitmodules Split the tree into kogge, nkc and s4 2026-08-10 19:03:53 +02:00
CLAUDE.md docs: write commit messages as conventional commits 2026-08-13 22:09:30 +02:00
CMakeLists.txt perf: run the cards' answer path from RAM 2026-08-30 06:34:57 +02:00
LICENSE Emulate the GDP64HS graphics card on the host 2026-08-03 07:04:41 +02:00
README.md The line discipline moves into the kogge 2026-08-10 19:14:19 +02:00

Hanse

Peripheral card emulation for eight-bit machines on the RP2350. One league, several cities: each machine keeps its own bus front end and card set, and they trade over shared cargo the way the cities traded over one ship.

Directory What it is
kogge/ The shared cargo: the console's line discipline, WiFi bring-up and telnet transport, HTTP client for disk images and files, WebSocket plumbing, SD card access, VNC authentication, and the host-side development server
nkc/ The NDR-Klein-Computer (Z80): GDP64HS graphics on HDMI, KEY, SOUND, FLO3, IO-USB and UHR3 cards, on the luebeck and stralsund boards
s4/ The Taylorix S4 (8085): a backplane card providing the machine's serial channels and the WD hard-disk interface

The machine directories carry the firmware builds (for the NKC, cmake -S nkc/firmware -B build-luebeck -G Ninja -DHANSE_VARIANT=luebeck); the top-level CMakeLists builds the emulation cores, host tools and tests:

cmake -S . -B build -G Ninja
cmake --build build
ctest --test-dir build