@database "Personnal1_0b.Guide" @node Main "Amos Pro/1.3 Personnal.Lib Documentation" *************************************************************************** ------------------------------------------------ ---------- Amos Professionnal PERSONNAL.LIB Documentation 2 --------------- ------------------------------------------------ *************************************************************************** Contenu de ce Guide : --------------------- @{" A propos de ce guide. " link ABOUT } @{" Lien avec mon extension " link EXTENSION } @{" Format des banques de donnees " link DATAS } @{" Les appels de routines " link CALLS } @{" Les ROUTINES Executables " link ROUTINES } @{" L'extension Personnal-EXTRA.lib " link EXTRA } @{" Derniere Minute " link MINUTE } @endnode @node ABOUT *************************************************************************** ------------------------------------------------ ---------- A propos de ce guide --------------- ------------------------------------------------ *************************************************************************** Ce guide a ete ecrit pour ceux qui pourraient faire une extension AMOS. Il decrit la plupart des registres de ma banque de donnees contenues dans ma librairie.Il explique comment avoir acces a ces donnees et comment les modifier ou utiliser proprement sans faire planter ma librairie. ATTENTION TOUT CE QUI EST DECRIT SUR CE GUIDE FONCTIONNE SUR LA VERSION 1.1a ET LES VERSION SUPERIEURES DE LA LIBRAIRIE ET NE FONCTIONNENT PAS SUR LA VERSION DE DEMONSTRATION 1.0B. @endnode @node EXTENSION *************************************************************************** ------------------------------------------------ ---------- Lire les donnees de l'extension --------------- ------------------------------------------------ *************************************************************************** Cette partie decrira comment avoir acces a une partie de ma banque de donnees internes de ma librairie. Le fichier ':Programmers/Macros/PersonnalMacros.i' contient les macros utiles pour pouvoir lire les donnees : PsLea DATANAME,AReg : ----------------------- Cette macro permet de charger l'adresse effective de DATANAME dans un registre d'adresse AReg. Pour exemple: Si vous desirez charger le contenu de mon 1er bit plan, vous ferrez PsLea PS_Plane1,a0 Move.l (a0),d0 Le registre D0 contiendra l'adresse de mon 1er bit plan COPPER. PsLoad Areg : -------------- Cette macro charge la premiere adresse de ma banque de donnees dans le registre d'adresse AReg. Le fichier ':Programmers/Includes/PersonnalD-BANK.i' contient les donnees necessaires aux macros pour fonctionner (DATANAMEs) @endnode @node DATAS *************************************************************************** ------------------------------------------------ ---------- Format de mes banques de donnees --------------- ------------------------------------------------ *************************************************************************** Le Format est Simple : ---------------------- BANQUE D'ICONE : ---------------- Structure AGAICONBANK Dc.b "F.C1" ; Header du format. Dc.l NUM ; Nombre d'icones reserves. Dc.l ICDAT ; Donnees Icones... EndStruct La longueur memoire de la banque d'icone se calcule par: LEN=8+(NUM*260) L'adresse d'un icone se calcule par: IconAdress=IconBankBase+8+((Icone-1)*260) BANQUE MPLOT : -------------- Structure MULTIPLOTS Dc.b "F.C2" ; Header du format. Dc.l NUM ; Nombre de points reserves. Dc.l MPDAT ; Donnees points. EndStruct La longueur memoire de la banque de Multi Plots se calcule par: LEN=8+(NUM*6) L'adresse des coordonnees d'un point se calcule par: MplotAdress=MplotBankBase+8+((Point-1)*6) Le Format de donnee d'un point est: Structure POINTXYC Dc.l XPOS ; Position du point en Abscisses (X) Dc.l YPOS ; Position du point en ordonnees (Y) Dc.l INK ; Couleur utilisee par le point. EndStruct IMAGE COMPACTEE : ----------------- Structure PIC PACK Dc.b "F.C3" ; Header du format. Dc.l PACKSIZE; Longueur du fichier. Dc.l BPLSIZE ; Longueur d'un bit plan de l'image en octets. Dc.l COMPFORM; Format de compactage. Dc.b ... ; COMPRESSED IMAGE DATAS... EndStruct ANIM D'IMAGES COMPACTEES : -------------------------- Structure ANIM PACK Dc.b "F.C4" ; Header du format. Dc.l N ; Nombre d'image dans l'animation. Dc.l IM-BASE ; Adresse de depart de l'image 1 (Rajouter l'adresse de ; base de la banque F.C4 pour avoir l'adresse reelle.) Dc.l ... ; ... N-1 Dc.l ... ; N Dc.b "F.C3" ; Header Images... Dc.l ... ; N Images... EndStruct @endnode @node MINUTE *************************************************************************** ------------------------------------------------ ---------- Derniere Minute. --------------- ------------------------------------------------ *************************************************************************** Rien a dire de plus. @endnode @node CALLS *************************************************************************** ------------------------------------------------ ---------- Les appels de routine d'une librairie a l'autre --------------- ------------------------------------------------ *************************************************************************** La grande nouveaute de la version 1.1a face a la version 1.0b est que l'on peut appeler des routines de la personnal.lib a partir d'une librairie AMOS quelconque. Attention ! Le registre 'A2' est utilise par cette MACRO.Veillez a ne pas garder de donnee importante dans A2 si vous appelez une routine PERSONNAL. le fichier ':Programmers/Macros/PersonnalMacros.i' contient une macro qui permet au createur d'une librairie d'appeler les routines contenues dans le fichier ':Programmers/Includes/PersonnalR-LIST.i'. PsJsr AP_ROUTINE : ------------------ Produit un simple JSR sur la routine interne de la 'Personnal.lib' qui porte le nom AP_ROUTINE. @endnode @node EXTRA *************************************************************************** ------------------------------------------------ --------- La librairie de demonstrations Personnal-EXTRA.lib --------- ------------------------------------------------ *************************************************************************** Cette petite librairie sert tout juste d'exemple pour l'utilisation des liens entre la personnal.lib et une autre librairie. Elle se place a l'emplacement 17 des extensions. Vous avez besoin pour l'assembler des fichiers d'includes de l'amos. Les deux routines presentes sont : V=Plib Ver : ------------ Renvoie le numero de version de la personnal.lib R=Plib Rev : ------------ Renvoie le numero de revision de la Personnal.lib !!! ATTENTION !!! J'ai rajoute un petit test dans la librairie pour eviter un plantage eventuel. Il verifie si la personnal.lib est presente et met a -1 un registre si la librairie est presente ou a 0 si elle n'est pas la. (P_TEST) Ce registre s'appelle '_Exist'. Les deux routines renvoient un message d'erreur si la librairie PERSONNAL.LIB n'a pas ete chargee. @endnode @node ROUTINES *************************************************************************** ------------------------------------------------ ---------- ROUTINES executables a partir de librairie X --------------- ------------------------------------------------ *************************************************************************** Sur la version 1.1a,seulement quelques EQUATES etaient presentes.Mais,il en a ete rajoute quelques unes pour simplifier le travail de tout bon programmeur bien faineant. !!! ATTENTION !!! Vous devez avoir replace A3 a sa position FINALE(Apres saisie des donnees!!!) et avoir A4,A5,A6 non modifies car si une des routines suivantes renvoie un message d'erreur,l'AMOS risquerait de planter. Version 1.1a : AP_VERSION : ------------ In : / Out : D0/D1 D0=Version de la librairie. D1=Revision de la librairie. AP_ICONADR : ------------ In : D0 D0=Numero de l'icone. Out : A0 A0=Adresse de base de l'icone D0. AP_MPLOTADR : ------------- In : D0 D0=Point Out : A0 A0=Adresse de base du Multi Plot D0. AP_AGAPATCH : ------------- In : / Out : / Desactive le DOUBLE SCANNING de l'AGA pour plus de compatibilite avec la version 1.3 de l'amos. AP_COS1000 : ------------ In : D0 D0=Angle Out : D0 D0=Cos(Angle)*1000 AP_SIN1000 : ------------ In : D0 D0=Angle Out : D0 D0=Sin(Angle)*1000 AP_TAN1000 : ------------ In : D0 D0=Angle Out : D0 D0=Tan(Angle)*1000 AP_MEMCLEAR : ------------- In : A0 A1 A0=Adresse de depart A1=Adresse de fin Out : Efface la memoire de l'adresse A0 jusqu'a l'adresse A1. Version 1.2a : AP_SCREENOFFSET : ----------------- In : D0 D1 D2 D0=Position du screen offset en X. D1=Position du screen offset en Y. D2=Type de screen offset: =0 TOUS LES BITS PLANS. =1 Bit plans IMPAIRS. =2 Bit plans PAIRS. Out : Produit un screen offset et en meme temps une remise a jour des bits plans si ils ont ete modifies. AP_SCREENUPDATE : ----------------- In : D0 D0=Type d'update a realiser. =0 TOUS LES BITS PLANS. =1 Bit plans IMPAIRS. =2 Bit plans PAIRS. Out : - Active les nuveaux bits plans si ils ont ete MODIFIES, - Refait un SCREEN OFFSET si modifie(Ou l'ancien si inmodifie,) - Recalcule les dimensions de l'ecran si ces dernieres ont ete modifiees. @endnode