Atari ! c’est bon esprit !

février 4, 2007

Classé dans : Développement — skweek @ 1:54

Sur Atari ST, nous avons le choix d’utiliser plusieurs langages de programmation comme le GFA Basic, STOS, C ou l’assembleur.

L’avantage de l’assembleur sur ces machines est qu’il permet d’effectuer des optimisations pointues. Celles-ci sont très utiles pour les animations visuelles comme les Intros/Démos.

Voici quelques informations sur la conception d’un programme en assembleur sur ST :

Un programme Atari est segmenté en plusieurs tranches nommées section. Le plus souvent on en trouve trois : code, data, bss.

La section code contiendra l’algorithme de votre programme, la data permettra la création de variables initialisées et enfin la bss contiendra les variables dynamiques comme les pointeurs sur variables.

Cependant ceci ne suffit pas pour créer un programme. Vous aurez certainement besoin d’utiliser des composantes du TOS, à savoir le GEMDOS, BIOS et l’XBIOS.

Nous allons tenter d’écrire à présent, un petit programme nous disant « bonjour » et attendant une saisie de notre part pour y mettre fin.

De quoi allons nous avoir besoin pour réaliser ce programme :

  1. Afficher un texte sur l’écran
  2. Attente de la saisie d’une touche
  3. Quitter le programme

Pour afficher un programme sur l’écran, nous disposons d’une fonction du GEMDOS (Cconws()) qui permet d’afficher une chaîne de caractères à l’écran. Elle s’utilise ainsi :

; #texte1 contiendra votre texte "Bonjour"
move.l #texte1,-(a7)

; #$09 correspond a la fonction Cconws()
move.w #$09,-(a7)

; #1 ici fait référence au GEMDOS
trap #1

L’attente de saisie se fera à partir d’une autre fonction du GEMDOS (Cnecin())

;#08 correspond a la fonction Cnecin()
move.w #8,-(a7)

; #1 correspond au GEMDOS
move.w #1,(-a7)
trap #1
addq.l #2,a7

Maintenant pour rendre la main au système, la fonction Pterm0 nous sera d’un grand secours, elle s’utilise comme suit :
move.w #0,-(a7)
trap #1

Au final, votre programme ressemblera a celui ci (j’utilise Assemble comme compilateur) :
;
move.l #texte1,-(a7)
move.w #$09,-(a7)
trap #1

;
move.w #8,-(a7)
trap #1
addq.l #2,a7

; Pterm0 on retourne au gem

move.w #0,-(a7)
trap #1

section data

texte1 dc.b 'Bonjour !',0

février 3, 2007

Lancement de mon journal de bord pour la numerica

Classé dans : Développement — skweek @ 9:13

Ce soir, discutant sur IRC avec des potes, j’ai décidé d’ouvrir ce blog non pas pour faire un nième blog nombriliste mais plus par envie de communiquer sur l’évolution de mon intro pour la demoparty numerica qui se deroulera en mars prochain.

Une intro est le plus souvent une animation sonorisée qui s’excécute sur une machine. Celle-ci a pour but d’exploiter au mieux les capacités de la machine. L’animation développée pour la numerica s’exécutera sur un Atari ST/STE.
L’Atari est une machine qui a eu son instant de gloire dans les années 80 et qui survit aujourd’hui grâce à des passionnés.

J’aimerai leur rendre hommage pour cette ardeur.

A suivre…

Publié sur WordPress.