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

c64-memory-map-audit

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.

インストール方法を見る

含まれるファイル(3)

  • SKILL.md3.1 KB
  • agents/openai.yaml214 B
  • references/memory-map.md5.0 KB

SKILL.md(原文)

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

C64 Memory Map Audit

Core Workflow

Use this skill to audit whether EMULATORS presents the same memory view as real C64 hardware.

  1. Read references/memory-map.md before making claims or edits.
  2. Inspect the relevant implementation paths first:
    • include/C64/Memory.hpp, src/C64/Memory.cpp
    • include/C64/PLA.hpp, src/C64/PLA.cpp
    • include/C64/IO6510PortRegisters.hpp, src/C64/IO6510PortRegisters.cpp
    • include/C64/ColorMemory.hpp, src/C64/ColorMemory.cpp
    • include/C64/Cartridge.hpp, src/C64/Cartridge.cpp
    • include/C64/IOExpansionMemory.hpp, src/C64/IOExpansionMemory.cpp
    • chip register classes under include/C64, src/C64, include/COMMODORE, and src/COMMODORE
  3. When changing C++ code, also use $emulators-framework-cpp-style.
  4. Separate CPU-visible mapping from VIC-visible mapping. The CPU sees PLA-selected RAM/ROM/I/O overlays; the VIC sees a selected 16 KB bank plus its own color/char-ROM behavior.
  5. For findings, cite the address range, controlling signal/bit, expected visibility, and the class or method that violates it.
  6. Audit every MCHEmul::Address construction that uses byte lists. Never use the ambiguous form MCHEmul::Address ({ xx, xx }): overload resolution can select Address (size_t, unsigned int) instead of a byte-container constructor. Always pass the endian flag explicitly, for example MCHEmul::Address ({ 0x00, 0xd0 }, false) for the framework's little-endian address notation, and verify the resulting address size and numeric value.

Audit Priorities

Prioritize correctness in this order:

  • $0000/$0001 6510 port DDR/data behavior and whether LORAM/HIRAM/CHAREN only act when configured as outputs.
  • PLA decoding for RAM, BASIC ROM, KERNAL ROM, character ROM, I/O, color RAM, cartridge ROML/ROMH, GAME, EXROM, and Ultimax-like open regions.
  • Writes through visible ROM to underlying RAM.
  • I/O range decoding and mirroring: VIC-II, SID, color RAM, CIA1, CIA2, IO1, IO2.
  • VIC memory bank selection through CIA2 PA0/PA1, including inverted bank encoding and char ROM visibility in VIC banks 0 and 2.
  • Color RAM as 1 KB x 4-bit storage with open/high-nibble read behavior.

Validation Hints

Prefer small address-decoder tests over broad emulator smoke tests. Useful existing assets include:

  • emulators/C64Programs/Code/Macros/MVICII.asm
  • emulators/C64Programs/Code/Macros/MCIAS.asm
  • emulators/C64Programs/Code/Tests/TESTGRAPHMODES.asm
  • emulators/C64Programs/Code/Tests/TESTHRESMODES.asm
  • emulators/C64Programs/Code/Tests/TESTCIA1.asm
  • emulators/C64Programs/Code/Tests/TESTCIA2NMI.asm

When proposing a correction, include at least one read path and one write path if the change touches mapped memory.

レビュー

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

同じリポジトリのスキル

概要と使いどころ

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月9日 更新

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月9日 更新

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月9日 更新

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月9日 更新

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月9日 更新

Validate Commodore 64 VIC-II emulation in EMULATORS, including $D000-$D3FF register behavior, PAL/NTSC timing, raster counters, badlines, BA/AEC bus stealing, video matrix and bitmap fetches, sprites, collisions, borders, IRQs, color RAM usage, and display modes. Use when Codex reviews or edits VICII, Screen, Memory/PLA, raster, sprite, video, or cycle-level behavior for C64 classes.

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

Commnets/EMULATORS102026年10月9日 更新

Commnets のスキルをすべて見る

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