Sponsors

FacebookTwitterGoogle Bookmarks

Avant de commencer à répondre à vos questions indiscrètes, je voudrai remercier tous ceux (nombreux !) Qui nous ont dernièrement envoyé des programmes (Jean- Michel, merci pour le virus), mais où avez-vous la tête ? Pensez-vous que nous allons nous amusez à taper des listings de plusieurs pages pour contempler vos chef- d’œuvres ? Envoyez-nous tout ça sur disquettes SCREU- GNEUGNEUHHH !! Question : Je suis utilisateur “professionnel” de l’Amiga : deux Amiga 2500 équipés en cartes accélératrices, drives winchester, et même une carte DSP fabriquée maison (FM : alors là bravo !), que j’utilise pour le traitement d’images en observation astronomique (FM : encore un qui regarde de trop près sa feuille d’impôt !). J’ai besoin de renseignements sur des produits hard et soft, dont je ne trouve trace ni chez le marchand du coin, ni dans les revues qui traitent de l’Ami- ga. En voici la liste : 1) Existe-t-il une carte de numérisation d’image dire “frame grabber”, qui s’insère dans le bus de l’Amiga 2000, capable de numériser disons une dizaine d’images par seconde (FM : fichtre !), et possédant une bonne résolution (typiquement 512*512 par pixels et > 16 niveaux de gris par pixels) ? 2) Existe-t-il un traitement de texte à vocation scientifique, c’est-à-dire pouvant sortir des textes en mode graphique, et ayant des caractères spéciaux (genre intégrale, caractères grecs, etc.) ? 3) Existe-t-il des cartes DSP (Digital Signal Processor, ou à base de transputer) pour le bus Amiga 2000 ? 4) FM : Il y avait ici une quatrième question, mais comme je n’y ai rien compris, je l’ai sauvagement coupée. Farrokh Vakili Astronome CNRS Réponse : 1) Pas à notre connaissance. 2) Le logiciel AmigaTEX devrait vous satisfaire. Coût environ 1. 600 F, distribué par : ESSONE MAILING, 8, rue du Bois- Sauvage, 91024 Evry Cedex. Tél. : 64.97.96.54 Apparemment voilà des gens qui font bien les choses : ils vous enverrons une disquette de démonstration du logiciel contre 50 F franco de port remboursés en cas d’achat, ce qui vous permettra de ne pas acheter en aveugle. 3) Nous savons qu’un produit de ce type est en cours de développement en Allemagne. Toutefois si un lecteur avait connaissance de l’existence d’une telle carte, ce serait sympa de nous le signaler. Question : Voici quelques petites questions au sujet de mon Amiga 2000B XT

Click image to download PDF

AMIGA NEWS TECH numero 19 (01-1991)

Document sans nom N°19
JAN. 91
Initiation : Bobs, sprites et autres réjouissance graphiques par S. Sçhp**
BACKSTART :
classifiée top secret par F. Mazué, P. 36
Application :
Les principales instructions d'AMAL (2) par F. Lionnet, P. 4
TRANSACTOR
AMOS
GfaBasic
mSSEMBLEUR
Initiation : Amnésie Internationale par Max, p. 50
CLASSIFIÉE TOP SECRET
Vous avez sans doute remarqué qu’un programme lancé depuis une fenêtre CLI ou Shell ne rend pas la main à celle-ci tant que son exécution n’est pas terminée, ce qui a pour effet d'immobiliser ladite fenêtre. Pour remédier à cela, je vous propose ce mois-ci un fichier include qui permettra à n’importe quel programme assembleur de démarrer en tâche de fond, c’est-à-dire en rendant immédiatement la main au CLI tout en poursuivant sa propre exécution. Afin de réaliser ce petit miracle, il nous faudra faire une petite exploration des arcanes de la très ésotérique, nébuleuse et entortillée dos.library.
A tout hasard, gardez votre aspirine à portée de la main.
Struct MsgPort pr_MsgPort; WORD pr_Pad;
BPTR pr_SegList;
LONG pr_StackSize;
A. N.T.
Nouvelle
formule
uniquement par abonnement Page 34
APTR pr GlobVec;
LONG pr_TaskNum;
BPTR pr_StackBase;
LONG pr_Result2:
BPTR prjCurrentDIr;
BPTR prjCIS;
BPTR prJCOS;
APTR pr_ConsoleTask; APTR pr_FileSystemTask; BPTR pr_CLI;
APTR pr_ReturnAddr;
APTR pr_PktWait;
APTR pr_WindowPtr;
Effectivement, le problème majeur de la dos.library est qu’elle n’est absolument pas documentée. Monsieur Commodore n’est pas vraiment enclin à donner des renseignements quand il ne recommande pas purement et simplement de ne pas toucher à ce qu’il considère comme un domaine privé. Par voie de conséquence, les remarquables Amiga_Rom Kernel Manual sont hélas muets sur ce sujet même si les fichiers « include » correspondants sont fournis.
UNE RAISON
En fait, il y a, à défaut d’une justification valable, une raison à cette situation : la dos.library n’a absolument rien de standard par rapport aux autres librairies du système d’exploitation de l’Amiga.
Au lieu d’être écrite en C comme les autres libraries, la dos.library a été écrite (surtout ne demandez pas pourquoi !) Avec le bizarre autant qu’étrange langage BCPL. Cette situation est modifiée sur le kickstart
2. 0 des atroimils où la dos.library est enfin standard, mais en attendant, sur un 500 ou un 2000, le BCPL apporte les contraintes suivantes:
- Incroyable mais vrai, un pointeur BCPL ne pointe pas !
Qu’est-ce à dire ? Que ia valeur d’un pointeur BCPL est divisée par 4. Rendons ceci plus clair par un exemple: un pointeur «désignant» l’adresse $ 20000 vaut $ 5000. Ce qui signifie que pour utiliser humainement un pointeur BCPL, il faut d’abord multiplier sa valeur par 4.
- Une chaîne de caractères BCPL est constituée d’un octet représentant la longueur de la chaîne, cet octet n’étant pas compté dans ladite longueur, les octets «caractères», et PAS de zéro final. Cela signifie que si vous allez pêcher une chaîne de caractères dans une structure relevant du DOS, vous devrez modifier la chaîne si vous voulez la transmettre à une structure relevant d’une autre librairie.
- La routine SetFunctlon d’exec.library ne PERMET PAS de modifier une . Fonction de la dos.library, cette dernière n’étant pas standard. (C’est
sans doute une des raisons du mutisme de Commodore).
PETIT PRELIMINAIRE
Quelle que soit la façon dont démarre un programme, il faut savoir que celui-ci répondra à une structure Process et non à une structure Task. En effet, une Task ne peut-être qu’un sous-programme très élémentaire car elle n’a pas le droit d’accéder au DOS et par voie de conséquence à aucune entrées sorties. Voici la structure Process: struct Process
struct Task prjask;
Tous les éléments BPTR de cette structure sont des pointeurs BCPL comme expliqué plus haut. Ceci exposé, voyons chacune des deux façons de lancer un programme sur l'Amiga.
DEPUIS LE WORKBENCH
Lorsqu’on clique sur une icône, le workbench charge le programme (ou le défaut tool) correspondant, puis crée un Process avec CreateProc de la dos.library. Tout Process étant muni d’un port message, le workbench envoie un message à ce port. Le Process tournant déjà, il est en mesure de retirer le message de la file d’attente, ce qu’il doit faire le plus rapidement possible et théoriquement AVANT d’ouvrir la dos.library si l’on respecte les directives de programmation fournies par Commodore. J’en profite pour vous informer que les startups du Lattice C font exactement le contraire ! Certes cela marche quand même car le message est retiré tout de suite après l’ouverture du DOS. Quoi qu'il en soit, ce n'est absolument pas un exemple à suivre, on a déjà vu des gourous réveillés pour moins que ça...
Pour terminer son exécution, un programme lancé du workbench doit retourner à l’expediteur (la workbenck task) le message de départ ce qui permettra au système de s’y retrouver pour supprimer le Process et libérer les mémoires proprement. Bien sûr, un programme lancé depuis le workbench est de fait une tâche de fond, donc point n’est besoin dans ce cas de réinventer la poudre : on utilisera une routine de démarrage classique. Ceux qui désirent en savoir plus peuvent se reporter au RKM « libraries and devices » page 579.
DEPUIS LE CLI
Là, le problème est plus complique faute de documentation. Au péril de ma santé mentale, j'ai exploré pour vous la dos.library et en ait rapporté les informations suivantes.
Que l’on utilise un CLI ou un Shell, on a à faire avec le Command Line Interface (d’ou le nom de CLI à l’origine) de la dos.library. Pour simplifier à l'extrême, on peut se contenter de dire que ce n’est finalement qu’une routine de la dos.library. Cette routine est en étroite communication avec intuition.library et avec plusieurs devices dont le (pauvre) CON: dans le cas du CLI et le NEWCON: dans le cas du Shell. Dans la suite on appe- lera CLI le Command Line Interface, sans se soucier du (ou des) device(s) associé(s). Voyons d’abord la structure CLI : struct CommandLinelnterface
LONG cli_Result2;
8) A6 pointe sur une routine de la dos.library qui permet de rendre la main au CLI mais sa manipulation est plutôt du genre délicate et la place disponible pour cet article n’étant pas illimitée...
BSTR cli_SetName;
BPTR c!i_CommandDir; LONG cii_ReturnCode; BSTR cli_CommandName; LONG cILFailLevel;
BSTR cli_Prompt;
BPTR cli_Standard Input ; BPTR cli_Currentlnput; BSTR cli_CommandFile; LONG clijnteractive; LONG c!i_Background; BPTR cli_CurrentOutput; LONG cli_DefaultStack; BPTR cli_StandardOutput; BPTR cli_Module;
L’utilisation de ces registres peut être très intéressante mais le moins que l’on puisse dire est qu’ils sont à manier avec précaution. De plus ceci ne devrait pas être utilisable sur Kickstart 2.0 sauf en ce qui concerne DO et A0.
A. N.T.
Nouvelle
formule
uniquement par abonnement Page 34
- Tout ceci étant préparé le cli «saute» dans le début du programme, qui ne se situe pas à la valeur contenue dans A3 mais en fait, de par la constitution des segments, à la valeur A3+4.
Il nous reste maintenant à voir comment sont constitués ces fameux segments, et nous pourront ensuite (enfin ?) Voir comment parvenir au but proposé.
Le CLI fonctionne approximativement de la manière suivante :
On peut frapper ce que l’on veut dans la fenêtre du CLI, celui-ci n’en tient pas compte tant que la touche return n’est pas pressée et dort du sommeil le plus profond. Quand cette dernière est pressée, un signal est envoyé au CLI afin de le réveiller. A ce moment, ce dernier compte combien de caractères ont été tapés dans la ligne, range cette chaîne de caractères (attention, chaîne BCPLI) dans l’élément cILCommandName de la structure du CLI puis essaie de charger le programme correspondant au premier mot de la chaîne.
Le CLI charge un programme comme suit :
- De la mémoire est réservée pour la création d'une structure Process.
- Le CLI charge le programme avec la routine LoadSeg de la dos.library. A ce moment, on a donc en mémoire un programme exécutable et relogé constitué d’un ou plusieurs segments, avec la mémoire correspondante réservée. Nous verrons comment sont constitués les segments plus loin, il suffit de savoir pour l’instant que l’élément cli_Module est ini- tialisé avec un pointeur BCPL sur le premier segment du programme.
- Le CLI “s’attache”, pour ce qui concerne notre sujet, à la structure Process par les éléments pr_CLI qui est un pointeur BCPL sur la structure CLI dans laquelle on vient d'initialiser cli_Module, pr_CurrentDir pour le directory courant et l’élément pr_SegList est initialisé avec la même valeur que cli_Module. Enfin sachons que le programme (pr_StakBase) utilisera la pile du CLI. Bien sûr d’autres éléments de la structure Process sont initiallsés, mais cela ne nous Intéresse pas aujourd’hui.
- Les registres 68000 sont initialisés comme suit :
1) DO contient le nombre de caractères de la chaînes de paramètres suivant le nom du programme lors de son appel (l’espace entre le nom du programme et les paramètres ne fait pas partie de la chaîne).
2) A0 contient l’adresse de la chaîne de paramètres. Attention : cette chaîne n’est pas au format C car il n’y a pas de zéro final mais le caractère $ OA, ni au format BCPL car la valeur contenue dans DO ne fait pas partie de la chaîne. Enfin la chaîne ne comporte plus le nom du programme alors que c’est le cas pour la chaîne de cILCommandName.
3) A1 pointe sur la pile.
4) A2 pointe sur la dos.library, mais en plein milieu des offsets de fonction. (Ça me rappelle un de mes amis shadock qui disait: «Mais pourquoi faire simple quand on peut faire compliqué»),
5) A3 selon la bible de l’Amiga devrait pointer sur la taille de la pile. Mes propres recherches montrent que ceci est faux (comme d’habitude !!!) Car A3 est tout simplement un pointeur de segments et pointe donc sur le premier segment du programme. Attention car très étrangement, ce pointeur, bien qu’il pointe un segment N’EST PAS un pointeur BCPL mais un pointeur normal (toujours la théorie de shadocks).
6) A4 Selon la bible de l’Amiga devrait pointer sur le début du programme. C'est encore faux. A4 pointe en fait cette fois sur la valeur de la taille de la pile.
7) A5 pointe sur une routine de la dos.library telle qu’il est possible de s’en servir pour appeler des fonctions de cette dos.library, mais à condition de donner l’offset de saut dans A4, la valeur de l'offset étant exprimée par rapport à la «base» définie dans A2. (Très simple n’est-il pas ??).
KESAKO SEGMENT ??
Si vous avez lu attentivement l’article sur l'installateur de boot du CR 20, vous savez qu'un programme exécutable sur disquette est constitué d'un ou plusieurs hunks.
Et bien lorsqu’un programme exécutable est chargé en mémoire, ses hunks « codes » et « datas » sont légèrement modifiés pour devenir des segments chaînés entre eux.
Un segment est constitué comme suit:
- Un long mot contenant la longueur en octets du segment, ce long mot étant compris dans la longueur.
- Un long mot qui est un pointeur BCPL sur le prochain segment si celui- ci existe (sinon le pointeur sera nul). Sachons que ce pointeur ne pointera pas sur le début du prochain segment, mais sur le début plus quatre octets, c’est-à-dire sur le pointeur «prochain segment» du prochain segment, Un jeu d’enfant n'est-ce pas ?
- Les octets du programmes (les voilà tout de même).
Une petite précision : j’ai dit plus haut que A3 contenait un pointeur de segment (non BCPL), donc A3 pointe sur le pointeur « prochain segment » du premier segment, donc il faut bien ajouter 4 pour arriver sur le programme.
Enfin si vous essayez de charger un programme avec LoadSeg de la dos.library, vous obtiendrez en retour dans D1 un pointeur BCPL (cette fois) sur le premier segment. En multipliant cette valeur par quatre, vous aurez donc “l’adresse” du premier segment, cette adresse contenant le pointeur BCPL sur le prochain segment (ou zéro s’il y en a pas). En examinant la mémoire avec un utilitaire quelconque, vous pourrez vous rendre compte que le long mot de longueur existe bien même s’il n’est jamais pointé.
LE PLAN DE BATAILLE
Pour parvenir au but que nous nous sommes fixé, il suffira de faire en sorte d’avoir un programme d’au moins deux segments, de sauvegarder certains paramètres utiles dans le deuxième segment tant qu’il fait partie du premier programme. Une fois ces paramètres transmis, couper adroitement (beaucoup plus adroitement que le CBACK du Lattice C s’il vous plaît !) Le premier segment de la chaîne afin d’obtenir deux programmes distincts. Enfin démarrer à partir du premier programme le deuxième programme à l’aide de CreatéProc puis de rendre la main au CLI.
Un tel programme doit être écrit avec une certaine rigueur, voyons tout cela point par point.
LE PROGRAMME
Il se présente comme un fichier include écrit pour Devpac 2 qui sera à utiliser en lieu et place de easystart.i (répertoire mise) qui permet seulement de démarrer à partir du workbench. Les utilisateurs de macro-assembleurs dignes de ce nom tels que l’assembleur du Lattice, de l’Az- tec, Metacompco, etc. pourront adapter ce programme sans aucune difficulté. Les obstinés de K-SEKA n’ont que leurs yeux pour pleurer.
Les labels commencent par un souligné afin d’éviter des redondances avec les labels de vos propres programmes.
Un assemblage conditionnel assure la présence des autres fichiers inclu- de nécessaires. Il est supposé que votre programme comportera au moins la directive include «exec execjib.i».
Le programme commence par “section backstartO.code”. La directive d'assemblage section assure la formation d’un segment chaque fois qu’elle est utilisée. Donc le programme sera constitué d’autant de segments qu’i! Y aura de “section” dans le source. Sur beaucoup d’autres assembleurs la directive d’assemblage équivalente est CSECT ou encore DSEG.
Ensuite on sauvegarde dans le deuxième segment le nombre de caractères de la chaîne de paramètres et les registres transmis par le CLI puisque nous avons vu que tout cela pouvait être utilisé.
Le programme recherche l'adresse de sa propre tâche afin de pouvoir tester en pr_CLI si le programme a été lancé depuis le CLI ou le work- bench. Le cas workbench ne sera pas expliqué Ici : ce n’est que du très classique.
De la mémoire est réservée. On y recopie la chaîne de paramètres. L’adresse de la mémoire réservée est sauvée dans le deuxième segment. On ouvre la dos.library. l’adresse de base de celle-ci sera sauvée dans le deuxième segment. Ceci vous offre donc la possibilité d’appeler la dos.library dans votre programme sans avoir à l’ouvrir auparavant puisque c’est déjà fait. Voyez dans le programme d’exemple. Mais plus encore, mieux vaut ne pas ouvrir une deuxième fois cette librarie et surtout IL NE FAUT PAS LA FERMER, que vous l’ayez ouverte ou non, sous peine d’un gourou au moment de rendre la main. La raison à cela ? C’est assez compliqué et je n’ai pas la place de fournir une explication exhaustive qui satisfasse les puristes. Disons simplement que le programme ne devant plus dépendre ni du CLI ni du workbench, le système considérera qu’il utilise la dos.library “interne” elle-même ouverte en permanence. Si vous fermez le DOS, c’est cette librairie “interne” qui sera fermée et le système ne saura plus comment rendre la main en supprimant le tâche lorsque votre programme arrivera à sa fin.
Suivant les déclarations faites dans votre propre source (voyez à ia fin du programme d’exemple, mais dans tous les cas, ces déclarations sont obligatoires), on ouvre ou non la console courante. Ceci afin de permettre la sortie éventuelle de messages dans le CLI. Attention : si vous avez demandé l'ouverture, c’est votre programme qui devra s’occuper de la fermeture. Ne pas fermer la console courante empêcherait la fermeture de la fenêtre par une autre programme comme "endcli” par exemple et tout simplement.
L’Instruction lea _start_backstart-4(pc),a0 (à vos souhaits !) Permet de récupérer dans le premier segment du programme, le pointeur BCPL sur le deuxième segment. Ce pointeur BCPL est rangé ensuite dans D3 car c’est là une condition d’entrée de la routine CreateProc,
Ensuite, on prend dans pr_CL! Le pointeur BCPL sur la structure Com- mand Line interface, on obtient l’adresse véritable en multipliant ce pointeur par 4, ce qui permet d’aller chercher en cli_Module le pointeur BCPL sur la chaîne de segments. Bien sûr ce pointeur doit lui aussi être multiplié par 4. On a alors l’adresse véritable du pointeur BCPL sur le deuxième segment. Ce pointeur est effacé par clr.l (a2) et à ce moment le système considérera que notre programme n’est constitué que d’un seul segment.
Enfin, on initialise les registres de façon à satisfaire aux autres conditions d’entrées de CreateProc et ainsi le processus peut être créé. Il reste à rendre ia main. A ce moment, le système libérera la mémoire occupée par le premier segment et par lui seulement. La mémoire occupée par le reste du programme est toujours réservée, comme cela doit être sur un Amiga.
Voyons maintenant la fin du programme.
La directive “section backstartl .code” permet de définir un deuxième segment.
On récupère ensuite la chaîne de paramètres, sa longueur, et le contenu des registres normalement transmis par le CLI. On saute au programme principal. Lorsque l’exécution de celui-ci est terminée, on libère la mémoire réservée pour la chaîne de paramètres, puis on libère la mémoire occupée par le programme par UnLoadSeg. Je ne peux pas m’empêcher de vous signaler une autre énormité de la bible de l’Amiga: celle-ci nous dit qu’un Process peut être arrêté par UnLoadSeg, C’EST FAUX ! UnLoadSeg ne fait que libérer la mémoire utilisée par le Process pile et structure comprise, mais le programme n’est pas arrêté ni supprimé de la liste des tâches pour autant. Ceci devant tout simplement se produire, que UnLoadSeg ait été employée ou pas, lorsqu’une instruction rts dépilera l’adresse de la routine de traitement prévue à cet effet et placée sur la pile par le système lors du CreateProc.
CONCLUSION
Je me permets de vous rappeler quelles sont les contraintes pour utiliser ce fichier include.
- Votre programme doit commencer par le label _main
- Quelque part dans votre programme vous devez faire les déclarations suivantes :
1) _BackgroundlO de.! X
si x = 0 la console courante ne sera pas ouverte
si x > 0 la console courante sera ouverte, ce qui permet la sortie aisée
de messages d'ep-tête.
2) priorité dc.l x
Ceci est la priorité que vous accordez à votre programme. En général on utilisera x = 0
3) _stack dc.l x
Ceci est ia taille de la pile. La taille standard est pour x = 4000
4) _progname dc.b ‘xxxxxx’,0
Chaîne de caractères définissant à l’ordinateur le nom de votre programme, ce qui est indispensable puisque le nom transmis par le CLI a été “oublié”.
Ce procédé fonctionne parfaitement sur kickstart 1.2 et 1.3, comme vous pourrez vous en convaincre en appelant le programme d’exemple plusieurs fols depuis la même fenêtre CLI.
Par contre, bien que je n’ai pas encore eu l’occasion d’essayer, je pense qu’il est probable que cela ne marchera pas sur le kickstart 2.0 des “atroamils” puisque la dos.library a été réécrite en C, mais il suffira sans doute seulement de supprimer les “multiplications BCPL” pour obtenir le même résultat.
Voilà tout est dit. Il me reste a vous quitter en attendant d’avoir la joie de vous retrouver dans les pages de la nouvelle formule de l’ANT qui, tout comme un programme peut se décrocher du CLI, s’est décrochée de Commodore Revue. A(bonnez-vous vite !) Bientôt.
F. Mazue
aime chatouiller tous les CLI
* **************************************************************
* *
* Programme: fichier "include" Backstart.i
* Fonction: permettre le lancement d'un programme assembleur *
* en tâche de fond *
* Auteur: F MAZUE
* Assembleur: Devpac 2 (the only one !)
* **************************************************************
IFND EXEC_NODES_I include "exec nodes.i" ENDC
IFND EXEC_MEMORY_I include "exec memory.i" ENDC
IFND EXEC TASKS I
IfâîiÉfefeSr
lea pr_MsgPort(a4),a0 CALLEXEC WaitPort lea pr_MsgPort(a4), aO CALLEXEC GetMsg move.l dO,_returnMsg
bsr _OpenDos
move.l d5,d0 move.l a5,a0 jsr _main
move.l dO,-(sp) bsr _CloseDos
CALLEXEC Forbid move.l _returnMsg,al CALLEXEC ReplyMsg
move.l (sp)+,dO rts
_OpenDos lea dosname,al moveq $ 0,d0 CALLEXEC OpenLibrary move.l dO,_DOSBase rts
_CloseDos move.l _DOSBase,al CALLEXEC CloseLibrary rts
include "exec tasks.i"
ENDC
IFND LIBRARIES_DOS_I include "libraries dos.i"
ENDC
IFND LIBRARIES_DOS_LIB_I include "libraries dos_lib.i" ENDC
IFND LIBRARIES_DOSEXTENS_I include "libraries dosextens.i" ENDC
récupère conditions d'entrée du WorkBench
sauve code de retour
section backstartO,code
_start_backstart move.l dO,_NbParms sauvegarde longueur chaine de paramètres
movem.l al-a6,_Registres_CLI
move.l d0,d5 sauvegarde longueur chaine de paramètres
move.l a0,a5 sauvegarde du pointeur de paramètres
restitution code de retour
sub.l al,al CALLEXEC FindTask move.l d0,a4 tst.l pr_CLI(a4) beq from Workbench
lancement depuis CLI ?
Move.l d5,d0
move.1 (MEMF_PUBLIC|MEMF_CLEAR),dl CALLEXEC AllocMem move.l dO,_MemParms move.l d0,a3 subq l,d5 _copie_parms move.b (a5)+,(a3)+ dbf d5,_copie_parms
cette directive d'assemblage est INDISPENSABLE
section backstartl,code
move.l _NbParms,dO récupère longueur chaine de paramètres
move.l _MemParms,aO récupère paramètres
movem.l _Registres_CLI,al-a6 récupère registres CLI
movem.l dO aO,-(sp)
jsr _main saut au programme principal
move.l d0,d7 sauvegarde code de retour
movem.l (sp)+,dO al pour libérer la mémoire
bsr _OpenDos
si _BackGroundIO est défini à 1 dans _main
la console courante est ouverte afin de permettre la sortie d'un message
tst.l BackGroundIO
beq _no_output
move.l _current_output,dl
move.1 MODE_OLDFILE,d2
CALLDOS Open
move.l dO,_Backstdout
_no_output lea _start_backstart-4(pc),aO move.l (a0),d3 move.l d3,_seglist clr.l (aO)
move.l pr_CLI(a4),al add.l al,al add.l al,al
move.l cli_Module(al),a2 add.l a2,a2 add.l a2,a2 clr.l (a2)
move.l _progname,dl
move.l _priorite,d2
move.l _stack,d4
CALLDOS CreateProc process créé
bsr _CloseDos
moveq RETURN_OK,dO rts seg pour createproc segment coupé de la liste
from Workbench ici tout est classique
conversion BCPL
conversion BCPL coupé du CLI
clean exit
CALLEXEC FreeMem move.l _seglist,dl CALLDOS UnLoadSeg move.l d7,d0 rts
dosname DOSNAME even
_current_output
dc. b '*',0 even
_Backstdout de. 1 0
_DOSBase de. 1 0
_seglist de. 1 0
_returnMsg
dc. l 0
_NbParms
dc. l 0
_MemParms
dc. l 0
mémoire occupée par le programme libérée restitution code de retour process retiré du système
console courante
A. N.T. Nouvelle formule
uniquement par abonnement Page 34
no_message moveq 0,d0 lea int_name,al CALLEXEC OpenLibrary tst.l dO beq exit
move.l dO,_IntuitionBase
lea new_window,aO CALLINT OpenWindow tst.l dO beq exitl move.l d0,window
move.l window,a0 move.l wd_UserPort(aO),aO
moveq 0,dl
move.b MP_SIGBIT(aO) ,dl moveq l,d0 rol.l dl,dO CALLEXEC Wait
exit2
move.l window,a0 CALLINT CloseWindow
exitl
move.l _IntuitionBase,al CALLEXEC CloseLibrary ouvrir intuition library ;OK ?
ouvrir fenêtre OK ?
pointer sur port User de la fenêtre
N° signal port User construire le masque du signal de la fenêtre attendre signal
exit
moveq 0,d0 clean exit
Registres_CLI
dcb.l 6,0 ;6 registres sauvegardés
rts
window
dc. l 0
* ****************************************************
*
* Programme: essaibackstart.s
* Auteur: F MAZUE
* Fonction: permettre l'essai de backstart.x
* Lancement: CLI ou Workbench
* ****************************************************
int_name INTNAME even
_IntuitionBase
dc. l 0
new_window
dc. w 150
dc. w 100
dc. w 350
dc. w 30
dc. b 0
dc. b 1
include "exec execbase.i" include "exec memory.i" include "exec exec_lib.i" include "intuition intuition.i" include "intuition intuition_lib. I"
include "misc backstart.i" ; à la place de easystart.i
dc. l CLOSEWINDOW flags IDCMP
de.1 WINDOWDEPTH|WINDOWCLOSE|WINDOWDRAG
dc. l 0 pas de gadgets
dc. l 0 pas d'images
main ce label est obligatoire en début de tout
programme utilisé avec backstart.i tst.l dO lancement depuis CLI ?
Beq no_message
* Un programme utilisé avec backstart.i
* peut sans problème utiliser la dos.library
* mais NE DOIT EN AUCUN CAS ni l'ouvrir ni la fermer
dc. l titre
dc. l 0 écran courant
dc. l 0 pas de bitmap
dc. w 300
dc. w 10
dc. w 300
dc. w 10
dc. w WBENCHSCREEN titre
move.l _Backstdout,dl
move.l message,d2
move.l (end_message-message),d3
CALLDOS Write sortie message
move.l _Backstdout,dl
CALLDOS Close fermeture du CLI courant
obligatoire
* Il est recommandé de fermer la console
* courante le plus tôt possible
* Il est obligatoire de la fermer tôt ou tard
* avant de rendre la main
dc. b 'essai pour Backstart par F Mazué',0 even
message
dc. b 'le CLI est libéré',$ 0A,$ 0D endjnessage even
déclarations
indispensables
dans
votre
programme
pour
l'utilisation
de
backstart.i
_BackGroundIO
dc. l 1 _priorite
dc. l 0 _stack
dc. l 4000 _progname
dc. b 'essai_backstart',0 even
ATTENTION ! DERNIER A.N.T.
INTEGRE A COMMODORE REVUE
NOUVELLE FORMULE UNIQUEMENT PAR ABONNEMENT
l
VOIR PAGE 34
75010 PARIS S 42.06.50.50
ouvert tous les jours sauf dimanche SAV : 54, rue René-Boulanger 75010 PARIS S 42.06.77.78
ouvert du mardi au samedi métro Strasbourg St-Denis • Parking à proximité Magasins ouverts de 9 h 45 à 13 h et de 14 h à 19 h
LE GRAND SPECIALISTE
INFORMATIQUE
39-41, rue Paul-Chenavard 69001 LYON S 72.00.96.96
Pour tout achat, GVL vous offre 1 heure de stationnement sur présentation du ticket de parking du Quai de la Pecherie ouvert du mardi au samedi de 9 h 45 a 13 h et de 14 h a 19 h
ACHETER UN PC CHEZ GENERAL, C'EST ACHETER CHEZ LE PLUS IMPORTANT SPECIALISTE INFORMATIQUE Independent EN FRANCE
I PERIPHERIQUES ET ACCESSOIRES
SCANNERS ET DIGITAUSEURS
55FTTC
ÇÇFTTC
ÇÇFTTC
95FTTC
65FTTC
1190FTTC
950FTTC
Tapis souris
rallonge considérablement la durée de vie de votre souris
ÇÇ FTTC
99 FTTC
99 FTTC
LECTEURS
ROCTEC
RF 302 c externe 3"l 2 ultra plot - garantie 1 an RF 542 c externe 5" 1 4 ultra plat - garantie 1 an FERROTEC externe 3"1 2 externe 5"l 4 MITSUMI interne 3"l 2 pour A 500 et A 2000
890 FTTC
1390 FTTC
rsi-iud
KS'iaa
1290 FTTC
lit»
le plus grand choix de rubans en France, à partir de 1
SUPPORTS
Support souris
Se fixant sur le tôfé du moniteur
Support imprimante pour imprimante 80 et 132 col.
Ovet emplacement pour rome de popier Copy holder
support document avec pince et réglette coulissante Magic stage
support ou dessus du clavier pour déplorer sa souris en toute liberté Magic bar
pour arracher les bondes caroll avec un gain de temps appréciable Meuble informatique au design professionnel, pratique et fonctionnel
Meuble imprimante
ENTRETIEN
mis
illor
Disquettes de nettoyage 3"1 2
livrée avec sa recharge de nettoyant antistatique Compunett
nettoyant bureautique pour tout matériel informatique Souffle-Ront
gaz de sécurité enlevant la poussière et donc les risques d'encrassement
Photos non contractuelles
DISQUETTES
1 Disquettes 3"l 2 DFDD 135 TPI 1 fl certifiées 100 % error free 1 1 Disquettes 5"l 4 DFDD I certifiées i 00 % error free
2,90 FTTC 1
1
2,90 FTTC |
-1
MUSIQUE
Sompler Master Sound
490 FTTC
Sampler Perfect Sound
850 FTTC
AMAS + interface MIDI
950 FTTC
Interface MIDI
350 FTTC
Interface MIDI PRO + sampler
590 FTTC
SUPPORTS - ENTRETIEN
SOURIS
Chic mouse
290 FTTC
Contriver mouse
290 FTTC
Contriver trackboll
390 FTTC
Souris d'origine Commodore 1
470 FTTC
| CAMERON - GARANTIE 3 ANS
Handy mouse blister
299 FTTC 1
Hondy mouse pro livrée avec son tapis, son support et so housse
399 FTTC I
Handy mouse de luxe : de même que handy Pro avec
799 fttc |
| en plus un logiciel dessin boute résolution |
CONNECTIQUES
Cable péritel TV + son
u-ifiüa
Cable imprimante
ïR.isa
Cable modem nul
ci'isa
Rallonge joystick 2 mètres
¦¦Uid
Rallonge joystick 20 cm
K'iud
Cable minitel
tH'Hïa
Cable Hi-Fi
Rallonge moniteur 2 mètres
K*Ka
Coble à moniteur 1084S
BF-l'lUÜ
Cable à moniteur Multisync
K-i'Süa
Digitaliser Vidi rrrPTTTSS
25 images seconde.
320 x 200 en 16 niveaux de gris Digi view Gold 4.0
le meilleur logiciel d'acquisition vidéo
CAMERON
Handy scanner type 4 + OCR
16 niveaux de gris, ii, 6,5 cm
HOUSSES
I Housse souris en véritable peluche.
SUPER SYMPA !
Housse davier
A 500
&m
fgSD
Housse davier
A 2000
Housse A 500
+ moniteur
££83
Housse A 2000
tffSl
+ moniteur
Housse imprimante
80 cols
£581
Housse imprimante
132 cols
Speed King garantie un on N-i-«nc Speed King
autofire garantie un on ik'VAiléd Navigator - garantie un on IF-VIUAJ Top star
l'incassable - garantie un an h'i'UU
Pro 5005 garantie un on D’îüia
Jet Fighter - garantie un mois I’-VAAld Supercharger - garantie un mois g,T*lllW
Handy scanner type 10
16 niveaux deqris, 16 dpi,
10,5 cm
Handy scanner type 10 OCR
de même que type 10 mais livré avec un logiciel de reconnaissance de caractères
Handy scanner type 6 couleurs
256 couleurs t tramage, 64 MM rrrTtT â et pbotolab
JOYSTICKS
LE GRAND SPECIALISTE
rAMIGA 2000
AMIGA 2000 UNE MACHINE CONÇUE POUR EVOLUER :
FICHE TECHNIQUE :
L'Amiga 2000 comporte une mémoire de un mègaoctet, des connecteurs internes, trois unités de disques internes. Il offre également la possibilité d'exécuter des tâches au moyen d’un coprocesseur dans les fenêtres AMIGA. AMIGA 2000 est un ordinateur de Commodore dont la mémoire standard a été ougmentèe par rapport à celle de l'AMIGA 1000 :
Il comporte également des connecteurs internes en vue d'une extension ultérieure et offre la possibilité d'ajouter la compatibilité logiciel IBM PC XT au moyen d'une carte d'extension, la carte A2088.
En plus des connecteurs d'extension, propres à Amiga, l'Amiga 2000 comporte un bus IBM PC AT incorporé. Par conséquent, l'Amiga 2000 peut non seulement exécuter les logiciels IBM mais permettre à vos applications IBM d'avoir accès aux extensions IBM PC, notamment aux cartes 80286 et 80386.
I .10. i".i ¦ -
F*"
r > • -
1 n :
- LT |
«Ht!
-y
AMIGA
Crédit
220,60
Réf. : 1982
AMIGA 2000
+ 20 disquettes vierges + joystick + compilation de jeux.
Crédit : Amiga 2000 :5890 F TTC.
Versement 90 F + 36 mensualités de 244,50 F. EaiiitJII l,e échéance 90 jours. Coût total 3002,00 F. TEG 23,94 %.
AMIGA 2000 + moniteur couleur
+ 20 disquettes vierges + joystick + compilation de jeux.
Crédit : Amiga 2000 couleur : 7490 F TTC. 7TT!B!
Versement 90 F + 48 mensualités de 260,20 F. ImAJH lre échéance 90 jours. Coût total 5089,60 F. TEG 23,94%.
AMIGA 2000 + moniteur couleur
+ GVP 30 Mo série 2 autoboot + 20 disquettes vierges + joystick + compilation de jeux. Crédit : Amiga 2000 couleur GVP Daf • 7030
30 Série 2 autoboot : 11890 FTTC.
Versement comptant 90 F + 48 mensualités de 384,70 F. lre échéance 90 jours. Coût total 8169,60 F. TEG 19,92%.
AMIGA 2000 + moniteur couleur
+ GVP 30 Mo série 2 autoboot + carte émulation XT + lecteur 5" 1 4 + 20 disquettes vierges + joystick + compilation de jeux. Crédit : Amiga 2000 couleur GVP 30 Série 2 autoboot : 14890 F TTC. Réf • 0757
Versement comptant 90 F + 48 mensualités • •
de 472,70 F. lreéchéance 90 jours. Coût total 8169,60 F. TEG 19,92 %.
Avec moniteur couleur + extension mémoire 512 Ko + 20 disquettes vierges + joystick + compilation de jeux.
Crédit : AMIGA 500 + 1084 1 méga :
5490 F. Versement comptant 90 F + 30 mensualités de 259,20 F. Ve échéance 90 jours. Coût total :2376 F. TEG: 23,94 %.
Réf. : 1982
Réf. : 7026
A500 + kind words + fusion point + indiana jones + kick off + FI8 intercep- tor + 20 disquettes vierges + joystick + compilation de jeux.
Crédit : AMIGA STARTER KIT : 3690 F. Versement comptant 90 F + 18 mensualités de 256,20 F. T échéance 90 jours. Coût total : 1011,60 F. TEG: 23,94 '
Réf. : 3869
LE MUST
FICHE TECHNIQUE :
Microprocesseur : Motorola 68030 (32 hits) et coprocesseur arithmétique 68881 à 16 Mhz à 25 Mhz.
Mémoire : 1 Mo de mémoire vidéo, extensible à 2 Mo sur la corte mère. 1 Mo de mémoire système, extensible 6 4 Mo sur la corte mère. Modes graphiques : Palettes de 4096 couleurs, très haute résolution 1280 x 512. Horloge temps réel interne.
Connecteur d'extension : 4 connecteurs d'extension 32 bits zorro III (compotible avec connecteurs A2000) ovec 2 connecteurs d'extension PC AT. 1 connecteur d'extension vidéo, 1 connecteur bus local 68,30,32 bits, 200 broches, pour mémoire coche et processeurs.
Interfaces : Connecteur 23 broches AMIGA vidéo, connecteur 15 broches. Sortie son stéréo : Connecteur externe 5CSI25 broches, connecteur interne SCSI 50 broches. Connecteur série, parallèle, disque externe 2 connecteurs souris manette de jeux croyon optique.
Disque dur 40 Mo.
16 Mhz sans écran
Crédit : AMIGA 3000. Versement 890 + 48 mensualités de 800,10 F. 1" échéance 90 jours. Coût total : 13404,80 F. TEG : 18,96
16 Mhz écran 14" multisynchro _
Crédit : AMIGA 3000. Versement 690 n-c . | ci7
+ 48 mensualités de 940,20 F.
1" échéance 90 jours. Coût total : 15129,60 F. TEG : 17,88 %.
25 Mhz sans écran Crédit : AMIGA 3000. Versement 690
+ 48 mensualités de 940,20 F. T'échéance 90 jours. Coût total : 15129,60 F. TEG 25 Mhz écran 14" multisynchro _
Crédit : AMIGA 3000. Versement 390 p -1 . I cxo
+ 48 mensualités de 1096,90 E.
1" échéance 90 jours. Coût total : 17651,20 F. TEG : 17,80 %.
25890FTTC
Réf. : 1566
30690FTTC
30690FTTC
Réf. : 1568
17,88 %.
35390FTTC
CARTE AURORE
Acheter a crédit sans aucune formalité ! Vous avez fait votre choix ?
Présentez simplement votre carte Aurore Generale :
Vous signez et vous repartez immédiatement avec vos achats sans avoir a I verser un seul centime comptant. La carte Aurore c'est la liberté pour vos achats chez General. Quand vous utilisez votre reserve, elle se reconstitue automatiquement par vos versements. Elle devient donc a nouveau disponible pour réaliser ce dont vous avez envie.
ET DE PLUS, ELLE EST GRATUITE.
AMIGA 500 I
CARACTÉRISTIQUES :
Pour les utilisateurs particuliers. Commodore a lancé l'AMIGA 500 avec lequel il conquiert leur cœur et leur portefeuille.
La puissance d'AMIGA : la clavier de l'A 500 est incorporé dans le boitier système. Ses dimensions sont les suivantes : 47 cm de largeur sur 6,35 cm de hauteur de 32 cm de profon deur. Un microprocesseur Motorola 68000 olimente le système. C'est ce même microprocesseur qui constitue le cœur des ordi-
j. -'-' nateurs AMIGA 1000 et Amiga 2000 ainsi que du Macintosh de
- ““ÜÜ Apple et du ST de Atari. L’Amiga 500 utilise également les
puces spécialisées Amiga destinées à améliorer les fonctions raphiques et sonores. Les fonctions d animation et l'accès irect à la mémoire (DMA). L'A 500 utilise la version "FAT' (84 broches) de la puce personnalisée Agnès et un circuit prédiffusé (Gary) qui comporte la logique de sélection des puces et une partie du contrôleur de disquettes.
Réf. 0526
500 : + 20 disquettes vierges + compilation de jeux + joystick. -t..
: Amiga 500 : 3190 F TTC Ire échéance 90 jours. Versement 90 F + 18 mensualités de
F. Coût total 870,80 F. TEG 23,94 %.
+ 20 disquettes vierges + compilation de jeux + extension méméoire 512 Ko + joystick.
Crédit : AMIGA 500, 1 méga : 3390 F.
Versement comptant 90 F + 18 mensualités de 234,90 F. 1" échéance 90 jours. Coût total :
928,20 F. TEG: 23,94 %.
E0**BR«.=7JO6 es*53
i
AMIGA HOME OFFICE KIT
AMIGA STARTER KIT
A500 + kind words + page setter + info file + cale font + artist's choice + 20 disquettes vierges + compilation de jeux + joystick.
Crédit : AMIGA HOME OFFICE KIT :
3690 F. Versement comptant 90 F + 18 mensualités de 256,20 F. T" échéance 90 jours. Coût total :1011,60 F. TEG: 23,94 %.
Réf. : 3868
AMIGA 500 "GONFLEE" ¦ AMIGA 500 SUPER PACK GENERAL
PARIS 10e
42. 06.50.50
LYON 1er
72. 00.96.96
Réf. : 0446
AMIOt *
4
4 4
4
4 4
AMIGA
1
an
¦ i
II
LOGICIELS
PARIS 10e
42. 06.50.50
LYON 1er
LE GRAND
UTILITAIRES
TRAITEMENT DE TEXTE:
- Kindword
- Excellence
540 ,m 1990 fITC
ANIMATION :
- Studio animation
- Delux paint 3
- Fantavision
990 mc
755 FFTt 399 me
TABLEUR :
- Maxiplan
- Maxiplan +
650 F"c 1350 mc
BASE DE DONNÉES :
- Superbase pro
1490 FITC
PAO:
- Page setter
- Publishing partner (F)
780 FITC 2490 FTTt
TITRAGE VIDÉO :
- Vidéo titler
- Pro vidéo +
- Deluxe vidéo 3
990 mc
2690 ,m 890 mc
LANGAGE:
- GFA basic
AZTEC C
750 FTT 1790 mc
MUSIQUE :
- Pro 24
- Track 24
- Amas
- Music x
2690 Fnc 495 FTTC 990 Fnc NC
GESTION FAMILIALE :
- Gestcompte
290 Fnt
WelHris
235 F"c
Tortues Ninja
245 FIK
Captive Roaocop 2
249 mt
245 FFTt
Geisha
260 mt
Chose HQ 2
195 mt
Crystals of arborea Pôle 500
225 mt
255 FT,t
Lotus esprit turho
245 mt
Mid winter
269 mt
Pang
195 mt
F19
285 FT,t
Explora
295 mt
ST Dragon
225 mt
Narco police
245 FT,t
Last ninja remix
265 mt
Wings
295 mt
Power monger
245 FTTt
Battle command
195 mc
Wrath of the démon
199 mt
Kick boxing
285 FTTt
Prince of persia
245 mt
Mystical
235 mt
Battle storm
295 mt
Dick trocy
245 mt
Awesone
325 mt
Golden axe
235 mt
Opération steahh
295 mt
Crime ne paie pas
NC
Badland
245 mt
Alphawaves
259 mt
Cadaver
245 mt
Carthage
235 mt
Indy 500
225 F"t
Ml tank plotoon Speed bail 2
255 mt 245 F"t
Epie
245 mt
Spindizzy 2
245 mt
Lemminjs
NC
E-Swat
245 f"t
Mean streets
245 FI,t
- Bosse des maths 6e
245 mt
Narco police
NC
5*
245 F"t
Ultime V ,
29 FTTC
4e
245 Fm
Puzznik
220 mt
3e
245 f"t
Team suzuki
NC
2"1
245 mt
Vaxine
235 Fm:
1™
245 mt
Toki
245 mt
- ADI + environnement
Super skweck
195 mt
CM1 Français
265 FTTt
Art de la guerre
295 mt
CM1 Math CM2 Français
265 mt 265 FTTt
COMPILATION
CM2 Math
265 FTTt
Dedic
295 mt
6e Français
265 mt
lOMega hit vol 2
299 rnc
6e Math
265 mt
Battantes
295 mt
6e Anglais
265 mt
Fous du volant
245 mt
5e Français
265 FI"
Géant du sport
295 mt
5e Math
265 mt
Fous du foot
235 mt
5e Anglais
265 mt
Challengers
295 FI,t
ADI Fronçais
195 mt
Guerriers ninja
295 mt
ADI Math
195 FTTC
Monde des merveilles
259 F"t
ADI Anglais
195 mt
Chevaliers
245 FI,t
- Donald alphabet magique Amiga 225 Fnc
Sega arcade turbo
195 mc
Mickey et le zoo en folie (nomme)
Sporting aold
245 mt
225 mt
Wheels ot fire
295 mt
- Dingo express forme et couleur 225 FrK
NRJ
275 FI,t
VTA
- Orthogus tome 1 (CM-Collège)
(nrnmmnirp orthnnrnnhp)
245 mt
- Labyrinthe
yiuiiiiiiuiic ui iiiuuiuuiic
- Orthogus tome 2 (Collège)
245 mt
Orfophus (8-10 ans) (orthographe) 275 FTTt
- Mathex CE CM
245 mt
6 5. 245 me
Cent calcul (8-1 Anglomanial (8-10 ans) (anglais) Lexicos (8-12 ans) (vocabulaire)
- Labyrinthe d'errare
(11-14 ans) (orthographe)
- Labyrinthe aux mille calculs (11-14 ans) (math)
- Labyrinthe anglomanie (11-14 ans) (anglais)
- Labyrinthe des pharaons (4e) (histoire)
275 FTTt 275 mt 275 lm 275 f"c
275 FTTC
275 F"c
275 FTTC
4 3e 245FIK
6 3' 295mt
- Révision Orthographe grammaire math 6 5* 350 fTTC
4 3- 350 FTTt
- Picsou chasseur de trésor 220 mt
(9-12 ans)
- Castors juniors dans la forêt 220 mt
(7-10 ans)
- Les trois petits cochons 220 Fnc
s'amusent (4-6 ans)
IMPRIMANTES
DESKJET 500
3 ans de garantie dont 1 nn sur
site.
Une qualité laser à un petit prix, vous connaissez ?
Cette imprimante existe, son nom la Deskjet. Elle produit des courriers et des documents, grâce à sa technologie jet d'encre, qui valoriseront votre image de marque professionnelle.
Réf. 1539
rttc
Tél : 42 06 00 66 - Fax : 42 38 24 23
Général a décidé une fois de plus de s'imposer comme le leader. Pour cela,
Général vient de mettre à votre disposition,un département qui va enthousiasmer les utilisateurs professionnels.
' Notre mission: Vous permettre d'optimiser votre investissement et de vous donner le meilleur rapport qualité prix.
Notre puissance: Une équipe de conseillers techniques de haut niveau vous accueillant dans notre show-room.
Nos atouts: Des services vous assurant une sécurité maximum dans un temps minimum, des formations à la hauteur
L'imprimante personnelle pour Micro et Minitel, 80 colonnes, 155 caractères par seconde, Qualité courrier à 32 eps, Tracteur poussant pour disposer immédiatement du listing, Position "Parking". Insertion unitaire de feuille, Bac automatique de 100 feuilles, Interface Minitel en options, Interface parallèle 8 Ko buffer en standard.
Réf. 3662
GENERAL PRO
24 aiguilles. Largeur d'impression :
120 eps 2 ans de garantie GENERAL.
CITIZEN 1 24 D
279°
1350
MT 81
1 an de maintenance gratuite sur site.
L'OKI 400 est de petite taille, mais ne vous y fiez pas, c'est un outil
puissant et complet pour tous les
travaux de traitement de textes. En effet, elle possède 25 polices résidentes ainsi qu'une annulation H. P LASER JET II ce qui lui contére une
grande convivialité. L'OKI 400 n'a rien à envier à ses consœurs car elle
possède une résolution de 300 points par pouce.
Evr
de vos besoins.
4
4
4
4
4
4 4 4 4 4 4 14
10, bd de Strasbourg 75010 PARIS
SERVICE VPC
6 MODES DE RÈGLEMENT AU CHOIX :
1) EN CONTRE-REMBOURSEMENT : vous ne réglez que lors de la livraison de votre matériel. Prévoir 24 F de frais de contre-remboursement lors d'une expédition P&T et 60 F oar un transporteur (envoi de plus de 5 kg ou d'une valeur de plus de 2 000 F) en sus du forfait transport. Remplissez le bon ae commande ci-dessous. Si vous ne souhaitez pas mutiler votre revue, photocopiez- le ou écrivez-nous sur papier libre ou encore, téléphonez-nous (demander M. BERNARD au
(1) 42 06 50 50, postes 436 ou 441).
2) PAR CARTE BLEUE : vous pouvez nous téléphoner et nous commander le matériel désiré, en nous donnant le numéro de votre carte bleue. Vous pouvez également utiliser le bon de commande ci-dessous.
3) PAR CHÈQUE OU CCP : vous remplissez le bon de commande ci-dessous en joignant le règlement du total de votre commande plus le forfait transport correspondant à l'ordre de GÉNÉRAL VIDEO (voir ci-contre).
4) PAR MANDAT : vous remplissez le bon de commande ci-dessous en précisant aue vous désirez régler par mandat postal ou par mandat-lettre. N'omettez pas de compter le forfait transport (voir ci- dessous). A réception ae votre mandat, nous expédions votre commande.
5) PAR MINITEL : TAPEZ 3615 code GVF, puis choisissez dans notre catalogue Minitel le ou les articles que vous souhaitez commander. Indiquez-nous votre adresse complète, votre
Vous aurez droit a des prix protessionels, livraison sous 24 heures, règlement sur releve de factures.
La vente en gros s’adresse aux entreprises, collectivités, administrations, etc.
Les membres de ces collectivités peuvent se rendre individuellement chez GENERAL, munis d’un justificatif. Il se verront remettre une CARTE COLLECTIVITE qui leur donnera accès aux prix de gros.
Photos non contractuelles
BON DE COMMANDE EXPRES
Je, soussigné, déclare commander à GÉNÉRAL, les marchandises et fournitures ci-après désignées pour expédition à mon adresse indiquée ci-contre.
Je choisis de régler por : [ I Contre-remboursement
I j Carte Bleue I ! Chèque CCP i I Mandat [ J Crédit
' N° de Carte Bleue Date expir. CB
I 1 1 1 I 1 1 i I t 1 1 I 1 1 t ! 1_1_L .j__1
Prénom 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -L-L-L_l
N° 1 1 1 1 Rue 1 1 J_ .1111 1-1-1-1-1-1-1
1 1 1 1 1 [ 1 1 1 Code Postal 1 1 1.1 J-1
vt„. 1 1 1 1 1 1 1 1 1 1 1 ! 1 1 1 1 1 1 J Tét 1 1 1 1 1 1 ! 1 II 1 ! COMOI9I
N 0 Carte Aurore 1_t _1 1___1 L 1 1 L..1-1-1 -1. 1 1 i i
RÉF.
DÉSIGNATION
Pour toute commande la machine et le form
de logiciels, précisez le type de at de(s) disquette(s) désiré(es)
QUANTITÉ
PRIX UNITAIRE
MONTANT
S
Oui, je désire commander le catalogue "LE NOUVEAU GENERALISTE"
35f
BON DE COMMANDE A RETOURNER A GÉNÉRAL, 10 BD DE STRASBOURG, 75010 PARIS
Avez-vous déjà commandé par correspondance chez GÉNÉRAL depuis le 01.09.90 OUI ? NON ?
Date _ -
TOTAL
COMMANDE
1 FORFAIT 1 DÉ PORT
Observations du client :__
Signature
Pour les mineurs, la signature des parents est obligatoire.
1 FRAIS
• CONTRE-REMBOURS.
TOTAL A RÉGLER
2 ) un financement personnalisé : crédit-bail pour tout matériel d’une valeur supérieure à 10.000 F à condition d’avoir au moins deux exercises d’activité. Ce mode de financement vous permet en outre de récupérer la TVA sur les loyers mensuels.
3 ) une formation d’initiation gratuite de votre personnel avec chaque machine vendue (durée 1 2 journée) ;
Pour toute information, contactez M.N’GOM, M.DELPIT ou Mme LE POULL, tél. 42.06.50.50, telex ; 4 ) une formation approfondie, soit dans nos locaux, soit auprès d’instituts spécialisés qui ont notre
214. 034, télécopie 42.38.35.60. confiance tel le prestigieux ALTITUDE 21 ;
Entreprises, nous sommes en mesure de vous proposer les services suivants pour l’acquisitionde ! 5 ) une assistance téléphonique, sans limitation de temps ;
votre matériel chez GENERAL : 6 ) une maintenance sur site au travers de puissants groupes spécialisés tels AMSTI ou MIS ;
1 ) ouverture d’un compte, après la première commande :
Si vous ne pouvez vous déplacer ce service est fait pour vous
numéro de téléphone et votre numéro de Carte Bleue. Si vous souhaitez des renseignements ou une documentation supplémentaire, vous pouvez nous poser vos questions et nous vous répondrons dans les délais les plus courts. Vous pouvez aussi vous amuser sur notre serveur grâce aux concours permanents et gagner de nombreux lots.
6) A CRÉDIT : si vous souhaitez des renseignements détaillés pour l'achat à crédit, vous pouvez joindre Mlle TANIA, Responsable Crédit, au (1) 42 06 50 50, poste 458. Si tout vous paraît clair, vous envoyez le bon de commande ci-dessous en précisant si vous souhaitez verser une partie comptant. Par retour du courrier, nous vous envoyons un dossier de crédit que vous devez nous retourner dûment rempli et signé. Après acceptation de ce dossier, nous vous expédions le matériel. Pièces demandées : pièce d'identité, dernier bulletin de salaire, RIB, quittance EDF ou de loyer informatisée.
• FORFAIT TRANSPORT : 20 F pour 2 softs, 35 F pour 3 softs et plus.
50 F pour les accessoires et les disquettes vierges.
60 F pour les imprimantes.
120 F pour les machines.
(Dom-Tom et étranger, nous consulter).
Ce forfait n'est pas cumulable, c'est-à-dire que si vous commandez un micro-ordinateur plus des logiciels, vous ne payez que le forfait transport machine, donc 120 F. Tous nos matériels sont expédiés en recommandé.
000 F, joindre un acompte de 20 % à la commande
VENTE EN GROS
7e) une tarification étudié en fonction des quantités souhaitées et de votre statut d’entreprise.
ETUDIANTS
NOTRE TARIF COLLECTIVITE EST AUSSI POUR VOUS X
En dehors des prix promotionnels et des actions temporaires GENERAL, vous avez droit à un tarif spécial sur l’ensemble des produits de notre magasin. L’inscription pour obtenir la CARTE ETUDIANT GENERAL est immédiate et gratuite.
CONDITIONS DE VENTE ce catalogue n est valable que pour le mois de sa parution et remplace les précédentes éditions. Produits proposés dans la limite des stocks disponibles Nos promotions ne sont pas cumulables
PLUS DE 6500 ENTREPRISES ET COLLECTIVITES NOUS ONT DEJA FAIT CONFIANCE : VOUS AUSSI, OUVREZ UN COMPTE CHEZ GENERAL
INITIATION
Le FILEREQUESTER de la ARP.LIBRARY
Chaque programmeur se heurte un jour ou l’autre au problème qui consiste à demander à l’utilisateur du programme le nom d’un fichier : chargement, sauvegarde, datas,....
Cette interaction est une des routines de base de la "arp.library” ; elle s’appelle FileRequest. Tout le monde a déjà vu cette routine en action : elle ouvre une fenêtre munie de 3 gadgets booléens (OK, PARENT, CAN- CEL), d’un gadget vertical proportionnel pour visualiser tous les directo- ries et fichiers du chemin courant, et de 2 gadgets de chaîne pour entrer au clavier le nom du chemin et celui du fichier, on peut aussi cliquer sur le bouton droit de la souris pour changer de drive. C’est ce requester qui s’ouvre quand on demande à charger un fichier avec l’assembleur DEV- PAC. Ceux qui ont déjà programmé ce requester savent que cela prend du temps pour une tâche finalement triviale et fastidieuse. Celui-ci est-il au moins simple à utiliser ? La réponse est OUI... (ouf !).
La seule chose nécessaire est bien entendu la librairie ARP qui est dans le Domaine Public et qui se trouve dans le tiroir LIBS: de beaucoup d’utilitaires courants (comme DEVPAC). Il suffit de la copier dans le tiroir LIBS: de sa disquette système. On peut en connaître la version en tapant sous CLI :
version arp.library . Les sources qui suivent sont valables pour la version
34. 1 et au-delà.
Deux types de sources sont donnés : en C (LATTICE 4.01) et en assembleur (DEVPAC2), ce qui devrait satisfaire la plupart des programmeurs (pour le GFA BASIC, voir le n° 24 de juin 90).
PROGRAMMATION EN C
Ce qui va nous permettre de préciser les structures nécessaires. En effet, ouvrir le requester: c’est bien, récupérer les réponses: c’est mieux ! Une seule structure est ici nécessaire : elle s’appelle FileRequester et elle décrit les caractéristiques de la fenêtre que l'on veut ouvrir :
struct FileRequester
UBYTE *fr_titre * titre de la fenêtre *
UBYTE *fr_file * nom du fichier *
UBYTE *fr_dir * nom du chemin *
struct Window *fr_window * fenêtre où apparaît le Req. *
UBYTE fr_flags * fixé à 0 *
UBYTE fr_reservedl * fixé à 0 *
APTR fr_fonction * UserFunction (fixé à 0) *
LONG fr_reserved2 * fixé à 0 *
1;
Ce qui est directement utilisable :
- fr_titre est un pointeur sur la chaîne qui contient le titre voulu pour le requester (du style “Mon Requester” pour rester traditionnel...).
- frjile est un pointeur sur un tampon qui contiendra au retour le nom du fichier choisi (plus un octet à 0).
- fr_dir est un pointeur sur un tampon qui contiendra le nom du chemin.
- fr_window permet de choisir la fenêtre intuition dans laquelle s’ouvrira le requester. Si on met à 0 ce pointeur, le requester s’ouvre alors dans la fenêtre active au momentde l’appel. Si on a ouvert sa propre fenêtre intuition par l’instruction : Window=OpenWindow(&NewWindow);
on pourra fixer ce pointeur par :
Freq.fr_window=Window;
- fr_reserved2 est un long mot qui, dans les versions ultérieures (au-delà de 34.1) indique la position du coin supérieur gauche du requester (par rapport au coin supérieur gauche de l’écran ?). Il est alors décomposé comme suit :
UWORD frjeftedge * marge gauche 7
UWORD frjopedge * hauteur du coin 7 Quand cette structure est définie et initialisée, y compris les tampons nécessaires :
char fname[80j; * 79 octets +0 pour le nom de fichier 7
char dirname[120]; * idem pour le nom du chemin 7
char nom_complet[200j; * pour le nom complet 7
il faut préciser l’offset de la routine FileRequest avec une instruction
pragma au début du source :
pragma libcall ArpBase FileRequest 126 801 Ceci correspond à : D0 = FileRequest] FileRequester ) (A0)
L’offset de la routine est -$ 126 dans ArpBase et le registre A0 doit pointer sur la structure FileRequester. En retour, D0 contient 0 si il y a eu une erreur ou si l’utilisateur a cliqué sur ‘CANCEL’. Si tout s’est déroulé normalement, D0 contient l’adresse du tampon qui contient le nom du fichier choisi (‘fname’ dans le source qui suit).
Voici le programme (sous LATTICE 4.0) :
* aucune opt’ion particulière de compilation * include exec types.h>
include string.h>
pragma libcall ArpBase FileRequest 126 801 APTR ArpBase=NULL;
LONG FileRequest () ; struct FileRequester
UBYTE *fr_titre; * texte fenêtre *
filename * dirname *
*Win voulue ou NULL * flags * mettre à 0 *
UserFunction *
UBYTE *fr_file; *
UBYTE *fr_dir; *
struct Window *fr_window;
UBYTE fr_flags; *
UBYTE fr_reservedl; *
APTR fr_fonction; *
7
LONG fr reserved2; *
occupe
char fname[80]; char dirname[120]; char nom_complet[200];
LONG réponse;
struct FileRequester Freq=
" Mon Requester ",fname,dirname,NULL,NULL,NULL,NULL,NULL};
void main ()
(
ArpBase=(APTR)OpenLibrary("arp.library", 0) ; if (ArpBase==NULL)
exit(FALSE); reponse=FileRequest(SFreq);
CloseLibrary(ArpBase); if (réponse)

printf(" n Vous avez choisi comme chemin '%s'", dirname);
printf(” n Vous avez choisi comme fichier strmfp(nom_complet,dirname,fname); printf(" n Le nom complet est 1 n",nom_complet);
)
* %s' ",fname);
)
PROGRAMMATION en ASSEMBLEUR
La structure est la même que précédemment, on la définit sous DEVPAC avec le compteur interne ‘rs’. Pour la signification de chaque label, voir le paragraphe précédent. Rappelons les conditions d’appel:
FileRequest EQU -$ 126
D0 = FileRequest(FileRequester) (A0)
donc A0 doit pointer sur une structure FileRequester et D0 donne le résultat de la demande : D0 = 0 si ‘CANCEL’ ou si un problème fut rencontré, sinon D0 pointe sur le nom du fichier.
Structure de la fenetre à ouvrir ;->DO=adresse fenetre ouverte ;filerequester à ouvrir ;initialise le pointeur fr_window Enfin, si le pointeur fr_window est à 0, le requester s'ouvrira dans la fenêtre à partir de laquelle le programme fut lancé (sauf si le programme est lancé sous DEVPAC, le requester s’ouvre alors dans la fenêtre ouverte par défaut).
Lea fenetre.aO JSR OpenWindow(A6) lea FileReq.aO move.l dO,fr_window(AO)
yjülBEIB BBHP
D. Genot
Voici le programme (sous DEVPAC 2):
include "exec exec_lib.i" inciude "intuition intuition.i" include "intuition intuition_lib.i" include "intuition intuitionbase.i" include "graphics graphics_lib.i"
FileRequest = -$ 126 ; offset dans ARP.LIBRARY rsreset FileRequester rs.b 0
fr_titre rs.l 1 adresse tampon enteoe REQUESTER
fr file rs.l 1 adresse tampon nom de fichier
fr dir rs.l 1 adresse tampon nom du chemin
fr_window rs.l 1 adresse de la structure de fenêtre
INTUITION ou 0 fr_flags rs.w 1 flags
fr_reservedl rs.w 1 ;à fixer à 0
fr_fonction rs.l 1 adresse utilisée pour certaines cartes
fr reserved2 rs.l 1 ;à fixer à 0
fr_SIZE0F rs.w 0 pour la taille de la structure
run:
move.l gfxname,al moveq 0,d0
callexec OldOpenLibrary move.l dO,_gfxbase beq fin
move.l intname,al moveq 0,dO
callexec OldOpenLibrary move.l dO,_intuitionbase beq fini move.l dO,aO
move.l ib_ActiveWindow(aO),al fenêtre active move.l wd_RPort(al),sortie rastport pour 'callgraf Text' sinon, on peut mettre:
; lea filereq,aO move.l fr_window(aO) ,al
; move.l wd_RPort(al),sortie pour sa propre fenêtre... move.l arpname,al moveq 0,dO
callexec OldOpenLibrary move.l dO,_arpbase beq fin2
move.l filereq,aO structure requester
move.l Ititre,fr_titre(aO) titre prêt
move.l file,fr_file(aO) tampons ...
move.l dir,fr_dir(aO) divers ...
clr.l fr_window(aO) si ouvert dans fenêtre active
clr.w fr_flags(aO)
clr.w fr_reservedl(aO)
clr.l fr_fonction(aO)
clr.l fr_reserved2(aO)
move.l _arpbase,a6
jsr FileRequest(a6) envoie le Requester tst.l dO DO = 0 si erreur ou 'CANCEL' beq fin3
move.l sortie,al move.l 40,dO move.l 40,dl callgraf Move lea dir,a0 lea nom_complet,al
clr.l dO tst.b (aO)
Précisons que si une fenêtre intuition est ouverte, on peut fixer le pointeur fr_window pour que le Requester s’ouvre dans cette fenêtre .
Ex. :
move.l _intuitionbase,A6 ;la librairie intuition étant ouverte
beq file_copie si pas de dir bclel: move.b (aO)+,(al)+ addq.l l,d0 longueur du dir tst.b (aO) bne bclel
move.l al,-(a7) adresse courante dans nom_complet
move.l d0,-(a7) longueur nom de dir
move.l sortie,al
lea textel,a0
move.l lonl,d0
callgraf Text
move.l sortie,al
lea dir,a0
move.. (a7)+,dO
callgraf Text
move.l sortie,al
move.l 40,dO
move.l 60,dl ligne suivante
callgraf Move
move.l (a7)+,al
cmp.b (al)
beq file_copig
cmp.b " ",-1(al)
beq file_copie
move.b " ",(al)+ ajoute un avant nom de fichier si c'est nécessaire file_copie: lea file,a0 clr.l dO tst.b (aO)
beq print_nom si pas de fichier bcle2: move.b (aO)+, (al) + addq.l l,d0 longueur du file tst.b (aO) bne bcle2
clr.b (al) ;+0 comme butée dans nom_complet move.l d0,-(a7) longueur nom de file move.l sortie,al lea texte2,a0 move.l lon2,d0 callgraf Text move.l sortie,al lea file,a0 move.l (a7)+,d0 callgraf Text move.l sortie,al move.l 40,dO
move.l 80,dl ligne suivante callgraf Move print_nom: lea nom_complet,aO clr.l dO bcle3:
addq.l l,d0 longueur du dir tst.b (a0)+ bne bcle3 subq.l l,d0
beq fin3 rien n'est choisi move.l d0,-(a7) longueur noir move.l sortie,al lea texte3,a0 move.l lon3,d0 callgraf Text move.l sortie,al lea nom_complet,aO move.l (a7)+,d0 callgraf Text jsr souris fin3:
move.l _arpbase,al callexec CloseLibrary fin2 :
move.l intuitionbase,al
LES PRINCIPALES INSTRUCTIONS D’AMAL (2)
BBG3B HPPB
APPLICATION
Trois instructions d’AMAL permettent de réaliser mouvements et animations : Move, Anim et Play. Pour mieux utiliser cette dernière, nous allons détailler le codage et l’enregistrement des mouvements dans la banque AMAL.
5. Move, Anim, Play.
5. 1. L’instruction Move.
Je vais être bref, car nous en avons déjà parlé il y a deux mois. Move est l’instruction idéale pour faire bouger les objets AMAL en ligne droite. Move DeltaX.DeltaY, Nombre de pas
Move trace une ligne entre la position actuelle de l’objet (X,Y) et la position (X+DeltaX,Y+DeltaY). DeltaX et DeltaY peuvent être négatifs, pour provoquer des mouvements vers la gauche et le haut respectivement. Cette droite sera parcourue en “Nombre de pas" fois. Ainsi, la valeur 1 provoquera un déplacement instantané, et une plus grande valeur ralentira le mouvement.
La vitesse de déplacement peut ainsi être très précisément fixée. La contrepartie de ce système est une irrégularité pour certaines valeurs. Exemple :
Move 100,100,100 -> trace une diagonale à 450 vers la droite et le haut de l’écran. Tous les 1 500 de seconde, l’objet bouge de 1 pixel en X et Y EXACTEMENT.
Move 100,100,101 -> trace la même droite, mais en 1 500 de seconde de plus : au milieu du cheminement, l’objet marquera une pause de 1 500. Le résultat sautera aux yeux.
Il faut choisir une valeur MULTIPLE de la distance à parcourir, par exemple 50, 25, 20,10 etc.
Pour optimiser au maximum l'algorithme de calcul de la droite, j’ai du limiter à 128 le déplacement maximum autorisé par pas de déplacement. Une instruction telle que :
Move 320,200,1 ne fonctionnera pas correctement.
5. 2. L’instruction Anim.
Comme son nom l'indique, Anim est dédiée à la production d’animations : elle modifie le numéro de l'image produit par le canal.
Sa syntaxe est :
Anim cycle,(image,délai)(image,délai)...
* (image,délai) sert à définir chaque PAS d’animation.
Les parenthèses sont indispensables, “image” pointe dans la banque de sprites, “délai” est le nombre de 1 500 de seconde pendant lequel l’image reste affichée avant de passer à la suivante.
* lorsque l’instruction Anim a terminé la dernière parenthèse, elle peut soit recommencer au début, soit se terminer.
“Cycle” contient le nombre de tours à effectuer. Zéro indique une animation sans fin.
Anim est une instruction NON BLOQUANTE, la seule du genre en AMAL. En effet, un canal doit être capable de produire une animation et en même temps des coordonnées en X et Y. Lorsqu’AMAL rencontre un Anim, il initialise les paramètres et passe immédiatement à l’instruction suivante (généralement un Move).
En conséquence, il faut toujours mettre Anim avant Move!
De plus, je vous recommande de mettre un point virgule après la dernière parenthèse de Anim : le compilateur AMAL a la fâcheuse tendance à produire des erreurs de syntaxe sur les Anims.
Exemple d’animation d’un personnage marchant de gauche à droite : “Anim 0,(1,3)(2,3)(3,3)(4,3); Move 320,0,320”
5. 3. L’instruction Play.
Move est parfait pour des déplacements simples, en ligne droite. Play a été conçue pour produire les mouvements plus complexes, préalablement enregistrés dans la banque de mémoire numéro 4 (ou banque AMAL).
5. 3.1. Rejouer un enregistrement.
Play permet de rejouer en interruptions un tel mouvement. La syntaxe est :
Play numéro; ou PL numéro
NB: n’oubliez pas le L majuscule sinon le compilateur AMAL prendrait votre Play pour une Pause !
Exemple: “PL 1”
5. 3.2. Structure de la banque AMAL.
Play lit les mouvements stockés sous forme codée dans la banque AMAL. Pour vous permettre d'enregistrer vos propres mouvements dans cette banque, nous allons détailler sa structure.
* La banque AMAL contient à la fois les enregistrements Play et les chaînes de mouvement tapées sous l’éditeur. Le premier mot long pointe sur ces chaînes :
Start(4): dc.l Chaînes-Start(4)
* Vient ensuite le nombre maximum d'enregistrements, il est de 48 avec l’éditeur AMAL. Vous pouvez bien sûr en avoir plus.
PlayBase: dc.w Nombre de play
* Suit une liste de pointeurs sur chacun des 48 enregistrements, zéro indiquant un Play vide.
Dc.w (PLay1-PLaybase) 2
dc. w (PLay2-PLaybase) 2
dc. w (Play48-PLaybase) 2
* Suivent les noms des mouvements, avec 8 lettres pour chacun :
dc. b “Nom 1
dc. b “Nom 2
dc. b “Nom 48
* Nous arrivons à l’enregistrement proprement dit. En premier la vitesse, 1 signifiant une animation au 1 500, 2 tous les 2 500 etc.
Playl : dc.w Vitesse
* Un enregistrement se compose d’un mouvement en X et d’un mouvement en Y. Suit donc un pointeur sur les déplacements en Y:
dc. w EnrgY-PLayl
* Nous arrivons enfin au codage des déplacements. Ce codage est effectué par OCTET, il peut donc avoir une longueur impaire. Voyons le principe du codage : ¦
- Un octet NUL signifie la fin de l’enregistrement.
- Le bit numéro 7 sert d’indicateur. Deux cas peuvent se présenter ;
+ BIT 7= 0: les 7 autres bits de l’octet contiennent sous forme signée, la valeur du déplacement à ajouter à la coordonnée de l’objet. Le déplacement peut donc avoir de valeurs maximales de -64 à +63. Une fois cette addition effectuée, AMAL pointe l’octet suivant.
+ BIT 7=1 : les 7 autres bits indiquent à AMAL le nombre de 1 500 de seconde à attendre avant dé passer à l’octet suivant.
On comprend que lorsque l'on bouge la souris régulièrement au moment de l’enregistrement du déplacement, le programme créera un octet tous les 1 500 de seconde. La compression est plus avantageuse pour des mouvements plus lents ; en restant immobile, on ne consomme qu’un octet tous les 128 500 de seconde.
Revenons à la banque de mémoire. Un enregistrement doit TOUJOURS commencer et se terminer par un ZERO, pour marquer les limites en AVANT et en ARRIERE.
Dc.b 0
dc. b Dep,Dep,Dep,Dep
dc. b 0
* Suit l'enregistrement des déplacements en Y
EnrgY: dc.b 0
dc. b Dep,Dep,Dep,
dc. b 0
* Si l'adresse est impaire, il faut ajouter un zéro :
dc. b 0
* Suivent ensuite tous les autres enregistrements s'ils existent. Pour mémoire, voyons la deuxième partie de la banque, qui contient les chaînes de mouvement tapées sous l'éditeur AMAL. En premier, le nombre de chaînes (16 ou 64 si vous êtes en mode SYNCHRO OFF) : Chaînes : dc.w Nombre de chaînes
* Suit une liste de pointeurs sur chacune des chaînes, la première (numéro ZERO) étant la chaîne de définition de l'environnement :
dc. w (ChO-Chaines) 2
dc. w (Chl-Chaines) 2
dc. w (Chl6-Chaines) 2
* Puis, les chaînes elles-mêmes, précédées de leur longueur respective:
ChO: dc.w LongueurO (zéro si vide)
dc. b "Le texte tapé sous l'éditeur AMAL",$ 7E
dc. b ”NB: les retours de ligne sont marqués par",$ 7E
dc. b "le code:",$ 7E
Chl: dc.w Longueur1
dc. b "texte 1"
dhl6: dc.w Longueur16
dc. b "textelô"
5. 3.3. Enregistrer ses mouvements.
5. 3.3.1. L’éditeur AMAL.
L’éditeur AMAL se trouve sur la disquette Extras (AMAL_Editor.AMOS). Vous trouverez aussi sur cette disquette un fichier expliquant en détail son fonctionnement. En résumé :
Choisissez l’option “PLAY Editor” dans le menu “Edit”, puis "Record" dans le menu “Movement”. Lorsque vous bougerez la souris, le programme codera tous les déplacements dans la banque AMAL. Bien sûr n’oubliez pas de sauver la banque, et de la charger dans votre programme !
5. 3.3.2. Votre propre enregistreur.
La partie enregistrement de mouvements de l’éditeur AMAL est limitée au strict minimum. Il est par exemple impossible de faire des figures géométriques (tracer un cercle parfait à la souris nécessite un sacré tour de main !). Je ne vais pas vous donner le listing d’un éditeur de Play complet, mais vous fournir tous les éléments pour en programmer un. Toutes les routines de fabrication de la banque AMAL se trouvent dans le programme AMAL_Editor.AMOS. Il suffira de faire un bloc et de les recopier dans le programme, sans même avoir besoin de les ouvrir ! Quelques fonctions agréables dans un éditeur Play :
- Pouvoir arrêter l’enregistrement, revenir en arrière, faire des blocs de mouvement, transférer les blocs d’un mouvement à l’autre.
- Pouvoir tracer des figures géométriques (comme dans l’exemple) : cercles, rectangles, courbes de Bézier (ha !, une attaque d’aliens en courbe de Bézier, quel régal !).
- Pouvoir rejouer au pas à pas,
- etc. ‘ Enregistrement de mouvements PLAY
Set Buffer 24 Dim AM$ (64)
Global AM$ (),NAME$
Global NBMOVE,CPL,PLOFF,PLLEN,PLNAME,PLMOVE,SYNC Global X$ ,Y$ ,SP,OX,OY,LX,LY,CPTX,CPTY,LMVE
' Récupérer les lignes de 1'AMAL_Editor.AMOS
NBMOVE=48
PLOFF=6
PLLEN=PLOFF+NBMOVE*2 P LNAME=PLLEN+NBMOVE* 2 P LMOVE=PLNAME+NBM0VE* 8 CPL=1 : CST=1 : CCH=1 : SYNC=1
' Initialisation des écrans Flash Off : Cls 0 : Shift Up 1,1,15,1 Screen Open 7,640,40,4,Hires Screen Display 7,,256,,
' Créé la banque vide...
REED_BANK

' Comme à la télé : programme minimum !
Do
Screen 7
Print "(1) Charger une banque"
Print "(2) Sauver la banque"
Print "(3) Enregistrer un mouvement"
Print "(4) Jouer un mouvement"
Input 0 If 0=1
F$ =Fsel$ ("*.Abk","","Charger une banque")
If F$ >""
NAME$ =F$ : Load NAME$ ,4
REED_BANK
End If
End If
If 0=2
F$ =Fsel$ ("*.Abk","","Sauver une banque")
If F$ >""
NAME$ =F$ : BANK_SAVE End If End If If 0=3
Input "Entrez le numéro du mouvement à enregistrer:";NM
' Mouvement au l 50ieme
SP=1
Print "Bougez la souris, click pour stopper..."
Screen 0 : Cls 0
PL_INIT[NM,X Screen(X Mouse),Y Screen(Y Mouse)]
Plot 0X,OY
Do
Do
Exit If Mouse Key
Exit If LX>=LMVE or LY>=LMVE,2
PL_RECORD[X Screen(X Mouse),Y Screen(Y Mouse)]
Add 1,1,1 To 15 : Ink I : Draw To OX,OY
Wait Vbl
Loop
ENCORE:
Screen 7
Print "Enregistrement interrompu. Choisissez entre:" Print "(1) Continuer l'enregistrement"
Print "(2) Tracer un cercle"
Print ”(3) Arrêter"
Input "Option:";00 Exit If 00=3 If 00=2 XX=0X : YY=0Y Input "Rayon:";R Screen 0
For T =0.0 To Pi *2 Step 0.1 X=XX+Sin(T )*R : Y=YY+Cos(T )*R PL_REC0RD[X, Y]
Add 1,1,1 To 15 : Ink I : Draw To 0X,0Y Next
Goto ENCORE
End If
Screen 0
Loop

Screen 7
Input "Nom du mouvement:";N$
N$ =Left$ (N$ +Space$ (8),8)
PL_FINI[N$ ]
End If If 0=4
Input "Numéro du mouvement a jouer";CPL PL_PLAY End If Loop
' Nouvelles procédures, à taper
BBE1B HBBP
MlfïH-' -
' PL_INIT doit être appelé avant de démarrer l'enregistrement
PKSTR[Left$ (A$ +"", 8),Start (4)+PLNAME+C*8]
' PL RECORD enregistre la position actuelle
Doke AP,SP : Add AP,2
' PL FINI termine l'enregistrement
Doke AP,LX+2+4 : Add AP,2

Poke AP,0 : Inc AP
Procédure PL INIT[N,X,Y]
For L=0 To LX-1
CPL=N
Poke AP,Peek(Varptr(X$ )+L) : Inc AP
PL CLR[N]
Next
LMVE=2000 : X$ =Space$ (LMVE) : Y$ =Space$ (LMVE)
Poke AP,0 : Inc AP
LX=0 : LY=0 : OX=X : OY=Y : CPTX=-1 : CPTY=-1
Poke AP,0 : Inc AP
End Proc
For L=0 To LY-1
Procédure PL RECORD[X,Y]
Poke AP,Peek(Varptr(Y$ )+L) : Inc AP

Next
Poke AP,0 : Inc AP
' En X...
If Btst(0,AP) : Inc AP : End If
If X=OX
Doke Start(4)+PLLEN+C*2,AP-AA
Inc CPTX
End Proc
If CPTX>126
Bset 7,CPTX : Poke Varptr(X$ )+LX,CPTX : Inc LX : CPTX=-1
' Il faut ici deux procédures vides, pour l'adaptation
End If
Procédure ED ALARM[A$ ,L]
El se
End Proc
If CPTX>-1
Procédure INF PLAY
Bset 7,CPTX : Poke Varptr(X$ )+LX,CPTX : Inc LX : CPTX=-1
End Proc
End If

D=Max(Min(X-OX, 63),-63) : Bclr 7,D : Poke Varptr(X$ )+LX,D
' Toutes ces procédures sont à récupérer dans le
Inc LX : OX=X
' programme AMAL Editor.AMOS, sans AUCUNE
End If
' modification...
' En Y...
Procédure PL PLAY
If Y=OY
Procédure PL CLR[N]
Inc CPTY
Procédure PL_CLEAN[L]
If CPTY>126
Procédure PKSTR[A$ ,A]
Bset 7,CPTY : Poke Varptr(Y$ )+LY,CPTY : Inc LY : CPTY=-1
Procédure BKLEN
End If
Procédure PL INS
Else
Procédure PL DEL
If CPTY>-1
Procédure WT CLICK
Bset 7,CPTY : Poke Varptr(Y$ )+LY,CPTY : Inc LY : CPTY=-1
Procédure INP TEXT[T$ ,L]
End If
Procédure BANK SAVE
D=Max(Min(Y-OY,63),-63) : Bclr 7,D : Poke Varptr(Y$ )+Lï,D
Procédure REED BANK
Inc LY : Oï=Y
Procédure AM PIK[N,AP]
End If
Procédure MAKE BANK
End Proc
Procédure AM POK[N,AP]
Procédure PL FINI[N$ ]
Procédure AM LONG
PL_CLEAN[LX+LY+16]
Nous n'avons pas encore fini de parler de Play: il reste à voir
BKLEN
les possibilités de contrôle du mouvement à partir du basic, ce
C=CPL-1 : AP=Start(4)+Param : AA=AP
que nous ferons le mois prochain. En attendant, AMOSsez bien !
Doke Start(4)+PLOFF+C*2,(AP-Start(4)-4) 2
F. Lionet
callexec CloseLibrary fini :
SUITE DE LA PAGE 46
A. N.T.
Nouvelle
formule
uniquement par abonnement Page 34
move.l _gfxbase,al callexec CloseLibrary fin: rts
souris: ;(c'est pour la photo...)
btst 6,$ bfe001 bne souris rts even
textel: dc.b "Vous avez choisi comme chemin : ftextel :
lonl=ftextel-textel
even
texte2: dc.b "Vous avez choisi comme fichier : ftexte2:
lon2=ftexte2-texte2
even
texte3: dc.b "Le nom complet est : "
ftexte3:
lon3=ftexte3-texte3
even
arpname: dc.b "arp.library",0 even
_arpbase: dc.l 0
sortie: dc.l 0 even
_gfxbase: dc.l 0 gfxname: grafname even
_intuitionbase: dc.l 0 intname: intname even FileReq: ds.b fr_SIZEOF even
titre: dc.b " Mon Requester ",0 even
file: ds.b 80 ;pour le fichier even
dir: ds.b 120 ;pour le directory even
nom_complet: ds.b 200 pour le nom complet
Comme les deux sources le montrent, il ne faut pas oublier de "coller" le nom du directory et celui du fichier pour avoir le nom complet (en ajoutant un si c'est nécessaire...).
D. GENOT
?BC3B ????
Hinn ------
D3
INITIATION
AMNESIE INTERNATIONALE
Dans la société actuelle, vu la vie de dingues que l’on mène, les problèmes de l’humanité se résument en trois mots : le sexe, l’argent et la mémoire. Si je ne puis rien faire dans les deux premiers cas, le programme que je vous propose ici devrait balayer d’un coup tous vos tracas en ce qui concerne le troisième.
Lorsque l’on développe quelque chose de sérieux sur Amiga, ou dans un cas plus général, lorsque l'on utilise des programmes du domaine public - voire du commerce - mal foutus, il arrive souvent que l'on se retrouve, après exécution, avec moins de mémoire qu’avant. Un des exemples les plus connus de cet état de fait sont les 48 octets que “mangent” certains programmes des temps préhistoriques, à cause d’un LockQ non libéré (tiens, en parlant de ça, un message personnel à François Lionet : est-ce que, dans une prochaine version d’AMOS, tu comptes le libérer, ce Lock() que tu gardes jalousement enfoui quelque part dans les méandres de ton source ?). Oui, je sais ce que vous allez dire : 48 octets, c’est trois fois rien, on s’en fout. Ben non, justement, on s’en fout pas. D’abord parce que ça fait pas propre, genre travail inachevé ; et puis dites-vous bien que 48 octets plus 48 octets plus 48 octets plus..., ça peut déboucher sur une situation de manque de mémoire obligeant à un inutile Reset.
De tâches tournent sans même que l'on s’en rende compte (les différents devices et librairies ouverts, le Workbench, etc.). C’est pourquoi il est possible de demander la taille du plus gros bloc disponible en spécifiant lors de l’appel à AvailMem() l’attribut MEMF_LARGEST en sus de MEMF_FAST, MEMF_CHIP ou MEMF_PUBLIC. Ce qui n’est pas fait ici, mais rien ne vous en empêche si ça vous branche.
Comme d’habitude, ce programme a été écrit avec Devpac II (son adaptation pour K-Seka demandera quelque travail aux masos qui voudraient s’y attaquer) et ne s’exécute qu’à partir du CLI ou, bien mieux, de la Startup-Sequence. En prime, une superbe démonstration des possibilités des macros de Devpac (regardez de plus près la macro VERSION...).
Bon appétit et à bientôt.
Max
; FreeMem - by Max. Version 2.3
OPT
o+,ow- ; Options pour Devpac II only
ver EQU
2
rev EQU
3
VERSION
MACRO
dc. b
"FreeMem V"
dc. b
' ver>'
dc. b
w n
dc. b
' rev>'
dc. b
0
even
ENDM
DANS QUEL ETAT J’ERE ?
Le petit utilitaire de ce mois-ci, légèrement inspiré d’un des programmes de démonstration fournis avec Devpac II, mais que je me suis fait depuis déjà belle lurette (la première version date de 88 I) ouvre une petite fenêtre dans laquelle sont affichées en permanence les quantités de mémoire Chip et Fast libres, ainsi que le total des deux. Ces informations sont rafraîchies toutes les 1 2 secondes, c’est-à-dire bien plus souvent que ne le fait le Workbench dans sa barre de menu. De plus, elles sont tout le temps visibles ; plus besoin de cliquer sur la fenêtre du Workbench pour y accéder.
Du point de vue technique, la fenêtre est ouverte dans le coin bas gauche de l’écran, pour éviter tant que faire se peut tout recouvrement par une autre fenêtre. Les quantités de mémoire libre sont obtenues grâce à la fonction AvailMem() d'Exec pour la Chip et la Fast, le total n’étant, comme son l’indique, que la somme de ces deux valeurs. Ces trois nombres sont convertis en ASCII dans un buffer par la fonction RawDoFmtO, ce buffer étant par la suite affiché dans la fenêtre par Printl- TextO de la librairie Intuition.
Une petite précision supplémentaire : ce ne sont pas les quantités de mémoire disponible qui sont affichées, mais bel et bien de mémoire libre. Cette distinction découle de la manière dont Exec gère sa mémoire : imaginons pour les besoins de l’exemple que deux tâches tournant simultanément sur un Amiga avec 512 Ko, réservent de la mémoire via Al- locMemO ou autre ; Exec alloue à la première un bloc allant de $ 10000 à $ 1FFFF et à la seconde, un bloc allant de $ 20000 à $ 23FFF. Si la première tâche libère sa mémoire avant la seconde, la situation sera alors la suivante : un bloc de mémoire libre allant de $ 0 à $ FFFF (longueur : $ 10000 octets), suivi d’un bloc occupé par la seconde tâche de $ 10000 à $ 1 FFFF (longueur : $ 10000 octets aussi), suivi d’un bloc libre de $ 20000 à $ 7FFFF (longueur : $ 60000 octets). Dans cette configuration, AvailMemO indiquera un total de $ 70000 octets libres, mais AllocMem() ne pourra allouer un bloc que de $ 60000 octets maximum. Imaginez maintenant cette situation dans un environnement où une bonne dizaine
INCDIR "Devpac2:Include "; A changer au besoin INCLUDE "exec memory.i"
INCLUDE "exec exec_lib.i"
INCLUDE "libraries dos_lib.i"
INCLUDE "intuition intuition.i"
INCLUDE "intuition intuition_lib.i"
• ************************************
t
Run lea IntName(pc),al ; Ouverture d'intuition.library
moveq 0, dO
CALLEXEC OpenLibrary move.l dO,_IntuitionBase
beq Nolnt
Ouverture de la dos.library
lea DosName(pc),al ;
moveq 0,d0
CALLEXEC OpenLibrary move.l dO,_DOSBase
beq NoDos
Ouverture de la fenêtre
lea myNewWindow(pc),aO
CALLINT OpenWindow move.l dO,myWindow
beq NoWin
Main move.l myWindow(pc),aO ; Un message pour nous ?
Move.l wd_UserPort(aO),aO
CALLEXEC GetMsg
tst.l dO ; oui -> ça ne peut être que
bne.s MainRet ; CLOSEWINDOW, alors on s'casse
moveq MEMF_CHIP,dl ; ou MEMF_CHIP|MEMF_LARGEST
CALLEXEC AvailMem
move.l d0,d7
lea ChipNB(pc), a3 ; Adresse du buffer pour la
bsr.s Convert ; conversion en ASCII
moveq MEMF_FAST,dl ; ou MEMF_FAST|MEMF_LARGEST
CALLEXEC AvailMem
add.l d0,d7
lea FastNB(pc),a3
bsr.s Convert
move.l d7,d0
lea TotalNB(pc),a3
bsr.s Convert
Affiche les données
move.l myWindow(pc),aO
AUDIOVISUEL
UN
move.l wd_RPort(aO) ,a0 lea C'nipiText (pc), al
moveq 15,dO moveq 15,dl CALLINT PrintIText moveq 25,dl CALLDOS Delay bra.s Main MainRet move.l
CALLEXEC ReplyMsg move.l myWindow(pc),a0 CALLINT CloseWindow
INFORMATIQUE
62, rue Gérard, 75013 Paris TEL. : 45.81.51.44 FAX : 45.88.33.45 Du lundi au samedi de10hà13hefde14hà19h
; Trois d'un coup !
; Pause 1 2 seconde
; et boucle
dO,al ; Répond au message Ferme la fenêtre
AMIGA =
UlN
NoWin move.l _D0SBase(pc),al ; Ferme la dos.library
CALLEXEC CloseLibrary
A2000
A2000 = 5990 F A2000 + 1083S = 7490 F
A500
A500 + EXT SI 2 Ko = 3290 F
A500 + 1083S + EXT 512 Ko = 5290 F
IntuitionBase(pc) ,al;et l'intuition.li- :ary
0,d0 ; et ciao la compagnie !
NoDos move.1
brary
CALLEXEC CloseLibrary
JANVIER = LE MOIS DES PERIPHERIQUES APRES NOËL, C'EST ENCORE NOËL !
Nolnt
rts
moveq
. ************************************
; Convertit un nombre dans dO.l en ASCII ; dans le buffer pointé par a3 grâce à RawDoFmtO Convert lea OutFormat(pc) ,a0 ; "%81d"
lea OutStr(pc),al
lea PutChar(pc),a2
move.l dO,(al)
CALLEXEC RawDoFmt rts
; fonction PutChar appelée par RawDoFmtO ; insère simplement le caractère dans le buffer PutChar move.b d0,(a3)+ rts
. ************************************
; ci-dessous, les variables
EXTENSIONS MEMOIRE
A500
A2000
51 2 Ko
450 F
2 Mo
1 790
2 Mo
1990 F
4 Mo
2 99 CI F
4 Mo
2950 F
6 Mo
3990T BB W '
6 Mo
4950 F
8 Mo
4990 F r*
DISQUES DURS
A2000
A500
IVS Pro
GVP
IVS Pro
GVP
IN500 42 Mo = NC
OutStr
dc. l
0
OutFormat
dc. b
"%81d",0
even
IntuitionBase:
dc. l
0
DQSBase
dc. l
0
myWindow
dc. l
0
IntName
dc. b
"intuition.library",0
even
DosName
dc. b
"dos.library",0
even
myNewWindow:
dc. w
0,206,220,50
dc. b
- 1,-1
dc. l
CLOSEWINDOW
dc. l
WINDOWDRAG | WINDOWDEPTH1WIND0WCL0SE
de. 1
0,0,WinTitre,0,0
dc. w
0,0,0,0
dc. w
WBENCHSCREEN
WinTitre
VERSION
; structures IntuiText liées entre elles
ChipiText
dc. b
3,0,1,0
dc. w
0,0
dc. l
0,ChipTxt,Fast iText
ChipTxt
dc. b
"Chip Memory : "
ChipNB
dcb.b
12," "
FastiText
dc. b
3,0,1,0.
Dc.w
0,10
dc. l
0,FastTxt,
TotaliText
FastTxt
dc. b
"Fast Memory : "
FastNB
dcb.b
12," "
TotaliText
dc. b
3,0,1,0
dc. w
0,20
de. 1
0,TotalTxt,0
TotalTxt
dc. b
"Total : "
TotalNB
dcb.b
12," "
END
COMMODORE
A590
2990
A590 + 1 Mo
3990
A590 + 2 Mo
4790
ACCESSOIRES
Sampler MK2 580
’erfect Sound 690
:rFace Midi 490 Boot Selector 125
CARTE ACCELERATRICE
3990 7990 19»eo 16900
A2620 (68020 14 Mhz + 2 Mo)
A2630 (68030 25 Mhz + 2 Mo)
A3001 (68030 28 MHZ + 4 Mo + HD40 Mo)
ESCOMPTE 2 % pour tout ACHAT COMPTANT CREDIT LEASING CREDIT 4 FOIS SANS FRAI (minimum 5000 F) GARANTIE 2 ANS
(NC : Nous Consulter I)
AGREE : SATV ; BUS+ ; COMMODORE ; C.I.S. ; CICI
1
APPLICATION
COM-ROID
AmosRoid
Registres globaux d'AMAL employés :
RA => coordonnée X de la raquette (la coordonnée Y est constante)
RB => coordonnée X de la balle ;
RC => coordonnée Y de la balle ;
RD => vitesse de la balle en pixels ;
RE => collision :
0 : aucune (!)
1 : balle raquette (bell)
2 : balle mur (bell aigu)
4 : raquette bonus
10 : balle mur du bas (perdu)
RF => nombre de bonus simultanés Synchro Off
Après le Pac-Man, un autre grand classique des jeux vidéo, j’ai nommé Break-Out. Ou plutôt Ar- kanoïd, puisque ce petit jeu en est fortement inspiré.
Contrairement à la dernière fois, où nous n’avions pas employés AMAL, le langage d’animation sous interruption d’AMOS, Com-Roid l’utilise abondamment pour la gestion de la balle bien sûr, mais aussi pour tous les autres Bobs que l’on a besoin d’afficher. Le résultat est une animation fluide et hyper-propre avec toutefois une exception, que nous verrons plus loin.
PREPARATIFS
Chaine AMAL pour le chrono
CHRONO$ =""
CHRONO$ =CHRONO$ +"
Mais avant toute chose, vous allez devoir dessiner quelques sprites et icônes à l’aide du Sprite-Designer pour pouvoir profiter de ce génial programme. Voici donc la composition des banques utilisées :
CHRONO$ =CHRONO$ +"Boucle: Pause;'
CHRONO$ =CHRONO$ +"
CHRONO$ =CHRONO$ +"
CHRONO$ =CHRONO$ +"
CHRONO$ =CHRONO$ +"
CHRONO$ =CHRONO$ +"
Banque Sprites “ComRoid_Sprites.ABK” - 14 Sprites en 32 couleurs
Chaine AMAL pour la balle
Numéros Tailles Définitions
BAL$ =""
BAL$ =BAL$ +" BAL$ =BAL$ +"Loop: BAL$ =BAL$ +"Test: BAL$ =BAL$ +" BAL$ =BAL$ +" BAL$ =BAL$ +" BAL$ =BAL$ +"Gauche: BAL$ =BAL$ +" BAL$ =BAL$ +"Droite: BAL$ =BAL$ +" BAL$ =BAL$ +"Haut: BAL$ =BAL$ +" BAL$ =BAL$ +"Bas: BAL$ =BAL$ +" BAL$ =BAL$ +"Ok: BAL$ =BAL$ +"Fini:
1 16*8 La balle
2 32*8 La raquette
3 à 8 32*32 Animation pour l’explosion
de la raquette
9 16*16 Motif de remplissage pour le fond
10 à 14 16*8 Animation pour la disparition
des briques
Note : placez le “hot-spot” (point chaud) de chaque sprite en son centre.
Banque Icônes “ComRoidJcones.ABK” - 7 icônes en 32 couleurs
Chaine AMAL pour la raquette
RAQ$ =""
RAQ$ =RAQ$ +"Boucle:
RAQ$ =RAQ$ +"
RAQ$ =RAQ$ +"Gauche:
RAQ$ =RAQ$ +"
RAQ$ =RAQ$ +"Droite:
RAQ$ =RAQ$ +"
RAQ$ =RAQ$ +"Ok:
RAQ$ =RAQ$ +"
RAQ$ =RAQ$ +"Perdu;
Numéros Tailles Définitions
1 à 7 16*8 Les 7 types de briques
; le type 7 est indestructible.
Vous aurez également besoin de copier depuis les disquettes originales d’AMOS, dans le répertoire Samples, le fichier Boom.ABK en le renommant en
ComRoid_Sample.ABK’’.
j Chaine AMAL pour une brique qui disparait B$ =""
B$ =B$ +"Boucle: Anim 1, (10,1) (11,1) (12,1) (13,1) (14,1)'

__
' Chaine AMAL pour un bonus qui tombe
Enfin, dessinez-vous sous DeluxePaint un écran de jeu en 320 x 256 et 32 couleurs, comportant sur sa droite le panneau de contrôle (score, nombre de vies, etc.). La fenêtre de jeu quant à elle va des coordonnées (8,8) à (228,242). Compactez cet écran et sauvez-le sous
BON$ =""
BON$ =BON$ +"
BON$ =BON$ +"
Let R0=RF;"
Anim 0, (10,1) (11,1) (12,1) (13,1) (12,1) (11,1);'
A. N.T.
Nouvelle
Charge les sprites, l'écran et le sample
Load "ComRoid_Sprites.ABK" : Rem Bank 1 Load "ComRoid_Icones.ABK" : Rem Bank 2 Load "ComRoid_Sample.ABK" : Rem Bank 5 Load "ComRoid_Screen.ABK",6 : Rem Bank 6 Make Mask
formule
uniquement par abonnement Page 34
Let R0=0; '
Let R0=R0+1;"
If R0 500 then Jump Boucle;" Let R0=0"
Let RD=RD+1;"
Jump Boucle;"
Let R0=RD; Let R1=0-RD;"
If RE=10 then Jump Fini;"
Let RE=0; If BC(2,1,1)=0 then Jump Gauche;" Let R0=RD; Let R1=0-RD; Let RE=1;"
If RA X then Jump Ok;"
Let R0=0-R0; Jump Ok;"
If X>13 then Jump Droite;"
Let X=13; Let R0=RD; Let RE=2; Jump Haut;" If X 227 then Jump Haut;"
Let X=227; Let R0=0-RD; Let RE=2;"
If Y>13 then Jump Bas;"
Let Y=13; Let R1=RD; Let RE=2; Jump Ok;"
If Y 243 then Jump Ok;"
Let Y=243; Let R0=0; Let R1=0; Let RE=10;" Let X=X+R0; Let Y=Y+R1; Let RB=X; Let RC=Y;' Pause; Jump Loop;"
If RE=10 then Jump Perdu;"
Let RA=XS(0,XM);"
If RA>25 then Jump Droite"
Let RA=25; Jump Ok"
If RA 216 then Jump Ok"
Let RA=216;"
Let X=RA;"
Pause; Jump Boucle;"
Anim 1, (3,1) (4,1) (5,1) (6,1) (7,1) (8,1) (7,1) (6,1) (5,1) (4,1);"
C R P
TABLETTE GRAPHIQUE
...2590,00 Frs TTC
A4
A3
...5990,00 Frs TTC
Nouveau driver, 2.6 encore plus rapide.
Compatible Amiga 3000, carte Turbo, Atari TT
v*. I. v.
136, rue Lamarck 75018 PARIS Tél. (1)42 26 12 92 Comment commander ? Passez votre commande sur papier libre, ajoutez 100 Frs de frais de port.
Carte bleue acceptée.
Print Technik
DIGITALISEUR PRO 8906
Couleur PAL SECAM Port Cartouche
1490,00 Frs TTC
SCANNER UNIVERSEL I
Format A4 Résolution 200 DPI -16 tons de gris Photocopieuse - Imprimante Atari Amiga
4590,00 Frs TTC
SCANNER PROFESSIONEL
Format A4 Résolution 600 DPI - 64 tons de gris Reconnaissance de caractères - 1 Mo minimum Atari Amiga
8990,00 Frs TTC
HANDY SCANNER 400 DPI
Taille 105 mm - 400 DPI - 64 tons de gris Atari Amiga
1850,00 Frs TTC
SCANNER FAX UNIVERSEL II
Format A4 Résolution 200 DPI 16 tons de gris Télécopieur Photocopieuse Imprimante Atari Amiga
7990,00 FRS TTC
- En fonction des stocks disponibles - version PC, nous consulter - Souris loupe en option
- Possibilité de démonstration sur rendez-vous - Revendeurs, nous contacter -
cA os m.£ [(TguT-S Tfogaix: à toutes st à to us (oout. £ arirteg nou Ialje ippl
A2000
Carte Mémoire 512KO 8MO
Extensible de 512 KO à 2 MO par palier de 512 KO, La mémoire à petit prix CHOUETTE...
A2010 512KO
00760 1230 Ffrs
f Cartes Mémoire®
minimqx piu*
2,5 MO en total dont 1 de Chip Memory possible Réf.: oooio 2490 Ffrs
Â1D0O 2 8 MO
Vu dans COMMODORE REVUE...
Vous trouverez chez nous les Digitalisées en temps réel SNAPSHOT VIDEOTECHNICK DIEZEMAN, IMAGINE d'INTELLIGENT MEMORY, la carte ACTION REPLAY IV, l'émulateur MEDUSA le lecteur 1.44MO compatible AMIGA MAC INTOSH (avec éjection de la disquette)... Et bien d'autres choses.... N’écoutez pas les corbeaux! Nos produits sont chouettes.... Demandez notre catalogue contre 3 timbres à 3.2 Ffrs.
Peut être étendue à 8 MO Réf.: 00200 2490 Ffrs
Â2Û0Û 2 8 MO
Extensible à 8 MO Réf.07113 1950FFrs
CHOUETTE IKFORWATIOUE
K° SfREK 352 323 281 00019
Batte Paelote 42
F 67340 IKGWLC.CER
Ces prix, indicatifs s’entendent au départ de notre Etablissement, paient ent à la commande (+30 Fprs de participation au port) ou contre- remboursement +port. Sauf mention ootraire
M. : (33) 88 895 241 Fox: (33) 88 895 230
Un AT 80286 à la portée de n'importe quel AMIGA 500 pour
2090 FFRS
et le tout en mode multi-tâche.
Indice NORTON 6.1 - ATONCE utilise les souris, écran, disque dur et imprimante de l'AMIGA. Pas de soudure.... Rien que de la simplicité CHOUETTE.... Allie l'Amiga-DOS au monde du MSDOS (à partir de la version 3.2)... Et bientôt le même produit pour l'Amiga 2000....
A commander dès que possible sous la référence 00735....
pP jnHBE HEHn
forme de banque, grâce aux quelques lignes suivantes:
Load Iff “Ecran.IFF", 1 : Rem Chargez bien sûr votre écran
Spack 1 To 6 : Rem Compactage maison.
Merci François...
Save “ComRoid_Screen.ABK”,1
Screen Close 1
Edit
A noter pour les fainéants de nature qu’ils pourront s’esbaudir devant les talents de graphiste de notre vénéré rédacteur en chef en achetant la disquette que nous n'allons pas manquer de mettre en vente incessa- peu sous ment.
LE TABLEAU
La définition du tableau est stockée dans... ben, dans le tableau LEVEL (ligne, colonne). Chaque brique mesurant 16 pixels de large et la bordure de la fenêtre de jeu mesurant quant à elle 8 pixels, sur 8 de haut, on en déduit que les coordonnées écran d’une brique sont obtenues par les formules :
x_écran = 8+(colonne*16) y_écran = 8+(ligne*8)
On s’en servira dans la procédure DISPLAY LEVEL, lorsque l’on dessinera le tableau.
A l'inverse, les coordonnées-tableau d’une brique à partir de ses coordonnées écran sont calculées grâce aux formules :
colonne = (x_écran-8) 16 ligne = (y_écran-8) 8
Mais pourquoi donc se masturber les neurones à café à rechercher les coordonnées-tableau d’une brique à l’écran ? Tout simplement pour savoir si la balle a rencontré un brique ou non ! Car en effet, nos briques sont affichées sous forme d’icônes (memory bank 2 en AMOS) et qu'il n’existe aucun moyen de détecter les collisions icône bob (et inversement). Cela nous oblige donc à quelques galipettes, dont on se serait quand même bien passé : récupération des coordonnées- écran de la balle, conversion en coordonnées-tableau et vérification de la présence ou non d’une brique à cet endroit. Si ce test est positif et si la brique n’est pas indestructible (autrement dit, si LEVEL(coionne, ligne) est supérieur à 0 et inférieur à 7), on commence par effacer la brique au moyen de l’instruction BAR. Puis on affiche au même endroit le Bob numéro 3 dont l'animation symbolise la disparition de la brique. Un petit coup de Rnd par dessus tout ça pour décider si une pastille- bonus doit apparaître, et on inveise finalement la direction de la’balle. Remarquez que cette inversion est brutale ; un bon casse-brique moderne se devrait d'effectuer quelques tests supplémentaires pour décider le plus précisément possible dans quelle direction la balle doit repartir, en fonction de son point de collision avec la brique.
C’est d’ailleurs à ce moment-là que se produit un petit
BON$ =BÛN$ +"Boucle: If BC(RO,2,2) then Jump Fini;"
BON$ =BON$ +"Down: Let Y=Y+1; If Y>242 then Jump Fini;"
BON$ =BON$ +"Ok: Pause; Jump Boucle;"
B0N$ =B0N$ +"Fini: Let RE=4;"
Dim BONUS(3) : Rem Nombre max. de bonus simultanés Dim LEVEL(20,30) : NIVEAU=1 : INIT_LEVEL
A
SCORE=0 : VIES=3 While VIES
For 1=0 To 3 : BONUS(I)=0 : Next I : NB BONUS=0
A__
' Dessine l'écran __
DISPLAY_LEVEL[NIVEAU]
A
Amai 0,CHRONO?
Bob 1,-100,220,1 : Channel 1 To Bob 1 : Amal 1,BAL$
Bob 2,-100,229,2 : Channel 2 To Bob 2 : Amal 2,RAQ$
' Initialisation des registres AMAL
Amreg(Asc("D")-65)=2 ; Rem Vitesse initiale de la balle
Amreg(Asc("E")-65)=0 : Rem Détecteur de collision à 0 _
' Attend un Cnck de la souris _
Amal On 2
For 1=0 To 31 : Colour 1,0 i Next I View : Fade 2 To -1 : Rem Met toutes les couleurs Repeat TEMP=Amreg(0)
Synchro
Bob 1,TEMP,221,1 : Rem La balle suit la raquette Wait Vbl Until Mouse Click
' Boucle principale
Amal On Repeat
Wait Vbl ; Synchro
On Amreg(4) Gosub RAQUETTE,MUR,MONSTRE,BONUS If Amreg(4) 10
BX=(X Bob(1)-8) 16 : BY=(Y Bob(1)-8) 8 : C=LEVEL(BX,BY)
If C : Xl=8+BX*16 : Y1=8+BY*8 : Bell C*8 If COI
Synchro : Bar XI,Y1 To Xl+16,Yl+8 LEVEL(BX,BY)=u : Dec NB_BL0CS If Rnd(10)>7 If NB_BONUS 3 Inc NB_B0NUS
1=0 : While BONUS(I) : Inc I : Wend : BONUS(I)=1 Amreg(5)=1+4 : Bob 1+4,XI,Yl,10+1 Channel 1+4 To Bob 1+4 : Amal 1+4,BON? : Amal On 1+4 End If End If End If
Bob 3,X1,Y1,10 : Channel 3 To Bob 3 : Amal 3,B$ ; Amal On 3
Amreg(1,1)=-Amreg(1,1)
Add SCORE,100+C*1Q
End If
End If
If NB_BONUS>0 : For 1=0 To 3 If BONUS (1) and Chanmv (I *-4) =0
Bod Off 4+1 : Amal Off 4+1 : Dec NB_BONUS : BONUS(I)=0 End If Next I : End If Until Amreg(4)=10 or NB_BLOCS=0 or Asc(Inxey?)=27
) Explosion ae la raquette If NB_BLOCS
Bob Off 1 : Sam Raw 8,Start(5),Length(5),5000 While Chanan(2) : Synchro : Wait 5 : Wend Bob Off : Dec VIES Eise
' On n'a ici que deux niveaux, mais rien n'interdit ' d'en rajoucer...
Add NIVEAU,1,1 To 2 : INIT_LEVEL End If Wend
' Et voila, c'est fini _
NB_BLOCS=0 For Y=0 To z8 For X=0 To 13 C=LEVEL(X,Y)
If C
Pasce Icon 8+X*16,8+Y*8,C If c
Inc NB BLOCS End If End If Next X Next Y
Douole Buffer End Proc
LEVELJ Data 0 Data 0 Data 0 Data 1 Data 1 Data 1 Data 2 Data 3 Data 4 Data 5 Data 6 Data 0 Data 0 Data 0 Data 7 Data 0 Data 0 Data 0 Data 0 Data 0 Data 0 Data 0 Data 0 Data 0 Data 0 Data 0 Data 0 Data 0 Data 0
LEVEL_A: Data 0,0, Data 0,0, Data 0,0, Data 1,1, Data 0,0, Data 0,0, Data 2,2, Data 3,3, Data 4,4, Data 5,5, Data 6,6, Data 7,7, Data 0,0, Data 0,0, D-:ta 0,0, Data 0,0, Da ta 0.0, Data 0,0, Data 0,0, Data 0,0, Data 0,0, Data 0,0, Data 0,0, Data 0,0, Data 0,0, Data 0,0, Data 0,0, Data 0,0, Data 0,0,
0,0,0
0,0,0
0,0,0
1,1,1
0,0,1
0,0,1
2,7,2
• 7,3,3
4. 7.4
7. 5.5
6. 6.6 7,7,7 0,0,0 0,0,0 0,0,0 0,0,0 0,0,0 0,0,0 0,0,0 0,0,0 0,0,0 0,0,0 0,0,0 0,0,0 0,0,0 0,0,0 0,0,0 0,0,0 0,0,0
0,0,0,
0,0,0,
0,0,0,
1,1,1,
0,0,0,
0,0,0,
7. 2.7, 3,7,3,
7. 4.7, 5,7,5, 6, 6, 6,
7. 7.7, 0,0,0, 0,0,0,
7. 7.7, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0,
0,0,0,0, 0,0,0,0, 0,0,0,0, 1,1,1,1, 0,0,0,0, 0,0, 0,0, 7,2,7,2,
3. 7.3.7, 7,4,7,4,
5. 7.5.7, 6, 6,6, 6, 7 7 7 7
1 r 1 r ' t 1 i 0,0,0,0, 0,0,0,0,
7. 7.7.7, 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0,
0,0,0,
0,0,0,
0,0,0,
1,1,1,
0,0,0,
0,0,0,
2,7,2,
7. 3.7, 4,7,4,
7. 5.7, 6, 6, 6, 0,0,7, 0,0,0, 0,0,0,
7. 7.7, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0,
0,0,0,0, 0,0, 0,0, 0,0,0,0, i, i, 1,1, 0,0,0,0, 0,0, 0,0, 2,2,2,2,
3. 3.3.3,
4. 4.4.4,
5, 5, 5, 5,
6, 6,6, 6, 7,7,7,7,
,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, G,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 0, 0,0,0, 0,0, 0,0, 0,0,0,0, 0, 0,0, u, 0,0,0,0,
0,0,0,
0,0,0,
0,0,0,
1,1,1,
0,0,0,
0,0,0,
2,2,2,
3. 3.3,
4. 4.4,
5. 5.5,
6. 6.6, 7,7,7, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0, J, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0, 0,0,0,
effet visuel assez désagréable : comme on est en double-buffer, l'instruction BAR agit en fait deux fois, d'abord dans l'écran physique puis dans l’écran logique. Les Bobs étant automatiquement effacés avant puis ré-affichés après, un petit ralentissement inévitable survient (ou alors, s’il n’est pas inévitable, c'est que j’ai mal cherché ; pourtant, j’ai passé des heures à m'emm... avec les instructions Autoback et consoeurs, sans arriver à faire mieux que ça. Si quelqu’un connaît une astuce...?).
T’AMAL OU ?
Cinq chaînes d’animation AMAL ont donc été définies : BALS s'occupe de la balle, RAQS de la raquette, et BONS des différents bonus qui tomoent. La quatrième, CHRONOS, ne fait rien de visible à l’écran; il s’agit là d’une astuce que j'ai repiqué à François Lionet dans son excellente initiation à AMOS : par défaut, chaque canal AMAL est attribué au sprite hardware de même numéro. Ici, CHRONOS est défini sur le canal 0. Celui du sprite de la souris. Mais comme on n’utilise pas ce sprite, ses effets ne sont pas visibles à l’écran. Je trouve ça très rigolo comme manière de procéder. En l’oc- curence, CHRONOS se contente d'incrémenter un compteur de 0 à 500 avant d’augmenter la vitesse de déplacement de la balle. L’interruption AMAL se produisant tout les 1 50e de seconde, je n’ai pas besoin de ressortir tous mes cours de matns de 6e pour calculer que la vitesse de balle augmente toutes les 10 secondes. A noter que certains préfèrent l’augmenter proportionnellement au score, mais je trouve cette manière de procéder plus amusante. Chacun ses goûts. Et eniin, la cinquième chaîne est “statique” : elle définit seulement l’animation (c.a.d la suite d’images) à utiliser pour le Bob numéro 3.
Quant aux registres globaux d AMAL (RA à RZ), seuls quelques uns sont utilisés pour communiquer des données d’un canal à un autre; en l’occurence, les coordonnées de la balle et de la raquette, la vitesse de la balle et le nombre de bonus en train de tomber.
PERSPECTIVES D’AMELIORATIONS
Oh, bien sûr, il y en a quelques-unes... On n’allait tout de même pas vous mâcher tout le travail, non? La première, elle est évidente, est de faire en sorte que les bonus en soient réellement, au lieu de se contenter de tomber bêtement jusqu’en bas de l'écran. Ils pourraient par exemple augmenier le score ou donner aes opnons à la raquette... Deuxièmement, il serait de bon ton de rajouter des petites bestioles qui feraient qu’à embêter le joueur. Et puis, pourquoi pas. Autoriser le jeu à deux, la continuation de la partie, et que sais-je encore? Ça n’est qu’une question d'imagination.
Stéphane “Septh” Schreiber et Yves “Huit” Huitric
RAQUETTE: Bell 48 : Return : Rem Cloche normale
MuR: Bell 16 : Return : Rem Cloche grave
MUNS1RE: Boom : Return : Rem Boum !
BONUS: Return
Proceaure INIT LEVEL
' Lit les datas du niveau en cours
Shared NIVEAU,LEVEL()

Restore "LEVEL_"+Chr$ (64+NIVEAU)
For Y=0 To 28 For X=0 To 13 Read LEVEL(X,Y)
Next X Next Y End Proc
Procédure DISPLAY_LEVEL[L]
' Affiche le tableau en cours Snared NIVEAU,NB BLOCS,LEVEL()
Fade i : Wai 16 : Screen Close Ü
Auto View Off : UnpacK 6 To 0
Screen Display u,$ 81,$ 29,320,256
Limit Mouse 153,270 To 345, 2-70 : Hide
Set Pattern -9
Ink 31,0 : Bar 9,9 To 231,242
ATTENTION ! DERNIER A.N.T.
INTEGRE A COMMODORE REVUE
NOUVELLE FORMULE UNIQUEMENT PAR ABONNEMENT !
VOIR PAGE 34
0,0,0,0,0 0,0,0,0,0 0,0,0,0,0 1,1,1,1,1 0,0,0,0,0 0,0,0,0,0 2,2,2,2,2 3,3, 3, 3,3
4. 4.4.4.4
5. 5.5.5.5 6, 6,6, 6,6 7,0,0,0,0 0, 0,0, 0,0 0,0, 0,0,0 0,0,0,0,0 0, 0, 0,0,0 0,0,0,0,0 0,0,0,0,0 0,0,0,0,0 0,0,0,0,0 0,0,0,0,0 0,0,0,0,0 0,0,0,0,0 0,0,0,0,0 0,0,0,0,0 0,0,0,0,0 0,0,0,0,0 0,0,0,0,0 0,0,0,0,0
IHHBIB BHHn
IMIGHë
APPLICATION
BOBS, SPRITES ET AUTRES REJOUISSANCES GRAPHIQUES
L’Application GfA de ce mois-ci découle d’une idée toute bête : pourquoi ne pas utiliser DeluxePaint pour créer tous les objets graphiques
- Bobs et Sprites en particulier - dont on peut avoir tôt ou tard grand besoin ?
Parce que je sais pas pour vous, mais moi, depuis le temps, j’en étais encore à utiliser cette ignominie d’ObjEdit fourni avec le bon vieil Amiga- Basic des familles. Remarquez, ce programme possède un avantage certain : il sauvegarde des fichiers Sprites - ou Bobs, c'est pareil - directement exploitables par l’instruction OBJECT.SHAPE, instruction qui, dans sa version GFA-Basic, est parfaitement compatible avec celle de l’AmigaBasic. C’était toujours ça de pris.
Seulement il faut bien reconnaître que question dessin, DeluxePaint est encore ce qui se fait de mieux ; aucune comparaison possible en tout cas avec ObjEdit. Du coup, je me suis dit qu’en écrivant une routine de conversion des fichiers IFF en fichiers Bobs-ou Sprites, puisque je vous dis que c’est pareil-, j’arriverai peut-être à créer des graphismes dignes de mon talent. Donc acte.
PASSE-MOI LA BROSSE A RELUIRE
Le programme qui suit est ma foi fort simple, tout autant que son mode d’emploi. Le désormais célèbre filerequester apparaît, dans lequel on sélectionne le nom du fichier IFF à convertir. Il est préférable que ce fichier soit une brosse que vous aurez au préalable découpée sous Dpaint, vu que le programme convertit le fichier IFF en Bob sans se soucier une seule seconde de sa taille. Si vous voulez vous dessiner des Bobs de la taille de l’écran, rien ne vous en empêche. Une fois toutes les opérations correctement effectuées, un nouveau fichier est créé du même nom que le premier, mais avec l’extension .BOB ou .SPRITE en sus.
Du côté des gadgets, il vous est possible de sauvegarder la palette séparément, pour la récupérer dans vos programmes plus tard ; dans ce cas, un second fichier est également créé, d’extension .PAL.
Pour ceux que les détails sordides intéressent réellement, je suis obligé d’avouer ne pas connaître ni d’Adam, ni d’Eve, ni de qui que ce soit d’autre le format exact des chaînes de caractères utilisées dans l’instruction OBJECT.SFIAPE. M'enfin, qu'à cela ne tienne, il suffisait de regarder le listing d’ObjEdit pour faire exactement la même chose que lui, tout pareil.
La routine de lecture d’une image IFF est quand à elle légèrement plus intéressante. C’est d’ailleurs elle qui occupe la quasi totalité de ce listing, c’est tout dire. Signalons pour ceux qui se sentiraient concernés, que je me contente de lire les chunks BMHD (bitmap header pour les intimes), CAMG, BODY et CMAP, ce dernier n’étant pas obligatoire (alors que les trois premiers, si). La routine s’étend de la ligne 'WFHILE NOT EOF( 1 )’ jusqu’à la ligne ‘CLOSE 1' incluses. Les plus curieux peuvent toujours aller la disséquer un peu, voire même l’améliorer, je n’ai jamais prétendu posséder la science infuse... A+
Voilà. Je ne vous quitterai pas sans vous faire l’affront de vous rappeler que l’ANT attend avec grande impatience vos chèques d'abonnement : profitez-en dès maintenant et tant que vous le pouvez : après, c’est Noël, vous ferez plein de cadeaux et toc, plus un rond de côté pour ce cher ANT... Ce serait tout de même dommage, non ?
Stéphane Schreiber
CLEAR
ON BREAK GOSUB broken OPTION BASE 0
,image_iff$
"OK Boss"
FILESELECT "Nom du fichier IFF ILBM ;
IF LEN(image_iff$ ) AND EXIST(image_iff$ )
OPEN "i", 1,image_iff$
IF INPUT$ (4, 1)="FORM"
form_length%=CVL(INPUT$ (4, 1) )
IF INPUT$ (4, 1)="ILBM" flags&=0
WHILE NOT EOF( 1)
chunk_name$ =INPUT$ (4, 1) chunk_length%=CVL(INPUT$ (4, 1))
SELECT chunk_name$
CASE "BMHD"
flags4=BSET(flags&,0) width&=CVI(INPUT$ (2, 1) ) heightS=CVI(INPUT$ (2, 1)) x&=CVI(INPUT$ (2, 1)) y&=CVI(INPUT$ (2, 1)) n_planes&=ASC(INPUT$ (1, 1)) masking&=ASC(INPUT$ (1, 1)) compression&=ASC(INPUT$ (1, 1)) pad&=ASC(INPUT$ ( 1, 1)) transparent_color&=CVI(INPUT$ (2, 1)) x_aspect &=ASC(INPUT$ (1, 1)) y_aspect&=ASC(INPUT$ (1, 1)) page_width&=CVI(INPUT$ (2, 1)) page_height&=CVI(INPUT$ (2, 1))
IF page_width&=0 SELECT widthS CASE 1 TO 320 page_width&=320 CASE 321 TO 640 page_width&=640 DEFAULT
A. N.T.
Nouvelle
formule
uniquement par abonnement Page 34
page_width&=width&
ENDSELECT END IF
IF page_height&=0 SELECT heightS CASE 1 TO 256 page_height&=256 CASE 257 TO 512 page_height&=512 DEFAULT
page_heightS=height&
ENDSELECT ENDIF CASE "BODY"
flags&=BSET(flags&,1) body%=AllocMem(chunk_length%,&H10001)
Public, Clear
IF body% body_length%=chunk_length%
BGET l,body%,body_length%
ELSE
ALERT 1, "Pas de mémoire pour|charger le BODY",3, "Zob" dummy&
END ENDIF CASE "CAMG"
flags&=BSET(flagsS,2) view_modesl=CVL(INPUT$ (4, 1))
CASE "CMAP"
flags&=BSET(flagsS,3) nb_coul&=DIV(chunk_length%,3)
DIM coul&(nb_coul&)
FOR i&=0 TO PRED(nb_coul&)
coulS(i&)=SHL(ASC(INPUT$ (1, 1)),4) OR ASC(INPUT$ (- 1, 1)) OR SHR(ASC(INPUT$ (1, 1)),4)
NEXT i&
DEFAULT
RELSEEK 1,chunk_length» ! Ignore le chunk
ENDSELECT
IF odd(chunk length ) ! Si longueur impaire
RELSEEK 1,1 END IF WEND CLOSE 1
' Il faut au moins le BMHD, le LE ' et le BODY pour décompacter l'image
IF flagsi AND mil OPENS 1,0,0,f ,ge wi iths,page_heights + ll,njplaness, view modes
OPENW fl,0,0,iâge widths,page_heights+ll,0,SH21D00
- SetWindowTitles(WINDCW(1),0,0)
IF tiagss AND 4X1000
- LoadRGBl(ViewPortAddress(WINDOW(1)),VARP Trfcouli(0)),nb_couiSi
ELSE
ALERT l,"Fas i? CclorMap",1,"Ah Lin 1",
END '
srcî=bodyS
rastfort =SCREEN(1)- 64 bitmap =LONGjrastport ‘1)
DIM bitplane (n_planess-l,heights-l) longueur lignet=6ros_bytes(page_widths)
FOR is=0 TO PRED(n planesS)
FOR j&=0 TO FRED(heightS) bitpla.ne! (il, jS) =LOHG(t itma) +8+ (iS*4) } + ( ( js+ll) *lon jueur_ligneS)
NEX7 ji NEXT is
IF compressions longueur ligne*=0rw bytes (widths)
FOR iigne4=0 TO PRED(heights)
FOR planS=0 TO PRED(n_planesS) des- i=bitplane (plans, igneS)
11S=1ongueu r_li gne S WHILE 11S>0 nS=PEEK(src!) ! Octet de contrôle
INC src!
IF ns 128 ! Suivi de (n+1) octets de don
nées INC ni SUB 11 s,n&
BMOVE src!,dest!,n*
ADD src!,ns Alt des:!,: »
ELSE IF ns >128 ! Répète l'octet suivant ( n) +1
fois ni=256-ni+l SUE Ils,ni aS=PEEK(src!)
INC src ¦
DO
POKE dest ,aS INC dest! Ici nS LOOP WHILE nS>0 END IF WEND NEXT pians NEXT lignes ELSE
’ image non compressée size!=@row_bytes(widths)
FOR ÜgneS=0 TC PRED (heights)
FOR planS=0 TO PRED(n_planesS)
BMOVE src!,bitplane!(plans,lignes),size!
AD! Srcl,size!
NEXT plans NEXT lignes ENDIF
v
fvsprites=0
fichier_bob$ =image_iff$ +".BOB"
IF width& =16
ALERT 1,"Créer un Bob ou un Sprite ?",1,"Bob|Sprite",r& IF r&=l
fvsprite&=l
fichier_bob$ =image_iff$ +".SPRITE"
ENDIF ENDIF
OPEN "o", 2,fichier_bob$
I ColorSet ! DataSet ! Profondeur 1 Largeur I Hauteur ! Flags :
! PlanePick ! PlaneOnOff
PRINT 2,MKL$ (0);
PRINT 2,MKL$ (0);
PRINT 2,MKI$ (n_planes&);
PRINT 2,MKI$ (widths);
PRINT 2,MKI$ (height&);
PRINT 2,MKI$ (fvsprite&+24);
SAVEBACK+OVERLAY+fvsprite
PRINT 2,MKI$ (2An_planes&-l);
PRINT 2,MKI$ (0);
FOR plan&=0 TO PRED(n_planes&) ! Plans de bits FOR ligne&=0 TO PRED(heights)
BPUT 2,bitplane%(plans,lignes),@row_bytes(width&) NEXT lignes NEXT plans IF fvsprite PRINT 2,MKI$ (coul&(1));
PRINT 2,MKI$ (coul&(2));
PRINT 2,MKI$ (coul&(3));
ENDIF CLOSE 2
OPEN "-o", 3,image_iff$ +".PAL"
BPUT ?3,V:coulS(0),nb_coul&*2 CLOSE 3
CLOSEW 1 CLOSES 1 ELSE
ALERT 1,image_iff$ +"lest incomplet.IDécompactage impossible.", 1,"Prout",dummyS CLOSE *1 ENDIF IF bcdy :
- FreeMem(body%,body_length!)
CLR body!
ENDIF
ELSE
ALERT l,image_iff$ +"|n'est pas un fichier ILBM",1,"Crotte",dummyS END ENDIF ELSE
ALERT l,image_iff$ +"ln'est pas un fichier IFF",1,"Zut",dummyS END
ENDIF ENDIF EDIT ' FUNCTION row_bytes(row_pixels&)
RETORN SHL(SHR(ADD(row_pixels&,15),4),1) ENDFUNC 'PROCEDURE broken CLOSEW 1 CLOSES 1 IF body!
- FreeMem(body!,body_length%)
ENDIF
EDIT RETURN
IGIHEIO HBHP
iMiuT 5S555i ù
REQUESTER
Avant de commencer à répondre à vos questions indiscrètes, je voudrai remercier tous ceux (nombreux !) Qui nous ont dernièrement envoyé des programmes (Jean- Michel, merci pour le virus), mais où avez-vous la tête ? Pensez-vous que nous allons nous amusez à taper des listings de plusieurs pages pour contempler vos chef- d’œuvres ? Envoyez-nous tout ça sur disquettes SCREU- GNEUGNEUHHH !!
Question : Je suis utilisateur “professionnel” de l’Amiga : deux Amiga 2500 équipés en cartes accélératrices, drives winchester, et même une carte DSP fabriquée maison (FM : alors là bravo !), que j’utilise pour le traitement d’images en observation astronomique (FM : encore un qui regarde de trop près sa feuille d’impôt !). J’ai besoin de renseignements sur des produits hard et soft, dont je ne trouve trace ni chez le marchand du coin, ni dans les revues qui traitent de l’Ami- ga. En voici la liste :
1) Existe-t-il une carte de numérisation d’image dire “frame grabber”, qui s’insère dans le bus de l’Amiga 2000, capable de numériser disons une dizaine d’images par seconde (FM : fichtre !), et possédant une bonne résolution (typiquement 512*512 par pixels et > 16 niveaux de gris par pixels) ?
2) Existe-t-il un traitement de texte à vocation scientifique, c’est-à-dire pouvant sortir des textes en mode graphique, et ayant des caractères spéciaux (genre intégrale, caractères grecs, etc.) ?
3) Existe-t-il des cartes DSP (Digital Signal Processor, ou à base de transputer) pour le bus Amiga 2000 ?
4) FM : Il y avait ici une quatrième question, mais comme je n’y ai rien compris, je l’ai sauvagement coupée.
Farrokh Vakili Astronome CNRS
Réponse :
1) Pas à notre connaissance.
2) Le logiciel AmigaTEX devrait vous satisfaire. Coût environ
1. 600 F, distribué par : ESSONE MAILING, 8, rue du Bois- Sauvage, 91024 Evry Cedex. Tél. : 64.97.96.54 Apparemment voilà des gens qui font bien les choses : ils vous enverrons une disquette de démonstration du logiciel contre 50 F franco de port remboursés en cas d’achat, ce qui vous permettra de ne pas acheter en aveugle.
3) Nous savons qu’un produit de ce type est en cours de développement en Allemagne. Toutefois si un lecteur avait connaissance de l’existence d’une telle carte, ce serait sympa de nous le signaler.
O
Question : Voici quelques petites questions au sujet de mon Amiga 2000B XT :
- Il m’arrive souvent d’avoir à réinsérer 2 fois (voire 3) une disquette en dfO: pour que le Boot soit pris en compte. Il se produit le même effet que sur une disquette non installée : réapparition de la main tenant une disquette à l’écran ! Un CTRL-A-A ne résoud pas le problème. S’agit-il d’un défaut du lecteur, d’une incidence de la ROM 1.3 que j’ai mise à jour au début de mes ennuis (coïncidence ??), ou d’une tête sale ? Une fois lancé, tout se passe normalement...
- Autre chose : j’ai l’intention de me procurer une carte EGA (côté PC de l’A2000), mais cela impliquera-t-il un changement du moniteur 1084S ? Et faudra-t-il modifier l’Au- toexec.bat et (ou) le Config.sys ?... Et de quelle façon ? Enfin, les logiciels prévus en CGA chargeront-ils normalement ?? Merci beaucoup de bien vouloir répondre à mes interrogations. Bravo pour votre revue, et tout particulièrement en ce qui concerne les cours de PAO sur Professional Page. Puissiez-vous étendre cette bonne idée à d’autres logiciels !...
I. ionel Galerneau (Rosnay)
Réponse : A priori, votre problème de boot n’a rien à voir avec le kickstart 1.3. Ce qui se passe probablement est que la tête inférieure de votre lecteur de disquette est peut-être légèrement désalignée, ce qui peut provoquer des pertubations au boot, car à ce moment, la tête est dans une position extrême. Le problème semble n’apparaître qu’au boot car si vous bootez un jeu, la piste 0 (boot) est lue entièrement et le programme n’y revient plus (ou rarement) et si vous utilisez une disquette comportant des fichiers, les données vont rarement jusqu'en piste 0 (disquette pleine à craquer).
Il vous faut donc confier votre lecteur de disquette à un service après-vente. Prenez garde, ces braves gens préfèrent souvent changer le matériel purement et simplement plutôt que de faire un réglage.
Il ne sera pas besoin de changer votre moniteur, ni de modifier 'Autoexec.bat, ni le Config.sys, et enfin le logiciel CGA devra tourner car une carte EGA est compatible CGA.
L’idée sera étendue à d’autres logiciels, d’autant que Commodore Revue comportera plus de pages "revue” car TANT devient indépendante.
Nous pensons que cette formule satisfera tout le monde car chacun en aura plus dans le domaine qui l’intéresse. Abonnez-vous tous vite à TANT qui a besoin de votre soutien. Nous pensons que vous ne serez pas déçus quand vous découvrirez toutes les gâteries qu ’on vous a préparées.
O
Question : Je possède depuis quelques mois le l.attice C 5.02 dont je suis très satisfait par ailleurs, sauf en ce qui concerne le debugger que je n’ai jamais pu faire marcher correctement. En effet, comme tout bon novice qui utilise pour la première fois un logiciel, je prends le manuel et je suis l’exemple proposé. Dans le cas présent, il s’agit de compiler et linker le programme “Lines” (FM : c’est un programme d’exemple fourni avec le compilateur) avec la commande “LC-d3-La Lines” puis appeler le debugger avec «cpr Lines». Jusque-là pas de problème, tout se passe bien. Ensuite il s’agit d’exécuter pas à pas le programme en appuyant sur [return]. Pour les premières lignes tout se passe bien mais au moment de l’exécution de la ligne qui ouvre la fenêtre, alors là ça se gâte et ça finit chez le gourou. Ce programme par ailleurs tourne très bien en dehors du débugger.
J’ai ensuite essayé le debugger avec un programme personnel mais là encore je me suis heurté à des problèmes : pas d’affichage ou encore plantage.
J’ai fait de nombreux autres essais mais tous aussi vains les uns que les autres. C’est donc en désespoir de cause que je fais appel à vous, si vous pouviez me fournir une solution; cela me serait d’un grand secours.
Jean-Paul Dubois (Marolles)
Réponse : Fichtre, la question est intéressante. J’ai souvent entendu parler des bugs du cpr (debugger du Lattice) mais je n’en ai rencontré que fort peu et pourtant, Max ou Denis pourrait vous le confirmer, je n’ai pas mon pareil pour trouver les bugs sournois et ainsi avoir matière à laisser libre cours à ma médisance.
CIHB3B OHHD
Il faut que je précise que je n’ai jamais eu le 5.02 car je suis passé directement du 4.01 au 5.04. Avec le 5.04, je ne suis pas arrivé à faire planter cpr avec le programme Lines et pourtant j’ai essayé de bon cœur pas mcd de choses peu orthodoxes.
Pourtant il est clair que vos essais ont été fait correctement, et il ne semble pas raisonnable de penser qu’il y ait tant de différence entre le 5.02 et le 5.04, alors qu’en est-il ? Première suggestion : avez-vous bien installé le Lattice comme expliqué dans la notice ? Ceci peut avoir son importance. Deuxième suggestion : avez-vous un programme quelconque qui tourne en tâche de fond dès que vous avez booté le système ? Je pense à un utilitaire du domaine public par exemple. Si c’est le cas, c’est peut-être lui qui serait mal programmé et serait ainsi la source de vos ennuis. Il ne faut pas se faire d’illusions, le DP est plein de programmes douteux qui semblent fonctionner mais provoquent des gourous sournoisement dans certaines circonstances parce que développés sans respect des directives Commodore. D’ailleurs il est vrai que cpr est un tantinet délicat, mais il permet aussi de de- bugger en multi-tâche plusieurs programmes en même temps. On a rien sans rien. Toutefois, si d’autres parmi vous, ô lecteurs vénérés, avez connu ce genre de problème, écrivez nous un petit mot, histoire de voir s’il est possible de tirer l’affaire à Claire.
O
Question : Lors du compactage de gros fichiers, environ 500 k, j’ai remarqué qu’aucun des compacteurs actuellement disponibles (PowerPacker v3.b, litanies cruncher...), n’accomplissait sa tâche sans l’éternelle intervention du Guru. Que faire ?
- Félicitations pour la rubrique consacrée à Amos, c’est excellent mais c’est encore trop court !!! Est-il possible de trouver le version 1.2 d’Amos, avec doc en français, actuellement ?
- Max pourrait-il ou aurait-il une routine permettant de jouer un module tout en chargeant un second pour le jouer à la fin du premier, et tout ceci sans interruption sonore lors du passage cl un module a 1 autre ’ Emmanuel Becker (Metz)
Réponse : Je n’ai rencontré aucun ennui de ce type avec Po- werpacker v2.2a, disponible sur la disquette DP Prestige n° 1. Il est logique d’espérer que tout fonctionne aussi bien avec la version 3.b. Mais vu la taille de vos fichiers, vous avez peut être tout simplement un problème de mémoire disponible ?
Et bien non, il n'est pas encore possible de trouver Amos avec une doc en français. Quand on pense que le développeur d’Amos est français, on peut légitimement se demander ce que font les distributeurs dans notre beau pays... Bref la situation est un tantinet lamentable n’est-il pas ?
Vous parlez probablement des modules SoundTracker ?
J’ai transmis la demande à Max qui a répondu qu’il avait horreur qu’on le dérange pendant sa sieste. Quoi qu'il en soit l’élaboration d’une telle routine ne présente pas de difficultés particulières à condition encore une fois de disposer de suffisamment de mémoire chip.
O
Question : Fidèle lecteur de votre excellente revue depuis le n°l, je suis possesseur d’un Amiga 2000 depuis trois ans et viens d’acquérir d’occasion (FM : Aïe !) Une carte accéleratri- ce CSA 0992 D qui malheureusement ne fonctionne pas sur ma machine. Ayant essayé de rechercher l’importateur de CSA en France, on m’a communiqué l’adresse de TECSOFT à Metz. J’ai contacté par téléphone cette société. La personne qui m’a répondu m’a précisé ne plus être dépositaire de CSA et m’a gentiment laissé avec mon problème !
Pouvez vous m’aider en me communiquant l’adresse de CSA en France ou aux USA. Cela me soulagerait de savoir que je n’ai pas investi inutilement de l'argent dans cette carte.
Bernard Laupie (Mauguis)
Réponse : La société CSA est honorablement connue pour le manque de fiabilité de ses cartes. Tellement même qu’elle a fini par faire faillite pour être rachetée par une firme américaine qui ne veut surtout pas s’occuper de ces problèmes. D’ailleurs, à notre connaissance, personne ne veut s’en occuper, et il faut malheureusement admettre que vous n'avez pas fait une bonne affaire. Ainsi se termine tristement cet épisode de “règlement de compte à octet corral".
Puissent les déboires de cet infortuné lecteur servir d’avertissement aux autres.
O
Question : Je ne sais toujours pas comment faire tourner le “lecteur IFF” du mois de juillet. Je suppose qu’il faut ouvrir quelque chose, mais quoi ?
A part cela, je me suis bien accoutumé des ouvertures des librairies et j’ai travaillé sur le blitter sans trop de problèmes, mais peut-on par contre m’expliquer ce qui suit : quand je mets 3 ou 4 bitplanes dans le programme et que je change dans move.l $ c0(al),al le $ c0 par $ c4 ou $ c,8, cela me change la couleur du blitter (FM : Ah ? Bintiens !). J’aimerai comprendre l’instruction de manière bien définie. Voilà, c’est tout pour aujourd’hui. Patrick Ilurtrel (Vichy)
Réponse : Ah ! Revoilà ce vieil habitué de Patrick. De quoi s’agite-t-il cette fois ? Le lecteur IFF fonctionne très simplement: il suffit de l’assembler et de le sauvegarder sous la forme d'un fichier exécutable. Il suffira ensuite d'appeler ce programme depuis le CLI et donnant comme paramètre le nom du fichier IFF à charger.
Argh ! Le blitter n’a rien à voir avec les couleurs. Les programmes d’exemples du blitter utilisent des écrans Intuition à 1,2,3,4 bitplanes permettant respectivement 2,4,8,16 couleurs. Lorsqu'on ouvre un écran Intuition, on récupère un pointeur sur la structure de cet écran ouvert (Lapalisse je vous salue bien). A l’offset ScO de cette structure se trouve l’adresse du premier bitplane de l’écran, à l’adresse $ c4 se trouve l’adresse du deuxième bitplane et ainsi de suite.
Ceci étant dit, on place avec le blitter des bits dans les bitplanes. C’est la position des bits placés qui produira les couleurs des points à l’écran. Il ne faut pas confondre bit dans un bitplane et point à l’écran.
Exemple: avec un écran à 4 bitplanes, un point est codé sur 4 bits (un bit par bitplane). Si pour un point aucun bit n’est mis on a le code binaire 0000 et la couleur du point sera la couleur de fond fournie par le registre machine colorOO. Si pour le même point on place un bit dans le troisième bitplane on aura le code 0100 et la couleur du point sera celle du registre machine color04 (0100 binaire = 4 décimal) et enfin dernier exemple, si pour le point on place les 4 bits, on aura le code 1111 soit la couleur du registre coloris. On voit par là qu’il est possible avec un écran Intuition à 4 bitplanes d’utiliser les registres colorOO à colorl5 (du copper, pas du blitter) et c’est pour ça qu’un écran Intuition peut supporter jusqu’a 16 couleurs. Voilà. A bientôt Patrick. Au fait as-tu pensé à t’abonner ?
3615
COMREV
TRIBUNES
FORUMS
I
I
I
I
I
I
I
EDITORIAL
ENVIRONNEMENT
HIT PARADE
ICON
TELECHARGEMENT
EN DIRECT
VOUS
PROPOSE
RECHERCHEZ...
T E C H N I K
EXPANSION
PROFESSIONAL SCANNER AMIGA (A500, A2000, A3000)
• Scanner à plat, format A4, avec « ampoule blanche » et mécanisme de haute précision assurant 600 DPI « vrais » en direction verticale pour obtenir de meilleurs résultats.
• Capacités de scan de 75 à 600 DPI.
• Compatible avec toutes les résolutions Amiga.
• Impression directe sur HP LaserJet.
• Livré avec OCR Junior, logiciel de reconnaissance de caractères de grande qualité.
• 3 MO de mémoire recommandés pour une bonne utilisation.
Prix : ... 9.500 F.
HANDY SCANNER .....N.C.
SYSTEMS
CARTES CONTROLEUR ET DISQUES DUR
La carte BaseBoard vous donne la puissance de l’AMIGA 2000 au prix de l’AMIGA 500.
• Extension de la mémoire jusqu’à 4 Mo.
• Carte fille de 2 Mo portant la mémoire à 6 Mo.
• Se place dans le connecteur de l’A501.
• Horl°Se avec pfe .100% compatible avec les logiciels AMIGA
• 100% compatible avec Fat Agnus et Super Fat Agnus.
BASEBOARD peuplée OK ... 995 F.
2MO . 1.990 F.
4MO . 2.950 F
6MO . 4.950 F.
Carte fille XRAM BOARD peuplée 512K .. 1.250 F.,
PROFESSIONAL
(A2000-A500)
La carte contrôleur SCSI La plus rapide du monde (transfère les données plus vite que son ombre !
Jusqu’à 1.9 Mega-Octet par seconde sous Dperf2).
Grâce à son procédé exclusif SCSI-SHARE il est possible de connecter plusieurs disques durs à plusieurs ordinateurs (jusqu’à 7 UC). Et toujours la TRUMPCARD qui, elle aussi, est rapide et confortable.
TRUMPCARD PROFESSIONAL A2000 .. 2.250 F.
TRUMPCARD PROFESSIONAL A500 (avec boîtier) 2.550 F.
A 2 OOO
TRUMPCARD PRO HC40Q QUANTUM 40 Q (19 mS) . 5.500 F.
TRUMPCARD PRO HC52Q QUANTUM LP525 (14 raS) . 5.750 F.
TRUMPCARD PRO HC80Q QUANTUM 80 Q (19 mS) . 7.600 F.
TRUMPCARD PRO HC105Q QUANTUM 105 Q (19 mS) . 7.950 F.
,4500
TRUMPCARD PRO 500 40Q QUANTUM 40 Q (19 mS) 5.900 F. TRUMPCARD PRO 500 52Q QUANTUM LP525(14 mS) 6.150 F. TRUMPCARD PRO 500 80Q QUANTUM 80 Q (19 mS) 7.990 F. TRUMPCARD PRO 500 105Q QUANTUM 105 Q (19 mS) 8.490 F.
TRUMPCARD A2000 ...... 1.650 F.
TRUMPCARD A500 (avec boîtier) ... 1.950 F.
.42000
TRUMPCARD HC40Q QUANTUM 40 Q (19 mS) .... 4.990 F.
TRUMPCARD HC52Q QUANTUM LP525 (14 mS) .... 5.250 F.
TRUMPCARD HC60 SEAGATE 177N (28 mS) .... 5.450 F.
TRUMPCARD HC80Q QUANTUM 80 Q (19 mS) .... 6.990 F.
TRUMPCARD HC105Q QUANTUM 105 Q (19 mS) .... 7.490 F
,4500
TRUMPCARD 500 40Q QUANTUM 40 Q (19 mS) ... 5.300 F.
TRUMPCARD 500 52Q QUANTUM LP525 (14 mS) ... 5.650 F.
TRUMPCARD 500 80Q QUANTUM 80 Q (19 mS) ... 7.390 F
TRUMPCARD 500 105Q QUANTUM 105 Q (19 mS) ... 7.890 F
TRUMPCARD
EXTENSIONS MEMOIRE
8-UP ! (DIP)
2 8 MO (A2000)
POWER PC BOARD (A500)
La plus belle machine pour le graphisme, le son et les jeux devient un ordinateur PRO et vous permet d’utiliser la logique bureau tique PC. En plus, votre ordinateur passe à un total d’un MEGA OCTET ET DEMI.
Prix : ... 3.250 F.
¦ !¦¦¦¦¦¦ ¦¦¦¦
3HH AMIGA AUDIO DIGITIZER BH
choisissez entre la version ¦hhMONO OU STEREOhih
Les deux digitaliseurs (samplers) Amiga vous offrent le meilleur rapport qualité prix. La fréquence et la dimension de l'échantillon sont déterminées simplement par le logiciel que vous utilissez. Fonctionne avec Audiomaster 1 & 11, Ferfect Sound, Future Sound, ProSound, Datel sampler et Sonix, etc.... Livré avec câble de connection et « Sound Workshop », Disquette DP.
AUDIODIGIT1ZER MONO .. 345 F.
AUDIODIGIT1ZER STEREO . 495 F.
MICR0B0TICS
4 MO ... 2.990 F.
8 MO ... 4.990 F.
2 MO ... 1.790 F.
6 MO ... 3.990 F.
EXTENSION MEMOIRE
512 K avec interrupteur et horloge. A500 490 F.
NORDIC POWER
La cartouche d’action Amiga.
BUS STOP
A500 875 F.
A200 960 F.
¦ SAMPLER M K 2 l
Le SAMPLER STEREO Amiga le PLUS RAPIDE (1 million d'échantillon par seconde). • Des SUPER résultats avec CD AUDIO. • Réglage du niveau d’entrée par BOUTON. • Seul SAMPLER Amiga éauipé d’une sortie parallèle (passthrough).
• Reste connecté même hors utilisation. • Livré avec câbles, disquette. • En option adaptateur automatique d'impression. Prix . 580 F.
MHHHm M I N I A M P 3
L'amplificateur compact stéréo 4 Watt par canal qui équipe le système Miniamp
5. Il est livré complet avec câbles et alimentation. Il fonctionne avec vos propres haut-parleurs d'impédance 4-32 Ohms ou la plupart des écouteurs.
Prix ..... 360 F.
HHHHi M I N I A M P IVIDWM BI
Ensemble comprenant le Miniamp 3 et deux haut-parleurs coniques de 114
mm. Prix 530 F.
Boîtier externe A500
pour Trumpcard Professional et Trumpcard.
¦¦¦ MOUSE MASTER
PRACTICAL SOLUTION S
Ne vous cassez plus la tête... et ne cassez pas non plus votre Amiga -y- -v Il existe un moyen simple de passer de la souris au joystick. Une simple pression sur le commutateur suffit ! Prix 195F.
NOUVEAU EXTRA PROMO EXTRA NOUVEAU
DONNEZ DE LESPACE A VOTRE AMIGA A UN VRAI PRIX BUS PLUS
IMINIAMP 51
A2000
CARTE DISQUE DUR SCSI 40 MO (Carte contrôleur SCSI + disque dur SCSI 40 MO 28ms)
3990 F.
Se compose d’un amplificateur 4 Watt par canal, est équipé d’une commande de réglage de volume. Il est livré complet avec câbles, alimentation et deux enceintes format bibliothèque, haute qualité, trois voies comprenant un tweeter, un sawaker
et un woofer Miniamps5 vous offre la qualité ultime dans le domaine de (a mini
hi-fi, peut aussi être utilisé avec stéréo personnelle, cassetophone, claviers, etc. ... Prix ... 895 F.
¦¦¦¦¦¦¦¦¦¦¦¦ DISTRIBUTEURS
PARIS ET REGION PARISIENNE • A.M.I.E. (11e) • ATELIER NUMERIQUE (11e) • RUN INFORMATIQUE (13e) • PHASE INFORMATIQUE (14e) • VIDEOSHOP (1', 12e, 14e)
PROVINCE • (06) NICE ASCI INFORMATIQUE • (13) MARSEILLE A.M.I.E. INFOLOGS POINT IMAGE • (21) DIJON DIALOG INFORMATIQUE • (26) MONTELIMAR Ets VILLARD* (30) ALES MAISON ET LOISIRS • (31) TOULOUSE ULTIMA et VOLUMM • (35) RENNES MICRO C • (37) TOURS LEADER INFORMATIQUE • (62) BILLY MONTIGNY MICROTECH • (64) BAYONNE B.A.B. MICRO •
(67) STRASBOURG MICRO CENTER • (68) COLMAR CONSER INFORMATIQUE • (69) LYON Ets. GELAIN • (71) CHALONS S SAONE ESPACE PROGICIEL • (78) RAMBOUILLET TURBOPROJECT
CONDITIONS GENERALES DE VENTE : Nos prix s’entendent TTC, départ Paris, paiement comptant Base cours US$ . Livre sterling au 01 01 90 • PORT métropole : Carte et Disques durs : 70 F. - Autres produits : 30 F.
BON DE COMMANDE BUS PLUS ????????A ENVOYEZ AVEC VOTRE REGLEMEN
41, rue Barrault - 75013 PARIS
BUS PLUS
Qté.
ARTICLE
PRIX unit.
FRAIS DE PORT
Crédit CREG • Expédition colissimo dans toute la France
TOTAL
? CHEQUE
? CCP
? Carte Bancaire l l I l 1 I 11 I I
expire à . .
AMIGA
NOM
ADRESSE ....
VILLE ...'.. CODE POSTAL i_
Date
Signature
LA TYPOGRAPHIE DE A à Z n° 3
Les règles de mise en page ayant été abordées dans le numéro de novembre 90, nous pouvons voir les différentes possibilités d’utilisation d’une grille et son importance dans la mise en page.
MISE EN PAGE MODULAIRE ET UTILISATION D’UNE GRILLE
Une grille de mise en page est une page divisée en un motif de rectangle qui guide le placement de tous les éléments de la page : titre, texte et illustration. La grille permet de faciliter la lecture d’un document important et donne une unité graphique par son propre style. Avant d'entreprendre la création d’une grillé, il faut bien étudier le contenu en tenant compte du type de lecteur qui lira cette publication. Qu’elle soit documentaire, littéraire ou technique, un rythme esthétique doit s’en dégager.
Variations sur une grille à 32 modules
Les différents éléments qui concernent la grille ont chacun leur importance : la force typographique du titre, du texte et des légendes, la densité de l’illustration, la couleur, participent à cet équilibre. Cette grille doit également savoir se faire oublier pour éviter la monotonie. La conception graphique est un équilibre subtil de tout cet ensemble.
Une grille se construit sur une base de 9 (3 x 3), 12 (3 x 41, 16 (4 x 4), 20 (4 x 5), 25 (5 x 5), 30 (5 x 6) ou 32 (4 x 8) modules selon la fantaisie et l’analyse du graphiste. Une mise en page sur 32 modules sera plus souple et moins contraignante à entreprendre qu’à 9 modules surtout dans le cas d’assemblages de textes et d’illustrations.
La mise en page se fait toujours en double page sauf pour les premières pages de droite de chapitre, donc en tenir compte pour l’aspect visuel de l’ensemble.
Michel Cribelier
S C 0
H 0 R
E
Æ défaut d'avoir pu obtenir l'horoscope 71 version 1991 de Madame Soleil (qui
- 7JL était très occupée en cette fin d'année) nous vous en avons concocté un qui aura l'avantage (du moins, nous l'espérons) de vous faire sourire.
Bélier (21 mars - 20 avril)
Argent : une très bonne année s'annonce pour vous, les Béliers. .Notamment à l'approche du printemps, période à laquelle il sera temps, si ce n'est déjà fait, de penser à vous munir d'une carte accélératrice digne de ce nom et d'une extension mémoire, puisque vos projets vous conduiront tout naturellement vers le rav-tracing. Heureusement, la conjonction Jupi- ter-Saturne combinée au sex'til Soleil-l'ranus freineront les effets néfastes de la dissonance Mercure-Venus, on Fa échappé belle.
Taureau (20 avril ¦ 21 mai)
Travail : il faudrait peut-être penser à vous prendre par les cornes, les taureaux. La situation devenant vraiment trop critique. Si vous n'agissez pas avant le mois de décembre, attendez-vous à passer une mauvaise année. Et ne venez pas pleurer qu'on ne vous aura pas prévenus (note à la maquette : garder ce paragraphe pour l'année prochaine, il re-servira).
Gémeaux (21 mai - 22 juin)
Duplication : attention à ne pas trop créer de disquettes jumelles par des procédés que la loi et la morale réprouvent... Soyez surtout discrets dans la période du lpr janvier au 31 décembre. Madame APP avant décidé de frapper un grand coup cette année. En cas d'urgence, téléphonez à SOS Copv- Partv.
Cancer (22 juin ¦ 23 juillet)
Santé : l'horreur la plus totale est prévue pour la mi-mars : un vilain monsieur dont vous comprendrez que je taise le nom. Lancera la première version de son “Cancer Exterminator".-un virus pire que tous ceux connu5 jusqu'à maintenant. Evitez donc de laisser traîner vos disquettes n'importe où.
A-VENIR
1991
Lion (23 juillet - 23 août)
Publicité : il est temps de'mettre un tigre dans votre moteur... Alors j'en profite pour caser que- si vous n'êtes pas encore abonné'à TANT, z'avez intérêt à vous dépêcher, dans un mois il sera trop tard, vous aurez déjà manqué le premier numéro de la nouvelle formule. Avec tous les avantages. Qu'on vous offre sur un plateau, ce serait tout de même un peu dommage, non ? Si. Bien sûr.
(Les chèques sont à libeller à l'ordre de Commodore Revue SARL. Merci. La maison n'accepte malheureusement pas les pourboires).
Vierge (23 août - 23 septembre)
Sexualité : il est temps de vous mettre en piste dans votre secteur, si vous voyez ce que je veux dire. Et encore, je ne vous parle pas des bits de syn- chro. Ni même du MFM...
Balance (23 septembre - 23 octobre)
Dur. Dur. Dur c surveillez vos disques ! Au moindre dérapage, paf ! C'est l'erreur de lecture. C'est Bernard Pivot qui ferait la tête. Alors un bon conseil : n'oubliez pas d'aller au Park de temps en temps.
Scorpion (23 octobre - 23 novembre)
Jeux de mots : moi. Si j’étais vous, je garderai un œil en permanence sur ma'reum. Car si elle n'a que deux vices (les libraries et la Chandeleur), elle ne manque ni de ressource ni d'intuition quand il s'agit de faire risette à un joli moniteur.
Sagittaire (23 novembre - 22 décembre)
Elizabeth Teissier : vous entrez dans une phase d'introspection, à utiliser pour faire un bilan avant votre prochain anniversaire. Sinon, cette nouvelle année sera pour vous une période calme, de transition, à utiliser comme bon vous semble. Lune harmonique le 1er (et elle gagne sa rie avec ça !).
Capricorne (22 décembre ¦ 20 janvier)
Hervé Villard : les capris. C'est fini. Pensez à votre reconversion, et achetez-vous donc tous les périphériques qui vous font envie, de toute façon, vous n'en profitez pas. Puisque Nostradamus a prédit que tous les Amiga du monde tomberaient en rade le 27 février de cet année à 14hl2 très précises. Qui tient le pari ?
Verseau (20 janvier - 22 février)
Délivrance : le mois de Janvier sera pour vous un mois faste, plus particulièrement le 24. Avec votre retour à la vie civile - pour ceux du contingent 90 02 - sauf si Georges Bush et Saddam Hussein en décident autrement aux environs du 15.
Poisson (19 février - 21 mars)
Farces et attrapes : attention au 1er avril, qui de plus tombe un Vendredi, jour du poisson. Si j'étais vous, j'éviterai de me faire, mettre en boîte trop souvent, même s'il paraît que ça conserve...
ATTENTION
COMMODORE REVUE
CHANGE DE TITRE, IL DEVIENT
COMMODORE AMIGA REVUE
EN VENTE A PARTIR DU 5 FEVRIER
LE FL1CKER FIXER A2320 EST ARRIVE
On l’attendait, le voilà. Grâce à cette petite carte d’apparence anodine, votre Amiga 2000 se dote de la qualité d’affichage du 3000.
AlACARIE
Répondant au doux nom d’A2320, le flicker fixer de Commodore offre sur une carte toutes les capacités du circuit intégré à la carte mère de l’Amiga 3000. Il se connecte sur le slot vidéo du 2000, situé à la droite du bloc d’alimentation et n’empiète donc pas sur les connecteurs d’extension standards.
HISTORIQUE
Rappelons le rôle du flicker fixer. A l’origine de l’Amiga (1985), les moniteurs capables de supporter une définition de 640 x 512 points en mode non entrelacé coûtaient très chers : c’était bien avant l’apparition de la norme VGA (1987). Les concepteurs ont donc opté pour un affichage en haute résolution mais entrelacé, ce qui permettait d’utiliser des moniteurs moyenne résolution moins coûteux (du 1081 jusqu’aux actuels 1083 et 1084 S) mais aussi d’une qualité plus réservée aux utilisations familiales que professionnelles.
En pratique, l’entrelacement revient à afficher en premier les lignes paires, puis les lignes impaires. Si la fréquence courante est de 50 Hz (en PAL) ou 60 Hz (en NTSC), le mode entrelacé la réduit à 25 ou 30 Hz. Or, cette fréquence est trop faible pour que l’œil perçoive un affichage stable. Au contraire, un effet de scintillement, de tremblement de l’image se fait sentir. Plus le contraste est grand à l’écran, plus le scintillement devient gênant. Les yeux de ceux qui ont commencé à travailler avec Profes- sional Page en haute résolution sur un moniteur 1084 s’en souviennent encore... En revanche, l’entrelacement est intéressant pour les applications vidéo, un des points forts bien connus de notre machine.
Pour amener l’Amiga à une qualité d’image digne de celle d’une machine professionnelle, il fallait donc pouvoir afficher la haute résolution de façon stable. Le précurseur en ce domaine fut la société américaine Microway, qui conçut le premier flicker fixer et en vendit d’ailleurs beaucoup, car il comblait un vide certain. La sortie du flicker fixer de Commodore condamne désormais ce dernier, car il offre à un meilleur prix des fonctionnalités supérieures, et notamment la compatibilité avec les gen- locks.
FLICKER FIXER ET SES PRINCIPES
Le principe du flicker fixer est simple. Primo, il désentrelace le signal vidéo produit par l’Amiga grâce à un, circuit de type Gâte Array et des mémoires spécifiques. Cela revient à doubler la fréquence horizontale de 15.75 kHz à
31. 5 kHz. A vous les joies de Professio- nai Page, de l’émulateur A-Max II, du calcul en fil de fer dans Sculpt : plus aucun scintillement ne viendra gâcher le plaisir de la haute résolution.
Secundo, il élimine les lignes noires intermédiaires bien visibles sur un moniteur RGB en basse résolution en doublant les lignes réellement utiles. Cela améliore considérablement la qualité d’image dans les modes 256 lignes, que ce soit sous le Workbench ou pour travailler avec DeLuxe Paint III. Les modes basse résolution deviennent donc réellement agréables, tout comme l’est le mode 320 x 200 des cartes VGA standard. Les jeux bénéficient aussi d’une plus grande netteté, bref toutes les applications en profitent.
Pour les “hardeux”, sachez que le A 2320 contient un contrôleur Nec 564 PLL multiplicateur de fréquence, 384 Ko de mémoire 1 Mbit en CMOS, un convertisseur digital analogique et le Gâte Array Amber (le même que sur lé 3000) qui est le coeur de l’ensemble. Amber a la lourde charge de synchroniser et de contrôler les signaux nécessaires aux mémoires vidéo et à l’affichage sur le moniteur multisync. Il détecte aussi la présence d’un genlock, détermine le type d’Amiga (PAL ou NTSC) et ajuste le A 2320 en conséquence.
Le A 2320 est parfaitement compatible avec tous les modes graphiques Amiga (y compris l’overscan) et agit de façon transparente vis-à-vis de l’utilisateur. 11 offre aussi la compatibilité avec la plupart des genlocks standards et supportent les nouveaux modes graphiques de l’ECS (Enhanced Chip Set) sous Amiga- Dos 2.0. Il détecte notamment le mode productivity 640 x 480 et s’ajuste sur son signal. Un switch externe permet aussi de désactiver les circuits de désentrelacement afin d’afficher les modes graphiques originaux. Cela se révélera indispensable pour utiliser le mode SuperHires (1280 x 512). Signalons la présence d’un petit tournevis destiné à affiner les réglages au cas où un soupçon de scintillement résisterait encore. Certains acquéreurs potentiels se demande peut-être si le flicker fixer ne fera pas double emploi avec les nouveaux modes de l’ECS. Il n’en est rien. En effet, le mode Productivity 640 x 480 ne fonctionnera qu’en 4 couleurs simultanées parmi 64, résultat des contraintes imposées par les coprocesseurs graphiques. En revanche, le flicker fixer vous permettra d’obtenir 640 x 512 en 16 couleurs parmi 4096, soit le mode original mais avec une parfaite stabilité.
Est-il besoin de la rappeler, le flicker fixer A 2320 se connecte impérativement à un moniteur multisynchrone par un connecteur 15 broches standard de type VGA. Le choix est large : un bon moniteur de ce type existe au catalogue Commodore (le 1950), et l’ensemble A2320 + moniteur 1950 vaut 5.990 F. Seul, le flicker fixer vous coûtera
1. 990 F, une somme raisonnable compte tenu de la qualité d’image qu’il apporte. Si vous n’êtes pas à 1.500 F près et ne possédez pas déjà un multisync, nous vous conseillons d’associer votre A 2320 à un Nec Multisync 3D ou un Sony Mul- tiscan HG, qui offrent un piqué remarquable et vous permettront de voir venir les futures cartes graphiques de l’Amiga en toute sérénité. Dans les deux cas, l’ensemble vous coûtera environ
7. 500 F.
Précisons qu’il est toujours possible d’avoir un moniteur RGB 1084 ou autre connecté à la sortie vidéo 23 broches. Cela présente à priori un intérêt limité, étant donné qu’on ne peut avoir un écran logique différent sur chaque écran physique (en résumé, pas de Pro- fessional Page sur le multisync et de ti- treur vidéo sur le 1084 en même temps : c’est fromage ou dessert). Pourtant, certains Frame Buffer 24 bits (qui sortiront prochainement dans l’hexagone) interceptent directement la sortie vidéo standard connectée au 1084. Un conseil donc : ne vendez pas votre moniteur RGB, ou faites-le en connaissance de cause, car il peut toujours servir...
Pour terminer, sachez que la qualité subjective de l’image est à ce point que l’on a l’impression d’avoir une nouvelle machine. Plus de masque d’écran visible, une stabilité parfaite, et en plus le piqué d’un bon moniteur multisync : voilà qui risque de vous retenir encore plus devant l’écran de votre Amiga.
PRECISION UTILE
Certaines personnes ont eu des difficultés à joindre la société EVS Informatique, importateur officiel des produits Progressive Peripherals and Software (voir Commodore Revue du mois dernier). Voici donc le numéro de téléphone d’EVS : 39.71.19.41.
LA500 PREND DU POIDS
En effet, la société BUS + distribue une carte d’extension mémoire pour Amiga 500 de 4 Mo, la BaseBoard d’Expansion System. Cette carte d’extension mémoire est en fait composée de deux parties, une carte mémoire et une carte “gary board”.
La carte gary se connecte sur le port du Chip Garry lequel est ensuite réinstallé sur cette même carte. La Gary Board est de plus munie d’une horloge. L’extension mémoire se branche elle sur le connecteur d’extension mémoire qui se trouve sous le clavier puis se raccorde à la Gary Board. Les prix publics conseillés de la BaseBoard sont de : 995 F (peuplée 0 k), 1.990 F (2 Méga),
2. 950 F (4 Mégas), 4.950 F (6 Mégas). Bus + distribue une horloge pour l’AlOOO (prix public de 250 F) et également des scanners que vous découvrirez le mois prochain...
TRUMPCARD-PRO BIS
Terminons sur quelques mots concernant la TrumpCard Professional. Celle- ci est actuellement en pleine évolution, et son importateur Bus + nous a prêté la dernière version. J’ai donc immédiatement procéder aux tests habituels à l’aide de Diskspeed. Verdict dans le tableau ci-dessous.
Que peut-on en déduire ?
La vitesse maximale avec des disques standards Quantum reste sensiblement la même, ceci est imputable au disque lui-même plutôt qu’au contrôleur, quoique la GVP pousse un peu plus ce brave Quantum dans ses derniers retranchements.
Ancienne Trumpcard
Nouvelle Trumpcard
GVP HC +
40 Mo Quantum
52 Mo Quantum
52 Mo Quantum
Read 4096
299 Ko s
620 Ko s
474 Ko s
Write 4096
189 Ko s
188 Ko s
193 Ko s
Read 262144
792 Ko s
739 Ko s
819 Ko s
Write 262144
713 Ko s
731 Ko s
794 Ko s
LA REINE DE L’ACCELERATION
Le point le plus remarquable est la vitesse atteinte en lecture avec une taille de buffer assez faible (4 Ko). On peut dire que la nouvelle Trumpcard a une vitesse de pointe semblable à l’ancienne mais que son accélération a sérieusement progressé : de 0 à 620 Ko s en
4. 096 octets !
Nous faisons encore une fois remarquer à ceux qui n’auraient pas suivi les épisodes précédents que la Trumpcard est créditée d’un débit (comme dirait mon banquier) de 1.9 Mo s avec un Seagate 2383N de 300 et quelques mégaoctets et avec l’optimiste test Diskperf. Ne disposant pas d’un disque équivalent, il nous est difficile de confirmer ou d’infirmer ces chiffres.
En passant, nous pouvons également faire remarquera notre aimable lecto- rat que les Quantum ultra-plats envahissent désormais tous les Amiga. Négociez donc un prix intéressant si Ton veut vous vendre les anciens modèles, aussi performants mais un peu plus encombrants.
En repassant, notons avec joie que l’utilitaire d’installation TC_Utils 2.0 n’a plus rien à envier aux utilitaires GVP. Fini les angoisses existentielles au moment de formater le disque dur.
Pour terminer, sachez que les choses ne vont pas s’arrêter là, puisqu’une prochaine version sera dotée d’une possibilité d’extension mémoire, à la mode GVP. Le match entre les deux meilleurs contrôleurs SCSI n’est donc pas prêt d’être terminé.
BUS +
41, rue Barrault, 75013 PARIS Tél. : 45.80.05.66.
MIPS
S’il y a un domaine dont les revues de microloisirs n’ont jamais parlé ou très peu, c’est bien celui du domaine public et plus particulièrement des démos. Le D.P. offrant des produits souvent de très bonne qualité et à des prix dérisoires, nous avons décidé de vous faire part régulièrement des nouvelles sorties marquantes dans ce domaine.
Les démos avant d’arriver sur notre écran sont le fruit d’un long travail des membres formant le groupe qui les ont fabriquées. Ce groupe est souvent formé : de coders (programmeurs), de graphistes, de musiciens, de swappers qui se chargent de diffuser les démos par le biais des P.T.T. ou par modem (B.B.S). Il n’est pas donné à tout le monde de concevoir une démo, c’est pourquoi la plupart de celles qui existent sur Amiga sont impressionnantes ainsi on trouve (toujours sur Amiga) de très nombreuses productions. Celles-ci n’étant pas toutes du même niveau on peut les différencier par leur place dans les “greetings” des démos. Ainsi, on retrouve souvent : Phenomena, Brains- torm, Flash Production, Red-Sector, Scoopex, Angels, Anarchy, Silents, etc. Au niveau national, il y a peu de bons groupes français, mais il y a souvent des sections de groupes étrangers ainsi on a: Angels, Paradox, Pussy (un très bon groupe...) etc. Il y a aussi de vrais groupes bien français (comme leurs noms ne l'indique pas) : Spider,
Impact.inc., Quartz, Fluid Design, etc. Afin d’illustrer les travaux de ces groupes et pour notre propre plaisir, nous vous proposons cinq nouvelles démos ayant toutes un haut niveau de programmation, un style différent et un public différent.
1. LE GROUPE TIME CODE
Cette démo représente une succession de digitalisations sur le film “Total Re- call”. Le coder est SCART.le musicien
tr«,_r *:.>v
|MÇi
4 fÉSP. Fh>
kL, ifc -;y
total recall
SPLIF, le digitiser WAVERIDER et les graphistes ICEWOLF, TOXIC.
DEMOS
LE PLAISIR DEMO !
Cette démo n’apporte rien au niveau technique mais c’est une des premières utilisant le principe de digitalisation sur un film. Toutes les images digitalisées reprennent les instants les plus importants du film respectant ainsi sa chronologie. La musique comprend aussi des samples (digit.) Du film qui sont du plus bel effet en bref, un slide-show sympathique et novateur.
Note : 13 20
2. LE GROUPE SILENTS
Après leur superbe mégadémo (ayant un boot génial), Silents nous présente cette fois-ci un sound-disk au doux nom de “Sound Of Silents”. Le coder est THE CRUX, le graphiste MICHAEL BALLE, le musicien est JESPER KYD.
Ce sound-disk est original et très bien conçu, les musiques sont en soundtrac- ker 4 voies, 15 instruments et sont variées, le chargement se fait sans interruption de la musique. Des jeux d’animation de lignes en blitter ponctuent la démo. Enfin des équaliseurs pour voix et instruments sont aussi présents.
Un sound-disk potable, donc.
Note : 11 20
3. LE GROUPE BRAINSTORM
En fait il ne s’agit pas d’une démo mais d’un magazine sur disk d’excellente qualité. Ce journal s’appelle ZINE. Les
ZIWE- »|.«OKrOBER 80
Th» distinsviflitd Grainstorn ma du»i««rii to mr >id. Tflitiw proudlï BresMHs uwth*r Us» als» «h» nwerit »IhK «
0i5X un “»ia Hat* litn-alnr» dimtty I» th* i*tt*rprm ei **«¦ urittro tu a host ol Mshla dtsir*. Rrm *,* en th* immt
atlaiMd Ml hors. Oloth ta enter th* atra « th*
Km, Mt»'5 hou «ou, th* connon irlicles hishrr th® I'm.
Renier, tan 3*1 a slant» ai ail II** Stroli «our favourit* artaclos
tr*isur*s hidden ,n th* DM»s o» nidtuau* 0* usiiq* 'jour jojMicx and
ihis mosmiM nistrrpiFtr: th* tursor h»»*. Ik* «W h*«
Choos* «our pitt* ol Iitérâtur* t>« «ou directly to th* rndlm
navmj up ano ootm «our joystick, or directory. Ror our r*ad*rs on th»
hittinj th* Curser h»ys. Mh*ti th* oth*r sid* 01 th* 6i9 sra. U*
till* ol th* topit ot «our inttrtst introduira th* Otl-key («tli»*..
«Mars in th* bar bel ou, pr*ss Mid at last, us* th* ïttCWWKZ k*«
Rmurn or Mt th* ftr» outton. Th* to conduct th* orchestra,
artitu uili mnedtatiy t>e îoadeo ih* 8cciM*« WW
Zine
journaux de groupes sur disks sont très en vogue actuellement et 0 en existe de nombreux (CRACKERS JOURNAL qui est le plus ancien, DISC, TUTTI FRUTTI MAG, STOLEN DATA, etc.). Le plus clair, le plus riche et le plus intéressant étant ZINE. Le dernier paru est le ZINE 8, en fin 1990.
Le contenu du magazine est très varié et on sent que ce sont des passionnés qui écrivent, il est divisé en 7 parties (pour le n° 7) il y a la rubrique :
- Scene report : elle nous tient au courant des meetings, des changements, des problèmes au niveau des groupes, on retrouve souvent les groupes les plus connus.
- Charts Tests : elle critique les nouveautés.
- Entertainments : une rubrique libre très “délire”.
- Interview : comme son nom l’indique, elle recueille les propos de leaders, coders, swappers de groupes très connus.
- Miscellanous : une rubrique étonnante dans laquelle on parle de toute l’actualité, la vraie. Ainsi tous les propos sont permis sur la crise du golfe, sur la légalisation ou l’interdiction de la drogue, on voit aussi des “aids-statis- tics” (statistique sur le sida) !!!! Cette rubrique unique en son genre montre bien que le milieu informatique n’est pas si fermé qu’on le croit.
- Hardware Software : nous fait part du nouveau matos, des nouveaux logiciels arrivant sur le marché. Ainsi on retrouve énormément d’articles sur l’Amiga 3000.
- Advertissement : elle nous permet de. Passer des petites annonces. Cette rubrique est aussi réservée aux professionnels !
Dans le disks, il y a aussi de nombreux autres petits articles. Pour pallier à la monotonie de la lecture, les coders ont mis de la musique (qui est sublime). Enfin, on peut accéder à tout moment au menu grâce à la touche help.
Un superbe magazine sur disk.
Note : 18 20
4. LE GROUPE PUSSY
Ce n’est pas là non plus exactement une démo, il s’agit plus d’un jeu. La présentation est superbe (digne d’un psygno- sis), le jeu en lui-même est simple, c’est un casse-brique, néanmoins celui-ci est intéressant car il possède un compte à rebours, le choix entre deux sound- tracks... Il est également possible de connaître l’identité et parfois même le “look” (grâce à des digits !!) De tous les membres de PUSSY et ce dans toutes les
serif;font-weight:bold;"> Miscellanous : une rubrique étonnante dans laquelle on parle de toute l’actualité, la vraie. Ainsi tous les propos sont permis sur la crise du golfe, sur la légalisation ou l’interdiction de la drogue, on voit aussi des “aids-statis- tics” (statistique sur le sida) !!!! Cette rubrique unique en son genre montre bien que le milieu informatique n’est pas si fermé qu’on le croit.
- Hardware Software : nous fait part du nouveau matos, des nouveaux logiciels arrivant sur le marché. Ainsi on retrouve énormément d’articles sur l’Amiga 3000.
- Advertissement : elle nous permet de. Passer des petites annonces. Cette rubrique est aussi réservée aux professionnels !
Dans le disks, il y a aussi de nombreux autres petits articles. Pour pallier à la monotonie de la lecture, les coders ont mis de la musique (qui est sublime). Enfin, on peut accéder à tout moment au menu grâce à la touche help.
Un superbe magazine sur disk.
Note : 18 20
4. LE GROUPE PUSSY
Ce n’est pas là non plus exactement une démo, il s’agit plus d’un jeu. La présentation est superbe (digne d’un psygno- sis), le jeu en lui-même est simple, c’est un casse-brique, néanmoins celui-ci est intéressant car il possède un compte à rebours, le choix entre deux sound- tracks... Il est également possible de connaître l’identité et parfois même le “look” (grâce à des digits !!) De tous les membres de PUSSY et ce dans toutes les

Click image to download PDF

AMIGA NEWS TECH numero 19 (01-1991)

Merci pour votre aide à l'agrandissement d'Amigaland.com !


Thanks for you help to extend Amigaland.com !
frdanlenfideelhuitjanoplptroruessvtr

Connexion

Pub+

31.5% 
18.4% 
6.2% 
5% 
4.9% 
4.5% 
2.8% 
2% 
1.4% 
1.1% 

Today: 21
Yesterday: 104
This Week: 324
Last Week: 762
This Month: 2880
Last Month: 2931
Total: 63948

Information cookies

Cookies are short reports that are sent and stored on the hard drive of the user's computer through your browser when it connects to a web. Cookies can be used to collect and store user data while connected to provide you the requested services and sometimes tend not to keep. Cookies can be themselves or others.

There are several types of cookies:

  • Technical cookies that facilitate user navigation and use of the various options or services offered by the web as identify the session, allow access to certain areas, facilitate orders, purchases, filling out forms, registration, security, facilitating functionalities (videos, social networks, etc..).
  • Customization cookies that allow users to access services according to their preferences (language, browser, configuration, etc..).
  • Analytical cookies which allow anonymous analysis of the behavior of web users and allow to measure user activity and develop navigation profiles in order to improve the websites.

So when you access our website, in compliance with Article 22 of Law 34/2002 of the Information Society Services, in the analytical cookies treatment, we have requested your consent to their use. All of this is to improve our services. We use Google Analytics to collect anonymous statistical information such as the number of visitors to our site. Cookies added by Google Analytics are governed by the privacy policies of Google Analytics. If you want you can disable cookies from Google Analytics.

However, please note that you can enable or disable cookies by following the instructions of your browser.

Visitors

Visite depuis
03-10-2004
Visite depuis
23-02-2014