PETSCII to ASCII Converter

Decodes space-separated Commodore 64 unshifted PETSCII hex byte values back into ASCII text; since unshifted PETSCII has no lowercase letters to begin with, every decoded letter comes out uppercase, stated explicitly rather than presented as a full case-preserving round trip. A free online tool from Staaarter, right in your browser.

Runs locallyUpdated 2026-07-27

Overview

Introduction

PETSCII byte dumps show up when reverse-engineering C64 programs, reading a disk image's screen memory, or working with retro-computing tooling, and turning those bytes back into readable text needs the same unshifted-mode table its encoder uses.

This tool decodes space-separated unshifted PETSCII hex bytes back into ASCII text, stating plainly that letters always come back uppercase since that's all unshifted PETSCII can represent.

What Is PETSCII to ASCII Converter?

A reverse lookup for Commodore 64 unshifted PETSCII: given a hex byte 0x20-0x7E, it returns the ASCII character that byte represents.

It's the direct inverse of ASCII to PETSCII Converter, sharing that tool's near-identity byte mapping, with the same documented no-lowercase limitation carried through.

How PETSCII to ASCII Converter Works

The input is split on whitespace into 2-digit hex tokens (case-insensitive), each parsed and checked against the printable range 0x20-0x7E.

A byte in that range converts directly to its ASCII character via String.fromCharCode; a byte outside it, control codes or unassigned values, is rejected with a specific error.

When To Use PETSCII to ASCII Converter

Use it to read PETSCII byte sequences pulled from C64 screen memory dumps, disk image analysis, or emulator debugging output.

It's also the quickest way to verify an ASCII to PETSCII Converter round trip for uppercase-only text.

Features

Advantages

  • Shares its byte table directly with ASCII to PETSCII Converter for a guaranteed consistent round trip on uppercase-only text.
  • Accepts hex input case-insensitively, so pasted-in dump data doesn't need reformatting first.
  • States the uppercase-only limitation directly in its output expectations rather than leaving users to discover it by surprise.

Limitations

  • Always decodes letters as uppercase; unshifted PETSCII genuinely has no lowercase byte values to decode differently.
  • Only covers the unshifted/default PETSCII mode; shifted-mode byte values aren't recognized here.

Examples

Decoding printable PETSCII bytes

Input

48 45 4C 4C 4F

Output

HELLO

Each byte value matches its ASCII counterpart directly, decoding to the uppercase word "HELLO".

Rejecting a byte outside the printable range

Input

01

Output

Error: byte "01" at position 1 is outside 0x20-0x7E, this converter only supports the printable unshifted PETSCII range.

Byte 0x01 falls in PETSCII's control-code region, a separate system this converter doesn't decode.

Best Practices & Notes

Best Practices

  • Don't expect lowercase output; if your source data is genuinely shifted-mode PETSCII with real lowercase letters, this unshifted-only decoder isn't the right tool for it.
  • Cross-check unfamiliar byte values against ASCII to PETSCII Converter's examples if a decode result looks unexpected.

Developer Notes

Parses each hex token with parseInt(token, 16), checks it falls within 32-126, and converts with String.fromCharCode; deliberately doesn't attempt any shifted-mode lookup table, since that would require a genuinely different byte-to-character mapping this tool doesn't implement.

PETSCII to ASCII Converter Use Cases

  • Reading PETSCII byte sequences from C64 screen memory dumps or disk image analysis tools
  • Verifying an ASCII to PETSCII Converter round trip for uppercase-only text
  • Demonstrating unshifted PETSCII's near-identity relationship to ASCII for the printable byte range

Common Mistakes

  • Expecting lowercase letters in the output; unshifted PETSCII has none to decode.
  • Feeding in shifted-mode PETSCII byte values expecting the same table to apply; shifted mode reassigns several of these byte values differently.

Tips

  • If your decoded text looks like plain uppercase ASCII, that's expected, it means the source data is in unshifted PETSCII's ASCII-compatible printable range.
  • The rejection error names the exact out-of-range byte and its position, useful for spotting where control-code bytes appear in a mixed dump.

References

Frequently Asked Questions