La Place des Développeurs Créer un .DSK en ligne de commande
Conseiller Municipal
mais a priori il faut charger les fichiers un à un
ah ! Oui
Conseiller Municipal
sur Mac (sur linux je pense que ca fonctionne aussi), on peut ajouter des fichiers provenant de dossiers extérieur à un DSK, à condition de lui donner un chemin complet depuis le root.
exemple
./dsktool a TEST.DSK /Users/ericboez/Desktop/WorkingFolder/dsk/dska/COMMAND.COM
Note: Cet outil ne peut créer ou manipuler que des DSK pour MSX-DOS1 (Donc les sous dossiers ne sont pas gérés, et le nombre fichiers sur un disque est limité à 112 ) Edité par ericb59 Le 01/01/2022 à 13h28
Conseiller Municipal
Je ne sais pas pour quels besoins tu veux pouvoir créer des DSK à la volée, ni quelles sont tes contraintes, mais tu peux aussi faire la même chose avec openMSX et ses scripts TCL.
Dans openMSX il y a un outils en ligne de commande qui s'appel DISKMANIPULATOR.
Il peut créer des DSK ou des même des images disque dur HDA au format FAT12.
Tu peux y importer des fichiers et/ou des dossiers car il est compatible MSX-DOS2.
Tu as la documentation de DISKMANIPULATOR ici : https://openmsx.org/manual/diskmanipulator.html
Suivant tes besoins, tu peux créer un script TCL pour créer des DSK, et l'associer à une touche du clavier pour le lancer (depuis openMSX).
Ou même en ligne de commande...
Peut être ça peut t'aider ?
Conseiller Municipal
L'outil s'occupe de compiler les sources, assembler le binaire, faire des traitement spécifiques en fonction de la cible (DOS, BASIC ou ROM), préparer les fichiers pour l'émulateur et enfin ouvrir l'émulateur et lancer automatique le programme à tester. Comme ça j'ai un processus complètement automatisé entre le moment ou je fais un modification dans un programme et le moment ou je peux la tester in-situ.
A part OpenMSX ou RuMSX, les autres émulateurs ne permettent pas de lancer un programme en disquette depuis un répertoire (ou en tout cas j'ai pas trouvé comment faire).
L'outil créer donc un fichier .DSK avec les fichiers nécessaires pour tester le programme (le binaire, un autoexec et les fichiers du DOS pour les .COM).
Tout marche bien maintenant donc je vais pas y toucher, mais effectivement DiskManipulator à l'air très bien.
Je le garde sous le coude si un jour je veux améliorer mon process.
On est toujours ignorant avant de savoir.
Conseiller Municipal
Oui je fais cela aussi avec FUSION-C, tout est automatisé.
Sauf que je ne m'embête pas à créer un DSK.
Par contre je suis obligé de le faire si je veux utiliser un disque dur virtuel du coté MSX
(Ce qui me permet de traiter plus de fichiers et plus vite que sur une disquette)
Dans ce cas mon script TCL copie l'intégralité d'un dossier dans un disque dur virtuel MSX
ext ide hda openMSX/hard-drive/hd-ide.dsk diskmanipulator format hda1 diskmanipulator import hda1 $CONTENT_HD_FOLDER1
J'ai poussé l'automatisation jusqu'à entrer les paramètre de compilation ou de test directement dans le code source du programme MSX.
De façon à ne jamais avoir à toucher aux scripts de compilation.
J'ai intégré des directives sous la forme de #define, qui ne gênent en rien la compilation.
#define __SDK_DEST__ /out/diska
Définie la destination du programme compilé
#define __SDK_MSXVERSION__ 2
Définie quel version de MSX l'émulateur va lancer 1,2,3 4 (MSX1, MSX2, MSX2+, Turbo-R) lors du test
#define __SDK_ADDRCODE__ 0x106
Définie à quel adresse compiler le programme
Etc ...
Edité par ericb59 Le 01/01/2022 à 17h35
Conseiller Municipal
Perso je préfère garder séparer les options de compilation (dans les .h) et les options de build (dans le Build Tool).
On est toujours ignorant avant de savoir.
Villageois
exemple:
msxtar -cf disk.dsk mog.rom
contruit un dsk nommé disk.dsk contenant le fichier mog.rom (The Maze of Galious/128k)
Syntaxe:
`msxtar' saves many files together into a single disk image to be used by
emulators like openMSX, and can restore individual files from the archive.
This tool supports single-sided, double-sized and IDE HD images (only FAT12)
Usage: ./msxtar [OPTION]... [FILE]...
Examples:
./msxtar -cf disk.dsk foo bar # Create a diskimage from files/directories foo and bar.
./msxtar -tvf disk.dsk # List all files in disk.dsk verbosely.
./msxtar -xf disk.dsk # Extract all files from disk.dsk.
If a long option shows an argument as mandatory, then it is mandatory
for the equivalent short option also. Similarly for optional arguments.
Main operation mode:
-t, --list list the contents of an archive
-x, --extract, --get extract files from an archive
-c, --create create a new archive
-r, --append append files to the end of an archive
-u, --update only append files newer than copy in archive
-A, --catenate append tar files to an archive
--concatenate same as -A
Handling of file attributes:
--owner=NAME force NAME as owner for added files
--group=NAME force NAME as group for added files
--mode=CHANGES force (symbolic) mode CHANGES for added files
-k, --keep keep existing files, do not overwrite
-m, --modification-time don't extract file modified time
Image selection and switching:
-f, --file=ARCHIVE use archive file or device ARCHIVE
default name is 'msxdiskimage.dsk'
-S, --size=ARCHSIZE ARCHSIZE can be nnnn[S|B|K|M]
The folowing simple sizes are predefinied
'single' equals 360K, 'double' equals 720K
and 'ide' equals 32M
-1, --dos1 use MSX-DOS1 bootsector and no subdirs
-2, --dos2 use MSX-DOS2 bootsector and use subdirs
-M, --msxdir=SUBDIR place new files in SUBDIR in the image
-P, --partition=PART Use partition PART when handling files
PART can be 'all' to handle all partitions
Informative output:
--help print this help, then exit
--version print tar program version number, then exit
-v, --verbose verbosely list files processed
DONALD TRUMP IS FAST APPROACHING
NEMESIS ! RETURN IMMEDIATELY !
@EricB, en cherchant des infos sur MIDI2PT3, je suis tombé sur une nouvelle version de... DskTool !!
C'est la version 1.4 avec quelques options intéressantes en plus (mais toujours pas de support des sous-répertoires).
Y a que la version Windows de dispo, mais y a les sources pour compiler sur les autres plateformes.
Et cette version fonctionne trés bien sous Linux Mint. Je confirme; viens de faire quelques essais.
L'auteur fournit les commandes, dans l'ordre, pour télécharger et installer directement l'outil qui s'utilise lui aussi...en ligne de commande :
sudo add-apt-repository ppa:amaurycarva<wbr />lho/dsktool
sudo apt-get update
sudo apt-get install dsktool
Rien ne se perd, tout doit se transformer.