Ten artykuł dostępny jest również w języku angielskim (English).
TrackZero64 — zapis dyskietek Commodore 1541-II przez XUM1541
version 1.0.0, 2026-07-28
Cel
TrackZero64 to program do zapisu dyskietek Commodore 1541-II przez adapter XUM1541 (ZoomFloppy) USB. Napisany w C99, działa w userspace przez libusb-1.0 — zero sterowników kernela. Działa na NetBSD i Linux. To nie jest emulator — to narzędzie do fizycznego zapisu prawdziwych dyskietek 5.25" na prawdziwym sprzęcie.
Architektura
TrackZero64 implementuje dwa protokoły od zera w C99 w userspace:
- Protokół firmware XUM1541 — komunikacja USB z adapterem (VID/PID 0x16d0:0x0504, bulk endpoints 3 IN i 4 OUT)
- Protokół magistrali szeregowej IEC — komunikacja ze stacją 1541-II przez port szeregowy CBM
Dzięki implementacji obu warstw w userspace, program nie wymaga żadnego sterownika kernela — tylko libusb-1.0. To działa identycznie na NetBSD i Linux.
Wspierany sprzęt
| Element | Szczegóły |
|---|---|
| Adapter | XUM1541 (ZoomFloppy), USB VID/PID 0x16d0:0x0504 |
| Stacja | Commodore 1541-II (single-drive system) |
| Format dysku | D64 — 35 ścieżek, 174,848 bajtów |
| Identyfikacja | ROM probe przy $FF40 i $FFFE — rozpoznaje 1541-II i pokrewne modele 1541 |
Funkcje
- Zapis obrazów D64 na fizyczne dyskietki 5.25"
- Odczyt dyskietek do obrazów D64
- ncurses TUI — postęp per-ścieżka w czasie rzeczywistym
- Przeglądarka katalogów dysku (directory browser)
- Wizualizacja przebiegu oscyloskopowego podczas zapisu
- Radialna mapa dysku (track map)
- Schowek OSC 52 — kopiowanie wyników do terminala
- Pełne i18n — angielski i polski
- Wykrywanie modelu stacji przez ROM probe
TUI — perełka projektu
ncurses TUI TrackZero64 to nie jest zwykłe "okienko z postępem". To pełnoprawny interfejs z 62.5 FPS, podziałem na panele, obsługą myszy i F-keys:
- Oscyloskop (F6) — wizualizacja przebiegu zapisu per-ścieżka, adaptacyjny układ 1/2/3 kolumny, widać amplitudę sygnału w czasie rzeczywistym. Genialne.
- Radialna mapa dysku (F7) — koncentryczne pierścienie 35 ścieżek, postęp sektor po sektorze. Wygląda jak radar. Genialne.
- Podział paneli: lewy (status, postęp, LED), prawy (przeglądarka katalogów z panelem stacji 1541-II)
- Okno logu: 256 linii, timestampy, auto-scroll, kopiowanie OSC 52
- Wskaźniki LED stylizowane na prawdziwy panel 1541-II
- Przełączanie języka EN/PL przez klawisz 'l'
- Motywy OS-aware: Linux (zielony na granatowym), NetBSD (czerwony na szarym)
Jak to działa
Program wysyła komendy do adaptera XUM1541 przez USB. Adapter tłumaczy je na sygnały magistrali IEC i wysyła do stacji 1541-II. Stacja wykonuje fizyczny zapis na dyskietce, ścieżka po ścieżce. Cały proces jest widoczny w czasie rzeczywistym przez ncurses TUI — widać która ścieżka jest aktualnie zapisywana, postęp, ewentualne błędy.
Zapis całej dyskietki (35 ścieżek) trwa ~2-3 minuty na stacji 1541-II z oryginalnym mechanizmem Alps przy 300 RPM.
Kompatybilność
| System | Status |
|---|---|
| NetBSD | Działa — testowane na T400 (NetBSD 10.1, 11 RC7) |
| Linux | Działa — testowane na Gentoo (Legion Go, T400) |
| OpenBSD | Powinien działać — libusb-1.0 dostępne |
| Windows | Nie wspierane. Nie planowane. |
Kod źródłowy
Repozytorium na SourceHut. Program na licencji BSD-2-Clause.
Ograniczenia (v1.0.0)
- Tylko Commodore 1541-II — inne stacje (1571, 1581, PET) nie są wspierane
- Tylko format D64 — brak D71, D81, GCR
- Formatowanie przez natywne N0: — host nie widzi postępu (2-5 min)
- Brak weryfikacji po zapisie pliku (usunięta z bety — weryfikuj ręcznie przez
xum-read) - Brak operacji na plikach REL (wykrywane w katalogu, ale nie odczytywane/zapisywane)
- Brak zarządzania plikami — nie można rename, copy, scratch
- Brak operacji batch — każdy xum-read/xum-write to jeden plik
- Brak trybu daemona — każde narzędzie otwiera/zamyka adapter osobno
- Problemy z portami USB 3.0 — zalecane USB 2.0
- Tylko firmware XUM1541 v8 — v7 ma znane błędy z U1/U2/M-R
- Debug trace tylko compile-time (flagi
-DXUM_TRACE,-DDRIVE_DEBUG)
Podsumowanie
TrackZero64 to nie zabawka. To narzędzie napisane od zera w C99, implementujące dwa pełne protokoły komunikacyjne, działające na prawdziwym, 40-letnim sprzęcie. Jeśli masz Commodore 64 i stację 1541-II z adapterem XUM1541 — to jest program, którego potrzebujesz do zapisu dyskietek z poziomu NetBSD lub Linux.