website logo
Auteur
avatar
thellier

Forum » » Création-Développement » » dernière version de Microbe3D


Posté : 27-03-2014 10:20 icone du post

>j'ai demandé ici
Oui j'ai vu

1) arexx est toujours 68k sur OS4
2) les "arexx function library" existantes sont 68k aussi : rexsupport rxmui etc...

Question peut on avoir une "arexx function library" en PPC ?

A priori depuis un prog 68k on peut appeler une .library ppc sous OS4C'est le cas pour Wazp3D.library ppc qui permet de faire tourner des progs 68k prévus pour Warp3D.library 68k
Il suffit de génerer des "68k stubs" comme ils disent : c'est facile l'outil fdtrans le fait très bien

Cela donne ça pour la fonction qui nous intéresse RexxSupport (cad la passerelle arexx --> microbe3D)
On vois que la fonction renvoie bien une valeur de retour (c'est le "code erreur" de la fonction arexx) vers arexx (68k) avec son "return Self->RexxSupport(...)"
MAIS arexx 68k attend une deuxième valeur de retour dans a0 (c'est le "résultat" de la fonction arexx)
Celle ci est pas gérée :-/

Il faudrait peut être la mettre dans regarray[8] qui émule a0 ??
A voir.....

static LONG stub_RexxSupportPPC(uint32 *regarray)
{
struct Library *Base = (struct Library *) regarray[REG68K_A6/4];
struct ExtendedLibrary *ExtLib = (struct ExtendedLibrary *) ((uint32)Base + Base->lib_PosSize);
struct Microbe3DIFace *Self = (struct Microbe3DIFace *) ExtLib->MainIFace;

return Self->RexxSupport(
(APTR)regarray[8],
(APTR)regarray[9]
);
}

Cet article provient de Le site des utilisateurs francophones actuels et futurs d'AmigaOS 4.x
https://amiga-ng.org/viewtopic.php?topic=1705&forum=14