Repolode
yarufu

yarufu/PC98QR

Transfers binary files from an NEC PC-98 to Windows 11 by splitting them into QR codes that are photographed with a phone.

Stars
3
Forks
0
Open issues
0
Last commit
10 days ago

What is it?

PC98QR is an experimental tool for moving binary files from a vintage NEC PC-98 running MS-DOS to a Windows 11 machine without serial cables or a network. The DOS program QRTEST.EXE splits a file into multiple QR codes and displays them on the PC-98 screen, and the user photographs each code with a smartphone.

On the Windows side, a Python script reads the photos with OpenCV and zxing-cpp, reassembles the original file, and restores its DOS 8.3 filename. A drag-and-drop BAT file is also provided. The project includes a host test suite and an ia16-elf-gcc build for the DOS executable.

The author reports a successful transfer of a 29,198-byte MAG image split into 10 codes on a PC-9821Ra43, verified by SHA-256 match. Frame switching and capture are manual, and there is no per-transfer identifier or whole-file CRC, so the project is documented as experimental.

Key features

  • 01Splits a binary file into multiple QR codes shown on the PC-98 screen.
  • 02Restores the original file on Windows from phone photos of the codes.
  • 03Transfers data without character encoding conversion.
  • 04Restores files under their original DOS filenames.
  • 05Provides a drag-and-drop BAT file and a command-line Python script for reassembly.

Use cases

  • Moving retro PC-98 image or data files to a modern Windows PC without network or serial hardware.
  • Studying how QR codes can carry binary data between very old and new systems.
  • Preserving files from vintage DOS machines where other transfer methods are unavailable.

Quick start

  1. 1

    Install the Windows-side Python libraries

    python -m pip install opencv-python zxing-cpp
  2. 2

    Build the PC-98 program from source (requires ia16-elf-gcc)

    make all
  3. 3

    Download the prebuilt QRTEST.EXE and tools from GitHub Releases (planned)

Things to know

  • Requires a real NEC PC-98 machine and MS-DOS to display the QR codes.
  • QR code switching and photographing are manual; there is no automatic capture.
  • Prebuilt binaries are only planned for release, and building from source needs the ia16-elf-gcc toolchain.
  • Experimental software with no transfer-level identifier or whole-file CRC, so verify restored files with SHA-256.

Topics

FAQ

What is PC98QR?
Transfers binary files from an NEC PC-98 to Windows 11 by splitting them into QR codes that are photographed with a phone. PC98QR is an experimental tool for moving binary files from a vintage NEC PC-98 running MS-DOS to a Windows 11 machine without serial cables or a network. The DOS program QRTEST.EXE splits a file into multiple QR codes and displays them on the PC-98 screen, and the user photographs each code with a smartphone.
Is PC98QR free to use? What license does it have?
PC98QR is open source under the MIT license. Check the license terms before using it in commercial products.
Is PC98QR still maintained?
Actively maintained. The last commit to PC98QR was on Oct 28, 2026.
What can I use PC98QR for?
Moving retro PC-98 image or data files to a modern Windows PC without network or serial hardware. Studying how QR codes can carry binary data between very old and new systems. Preserving files from vintage DOS machines where other transfer methods are unavailable.
How do I install PC98QR?
Install the Windows-side Python libraries: python -m pip install opencv-python zxing-cpp Build the PC-98 program from source (requires ia16-elf-gcc): make all Download the prebuilt QRTEST.EXE and tools from GitHub Releases (planned)
Where can I get PC98QR?
The source code and installation instructions are on GitHub: https://github.com/yarufu/PC98QR

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects

Python tool that converts VGM sound-chip register logs for X68000 into structured MML and PCM IR, with optional MDX/PDX compilation.

Other#vgm#mml#x68000
13+1 this week0PythonMITUpdated 3 days ago