Obligement - L'Amiga au maximum

Mercredi 24 mai 2017 - 19:36  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

 · Accueil
 · A Propos
 · Articles
 · Galeries
 · Glossaire
 · Hit Parade
 · Liens
 · Liste jeux Amiga
 · Quizz
 · Téléchargements
 · Trucs et astuces


Articles

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

 · Articles in english
 · Articles in other languages


Twitter

Suivez-nous sur Twitter




Liens

 · Sites de téléchargements
 · Associations
 · Pages Personnelles
 · Moteurs de recherche
 · Pages de liens
 · Constructeurs matériels
 · Matériel
 · Autres sites de matériel
 · Réparateurs
 · Revendeurs
 · Presse et médias
 · Programmation
 · Développeurs logiciels
 · Logiciels
 · Développeurs de jeux
 · Jeux
 · Autres sites de jeux
 · Scène démo
 · Divers
 · Informatique générale


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


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


Partenaires

Annuaire Amiga

Amedia Computer

Relec

Hit Parade


Soutien

N'hésitez pas à soutenir le projet Obligement



Contact

David Brunet

Courriel

 


Programmation : Installation du compilateur Lattice C sur une seule disquette
(Article écrit par divers auteurs et extrait d'A-News (Amiga News) - juin 1988)


Moi : Amis programmeurs, bonjour.

Vous : Clameurs de toutes sortes et cris d'allégresse.

Moi : Nous ouvrons aujourd'hui une rubrique dédiée à la programmation en C avec un grand C. Nous essaierons suivant votre volonté de faire à la fois de l'initiation aussi bien que de la programmation plus évoluée.

De toutes façons si vous êtes débutant en C, nous vous conseillons dès aujourd'hui la bible du C qu'est le Kemighan et Ritchie (en vente dans toutes les bonnes pharmacies).

En fait, nous souhaiterions que cette rubrique devienne un recueil de trucs, astuces et autres routines indispensables à la programmation sur Amiga : gestion des sprites, bobs, gestion des écrans, des fameux (oui, on peut dire fameux) DualPlayfields, scrollings (défilements), et caetera, et caetera.

Vous : Oh ! Il parle le latin couramment.

Moi : Donc, disais-je avant que vous m'interrompiez subrepticement, nous voudrions créer une dynamique de développement, et plutôt que d'écrire dans votre coin des routines qui tuent, faites-en profiter la grande communauté fraternelle que sont les utilisateurs d'Amiga (j'ai un faible pour les envolées lyriques, quoique obsolètes, dans le plus pur style néo-bab flamboyant).

Dans les prochains numéros d'A-News nous allons donc vous passer quelques listings d'utilitaires et nous vous invitons donc à nous envoyer vos oeuvres.

Donc aujourd'hui, bande de petits veinards, acte I, scène 1, chapitre 1, paragraphe 1, ligne 1... de cette rubrique. Et quelle rubrique, puisque nous démarrons très fort doit-on reconnaître.

Installation du compilateur Lattice 4.0 sur une seule disquette

Vous qui avez seulement un lecteur de disquette, 512 ko de mémoire, et à qui on n'a cessé de dire qu'il n'y avait que l'Aztec C de valable, vous allez enfin pouvoir programmer comme un grand et pour de vrai.

Remarque : si vous possédez une version 3.03 ou 3.10 vous pouvez faire la même chose mais vous disposerez de moins de place sur la disquette du fait que les fichiers includes ne sont pas sous forme compactée et que les versions 3.03 et 3.10 ne sont pas compatibles avec les fichiers compactés.

Les disquettes Lattice C

Procurez-vous le compilateur chez votre fournisseur favori.

Examinons ensemble le contenu des trois disquettes.

Disquette 1 : divers répertoires ; celui qui nous intéresse plus particulièrement est le répertoire "C" qui contient le compilateur. lc1 et lc2 qui sont les deux passes du compilateur et l'éditeur de liens "blink" plus quelques utilitaires tels que lcompact qui permet de compacter les fichiers sources et les fichiers includes pour le compilateur. Pour le reste, se reporter à la doc fournie par Lattice.

Disquette 2 : un répertoire "source" contenant des sources en C. Un répertoire "lib" contenant les bibliothèques de l'éditeur de liens. Un répertoire "compacth" qui contient les fichiers includes compressés avec le lcompact.

Disquette 3 : un répertoire "include" qui contient les fichiers includes éditables, c'est-à-dire que l'on peut charger sous éditeur ce qui n'est pas le cas des fichiers compactés.

Copie des fichiers

Première opération : recopier le disque 2. Pour cela, chargez votre Workbench, ouvrez un CLI et invoquez la commande "diskcopy" comme suit :

Diskcopy DF0: to DF0:

Deuxième étape : remettez votre Workbench dans le lecteur et recopiez les commandes suivantes en RAM : copy, cd, dir, makedir, delete, ed, rename, execute, install, relabel, path, assign, stack. Pour cela, tapez les lignes suivantes :

copy c/copy ram:
copy c/cd ram:
copy c/dir ram:
copy c/makedir ram:
copy c/delete ram:
copy c/ed ram:
copy c/install ram:
copy c/relabel ram:
copy c/rename ram:
copy c/execute ram:
copy c/path ram:
copy c/assign ram:
copy c/stack ram:

Remettez votre copie de la disquette 2 dans le lecteur et tapez "cd DF0:"

Si vous êtes débutant, vous n'avez pas besoin de toutes les bibliothèques de l'éditeur de liens "linker" (sinon je suppose que vous ne lirez pas cet article). Tapez donc les quelques lignes suivantes ce qui libérera de la place sur la disquette.

cd lib (cela change de répertoire)
delete ovs.o lcs.lib lcmffp.lib cback.o lcmffps.lib lcms (efface les fichiers de la liste)
delete df0:compacth/proto all (efface tous les fichiers et le répertoire)
rename compacth include (change le nom de compacth en include)
makedir c
makedir s
makedir l (création des répertoires)
makedir devs
makedir devs/keymaps
install df0: (installation du boot block ; remarque : cette commande AmigaDOS permet de se débarrasser des virus SCA, Byte Bandit et autres)
relabel df0: "LATTICE C V 4.0" (change le nom de la disquette)

Insérez de nouveau votre Workbench. Tapez :

copy df0:devs/keymaps/f ram:
copy df0:devs/system-configuration ram:
copy df0:l/ram-handler ram:
copy df0:system/setmap ram:

Insérez de nouveau votre disquette.

copy ram:t devs/keymaps
copy ram:system-configuration devs
copy ram:ram-handler l
copy ram:setmap c
copy ram:ed c
copy ram:cd c
copy ram:dir c
copy ram:makedir c
copy ram:delete c
copy ram:copy c
copy ram:rename c
copy ram:execute c
copy ram:path c
copy ram:assign c
copy ram:stack c (recopie des fichiers dans leurs répertoires respectifs)
delete ram:#? (pour effacer les fichiers de la ram:)
df0:c/copy df0:c/copy ram: (pour garder la commande copy en ram:)

Remettez la disquette 1 du compilateur et tapez :

copy df0:c/lc1 ram:
copy df0:c/lc2 ram:
copy df0:c/blink ram: (copie du compilateur et de l'éditeur de liens en ram:)

Remettez la copie de la disquette 2.

copy ram: df0:c (copie de l'éditeur de liens et du compilateur sur la disquette, ouf c'est presque fini !)

Appelez maintenant l'éditeur en tapant "ed s/cc". Puis sous éditeur tapez ces cinq lignes :

.KEY file/a
lc1 -oram:<file>
lc2 ram:<file>
blink from lib/lc.o,ram:<file>.o to ram:<file> +
lib lib/lcm.lib,lib/lc.lib,lib/amiga.lib CHIP

Tapez "Esc+x" pour sortir de l'éditeur en sauvegardant.

La première ligne passe en paramètres le nom du fichier que l'on veut utiliser. Si l'on a tapé "execute cc projet", la variable <file> est substituée par "projet".

L'option "-oram:" indique à la passe 1 du compilateur qu'il doit travailler en mémoire ce qui permet de compiler plus vite que si l'on compile directement sur la disquette. C'est pourquoi la passe 2 travaille sur le fichier en ram: qui s'appele "nom_de_fichier.q" pour créer un fichier en ram: nommé "nom_de_fichier.o".

Pour l'éditeur de liens "FROM" indique les fichiers à partir desquels on travaille. Il doit toujours y avoir le fichier lib/c.o et le fichier "nom_de_fichier.o".

"TO" indique le nom du fichier de l'exécutable à créer.

"LIB" indique les bibliothèques utilisées par l'éditeur de liens. Elles doivent obligatoirement être dans cet ordre sans quoi il risque de se produire des effets bizarres à l'exécution du programme.

Le drapeau (flag) "CHIP" indique à l'éditeur de liens que toutes les variables doivent être allouées dans la mémoire Chip, C'est-à-dire dans les 512 premiers ko. Ceci permet en particulier de travailler avec une extension mémoire sans avoir de problème. Rappelons que, entre autres, les sprites doivent se trouver dans la mémoire Chip, de même que les tampons pour les accès disque lorsque l'on pilote directement le lecteur de disquette.

Repassez sous éditeur en tapant "ed s/startup-sequence" puis tapez :

setmap f
path RAM: add
assign SYS: "LATTICE V 4.0"
assign LIB: SYS:lib
assign LIBS: SYS:libs
assign INCLUDE: SYS:include
stack 20000
stack

Sauvegardez avec "Esc+x".

La commande "setmap" permet de passer en clavier français. Attention, il faut que le fichier 1 soit présent dans le répertoire "devs/keymaps".

"Path RAM: add" indique à votre ordinateur préféré que s'il ne trouve pas la commande que vous invoquez il doit aller regarder en RAM: si elle n'y est pas. Bien sûr, si elle y est il l'exécute.

"Assign nom_de_variable: chemin" indique au système de fichiers que chaque fois qu'il rencontre la variable "nom_de_variable:" il doit la remplacer par le chemin correspondant avant d'exécuter la commande. Exemple :

assign SYS: "LATTICE C V 4.0"

Chaque fois que le système de fichiers trouvera SYS: il le remplacera par "LATTICE C V 4.0".

La ligne "assign INCLUDE: SYS:include" sera donc interprétée comme suit : assign INCLUDE: "LATTICE C V 4.0:include". La variable "INCLUDE:" indique au compilateur par l'intermédiaire du système de fichiers que les fichiers includes se trouvent dans le répertoire de nom "include".

La commande "stack 20000" permet de modifier la taille de la pile utilisée par le compilateur, "stack" tout seul affiche la taille de la pile actuelle (il doit donc afficher 20000) ceci est très utile si votre programme utilise beaucoup d'appels de fonctions. Si en cours de compilation vous voyez apparaître le message "stack overflow" changez cette commande en "stack 30000" ce qui devrait résoudre le problème.

Voilà, il ne vous reste plus qu'à redémarrer et si tout s'est bien passé, et que vous n'avez rien oublié, vous verrez apparaître le message "stack 20000" puis le 1> du CLI.

Testons tout cela

Il ne reste plus qu'à tester. Tapez donc "ed test" pour éditer ce petit programme de démo style de ceux fournis dans les manuels de Basic.

#include <stdio.h>
void main() {
Int nombre;
printf("entrez un nombre ->");
scanf("%d",&nombre);
printf("%d au carre=%d/n", nombre,nombre^nombre);

Après avoir sauvegardé ce magnifique exemple, tapez "execute cc test" et attendez. Quand le 1> du CLI réapparaît tapez "test" et il s'exécutera (remarque : si vous voulez garder l'exécutable n'oubliez pas de faire "copy ram:test df0:" avant d'éteindre l'ordinateur).

Avec cette technique vous devez disposer d'environ 160 ko sur la disquette. Si toutefois votre programme ne rentre pas sur la disquette (prog.c + prog.0 + prog) vous pouvez utiliser la solution deux disquettes.

Recopiez la disquette que nous venons de "fabriquer". Nous l'appellerons maintenant "Linker" alors que l'autre se nommera "Compilateur". Sur la disquette du compilateur, les bibliothèques de l'éditeur de liens ainsi que le blink :

delete c/blink
delete lib all

...permet de récupérer plus de 100 ko. Puis éditez le fichier s/cc et enlevez les deux dernières lignes : ed s/cc.

Positionnez le curseur sur la ligne 3 et tapez deux fois "Ctrl+b" puis "Esc+x".

Sur la disquette "Linker", effacez c/lc1 et c/lc2 par "delete c/lcl c/lc2". On récupère ainsi environ 160 ko. Vous pouvez aussi effacer les fichiers includes si le coeur vous en dit. Modifiez le fichier "s/cc" comme suit :

.KEY flle/a
copy ram: df0:
blink from lib/c.o,ram:<file> to ram:<file> +
lib lib/lcm./lib,lib/lc.lib,lib/amiga.lib CHIP
copy ram: df0:

Il ne reste plus qu'à le renommer : "rename s/cc s/link".

Pour compiler

Mettez la disquette "Compilateur" dans le lecteur et tapez votre programme. Pour le compiler tapez "execute cc prog" et attendez que le lecteur s'arrête de tourner.

Mettez la disquette du compilateur et tapez "execute link". Le fichier "prog.o" sera recopié sur la disquette ainsi que l'exécutable "prog".

Remarque : si une erreur survient au cours de la compilation appuyer sur la barre d'espace pour arrêter le défilement de l'écran et la touche "back space" pour reprendre la compilation. "Ctrl+C" vous permet d'arrêter la compilation à tout moment (versions 3.10 et 4.0 uniquement).


[Retour en haut] / [Retour aux articles]