Samuel Devulder a écrit:
Pour info Pulkomandy a fait une démo en C (>>
ici<<) il y a quelques années, et même si le C est très proche de l'assembleur, on sent bien que c'est moins efficace que du code machine optimisé à la main.
Pour avoir un jeu fluide à 25 images/seconde avec du son, je pense que seul l'assembleur et les connaissances de Préhisto en sont capables. Les langages de haut niveau ne permettent pas d'être précis au cycle près, chose nécessaire sur Thomson qui ne dispose d'aucune aide matérielle pour les sprites ou le son.
Par contre d'autres jeux, plus lents, et avec moins de son doivent être possibles en Pascal en effet.
Un jour je me pencherais sur le Pascal, surtout s'il permet de la programmation modulaire.
Au cycle près non mais avec Pascal Base, on peut créer des modules en assembleur directement au sein des sources Pascal (d'ailleurs, il y a déjà 19 procédures de ce type dans la doc, comme par exemple, PEEK, POKE, PSET, POINT, LINE etc)
En voici un exemple d'ailleurs utilisant lm'asembleur pour TO7:
PROCEDURE PSET (X,Y,COLOR : INTEGER)
(*allumage d'un point en X,Y de couleur COLOR
identique à l'instruction PSET graphique du BASIC*)
BEGIN ENCODE('7F60413410AE5B10AE56EC54F76038BDE80F3510'); END;
Ou un autre exemple commun aux TO/MO
PROCEDURE CURSOFF; (*extinction du curseur*)
BEGIN WRITE (CHR(20)); END;
Imaginez si on créer une librairie complète en pascal pour les routines du moniteur ou de l'extramoniteur par cette voie On n'a plus besoin de se préoccuper des "variables", de la position des procédures et fonctions.
Cependant, ya juste un point dont je ne vois pas comment utiliser en Pascal, c'est pour l'interruption timer, où, je pense, il faut anticiper l'adresse de début d'interruption.
A ce propos, existe-t-il un moyen de changer la durée du timer qui est de 1/10s ?