Obligement - L'Amiga au maximum

Mardi 03 juin 2025 - 15:38  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

Actualité (récente)
Actualité (archive)
Comparatifs
Dossiers
Entrevues
Matériel (tests)
Matériel (bidouilles)
Points de vue
En pratique
Programmation
Reportages
Quizz
Tests de jeux
Tests de logiciels
Tests de compilations
Trucs et astuces
Articles divers

Articles in English


Réseaux sociaux

Suivez-nous sur X




Liste des jeux Amiga

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z,
ALL


Trucs et astuces

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Glossaire

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Galeries

Menu des galeries

BD d'Amiga Spécial
Caricatures Dudai
Caricatures Jet d'ail
Diagrammes de Jay Miner
Images insolites
Fin de jeux (de A à E)
Fin de Jeux (de F à O)
Fin de jeux (de P à Z)
Galerie de Mike Dafunk
Logos d'Obligement
Pubs pour matériels
Systèmes d'exploitation
Trombinoscope Alchimie 7
Vidéos


Téléchargement

Documents
Jeux
Logiciels
Magazines
Divers


Liens

Associations
Jeux
Logiciels
Matériel
Magazines et médias
Pages personnelles
Réparateurs
Revendeurs
Scène démo
Sites de téléchargement
Divers


Partenaires

Annuaire Amiga

Amedia Computer

Relec


A Propos

A propos d'Obligement

A Propos


Contact

David Brunet

Courriel

 


Programmation : C - vérification du code
(Article écrit par Xavier Leclercq et extrait d'Amiga News - mai 1992)


Pourquoi programmer en C ? La réponse n'est pas à priori si évidente car l'assembleur est plus rapide et plus simple à comprendre pour le débutant (du moins c'est mon point de vue). Mais le C permet la portabilité la source. Cela signifie qu'en théorie un programme C tournant sur Amiga peut s'adapter facilement sur d'autres ordinateurs. En pratique, cette portabilité demande un effort supplémentaire de la part du programmeur qui la plupart du temps préfère l'ignorer. L'affaire se complique lorsque l'on constate qu'un compilateur X ne réagit pas de la même manière qu'un compilateur Y... Il existe bien une norme internationale établie par l'American National Standards Institute (ANSI) mais il faut encore trouver "le" compilateur qui affirme être compatible avec celle-ci et qui le prouve...

Heureusement, vous pouvez vous procurer depuis quelque temps un compilateur digne d'ANSI pour pas cher et qui peut rapporter gros : le DICE. C'est donc ce noble compilateur que je vous incite vivement à utiliser. Il est gratuit (du moins pour la version DP qui se trouve sur l'AmigaLibDisk numéro 466 de M. Fred Fish), rapide, moins "lourd" et plus simple (ce qui est ici une qualité) que ces confrères du commerce.

Il est évident qu'il vaut mieux utiliser la norme autant que possible et éviter par exemple, pour des opérations sur fichiers, d'ouvrir la dos.library. De plus, DICE accepte les prototypes de fonctions alors autant les utiliser au maximum !

Quelques lignes concernant l'implantation

Une configuration A500+, 2 Mo de mémoire et un disque dur est la configuration bienvenue.

Dans votre shell-startup, insérez

>alias DICE dh1: sources/dice/progxl/go

Le fichier script étant directement exécutable grâce à la commande "protect go srwed".

Le script peut contenir la séquence d'instruction CLI suivante :

assign DINCLUDE: dh1:sources/dice/include
assign DLIB: dh1:sources/dice/dlib
resident dh1:sources/dice/bin/DAS ; si vous avez 2 Mo de mémoire
resident dh1:sources/dice/bin/DC1 ; vous pouvez rendre certaines commandes
resident dh1:sources/dice/bin/DCC ; résidentes, ce qui augmentera la vitesse
resident dh1:sources/dice/bin/DLINK ; de compilation
resident dh1:sources/dice/bin/DCPP
cd dh1:sources/dice/progxl ; progxl est le répertoire courant de travail

Vérification du code

Ensuite, encoder vos listings. Une erreur de frappe est toujours possible lorsque fébrilement vos petits doigts courageux encodent. Le drame suivant peut alors se dérouler :

#include <stdio.h>
main() { pust ("chaîne envoyée à stdout"); }

...à la place du code source correct :

#include <stdio.h>
main() { puts ("chaîne envoyée à stdout"); }

Mais le compilateur est sans pitié et vous affichera "undefined symbol: pust". Une manière de procéder serait de relire avant compilation le code source mais bien souvent cette tâche se révèle très difficile car il se peut que l'on relise x fois une ligne mal encodée sans trouver la faute... Il existe une méthode du nom de "méthode de la lettre clé" pour y remédier qui :
  • Multiplie la valeur lue par des puissances de 2 successives.
  • Additionne les résultats.
  • Divise la somme obtenue par le nombre qui correspond à l'addition de la valeur des puissances de 2 successives.
  • Ignore les caractères <= à la valeur ASCII d'un espacement (0x20).
Donc cette méthode permet d'ignorer les espaces parasites et de contrôler l'inversion possible de caractères.

Exemple : RT inversion, RO niversion, SM inversino, RT inversion Voici le code source et ses caractères de contrôle :

C

Emploi : encoder chaque ligne (sans les codes de contrôle). Puis tapez :

1>CHKSCR CHKSCR.0 CHKSCR.CHK

Le "CHKSCR.CHK" contient le listing source avec les codes de contrôle comme la source proposée ci-dessus. Les codes imprimés dans votre Amiga News doivent correspondre aux codes du "CHKSCR.CHK".

"CHKSCR" peut-être utilisé avec n'importe quel texte ASCII : une source C ou BASIC, FORTRAN, PCQ...


[Retour en haut] / [Retour aux articles]