Newapi

Nouvelle interface API Impdos


Liste de tâches à faire


Notes:
IMPORTANT: On prendra soin d'utiliser les appels standards des RSX pour des raisons de compatibilités !

Liste des RSX d'iMPdos

ùx : Sélectionne le lecteur courant xMass


ùPx : Sélectionne la partition courante xMass. x varie de 1 à 4


load"dir/" : Sélectionne le répertoire dir


ùinf,"filename" : Affiche les infos concernant le fichier (type, adresse de départ, longueur, adresse d'exécution, nbre de secteurs utilisées ainsi que le secteur de départ)


save"dir/" : Création du répertoire dir


ùrd,"dir" : Efface le répertoire dir


ùdel,"filename" ou ùera,"filename" : Efface le fichier filename


ùrfile,"newfile","oldfile" : renomme le fichier oldfile en newfile


ùrdir,"newdir","olddir" : renomme le répertoire olddir en newdir


ùrformat,x : formate la partition x (entre 1 et 4) de la xMass.


ùcdw : Current Dir Working, affiche le répertoire courant.

IN :
rien
OUT :
HL : début de la chaine de caractères
BC : Longueur de la chaine de caractères






Liste des RSX de la rom addON

(qui sont dans la rom tools)

ùcat,[buffer] : Affiche les fichiers cachés du drive A ou B. L'adresse du buffer n'est pas obligatoire. Sachez qu'elle peut-être paramétrable.
ùcat,&4000 affichera le contenu du catalogue en #4000.


ù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.


ù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.


ù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.


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