Pl2 EXOS 2.DOC/fr: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
Olivier.jan (talk | contribs) mNo edit summary |
||
(4 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
+ | {{Languages|Pl2 EXOS 2.DOC}} |
||
<pre> |
<pre> |
||
Line 14: | Line 15: | ||
Voilà des exercices qui vont vous obliger (enfin!) à PROGRAMMER avec |
Voilà des exercices qui vont vous obliger (enfin!) à PROGRAMMER avec |
||
votre assembleur. |
votre assembleur. |
||
− | Pensez à utiliser les macros instructions que nous avons |
+ | Pensez à utiliser les macros instructions que nous avons crées dans |
− | le chapitre |
+ | le chapitre précédent et qui se trouvent dans le fichier :MACROS.L |
Ces exercices ont pour but de vous familliariser avec les fonctions |
Ces exercices ont pour but de vous familliariser avec les fonctions |
||
du GEMDOS,BIOS et XBIOS ainsi qu'avec les instructions du 68000. |
du GEMDOS,BIOS et XBIOS ainsi qu'avec les instructions du 68000. |
||
Line 21: | Line 22: | ||
Bon courage. |
Bon courage. |
||
− | Les |
+ | Les corrigés sont présents dans le fichier :CORRIG_2.DOC |
------------ |
------------ |
||
Line 30: | Line 31: | ||
Ecrivez une MACRO instruction dont le but est de sauvegarder les |
Ecrivez une MACRO instruction dont le but est de sauvegarder les |
||
− | registres de |
+ | registres de donnée et d'adresse sur le pile système et nommez la |
'SAUVE'. |
'SAUVE'. |
||
− | Ecrivez la MACRO instruction |
+ | Ecrivez la MACRO instruction complémentaire qui va recharger les |
− | registres de |
+ | registres de donnée et d'adresse avec les valeurs empilées par la |
macro 'SAUVE'.Vous nommerez cette macro: 'RESTORE'. |
macro 'SAUVE'.Vous nommerez cette macro: 'RESTORE'. |
||
Line 43: | Line 44: | ||
2) Exercice nr°2: |
2) Exercice nr°2: |
||
-------------- |
-------------- |
||
− | + | Créez une MACRO instruction à 1 paramètre dont le but est d'afficher |
|
en HEXADECIMAL le contenu du paramètre (Long-Mot). |
en HEXADECIMAL le contenu du paramètre (Long-Mot). |
||
Nommez cette macro instruction :'HEXA' |
Nommez cette macro instruction :'HEXA' |
||
Line 49: | Line 50: | ||
Indications: |
Indications: |
||
------------ |
------------ |
||
− | .Un chiffre HEXA est |
+ | .Un chiffre HEXA est représenté par 4 bits |
− | .Servez vous des instructions de rotation ou de |
+ | .Servez vous des instructions de rotation ou de décalage pour |
atteindre tous les bits du paramètre dont vous aurrez besoin. |
atteindre tous les bits du paramètre dont vous aurrez besoin. |
||
− | .Pour garder un nombre |
+ | .Pour garder un nombre défini de BITS dans un registre, on masque |
les bits à garder avec l'instruction AND. |
les bits à garder avec l'instruction AND. |
||
(Par exp. AND #%111,dn masque les bits 0,1 et 2 de dn) |
(Par exp. AND #%111,dn masque les bits 0,1 et 2 de dn) |
||
Line 61: | Line 62: | ||
3) Exercice nr°3: |
3) Exercice nr°3: |
||
-------------- |
-------------- |
||
− | + | Créez une MACRO instruction à 1 paramètre dont le but est d'afficher |
|
en BINAIRE le contenu du paramètre (Long-Mot). |
en BINAIRE le contenu du paramètre (Long-Mot). |
||
Nommez cette macro instruction :'BINAIRE' |
Nommez cette macro instruction :'BINAIRE' |
||
Line 67: | Line 68: | ||
Indications: |
Indications: |
||
------------ |
------------ |
||
− | .Utilisez les instructions de |
+ | .Utilisez les instructions de décalage et de rotation ainsi que les |
− | instructions de branchements conditionnels |
+ | instructions de branchements conditionnels appropriées. |
4) Exercice nr°4: |
4) Exercice nr°4: |
||
-------------- |
-------------- |
||
− | + | Créez un programme dont le but est de FORMATER la disquette |
|
(80 pistes,9 secteurs par piste,interleave=1) |
(80 pistes,9 secteurs par piste,interleave=1) |
||
Line 89: | Line 90: | ||
.Certains paramètres devront varier... (nr° de piste) |
.Certains paramètres devront varier... (nr° de piste) |
||
.Pour afficher un nombre en DECIMAL, pensez à utiliser l'instruction |
.Pour afficher un nombre en DECIMAL, pensez à utiliser l'instruction |
||
− | DIVU (après avoir |
+ | DIVU (après avoir changé le signe du nombre à traiter car il est né- |
gatif!) pour rechercher le chiffre des dixaines,le chiffre des uni- |
gatif!) pour rechercher le chiffre des dixaines,le chiffre des uni- |
||
− | + | tés.(si vous n'y arrivez pas en décimal utilisez alors votre macro |
|
BINAIRE ou HEXA) |
BINAIRE ou HEXA) |
||
.Le code ascii de 0 est $30 |
.Le code ascii de 0 est $30 |
||
− | . |
+ | .Réservez beaucoup de mémoire avec SETBLOCK (en 'PILE'):au moins 20000 |
− | octets...( La taille du PRG ne sera pas |
+ | octets...( La taille du PRG ne sera pas influencée de toute manière, |
alors ne soyez pas radin sur vos 512 KO de RAM...) |
alors ne soyez pas radin sur vos 512 KO de RAM...) |
||
.L'adresse du TAMPON pour FLOPFMT devra ètre PAIRE, ne l'oubliez pas! |
.L'adresse du TAMPON pour FLOPFMT devra ètre PAIRE, ne l'oubliez pas! |
||
Line 103: | Line 104: | ||
-------------- |
-------------- |
||
− | + | Créez un programme qui permet de jouer les sons qui sont définits dans |
|
− | le fichier PROSOUND.DAT (que vous |
+ | le fichier PROSOUND.DAT (que vous intégrerez à la fin de votre listing |
dans le segment DATA). |
dans le segment DATA). |
||
Les touches de FONCTION (F1 à F10) serviront de clavier et si on appuye |
Les touches de FONCTION (F1 à F10) serviront de clavier et si on appuye |
||
Line 118: | Line 119: | ||
les touches de fonction pour que leur scancode apparaisse..) |
les touches de fonction pour que leur scancode apparaisse..) |
||
.Rejouez les sons avec la macro DOSOUND (Gemdos) |
.Rejouez les sons avec la macro DOSOUND (Gemdos) |
||
− | . |
+ | .Réservez beaucoup de mémoire pour SETBLOCK (en 'PILE') |
Line 125: | Line 126: | ||
-------------- |
-------------- |
||
− | + | Créez un programme qui affiche le directory de la disquette. |
|
Indications: |
Indications: |
||
.Utilisez les fonctions SEARCH et SEARCH_NEXT du Gemdos. |
.Utilisez les fonctions SEARCH et SEARCH_NEXT du Gemdos. |
||
− | .Le tampon DTA doit ètre |
+ | .Le tampon DTA doit ètre situé à une adresse PAIRE, ne l'oubliez pas! |
− | . |
+ | .Réservez beaucoup de place pour SETBLOCK (en 'PILE') |
Line 139: | Line 140: | ||
Je con‡ois que ces exercices peuvent vous poser certains problèmes, si |
Je con‡ois que ces exercices peuvent vous poser certains problèmes, si |
||
vous ne progressez pas, regardez le listings correspondant à l'exercice |
vous ne progressez pas, regardez le listings correspondant à l'exercice |
||
− | que vous n'arrivez pas à faire et essayez de le |
+ | que vous n'arrivez pas à faire et essayez de le reécrire. |
− | Ne regardez le |
+ | Ne regardez le corrigé qu'en dernier lieu... |
Line 155: | Line 156: | ||
</pre> |
</pre> |
||
Back to [[ASM_Tutorial]] |
Back to [[ASM_Tutorial]] |
||
+ | [[Category: ASSEMBLEUR 68000 sur ATARI ST Part 2]] |
Latest revision as of 16:08, 17 December 2023
---------------------- EXERCICES NR°2 SUR LES FONCTIONS DU GEMDOS,BIOS et XBIOS ---------------------- Voilà des exercices qui vont vous obliger (enfin!) à PROGRAMMER avec votre assembleur. Pensez à utiliser les macros instructions que nous avons crées dans le chapitre précédent et qui se trouvent dans le fichier :MACROS.L Ces exercices ont pour but de vous familliariser avec les fonctions du GEMDOS,BIOS et XBIOS ainsi qu'avec les instructions du 68000. Bon courage. Les corrigés sont présents dans le fichier :CORRIG_2.DOC ------------ 1) Exercice nr°1: ------------- Ecrivez une MACRO instruction dont le but est de sauvegarder les registres de donnée et d'adresse sur le pile système et nommez la 'SAUVE'. Ecrivez la MACRO instruction complémentaire qui va recharger les registres de donnée et d'adresse avec les valeurs empilées par la macro 'SAUVE'.Vous nommerez cette macro: 'RESTORE'. Ceux qui n'y arriveront pas au bout de 10 secondes n'ont pas lus correctement le cours sur les instructions du 68000 ... 2) Exercice nr°2: -------------- Créez une MACRO instruction à 1 paramètre dont le but est d'afficher en HEXADECIMAL le contenu du paramètre (Long-Mot). Nommez cette macro instruction :'HEXA' Indications: ------------ .Un chiffre HEXA est représenté par 4 bits .Servez vous des instructions de rotation ou de décalage pour atteindre tous les bits du paramètre dont vous aurrez besoin. .Pour garder un nombre défini de BITS dans un registre, on masque les bits à garder avec l'instruction AND. (Par exp. AND #%111,dn masque les bits 0,1 et 2 de dn) .Le code ascii de '0' est $30 .Le code ascii de 'A' est $37+$A 3) Exercice nr°3: -------------- Créez une MACRO instruction à 1 paramètre dont le but est d'afficher en BINAIRE le contenu du paramètre (Long-Mot). Nommez cette macro instruction :'BINAIRE' Indications: ------------ .Utilisez les instructions de décalage et de rotation ainsi que les instructions de branchements conditionnels appropriées. 4) Exercice nr°4: -------------- Créez un programme dont le but est de FORMATER la disquette (80 pistes,9 secteurs par piste,interleave=1) Le programme affichera un message d'alerte et demandera une confirmation avant le formatage. En cas d'erreur, il faudra que le programme affiche le code de l'erreur en DECIMAL. Indications: ------------ .Utilisez la fonction FLOPFMT du GEMDOS .Certains paramètres devront varier... (nr° de piste) .Pour afficher un nombre en DECIMAL, pensez à utiliser l'instruction DIVU (après avoir changé le signe du nombre à traiter car il est né- gatif!) pour rechercher le chiffre des dixaines,le chiffre des uni- tés.(si vous n'y arrivez pas en décimal utilisez alors votre macro BINAIRE ou HEXA) .Le code ascii de 0 est $30 .Réservez beaucoup de mémoire avec SETBLOCK (en 'PILE'):au moins 20000 octets...( La taille du PRG ne sera pas influencée de toute manière, alors ne soyez pas radin sur vos 512 KO de RAM...) .L'adresse du TAMPON pour FLOPFMT devra ètre PAIRE, ne l'oubliez pas! 5) Exercice nr°5: -------------- Créez un programme qui permet de jouer les sons qui sont définits dans le fichier PROSOUND.DAT (que vous intégrerez à la fin de votre listing dans le segment DATA). Les touches de FONCTION (F1 à F10) serviront de clavier et si on appuye sur une autre touche, le prg devra s'arrêter. Indications: .Pensez à chercher les SCANCODEs des touches de fonction. Comme vous ne les connaissez pas encore il faudra faire un petit prg qui vous les affiches. (Ultra simple, utilisez la macro HEXA et affi- chez le code de retour de 'WAIT' par exp:il vous suffira d'enfoncer les touches de fonction pour que leur scancode apparaisse..) .Rejouez les sons avec la macro DOSOUND (Gemdos) .Réservez beaucoup de mémoire pour SETBLOCK (en 'PILE') 6) Exercice nr°6: -------------- Créez un programme qui affiche le directory de la disquette. Indications: .Utilisez les fonctions SEARCH et SEARCH_NEXT du Gemdos. .Le tampon DTA doit ètre situé à une adresse PAIRE, ne l'oubliez pas! .Réservez beaucoup de place pour SETBLOCK (en 'PILE') -------------------- Je con‡ois que ces exercices peuvent vous poser certains problèmes, si vous ne progressez pas, regardez le listings correspondant à l'exercice que vous n'arrivez pas à faire et essayez de le reécrire. Ne regardez le corrigé qu'en dernier lieu... PIECHOCKI Laurent 8,impasse Bellevue CORRECTIONS dans le fichier:CORRIG_2.DOC 57980 TENTELING ------------
Back to ASM_Tutorial