AMOS Pro community 2020.1

15 sujets de 1 à 15 (sur un total de 31)

  • Treesong

      #341305

      Passionnés de l’Amiga et d’Amos, bonsoir.

      Ce thread est dédié à un packaging particulier d’Amos Pro que j’ai baptisé de manière autoritaire:
      “Amos Pro Community Edition 2020.1”

      Cette version est téléchargeable ici :
      https://www.dropbox.com/s/nch9p4fj59lw4k4/AMOSPro_Community_2020_1.adf?dl=0

      Je pense que cette version est intéressante pour les développeurs tout Amiga et en particulier par ceux qui ont un intérêt particulier pour le génial Amiga 500 (et donc aussi 500+,600…). On peut considérer que cette version est une version 2.5. Elle contient :
      – la dernière version d’Amos pro officielle, la 2.0 avec son compilateur
      – la possibilité de compiler facilement depuis l’éditeur pour test
      – un patch développé par Amos Factory et fixant quelques bugs
      – les extensions gratuites et incontournables Amos Pro 1.9 et Amcaf 1.5 : meilleures gestion du blitter et de Protracker notamment.
      – cette version est en français mais cela peut être changé par édition de la startup-sequence.

      Cette version est livrée sous forme d’Adf. L’installation sur disque dur est simple (par copie).
      En ce qui me concerne, pour développer, j’ai paramétré WinUAE en mode A500 avec lecteur disque en vitesse x8 et des disques durs qui correspondent à mes répertoires de développements.

      Je vais faire dans la suite du fil un petit tuto rapide pour exploiter cette version.
      A+

      Olivier BERNHARD

        #341352

        Merci infinimment !
        Donc Si je comprends bien, aucun besoin d’installer la version d’origine ? Je veux dire que cette disquette contient aussi bien l’IDE que le compilateur ? je débute complètement 🙂 Donc effectivement si tu peux expliquer rapidement comment mettre en place cette version sur un workbench standard installé sur un disque dur ce serait génial 🙂
        Encore merci pour tous tes efforts et ce partage 😉

        Treesong

          #341472

          Hello,

          Ce message est un tuto pour bien utiliser cette version 2020_1.

          Voici un petit code qui permet d’avoir un triangle en rotation sur l’axe Y en 50 images/seconde (après compilation)
          et avec un petit effet ombré simple obtenu par le blitter.
          Rien d’extraordinaire, cela a été fait 50000 fois sur Amiga mais c’est surtout l’occassion de voir
          quelques fonctions Amcaf.
          On pourrait encore optimiser le programme mais la version ici est suffisante dans notre contexte et on a nos 50 fps.

          Voici ce que l’on obtiendra sur un Amiga 500 vanille :

          https://www.dropbox.com/s/jna6hf1o8r981fu/AmosPro2_triangle.png?dl=0

          Et voici le code (je vous invite à le taper).

          ' Flat shadow rotating Y triangle by Aghnar/Agima in dec. 2019 
          Screen Open 0,320,256,8,Lowres
          Flash Off : Curs Off : Hide : Degree 
          Paper 0 : Cls : Palette $0,$666,$888,$BBB,$AAA,$BBB,$CCC,$EEE
          Pen 2
          Double Buffer : Autoback 0
          Blitter Copy Limit 0,48 To 320,208
          Dim C(359),S(359)
          For I=0 To 359 : C(I)=256*Cos(I) : S(I)=256*Sin(I) : Next 
          X1=64 : Y1=-32 : Z1=0 : X2=-64 : Y2=-32 : Z2=0 : X3=0 : Y3=74 : Z3=0
          XE1=0 : YE1=0 : XE2=0 : YE2=0 : XE3=0 : YE3=0
          X=0 : Y=0 : Z=0 : T=0 : Timer=0
          Do 
             Blitter Copy 0,1 To 0,2
             Blitter Copy 0,0 To 0,1
             Add T,1 : If T=10 : Locate 1,26 : Print 500/Timer;" fps" : Timer=0 : T=0 : End If 
             Add A,-2,0 To 359
             X=X1*C(A)+Z1*S(A) : Y=Y1*256 : Z=-X1*S(A)+Z1*C(A) : CZ=Z+256*256
             Blitter Clear 0,0
             XE1=160+(X*256)/CZ : YE1=100+(Y*256)/CZ
             X=X2*C(A)+Z2*S(A) : Y=Y2*256 : Z=-X2*S(A)+Z2*C(A) : CZ=Z+256*256
             XE2=160+(X*256)/CZ : YE2=100+(Y*256)/CZ
             X=X3*C(A)+Z3*S(A) : Y=Y3*256 : Z=-X3*S(A)+Z3*C(A) : CZ=Z+256*256
             XE3=160+(X*256)/CZ : YE3=100+(Y*256)/CZ
             Turbo Draw XE1,YE1 To XE2,YE2,1,-1
             Turbo Draw XE2,YE2 To XE3,YE3,1,-1
             Turbo Draw XE3,YE3 To XE1,YE1,1,-1
             Blitter Fill 0,0
             Screen Swap : Wait Vbl 
          Loop 

          Environnement Winuae
          ——————–

          En ce qui me concerne j’utilse WinUAE (actuellement la version 4.2.1) et fais du test occasionnellement sur un vrai 500.
          Voici la config pour pouvoir développer sur A500 avec WinUAE:
          – CPU : 68000 avec l’option ‘Approx A500/A1200 or cycle exact’ cochée
          – Chipset : OCS, les options ‘Cycle-exact(Full)’ , ‘Collision Level Full’ et ‘Wait for Blitter’ cochées
          – Rom: 1.3
          – Ram : 512 Kb pour Chip. Pour la fast pour le dev on met 1,5 mega mais il faudra coder en pensant bien que l’on a que 512 Ko
          – Disk : dans DF0 je mets la version 2020.1 d’Amos Pro. La vitesse du lecteur est mise à x8
          – Hard drive : je mets en ce qui me concerne les répertoires de dév que j’utilise

          Et on lance… On a un “véritable” 500 émulé avec un peu plus de mémoire fast (juste pour développer).

          Environnement Amos Pro
          ———————-

          Au chargement, on voit que cette version d’Amos pro a 7 extensions chargées.
          Je l’ai paramétrée pour que le compilateur en ligne soit disponible. Très interessant comme on va le voir.

          Pour utiliser cela, aller dans le menu “Amos” (bouton droit) et choisir “Load Accessory”. Le contenu de la disquette
          DF0: contenant Amos Pro s’affiche. Chosir le programme Tiny_Shell.AMOS.
          Le programme se charge et l’on revient sur l’éditeur.

          Maintenant, si vous allez à nouveau dans le menu “Amos”, on voit que l’accessoire Tiny Shell est chargé.
          C’est lui qui va nous permettre de compiler nos programmes.

          Donc si on fait un super code tel que :
          Print “Hello World”
          Wait Key

          On peut le compiler en chosissant dans le menu : Amos -> Tiny_Shell.AMOS -> Run.
          Et notre progamme se compile.

          On peut l’exécuter alors et tester si tout va bien.

          Le programme du jour
          ——————–

          Taper (c’est le mieux) ou importer le programme présent en début de message (avec l’option merge ascii du menu).

          Compiler le et lancer le.
          Normalement, notre triangle tourne en 50 fps.
          Essayer de comprendre le programme et si vous avez des questions, n’hésitez pas.
          Il est à noter que les instructions Amcaf Blitter Copy Limit et Blitter Copy sont un équivalent de Screen copy.
          Par ailleurs les commandes Amcaf Blitter Clear, Turbo draw et Blitter Fill sont une version optimisée on va dire de cls et polygon.

          A+
          Aghnar

          Amitoo

            #341509

            Vraiment Super. On a une idée de l’overhead de code que AMOS Pro engendre ? Je veux dire, si on avait fait une programmation à la main, est-ce que l’on pourrait avoir moins de lignes assembleur sur l’exemple donné ?

            A500+ / A1200 / CD32 et... Jaguar

            Treesong

              #341510

              Hello,


              @Olivier

              Tu peux compiler avec la disquette fournie. Pour faire par un contre un exécutable standalone il faut la disquette du compilateur 2.0. Je la mettrai à dispo un de ces jours.


              @Amitoo

              Si on désassemblait le code généré par la compilation de ce programme Amos, on aurait je pense beaucoup plus de lignes qu’un même code écrit en assembleur (par quelqu’un d’expérimenté) et (surtout) des optimisations fort différentes.

              Ce qui est sur c’est qu’un code écrit en 68000 sous Asmone par exemple pour faire la même chose aurait beaucoup plus de lignes que le programme Amos écrit ci dessus. Des dizaines de fois plus (surtout que j’ai mis plusieurs instructions sur la même ligne :-)).
              Rien que cela déjà :
              Screen Open 0,320,256,8,Lowres
              Implique une copper list initialisant beaucoup de registres $DFFxxx.

              J’essaye de faire la promo d’Amos car à priori il existe une communauté importante (toute proportion gardée) et que globalement le langage est mal utilisé. Donc on pourrait vraiment avoir des programmes (jeux ou démos) de qualité avec Amos. Toutefois j’invite les gens intéressés par le 68000 (et sans problème financier car sinon il faut investir du tps sur autre chose) à se mettre à l’asm sur Amiga d’autant plus qu’un français est en train de faire des videos d’une qualité exceptionnelle sur le sujet (https://www.youtube.com/channel/UCc0K5ZCJS7Pl8lpExNZmFiA)

              J’essaierai d’ajouter d’autres exemples en Amos sur ce thread. Si certains ont besoin d’explications, n’hésitez pas. Comme je l’ai dit précédemment ce programme est largement “optimisable”. Mais s’il tourne en 50 fps sur un 500, c’est parce qu’il contient deux pratiques importantes et généralement négligées en basic (et en Amos en particulier) :
              – il n’y a que des entiers. PAS de virgules flottantes (notation # sur les variables)
              – les traitements sont inline : pas d’utilisation de tableau (à part les fonctions cos() et sin() qui devraient d’ailleurs ne pas être répétées plusieurs fois dans un même tour de boucle car constantes ;-)).

              A+
              Aghnar

              AmiDARK

                #341523

                Pourquoi ne pas faire un site sur lequel tu mets tes codes sources téléchargeables en .zip ou .lha ?

                Treesong

                  #341542

                  @Amidark

                  Question de temps et de contenus (irréguliers). Mais pourquoi pas.
                  Pour le moment j’aime assez cette idée de threads dédiés sur les forums AmigaImpact, AmigaFrance et EAB que je trouve bien faits.

                  AmiDARK

                    #341565

                    Le problem des threads, est qu’avec les réponses et les sujets du forum, on perds la visibilité …
                    Il existe des frameworks tout assités comme SPIP qui te permettent de créer du contenu (publications, blogs, journal, etc…) très facilement 🙂

                    Treesong

                      #341620

                      @Amidark
                      Merci pour l’info.:-)

                      Amitoo

                        #341624

                        L’avantage du forum c’est d’être facilement alerté de ce que peut poster l’auteur du thread et une interaction avec lui très facile. Je pense que tant que le contenu est relativement léger c’est nickel. Et il me semble même plus intéressant que ça soit moins formel qu’un site bien rangé. Surtout un site comme ici ou il n’y a pas 300 contributions qui vont venir s’intercaler. En plus AI est bien référencé.

                        Il vaut mieux un partage effective qui a pris un minimum de temps que pas de partage du tout sur un super site qui risque de ne jamais exister non ?

                        A500+ / A1200 / CD32 et... Jaguar

                        AmiDARK

                          #341694

                          @AmiToo: Utiliser des extrêmes pour asseoir un raisonnement n’est pas très juste … ni objectif d’ailleurs …

                          Si l’objectif est de fournie uniquement 2 ou 3 codes sources, effectivement un site n’est pas intéressant dans le ratio temps de développement du site VERSUS temps de des des exemples, cependant les codes sources seront perdu, “à un moment ou l’autre” dans le contenu du forum …

                          Si l’objectif est de fournir plusieurs exemples, un site, même basique en “wordpress”, “spip” ou autre, pourra être plus intéressant .. L’obejctif n’étant pas que le site prenne 50 ans à l’auteur pour le développer, mais uniquement à rester une source claire et précise contenant tous les exemples de l’auteur 😉

                          Rien n’empêche l’auteur de créer à chaque fois un nouveau thread avec en titre la description de l’exemple, et dans le sujet, le lien vers son site (et plus précisément vers l’exemple dans son site)…

                          Treesong

                            #341811

                            Hello,

                            J’ai développé pendant les fêtes (bouh pas bien et les yeux alors !) et produit une petite dentro téléchargeable ici :
                            https://www.dropbox.com/s/1w2cqad6nxqqizt/merryDemoPartyVersion.adf?dl=0

                            Les entrées dans les sites de la demoscene habituels :
                            https://www.pouet.net/prod.php?which=84427

                            https://demozoo.org/productions/272700/

                            Je ferai une version finale et produirai les sources. Le petit sapin en rotation est directement une évolution du triangle présenté dans le code source en début de thread et la scène à la “Shadow of Beast” une évolution d’un dev présenté sur Amiga France.

                            Bonnes fêtes
                            Aghnar

                            Treesong

                              #342118

                              Treesong

                                #346920

                                Nouvelle petite prod pour Amiga 500. Une intro cette fois.
                                Les liens pour ceux qui seraient éventuellement interessés :

                                https://www.pouet.net/prod.php?which=85581
                                https://demozoo.org/productions/278143/

                                Tarzin

                                  #346942

                                  Chouette!
                                  Mis dans la rubrique 1 Day, 1 Demo du jour et dans le récap hebdomadaire

                                15 sujets de 1 à 15 (sur un total de 31)

                                • Vous devez être connecté pour répondre à ce sujet.

                                Forums AmigaOS, MorphOS et AROS Développement AMOS Pro community 2020.1

                                Amiga Impact