it regularly difficult to spot, aside from maybe by a genuine Rolex replica history specialist, in light of the fact that the best phony Rolex are 95% made by Rolex. If you want to know how often you should optimally be winding your rolex replica watch, Click Here.

Notifications
Retirer tout

ld65 linker

7 Posts
2 Utilisateurs
1 Reactions
76 Vu
Sheld67
(@sheld67)
Estimable Member
Inscription: Il y a 5 ans
Posts: 85
Début du sujet  

Salut La Communauté,

J'ai une question concernant l'utilisation de ld65 : comment transforme-t-on un fichier ".o65" en un fichier exécutable dans Oricutron grâce à ce linker (voir fichier "evasion_galactique.o65" en pièce-jointe) ?


   
Citation
assinie
(@assinie)
Membre
Inscription: Il y a 6 ans
Posts: 68
 

Salut,

Je  ne vois pas ton fichier dans le post.
Il faut que tu  précises à ld65 le type de machine et évebtuellement le nom du fichier généré et l'adresse de chargement du programme.

Si c'est pour un Atmos, tu peux générer facilement un fichier au format .tap avec un lanceur en Basic avec cette commande:

ld65 -t atmos evasion_galactique.o65 -o evasion_galactique.tap

-t atmos: programme au format .tap un Atmos
-o evasion_galactique.tap: nom du fichier exécutable (sinon c'est a.out par défaut)

Si tu as des messages d'erreur du genre:
ld65: Warning: /usr/share/cc65/cfg/atmos.cfg(46): Segment 'TAPEHDR' does not exist
ld65: Warning: /usr/share/cc65/cfg/atmos.cfg(46): Segment 'STARTUP' does not exist
ld65: Warning: /usr/share/cc65/cfg/atmos.cfg(46): Segment 'INIT' does not exist
ld65: Warning: /usr/share/cc65/cfg/atmos.cfg(46): Segment 'ONCE' does not exist

alors il faut ajouter la librairie atmos.lib à la suite de ton fichier .o65:

ld65 -t atmos evasion_galactique.o65 atmos.lib -o evasion_galactique.tap

Ce message a été modifié Il y a 3 semaines 2 fois parassinie

   
RépondreCitation
Sheld67
(@sheld67)
Estimable Member
Inscription: Il y a 5 ans
Posts: 85
Début du sujet  

@assinie Merci pour cette réponse.

À dire vrai, je ne sais pas comment installer le linker ld65, je connais juste son existence.

J'ai bien vu qu'il comporte des tonnes de librairies, mais j'ignore comment on les utilise.

Si quelqu'un peut aider un newbie...

Note : Le fichier "evasion_galactique.o65" se trouve dans le .zip en pièce-jointe.


   
RépondreCitation
assinie
(@assinie)
Membre
Inscription: Il y a 6 ans
Posts: 68
 

@sheld67

J'ai regardé ton fichier et je pense que tu utilises xa et j'étais parti sur ca65.
Donc ce qu'il te faut c'est ldo65 et non ld65, normalement il est fourni avec xa.

Dans ce cas la ligne de commande devient simplement:

ldo65 -o evasion_galactique evasion_galactique.o65

-o permet de préciser le nom du fichier généré (dafaut: a.out)

ldo65 se trouve en principe dans le  même répertoire que xa donc il suffit de le lancer de la même manière que xa.

Si tu utilises l'OSDK tout est fourni dans l'archive présente sur cette page
La documentation de OSDK est sur le même site ici

Attention:

  • l'OSDK est prévu pour fonctionner sous Windows.
  • ldo65 génère un fichier bianire qui n'est pas directement utilisable par l'Oric ou un émulateur, pour cela il faut utiliser un autre outil header qui permet de transformer le fichier binaire en fichier au format .tap reconnu par les émulateurs.

header est également fourni dans l'OSDK.

xa et ses différents outils (ldo65, file65,...) peuvent être utilisés sous Linux et se trouvent dans le même package.
header n'est pas un outil fourni par xa et devra être téléchargé depuis le site github de fence-force: https://github.com/Oric-Software-Development-Kit/osdk/tree/master/osdk/main/Osdk/_final_/Bin

N'utilisant pas l'OSDK, je n'ai aucune idée de la version Windows pour laquelle il a été compilé.

Remarque: la version de xa dans l'OSDK est plus ancienne que celle présente sur le site du mainteneur de xa

 

Comment as-tu créé le fichier evasion_galactique.o65?


   
RépondreCitation
Sheld67
(@sheld67)
Estimable Member
Inscription: Il y a 5 ans
Posts: 85
Début du sujet  

Posté par: @assinie
Comment as-tu créé le fichier evasion_galactique.o65?

J'ai créé le fichier evasion_galactique.o65 à l'aide de la commande xa evasion_galactique.s -o evasion_galactique.o65

Par contre, je n'ai trouvé que le fichier Linker65.exe dans le répertoire Bin de OSDK 1.21, et lorsque je tente de l'utiliser j'ai le message d'erreur suivant en retour : Cannot open Index file : lib6502\library.ndx


   
RépondreCitation
assinie
(@assinie)
Membre
Inscription: Il y a 6 ans
Posts: 68
 

Le Link65.exe de l'OSDK est prévu pour les programmes écrits en C et est davantage un pré-processeur qu'un éditeur de liens classique dans la mesure où il utilise des fichiers sources assembleur en entrée et non des fichiers objet (déjà assemblés)
Il cherche donc ses fichiers de librairie C.

Dans ton cas, je pense que tu n'as pas besoin d'utiiliser un éditeur de liens si toutes les routines utilisées par evasion_galactique.s sont dans ce fichier ce qui semble être le cas.

Donc tu as simplement besoin d'utiliser le programme header.exe de l'OSDK (en pratique on pourrait aussi s'en passer)

Il faut lui passer en paramètre le nom du fichier objet, le nom du fichier .tap à créer et l'adresse de chargement du programme.
L'adresse de chargement du programme doit être dans le fichier source evabsion_galactique.s (probablement la première pseudo-instruction * = xxxx)

La commande devient donc:

header -a1 evasion_galactique.o65 evasion_galactique.tap xxxx

Avec xxxx correspondant à la pseudo-instruction * = xxxx

-a1 : insdique un démarrage automatique du programme après son chargement par un CLOAD

-a0 pour un démarrage manuel, c'est à dire qu'il faudra taper l'instruction CALL xxxx après le CLOAD.
      ATTENTION si xxxx est en hexadécimal il faut remplacer ls caractère initial $ par # dans le CALL, c'est à dire que si tu as * = $1000 il faudra taper CALL #1000

 


   
RépondreCitation
Sheld67
(@sheld67)
Estimable Member
Inscription: Il y a 5 ans
Posts: 85
Début du sujet  

@assinie Merci pour ces précieuses informations.

Je testerai tout cela dès que possible, sachant que je reste très fidèle au cross-assembleur Frankenstein plus simple d'accès pour un amateur tel que moi.


   
arzooooo reacted
RépondreCitation
Share: