Skip to content
cccskills
FreePublished on GitHub

c64-mps801-printer-audit

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.

The English summary is being prepared. Showing the original description.

See how to install

Files included (3)

  • SKILL.md5.1 KB
  • agents/openai.yaml257 B
  • references/mps801.md4.0 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

C64 MPS-801 Printer Audit

Core Workflow

Use this skill to audit whether EMULATORS models a Commodore MPS-801 at the intended fidelity level.

  1. Read references/mps801.md before making claims or edits.
  2. Identify the intended behavior tier before judging correctness:
    • Basic text sink: validate printable character filtering, uppercase/lowercase mode, line breaks, double width, output file semantics.
    • PostScript glyph model: validate 6x7 glyph data, graphics bytes, reverse mode, dot positioning, tab positioning, line/page geometry, and required PSMPS801MatrixPrinter*.ps files.
    • Serial-printer peripheral: validate KERNAL-trap LISTEN/OPEN/CLOSE/SEND routing, device number behavior, secondary addresses, and active-function lifetime.
    • Hardware/firmware model: only require internal CPU, RAM/ROM, bus timing, buffer, and mechanical behavior if the implementation explicitly claims that tier.
  3. Inspect local implementation paths first:
    • include/COMMODORE/SerialPrinterMPS801.hpp, src/COMMODORE/SerialPrinterMPS801.cpp
    • include/CORE/MatrixPrinterEmulation.hpp, src/CORE/MatrixPrinterEmulation.cpp
    • include/COMMODORE/SerialPrinters.hpp, src/COMMODORE/SerialPrinters.cpp
    • include/COMMODORE/SerialIOPeripherals.hpp, src/COMMODORE/SerialIOPeripherals.cpp
    • include/COMMODORE/IOPBuilder.hpp, src/COMMODORE/IOPBuilder.cpp
    • include/C64/StdSerialPrinter.hpp, src/C64/StdSerialPrinter.cpp, and the VIC-20/C264 equivalents when host printer registration matters.
    • PSMPS801MatrixPrinterI.ps and PSMPS801MatrixPrinterII.ps copies under projects/, setups/, emulators/, and monitors/ when PostScript rendering is involved.
  4. Compare against .codex/docs/MPS801.pdf first. Use the external URLs in references/mps801.md to verify historical/spec claims when internet access is available or when the user asks for web confirmation.
  5. When changing C++ code, also use $emulators-framework-cpp-style.
  6. When host-side C64 CIA2 IEC wiring, not just KERNAL traps, is involved, also use $c64-cia-audit.
  7. Report whether each issue is a bug inside the current fidelity tier or a missing higher-fidelity feature.

Audit Priorities

Prioritize correctness in this order:

  • Scope honesty: distinguish an output-file printer simulation from a firmware, timing, or mechanism-accurate MPS-801.
  • Device and channel behavior: device selector positions 4/5/T, default printer device use, secondary address 0 for cursor-up graphics/uppercase mode and 7 for cursor-down upper/lowercase mode, and active function reset on LISTEN/CLOSE.
  • Character sets: PETSCII to printer-code handling, cursor-up and cursor-down tables, business mode, graphical characters, reverse field, and use of the MPS801 ROM-derived glyph comments in SerialPrinterMPS801.cpp.
  • Control codes: 0x08 graphics mode, 0x0a line feed, 0x0e double width, 0x0f standard width, 0x10 tab/position setup, 0x11 cursor down, 0x12 reverse on, 0x1a repeat graphic data, 0x1b dot address setup, 0x91 cursor up, and 0x92 reverse off.
  • Graphics and positioning: 7 vertical printable dots, 480 horizontal dot positions, dot-address limits, tab behavior, graphic-byte interpretation, repeat-graphics behavior, and automatic print behavior at line/buffer limits.
  • Page geometry: 80 columns, 6 LPI in character/double-width modes, 9 LPI in graphics mode, 66 lines on 11-inch paper, paper border handling, and PostScript scale constants.
  • Basic vs PostScript parity: document any behavior supported only in MPS801PostscriptMatrixPrinterEmulation and not in MPS801BasicMatrixPrinterEmulation.
  • Compatibility limits: do not require 8039 firmware execution, 90-byte line-buffer timing, unidirectional head timing, motor/hammer mechanics, or serial-bus electrical timing unless the implementation claims those features.

Validation Hints

Prefer focused probes:

  • BASIC/KERNAL snippets that OPEN the printer on device 4 or 5, choose secondary addresses 0 and 7, send PETSCII uppercase/lowercase text, and CLOSE the channel.
  • Byte streams that exercise each control code, especially mixed double width, graphics mode, reverse field, tab/dot positioning, and return to standard mode.
  • Output-file assertions for basic mode and PostScript token checks for glyph definitions, page setup, drawByteBits, page breaks, and missing template-file logging.
  • Tests that separate serial-routing failures from matrix-printer rendering failures.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

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.

The English summary is being prepared. Showing the original description.

Commnets/EMULATORS10Updated Oct 18, 2026

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.

The English summary is being prepared. Showing the original description.

Commnets/EMULATORS10Updated Oct 18, 2026

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.

The English summary is being prepared. Showing the original description.

Commnets/EMULATORS10Updated Oct 18, 2026

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.

The English summary is being prepared. Showing the original description.

Commnets/EMULATORS10Updated Oct 18, 2026

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.

The English summary is being prepared. Showing the original description.

Commnets/EMULATORS10Updated Oct 18, 2026

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.

The English summary is being prepared. Showing the original description.

Commnets/EMULATORS10Updated Oct 18, 2026

See all skills by Commnets

Report a problem with this skill