ADTPro Version 1 Release Full History

1.3.0 - April 6, 2014

Bug fixes:

  • Re-enable 19200 baud rate for serial client - the Mac LC/Apple IIe card requires this speed
  • [Client] Don't bother turning the drive motor on early (introduced in 1.2.9) with Audio protocol

1.2.9 - December 25, 2013

New functionality:

  • [Client] Disk II drives turn on a little early to reduce spin-up delay

Bug fixes:

  • Nibble sends work correctly in batch mode
  • [Client] Nibble sends retry (more) correctly
  • [VDrive] Virtual disks are loaded once at initialization time, making it much faster for huge drives (but much less dynamic)
  • [VDrive] Serial driver installer quits to where it came from, allowing an invocation from the launcher to return there, this time with the driver in place

1.2.8 - July 9, 2013

New functionality:

  • [VDrive] Added the ability to serve a second virtual drive
  • Restricted most opportunities to change baud rates from defaults

Bug fixes:

  • [Server] Severe slowdown on bootstrapping under Windows was cured by removing what should have been a harmless yielding of the CPU

1.2.7 - April 18, 2013

New functionality:

  • [VDrive] Added the ability to bootstrap into ProDOS with VSDrive active
  • [Server] Added a command-line invoker for AppleCommander

Bug fixes:

  • [Server] 5-1/4" disk images with unrecognized filesystems are always written with DOS-ordered physical interleaving
  • [Server] Start the numerical part of batch name at 1, not 0; reset the counter when a batch name changes

1.2.6 - October 11, 2012

New functionality:

  • [VDrive] virtual disk drivers on one disk that boots on both Apple II and Apple /// computers

Bug fixes:

  • [Server] Audio trims leading garbage from data stream - finally (I hope this time for real) making audio reliable
  • [Server] Un-sign Apple's binary Java launcher so it doesn't confuse Mountain Lion
  • [Client] Apple /// tries harder to consume buffered keystrokes before doing line-oriented input
  • [Client] Serial library is now non-blocking; allows for timeouts in times of failure; fixes speediboot pauses
  • [Server] If a 140k disk image isn't of a known format, take the filename extension into account before looking too much deeper
  • [Server] Serial over IP can specify both port and host, not just port

1.2.5 - September 22, 2012

New functionality:

  • [VDrive] ProDOS date and time is set when communicating with the ADTPro server
  • [Server] ADTPro server serves a hybrid serial-over-IP for emulators - enabled with startup parameter 'localhost'

Bug fixes:

  • [VDrive] Ethernet driver is now more "reentrant," allows for restarting if the "ping" message doesn't show up right away
  • [VDrive] Aborts via escape key are more reliable, Ethernet now recovers correctly
  • [VDrive] Device driver installer filetypes changed to SYS

1.2.4 - September 10, 2012

New functionality:

  • [Client] ProDOS Serial and Ethernet clients can extract and send nibble images
  • [VDrive] Virtual drive over a comms link - any serial or Ethernet connection can host a virtual ProDOS disk on slot 2, drive 1

Bug fixes:

  • [Server] Some serial adapters were exhibiting serious slowdown problems in some situations (usually non-FTDI, usually non-Mac)
  • [Client] IP configuration screen was missing some dots

1.2.3 - August 13, 2012

New functionality:

  • [Server] ShrinkIt "SHK" and "BXY" files are converted to an appropriately sized disk image and served
  • [Server] DiskCopy 4.2 disk images are recognized and dealt with as any other disk image

Bug fixes:

  • [Client] Speediboot pauses ever longer, and downloads may be restarted with the escape key

1.2.2 - July 22, 2012

New functionality:

  • [Server] ShrinkIt "SDK" disk images are recognized and dealt with as any other disk image

Bug fixes:

  • [Client] A bug was introduced in 1.2.1 due to an assembler upgrade that made Disk II sends (Apple II -> host) corrupt at the host
  • [Client] SOS version volume display function regularly crashed
  • [Client] Speediboot pauses longer after serial reset to give various machines enough time to recover before sending out the first download request

1.2.1 - April 12, 2012

New functionality:

  • Apple II serial bootstraps from bare metal in 1/3 the time it used to take with Speediboot(tm) technology
  • [Server] Mac OSX has a prettier "installer" via the DMG - just drag/drop the ADTPro folder to Applications

Bug fixes:

  • [Server] Improve serial error recovery for two different scenarios: 1, by waiting (much) longer before timing out to allow for problemtatic/errorful block reads, and 2, flushing the serial port after things like checksum errors

1.2.0 - January 14, 2012

New functionality:

  • [Server] Start up the server with any of the communications buttons "pressed" - enabling headless server operations

Bug fixes:

  • [Server] Integrate Cloudhopper's 64-bit Windows RXTX dll - fixes 2-way Windows 7 64-bit serial communications
  • [Server] If a serial configuration isn't usable, it doesn't just put up the dialog box saying you should change the configuration - it brings up the change configuration dialog so you can actually do it.
  • [Server] Be consistent when automatically adding suffixes (.dsk vs. .DSK)
  • [Client] Don't lock out interrupts during program execution - it hinders things like the GS Desk Accessory bringup
  • [Client] Apple /// responds a little better to disk switched errors like those produced by the CFFA300 card
  • [Client] Apple /// Ethernet screen layout was missing DHCP configuration option

1.1.9 - May 1, 2011

New functionality:

  • [Client] Enabled DHCP auto-configuration from Jonno Downes' latest ip65 code. Note - Saved configuration files for Ethernet won't be compatible; so delete or re-save them with this release

Bug fixes:

  • [Client] Duplicate volume names caused incorrect/repeated volume size display
  • [Client] Attempting to format a write-protected 5-1/4" floppy was hanging

1.1.8 - January 17, 2011

New functionality:

  • [Client] Added support for LANceGS Ethernet card

1.1.7 - December 21, 2010

New functionality:

  • [Server] Italian translation provided by Mauro Rospocher
  • [Server] Brazilian Portuguese translation provided by Mario Sergio Almeida

Bug fixes:

  • [Client] Eliminated phantom disk drives from volume display screen
  • [Client] Disabled ZipChip and TransWarp accelerators during timeout loops in Ethernet version
  • [Client] Fixed intermittent crash on 'Quit' when booted into ProDOS 8 from GSOS

1.1.6 - August 2, 2010

New functionality:

  • [Server] French translation provided by Antoine VIGNAU
  • [Server] Spanish translation provided by Gabriel Alejandro Calomeni

Bug fixes:

  • [Client] Ethernet version can now connect immediately after startup without having to do DIR commands first
  • [Client] Clearing out system memory bitmap enables bootstrapping on top of BASIC.SYSTEM (the not-quite- bare metal bootstrapping scenario)
  • [Server] Better button handling when disconnecting and otherwise interrupting transfers
  • [Server] Changes to bootstrapping pacing interval affect an active transfer in real time

1.1.5 - March 17, 2010

New functionality:

  • [Client] Implemented native assembly ProDOS selector/ launcher eliminating the need for Applesoft; results in 30% faster booting and executing from floppy
  • [Client] Laser 128 machines can now use their native modem port at 115.2kbps using the SSC port 2 setting
  • [Server] Korean translation provided by Steven Y. Choi

Bug fixes:

  • [Client] Better automatic serial device detection for Franklin Ace 500 computers (select Modem vs. Printer port)
  • [DOS ADT Client] Reset the screen after a disk send is complete
  • [Server] Build hygiene - automate version numbering

1.1.4 - January 24, 2010

New functionality:

  • [Server] Re-scan for serial ports every time the serial config gui comes up; detects USB port changes

Bug fixes:

  • [Server] Fixed a protocol bug that made the server abort when it received garbled acknowledgement packets that looked almost correct
  • [Server] Increased microphone sensitivity so recent Mac Java releases can "hear" the audio stream correctly
  • [Server] Removed most post-Java-1.3 code so server can run on Java 1.3 (i.e. Mac OSX 10.2)

1.1.3 - September 20, 2009

New functionality:

  • [Server] OSX distribution now comes with a double-clickable .app that automatically does all the magic to start a Java program under the covers with no terminal window
  • [Client] Enabled ProDOS booting (and bootstrapping) on the Franklin Ace 1000/1200

Bug fixes:

  • [Client] Space bar wasn't cycling through configuration items on Apple II machines without up/down arrow keys
  • [Server] Fixed breathtakingly slow operations with FTDI-based USB serial adapters
  • [Server] Integrated new level (2.2Pre2 + fixes) of RXTX serial library; this offers 64-bit Windows support as well as improved Mac OS X support, including Snow Leopard
  • [Server] Made the "change working directory" work a little more sensibly on OSX - allowing you to navigate "into" a directory and pick that as the current working directory

1.1.2 - February 18, 2009

New functionality:

  • [DOS ADT Client] Included DOS ADT client, now at version 2.3, that automatically detects the Apple ///'s built-in serial port

Bug fixes:

  • [Client] Formatting a disk no longer invalidates the entire drive list cache, eliminating the need to re-scan all drives; thanks to hackerb9 for the impetus to fix it
  • [Client] Comms devices weren't being detected in the last slot (one of those off-by-one counting problems)
  • [Client] Apple /// Grub bootstrapper was using an uninitialized register in an alarming, but seemingly predictable, manner; initialize it for safety
  • [Client] Simplified UDP timeout processing after consultation with MagerValp

1.1.1 - September 18, 2008

New functionality:

  • [Client] SOS version can use Ethernet UDP transport via the Uthernet card
  • [Client] SOS version can format media
  • [Server] Apple /// computers can be bootstrapped from bare metal over their built-in serial ports

Bug fixes:

  • [Client] Occasional Ethernet "hang" during transfer
  • [Client] Exiting the Ethernet configuration screen via the Return key but without saving to disk caused changes to be forgotten until entering and leaving the config screen a second time
  • [Client] SOS version failed to write the first set of blocks when it received a harmless "disk switched" notification (after swapping disks, for example)

1.1.0 - August 30, 2008

New functionality:

  • [Client] Client software comes on a combined "dual boot" ProDOS/SOS disk for both Apple II and Apple /// computers
  • [Client] Format routine now recognizes ProFile drives

Bug fixes:

  • [Client] Reorganized the entire client code base in order to single-source ProDOS and SOS versions - probably leading to several new bugs in the ProDOS client
  • [Client] Fixed formatter volume name input routine to correctly handle special characters
  • [Client] Fixed a fiddly problem with the IIgs and Uthernet where hitting a key while waiting for a response from the host would make it ignore the esc key from then on
  • [Client] Shortened UDP timeout for waiting for packet responses so things don't appear to "hang" when a response isn't received
  • [Client] Re-integrated Bird's Better Bye (which was inexplicably removed) for our Apple II and II+ friends
  • [Server] Improved batch logic for cleaning up after aborted image transfers

1.0.6 - February 10, 2008

New functionality:

  • [Client] Ported the client to SOS (pronounced like "sauce") for the Apple /// supporting the built-in serial port and Super Serial card in any of its four slots (SOS released 8/10/2008)

Bug fixes:

  • [Client] Formatting was unreliable for 5.25" media due to timing-sensitive code placement
  • [Client] Formatting was unreliable for 3.5" media due to unfortunate re-use of zero-page variable space
  • [Server] Included a copy of the rxtx library that no longer requires lockfiles (1.0.6a.dmg for OSX only)

1.0.5 - February 3, 2008

Bug fixes:

  • [Server] Hosts with zero audio mixers (a Java thing) were crashing with java.lang.ArrayIndexOutOfBoundsException in AudioConfig.java
  • [Client] IIgs serial port initialization was not working for speeds below 115.2kbps as a result of the 300 baud integration in 1.0.3

1.0.4 - January 21, 2008

New functionality:

  • [DOS ADT Client] Included DOS ADT client, now at version 2.2, with nibble and halftrack send capability for Disk II drives from Gerard Putter and Eric Neilson
  • [Server] Incorporated nibble and half track disk logic from Gerard Putter's ADT-compatible Virtual ][ A2V2 transfer software - it's still experimental, so support hasn't been added to ADTPro client yet

Bug fixes:

  • [Client] Better automatic serial device detection for Apple IIc computers (select Modem vs. Printer port)
  • [Client] Update track counter during fast Disk II reads (you had to watch carefully to realize they weren't moving during read)
  • [Server] Audio data capture logic was refactored to be more reliable and understandable by Marc S. Reßl
  • [Client] Audio send protocol (from Apple to Host) was out of sync, causing transfers to immediately abort
  • [Server] Fix progressive backoff timing for transmission failures

1.0.3 - October 7, 2007

New functionality:

  • Support for 300 baud operation to help non-upgraded ROM 255 Apple IIc computers with the serial timing problem

Bug fixes:

  • [Client] Only re-scan drives for volume information the first time, and thereafter only when requested; this saves time (and, potentially, drive knocking) whenever the volume screen is shown
  • [Client] Removed last dependency on Applesoft string printing; enables running on original integer Apple ][ (non-plus) ROM machines
  • [Server] Always record 5-1/4" disks at the host as DOS order images
  • [Server] Corrected DOS audio addresses coming from bootstrapping instructions
  • [Server] Honor the "Apple IIc Serial" checkbox (which disables hardware handshaking) on startup; previously, one had to open the communications dialog box and explicitly hit OK to get it recognized

1.0.2 - August 11, 2007

New functionality:

  • [Client] Borrowed very fast Disk II reading routines from FASTDSK; reduces Disk II transfer time from Apple II to Host by 25%-33%.
  • [Client] Refactored client programs as ProDOS 8 system (SYS) applications. This means that saving a configuration no longer BSAVEs the entire client, but instead writes a little config file.
  • [Client] Incorporated Bird's Better Bye program selector for Apple II+ users - because the 40-column ProDOS program selector is the very definition of user hostility
  • [Server] Eliminated the need for bootstrapping operations to send the ProDOS BASIC interpreter

Bug fixes:

  • [Server] The routine to determine physical sector ordering was made more accurate, especially for 5-1/4" disks.
  • [Server] Bulk transfers of Disk II images wrote DOS-order images, but named them "*.PO," making it easy to mistake them for ProDOS-order images. Now bulk transfers coming from Disk IIs are named "*.DSK."

1.0.1 - July 8, 2007

New functionality:

  • [Client] Support added for Laser 128 serial via generic Pascal entry points on slot 2; included a copy of DOS ADT similarly enhanced

Bug fixes:

  • [Client] Unformatted media in an 800k drive would get an incorrect free block count after formatting.
  • [Client] Changed bootstrapping to rely less on pure Apple-isms in the monitor. Improved ProDOS stage 1 bootstrapping to not require the tricky control key sequence to get at the comms card from the monitor. This enables Laser and Franklin compatibles.
  • [Server] Slowed down default bootstrap pacing to 150ms.

1.0.0 - June 21, 2007

First official public release after one year of beta iterations. Communications methods include:

Feature set includes:

  • Transfers any storage device ProDOS can access
  • Runs on any Apple II (or clone) computer with 64k memory
  • Runs on Linux, Mac OSX, OS/2, Windows, and probably Solaris
  • Understands many digital disk formats: .DSK, .PO, .NIB, 2IMG
  • Serves the original ADT client as well as the updated ADTPro client
  • Bootstraps Apple II computers from bare metal over serial or cassette ports
  • Sends floppies in "batch" mode without having to name each one
  • Formats media on the Apple II end

New functionality over final beta:

  • [Client] The formatting function is now integrated instead of being a separate program
  • [Client] Volume picker screen sets the default slot/drive for the BASIC interpreter

Bug fixes from final beta:

  • [Client] (Finally) fixed audio transfer retry logic - darn Java and its signed bytes! Audio transfers are reliable at last. Slow as ever, but reliable.
  • [Client] Fixed 15-character volume name bugs: one in the formatter, one in the online displayer/picker
  • [Client] Made the Uther slot-scanning algorithm a little less intrusive, and used a MHz-insensitive timing loop to make UDP timeouts a little more reasonable on accelerated machines
  • [Client] Used a MHz-insensitive timing loop to make the delightful beeping noise sound the same no matter how fast the CPU is going
  • [Server] Better flow control for serial bootstrapping - improves life for serial interfaces that do their own buffering (i.e. Keyspan USA-28)

0.2.6 - June 3, 2007

New functionality:

  • The client will scan slots for communications devices if the manual configuration hasn't been done yet; preference is given to SSC cards over IIgs ports if both exist, and slots are scanned high-to-low, last-one-found-wins
  • Included DOS ADT similarly enhanced to scan for serial ports
  • Added a simple Applesoft menu when booting the distribution diskette
  • Added an 800k distribution disk image
  • Server gives instruction messages at the end as well as at the beginning of bootstrap sends for Audio transfers - so you don't have to have the website up in front of you to succeed

Bug fixes:

  • Fixed formatter code to more correctly format disks larger than 140k and to recognize and format hard drives/CFFA cards
  • Switched diskette image and bootstrapping data to use Apple's publicly available ProDOS version 1.9, BASIC 1.4.1 as downloaded from Apple here.

0.2.5 - May 18, 2007

New functionality:

  • Removed the requirement to "install" RXTX - we just point the startup scripts at the unpacked location
  • Made an OSX startup script (adtpro.command) and made it double-clickable to start the server

Bug fixes:

  • Switching a protocol or hitting the disconnect button puts up a confirmation dialog box if there is an active transfer going on
  • Bumped Java heap size in startup scripts with -Xmx128m (Windows) and -Xmx256m (*ix) to support 32M images

0.2.4 - May 12, 2007

New functionality:

  • Bootstrapping from bare metal directly to ProDOS
  • Made serial bootstrapping pacing and speed configurable - making much higher baud rates possible (and reliable)
  • Included a ProDOS floppy formatting utility (because you don't have any formatted disks yet, remember?)
  • Saving any 140k disk at the host always creates DOS order images; this increases compatibility with older emulators that don't understand ProDOS order images

Bug fixes:

  • Better recovery from initialization when there's no Uthernet card in the default slot
  • Cosmetic right-justification issue with online volume block number display (extant since 0.1.1)

0.2.3 - April 26, 2007

Bug fixes:

  • Current working directory was being handled incorrectly - not consistently putting a trailing separator character after the path
  • Ethernet bootstrap image was missing from resources

0.2.2 - April 24, 2007

New functionality:

  • Server-side creature comforts:
    • Added graphical buttons for communications devices
    • Server automatically saves its last window position and size

0.2.1 - April 2, 2007

New functionality:

  • Protocol enhanced to always communicate block numbers: enables recovery from lost acknowledgements which can ultimately result in corrupt transfers even if all CRCs match. New version retains compatibility with ADTPro v0.1.x clients with a checkbox in the File menu.
  • Added date/timestamps to trace log entries.

Bug fixes:

  • ProDOS volumes with full names (15 characters) would walk all over memory, causing a crash when initiating a send. Thanks to James Putnam for going the extra mile to snail-mail me a physical floppy exhibiting the problem as we tried to figure out what went wrong.
  • Made RXTX library optional
  • Made build slightly friendlier for new developers
  • Filled out the Protocol documentation (I'm not saying it's pretty, or necessarily understandable - but at least it matches reality)

0.1.5 - March 18, 2007

New functionality:

  • Added support for audio transfers and bootsrapping using a host sound card and the Apple cassette port.
  • Apple IIc support (disable hardware handshaking) is now selectable via a checkbox in the File menu.
  • Added a logging/tracing capability via checkbox in the File menu. Enabling tracing logs verbose tracing information to a file name ADTProTrace.txt in the server's startup directory.

Bug fixes:

  • Managing serial timeouts better fixes two problems:
    • "Hang" when disconnecting on *nix boxes, especially after transfers; though sometimes it still seems to take a while (i.e. several seconds) to fully disconnect after hitting the disconnect button
    • Dropped data on some Wintel chipsets due to (erroneous) rapid toggling of port timeout values

0.1.4 - December 30, 2006

New functionality:

  • Ethernet version now has a timeout function at the client end. This addresses one class of problem we have with UDP dropping packets.
  • Included DOS ADT 1.31 in the package as well as part of bare-metal bootstrapping function. The main improvement of DOS ADT 1.31 over 1.30 is the capability of self-saving the configuration (no need for the Applesoft configuration program)

0.1.3 - December 15, 2006

New functionality:

  • Added support for Ethernet UDP transport via the Uthernet card. The best reliability is achieved with machines on a wired network in the same subnet (on the same ethernet switch). Sending (Apple/client->host/server) has reliable retry logic since the server, in Java, can control timeout intervals. Receiving is a different story. It won't give you corrupt images, it'll just hang if acknowledgement packets get lost. TODO: add a timeout function to the client side as well.
  • Added a batch file for Windows and a shell script for Linux/OSX to start the server

0.1.2 - November 27, 2006

New functionality:

  • Added a "batch send" mode to repeatedly send the same volume (i.e. one floppy after another)
  • ADTPro server can send the ADTPro client as bootstrap text; the destination Apple would have to already be running ProDOS

Bug fix:

  • Split up bootstrap text into lines of 8 bytes each to help the slowest Apples keep up

0.1.1 - November 16, 2006

New functionality:

  • ADTPro server now has the ability to serve bare-metal bootstrapping data (ESDOS II, DOS ADT client)
  • DOS ADT client enhanced to use either SSC or IIgs native serial communications at speeds up to 115kbps

0.0.9 - September 23, 2006

Bug fix:

  • 2IMG images with optional headers/chunks failed to transfer properly - patch also supplied to the AppleCommander project where the bug originated

0.0.8 - September 20, 2006

New functionality:

  • You can interrupt the interminable volume scan with the escape key

Bug fixes:

  • Cured Linux/OSX's "hang" when disconnecting
  • Initiating any communication now resets the comms card - makes things much more reliable with starting/stopping the host end at random intervals
  • Greyed out the port/speed buttons on the server while connected to make it more clear exactly what you can change and when
  • Turn "cold start" back off again on the client once it's been invoked - to keep from saving the cold start state when the user saves the configuration!
  • Switched to cc65/ca65 compiler/assembler suite. ca65 is compatible with lots more platforms than SB-Assembler, though it is slower.
  • Refactored the code to make communications routines somewhat more "pluggable." We aren't quite at the point of device drivers yet, but it's getting closer. I long for the days of the simplicty of ADT's one-file assembly! It used to be so elegant!

0.0.7 - August 27, 2006

New functionality:

  • Support for native IIgs serial (modem) port at a maximum rate of 115,200 BPS
  • Ability to "cold start" by resetting configuration parameters back to "factory defaults" (useful when a configuration as saved is incompatible with a particular machine: bload adtpro:poke 2052,1:call 2051) Later versions moved this poke by one byte: bload adtpro:poke 2053,1:call 2051)

0.0.6 - August 10, 2006

Bug fix:

  • Cosmetic fix for IIgs native send progress indicator

0.0.5 - July 30, 2006

New functionality:

  • Support for native IIgs serial (modem) port at a maximum rate of 19,200 BPS

Bug fixes:

  • Handle serial port-in-use exceptions at host end
  • A few usability tweaks along the way

0.0.4 - July 9, 2006

New functionality:

  • Overwrite confirmation when an image already exists at the host
  • Option to write mismatched image sizes (i.e. put a smaller image on a bigger disk)
  • Host has the ability to change working directory via file dialog

Bug fixes:

  • Client configuration-save function uses initial slot/drive combination to BSAVE itself
  • Cosmetic changes for buffer send/receive/read/write screen

0.0.3 - July 2, 2006

New functionality:

  • Host saves its last known good configuration (ADTPro.properties in startup directory)
  • Client saves configuration on demand (it really just BSAVEs itself)

Bug fixes:

  • Isolated host messages from client messages to better separate valid messages vs. garbage coming back from the host
  • Misc. updates to build process - have AppleCommander build a custom volume name, etc.

0.0.2 - June 28, 2006

Bug fixes:

  • Fixed ability to start/stop/restart communications on the host end
  • Fixed some Change Directory semantics, particularly for changing relative directories
  • Made some minor message improvements at the client end

0.01 - June 21, 2006

First prototypical release on SourceForge. Main functionality:

  • Compatibility with Super Serial Card up to 115,200 BPS
  • Compatibility with anything ProDOS can read
  • Compatibility with any Apple ][ computer with 64k memory
  • Compatibility with many diskette/disk image formats: .DSK, .PO, .NIB, 2IMG
  • Ability to change working directory on the fly
  • Server written in Java, compatible with DOS-based ADT and ADTPro