23 avril 2025

DSKLua 1.2.0

Par Claire CheshireCat

Au menu, un nouveau petit bug résolu pour DSKLua. Les accès aux fichiers DSK à partir de SJASM+ n’ont jamais été aussi fiables !

Pour fêter cela, voici un exemple d’utilisation de l’outil tel que je le fais pour mes programmes (notamment pour la démo Flush 2025, celle avec la musique qu’on n’arrive plus à se retirer de la tête).

Pour que cela fonctionne correctement il suffit de mettre un label « start » juste après le org dans votre listing, puis de copier ce bloc de LUA en fin de fichier. A la compilation, SJASM+ créera un fichier « monfichier.dsk », contenant votre code assemblé dans un fichier « test.bin ». Simple et pratique !

Lua
    LUA PASS3

        if(not dsk.init()) then
            sj.error("Can't create the DSK file")
        else
            if (not dsk.save("test.bin",dsk.AMSDOS_FILETYPE_BINARY,sj.get_label("start"),sj.current_address,sj.get_label("start"))) then
                sj.error("Can't save the file")
            else
                if(not dsk.write("monfichier.dsk")) then
                    sj.error("Can't save the DSK file")
                else
                    print("DSK saved.")
                end
            end
        end
    ENDLUA

Il est possible également d’insérer un fichier dans un dsk existant via la fonction dsk.read(« nomdufichier »), qui remplacera le dsk.init(). On peut également choisir la version du DSK (1 ou 5, qui correspond à la version normale ou étendue du format), et même y insérer du Basic. Bref, toutes les petites opérations disque habituelles pour un développeur sur CPC sont accessibles.