Timing Langage machine

Cette catégorie traite de développements récents destinés à nos vieilles machines, applications, jeux ou démos... Amis programmeurs, c'est ici que vous pourrez enfin devenir célèbres!

Modérateurs : Papy.G, fneck, Carl

Avatar de l’utilisateur
frktaunus
Messages : 1148
Inscription : 08 mai 2019 11:23
Localisation : LILLE

Timing Langage machine

Message par frktaunus »

J'ai une question (sans doute idiote) mais si je ne la pose pas, on ne saura pas. ;)

En seconde moitié des années 80, j'ai titillé le 6510 du commodore 64 avec un peu de langage machine, et comme à l'époque, il n'y avait pas internet, j'ai appris grâce à un bouquin de la rom désassemblée et à un pote au fond de la classe pendant les cours d'allemand :roll:
Le C128 a aidé aussi avec son "monitor" intégré, mais c'est loin d'un compilateur, car si je voulais rajouter des instructions à un endroit, il me fallait déplacer le code qui suit plus haut en ram, et me retaper tout les jump en dur. J'ai quand même réussi à faire des choses comme ça. C'était cool aussi de faire tourner de trucs tout seuls grâce aux déviations des interruptions. C'était très formateur.

Le problème par rapport au basic, c'est que le LM est rapide! Un coup de joystick a droite, et l'objet guidé disparaît instantanément de l'écran.
il s'est bien déplacé à droite et est sorti de l'écran sans même que la TV ait eu le temps de dessiner l'action.
A l'époque, pour résoudre ce problème, j'avais des boucles qui ne faisaient rien, et cela ralentissait suffisamment le programme, pour enfin avoir la fluidité requise. Je me doute que ce n'est pas la bonne solution, et que ce temps CPU est perdu alors qu'on pourrait en profiter pour faire autre chose.
Comment gérer cela sans faire mouliner dans le vide tout le temps?
Comment est géré le timing dans les jeux par exemple?
Franck
Est ce que l'on peut enregistrer de la musique classique sur une cassette Metal ?
__sam__
Messages : 7964
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: Timing Langage machine

Message par __sam__ »

En général je crois que les jeux sont synchronisés sur l'interruption VBL. Du coup le jeu ne va pas à la vitesse infinie, mais celle très régulière et prédictible de la synchro écran (avec quelques gags de vitesse différente du jeu joué sur un écran NTSC 60hz ou PAL 50hz.)
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Avatar de l’utilisateur
Papy.G
Modérateur
Messages : 3051
Inscription : 10 juin 2014 13:40
Localisation : Haute-Garonne/Gers

Re: Timing Langage machine

Message par Papy.G »

Certains proc ont un mode "pause" réveillable par une interruption, un timer, par exemple, si l'on veut s'affranchir de la synchro affichage.
Utiliser la vbl est une bonne idée, cela économise un précieux timer, et certaines machines en étaient totalement dépourvues, il me semble.
Soyez exigeants, ne vous contentez pas de ce que l'on vous vend.
Demandez-en plus, ou faites-le vous-même.
Répondre