pc-serial-loader

Overview

The pc-serial-loader is a small ecosystem of tools that help transferring data to and from old IBM compatible PCs. It consists of

Communication happens via RS232 using a null-modem cable. On the modern PC side, a USB to RS232 converter of any kind can be used; it is regular serial 8N1 communication, no bitbanging-shenanigans or otherwise timing critical tricks.

Initial loader

The initial loader is written in x86 assembly, in a way that avoids zero bytes and some other control characters. It can be transported to the target in several ways:

The last option requires the least amount of working infrastructure, you basically enter the code directly via keybord (ALT + numpad) and nothing more than a booted DOS command interpreter and some sort of permanent storage is needed.

RAM toolbox

The toolbox is also written in assembler, but is transferred and executed automatically using the frontend client and the initial loader. It simply contains the "tricks" the program can do, which are

With the first two options, you can create disk images using a floppy drive built into the target PC, e.g. creating a new MS-DOS 3.3 boot floppy on a 5.25 inch drive, which is something you usually cannot do with your modern PC or notebook...

GUI client

On the modern PC you can use toolbox-client, which is a Win32 program written in C, using a subset of the Win32-API that is available on Windows 95, Windows NT 4.0 and any later versions.

It allows automatic toolbox download, easy interfacing with drive discovery, reading / writing disk images, and file transfer. Files can be either transferred using a list / receive / send interface (especially useful for slow connections), or a more elaborated graphical interface that supports drag & drop.

References