Skip to content

Comprehensive project modernization: tests, upgrades, docs - #35

Open
santatamas wants to merge 1 commit into
masterfrom
upgrade/comprehensive-modernization
Open

Comprehensive project modernization: tests, upgrades, docs#35
santatamas wants to merge 1 commit into
masterfrom
upgrade/comprehensive-modernization

Conversation

@santatamas

Copy link
Copy Markdown
Owner

This pull request was created by @kiro-agent on behalf of @santatamas 👻

Comment with /kiro fix to address specific feedback or /kiro all to address everything.
Learn about Kiro Web


Summary

This PR comprehensively modernizes the go-c64 emulator project:

Go Backend Upgrades

  • Initialized Go modules (go.mod) - project was using GOPATH previously
  • Upgraded tcell from v1.4.1 → v2.7.4 (updated all import paths)
  • Upgraded dependencies - gorilla/websocket v1.5.3, golang.org/x/sys v0.17.0, go-colorful v1.2.0
  • Replaced deprecated io/ioutil with modern io package equivalents
  • Fixed bugs - CIA UnsetKey bit-clear logic, vet errors in log.Printf calls

Comprehensive Unit Tests (285 total)

  • MOS6510: 141 instruction tests covering all 56 opcodes with multiple addressing modes
  • Stack, status flags, CIA, RAM bank switching, VIC2 display, numeric utilities, internals
  • All tests pass

Angular Debug UI (Angular 7 → Angular 19)

  • Migrated to standalone components (no NgModule)
  • Using new application builder (@angular-devkit/build-angular:application)
  • ES2022 target, TypeScript 5.5, RxJS 7.8
  • Angular Material 19.2 with inline templates
  • Production build: 302KB initial (75KB transfer)

Documentation

  • README.md - Complete rewrite with architecture, usage, API docs
  • docs/ARCHITECTURE.md - System design, data flow diagrams, package details
  • docs/DEVELOPMENT.md - Development guide, testing, adding new instructions
  • docs/DEBUG_UI.md - WebSocket protocol, UI usage guide

What was tested

  • go build succeeds
  • go test ./... - all 285 tests pass
  • ng build - Angular frontend builds successfully
  • All existing functionality preserved

- Initialize Go modules (go.mod) with Go 1.25.1
- Upgrade tcell from v1.4.1 to v2.7.4 (updated import paths)
- Upgrade gorilla/websocket to v1.5.3
- Replace deprecated io/ioutil with io package
- Fix CIA vet errors (non-constant format strings in log.Printf)
- Fix UnsetKey bit-clear logic (was &= 0<<col, now &= ^(1<<col))

Unit Tests (285 total):
- MOS6510: 141 instruction tests covering all 56 opcodes
- MOS6510: 11 status flag tests with clear/set verification
- MOS6510: 7 stack operation tests (push/pop/LIFO/wrap)
- CIA: 17 tests (keyboard matrix, interrupt, register I/O)
- RAM: 22 tests (bank switching, CIA routing, ROM/RAM access)
- VIC2: 38 tests (character conversion, color mapping)
- numeric: 32 tests (byte ops, bit testing, roundtrips)
- internals: 17 tests (command serialization)

Angular Debug UI (upgraded from Angular 7 to Angular 19):
- Migrated to standalone components (no NgModule)
- Using new application builder
- ES2022 target with bundler module resolution
- Angular Material 19.2 with inline templates
- RxJS 7.8, zone.js 0.15, TypeScript 5.5

Documentation:
- Comprehensive README with architecture, usage, and API docs
- docs/ARCHITECTURE.md - System design and data flow
- docs/DEVELOPMENT.md - Development guide and testing
- docs/DEBUG_UI.md - Debug UI protocol and usage

Co-authored-by: Tamas Santa <2805399+santatamas@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants