Annonces Google
Serveur IRC
Serveur : irc.portlane.se
Canal : #AmigaNG
Activité du Site

Pages vues depuis 25/07/2007 : 28 710 583

  • Nb. de membres 189
  • Nb. d'articles 1 278
  • Nb. de forums 19
  • Nb. de sujets 20
  • Nb. de critiques 24

Top 10  Statistiques

Index du forum »»  Création-Développement »» Peut-on faire des appels de commande de bibliothèque en ASM sous C

Peut-on faire des appels de commande de bibliothèque en ASM sous C#2473

4Contributeur(s)
SharynnCrisotthellierLio
3 Modérateur(s)
K-LElwoodcorto
Sharynn Sharynnicon_post
Ouaouh ça c'est du titre...

La question est simple, somme toute crétine, mais je souhaiterai savoir si l'on peut faire l'appel d'une commande de Bibliothèque comme on le fait en ASM 68000.
En envoyant l'offset dans la base de la librairie.

Exemple: DisplayBeep() (offset -96) (de la bibliothèque intuition)

Il y a t'il une MACRO type __ASM__ que l'on peut utiliser ?
Un lien vers un Tuto ?


Projet AmOS4 - Retour vers l'Amos sous OS4...

SAM440EP - A1200 3.1 de base
Crisot Crisoticon_post
En C je sais pas mais au pire avec de l'ASM online pourquoi pas. Mais je ne suis même pas sur que les offsets apparaissent dans le SDK d'Os4 ni si il existe un générateur d'Offset qui marcherait, alors... 
--
AmigaOne X1000 - 2 Go DDR2 - Sapphire R9 280x Toxic - Crucial MX200 500 Go - Alim/Cooling BeQuiet
thellier thelliericon_post

Oui on peut sauter en C à une adresse avec un hook


typedef ULONG (*HOOKEDFUNCTION)(void); // cad on a défini le type de la fonction comme ULONG mafonction(void);

HOOKEDFUNCTION MyHook;   /* on créée un hook  perso*/

et on met l'adresse ou sauter dans le hook

MyHook=adressefunctionenmemoire;

et on y va

result=MyHook();


MAIIIIIS Ce n'est certainement pas ce que tu dois faire ici car les .library os4 ne marchent plus ainsi et je ne suis pas sûr qu'il y ait encore qque chose à l'offset -96 par exemple

Par contre il existe différents autre méthodes pour appeler des .library 68k vers PCC et l'inverse

(Cad que les vieilles applis 68k peuvent utiliser les .library récentes/rapides Os4. Mais aussi les applis OS4 continuer d'utiliser une .library n'existant qu'en 68k) 

Décris mieux ton problème

Merci


Sam440 - Sam460 - X5000 - PowerBookG4 - WinUAE - MiniMig

Message édité par : thellier / 29-11-2017 11:33
Message édité par : thellier / 29-11-2017 11:33
Sharynn Sharynnicon_post
C'est un bon début.. Merci les amis..
Ma question venait dans la continuité de mon projet AmOS4.

En effet dans l'Amos, il y avait des commandes qui permettaient de faire des appelles dans les "library" directement. Je posais la question pour savoir si des possibilité seraient disponible pour cela.
EXECALL,INTCALL,DOSCALL,LIBCALL.. etc

l'ASM INLINE peut-être... je vais creuser vos deux idées pour voir..

Sinon je met ces commandes dans la listes des "obsolètes" et je verrais plus tard.

Car j'ai encore beaucoup de commandes pour lesquelles je suis coincé (Keyboard.device: pour la gestion des touche par exemple (autre POST)) qui reste totalement inerte.

Les commandes Copper, Rainbow, dualplayfield sont difficiles à faire et j'ai pas de piste pour le moment.

Mon but étant de reste le plus natif possible.
J'essaie d'avancer petit à petit...
Projet AmOS4 - Retour vers l'Amos sous OS4...

SAM440EP - A1200 3.1 de base


Message édité par : Sharynn / 29-11-2017 12:51
thellier thelliericon_post

Ok je vois

En fait on se retrouve sensiblement dans le même cas que quand un prog prévu pour 68k est lancé sur NG et appelle une .library ppc genre Exec

Donc la "passerelle" "appels façon 68k par les registres ---> .library ppc"  existe

Le seul problème c'est qu'ici on appelle depuis un prog ppc : donc c'est loin d'être évident

A ce moment je vois que ce moyen:  faire une petite .library compilée 68k avec une seule fonction qui ferait juste  l'appel  : elle prendrait les paramètres recus de Amos les mettrait dans les registres et ferait un saut à la function de la .library demandée

Honnêtement : met ces commandes dans la listes des "obsolètes" et vois plus tard.

Sam440 - Sam460 - X5000 - PowerBookG4 - WinUAE - MiniMig
Lio Lioicon_post
@ Sharynn : as tu vu que LiveForIt bosse également sur une conversion ?
voir ici : http://www.amigans.net/modules/xforum/viewtopic.php?post_id=108768#forumpost108768

"AMOSPro under E-UAE is slow pig, I'm looking into ways to port AMOS code to C, and or work with Amiga code under AmigaOS4.

RetroMode.library provides some graphic functions similar to AMOS Pro grpahic command.

AMOS2ASC provides a way to convert AMOS code into ASCII."


X-5000/RadeonRX550/2Go RAM; AOS4.1FEupd2; (A1G4/Radeon9000PRO/1Go RAM=en dormance)
Sharynn Sharynnicon_post
@lio: Oui j'ai vu et j'ai connaissance de ces projets. Tout le monde a aimé Amos et souhaite voir un "remake" sur Os4.

Moi je ne demande que cela!!! un Amos Like sur OS4.

Ma librairie s?EUR(TM)utilise facilement et peut être utilisé en C. Syntax type Amos...

Il y a qu'a tester !!!

AMOS ON T'AIME !!!!.....
Projet AmOS4 - Retour vers l'Amos sous OS4...

SAM440EP - A1200 3.1 de base
Petites Annonces

0 annonce(s) publiée(s)

Consulter

AmigaOS 4.1

Laissez-vous tenter par
AmigaOS 4.1
AmiTheme

AmiTheme