Login
You're viewing the mstdn.social public feed.
  • Jun 26, 2026, 4:27 PM

    Instead of a global "disk A / disk B" slot/drive configuration, every function now prompted for the device(s) you wanted to use. These could be traditional 5.25-inch floppy disks but also 3.5-inch disks, hard drives, even RAM drives.

    screenshot of "Select Source Device:

Slot 7 Drive 1: /E
Slot 7 Drive 2: /UTILITIES
Slot 6 Drive 1: /COPYIIPLUS
Slot 6 Drive 2:
Slot 3 Drive 1: /RAM
    💬 1🔄 1⭐ 6

Replies

  • Jun 26, 2026, 4:32 PM

    The interactive catalog display was updated with ProDOS-specific file types and per-file modification dates. DOS 3.3 did not have the concept of file dates, and most Apple II models had no concept of time unless you installed a third-party clock card. If you didn't have a clock card installed, Copy II Plus prompted you for the current date on startup.

    screenshot of "Copy Files" source: slot 7, drive 2
/UTILITIES

with list of file names, types, sizes, and dates
    💬 1🔄 1⭐ 8
  • Jun 26, 2026, 4:43 PM

    Four years later, Copy II Plus 8.4 looked... very familiar. On the outside.

    screenshot of Copy II Plus 6.0 with main menu functions Copy, Catalog Disk, Delete, Lock/Unlock Files, Rename, Alphabetize Catalog, Format Disk, Verify, View Files, Disk Map, Change Boot Program, Undelete Files, Create Subdirectory, Set Printer Slot, and Quit
    screenshot of Copy II Plus 8.4 with main menu functions Copy, Catalog Disk, Delete, Lock/Unlock Files, Rename, Alphabetize Catalog, Format Disk, Verify, View Files, Disk Map, Change Boot Program, Undelete Files, Create Subdirectory, Set Printer Slot, and Quit
    💬 1🔄 1⭐ 7
  • Jun 26, 2026, 4:49 PM

    On the inside, Copy II Plus 8.4 looked like this: source code files named after where their assembled binary code lived in memory ... in version 5, four years and three major versions ago. New features got put in their own files, like PRODOS (support introduced in version 6) and MM.CII (memory manager introduced in version 8).

    And PHRWTS. What's PHRWTS? "RWTS" stands for "read/write track/sector," a common acronym for low-level disk code. But what's PHRWTS?

    screenshot of list of filenames

CII.S
MM.CII.S
A000.S
MORE.A000.S
BANK1.S
BANK2.S
MORE.BANK2.S
MORE.E000.S
PRODOS.S
PHRWTS.S
    💬 1🔄 1⭐ 8
  • 💬 1🔄 1⭐ 12
  • Jun 26, 2026, 4:59 PM

    And then it died. (There was a version 9, but you should never use it; it was a complete rewrite and has data corruption bugs. Not fixed in 9.1.) The source code was lost; the company was sold. Users moved to new platforms. Time marches on.

    And yet, here we are, still talking about these old computers, still running these old programs, even occasionally still creating new programs with new data in new files.

    What would Copy II Plus 2026 look like?

    What would Copy II Plus 2026 look like?
    💬 2🔄 1⭐ 9
  • Jun 26, 2026, 5:12 PM

    This is what I came up with: first, drop the bit copy. No one is making protected backups of physical media anymore; we have superior modern alternatives.

    Second, drop the printer support. No one is printing out their disk catalog and taping it to the sleeve of their floppy disk anymore. Printers are for Print Shop. 😀

    The rest are just quality-of-life improvements, mostly backported from version 9 (which you should never use).

    - No bit copy

- No printing

- Lowercase

- Hotkeys

- Bug fixes?
    💬 1🔄 1⭐ 8
  • 💬 1🔄 3⭐ 21
  • Jun 26, 2026, 5:21 PM

    - Catalog displays and file lists recognize 23 more filetypes, mostly IIgs-related.
    - Directory trees and "Catalog w/File Lengths" always use 80 columns if available. Other "Catalog Disk" options always use 40 columns.
    - "Change Boot Program" supports Pronto-DOS in addition to Apple DOS 3.3.
    - During "Copy Files" file selection, "Delete" has been renamed to "Unmark", and the hotkey [D] has been changed to [U]. Pressing [D] still works.
    - "Quit" uses the same sub-menu interface as other options.

    💬 1🔄 2⭐ 8
  • Jun 26, 2026, 5:26 PM

    What about bug fixes? I did find a few minor bugs, and then there's this: if you catalog a 32MB device, all 5.25-inch floppy disk operations stop working.

    [I had a live demo set up to demonstrate this.]

    Here's why: to calculate free space, Copy II Plus reads the entire volume bitmap into memory. This is a variable length buffer, based on disk size. A 32 MB hard drive uses 0x2000 bytes.

    3C00 volume bitmap (0x2000).............
     ...................................
     ...................................
     ...................................
     ...................................
     ...................................

5C00 free space (0xD0)

5CD0 sector interleave tables (0x30)

5D00 program code
    💬 1🔄 2⭐ 6
  • Jun 26, 2026, 5:28 PM

    In version 8.1, they moved the start of program code down 0x100 bytes to make room for some new features. The source code archive includes a developer-oriented internal changelog back to version 7.3, and it includes a note about this.

    *  11/24/87  8.1
*
*  Moved program start from $5D00 to
*    $5C00, reducing file buffer space
*    slightly, to accomodate single-
*    sided code.
    💬 1🔄 1⭐ 5
  • Jun 26, 2026, 5:30 PM

    Unfortunately, some addresses in Copy II Plus start at $0800 and are defined as positive byte offsets, and others start at CODEADR (start of program code) and are defined as negative byte offsets. When they moved CODEADR down, they didn't realize that these two could now collide and clobber persistent data tables used by virtually all 5.25-inch floppy disk operations.

    3C00 volume bitmap (0x2000).............
     ...................................
     ...................................
     ...................................
     ...................................
     ...................................
     ...................................
5BD0 .........tables clobbered..........
     ...................................
5C00 program code
    💬 1🔄 1⭐ 9
  • Jun 26, 2026, 5:33 PM

    Underneath the bug fixes and user-visible improvements, I ended up refactoring the entire Copy II Plus source code to reorganize it into modules which I could assemble separately, store compressed on disk, and decompress lazily at runtime. This lays the foundations for adding or backporting more features in the future, if mutually exclusive modules can be decompressed into a single area of memory then discarded. But I didn't get that far.

    💬 1🔄 1⭐ 11
  • Jun 26, 2026, 5:38 PM

    Large-scale refactoring like this has the potential to break things, so I wrote 200 end-to-end tests. They exercise all the major functions and options across Copy II Reboot and ensure that it behaves exactly like version 8.4 except for known bug fixes.

    Tests are written in Lua and executed by MAME, in a test harness first developed by Joshua Bell for the Apple II Desktop project. They look like this:

    github.com/a2-4am/cii/tree/mai

    function()

  cii.WaitForMainMenu()

  apple2.Type("X") -- Copy

  apple2.Type("F") -- Files

  ...

  test.ExpectBinaryEquals(
    util.SlurpFile(reference_filename),
    util.SlurpFile(source_filename))

end
    💬 1🔄 4⭐ 19
  • Jun 26, 2026, 5:43 PM

    Then @a2_qkumba and I wrote a new pager program that can very quickly display arbitrarily large text files. (Think Dogpaw, but 1/2 the size and 1/10 the features and without requiring BASIC.SYSTEM and ampersand commands.) Then I converted the Copy II Plus 8.4 manual to ASCII text, updated it for Copy II Reboot, and included it on the disk.

    It's called FLOW and it looks like this:

    screenshot of Copy II Reboot manual displayed on screen, with options Space-next page, H-Help, Q-quit.
    💬 2🔄 3⭐ 13
  • 💬 1🔄 3⭐ 15
  • 💬 2🔄 1⭐ 23
  • Jun 26, 2026, 5:05 PM

    @a2_4am great read! I worked at Central Point on their Mac products (DiskFix and some of Optimizer), pretty sure the Apple || stuff was in the rear view by then…

    💬 0🔄 0⭐ 2
  • 💬 0🔄 0⭐ 3
  • Jul 7, 2026, 8:00 PM

    @a2_4am I love reading your stories, besides all the work that they cover. I’m glad that we all benefit from your posting your presentation here as a story, though I’m sorry that you missed out on the occasion to deliver it in person to an audience.

    “Thank you all, you beautiful humans” is such a wonderfully *you* way to wrap it all up. Thank you for what you do, and for sharing it with the rest of us.

    💬 0🔄 0⭐ 0
  • Jun 26, 2026, 9:30 PM

    @a2_4am @a2_qkumba ahaha, i also made a pager program, for my assembler manual. but it's written in 9 lines of basic, so it is not very fast. :V
    one of these days i might make it so the "previous page" function actually goes back instead of silently starting over from the beginning.

    💬 1🔄 0⭐ 0
  • 💬 0🔄 0⭐ 0