Derniers sujets
» Cumulus sur Sell my retro
Hier à 21:15 par drpsy

» Rodmän "SPECIAL MULTI FORMAT TRIPLE CASSETTE"
Hier à 20:08 par Jede

» Nettoyage de la base de jeux
Dim 11 Nov 2018 - 19:50 par Dbug

» Traitement de texte
Ven 9 Nov 2018 - 7:51 par Symoon

» Le Secret du Tombeau
Jeu 8 Nov 2018 - 19:31 par romu3

» Oric Explorer v2.0.... Bonne et mauvaise nouvelles
Mer 7 Nov 2018 - 23:07 par goyo

» Orix : tester sur oricutron
Mer 7 Nov 2018 - 11:29 par Jede

» le retour du Commodore 64
Lun 5 Nov 2018 - 6:40 par didierv

» rêve de jeu ...
Dim 4 Nov 2018 - 20:54 par goyo

» Grand concours de programmation
Dim 4 Nov 2018 - 8:29 par didierv

» Easter egg dans Honey Kong ?
Dim 4 Nov 2018 - 0:33 par iss

» Psycho III
Dim 4 Nov 2018 - 0:17 par Symoon

» Suppression du module UHF
Sam 3 Nov 2018 - 23:40 par drpsy

» CEO-MAG 341
Sam 3 Nov 2018 - 17:18 par Symoon

» Combien de jeux d'aventure sur oric ?
Jeu 1 Nov 2018 - 18:29 par Dom50

Qui est en ligne ?
Il y a en tout 3 utilisateurs en ligne :: 1 Enregistré, 0 Invisible et 2 Invités :: 1 Moteur de recherche

drpsy

Le record du nombre d'utilisateurs en ligne est de 29 le Mer 25 Fév 2015 - 14:01
Connexion

Récupérer mon mot de passe

Statistiques
Nous avons 159 membres enregistrés
L'utilisateur enregistré le plus récent est mrlee

Nos membres ont posté un total de 7487 messages dans 564 sujets
Portail ORIC




maxiNoob apprend le C

Poster un nouveau sujet   Répondre au sujet

Page 2 sur 2 Précédent  1, 2

Aller en bas

Re: maxiNoob apprend le C

Message par Hialmar le Jeu 7 Jan 2016 - 13:52

J'ai utilisé OSDK sur Tyrann 3 et je n'ai pas eu de pb.
S'il y a des bugs il faut les faire remonter à Dbug.

Je n'ai vu que des remontées de bugs au niveau de XA (donc ASM) et on ne parle pas de ça ici.

Didier, à mon avis pour ce genre de truc il vaut mieux rester en ASM.

_________________
Hialmar
Membre du CEO et de Silicium.
avatar
Hialmar
Admin

Messages : 843
Date d'inscription : 03/03/2014
Age : 48
Localisation : Toulouse

Revenir en haut Aller en bas

Re: maxiNoob apprend le C

Message par Godzil le Jeu 7 Jan 2016 - 16:35

Didier: pas sur de comprendre le probleme
avatar
Godzil

Messages : 107
Date d'inscription : 20/01/2013
Age : 37
Localisation : Entre France et UK

Revenir en haut Aller en bas

Re: maxiNoob apprend le C

Message par Hialmar le Jeu 7 Jan 2016 - 17:00

Ce que veut Didier c'est pouvoir dépasser les limites des 64 Ko (ou 48 Ko si on garde la ROM) en faisant un programme qui se charge dynamiquement par partie.

On aurait par exemple un main et des données globales au démarrage.

Ensuite le main chargerait une bibliothèque de fonctions et les exécuterait.

Un peu plus tard il remplacerait cette biblio par une autre et continuerait son exécution.

On a fait un peu ça avec Tyrann 3 de la façon suivante :
- On démarre avec un premier programme qui s'exécute puis avant de passer la main à un second programme il passe en mode TEXT, planque des données dans la zone HIRES (pour nous les différents personnages et des variables importantes du jeu qui se trouvent dans la sauvegarde).
- On lance le second programme via Sédoric ;
- Le second programme récupère les données planquées en zone HIRES et continue son exécution.

Ca se trouve ici :
https://github.com/hialmar/tyrann3/blob/master/team.c#L269-L273
Et ici :
https://github.com/hialmar/tyrann3/blob/master/team.c#L57-L61

Tout est dans les tests "if (io_needed)" (soit je sauve/charge vraiment la zone HIRES sur/depuis le disque soit je travaille direct sur/avec des données planquées).

Voilà un exemple d'utilisation :
https://github.com/hialmar/tyrann3/blob/master/laby.c#L949-L956
et ensuite :
https://github.com/hialmar/tyrann3/blob/master/dialog.c#L284-L285

Pour la petite histoire, là où ça devient rigolo c'est que nous dans Tyrann 3 on switche parfois entre du C et du Basic Wink

Didier voudrait un truc automatique.


Dernière édition par Hialmar le Jeu 7 Jan 2016 - 17:05, édité 1 fois

_________________
Hialmar
Membre du CEO et de Silicium.
avatar
Hialmar
Admin

Messages : 843
Date d'inscription : 03/03/2014
Age : 48
Localisation : Toulouse

Revenir en haut Aller en bas

Re: maxiNoob apprend le C

Message par Godzil le Jeu 7 Jan 2016 - 17:05

Ca be rien de bien difficile il faut juste utiliser (correctement) des pointeurs de fonction
avatar
Godzil

Messages : 107
Date d'inscription : 20/01/2013
Age : 37
Localisation : Entre France et UK

Revenir en haut Aller en bas

Re: maxiNoob apprend le C

Message par Hialmar le Jeu 7 Jan 2016 - 17:10

Challenge accepted ?

Fais-nous un exemple avec le chargement dynamique et on en reparle.

Je sais faire ça sous Unix avec des .so ou sous Windows avec des DLL mais là on n'a rien de ça et donc il faut tout se peler à la mano et donc comme je le disais plus haut en ASM.

Mais bon on dévie pas mal du sujet de Maximus là donc je propose qu'on poste ça ailleurs.

_________________
Hialmar
Membre du CEO et de Silicium.
avatar
Hialmar
Admin

Messages : 843
Date d'inscription : 03/03/2014
Age : 48
Localisation : Toulouse

Revenir en haut Aller en bas

Re: maxiNoob apprend le C

Message par Godzil le Jeu 7 Jan 2016 - 17:15

Ça marche, en 100% C on est d'accord?
avatar
Godzil

Messages : 107
Date d'inscription : 20/01/2013
Age : 37
Localisation : Entre France et UK

Revenir en haut Aller en bas

Re: maxiNoob apprend le C

Message par Hialmar le Jeu 7 Jan 2016 - 17:27

Ca roule Smile

_________________
Hialmar
Membre du CEO et de Silicium.
avatar
Hialmar
Admin

Messages : 843
Date d'inscription : 03/03/2014
Age : 48
Localisation : Toulouse

Revenir en haut Aller en bas

Re: maxiNoob apprend le C

Message par maximus le Jeu 7 Jan 2016 - 17:30

ma kesce ke cé ke ce charabia ? Very Happy clown
avatar
maximus

Messages : 1251
Date d'inscription : 02/12/2012
Age : 58
Localisation : Nimes

http://cinema.forumactif.org/

Revenir en haut Aller en bas

Re: maxiNoob apprend le C

Message par didierv le Jeu 7 Jan 2016 - 22:54

Godzil a écrit:Ca be rien de bien difficile il faut juste utiliser (correctement) des pointeurs de fonction

Certainement Godzil, mais j'ai bien dit que je ne maitrisais pas le sujet.

Ma réflexion venait de la lecture du code source de Sorcellerie, en pascal, qui opere avec des segments.
J'ai retrouvé la page internet qui parlait d'un équivalent avec CC65 qui gere apparemment les overlays et les segments... je l'avais imprimée l'année dernière mais le site est apparemment mort Crying or Very sad
D'ou ma réflexion. Je n'avais pas envie de me lancer dans un projet 100% assembleur ou c'est clair que l'on peut le faire.

_________________
DidierV - CEO Mag
alias coco.oric sur Defence-Force
avatar
didierv

Messages : 609
Date d'inscription : 19/01/2014
Age : 56
Localisation : Nord de la France

http://www.dmacoco.fr

Revenir en haut Aller en bas

Re: maxiNoob apprend le C

Message par assinie le Ven 8 Jan 2016 - 11:00

cc65 peut effectivement gérer des overlays mais cela n'a été implémenté que pour certaines machines (Apple, C64,...) pour lesquelles le support de l'OS est inclus.
Il y a même des exemples fournis avec les sources cc65.

Les compilateurs Pascal prenaient ça en charge (la série des Turbo Pascal, Pascal USCD, ...).
J'avais trouvé une page sur le Web qui expliquait les différentes méthodes utilisées, il faudrait que je la retrouve.

En gros, il s'agit d'edition de liens différée dynamique. L'appel à une fonction qui se trouve dans une librairie est remplacée par le nom de la librairie et un identifiant de la fonction dans cette librairie.
Lorsque le programme veut exécuter la fonction, il regarde si la librairie est chargée en mémoire et fait ensuite un saut vers la fonction.
La seule "difficultée" étant la gestion des librairies en mémoire.

Il doit être possible d'ajouter le support d'un OS pour l'Oric à cc65 ou à l'OSDK pour pouvoir le faire.
avatar
assinie

Messages : 225
Date d'inscription : 09/02/2014

Revenir en haut Aller en bas

Re: maxiNoob apprend le C

Message par Dbug le Ven 13 Oct 2017 - 22:55

J'ai l'impression que vous vous compliquez pas mal la vie Smile

Des programmes qui chargement dynamiquement des parties de code sur Oric il y a en a beaucoup:
- Toutes les démos Defence-Force chargent les effets les uns après les autres
- Cosmos 1999 charge l'intro et le jeu séparément aussi
- Blake's 7, le dernier jeu de Chéma va encore plus loin en chargeant dynamiquement le code et les données par petits blocs ici et là

C'est beau et propre les vraies DLL et autres modules qui se chargent dynamiquement en fonction des besoins, mais en pratique dans un jeu on sait avec certitude a 3792% quels sont les modules qui seront nécessaires a un moment donné, il suffit donc de les assembler a adresse fixe et les charger quand on en a besoin. Au passage, c'est aussi ce que font les OS sur Oric avec leurs modules, Sedoric est coupé en plusieurs parties, mais elle ne se chargent pas n'importe ou en mémoire overlay.

Idéalement, si vous ne faites pas appel a la ROM:
- vous pouvez récupérer une grosse partie de la RAM overlay pour votre propre usage, en restant juste ce qu'il faut en haut de ram pour pouvoir charger ou sauver (a tout casser ca prend 2ko),
- d'un seul coup magiquement le programme tourne aussi sur Oric 1 et Téléstrat
et bonus, si vous n'utilisez pas Sedoric vous récupérez aussi pas mal de place sur la disquette

Chema a pas mal aidé avec le FloppyBuilder et le code d'accès au disque, maintenant ca support le Téléstrat, et ca peut aussi bien charger que sauver.

_________________

avatar
Dbug

Messages : 94
Date d'inscription : 06/01/2013

Revenir en haut Aller en bas

Re: maxiNoob apprend le C

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Page 2 sur 2 Précédent  1, 2

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous pouvez répondre aux sujets dans ce forum