Gestion sectorielle des DSK

Afin de gérer les disquettes en mode secteur, Rasm propose un jeu de fonctionnalité en ce sens

Certaines fonctions sont à exécution immédiate comme la création, le chargement et la mise à jour d'un EDSK

Toutes les autres fonctions sont à exécution différée, afin que Rasm ait terminé son assemblage quand ces fonctions seront appelées

Fonctionnalités à exécution immédiate

EDSK   CREATE,'filename.dsk:side',DATA|VENDOR|UNFORMATED,nbtracks[,INTERLACED]
EDSK READSECT,'filename.dsk:side','location',<exactsize>
EDSK  UPGRADE,'filename.dsk:side','outputfilename.dsk'

Fonctionnalités à exécution différée

EDSK WRITESECT,'filename.dsk:side',<start_addr>,<length>,'location'
EDSK    GAPFIX,'filename.dsk:side',TRACK|ALLTRACKS,<track>
EDSK       MAP,'filename.dsk'
EDSK      DROP,'filename.dsk:side','location'
EDSK       ADD,'filename.dsk:side','location',<size>,...
EDSK    RESIZE,'filename.dsk:side','location',<size>,...
EDSK     MERGE,'filename.dsk:side','filename.dsk:side','outputfilename.dsk'

Comment utiliser le 'filename.dsk:side' ?

Vous pouvez renseigner ce champ avec uniquement le nom du fichier, si l'image disquette contient 2 faces alors la première sera utilisée par défaut. Si vous souhaitez utiliser les faces d'un fichier image, les possibilités sont :A, :B, :0 et :1

Comment définir la "location" ?

La localisation définit une piste ainsi que des secteurs si besoin. Les valeurs peuvent être déclarées dans n'importe quelle base (décimale, hexa, …) et vous pouvez définir plusieurs localisations en utilisant le caractère "espace" en tant que séparateur. Avec le caractère "moins", vous pouvez aussi définir des intervales. Quelques exemples ci-dessous

'5'            => piste 5
'5:#C2'        => secteur #C2 piste 5
'0-5'          => pistes 0 to 5
'0-5:$C2-0xC9' => secteurs #C2 à #C9 sur les pistes 0 à 5
'0:#C1 0:#C3'  => secteurs #C1 et #C3 sur la piste 0

EDSK CREATE,'filename.dsk',DATA|VENDOR|UNFORMATED,nbtracks[,INTERLACED]

Création d'une disquette au format DATA, VENDOR ou avec des pistes vides (Utilisation conjointe avec ADD), le nombre de pistes est celui par face. On peut préciser en option le mot clef INTERLACED pour les disquettes DATA ou VENDOR.

EDSK READSECT,'filename.dsk','location',<exactsize>

Lire des secteurs en mémoire. La quantité de données à lire est obligatoire. Si il n'y a pas assez de secteurs pour atteindre la quantité de données, Rasm déclenchera une erreur.

EDSK UPGRADE,'filename.dsk','outputfilename.dsk'

Cette fonction a double usage. Elle permet de convertir un vieux DSK en EDSK ou plus simplement de copier un fichier DSK vers un autre.

EDSK WRITESECT,'filename.dsk',<start_addr>,<length>,'location'

Enregistrer les données assemblées sur une disquette. Les données seront lues depuis la bank où est située le WRITESECT. Si la liste des pistes/secteurs fournie est insuffisante pour enregistrer le total des données, une erreur sera déclenchée.

EDSK GAPFIX,'filename.dsk',TRACK|ALLTRACKS,<track>

Recalcule automatiquement la longueur de GAP pour que le tour de piste soit inférieur ou égal à 6250 octets

EDSK MAP,'filename.dsk'

Affiche une cartographie des secteurs de la disquette ainsi que les informations de piste

EDSK DROP,'filename.dsk','location'

Effacer un ou plusieurs secteurs de la disquette.

EDSK ADD,'filename.dsk','location',<size>,…

Ajouter un ou plusieurs secteurs sur la disquette, de taille <size> correspondant à la taille FDC soit:

0 : 128
1 : 256
2 : 512
3 : 1024
4 : 2048
5 : 4096
6 : 6250 ; taille tronquée

Les tailles supérieures n'ont aucun intérêt à être gérées.

EDSK RESIZE,'filename.dsk','location',<size>,…

Permet de redimensionner un ou plusieurs secteurs, la taille correspond à la taille FDC (voir tableau ci dessus)

EDSK MERGE,'filename.dsk:side','filename.dsk:side','outputfilename.dsk'

Fusionner deux faces d'images simples ou double faces en un fichier double face

Sauf mention contraire, le contenu de cette page est protégé par la licence Creative Commons Attribution-ShareAlike 3.0 License