================================================================================

                       C64U MANAGER  --  USER MANUAL
                       (Retro Commander)

================================================================================

A Norton-Commander-style desktop client for the Ultimate family of C64
hardware: the Ultimate 64 / Ultimate-II+ and the C64 Ultimate (relaunched
Commodore). Browse local disks and your Ultimate side-by-side, edit and
create CBM-DOS disk images, peek inside cartridges and SID files, mount
and run programs straight on the C64 -- all from one keyboard-first
window.

  Version:       2026-05-16
  Platform:      Windows 10 / 11 (64-bit)
  Stack:         .NET 10 Desktop  WPF  hand-rolled Fluent shell
  License:       Proprietary -- All rights reserved (see Appendix A)
  Support:       support contact is provided with your distribution

This manual is written for users of the application. For project status,
phases and architectural decisions, see PROJECTPLAN.md.


================================================================================
                                   CONTENTS
================================================================================

   1. Introduction
   2. Installation and first launch
   3. Tour of the main window
   4. Connecting to your Ultimate
   5. Working with panes
   6. Selecting files
   7. The function key bar (F1 - F12)
   8. Copy, move, rename and delete
   9. Disk images -- the heart of the app
  10. The preview pane and Commodore Diskbench
  11. Launching programs on the C64
  12. File viewers -- text, hex, PRG, SID, CRT
  13. Containers -- ZIP, 7-Zip, LHA, ARC, RAR, RP9, T64, LNX, SFX, SDA, GZ
  14. Searching across many disks
  15. Device control -- drives, machine, configuration
  16. Settings
  17. Tips, workflows and recipes
  18. Troubleshooting and FAQ
  19. Complete keyboard shortcut reference
  20. File type matrix

   Appendix A. License (C64U Manager + third-party components)



================================================================================
1.  INTRODUCTION
================================================================================

If you have ever used Norton Commander, Total Commander or Midnight
Commander, C64U Manager will feel immediately familiar: two panes side
by side, a row of function-key actions at the bottom, the active pane
highlighted, the other pane the implicit target of every copy or move.
Press F5 -- file goes from "here" to "there". Press F8 -- file is
deleted. Tab -- focus jumps to the other pane.

What makes C64U Manager different from a plain FTP client is that it
*understands the C64*:

  * It can browse INSIDE a .d64, .d71, .d81, .d80 or .d82 disk image as
    if the image were a folder, copy files in or out, reorder the
    directory, edit the disk label, and write the image back.

  * It can mount that image on your Ultimate's virtual Drive A or
    Drive B with a single keystroke.

  * It can take a .prg, .crt, .sid or .rp9, send it to the C64 and run
    it, optionally hard-resetting the machine first.

  * It can render directory listings through the actual C64 character
    ROM, so a disk's "intro art" looks the way it should.

  * It understands roughly two dozen container formats from the C64
    scene (LHA, ARC, T64, RP9, SFX dropper, SDA...) and lets you walk
    into them like folders.

The rest of this manual is organised so that an absolute beginner can
read it top-to-bottom on day one and a returning user can dip into any
chapter as a reference.



================================================================================
2.  INSTALLATION AND FIRST LAUNCH
================================================================================

Two distribution flavours are offered. They are functionally identical;
the only difference is whether the .NET runtime is bundled.

   +----------+--------+---------------------+--------------+--------------------+
   | FLAVOUR  | SIZE   | RUNTIME             | STARTUP      | PICK THIS IF...    |
   +----------+--------+---------------------+--------------+--------------------+
   | Lite     | ~3 MB  | Install once,       | Instant      | You already have   |
   |          |        | separate ~55 MB MSI |              | .NET, or you want  |
   |          |        |                     |              | tiny updates       |
   +----------+--------+---------------------+--------------+--------------------+
   | Portable | ~55 MB | Bundled in .exe     | ~1 s slower  | You don't want to  |
   |          |        |                     | on first run | install anything   |
   +----------+--------+---------------------+--------------+--------------------+


INSTALLING THE LITE BUILD

  1. Visit
        https://dotnet.microsoft.com/download/dotnet/10.0/runtime
     and install the ".NET Desktop Runtime 10.x (x64)" package.

  2. Download the publish/lite/ folder from the project release.

  3. Double-click C64UManager.App.exe.

  If you skipped step 1, Windows pops up a dialog with the same
  download link the moment you launch the .exe -- no harm done.


RUNNING THE PORTABLE BUILD

  1. Download publish/portable/C64UManager.App.exe.
  2. Drop it anywhere -- Desktop, a USB stick, %APPDATA%, whatever.
  3. Double-click it.

  The first launch unpacks the bundled runtime into %TEMP%, which adds
  about one second to start-up. Subsequent launches are as fast as the
  lite build.


WHERE THE APP STORES ITS DATA

  All user state lives under:

      %APPDATA%\C64UManager\

  Specifically:

      settings.json   - every preference (host, theme, defaults,
                        hotkey mode, suppressed "don't ask again"
                        dialogs)
      cache\          - downloaded disk images kept for fast re-open
                        (size capped via Settings > Caching)
      logs\           - rolling log if a crash dialog asks you to
                        attach them; quiet otherwise

  The app never writes to its own install folder -- both flavours run
  cleanly from read-only media.


FIRST LAUNCH

  On the very first run you will see:

      +-------------------------------------------+
      | Welcome to Retro Commander                |
      |                                           |
      | Set your C64U's IP address in Settings to |
      | get started.                              |
      |                                           |
      |                              [ Settings ] |
      +-------------------------------------------+

  Click Settings (or press Ctrl+Shift+S) and skip ahead to chapter 4
  to configure the connection.



================================================================================
3.  TOUR OF THE MAIN WINDOW
================================================================================

When you start the app, the layout is roughly this:

  +-----------------------------------------------------------------+
  | [S]  Retro Commander                               _   []   X   |  <- Title bar
  | [A: empty]   [B: empty]   [Inject v]   [Connected]              |  <- Toolbar
  +-----------------------------------------------------------------+
  | > C:\Users\Jarno\Downloads           [R] | > /USB1/games  [R] |  <- Path bars
  +-----------------------------------------------+-----------------+
  | Name              Type   Size      Mod        | Name  Type Size |
  | --------------------------------------------- | --------------- |
  | * giana.d64       DISK   170 KB    2026-04-12 | donkey.prg  PRG |
  |   parts/          DIR                         | icepole.d64 DSK |  <- File grids
  |   notes.txt       TXT      1 KB    2026-04-12 | ...             |     (left=active)
  |   ...                                         |                 |
  +-----------------------------------------------+-----------------+
  | 3 of 42 selected . 412 KB                     | 1 of 18 . 12K   |  <- Per-pane footer
  +-----------------------------------------------------------------+
  | F1 Run | F2 Ren | F3 View | F4 Edit | F5 Copy | F6 Move | ...   |  <- Function key bar
  +-----------------------------------------------------------------+

Legend for the placeholder glyphs used in this manual:

  [S]   the gear/settings button in the title bar
  [R]   the "refresh" arrow in a path bar
  >     a breadcrumb chevron in the path bar
  v     a dropdown caret (e.g. "Inject v")
  X     the close button in the title bar

The elements, top to bottom:

  TITLE BAR        Standard Windows controls. The gear ([S]) opens
                   Settings; right-click it for the About dialog.

  TOOLBAR          From left to right:
                     * Two drive cards (A and B). Each shows a coloured
                       LED (see chapter 15.1), the drive letter, and
                       the mounted image name (or "empty" when none).
                       Click a card to open the Device menu (or press
                       F9).
                     * A launch-mechanism chip ("Inject v", "Mount A v"
                       or "Mount B v") that mirrors Settings > File
                       handling. Click to choose another mechanism
                       without opening Settings.
                     * Connection status pill (Connected /
                       Reconnecting... / Disconnected) with one-click
                       reconnect.

  PATH BARS        Show the current folder for each pane. The
                   breadcrumb separators are chevrons (>) -- click any
                   ancestor segment to jump. Click in the empty space
                   to the right of the last segment (the cursor turns
                   into an I-beam) to switch the bar into edit mode,
                   where you can type or paste a path. [R] refreshes
                   (same as Ctrl+R).

  FILE GRIDS       Sortable columns. The currently-sorted column has
                   a chevron in its header. Right-click any header to
                   add or remove columns.

  PER-PANE FOOTER  Live tally -- "3 of 42 selected . 412 KB". For
                   local panes it also shows free space on the drive.

  FUNCTION KEY BAR The interactive cheat-sheet at the bottom. It is
                   not just decoration: every button is clickable and
                   changes label and command in real time as you hold
                   Shift, Ctrl or Alt. See chapter 7.


WHICH PANE IS ACTIVE?

The active pane gets a coloured accent border (its colour is
configurable per pane in Settings > Interface). Every action that says
"do X to the selection" operates on the active pane. Press Tab to
switch.

If you prefer the Norton Commander muscle-memory of mouse-clicking a
row to mean "this pane is now active", that already works -- clicking
inside a pane moves the focus there automatically.



================================================================================
4.  CONNECTING TO YOUR ULTIMATE
================================================================================

Before C64U Manager can do anything remote you have to tell it where
your Ultimate is on the network. This is a one-time setup.

The Ultimate firmware exposes two services that the app uses:

  * FTP        for browsing /SD/, /USB1/ etc. and transferring files.
                Default port 21.
  * REST/HTTP  for mount, run, reset, drive status, machine config.
                Default port 80.

You can give both services a password in the Ultimate's own settings;
C64U Manager will store and send those credentials.


STEP-BY-STEP

  1. Power on your Ultimate and make sure it is on the same LAN as
     the PC. The easiest sanity check: open a web browser and type
     the Ultimate's IP -- you should get its built-in REST UI.

  2. In C64U Manager press Ctrl+Shift+S (or click the gear icon) to
     open Settings.

  3. Click the "Connection" tab (the plug icon, top of the side list).

  4. Fill in:

        Host             IP or hostname. e.g. 192.168.1.42 or u64.local
        REST password    Leave blank if you did not set one
        FTP Port         21 unless you changed it
        FTP Username     usually "anonymous"
        FTP Password     whatever you set on the device, or blank

     If you don't know the IP, click "Scan" -- the app sends a UDP
     discovery broadcast and lists every Ultimate it sees, with model
     and IP. Click one to fill the field.

  5. Click "Test Connection". You should see a green dot and the
     firmware version line within a second or two.

  6. (Optional) Click "Speedtest" -- uploads a configurable payload
     (64 KB up to 2 MB, doubles each click) and reports MB/s up and
     down. Useful to verify your Ultimate is on wired Ethernet rather
     than Wi-Fi.

  7. Click OK.


WHEN THE CONNECTION DROPS

C64U Manager runs a 30-second heartbeat in the background. If it
misses a heartbeat:

  * The connection pill in the toolbar turns amber ("Reconnecting...").
  * The drive bullets go grey.
  * The app retries every few seconds. No need to relaunch.

If a reconnect is impossible (machine is off, IP changed, network
down) the pill turns red. Click it to retry on demand, or open
Settings and click Test Connection.



================================================================================
5.  WORKING WITH PANES
================================================================================

The two panes are the heart of the app. Each pane is independent --
its own mode (local or remote), its own path, its own selection, its
own preview.


PANE MODES

Each pane can be in one of two modes:

  * Local         Shows a folder on your PC (any drive -- C:, D:, USB
                  stick, network share).
  * Remote (C64U) Shows a folder on the Ultimate via FTP.

Switching a pane's mode is a per-pane toolbar button (the small
computer/floppy icon next to the path bar). You can have both panes
Local (purely PC-to-PC work), both Remote (rearranging things on the
Ultimate), or one of each (the classic transfer setup).


NAVIGATION

   +-----------------------------+----------+---------------------------------+
   | ACTION                      | KEY      | NOTE                            |
   +-----------------------------+----------+---------------------------------+
   | Open a folder               | Enter    | Or double-click                 |
   | Go up to parent             | Backspace|                                 |
   | Refresh active pane         | Ctrl+R   | Or click [R] in the path bar    |
   | Switch panes                | Tab      |                                 |
   | Cycle pane visibility       | Ctrl+U   | Both -> Left only -> Right only |
   | Pane history -- back        | Alt+Left |                                 |
   | Pane history -- forward     | Alt+Right|                                 |
   +-----------------------------+----------+---------------------------------+

The pane history is per-pane and per-mode. Going from /USB1/games into
/USB1/games/c64 and pressing Alt+Left takes you back to /USB1/games
even if the OTHER pane has been doing entirely different things.


TYPING TO SEARCH

Inside any file list you can just start typing a file name; the cursor
jumps to the first matching entry. This is the standard WPF
type-search and behaves exactly like Explorer.

EXAMPLE -- "Quick jump to a SID":

  Pane is in /USB1/sids/ with 1,400 files. Press  r o b  and the
  cursor lands on "robocop.sid".


PATH BAR EDIT MODE

Click in the empty space to the right of the last breadcrumb (the
cursor turns into an I-beam there) to turn the path bar into a text
box. Type or paste a path, press Enter -- the pane navigates there.
Esc cancels. Useful when you want to jump straight to /USB1/Configs
without clicking through the breadcrumbs.

Clicks ON a breadcrumb segment still navigate to that ancestor
folder; the edit-mode click only triggers from the empty strip after
the last segment.


LOCAL PANE -- DRIVES

When a Local pane is at "My Computer" level (path empty / above C:\)
it shows every drive with its proper Windows icon (HDD, removable,
network) and free-space tally. Double-click to enter.


REMOTE PANE -- WHAT YOU SEE

The Ultimate exposes its mounted media as virtual top-level folders.
Typical roots are:

   /SD          The SD card (if present)
   /USB1        The first USB stick
   /USB2 .. 4   Further USB media (only if present)
   /Temp        Volatile scratch folder -- wiped on power-off
   /Floppy      Mounted floppy image if any

Inside, paths follow normal Unix-style "/folder/file" semantics.


WHAT YOU CANNOT DO

The Ultimate's FTP does not implement every POSIX operation. C64U
Manager hides this where it can, but a few things will simply not
work:

  * Chmod / chown -- no Unix permissions, files are always readable
  * Symlinks     -- not supported on the FAT volume
  * Hard rename of mounted files -- eject first (see chapter 15)



================================================================================
6.  SELECTING FILES
================================================================================

The active pane uses standard Windows multi-select, extended with the
Norton-Commander numeric-keypad shortcuts so you can build up a batch
selection without dragging through the rows. There is no separate
"mark" state -- the highlighted rows you see ARE the selection that
operations work on.


CLICK / KEYBOARD SELECTION (Windows-style)

   +---------------------+----------------------------------------+
   | Click a row         | Single selection                       |
   | Ctrl-click rows     | Add / remove from selection            |
   | Shift-click row     | Range select                           |
   | Shift+arrow keys    | Extend selection up / down             |
   | Shift+Home / End    | Extend selection to top / bottom       |
   | Ctrl+A              | Select all in the active pane          |
   +---------------------+----------------------------------------+


NORTON COMMANDER PATTERN SELECTION

   +-------------------------+--------------------------------------+
   | NumPad +                | Open "Select" dialog -- ADDS matches |
   |                         | to the current selection             |
   | NumPad -                | Open "Deselect" dialog -- REMOVES    |
   |                         | matches from the current selection   |
   | NumPad *                | Invert selection                     |
   | Ctrl+NumPad +           | Select all (excluding the ".." row)  |
   | Ctrl+NumPad -           | Deselect all                         |
   +-------------------------+--------------------------------------+

The +/- dialog is pre-filled with the last mask you used (or "*.*"
the first time). Press Enter to apply, Esc to cancel.

If your keyboard has no numeric keypad, the regular "+" and "-" keys
(OemPlus / OemMinus) work as fallbacks.


PATTERN SYNTAX

   *           any sequence of characters (including none)
   ?           exactly one character
   ,  or  ;    separator -- combine several masks in one go

Examples:

   *.prg               every PRG file
   *demo*.d64          every .d64 with "demo" anywhere in the name
   icepole?.*          icepole1.d64, icepole2.t64, etc.
   ????????            every file with an exactly 8-character name
   *.prg, *.sid        every PRG and every SID, in one shot

Matching is case-insensitive and runs against the displayed name.
The ".." parent-folder row and the virtual drive entries are never
matched -- they cannot be part of a batch operation.


PRIORITY WHEN AN OPERATION RUNS

When you trigger Copy / Move / Delete / View, the app picks its
target list in this priority:

   1.  The multi-select (Ctrl-click / Shift-click / NumPad +)
       selection, if more than one row is selected
   2.  Otherwise: the single row under the cursor

So you can "set aside" a batch with NumPad+ pattern, then come back
later and press F5 -- as long as you stay in the same folder, your
selection is still there.



================================================================================
7.  THE FUNCTION KEY BAR
================================================================================

The strip across the bottom is not just a label legend -- every cell
is a clickable button. It shows twelve slots, F1 through F12.


WHAT EACH SLOT DOES (BARE KEY)

   +-----+--------------+----------------------------------------------+
   | KEY | ACTION       | NOTE                                         |
   +-----+--------------+----------------------------------------------+
   | F1  | Run / Mount  | Context-sensitive, see chapter 11            |
   |     | / Insert /   |                                              |
   |     | Play         |                                              |
   | F2  | Rename       | Inline rename of selection                   |
   | F3  | View         | Open the right viewer for the file           |
   | F4  | Edit         | Open the file for editing (manage)           |
   | F5  | Copy         | Copy selection to the OTHER pane             |
   | F6  | Move         | Copy + delete-source to other pane           |
   | F7  | MkDir        | Create new folder, prompt for name           |
   | F8  | Delete       | Delete selection (Recycle Bin / FTP)         |
   | F9  | Mount A      | Mount selected disk on Drive A               |
   | F10 | Quit         | Close the app (confirm)                      |
   | F11 | Preview      | Toggle preview on the active pane            |
   | F12 | Reset        | Soft-reset the C64                           |
   +-----+--------------+----------------------------------------------+


MODIFIERS

This is where the bar earns its keep. Hold Shift, Ctrl or Alt while
you look at the bar -- every cell relabels to its variant. The
mappings are deliberately mnemonic:

   Shift = "alternate / other"    e.g. Shift+F9 -> Mount on B (not A)
   Ctrl  = "do it harder/force"   e.g. Ctrl+F5  -> Duplicate (not Copy)
   Alt   = "into / target"        e.g. Alt+F7   -> MkDir + cd into it

For F1 specifically (the universal launcher), the modifiers mean:

   Shift  -> swap target drive (A <-> B)
   Ctrl   -> force RUN-after-load
   Alt    -> force LOAD-only (don't auto-RUN)

So:

   F1                 default action, default drive, default Run
                      setting
   Shift+F1           same action but on the other drive
   Ctrl+F1            force RUN (override the "Load only" preference)
   Alt+F1             force LOAD-only (override the "Run after load")
   Ctrl+Shift+F1      RUN on the other drive
   Alt+Shift+F1       LOAD-only on the other drive

This is the same matrix the right-click "Launch as..." submenu offers.


GREYED-OUT CELLS

If a slot or variant is not applicable (e.g. F4 Edit when nothing is
selected, or Ctrl+F4 which is unbound), its cell goes faint and the
keystroke does nothing. The bar is a faithful preview of what is
currently runnable.


CLICKABLE CELLS

You don't have to use the keyboard -- every cell is a real button.
This is useful on a laptop without a row of function keys, or for
keys your operating system steals (F11 fullscreen, etc.). Hold a
modifier with the mouse the same way you would with the keyboard.



================================================================================
8.  COPY, MOVE, RENAME AND DELETE
================================================================================

The four every-day operations. All of them respect the marked /
selected / under-cursor priority rule from chapter 6, and all of
them have a "don't ask me again" path so the second time round is a
single keystroke.


8.1  COPY  (F5)

Copies the selection to the OTHER pane's current folder.

  * Local  -> Local    plain file copy via Windows API
  * Local  -> Remote   FTP upload, with progress and Cancel button
  * Remote -> Local    FTP download, with progress and Cancel
  * Remote -> Remote   download-then-upload (slow path; the
                       Ultimate's FTP does not support server-side
                       copy)

If a file with the same name already exists at the destination, the
Duplicate dialog appears (chapter 9 covers it in detail in the
disk-image context, but it is the same dialog here):

   ( ) Rename  - auto-suffix .001 / .002 / ...   (default)
   ( ) Replace - overwrite the existing file
   ( ) Skip    - leave the existing file, drop the new one

   [x] Don't ask me again - always auto-rename

OK applies the choice; Cancel aborts the whole batch.


CTRL+F5  --  DUPLICATE IN PLACE

Same pane, same folder, just a copy. The new file gets a ".001"
suffix (or .002, .003 ...) until it finds a free name. Handy on the
local pane before you start editing.


DRAG AND DROP

You can drag files between panes with the mouse instead. Hold Shift
while dragging to force-move (instead of the default copy). Drag from
Windows Explorer INTO the C64U Manager window also works.


8.2  MOVE  (F6)

Same as Copy followed by Delete-source. Internally:

  * Same-filesystem (e.g. C:\foo -> C:\bar) is a fast rename.
  * Cross-filesystem (Local -> Remote, Remote -> Local, between
    drives) is a copy followed by a verified delete.

Move always asks for confirmation the first time -- "Move 3 files
from PC to Ultimate?". Tick "Don't ask again" to silence future
prompts.


8.3  RENAME  (F2)

Single-file rename. The active row turns into an in-place text box
(no popup dialog), pre-filled with the current name and the extension
selected separately so you can quickly retype the base name without
killing ".d64".

  * Enter       commit
  * Tab         commit and move to the next row (rapid bulk rename)
  * Esc         cancel

For renames on REMOTE files the rename happens via FTP RNFR/RNTO and
takes a fraction of a second.

PLANNED (PLACEHOLDER) RENAMES

  * Shift+F2 - Bulk Rename pattern dialog (placeholder, not yet
               active)
  * Ctrl+F2  - Rename extension only       (placeholder, not yet
               active)

These cells are visible-but-greyed in the F-key bar so you can see
what will eventually live there.


8.4  DELETE  (F8)

Removes the selection.

  * Local files   go to the Windows Recycle Bin (so Ctrl+Z works
                  for recoveries).
  * Remote files  are deleted via FTP (irrecoverable).
  * Inside disk images the directory entry is overwritten with DEL
                  and the BAM is freed -- but the image is dirty
                  until you save it back (see chapter 9.4).

The confirmation prompt is:

      +--------------------------------------------+
      |  Delete 3 files?                           |
      |                                            |
      |    * image1.d64                            |
      |    * robocop.sid                           |
      |    * notes.txt                             |
      |                                            |
      |  [x] Don't ask me again                    |
      |                                  OK Cancel |
      +--------------------------------------------+

Tick "Don't ask me again" to silence the dialog for future deletes.
You can revoke that consent at any time from Settings > Warnings.


8.5  UNDO  (Ctrl+Z)

A session-scoped, per-operation undo stack catches:

  * Copy    - the destination file is deleted
  * Move    - file is moved back; original location restored
  * Delete  - file is restored from the Recycle Bin; remote files
              cannot be un-deleted -- Ctrl+Z is a no-op for those
  * Rename  - name reverted
  * MkDir   - folder removed, if still empty

The stack holds the most recent 20 operations and is cleared when
the app quits. There is no Redo in v1.


8.6  CLIPBOARD  (Ctrl+C / Ctrl+X / Ctrl+V)

Plain Windows clipboard. Useful for crossing the application
boundary: copy a file out of C64U Manager and paste it into Explorer,
or vice versa. Within the app, F5/F6 are usually faster.



================================================================================
9.  DISK IMAGES -- THE HEART OF THE APP
================================================================================

This is where C64U Manager goes beyond a normal file manager. A .d64
is not a strange opaque blob -- the app treats it as a folder you
can walk into, edit, and walk out of.


9.1  SUPPORTED IMAGE FORMATS

   .d64           1541 disk (35 or 40 tracks)
   .d71           1571 disk (1541 doubled, two sides)
   .d81           1581 3.5" disk (80 tracks, 800 blocks)
   .d80           8050 hard disk (single-density 100-track)
   .d82           8250 hard disk (double-sided)
   .g64 / .g71    GCR-encoded variants -- viewed read-only

Everything CBM-DOS-shaped (read, list, edit name/ID, validate) works
on all of the above. G64 / G71 are read-only because they store raw
GCR streams rather than logical sectors.


9.2  OPENING A DISK IMAGE LIKE A FOLDER

Press Enter on a .d64 (or double-click). The pane navigates INTO the
image. You are now browsing the disk:

   * The path bar shows ".../mydisk.d64/" with the .d64 segment styled
     differently (italic, accent colour) so you can see you crossed
     into a container.
   * The file list shows the CBM-DOS directory: NAME (PETSCII-rendered),
     TYPE (PRG/SEQ/USR/REL/DEL), BLOCKS, sometimes a "L" splat for
     locked entries.
   * Backspace climbs back out of the image.

Inside the image you can:

   * F1 to run / inject / mount&boot a PRG (see chapter 11)
   * F3 to view the file (hex, PETSCII text, etc. -- chapter 12)
   * F5/F6 to copy/move files OUT of the image into the other pane
   * F8 to delete an entry (BAM is freed, image marked dirty)
   * F5/F6 from the other pane INTO this image to add files
   * Rename entries with F2 (PETSCII name, max 16 chars)

The image's state lives in a "session" until you exit it (Backspace
out, close the pane, or switch the pane to a different folder). On
exit it is written back if dirty:

   * Local source  -> the .d64 on disk is overwritten in place
   * Remote source -> the modified image is FTP-uploaded back to its
                      path

If the upload fails (connection drop, write protect...), you get a
dialog offering to save the modified image as a local file instead
so the work is not lost.


9.3  THE DISK INSPECTOR -- EDITING HEADERS

Right-click a .d64 > Inspect, or press Alt+I when a disk is selected
or previewed. Opens a dialog dedicated to disk metadata:

   +--------------------------------------------------------------+
   | Disk Inspector -- mydisk.d64                                 |
   +--------------------------------------------------------------+
   | Disk name   [ MY DISK         ]  (16 chars, PETSCII)         |
   | Disk ID     [ 00 ]               (5-char trailer)            |
   |                                                              |
   | Format         1541 D64 (35 tracks)                          |
   | DOS version    0x41  ('A')                                   |
   | Entries        12  (PRG 10, SEQ 2, USR 0, REL 0, DEL 0)      |
   | Blocks used    127                                           |
   | Blocks free    537                                           |
   | Error info     (none)                                        |
   |                                                              |
   | [ Validate ]   [ Open BAM/Sector ] (coming in phase D3)      |
   |                                          [ Save ]  [ Close ] |
   +--------------------------------------------------------------+

   * Validate - runs CBM-DOS validation: walks every chain, verifies
                BAM consistency, reports orphans and free-list gaps.
                Output goes into a monospace scroll box.
   * Save     - writes header edits back. Works on local AND remote
                disks (remote uploads on save).

NOTE: "Open BAM/Sector..." is disabled in v1; the sector editor is
scheduled for a later phase.


ALT+I  --  STAR-COMMANDER-STYLE INFO POPUP

A quick read-only popup with just the disk-image facts:

   Label:        MY DISK
   Disk ID:      00 2A
   DOS version:  0x41 ('A')
   Blocks free:  537
   Entries:      12 total  (PRG 10, SEQ 2, USR 0, REL 0, DEL 0)
   Source:       /USB1/games/mydisk.d64

Works on the currently-selected disk in either pane, or whichever
disk is currently being previewed (chapter 10).


9.4  CREATING A NEW DISK IMAGE  (Ctrl+F7)

Press Ctrl+F7. The "New disk image" dialog opens:

   +-------------------------------------------------------+
   | Format     [ 1541 D64 (35-track)        v ]           |
   | File name  [ new disk 0001.d64           ]            |
   | Disk name  [                              ]           |
   | Disk ID    [ 00 ]                                     |
   |                                       [Create][Cancel]|
   +-------------------------------------------------------+

Formats:

   * 1541 D64 (35-track)
   * 1541 D64 (40-track SpeedDOS)
   * 1571 D71
   * 1581 D81
   * 8050 D80
   * 8250 D82

The "file name" field auto-fills to the lowest unused "new disk
NNNN" (0001-9999) inside the destination folder, so you can
fire-and-forget to create a dozen blanks for an evening's tinkering.
The extension swaps automatically when you change the format.

Where does it land?

   * If the active pane is a local folder  -> file is written there.
   * If the active pane is a remote folder -> file is uploaded there
     via FTP.
   * If Diskbench mode is on (chapter 10) AND you have the auto-pin
     setting enabled (Settings > Interface), the new image is pinned
     into Slot 1 immediately so you can start filling it.


9.5  ADDING FILES TO A DISK IMAGE

Two routes:

  A) Enter the image (chapter 9.2), set the other pane to your source
     folder, and press F5 to copy.

  B) From the outside: drag-drop a selection onto the .d64 row. The
     app opens a session, adds the files, and writes the image back.

If a name collision happens (.d64 entries are limited to 16 PETSCII
chars, so name clashes are common), the Duplicate Action dialog
appears:

   +-------------------------------------------------+
   | Duplicate filename(s)                           |
   |                                                 |
   | ( ) Rename   - auto-suffix to NAME.001, .002... |   (default)
   | ( ) Replace  - overwrite the existing entries   |
   | ( ) Skip     - only add the non-duplicates      |
   |                                                 |
   | [x] Don't ask me again - always auto-rename     |
   |                                       OK Cancel |
   +-------------------------------------------------+

"Rename" produces friend.prg + friend.001 + friend.002 -- note these
are NOT real CBM file types, just numeric suffixes appended.


9.6  REMOVING A FILE FROM A DISK IMAGE

Inside the image, press F8. The directory entry is changed to DEL
and the BAM bits for its file chain are cleared. The image is now
dirty; on session-exit it is written back. Use Ctrl+Z to undo
within the session.


9.7  REORDERING ENTRIES

Drag a row up or down inside the image to change the directory order
(useful for "dir art" -- see chapter 10 for previews of those). The
move is purely cosmetic -- CBM-DOS doesn't care about directory
order when loading by name.


9.8  D64 FORMAT NOTES

   * Maximum 144 directory entries on a 1541 disk.
   * Maximum 664 blocks total, of which up to 17 are taken by the
     directory track (track 18). "Blocks free" starts at 664 on a
     fresh image and shrinks as you add files.
   * The "splat" bit (locked) is shown as "L" in the directory list.
     You can toggle it via right-click > Lock / Unlock.
   * A "*PRG" with no leading SAVE-block is shown as "splat" too --
     these are files that were not closed properly. Validate will
     flag them.



================================================================================
10. THE PREVIEW PANE AND COMMODORE DISKBENCH
================================================================================

The preview pane is the docked sidebar that shows a CBM-DOS-style
LIST of the currently-highlighted disk image -- without you having to
step into it first. Diskbench mode is a 3-column power-user layout
that surfaces TWO images at once.


10.1  THE PREVIEW PANE

By default each pane has a preview sidebar that activates when you
select a single disk image. The preview shows:

       0  "MY DISK         " 00 2A
      12  "INTRO         "  PRG
      54  "MUSIC         "  PRG
      18  "READ ME       "  SEQ
     500 BLOCKS FREE.

... rendered through the actual C64 character ROM, on a black
background, either upper-graphics or lower-upper case (toggleable
in the pane's preview header).


PREVIEW SIZES

There are four discrete states:

   Off         Hidden entirely
   Half        Compact -- small font, fits ~20 lines
   Mid         Medium -- comfortable default
   Full        Large -- fills the available width

Press F11 to toggle Off <-> last-visible size, or Shift+F11 to cycle
through the layouts. The size is remembered separately for 40-column
and 80-column display modes so the preview always lands at a
comfortable scale.


QUICK PREVIEW ACTIONS

Select an entry in the preview and you can act on it without entering
the image:

   F1                 Run / Inject / Mount-and-boot (as if you'd
                      entered the image and pressed F1 on this entry)
   F3                 View the file (text/hex/PRG/SID/CRT)
   Right-click >      Run as >  Inject + Run / Inject + Load /
                                Mount A + Run / Mount A + Load /
                                Mount B + Run / Mount B + Load


DRAG OUT OF THE PREVIEW

You can drag an entry from the preview directly onto the other pane
(or into Explorer) to extract it.


10.2  COMMODORE DISKBENCH MODE

A power-user layout that gives one pane a 3-column grid: Navigator on
the side, plus two "pinned slot" columns each showing a disk's
contents side-by-side.

   +-----------------------+-----------------------+-----------------+
   | NAVIGATOR             | slot 1: DEMOS.d64 *   | slot 2: ART.d64 |
   +-----------------------+-----------------------+-----------------+
   | /USB1/                | PRG INTRO             | PRG GALLERY     |
   |   demos/              | PRG SCROLL            | PRG MUSIC       |
   |   games/              | ...                   | ...             |
   |   ...                 |                       |                 |
   +-----------------------+-----------------------+-----------------+

The other pane is collapsed while Diskbench is active.


ACTIVATING DISKBENCH

   Ctrl+Shift+F11   Cycle  off -> on-left -> on-right -> off
                    (the last "off" restores the previous layout)

Or click the small Commodore-logo button on the pane header.


PINNING SLOTS

   Ctrl+Left        Pin / unpin the highlighted disk to Slot 1
   Ctrl+Right       Pin / unpin to Slot 2

Or drag a .d64 from the Navigator onto a slot column.


NAVIGATOR POSITION

The Navigator column can sit on the left (default) or in the middle.
Toggle it from the pane header menu -- useful when both your eyes
and mouse hand prefer the slots flush left.


AUTO-PINNING NEW DISKS

Settings > Interface has "Auto-pin freshly created disk image to
slot 1". When on and Diskbench is active, any disk you make with
Ctrl+F7 lands in slot 1 ready to fill.


WHY DISKBENCH?

The classic scene workflow: you have a source disk and you are
building a compilation disk. Slot 1 = the empty target, Slot 2 = the
source. Drag files left <-> right. The Navigator lets you swap the
source for another disk without losing slot 1's work.



================================================================================
11. LAUNCHING PROGRAMS ON THE C64
================================================================================

This is the punchline of the whole app. F1, in any context, asks the
Ultimate to actually run something on the C64.


11.1  THE LAUNCH MECHANISM

There is a single global mechanism setting (Settings > File handling,
or the dropdown chip in the toolbar). It controls what F1 /
double-click do by default:

   Inject     Send the program's bytes via DMA straight into C64 RAM,
              then JMP to the start. No 1541 emulation needed; fast.
              Best for plain PRG / first-PRG-on-disk.

   Mount A    Mount the disk on virtual Drive A (or Mount + Inject
              for a plain PRG), then issue LOAD "*",8,1: RUN. Slow
              like the real thing, but exercises the disk routines.

   Mount B    Same as Mount A but on Drive B (an Ultimate 1581).

The mechanism affects only the no-modifier action. The F1 modifier
matrix (chapter 7) lets you override per-keystroke.


11.2  THE PRE-RESET COMBO

Below the mechanism in Settings > File handling:

   Pre-reset    Before sending the program, do...
                  None         (just stuff it into RAM)
                  Hard reset   (POKE 64738-equivalent)
                  Soft reset   (SYS 64738)
                  Reboot       (full re-init -- only allowed if the
                                "Allow Reboot-Ultimate as a pre-reset"
                                checkbox is ticked)

A hard reset wipes RAM and ensures any previous program's residue
is gone. Useful for crashy demos.


11.3  WHAT F1 DOES PER FILE TYPE

   +-----------------+------------------------------------------------+
   | FILE TYPE       | F1 DEFAULT ACTION                              |
   +-----------------+------------------------------------------------+
   | .prg            | Load + (optional) Run on the configured drive  |
   | .d64 .d71 .d81  | Mount, then BASIC stub LOAD"*",8,1 (or Inject  |
   | .d80 .d82       | the first PRG, depending on Mechanism)         |
   | .crt            | Insert cartridge + hard reset                  |
   | .sid            | Play via the Ultimate's built-in SID player    |
   | .rp9            | Run the primary media from the package         |
   | .t64            | Extract + run the first PRG in the tape        |
   +-----------------+------------------------------------------------+

Inside a disk session (you walked INTO the .d64) F1 with a single
PRG selected acts on that specific entry -- load it, run it, or
mount-and-load-by-name, depending on the mechanism.


11.4  RIGHT-CLICK "RUN AS..."

Every disk image, PRG, T64, or RP9 in any pane has a "Run as >"
submenu on right-click that exposes every variant explicitly:

   Run as >  Inject + Run
             Inject + Load only
             Mount A + Run
             Mount A + Load only
             Mount B + Run
             Mount B + Load only

This is useful when you want to try the alternative without changing
the default mechanism.


11.5  THE RESET / REBOOT / POWER-OFF KEYS

F12 and its variants are direct machine controls:

   F12              Soft reset (SYS 64738)
   Shift+F12        Reboot (full restart of the Ultimate's OS,
                    including FPGA re-init -- slow, ~3 s)
   Ctrl+F12         Hard reset + launch the default action of the
                    current selection. Use this to start a demo from
                    a clean machine state.
   Ctrl+Alt+F12     Power off the Ultimate via /v1/machine:poweroff.
                    Sits behind two modifiers because it ends the
                    session.


11.6  THE "POWER OFF ON QUIT?" PROMPT

When you close the app while still connected, this dialog appears:

   +----------------------------------------------------+
   | Power off C64U?                                    |
   |                                                    |
   | The C64U is still connected. What should happen on |
   | quit?                                              |
   |                                                    |
   | ( ) Leave on        - just disconnect              |
   | ( ) Power off C64U  - send /v1/machine:poweroff    |
   |                                                    |
   | [x] Don't ask me again - always do the selected    |
   |                                          OK Cancel |
   +----------------------------------------------------+

Default is "Leave on" (safer). You can revoke "don't ask" from
Settings > Warnings.



================================================================================
12. FILE VIEWERS
================================================================================

Press F3 on any file (in any pane, inside or outside a disk image)
to open the appropriate viewer. The dialog header always shows the
filename, its source (Local / Remote with path), and the file size.


12.1  HEX VIEWER

The fallback for anything the app cannot identify, also reachable
on demand from the other viewers via the "Hex view" button (or just
press H inside any viewer).

   +-------------------------------------------------------------+
   | Go to: [ $1000      ]  Page 1 / 12 (4 KiB)                  |
   +-------------------------------------------------------------+
   | 1000  4C 5A 10 A9 00 8D 20 D0  8D 21 D0 A2 00 BD 00 11      |
   | 1010  9D 00 04 BD 00 12 9D 00  05 BD 00 13 9D 00 06         |
   | ...                                                         |
   +-------------------------------------------------------------+
   |            [ Save as... ]  [ Hex view (x) ]   [ Close ]     |
   +-------------------------------------------------------------+

The Go-to field accepts:

   0x1000      hex with C prefix
   $1000       hex with assembler prefix
   4096        plain decimal

Page Up / Page Down step through 4 KiB chunks; large files are NOT
loaded fully -- only the visible chunk is in memory.


12.2  PETSCII TEXT VIEWER

For .txt, .seq, .nfo, .diz and PETSCII-detected SEQ entries inside a
disk. Renders through the C64 character ROM at scale 2 on a black
background -- exactly the way the file looked to its original author.

A small "Toggle charset" button flips between upper-graphics and
lower-upper modes. Very long files are virtualised so you can scroll
through a 1 MB NFO without lag.


12.3  PRG INFO VIEWER

For .prg files. Shows:

   Load address     $0801  (BASIC area)
   File size        4,213 bytes
   Type heuristic   BASIC starter  (the first line links into 2049+)
   Hex dump         <first 256 bytes inline>

"Type heuristic" is just a hint -- load address $0801 + a sane BASIC
line-link byte suggests a BASIC program, anything else is treated as
machine code.


12.4  SID INFO VIEWER

For .sid files (PSID and RSID).

   Title         GIANA SISTERS
   Author        Chris Huelsbeck
   Released      1987 Rainbow Arts (PAL)
   Version       PSID v2
   Songs         5  (default 1)
   Init address  $1000
   Play address  $1003

No audio playback in the viewer -- that would require a SID emulator
on the PC. To actually HEAR the tune, select the .sid in a pane and
press F1 (default action for .sid is "Play"); the Ultimate's
built-in SID player takes over.


12.5  CRT INFO VIEWER

For .crt cartridge images. Shows:

   Name              EPYX FASTLOAD
   Hardware type     Epyx Fastload (id 4)
   EXROM / GAME      0 / 1   (Ultimax mode: no)
   CRT version       v1.00
   Chips             1  (ROM, 8 KiB at $8000)

The hardware-type table covers the top 30+ cartridge types. Unknown
IDs are shown as "Unknown (id=N)" -- the viewer still works, the
chip block is still parsed, you just won't see a friendly name.


12.6  WHEN F3 OPENS SOMETHING ELSE

   .d64 / .d71 / .d81   -> Disk Inspector (chapter 9.3) instead of
                           a viewer
   .rp9                 -> RP9 Info Dialog (chapter 13.5)
   .t64                 -> Container browser, not a viewer
   .zip / .7z / .lha    -> Container browser (chapter 13)

In every viewer:

   Save as...   Ctrl+S    Save the file (the whole file, not just
                          the visible chunk) to a local path.
   Hex view     H         Switch between the typed view and the raw
                          hex dump.
   Close        Esc       Close the viewer.



================================================================================
13. CONTAINERS
================================================================================

The app understands many "directory inside a file" formats from the
C64 and Amiga scenes. Press Enter on any of these to walk INTO it
the same way you walk into a folder.


13.1  SUPPORTED CONTAINERS

   +-------------+------------------------------------+------------------+
   | EXTENSION   | FORMAT                             | SUPPORT          |
   +-------------+------------------------------------+------------------+
   | .zip        | PKZip / Info-ZIP                   | read + extract   |
   | .7z         | 7-Zip                              | read + extract   |
   | .lha / .lzh | LHA / LZHUF / LH1                  | read + extract   |
   | .arc        | ARC (squeezed + crunched)          | read + extract   |
   | .rar        | RAR v4 (stored / NOT solid)        | read + extract   |
   | .sfx        | Self-extracting C64 droppers       | read + extract   |
   | .sda        | Self-dissolving archive            | read + extract   |
   | .gz         | Gzip-wrapped single file           | read + extract   |
   | .lnx        | Lynx archive                       | read + extract   |
   | .t64        | 1530 Datasette tape image          | read + extract   |
   | .rp9        | RetroPlay package                  | read + extract   |
   |             |                                    |        + launch  |
   +-------------+------------------------------------+------------------+

Container support is intentionally read-only: you can pull files
OUT, but adding files BACK is not supported (use the original
tool -- 7-Zip, LhA, etc. -- to repack if needed).


13.2  WALKING INTO A CONTAINER

Enter on the row, or double-click. The path bar shows:

   /USB1/dropbox/games.lha/

with the .lha segment styled distinctly. From here every normal pane
operation works:

   F3 / Enter      View / open a file inside the container
   F5              Extract selected files to the other pane
   F8              Disabled (containers are read-only)
   Backspace       Exit the container

Nested containers work: a .lha inside a .zip inside a folder will
just keep walking deeper.


13.3  EXTRACTING

The fastest extract: enter the container, mark or select the entries
you want, press F5 with the other pane on your destination folder.
Progress is reported in the snackbar; Cancel aborts mid-batch.

Alternatively: select the container itself (don't enter it), right-
click > "Extract all to..." picks a destination via a folder picker.


13.4  T64 -- TAPE IMAGES

T64 is the original "1530 Datasette tape with multiple TAP entries
folded into a single file" format. The Ultimate has no native tape
emulation, so:

   * F1 on a .t64 = extract the first PRG into RAM and run it
   * Enter on a .t64 = walk into it as a container; F1 on a single
     PRG entry runs THAT one


13.5  RP9 -- RETROPLAY PACKAGES

RP9 is the Ultimate's native "playable package": one ZIP-shaped file
containing a primary media (PRG / D64 / CRT / TAP / ...),
screenshots and a manifest with metadata. F3 on a .rp9 opens a
dedicated info dialog:

   +------------------------------------------------------------+
   | Giana Sisters    Rainbow Arts   1987   C64                 |
   +------------------------------------------------------------+
   | [screenshot]      Publisher    Rainbow Arts                |
   |                   Year         1987                        |
   |                   Genre        Platform                    |
   |                   System       Commodore 64                |
   |                   Control      Joystick port 2             |
   |                                                            |
   |                   Description                              |
   |                   -----------                              |
   |                   The Great Giana Sisters travels through  |
   |                   an underground world of monsters and...  |
   |                                                            |
   |                   Embedded files                           |
   |                   Name            Kind    Size             |
   |                   giana.d64       DISK   170 KB            |
   |                   readme.nfo      NFO      1 KB            |
   |                                                            |
   |                  [ > Run ]                       [ Close ] |
   +------------------------------------------------------------+

Run sends the primary media to the C64 and starts it. To run a
non-primary file, walk into the .rp9 as a container (Enter) and use
F1 on the entry you want.



================================================================================
14. SEARCHING ACROSS MANY DISKS
================================================================================

A 32 GB USB stick can hold thousands of D64s. Finding one file by
name across all of them is a chore. C64U Manager has a dedicated
recursive-search dialog.

PRESS  Ctrl+Shift+F  (in either pane).

   +----------------------------------------------------------------+
   | Find files in disks                                            |
   +----------------------------------------------------------------+
   | Folder    [ /USB1/games/                          ] [ Browse ] |
   | Pattern   [ *fastload*                            ]            |
   |                                                                |
   | [ Search ] [ Stop ]    Scanned 1,247 / 1,247 disks . 14 hits   |
   +----------------------------------------------------------------+
   | Entry             Type  Blocks  Disk (relative)                |
   | -------------------------------------------------------------  |
   | FAST LOAD         PRG     12    epyx/epyx_03.d64               |
   | FAST LOADER       PRG      8    misc/utils_01.d64              |
   | FASTLOAD CART     PRG     14    cartridges/dump.d64            |
   | ...                                                            |
   +----------------------------------------------------------------+
   |                                [ Open in active pane ]  Close  |
   +----------------------------------------------------------------+

  * Folder is the root of the scan -- every .d64/.d71/.d81 under it
    is walked. You can browse to it or just type/paste the path.
  * Pattern uses CBM wildcards (* and ?); empty matches all.
  * Search and Stop are independent -- long scans on remote folders
    can be interrupted at any time.

DOUBLE-CLICK A RESULT or press Enter (or use "Open in active
pane"): the pane navigates to that disk image, walks into it, and
highlights the matching entry. From there F1 / F3 / drag-out all
work as usual.


ON A REMOTE FOLDER

The same dialog works against the Ultimate via FTP. The first time
you search remote it warns:

   "Recursive search over FTP will download disk-image headers for
    every disk in this tree. This can be slow on a wireless
    network."

Tick "Don't ask me again" to silence the warning on future runs.



================================================================================
15. DEVICE CONTROL
================================================================================

F9 (or click a drive card in the toolbar) opens the Device menu:

   +------------------------------------------------+
   |   Mount selected on Drive A                    |
   |   Mount selected on Drive B                    |
   |   --------------------------                   |
   |   Eject Drive A                                |
   |   Eject Drive B                                |
   |   --------------------------                   |
   |   Refresh remote pane                          |
   |   Reconnect                                    |
   |   --------------------------                   |
   |   System information...                        |
   |   Configure device...                          |
   +------------------------------------------------+


15.1  THE DRIVE CARDS

Each drive card on the toolbar has four visible states via its
bullet colour:

   +------------+-------------+----------------------------------------+
   | LED COLOUR | STATE       | MEANING                                |
   +------------+-------------+----------------------------------------+
   | grey       | Disconnected| No connection to the Ultimate.         |
   | red        | Disabled    | Drive is disabled in the Ultimate's    |
   |            |             | own configuration. Use Configure       |
   |            |             | device... (15.4) to enable it.         |
   | neutral    | EmptyEnabled| Drive enabled but no image mounted.    |
   | green      | Mounted     | A disk is mounted; image filename is   |
   |            |             | shown next to the LED.                 |
   +------------+-------------+----------------------------------------+

Drive A defaults to a 1541 (or 1571, depending on the Ultimate's
config); Drive B defaults to a 1581. You can change which physical
model each virtual drive emulates from the device config dialog.


15.2  MOUNT AND EJECT

   F9            Mount selected disk on Drive A
   Shift+F9      Mount selected disk on Drive B
   Device menu   Eject Drive A / Eject Drive B

Mount happens via REST POST and typically completes in ~1 s. The
drive LED transitions to green and the image name appears next to
it. If the device-side mount fails (bad image, drive disabled), a
snackbar pops up with the REST error.


15.3  SYSTEM INFORMATION DIALOG

Device menu > System information...

A read-only "all about this Ultimate" report:

   +--------------------------------------------------------------+
   | System Information                  [ Show all settings v ]  |
   +--------------------------------------------------------------+
   | [ Refresh ]  [ Copy ]  [ Save... ]  [ Export .cfg... ]       |
   +--------------------------------------------------------------+
   |   Identity                                                   |
   |     Product            U64 Elite                             |
   |     Firmware           3.10b                                 |
   |     FPGA bitstream     ULT64-001a                            |
   |     Hostname           u64-living                            |
   |     Serial             0xABCDEF                              |
   |                                                              |
   |   Network                                                    |
   |     IP                 192.168.1.42                          |
   |     MAC                12:34:56:78:9A:BC                     |
   |     Subnet / GW        ...                                   |
   |                                                              |
   |   Storage                                                    |
   |     SD                 32 GB (28.4 free)                     |
   |     USB1               64 GB (12.1 free)                     |
   | ...                                                          |
   +--------------------------------------------------------------+

  * Refresh         Re-fetch from the device.
  * Copy            Entire report to the clipboard (great for bug
                    reports).
  * Save...         Write the report to a .txt file.
  * Export .cfg...  Save the device's live config in the Ultimate's
                    native .cfg format. Upload it back to
                    /USB1/Configs/ on another device to clone
                    settings.


15.4  ULTIMATE CONFIGURATION (LIVE EDITOR)

Device menu > Configure device...

A live editor for every Ultimate setting the firmware exposes.
Two-pane layout: categories on the left (with a dirty indicator),
per-item editors on the right.

   * Boolean items are check boxes.
   * Enums are drop-downs.
   * Integers get a stepper with min/max hint.
   * Strings are text boxes.
   * "Preset" items are an editable combo: pick from a curated list,
     or type your own value.

Each row with unsaved changes shows a yellow pip and a revert button
that restores the device's current value.

Network-affecting categories show a warning banner -- changing the
IP or DHCP setting may make your Ultimate unreachable from this PC
until it reboots.

Footer:

   [ Save to flash ] (Ctrl+S)   Commit edits, persist across power
                                cycles
   [ Discard       ]            Revert all pending edits
   [ Reload        ]            Re-fetch from device (warns if dirty)
   [ Reset defaults]            Factory defaults (asks for
                                confirmation)
   [ Close         ]            Closes the dialog (warns if dirty)



================================================================================
16. SETTINGS
================================================================================

Settings is a single dialog with seven side-tabs. Open it with
Ctrl+Shift+S or click the gear icon.


16.1  CONNECTION  (plug icon)

  * Host                     IP or hostname, plus a Scan button that
                             auto-discovers Ultimates on the LAN.
  * REST password            For Ultimate firmware >= 3.x with API
                             auth.
  * FTP Port / Username /    21 / anonymous / blank are the defaults
    Password                 that match a stock-config Ultimate.
  * Preview debounce         (0-2000 ms, step 50) How long the
                             preview waits after you change selection
                             before actually fetching the disk
                             header. Higher = less FTP load while
                             arrowing through a folder; lower =
                             snappier.
  * Inter-file delay         (0-500 ms, step 50) Pause between
                             successive remote operations. Mostly
                             useful on flaky Wi-Fi where back-to-back
                             FTP commands can overrun the Ultimate's
                             command queue.
  * Test Connection          Click. Green dot + firmware version
                             line means you're good.
  * Speedtest                Uploads a payload (64 KB -> 2 MB,
                             doubles per click) and reports MB/s up
                             and down.


16.2  INTERFACE  (display icon)

  * Theme                    Locked to Dark in v1. (Light theme is in
                             progress; the combo is disabled with an
                             explanatory label.)
  * Shortcuts Mode           Standard / Disabled. "Disabled" turns OFF
                             every keyboard binding -- for
                             screen-share demos, screencast recording,
                             or shoulder-surfers who want safe
                             read-only viewing.
  * Default preview state    Per pane mode (Local pane / Remote
                             pane). Off / Half / Mid / Full.
  * Preview width            In characters (16-80, default 30). Wider
                             previews show longer filenames before
                             wrapping but use more pane space.
  * Link both panes' dock    When on, changing the layout on one pane
    layout                   mirrors to the other.
  * Allow layout drag        Lets you drag the preview pane to a
                             different edge.
  * Auto-pin freshly created Sends new D64s straight into Diskbench
    disk image to slot 1     slot 1 when Diskbench is active.
  * Per-pane focus-ring      Hex / HSB sliders / opacity slider, plus
    colour                   8 preset swatches. Lets you tell left
                             pane and right pane apart at a glance.
  * Toast duration           1-10 s, default 4. How long notification
                             snackbars linger.


16.3  FILE HANDLING  (file icon)

The chapter on launching (chapter 11) covers these in depth.

  * Mechanism                Inject / MountA / MountB. The default
                             behaviour of F1 / double-click on a
                             runnable file.
  * Pre-reset                What to do BEFORE every launch.
                             None / Hard reset / Soft reset / Reboot.
  * Allow Reboot-Ultimate    Unlocks "Reboot" as a Pre-reset option.
    as a pre-reset           Off by default -- Reboot is slow and
                             rebuilds the FPGA, you usually don't
                             want it on every launch.


16.4  CACHING  (floppy-disk icon)

  * Disk image cache size    (0-512 MB, step 8) How much memory the
                             app may use to cache downloaded D64s for
                             fast re-open. 0 disables the cache.
  * [ Flush disk image cache ]
  * Folder listing cache     Two modes:
                              (a) "Keep cached for the entire app
                                  session" (default) -- listings only
                                  invalidate on app-side mutations,
                                  explicit refresh (Ctrl+R), or
                                  disconnect.
                              (b) "Auto-expire after a fixed interval"
                                  -- opt-in for when other tools are
                                  also touching the device.
  * Auto-expire interval     Configurable from 5 seconds up to 24
                             hours. The +/- stepper is smart: it
                             takes smaller steps near the floor and
                             larger ones higher up:
                               <  1 min   step  15 sec
                               1- 4 min   step   1 min
                               5- 9 min   step   5 min
                              10-29 min   step  10 min
                              30 min+     step  30 min
                             The read-out always shows the value in
                             its natural unit ("5 min", "1 hour",
                             "1h 30m", "24 hours"). + and - tooltips
                             reflect the current step live, so you
                             can see what each click will do.
  * [ Flush listing cache ]
  * Background prefetch      Master on/off. When on, the app
                             speculatively downloads disk headers for
                             nearby files so the preview is instant.
  * Folder-open prefetch     (50-1000 disks) How many to prefetch
    count                    when you arrive in a folder.
  * Idle threshold           How long to wait after activity stops
                             before kicking off prefetch.
  * Inter-request delay      Throttle for the prefetch queue.
  * Debug burst report       Shows a notification with prefetch
                             stats after each batch. Off in normal
                             use.


16.5  FOLDERS  (folder-open icon)

Per-pane Home folder for Local mode AND Remote mode (so each pane
has two homes, total four):

  * Left pane / Local PC     Browse to set, Clear to use the default
  * Left pane / C64U         (the FTP root or %USERPROFILE%)
  * Right pane / Local PC
  * Right pane / C64U

The home folder is where the pane opens at app start and where the
"home" toolbar button takes you.


16.6  WARNINGS  (triangle exclamation)

A check box per "don't ask me again" key. Tick to RE-enable a
confirm prompt you previously silenced. Useful when you suppressed
"Delete?" six months ago and now want it back.

  [ Enable all warnings ]   One-click reset of every key.


16.7  OTHER  (ellipsis)

  * Show welcome message     The first-launch toast.
  * [ Reset to defaults ]    All-of-the-above back to factory.


FOOTER

  [ Save settings... ]   Export current settings to a .json file.
  [ Load settings... ]   Import settings from a .json file.
  [ OK ]                 Save and close.
  [ Cancel ]             Close without saving.



================================================================================
17. TIPS, WORKFLOWS AND RECIPES
================================================================================

A grab-bag of "if you have only learned X, learn Y next" idioms.


17.1  THE FIVE-KEY ROUTINE

Once F-keys are in your fingers, this is most of the app:

   Tab             switch panes
   F5              copy to the other pane
   F8              delete
   F1              run whatever this is on the C64
   F11             show/hide the preview

That's 80% of daily use.


17.2  BUILDING A COMPILATION D64

  1. Ctrl+F7 -> make a blank D64. It lands in the active pane.
  2. Switch other pane to a folder of source disks.
  3. Press Ctrl+Shift+F11 to enter Diskbench mode. Your new disk
     pins itself into slot 1 (if auto-pin is on).
  4. Enter a source disk in the Navigator column -- slot 2 fills.
  5. Drag PRGs from slot 2 to slot 1. The "Duplicate filename"
     dialog handles any clashes.
  6. Swap source disk in the Navigator without losing slot 1.
  7. Backspace out of slot 1 when done -- image is saved
     automatically.


17.3  PLAYING A SID YOU JUST FOUND

  1. Ctrl+Shift+F -> search "*.sid" in /USB1/sids/.
  2. Double-click a result -> pane navigates to it.
  3. F3 -> SID info dialog: confirms title/author/songs.
  4. Close, F1 -> SID starts playing on the C64.
  5. F12 -> soft reset stops the player.


17.4  RUNNING A DEMO FROM SCRATCH

  1. Select a .d64 demo on a remote pane.
  2. Ctrl+F12 = "hard reset + run". The Ultimate boots clean, mounts
     the image, types LOAD"*",8,1: RUN, and you watch.
  3. If it crashes (which demos do): F12 again, try Ctrl+Alt+F1 to
     swap drive, or Alt+F1 to load without auto-run so you can
     SYS xxxx manually.


17.5  EXPORTING / IMPORTING THE WHOLE CONFIG

  1. Device menu > System information > Export .cfg... to dump the
     Ultimate's live config.
  2. Copy the resulting .cfg to /USB1/Configs/ on another Ultimate.
  3. On that device load it via firmware UI -- settings clone over.

You can also Save/Load just the app's own settings via Settings >
footer.


17.6  EMERGENCY: I HIT F8 ON THE WRONG THING

  * Local file -> it's in the Recycle Bin. Ctrl+Z, or Recycle Bin
                  restore.
  * Inside an unsaved disk image session -> Ctrl+Z while still in
                  the session (before you Backspace out).
  * Remote file -> gone. FTP delete is final. There is no Recycle
                  Bin on the Ultimate.



================================================================================
18. TROUBLESHOOTING AND FAQ
================================================================================

Q  "Test Connection" reports red. What now?

   1. Ping the IP from a command prompt -- verify network at all.
   2. Visit http://<that IP>/ in a browser -- should show Ultimate
      REST.
   3. Try FTP from another client (FileZilla, WinSCP) on port 21.
   4. If FTP works elsewhere but not here, double-check the FTP
      username (defaults to "anonymous" -- even if your Ultimate
      accepts no auth, the field must be non-empty).
   5. Some routers block UDP discovery between subnets -- type the
      IP manually if Scan returns nothing.


Q  Pressing Tab does nothing.

   You probably have Settings > Interface > Shortcuts Mode set to
   Disabled. Switch back to Standard.


Q  The drive bullet is red.

   The drive is disabled in the Ultimate's own configuration. Open
   Configure device..., find the drive's category, set it to
   Enabled, Save to flash. The bullet should turn neutral (empty)
   within a couple of seconds.


Q  My .d64 is on a slow network and the preview shows nothing.

   Either:
     a) The disk is genuinely large and still downloading -- wait.
     b) The preview-debounce timer is set very high -- Settings >
        Connection, drop "Preview debounce" to 100-250 ms.
     c) Background prefetch is off -- turn it on in Settings >
        Caching.


Q  Light theme?

   Coming after v1. The combo in Settings says "(locked to Dark in
   v1)" on purpose -- the light theme isn't finished yet.


Q  I clicked "Open BAM/Sector..." in the Disk Inspector and nothing
   happens.

   That button is greyed out in v1; the tooltip says "Coming in
   phase D3". Sector editor is on the roadmap.


Q  Where do my screenshots / log files go if I file a bug?

   * Settings: %APPDATA%\C64UManager\settings.json
   * Logs:     %APPDATA%\C64UManager\logs\
   * Cache:    %APPDATA%\C64UManager\cache\  (safe to delete)


Q  Does this work on Linux / WINE?

   It runs under WINE 9+ in basic file-management mode. Font Awesome
   icons are embedded SVGs (not a font), so no icon font is
   required. The .NET 10 Desktop runtime under WINE is the main
   constraint; some dialogs may render imperfectly. Officially
   unsupported.


Q  Will it ever speak to a real 1541?

   No -- the project's scope is the Ultimate hardware (which already
   emulates the 1541 / 71 / 81 / 80 / 82 / DNP fully). For real-
   drive workflows use OpenCBM + cbmctrl.



================================================================================
19. COMPLETE KEYBOARD SHORTCUT REFERENCE
================================================================================


19.1  GLOBAL (anywhere in the app)

   +--------------------------+--------------------------------------+
   | KEY                      | ACTION                               |
   +--------------------------+--------------------------------------+
   | Tab                      | Switch active pane                   |
   | Backspace                | Go up to parent folder               |
   | Ctrl+R                   | Refresh active pane                  |
   | Ctrl+U                   | Cycle pane visibility                |
   | Ctrl+L                   | Browse local folder picker           |
   | Ctrl+F                   | Focus path / search box (active pane)|
   | Ctrl+Shift+F             | Recursive search over disk images    |
   | Ctrl+C / Ctrl+X / Ctrl+V | Clipboard (cross-app)                |
   | Ctrl+Z                   | Undo last operation                  |
   | Ctrl+Shift+S             | Open Settings                        |
   | Ctrl+Shift+N             | New folder (same as F7)              |
   | Alt+Left / Alt+Right     | Per-pane history back / forward      |
   | Alt+F4                   | Quit application                     |
   | Alt+I                    | Disk-image info popup (Star Commander|
   |                          | style)                               |
   | Delete                   | Delete (same as F8)                  |
   | Ctrl+Left / Ctrl+Right   | Pin/unpin Diskbench slot 1 / slot 2  |
   | NumPad +                 | Select-by-mask dialog (adds matches) |
   | NumPad -                 | Deselect-by-mask dialog              |
   | NumPad *                 | Invert selection                     |
   | Ctrl+NumPad +            | Select all (excluding "..")          |
   | Ctrl+NumPad -            | Deselect all                         |
   +--------------------------+--------------------------------------+


19.2  THE F-KEY MATRIX

The F-key bar at the bottom reflects this matrix live. Each key
gets its own block showing every modifier variant. Entries marked
(*) are greyed-out placeholders in v1 -- the cell is visible in the
F-key bar but the keystroke is a no-op.

   +-------------------------------------------------------------------+
   | F1  --  Contextual launcher (see chapter 11)                      |
   +---------------+---------------------------------------------------+
   | (no modifier) | Run / Mount / Insert / Play (resolved per file)   |
   | Shift         | Same action, other drive (A/B)                    |
   | Ctrl          | Force RUN, ignore the Run-by-default setting      |
   | Alt           | Force LOAD only, ignore Run-by-default            |
   | Ctrl+Shift    | Force RUN on the other drive                      |
   | Alt+Shift     | Force LOAD only on the other drive                |
   +---------------+---------------------------------------------------+

   +-------------------------------------------------------------------+
   | F2  --  Rename                                                    |
   +---------------+---------------------------------------------------+
   | (no modifier) | Inline rename of the selected file                |
   | Shift         | Bulk Rename (*)                                   |
   | Ctrl          | Rename extension only (*)                         |
   +---------------+---------------------------------------------------+

   +-------------------------------------------------------------------+
   | F3  --  View                                                      |
   +---------------+---------------------------------------------------+
   | (no modifier) | View -- open the typed viewer for the file        |
   | Shift         | Hex View -- force the raw hex dump                |
   | Ctrl          | View Other -- view the OTHER pane's selection     |
   +---------------+---------------------------------------------------+

   +-------------------------------------------------------------------+
   | F4  --  Edit                                                      |
   +---------------+---------------------------------------------------+
   | (no modifier) | Open the file with the configured editor (manage) |
   +---------------+---------------------------------------------------+

   +-------------------------------------------------------------------+
   | F5  --  Copy                                                      |
   +---------------+---------------------------------------------------+
   | (no modifier) | Copy selection to the other pane                  |
   | Shift         | Copy As... (*)                                    |
   | Ctrl          | Duplicate -- copy in place with auto-suffix       |
   +---------------+---------------------------------------------------+

   +-------------------------------------------------------------------+
   | F6  --  Move                                                      |
   +---------------+---------------------------------------------------+
   | (no modifier) | Move selection to the other pane                  |
   | Shift         | Move As... (*)                                    |
   +---------------+---------------------------------------------------+

   +-------------------------------------------------------------------+
   | F7  --  MkDir                                                     |
   +---------------+---------------------------------------------------+
   | (no modifier) | New folder (prompt for name)                      |
   | Shift         | New File (prompt for name)                        |
   | Ctrl          | New D64 -- open the New Disk Image dialog         |
   | Alt           | MkDir + cd -- create a folder and enter it        |
   +---------------+---------------------------------------------------+

   +-------------------------------------------------------------------+
   | F8  --  Delete                                                    |
   +---------------+---------------------------------------------------+
   | (no modifier) | Delete selection (Recycle Bin for local, FTP for  |
   |               | remote)                                           |
   | Shift         | Secure wipe (*)                                   |
   | Ctrl          | Recycle (*)                                       |
   +---------------+---------------------------------------------------+

   +-------------------------------------------------------------------+
   | F9  --  Mount                                                     |
   +---------------+---------------------------------------------------+
   | (no modifier) | Mount selected disk on Drive A                    |
   | Shift         | Mount selected disk on Drive B                    |
   +---------------+---------------------------------------------------+

   +-------------------------------------------------------------------+
   | F10  --  Quit                                                     |
   +---------------+---------------------------------------------------+
   | (no modifier) | Close the app (confirmation prompt)               |
   +---------------+---------------------------------------------------+

   +-------------------------------------------------------------------+
   | F11  --  Preview / layout                                         |
   +---------------+---------------------------------------------------+
   | (no modifier) | Toggle preview on the active pane                 |
   | Shift         | Cycle layout preset on the active pane            |
   | Ctrl          | Hide / show the LEFT pane                         |
   | Alt           | Hide / show the RIGHT pane                        |
   | Ctrl+Alt      | Force BOTH panes visible                          |
   | Ctrl+Shift    | Cycle Commodore Diskbench (off / left / right)    |
   +---------------+---------------------------------------------------+

   +-------------------------------------------------------------------+
   | F12  --  Machine control                                          |
   +---------------+---------------------------------------------------+
   | (no modifier) | Soft reset the C64                                |
   | Shift         | Reboot the Ultimate (full restart, ~3 s)          |
   | Ctrl          | Hard reset + launch the current selection         |
   | Ctrl+Alt      | Power off the Ultimate                            |
   | Ctrl+Alt+Shift| Trigger welcome toast (dev only)                  |
   +---------------+---------------------------------------------------+


19.3  IN-VIEWER (inside the file viewer dialog)

   H                     Toggle Hex view / typed view
   Ctrl+S                Save as...
   Esc                   Close
   Page Up / Page Down   Step 4 KiB in hex view
   Type letters          Type-search within text/PETSCII view



================================================================================
20. FILE TYPE MATRIX
================================================================================

The single most useful table in the manual -- what happens when you
press F1, F3, or Enter on a given file type.

   +-------------+-------------------+-------------------+-------------+-----------------+
   | EXTENSION   | F1 (LAUNCH)       | F3 (VIEW)         | ENTER       | AS CONTAINER?   |
   +-------------+-------------------+-------------------+-------------+-----------------+
   | .prg        | Load + Run        | PRG Info          | (run)       | no              |
   | .crt        | Insert + reset    | CRT Info          | (insert)    | no              |
   | .sid        | Play on C64       | SID Info          | (play)      | no              |
   +-------------+-------------------+-------------------+-------------+-----------------+
   | .d64        | Mount A + boot    | Disk Inspector    | walk in     | yes (folder)    |
   | .d71        | Mount A + boot    | Disk Inspector    | walk in     | yes             |
   | .d81        | Mount B + boot    | Disk Inspector    | walk in     | yes             |
   | .d80 .d82   | Mount + boot      | Disk Inspector    | walk in     | yes             |
   | .g64 .g71   | Mount A           | Hex dump          | walk in     | yes (read-only) |
   +-------------+-------------------+-------------------+-------------+-----------------+
   | .t64        | Run first PRG     | Container browser | walk in     | yes (read-only) |
   | .rp9        | Run primary media | RP9 Info dialog   | walk in     | yes (read-only) |
   | .zip        | -                 | Container browser | walk in     | yes (read-only) |
   | .7z         | -                 | Container browser | walk in     | yes (read-only) |
   | .lha .lzh   | -                 | Container browser | walk in     | yes (read-only) |
   | .arc        | -                 | Container browser | walk in     | yes (read-only) |
   | .rar        | -                 | Container browser | walk in     | yes (read-only) |
   | .sfx .sda   | -                 | Container browser | walk in     | yes (read-only) |
   | .lnx        | -                 | Container browser | walk in     | yes (read-only) |
   | .gz         | -                 | Container browser | walk in     | yes (read-only) |
   +-------------+-------------------+-------------------+-------------+-----------------+
   | .txt        | -                 | PETSCII text      | open viewer | no              |
   | .seq        | -                 | PETSCII text      | open viewer | no              |
   | .nfo .diz   | -                 | PETSCII text      | open viewer | no              |
   | .cfg        | -                 | PETSCII text      | open viewer | no              |
   | .tap        | -                 | Hex dump          | -           | no              |
   | (any other) | -                 | Hex dump          | open viewer | no              |
   +-------------+-------------------+-------------------+-------------+-----------------+

The "AS CONTAINER" column tells you whether Enter / Backspace will
"walk into" the file as if it were a folder.



================================================================================
APPENDIX A.  LICENSE
================================================================================

C64U Manager (Retro Commander) is proprietary software. It is
NOT open source. The application is licensed to the end user under the terms 
below. Third-party components bundled with the application retain their own 
licenses (see A.2).


A.1  C64U MANAGER LICENSE

   PROPRIETARY SOFTWARE LICENSE

   Copyright (c) 2025-2026 Jarno Beumer
   All rights reserved.

   This software, including its source code, binaries, assets,
   documentation, and any accompanying materials (collectively,
   the "Software"), is the exclusive property of the copyright
   holder and is protected by copyright law and international
   treaty provisions.

   PERMITTED USE

   Subject to your acceptance of these terms, the copyright holder
   grants you a non-exclusive, non-transferable, revocable license
   to install and use the Software on devices you own or control,
   for your own personal or internal business purposes.

   RESTRICTIONS

   You may NOT, without the prior written permission of the
   copyright holder:

     (a) copy, reproduce, or redistribute the Software in whole or
         in part;
     (b) sell, rent, lease, sublicense, or otherwise transfer the
         Software to any third party;
     (c) modify, adapt, translate, or create derivative works of
         the Software;
     (d) reverse engineer, decompile, disassemble, or otherwise
         attempt to derive the source code of the Software, except
         to the extent that such activity is expressly permitted by
         applicable law notwithstanding this limitation;
     (e) remove, alter, or obscure any copyright, trademark, or
         other proprietary notices contained in the Software;
     (f) use the Software to develop a competing product.

   OWNERSHIP

   All title, ownership rights, and intellectual property rights
   in and to the Software remain with the copyright holder. No
   rights are granted to you other than those expressly set forth
   in this license.

   NO WARRANTY

   THE SOFTWARE IS PROVIDED "AS IS" AND "AS AVAILABLE", WITHOUT
   WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
   LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
   PARTICULAR PURPOSE, AND NONINFRINGEMENT.

   LIMITATION OF LIABILITY

   IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM,
   DAMAGES, OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
   TORT, OR OTHERWISE, ARISING FROM, OUT OF, OR IN CONNECTION WITH
   THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE,
   INCLUDING ANY LOSS OF DATA, LOSS OF PROFITS, OR BUSINESS
   INTERRUPTION, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
   DAMAGE.

   TERMINATION

   This license is effective until terminated. Your rights under
   this license will terminate automatically without notice if you
   fail to comply with any of its terms. Upon termination you must
   cease all use of the Software and destroy all copies in your
   possession.

   GOVERNING LAW

   This license shall be governed by and construed in accordance
   with the laws of the jurisdiction in which the copyright
   holder resides, without regard to its conflict-of-laws
   provisions.

   LICENSING INQUIRIES

   For commercial redistribution, OEM bundling, source-code
   licensing, or any use beyond the scope of this license, please
   contact the copyright holder.


A.2  THIRD-PARTY COMPONENTS

The application bundles or links the following third-party
components. Each retains its own license; only the credits and
license names are reproduced here. See each project's repository
for the full license text.

   +----------------------------+-----------+-------------------------+
   | COMPONENT                  | LICENSE   | ROLE IN C64U MANAGER    |
   +----------------------------+-----------+-------------------------+
   | .NET 10 + WPF              | MIT       | Runtime + UI framework  |
   | FluentFTP                  | MIT       | Remote-pane FTP client  |
   | CommunityToolkit.Mvvm      | MIT       | MVVM source generators  |
   | Microsoft.Extensions.      | MIT       | DI / generic host       |
   |   Hosting                  |           |                         |
   | AvalonDock (Dirkster99     | Ms-PL     | Per-pane Navigator /    |
   |   fork)                    |           | Preview docking layout  |
   | Font Awesome 7 Pro (Light) | See A.2.6 | Toolbar / menu icons    |
   | Commodore 64 character ROM | See A.2.7 | PETSCII preview render  |
   +----------------------------+-----------+-------------------------+


A.2.1  .NET 10 + WPF

   Runtime and UI framework by Microsoft. Licensed under the MIT
   License.

   Repository: https://github.com/dotnet/runtime
               https://github.com/dotnet/wpf


A.2.2  FluentFTP

   FTP client library by Robin Rodricks and contributors. Licensed
   under the MIT License. Used for the C64U remote-pane file
   transport.

   Repository: https://github.com/robinrodricks/FluentFTP


A.2.3  CommunityToolkit.Mvvm

   MVVM source-generators (ObservableProperty, RelayCommand) by
   Microsoft and the .NET Community Toolkit team. Licensed under
   the MIT License.

   Repository: https://github.com/CommunityToolkit/dotnet


A.2.4  Microsoft.Extensions.Hosting

   .NET generic host / DI container by Microsoft. Licensed under
   the MIT License.

   Repository: https://github.com/dotnet/runtime


A.2.5  AvalonDock (Dirkster99 fork)

   WPF docking framework by Dirk Bahle and the AvalonDock
   contributors, building on the original AvalonDock codebase.
   Licensed under the Microsoft Public License (Ms-PL). Used for
   the per-pane Navigator/Preview docking layout.

   Repository: https://github.com/Dirkster99/AvalonDock


A.2.6  Font Awesome 7 Pro (Light)

   Icon set by Fonticons, Inc. The Light-style SVG paths are
   embedded directly in the app as vectors (no icon font is
   installed) so toolbar and menu glyphs render identically on
   Windows and under WINE/Linux.

   Font Awesome Pro is a commercial product; a valid Font Awesome
   Pro license is required to redistribute its assets. The
   embedded SVG paths in this build are used under the project
   owner's Font Awesome Pro license; downstream redistributors of
   modified builds must obtain their own license or replace the
   icon assets with Font Awesome Free (CC BY 4.0 + SIL OFL 1.1 +
   MIT) or an equivalent set.

   Website: https://fontawesome.com/


A.2.7  Commodore 64 Character ROM

   The original 4 KB bitmap character set from the Commodore 64
   KERNAL, embedded as c64.bin (256 glyphs x 8 bytes per bank, two
   banks: upper/graphics and lower/upper). Copyright Commodore
   Business Machines, originally distributed in C64 ROM. Used for
   the in-app preview and disk-image listings, rendered directly
   as 8x8 pixel glyphs.

   The character ROM is widely understood to be freely
   redistributable for emulation and preservation purposes; it is
   bundled by every C64 emulator (VICE, Hoxs64, CCS64, ...) and
   has been a de-facto public standard for decades. No formal
   re-licensing has ever been issued by the original rights
   holders. If you are redistributing C64U Manager and have
   concerns about this status, replace c64.bin with a clean-room
   reverse-engineered set such as the Pepto/Painter "C64 Pro
   Mono" charset.


A.3  INSPIRATION (NOT REDISTRIBUTED CODE)

The following influenced the design but no code or data from these
sources is bundled in C64U Manager:

   * Norton Commander, Total Commander, Midnight Commander -- the
     UI paradigm (dual-pane, F-key bar, mark/unmark selection).
   * Windows Explorer -- breadcrumb path bar, type-search,
     shell-icon rendering.
   * Peter Schepers' "Inside Commodore DOS" -- disk-image format
     references for D64/D71/D81/D80/D82.
   * VICE 3.x source (cbmdos / vdrive subsystems) -- cross-check
     reference for BAM walking and CBM file-chain reading.
   * Ultimate II+ firmware REST documentation -- the REST endpoint
     contract for mount/run/reset/config calls.


A.4  REPORTING A LICENSE ISSUE

If you believe a third-party component is mis-credited, has its
license stated incorrectly in this manual, or is bundled in a way
that conflicts with its terms, please contact the copyright
holder through the support channel provided with your
distribution. License issues are prioritised and addressed in the
next release.



================================================================================
                              --  END OF MANUAL  --
================================================================================

C64U Manager (Retro Commander)
Copyright (c) 2025-2026 Jarno Beumer. All rights reserved.


