Ce projet fournit une bibliothèque et un outil en ligne de commande pour manipuler des images de disquettes (DSK/EDSK), des images HFE (GoPlay V4 HxC), des snapshots SNA et des fichiers CPR (cartouches). Le code inclut des utilitaires pour travailler avec les en-têtes AMSDOS et les formats CPC (lecture/écriture, import/export, conversion).
- Lecture et écriture des images DSK (format simple et étendu - EDSK)
- Formatage de disquettes virtuelles (personnalisation: pistes, têtes, secteurs, formats vendor/data)
- Gestion du catalogue AMSDOS : lister, ajouter (
put), extraire (get), afficher en hex/ASCII, supprimer des fichiers - Import/Export RAW : import/export direct par piste/secteur
- Support complet des en-têtes AMSDOS (création, détection, extraction d'adresses de chargement/exécution)
- Lecture / écriture et conversion HFE ↔ DSK (décodage / encodage MFM)
- Lecture / écriture de snapshots SNA (versions 1, 2, et prise en charge partielle/lecture de la v3)
- Création et manipulation de fichiers CPR (cartouches) : écriture de banques, ajout de fichiers, patch et offsets
- Outils de bas niveau pour lire/écrire blocs et pistes, extraire fichiers bruts et construire des pistes MFM
- CLI complète avec de nombreuses options (formatage, conversion, import/export, analyse, tests automatiques)
dsk/: lecture/écriture DSK, catalogue, gestion des blocs, import/export de fichiers AMSDOS.hfe/: lecture HFE, décodage/encodage MFM, conversion HFE→DSK et DSK→HFE.sna/: lecture/écriture SNA (v1/v2/v3), import dans SNA, extraction de mémoire.cpr/: création et manipulation de fichiers CPR (cartouches), gestion de banques.amsdos/: utils pour détecter et manipuler l'en-tête AMSDOS.cli/: interface en ligne de commande, exemples d'utilisation.
Compiler l'exécutable CLI :
go build -o dsk cli/main.goVous pouvez aussi exécuter directement depuis le répertoire du projet :
go run ./cli -help- Convertir un HFE en DSK :
./dsk -hfe input.hfe -toDsk output.dsk- Convertir un DSK en HFE :
./dsk -dsk input.dsk -tohfe output.hfe- Créer une DSK vide (format par défaut) :
./dsk -dsk new.dsk -format- Lister le contenu d'une DSK :
./dsk -dsk image.dsk -list- Extraire un fichier AMSDOS depuis une DSK :
./dsk -dsk image.dsk -get FICHIER.BIN- Insérer un fichier AMSDOS dans une DSK (avec adresse d'exécution/chargement) :
./dsk -dsk image.dsk -put hello.bin -exec "#1000" -load "#0500"- Créer un SNA et y importer un fichier AMSDOS :
./dsk -sna out.sna -put hello.bin -snaversion 1 -cpctype 4 -screenmode 1- Import RAW (copie directe à partir d'une piste/secteur) :
./dsk -dsk image.dsk -put rawfile.bin -rawimport -track 1 -sector 0- Exécuter la suite de tests auto intégrés :
./dsk -autotest
# ou
go test ./...Pour la liste complète des options, voir le code de l'interface : cli/main.go ou lancer ./dsk -help.
- DSK / EDSK : lecture et écriture, formatage, accès aux pistes et secteurs
- HFE : lecture et écriture (conversion MFM ↔ secteurs)
- SNA : versions 1, 2 (lecture/écriture), v3 partiellement (lecture des chunks CPC+)
- CPR : création et modification de cartouches (32 banques)
-
Lire un DSK depuis le code :
-
Voir l'implémentation principale dans dsk/dsk.go.
Lancer l'ensemble des tests unitaires :
go test ./...Le binaire CLI contient également une option -autotest qui exécute un ensemble d'auto-tests (voir cli/main.go).
Les contributions sont bienvenues : ouvrir des issues pour signaler des bugs ou proposer des améliorations.
Voir LICENSE.md pour les informations de licence.
- CLI principal : cli/main.go
- Gestion DSK : dsk/dsk.go
- HFE : hfe/hfe.go
- SNA : sna/sna.go
- CPR : cpr/cpr.go
- AMSDOS helpers : amsdos/amsdos.go