8bitflynn'z Projects
VDRIVE (WiC64)
VDRIVE Logo

VDRIVE Overview

VDRIVE is a modular disk routing protocol for the Commodore 64. With WiC64 hardware, it allows users to search, mount, and share disk images directly from their C64 using simple BASIC calls. Once mounted, PRGs can be loaded or saved, enabling persistent workflows across multiple systems.

WiC64 is memory‑mapped directly to the C64, bypassing the limitations of serial communication and enabling near‑instant loading of large binaries.



11/28/2025 – VDRIVE 1.0.0-beta is now on GitHub! Run a VDRIVE server locally and point it to your disk images and PRGs.

Core functionality includes

  • SYS 49158 — Search for disk images using a keyword or label
  • SYS 49161 — Remount a disk from the previous search result
Key Components
  • VDRIVE Server — C# .NET Core tooling that implements resolvers, adapters, and host‑side logic for serving disk images to WiC64.
    • IFloppyResolver — Resolves search terms into disk image paths (local or remote).
    • IStorageAdapter — Abstracts the file system or remote storage layer for mounting, reading, and writing disk images.
  • VDRIVE C64 Client — The C64‑side component written in 6510 assembly. Communicates via WiC64 memory‑mapped I/O and handles user input and disk mounting logic.

Floppy resolvers include configurable local path scanning or remote search/mount with Commodore.Software. Storage adapters include c1541.exe from VICE and CBMdisk.pyd that powers DirMaster.

+-------------+      +-------------+      +-------------+
|   C64 #1    |      |   C64 #2    |      |   C64 #3    |
+-------------+      +-------------+      +-------------+
      |                    |                    |
      v                    v                    v
+-------------+      +-------------+      +-------------+
|   WiC64 #1  |      |   WiC64 #2  |      |   WiC64 #3  |
+-------------+      +-------------+      +-------------+
      \                    |                    /
       \                   |                   /
        \__________________|__________________/
                           v
            +-----------------------------+
            |           Host              |
            |     (Library + API)         |
            |                             |
            |   +---------------------+   |
            |   |  Disk Resolvers     |   |
            |   |  Storage Adapters   |   |
            |   +---------------------+   |
            +-----------------------------+


WiC64 Hardware

The WiC64 implementation of VDRIVE is fully functional. It enables fast, memory‑mapped disk access directly from your Commodore 64.



Configuration Reference (WiC64)

This section explains each field in appsettings.json for VDRIVE (WiC64 only).

Authentication
  • AllowedAuthTokens — Optional list of tokens permitted to access the service. Empty = all clients allowed.
Storage
  • StorageAdapter — Backend tool for disk image operations. Options: DirMaster, Vice. Default: Vice.
  • StorageAdapterSettings:
    • ReadOnly — Prevent modifications if true.
    • NewFloppyPath — Directory for new floppy images.
    • DirMaster — Python + CBMdisk integration.
    • Vice — Uses c1541.exe, tested with version 2.4.
Floppy Resolver
  • FloppyResolver — Defines how disk images are located. Options: Local, CommodoreSoftware, HvscPsid.
  • Local — Scans directories (recursive if enabled). Supports .d64, .prg, etc.
  • CommodoreSoftware — Remote search via Commodore.Software.
  • HvscPsid — SID music resolver using psid64.exe.
Logging
  • LoggingLevel — Controls verbosity. Options: Verbose, Info, Warning, Error, Critical. Default: Verbose.
Session & Search
  • SessionTimeoutMinutes — Default 90.
  • MaxSearchResults — Default 65535.
  • SearchPageSize — Default 12.
  • SearchIntroMessage — Optional banner text.
Temporary Storage
  • TempPath — Custom temp directory (empty = system default).
  • TempFolder — Scratch folder name. Default: VDRIVE_Scratch.
  • Chunksize — Data chunk size in bytes. Default: 1024.
Networking (WiC64)
  • ServerOrClientMode — Always Server in WiC64.
  • ServerType — Always Http.
  • ServerListenAddress — Bind address. Default: http://*:
  • ServerPort — Default: 80.
  • SendTimeoutSeconds / ReceiveTimeoutSeconds — Default: 15 each.


Known limitations

  • Memory region — VDRIVE runs at $C000. Any LOAD into that region will crash. By default, VDRIVE returns “file not found” if a load targets a known crash‑prone area.
VDRIVE is functional, but still evolving. Expect rough edges — and feel free to contribute or fork.