AMOS Pro community 2020.1
-
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=0Je 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+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 😉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’utiliseEt 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 KeyOn 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+
AghnarHello,
@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+
AghnarL’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
@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)…
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=0Les entrées dans les sites de la demoscene habituels :
https://www.pouet.net/prod.php?which=84427https://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
AghnarVersion finale de Merry and Happy :
https://www.dropbox.com/s/b1zhxwn185nwb8n/merryFinal.adf?dl=0Nouvelle 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/Chouette!
Mis dans la rubrique 1 Day, 1 Demo du jour et dans le récap hebdomadaire
- Vous devez être connecté pour répondre à ce sujet.
› Forums › AmigaOS, MorphOS et AROS › Développement › AMOS Pro community 2020.1