Rom Addon En Cours

+ Rom addON

Liste des RSX de la rom addON (ajoutés à iMPdos)

(qui sont dans la rom tools)

|cat,[buffer] : Affiche le directory d'une disquette A ou B (fichiers cachés inclus). Il n'est pas obligatoire de spécifier le buffer dans lequel les data du directory seront envoyés.

|copy,"fichier.ext",destination : Copie du fichier fichier.ext du lecteur courant vers la destination
0 : drive a ou a:
1 : drive b ou b:
2 : X-Mass (P1) ou x:
3 : xMass (P2)
4 : xMass (P3)
5 : xMass (P4)
6 : M4 ou m4:
7 : Albireo Sd ou sd:
8 : Albireo Usb ou usb:
9 : Drive D (xMass AcmeDos/CubeMdos) ou d: Le drive a été ajouté mais en attente de renseignements sur les datas du catalogue.

On peut également depuis peu utiliser la syntaxe suivante :

|copy,"a:fichier.ext","usb:cpc/code/" : Le fichier fichier.ext se trouvant sur le drive A: sera copié sur le support albiréo USB: dans les répertoires cpc puis code

Quand on utilise une mémoire de masse (xMass, M4 ou Albireo..), n'oubliez pas de sélectionner les répertoires avant de lancer la copie.
Si aucun fichier n'est copié cela signifie que le fichier demandé n'existe pas.
La taille utilisé sur un lecteur A ou B n'est pas gérée. Attention donc à vérifier s'il reste de la place sur votre support avant de lancer la copie.

La rsx |copy accepte le wildcat "*" sauf sur l'extension.
Ainsi, un |copy,"dada*.scr" permettra de copier seulement les fichiers commençant par dada et contenant l'extension .scr.

Il est impossible de copier un répertoire
|copy,"usb:cpc/","x:dir1/" copiera tout le contenu du répertoire cpc du lecteur usb: vers le répertoire dir1 du drive x:.

La copie xMass vers Xmass n'est pas possible, sauf si vous voulez endommager le file system de votre xMass
Copier 1 fichier de la X-Mass vers X-Mass est désormais possible, d'un répertoire à l'autre. Il n'est pour le moment pas possible de copier un fichier d'une partition X-Mass à l'autre. Il n'est également pas possible pour le moment d'utiliser le wildcard pour la copie X-Mass vers X-Mass, les chemins des lecteurs sources et destinations n'étant pas conservés.


|copyrom,"nom_fichier", numéro de rom
Sauvegarde le contenu du numéro de rom dans un fichier nommé nom_fichier.
Le contenu de la rom est copié dans l'espace ram allant de #4000 à #7FFF.
Voici un exemple de script basic permettant de sauvegarder le contenu de sa XMem sur la Mass :

10 FOR i=0 TO 31
20 rn$="slot"+STR$(i)+".bin":PRINT "saving : "+rn$:|COPYROM,@rn$,i
30 NEXT

Si vous préférez l'utiliser directement sur votre système vous trouverez le DSK en bas de cette page.


Cruncher RLE by CNGSOFT

|crunch,source,destination,longueur,[nom du fichier]
Crunching de type RLE, généralement utilisé pour les fichiers contenant des images. (Merci à CngSOFT pour sa routine)
Compacte un fichier commençant en source à l'adresse destination, de longueur #xxxx. Si un nom de fichier est ajouté, le fichier crunché sera sauvegardé avec le nom du fichier.
On peut utiliser cette commande pour cruncher les fichiers .go1, .go2 et les .scr (17k).

|crunch,&c000,&4000,&3FFF,"titi.cru" : Compacte les données commençant à l'adresse #c000. Mets les données compactées en #4000. La Longueur des données à compacter font #3FFF. Le fichier sauvé s'appellera titi.cru.

Le nom du fichier n'est obligatoire QUE si vous désirez enregistrer le fichier crunché.


|dcrunch,source,destination
Décompacte le fichier crunché à partir de l'adresse source à l'adresse destination.

|dcrunch,&4000,&c000 : Décompacte le fichier source commençant en #4000 à l'adresse #c000.


Cruncher Lz49 by Roudoudou

|lz49cru,start,lenght
Crunching de type LZ. Start=adresse de départ, Lenght=Longueur du fichier. Le fichier une fois crunché affichera la taille occupée. Le fichier sera crunché dans les banks mémoires du cpc à partir de #C4 et ainsi de suite, #C5, #c6… etc…

ùlz49cru,&1000,&4000 : compacte les données à partir de #1000 avec une longueur de #4000


|lz49dcru,source,destination
Décrunch les données compactée avec le cruncher lz49, source étant l'adresse de départ des données compactées, destination étant l'adresse destination où les données seront décompactées.

|lz49dcru,&1000,&C000 : Décompacte les données à partir de l'adresse #1000 en #c000.

Bien que le code original soit de Roudoudou, il a été modifié par mes soins pour pouvoir fonctionner en rom.


|aff,source,destination
Affiche un windows de 80 octets de large sur 200 lignes (En gros affiche un windows d'une page 17k .win)

|aff,&4000,&C000 : affiche un window qui commence en #4000 à l'adresse #c000.


|connect
Initialise les rom allant de 16 à 31.


|xmem
Affiche la liste des roms, le slot ainsi que le numéro de version des roms installées sur la xmem.


|gd
Get Drive : affiche le drive courant ainsi que le chemin lorsqu'il s'agit de la x-mass ou de l'albireo (albiDOS)

ùgd : le nom du drive courant est affiché à l'écran.
ou
a$=space$(40)
ùgd,@a$ : le nom du drive est envoyé dans la variable a$


|sys
SYSco est un filemanager.
Au programme, copie de fichiers, navigation dans les répertoires, création de répertoires, effaçage des répertoires et fichiers…
Depuis la dernière version addON_220126, il est possible de lancer directement SYSco depuis le boot en appuyant sur Ctrl+Esc depuis le Basic.

sysco-58c7fe6.png

1. Appels des rsxs d'iMPdos ne comportant aucun paramètre :

   ld hl,rsxP1 ; nom de la rsx sans paramètres
   call #bcd4 ; kl_find_command
   jr nc,beep  ; au cas où la rsx ne serait pas trouvée **beep**
   xor a         ; aucun paramètre
   jr #1B       ; lance la Rsx ; HL=adresse de la routine, C=Numéro de Rom.
;
rsxP1 byte "P1"+#80
; 
beep
   ld a,7
   jp #bb5a

2. Appels des rsxs d'iMPdos comportant 1 paramètre (chaine ascii):

   ld hl,rsxCDX ; nom de la rsx avec 1 paramètre chaine ascii
   call #bcd4 ; kl_find_command
   jr nc,beep  ; au cas où la rsx ne serait pas trouvée **beep**
   ld a,1         ; 1 paramètre
   ld ix,table
   jr #1B       ; lance la Rsx ; HL=adresse de la routine, C=Numéro de Rom.
;
rsxCDX byte "CDX"+#80
table word start
;
start byte 5 ; 5 caractères à envoyer à la commande **ùcdx**
        word dirname ; adresse du nom du directory
;
dirname byte "trash" ; chaine de caractères à envoyer à la commande **ùcdx**
; 
beep
   ld a,7
   jp #bb5a

3. Appels des rsxs d'iMPdos comportant 1 paramètre (chiffre):

Attention le paramètre est bien un chiffre et non un caractère !

   ld hl,rsxFORMAT ; nom de la rsx avec 1 paramètre chiffre 
   call #bcd4 ; kl_find_command
   jr nc,beep  ; au cas où la rsx ne serait pas trouvée **beep**
   ld a,1         ; 1 paramètre
   ld ix,table
   jr #1B       ; lance la Rsx ; HL=adresse de la routine, C=Numéro de Rom.
;
rsxFORMAT byte "FORMAT"+#80
table byte 1 ; ùformat,1 ; Attention le paramètre est bien un chiffre et non un caractère !
;
beep
   ld a,7
   jp #bb5a

4. Appel des rsxs d'iMPdos comportant 2 paramètres (chaine ascii) :

   ld hl,rsxRFILE
   call #bcd4
   jr nc,beep
;
   ld a,2 ; 2 paramètres 
   ld ix,table 
   jp #1B
;
rsxRFILE byte "RFILE"+#80
table  word old ; old name
         word new ; new name
;
old byte 7 ; la chaine contient 7 caractères
     word oldname
oldname byte "ast.scr"
;
new byte 7 ; la nouvelle chaine contient 7 caractères
       word newname
newname byte "ast.bin"

5. Appel des rsxs d'iMPdos comportant 2 paramètres (chaine ascii) :

Utilisation spéciale avec la fonction |move. Le nom des labels dans table (source et destination) est inversé

;
; |move,"/gfx/ast.scr","/cpc/gfx"
;
   ld hl,rsxMOVE
   call #bcd4
   jr nc,beep
;
   ld a,2 ; 2 paramètres 
   ld ix,table 
   jp #1B
;
rsxMOVE byte "MOVE"+#80
table  word new ; destination ; **__la source et la destination sont inversés__**
         word old ; source
;
old byte 12 ; la chaine contient 12 caractères
     word oldname ; source
oldname byte "/gfx/ast.scr" ; transfert du fichier
;
new byte 8 ; la nouvelle chaine contient 8 caractères
       word newname ; destination
newname byte "/cpc/gfx" ; vers destination
Sauf mention contraire, le contenu de cette page est protégé par la licence Creative Commons Attribution-ShareAlike 3.0 License