SkillAgentSearch skills...

C64uhex

A Commodore 64 Hex Editor

Install / Use

/learn @drericflores/C64uhex
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

C64UHEX — Commodore 64 Ultimate Hex Editor

CODE NOT READY! This is for demonstration purposes ONLY -- Currently developing an Assembly/C hybrid version. The C64U has proven to be more challenging than expected to program.

C64UHEX is a native hex editor for the Commodore 64, designed to run on real hardware, the Commodore 64 Ultimate, and emulators such as VICE. It provides professional, byte-level inspection and modification of binary data using a true PETSCII interface, respecting the constraints and character semantics of the original platform.

This project is focused on correctness, stability, and historical authenticity, not modern abstractions.


🎯 Purpose & Scope

C64UHEX exists to fill a long-standing gap on the Commodore 64 platform: a real, usable hex editor comparable in workflow (not scale) to modern tools such as Hex Editor Neo, adapted for a 40×25 PETSCII display and 8-bit memory model.

It is intended for:

  • Binary inspection and modification
  • Reverse-engineering and analysis
  • Educational exploration of low-level data
  • Preservation and tooling for vintage computing

✅ What C64UHEX IS

  • A true hex editor, not a memory monitor
  • Overwrite-mode byte editor (hex-authoritative)
  • PETSCII-native character view (not ASCII emulation)
  • Paged buffer design supporting files larger than RAM
  • IEC device-agnostic (devices 8–15)
  • Designed for real C64 hardware
  • Written in C using the cc65 / cl65 toolchain
  • Distributed as a .PRG executable

❌ What C64UHEX IS NOT

  • ❌ Not a BASIC program
  • ❌ Not an ASCII editor
  • ❌ Not a modern filesystem browser
  • ❌ Not a debugger or disassembler
  • ❌ Not a GUI application in the modern sense
  • ❌ Not designed for speed over correctness
  • ❌ Not a replacement for modern hex editors

C64UHEX deliberately avoids features that would compromise determinism, authenticity, or hardware compatibility.


✨ Core Features

  • Hex Data Grid

    • 8 bytes per row
    • Nibble-level cursor editing
  • PETSCII Interpretation Pane

    • Accurate rendering of Commodore character codes
  • Paged ViewBuffer

    • 160-byte window cache (20×8)
    • Supports large files via on-demand paging
  • Cursor-centric Navigation

    • Arrow-key movement
    • Goto offset
  • Find

    • Hex or PETSCII search modes
  • Device-Independent File I/O

    • IEC devices 8–15
  • Runs on Real Hardware

    • Tested on Commodore 64 Ultimate and VICE

🛠 Build Instructions (Host System)

C64UHEX is developed on a modern system and cross-compiled.

Requirements

  • cc65 toolchain
  • GNU make
  • Linux, BSD, or macOS (tested on Pop!_OS)

Build

make

The resulting file:

build/C64UHEX.PRG

Load on real hardware or emulator:

LOAD"C64UHEX.PRG",8,1
RUN

🧠 Technical Design Notes

  • Hex view is authoritative PETSCII is a representation, not the source of truth.

  • Strict module separation

    • buffer → authoritative file access
    • viewbuffer → paged cache
    • ui/grid/screen → rendering only
    • state/input → interaction logic
  • No dynamic allocation

    • Deterministic memory usage
  • No ASCII assumptions

    • All character handling is PETSCII-aware

📚 Educational & Preservation Notice

This application is provided freely for learning and historical preservation purposes. No fees are required to read, use, or share this material.

Optional Support

If you find this project helpful and wish to support the author, you may optionally buy me a beer via PayPal at:

PayPal: @floreseo

(Completely optional — education comes first.)


🤝 Collaboration & Contributions

Contributions are welcome and encouraged, especially from developers interested in:

  • cc65 development
  • PETSCII UI design
  • Commodore file systems
  • Retro-computing tooling

⚠️ Important Collaboration Policy

Please do NOT submit experimental or developmental changes to this main repository.

This repository is treated as a stable reference implementation.

👉 All active development, experimentation, and collaboration must occur in:

c64uhex2

Once features mature and stabilize, they may be selectively merged back into C64UHEX.

This policy exists to:

  • Preserve build stability
  • Maintain a clean historical baseline
  • Avoid breaking real hardware users

📄 License

MIT License © 2026 — Dr. Eric Oliver Flores

View on GitHub
GitHub Stars4
CategoryDevelopment
Updated2mo ago
Forks0

Languages

C

Security Score

85/100

Audited on Jan 8, 2026

No findings