本文へ移動
cccskills
無料GitHub で公開

vic20-via-audit

Audit MOS 6522 VIA emulation and VIC20 VIA1/VIA2 wiring in EMULATORS, including timers, ports and DDRs, handshake, shift register, IFR/IER, IRQ/NMI, keyboard, joystick, cassette, IEC, and user port. Use for VIC20 VIA code reviews and timing or I/O trace diagnosis.

日本語の概要は準備中です。原文の説明を表示しています。

Commnets/EMULATORSスター 10(GitHub 10 + cccskills 0)

実行スコア 未検証

インストール方法を見る

含まれるファイル(5)

  • SKILL.md4.2 KB
  • agents/openai.yaml243 B
  • references/sources.md5.8 KB
  • references/via.md11.9 KB
  • references/VIA.pdf9.8 MB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

VIC20 VIA Audit

Audit the generic NMOS 6522 contract separately from the wiring of the two VIC20 VIAs. An audit request does not authorize implementation changes; follow the user's requested scope.

Read and route

  • Read references/via.md for registers, timing, pin allocation, and validation cases.
  • Read references/sources.md when establishing a hardware requirement, resolving conflicting manuals, or identifying a chip revision. It indexes the supplied VIA datasheet, Mapping the VIC, original manufacturer documentation, and independent emulator implementations.
  • For raster effects synchronized by VIA timers, also use $vic20-vici-audit. For execution logs, use $emulators-debug-log-audit and inspect the actual VIA debug producers before interpreting fields.
  • When implementation is authorized, use $emulators-framework-cpp-style; when compiling or running locally on Windows, use $emulators-windows-build-runtime.

Repository entry points

Inspect only paths relevant to the question; verify the current implementation rather than treating these references as a description of its present behavior.

  • Generic chip: include/COMMODORE/VIA/ and src/COMMODORE/VIA/: VIA, VIARegisters, VIATimer, VIAPort, VIAControlLines, VIAShiftRegister. Some port methods are inline in headers.
  • Machine wiring: include/VIC20/VIA1*, src/VIC20/VIA1*, include/VIC20/VIA2*, src/VIC20/VIA2*.
  • Address decode and construction: src/VIC20/Memory.cpp, include/VIC20/Memory.hpp, src/VIC20/VIC20.cpp.
  • Inputs and peripherals: VIC20 OSIO, DatasettePort, 1530Datasette, IOPBuilder, and the actual IEC/trap path selected by the configuration. Do not equate a KERNAL trap with emulation of electrical bus transitions.
  • CPU sampling and bus timing: src/CORE/CPU.cpp, include/CORE/Instruction*, src/F6500/IRQInterrupt.cpp, and src/F6500/NMIInterrupt.cpp.

Audit method

  1. Identify VIA1 at $9110 versus VIA2 at $9120, the connected CPU interrupt input, selected 6522 variant, video standard, and active CPU execution mode.
  2. Reconstruct configuration from actual writes to DDR, ACR, PCR, timer latches/counters, and IER. Reset defaults and KERNAL initialization are different events.
  3. Track output latch, external pins, DDR, input latch, control-line levels/edges, timer counter/latch/phase, IFR flags, IER mask, and output interrupt level separately.
  4. Place accesses at their CPU bus cycle. In full-instruction mode, advancing a timer once per recovered cycle is insufficient if a write has already been applied at instruction start. Check dummy writes of 6502 read-modify-write instructions as well as the final write.
  5. Separate hardware timeout, assertion of the VIA IRQ output, CPU sampling, and handler entry. Repeated requests while the line remains asserted are not fresh edges; a held VIA1 output must not create repeated NMIs.
  6. Produce findings with exact source method, register/bit, configuration, expected transition, observed transition, affected cycles, and evidence/confidence. Distinguish specification discrepancies, implementation defects, trace limitations, and hypotheses.

Focused verification

Existing assembly assets under emulators/VIC20Programs/Code/Tests/ include TESTVIAPORTDDR.asm, TESTVIAHANDSHAKE.asm, TESTVIAT1PB7.asm, TESTVIAT2PHI2.asm, TESTVIAT2PB6.asm, TESTVIASHIFT.asm, and TESTVIA2.asm. Read their assertions and completion criteria before using them as conformance evidence; their names alone do not establish coverage.

For a timer audit, compare counter reads and IFR/PB7 timing around zero and reload, including small latch values, instead of checking only average interrupt frequency. For visible drift, compare the same register write's raster position over successive frames. Do not encode game-specific compensation or presume that fixing a timer proves all missing graphics are fixed.

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

コメント

ログインなしで書き込めます。使ってみた感想、質問、動かなかった環境などを気軽にどうぞ。

まだコメントはありません。最初のコメントを書いてみませんか。

送信するとすぐに公開されます。メールアドレスや電話番号などの個人情報は書かないでください。URL は 2 つまでです。

0 / 1000 文字

このフォームは reCAPTCHA で保護されており、Google のプライバシーポリシーと利用規約が適用されます。

同じリポジトリのスキル

Validate Commodore 1540/1541/1541C/1541-II compatible disk-drive behavior in EMULATORS, including IEC serial bus protocol, device numbers, KERNAL traps, CBM DOS commands/status, D64 image parsing, BAM/directory/file chains, PETSCII filenames, 6502 drive CPU/ROM/RAM expectations, 6522 VIA wiring, GCR/track/sector geometry, motor/head timing, and compatibility boundaries for 1541-like devices. Use when Codex reviews or edits C64, VIC-20, C264, COMMODORE disk, serial I/O, D64, CBM DOS, IEC, VIA, GCR, or 1541 drive code.

日本語の概要は準備中です。原文の説明を表示しています。

Commnets/EMULATORS102026年10月28日 更新

Validate Commodore 64 CIA 6526 emulation in EMULATORS, including CIA1/CIA2 $DC00/$DD00 register behavior, ports, DDRs, keyboard/joystick matrix, IEC/user port, VIC bank selection, timers A/B, underflow timing, PB toggle/pulse output, TOD clock/alarm, serial shift register, FLAG, ICR masks and IRQ/NMI lines. Use when Codex reviews or edits C64 CIA, timers, ports, keyboard, joystick, serial bus, interrupts, TOD, or VIC bank control.

日本語の概要は準備中です。原文の説明を表示しています。

Commnets/EMULATORS102026年10月28日 更新

Validate Commodore 64 memory map, PLA/bank switching, 6510 port $0000/$0001 behavior, VIC bank selection, color RAM, ROM/RAM overlays, cartridge mapping, and mirrored I/O in the EMULATORS C64 namespace. Use when Codex reviews or edits C64 memory, PLA, CPU-visible address decoding, VIC-visible memory, color memory, char ROM, cartridge, expansion I/O, or mapped chip register behavior.

日本語の概要は準備中です。原文の説明を表示しています。

Commnets/EMULATORS102026年10月28日 更新

Validate Commodore MPS-801 serial dot matrix printer behavior in EMULATORS, including SerialPrinterMPS801 classes and their MatrixPrinterEmulation and SerialPrinterPeripheralSimulation hierarchy, IEC/KERNAL-trap printer routing, device numbers, secondary addresses, PETSCII/character sets, 6x7 glyphs, double width, graphics mode, reverse field, tab and dot positioning, line/page geometry, PostScript output, and fidelity boundaries. Use when Codex reviews or edits COMMODORE MPS801 printer code, generated printer output, PostScript printer templates, C64/VIC-20/C264 serial-printer behavior, or compares implementation against .codex/docs/MPS801.pdf and historical MPS-801 sources.

日本語の概要は準備中です。原文の説明を表示しています。

Commnets/EMULATORS102026年10月28日 更新

Validate Commodore MPS-802 and 1526 serial dot matrix printer behavior in EMULATORS, including SerialPrinterMPS802 classes and their MatrixPrinterEmulation and SerialPrinterPeripheralSimulation hierarchy, IEC/KERNAL-trap printer routing, device numbers, secondary-address functions, PETSCII/character sets, 8x8 glyphs, enhanced width, reverse and paging modes, formatter strings, programmable characters, line/page geometry, PostScript output, and fidelity boundaries. Use when Codex reviews or edits COMMODORE MPS802 printer code, generated printer output, PostScript printer templates, C64/VIC-20/C264 serial-printer behavior, or compares implementation against .codex/docs/MPS802.pdf, the MPS-802 user guide, and 1526/MPS-802/4023 service information.

日本語の概要は準備中です。原文の説明を表示しています。

Commnets/EMULATORS102026年10月28日 更新

Validate Commodore 64 SID 6581/8580 sound emulation in EMULATORS, including $D400-$D7FF register decoding, voices, frequency, pulse width, control bits, ADSR/envelope behavior, oscillator sync/ring/noise/test, filters, volume DAC/sample clicks, paddles, read-only registers, mirrors, and reSID integration. Use when Codex reviews or edits SID, Sound, audio wrapper, register, filter, waveform, envelope, or mapped SID behavior.

日本語の概要は準備中です。原文の説明を表示しています。

Commnets/EMULATORS102026年10月28日 更新

Commnets のスキルをすべて見る

このスキルの問題を報告する