ADTPro Credits

ADTPro's client side borrows heavily from the original Apple Disk Transfer (ADT) base code from version 1.23. The original ADT was written by Paul Guertin. ADT is currently maintained here:

The server side was very much a direct translation from the ADTWin's C++ server code to Java. The Win32 GUI code was written by Sean Gugler. The ADTWin project is hosted here:

The routine to read a Disk II device much faster than ProDOS comes from Jean-Marc Boutillon (Deckard) and his FASTDSK program: I dumbed-down the display from Deckard's pretty Locksmith-styled sector-by-sector status, but added slot independence. I also borrowed config file loading and saving from the FASTDSK package, and added config file creation as well.

Glenn Jones generously donated an Uthernet card to enable IP transport development for both II and /// machines.

The IP stack is taken from MagerValp's tight and fast ip65 code (now integrated into the netboot65 project and maintained by Jonno Downes) at It was ported to the Apple II by Glenn Jones. It turns out that ip65's checksum algorithm was faulty, so not being smart enough to debug it myself, I simply transplanted the one from the Contiki project (

The disk abstraction layer of ADTPro's server software as well as the ShrinkIt decompression code comes directly from the AppleCommander project:

I augmented AppleCommander's understanding of disk formats, byte ordering, etc. with concepts and code from the CiderPress project:

The serial communications layer concepts of ADTPro's server software were borrowed from the jSyncManager project:

Hardware-level serial communications in Java comes from the rxtx project: The RXTX binaries for 64-bit Windows are provided as a courtesy of Cloudhopper:

The routine to decide what kind of block device a particular slot/drive combination contains was generously donated by Mark Percival. It originates from his DiskMaker 8 program:

The ability to read and analyze tracks at the nibble level was generously donated by Gerard Putter from his Virtual ][ project: This makes it possible to archive some lightly copy-protected disks and put them in .nib format, removing the need to run the likes of SST to generate the image.

The Pascal entry point serial communications code was contributed by Joseph Oswald. It was originally used to support the IIgs at 19,200 baud, but is now being used to support the Laser 128's serial port (and anything else that can communicate using Pascal entry points in slot 2).

The code to interface directly with the IIgs' Serial Communications Controller chip was borrowed partially from the "Warp Six BBS" code: Note that the current code is not nearly as nice to the system as the BBS code is. It will break AppleTalk if it's running.

The ProDOS disk formatting code was lifted from the Hyper-FORMAT utility, which was in public domain circulation in the mid '80s-'90s. I had to enhance it to be able to format large media and to get rid of a few bugs based on 140k diskette assumptions. Hyper-FORMAT was originally written by Jerry Hewett and enhanced by Gary Desrochers. Their licensing terms dictated that they be credited for their work. Their original notice remains in the source code.

I learned a good deal about Java sound capture and playback from Gamelan in an introductory article here: I found some very helpful audio code from the JBother project: The audio code in ADTPro is a particularly undisciplined extension of these two sources. Marc Ressl came to my aid and cleaned up as much as he dared.

ProDOS assembly programming particulars were divined from the Beneath ProDOS book by Don Worth and Pieter Lechner, published by Quality Software in 1984.

Invaluable Apple /// hardware and programming information was written by John Jeppson in an article titled: "John Jeppson's Guided Tour of Highway III" from Softalk Magazine, May 1983, pages 100-112. One place that it is available online is here.

The Apple /// machine language monitor and ways of accessing it during program execution was critical to debugging operations. Important information on how to accomplish that was published in the "/// Cheers!" magazine from Call-A.P.P.L.E.

The ProDOS loader concepts used to speed up booting (by eliminating the need for Applesoft) were from Oliver Schmidt's LOADER.SYSTEM contribution to cc65, available here.

Thanks to ADTPro's translators.

Thanks to Sean Fahey for lending me his LANceGS cards so I could add support for them.

Thanks to the Maven project for web page generation.

ADT Lineage

Rich Williamson (glitch at eskimo dot com) released SENDDISK on April 9, 1993. His Apple-side program read an entire disk with DOS' RWTS (Read Write Track Sector) routine, and transmitted the data through an Apple Super Serial Card in slot 1. His PC-side program listened to COM1 for such a data stream, and stored it in a .DSK file, in the format expected by the Apple II emulator "apl2em".

Paul Guerton (pg at sff dot net) released Apple Disk Transfer (ADT) on December 4th, 1995, and updated it July 14, 1999. Starting with SENDDISK, Paul added a nice screen layout, configuration menus, error recovery, data stream compression, and the capability to receive .DSK images from the PC and write them back to an Apple II floppy disk.

Paul Schlyter (pausch at saaf dot se) released ADTcc on June 13, 2000. He modified ADT's Apple-side program to work with the older Apple Communications Card and compatibles.

Sean Gugler (gugler-sean at cs dot yale dot edu) released ADT Win32 Edition on December 1, 2000. He replaced the older PC-side DOS program with a Windows 32-bit API program of otherwise identical functionality. That brought ADT into the world of background multi-tasking, long file names, and support for Windows NT and its progeny.

David Schmidt (david__schmidt at users dot sourceforge dot net) released the first prototypical version of ADTPro on June 21, 2006. Starting with the ADT base, he rewrote the client to run under ProDOS. This allowed the ability to transfer floppy disk, hard disk and ram disk images of arbitrary length. While he was at it, he rewrote the C++ server code in Java to extend the server's reach beyond PC DOS and Windows. It grew in functionality over the next year to include audio and TCP/IP transport layers in addition to serial. Version 1.0.0 was released on June 21, 2007.