****************************************************************************** ------------------------------------------------ --------------- Amos Professionnal PERSONNAL.LIB Documentation --------------- ------------------------------------------------ ****************************************************************************** Contenu de ce fichier : ------------------------ I > A propos de l'extension. II > Comment se procurer les version superieures. III > Documentation sur les instruction. 1 > Les routines simples. 2 > Le COPPER. 3 > Les effets MOSAIQUES. 4 > L'IFF/ILBM. 5 > MATHS. 6 > DOUBLES MASKS. 7 > SPECIAL AMOS 1.3 PATCH !!!. 8 > LE SECOND ECRAN GRAPHIQUE !!!. 9 > Les COPY BLOCK. 10 > Les ICONS AGA. 11 > Le multi points. (Mplot) IV > Installation sur l'AmosPro/Amos1.3 V > Adresses VI > Derniere Minute... ****************************************************************************** I > A PROPOS DE CETTE EXTENSION. ---------------------------------- J'ai programme cette extension car je voulais pouvoir utiliser le chipset AGA et quelques effets du genre Mosaiques et Faux Dual Playfields. Toutes les routines presentes dans cette version de ma librairie ont ete testees sur un AMIGA 1200 standard et sur un AMIGA 1200 avec 68030 et 4 Mega octets de FAST MEM 32 BITS. Si des bugs sont decouverts(Echappes aux tests ???),Ecrivez-moi directement a mon adresse en donnant une description exacte et precise de l'erreur ou du plantage.Ceci me permettra d'ameliorer mon extension pour un meilleur usage. ****************************************************************************** II > Comment se procurer la version complete et les futurs UPDATES. -------------------------------------------------------------------- C'est tres simple.Il suffit de m'ecrire a l'adresse donnee a la fin de ce fichier avec un cheque de 50 francs en mon nom.Il vous sera alors envoye la derniere version de l'extension avec toutes la documentation et tout les exemples pour mieux utiliser mon extension. Attention !!! Cette version de la librairie n'est pas compilable. Si vous compilez des programmes AMOS,Il faut que la librairie n'existe pas dans votre fichier configuration !!! Sinon votre programme compile risque de planter !!!. Desole mais,l'INCOMPILABILITE est une protection personnelle contre l'utilisation de la librairie sans la version complete. ****************************************************************************** III > Documentation sur les instructions. ----------------------------------------- **************** **************** 1 > Les instructions simples. ----------------------------- Set Ntsc -> Met l'amiga en 60 Hertz. Set Pal -> Met l'amiga en 50 Hertz. =Right Click -> Renvoie l'etat (TRUE/FALSE) du bouton droit (Bouton 2) de la souris. =Fire(1,2) et =Fire(1,3) -> Renvoie l'etat (TRUE/FALSE) des boutons 2 et 3 de la manette. =Ham -> Renvoie 4096 (Ex: Screen Open 0,320,256,Ham,Lowres) =Ehb -> Renvoie 64 (Ex: Screen Open 0,320,256,Ehb,Lowres) Low Filter.b MASK To START,END / Low Filter.w ... / Low Filter.L ... -> Calcule un filtre minimum de l'adresse START a l'adresse END tout les 1 octet (.b) , 2 octets (.w) , 4 octets (.l) Si DONNEE Rempli une zone memoire de START a END avec la valeur VALUE. Blitter Copy BASE0 To BASE1 -> Equivalent de Screen Copy mais avec les bases des ecrans sources (BASE0) et cible (BASE1). Lsr Zone START To END -> Produit un decalage de 4 octets vers la droite a partir de l'adresse START et jusqu'a l'adresse END. **************** **************** 2 > Les instructions de gestion d'ecran COPPER. ----------------------------------------------- Ma gestion de copper est assez simple.Elle ne permet d'avoir qu'un seul ecran visible mais permet les effets de changements de couleurs par lignes. On peut avoir jusqu'a 256 couleurs a l'ecran(sur les machines AGA). Create Aga ADR -> Permet de creer un copper list AGA (Jusqu'a 256 couleurs) a partir de l'adresse ADR.Ce copper list sera alors utilise par la librairie pour gerer les instructions suivantes. Create Standard ADR -> Meme instruction que la precedente mais pour les machines ECS (Jusqu'a 64 couleurs EHB). Copper Base ADR -> Permet de changer de base copper list. Il faut toujours redefinir les BITS PLANS correspondant a l'ecran destine au nouveau copper car au sinon ERREURS !!!. Le changement d'ecran ne sera visible que lorsqu'un 'SCREEN POSITION' sera utilise. =Copper Base -> Renvoie l'adresse de base du copper list courant(Pas ceux de l'amos ou du workbench mais celui de la librairie). Set Plane BPL,ADR -> Definit le Bit Plan BPL a l'adresse ADR dans le copper list courant. =Plane Base(BPL) -> Renvoie l'adresse de base du Bit Plan BPL du copper courant. Set View Planes NUM -> Definit le nombre de Bits Plans visibles(0 a 8 AGA/0 a 6 ECS). Set Screen Sizes XSIZE,YSIZE -> Definit les dimensions de l'ecran entier sachant que seulement 320 pixels seront visibles en X et 192 en Y. Set Color REG,R,V,B -> Permet de definir la couleur REG (0 a 15 ECS) en Rouge(R), Vert(V) et en Bleu(B) de 0 a 15. Set Aga Color REG,R,V,B -> Meme instruction que la precedente mais en AGA (0 a 255). =Set Color(REG) -> Renvoie la valeur de la couleur REG (0 a $FFF) X Fade -> Produit un Fade Down de toutes les couleurs utilisees dans le copper list courant(Assombrit l'ecran de 1 ton en R,V,B) Copper Next Line -> Deplace la position COPPER MODIFY de 1 ligne vers le bas de l'ecran. Cette instruction permet de redefinir 256 couleurs (AGA) ou 32 couleurs (ECS) par lignes. =Copper Line -> Renvoie la ligne courante de COPPER MODIFY. New Color Value REG,R,V,B -> Modifie la couleur REG en Rouge(R),Vert(V) et Bleu(B) a partir de la ligne Copper de COPPER MODIFY(Permet de creer des rainbows sur autant de couleurs que l'on veut en meme temps). =X Screen Size -> Renvoie la dimension en X de l'ecran courant. =Y Screen Size -> Renvoie la dimension en Y de l'ecran courant. Screen Position MODE,X,Y -> Equivalent a 'Screen Offset' de l'amos. MODE represente de mode graphique: 0=Tous les bits plans !!! 1=Bits plans IMPAIRS (Double Playfield). 2=Bits plans PAIRS (Double Playfield). X,Y les coordonnees du premier point en haut a gauche. Set Dual Mode MODE -> Active le mode dual playfield (MODE<>0) ou le desactive (MODE=0). Set Resolution MODE -> Definit Lowres (MODE=0) ou Hires (MODE<>0). Set Lace MODE -> Definit InterLace (MODE<>0) ou Non InterLace (MODE=0) Copper Wait Line LINE -> Equivalent de 'Copper Next Line' mais permet de se deplacer seulement vers le bas de l'ecran jusqu'a la ligne LINE. Ham Mode MODE -> Active le mode HAM (MODE<>0) ou le desactive (MODE=0) Active Copper -> Active le copper AUXILIAIRE de la librairie. !!! ATTENTION !!! Un copper list doit avoir ete cree auparavant et l'Amos doit etre en mode 'Copper Off' !!! Inverse Playfield / Normal Playfield -> Definit l'inversion des deux playfield dans un DUAL PLAYFIELD. Set Dual Palette PAL -> Permet de definir le bloc palette du second playfield lorsque l'on est en mode dual playfield (SET DUAL MODE<>0). Cette instruction ne sert que pour les machines AGA. Vbl Line Wait LINE -> Fait une attente vbl jusqu'a la ligne LINE. Utilisations de Double Buffer : ------------------------------- Set D Plane BPL,ADRESS -> Definit les Bits Planes Logiques (BPL) a l'adresse ADRESS. Swap Planes -> Met les plans logiques a la place des bits plans courants et place les bits plans courant en logic. **************** **************** 3 > Les effets Mosaiques: -------------------------- Mosaic X2 BASE / Mosaic X4 BASE / Mosaic X8 BASE / Mosaic X16 BASE / Mosaic X32 BASE -> Cree un effet de mosaique de facteur 2/4/8/16/32 pixels sur l'ecran dont BASE=Screen Base. **************** **************** 4 > L'IFF/ILBM: --------------- Ces petites routines permettent d'avoir des informations sur un fichier IFF graphique charge dans une banque Amos. =Iff X Size(IFFBASE) -> Renvoie la dimension en X du graphique iff stocke a partir de l' adresse IFFBASE. =Iff Y Size(IFFBASE) -> Renvoie la dimension en Y du graphique iff stocke a partir de l' adresse IFFBASE. =Iff Planes(IFFBASE) -> Renvoie le nombre de Bits Plans dont le dessin a besoin pour etre entierement vu.Le fichier IFF doit etre stocke a partir de l'adresse IFFBASE. Iff Convert IFFBASE -> Affiche le dessin du fichier IFF stocke a partie de IFFBASE sur l'ecran definit precedemment avec 'Set Planes BPL,ADR' !!! ATTENTION !!! Si il n'a pas ete definit assez de Bits Plans pour afficher le nombre de couleurs demandees par le dessin,GROS PLANTAGE! =Iff Color(IffBase,Color) -> Renvoie la valeur en rouge,vert,bleu ($0RGB) de la couleur 'Color' contenue dans le fichier Iff/Ilbm commencant a l'adresse IffBase. =Cmap Base(IffBase) -> Renvoie l'adresse de base de la CMAP du fichier Iff/Ilbm. Iff4bits Palette To Copper NUM,CMAPBASE -> Redefinit NUM couleurs du copper list avec les couleurs du fichier Iff/Ilbm en memoire. (Palette de base en composantes 0/15) Iff8bits Palette To Copper NUM,CMAPBASE -> Redefinit NUM couleurs du copper list avec les couleurs du fichier Iff/Ilbm en memoire. (Palette de base en composantes 0/255) Change Palette NUM,PALETTEBASE -> Redefinit NUM Couleurs du copper list avec une liste de couleurs definies en Octets Rouge.b,Vert.b,Bleu.b sur une intensite de 0 a 255 pour chaque composantes de couleur. Fade Palette NUM,SOURCE,CIBLE -> Compare deux palettes en R,V,B(4bits 0/15) et augmente ou dimunue les composantes de couleurs de la CIBLE pour obtenir la palette de couleur de la source.Le calcul est effectue sur NUM couleurs de la palette et se produit par saut de 1 intensite. Change Palette Num,R,V,B,SOURCE To CIBLE -> Cree la palette SOURCE dans la palette CIBLE avec les composantes en Rouge(R),Vert(V) et Bleu(B) modifiee en ajoutant R,V,B et cela sur NUM Couleurs. Iff8bits To Iff4Bits NUM,SOURCE To CIBLE -> Cree une palette au format iff 4 bits(Intensite de 0 a 15) a partir de l'adresse CIBLE avec les Composantes 8 bits (intensite de 0 a 255) de la SOURCE et cela sur NUM Couleurs. **************** **************** 5 > Les routines Mathematiques: ------------------------------- Ces routines sont des routines simplifiees qui renvoient des nombres ENTIERS sans VIRGULE !!! =Fc Cos(ANGLE) -> Renvoie Cos(ANGLE)*1000 (DEGREE) =Fc Sin(ANGLE) -> Renvoie Sin(ANGLE)*1000 (DEGREE) =Fc Tan(ANGLE) -> Renvoie Tan(ANGLE)*1000 (DEGREE) **************** **************** 6 > Le Faux DUAL PLAYFIELD: --------------------------- Double Mask BASEM TO BASE0,BASE1 -> Calcule un faux Dual Playfield. BASEM est la 'Screen Base' d'un ecran en 2 couleurs representant le masque de calcul. BASE0 est la 'S. B.' de l'ecran de fond. BASE1 est celle de l'ecran de 1er plan qui est aussi l'ecran cible. L Double Mask BASEM,YSTART,YEND to BASE0,BASE2 -> Meme routine que la precedente mais la calcule a partir de la ligne YSTART et jusqu'a la ligne YEND. Blit Mask BASE0,BASEM,BASE1 TO BASE2 -> Meme principe que les deux routines precedentes mais utilise le BLITTER pour faire son calcul. BASE0 est l'ecran de 1er plan. BASEM est l'ecran de masque. BASE1 est l'ecran de fond. BASE2 est l'ecran cible. L Blit Mask BASE0,BASEM,BASE1 to BASE2,YSTART,YEND -> Meme routine que la precedente utilisant elle aussi le blitter. avec en plus: YSTART represente la premiere ligne du calcul. YEND represente la derniere ligne du calcul. !!! ATTENTION !!! Toutes les Bases BASEx (0,1,2,M) representent les ' Screen Base ' de l'ecran choisi !!! **************** **************** 7 > SPECIAL AMOS 1.3 PATCH !!! ------------------------------ Vous avez surement remarque que lorsque vous lancez votre Amos1.3 sur une machine AGA avec l'aga actif ou que vous lancez un programme compile avec l' amos 1.3 sur une meme machine,il arrive que l'ecran soit BROUILLE. Cela vient du mode double scanning de l'aga.pour remedier a cela,j'ai fait une petite instruction qui s'utilise tres simplement. Losrque vous chargez votre amos 1.3. si l'ecran est brouille,placez vous en mode direct ('esc'). tapez 'Aga Patch' puis validez.Automatiquement votre ecran redeviendra normal. Pour les programmes que vous compilerez,placez cette instruction en premiere ligne ou juste apres les SET BUFFER si il y en a.Cela evitera d'avoir la mauvaise surprise de voir votre programme ou jeu en 'PIXELS-BUGGS'. Elle s'execute automatiquement lors du lancement d'un programme mais doit etre reutilisee si l'AMOS est switche avec le WORKBENCH... Aga Patch -> Desactive le mode Double Scanning AGA pour ameliorer la compatibilite de l'amos 1.3 / Compile avec les machines AGA. **************** **************** 8 > LE SECOND ECRAN GRAPHIQUE : ------------------------------- Ceci est un rajout de derniere minute.J'ai ete contraint de rajouter ces quelques instructions pour un petit jeu que je travaille. Ces instructions sont limitees pour l'instant mais seront plus developpees sur des versions superieures de la librairie. Active Second Screen -> Active un ecran en 320*32 en 6 Bits plans maximum(64EHB) Cet ecran se trouve juste en dessous de l'ecran copper. !!! ATTENTION !!! Une fois que le Second Screen est active,il est impossible de faire des modifications de couleurs par ligne copper sur le 1er ecran.Elle s'effectueront alors sur le Second Ecran. Set Second Planes BPL,ADRESS -> Definit le bit plan BPL du Second Screen avec l'adresse ADRESS. Set Second View VIEW -> Definit le nombre de bits plans visibles dans le Second Screen (VIEW<7) soit 2^VIEW Couleurs. (EHB Max(Ecs),64 Max(Aga)) Set Second Color REG,R,V,B -> Redefinit la couleur REG du Second Screen en Rouge(R),Vert(V) et Bleu(B).(de 0 a 15) Second Y Size YSIZE -> Definit la taille de l'ecran 2 en Y (Y>16) **************** **************** 9 > Les COPY de BLOCKS : ------------------------ S32 Block To Screen SBASE -> Copie un icone de 32*32 pixels situe en haut a gauche de l'ecran sur la totalite de l'ecran. SBASE Correspond a : SBASE=Screen Base . Pour l'ecran concerne. S32 Vertice To Screen SBASE -> Meme instruction que la precedente a l'exception pres que l'icone a pour dimension 32 de large sur la hauteur de l'ecran. **************** **************** 10 > Les ICONES AGA : --------------------- Aga Reserve Icon NUM -> reserve de la memoire pour creer NUM Icones en 16*16 pixels utilisant au maximum 8 bits plans. Aga Erase Icon -> Libere la memoire reservee avec l'instruction precedente. Aga Get Icon IC,X,Y -> Equivalent de Get Icon IC,X,Y To X+16,Y+16 de l'amos mais saisit un icone de 16*16 pixels contenu dans l'ecran definit avec ' Set Plane ' aux coordonnees X,Y. Aga Paste Icon IC,X,Y -> Equivalent de Paste Icon X,Y,IC mais dans l'ecran definit avec ' Set Plane '. IB=Aga Icon Base -> Renvoie l'adresse de base de la banque d'icones utilisees. Aga Icon Save FILE$ -> Sauvegarde la banque d'icones en cours. Aga Icon Load FILE$ -> Charge une banque d'icones sauvegardees. **************** **************** 11 > Le Multi Plots : --------------------- Mplot Reserve NUM -> Reserve un espace memoire suffisant pour stocker: -> Des coordonnees de points : X(.w),Y(.w) . -> La couleur utilisee : C(.w) . Mplot Erase -> Libere l'espace memoire reserve avec 'Mplot Reserve NUM' Mplot Define PTS,X,Y,C -> Definit le point PTS avec les coordonnees (X,Y). Le point sera trace avec la couleur C. Mplot Save FILE$ -> Sauve la banque memoire alloue pour les Multi Plots. Mplot Load FILE$ -> Charge le fichier Multi Plots en memoire. Mplot Draw FIRST To LAST -> Trace tous les points a partir du point FIRST et jusqu'au point LAST. Mplot Modify FIRST To LAST,XADD,YADD -> Modifie la position des points FIRST a LAST en ajoutant XADD a leur position en Abscisses (x) et YADD a leur position en (y) ordonnee.XADD et YADD peuvent etre negatifs. Mplot X Define POINT,XVALUE -> Change la valeur de l'abscisse du point POINT en ajoutant XVALUE a sa valeur initiale.XVALUE peut etre negatif. Mplot Y Define POINT,YVALUE -> Change la valeur de l'ordonnee du point POINT en ajoutant YVALUE a sa valeur initiale.YVALUE peut etre negatif. Mplot C Define POINT,VALUE -> Change la couleur du point POINT. Mplot Origin XORI,YORI -> Defini l'origine du plan de trace aux coordonnees (XORI,YORI). ces valeurs seront ajoutees aux coordonnees des points pour le trace de ces derniers. **************** **************** IV > Installation sur l'Amospro ou l'Amos 1.3: ----------------------------------------------- Cette extension n'a ete prevue que pour l'AmosProV1+ et l'Amos V1.3. Pour l'installer,il suffit de copier la librairie dans le repertoire: 'APSystem/' Pour l'amos pro et 'Amos_System/' pour l'amos 1.3. Avec le 'Set interpreter' de l'amos pro ou le programme 'Config1_3.AMOS' pour l'amos 1.3,placer l'extension dans l'emplacement numero 13. Il faudra relancer l'amos pour que l'extension soit active apres modification de votre Fichier de configuration. Le fichier 'AmosPro_Personnal.lib' pour l'AmosPro. Le fichier 'Personnal.lib' pour l'amos 1.3. **************** **************** V > Adresses... ----------------- Si vous desirez vous procurer la derniere version en date de mon extension, Mon adresse est la suivante : Cordier Frederic Bat 16 Lou Cigaloun Square de tournadre 13090 Aix En Provence Vous pouvez m'ecrire pour recevoir une version update de ma librairie,pour me donner des idees pour augmenter les capacites de ma librairie ou autres. Frederic.C **************** **************** VI > Derniere Minute. ---------------------- Sur les versions superieures,Il y aura en rajout de toutes les instructions presentes sur la v1.0b : - Gestion des Sprites ECS D'apres les banques AMOS. - Gestion des sprites AGA. - Load/Save et utilisation des Multi Plot sur disque. - Toutes les idees qui me seront parvenues d'ici la. - (Support de Compactage de fichier au format POWER PACKER) ??? - (Support des musiques OCTAMED) ??? D'apres les derniers tests de la librairie,je n'ai rien a dire de plus. J'espere que ma librairie vous servira pleinement. Si vous desirez voir apparaitre des instructions de votre choix dans mes futures versions de mon extension,ecrivez-moi .